PyWavelets-1.1.1/0000755000175000017500000000000013552543071014262 5ustar lee8rxlee8rx00000000000000PyWavelets-1.1.1/LICENSE0000644000175000017500000000222313552333332015263 0ustar lee8rxlee8rx00000000000000Copyright (c) 2006-2012 Filip Wasilewski Copyright (c) 2012-2019 The PyWavelets Developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. PyWavelets-1.1.1/LICENSES_bundled.txt0000644000175000017500000000041013552333332017715 0ustar lee8rxlee8rx00000000000000The PyWavelets repository and source distributions bundle some code that is adapted from compatibly licensed projects. We list these here. Name: NumPy Files: pywt/_pytesttester.py License: 3-clause BSD Name: SciPy Files: setup.py, util/* License: 3-clause BSD PyWavelets-1.1.1/MANIFEST.in0000644000175000017500000000100613552333332016012 0ustar lee8rxlee8rx00000000000000include setup.py include pyproject.toml include README.rst include LICENSE include *.txt include MANIFEST.in # All source files recursive-include pywt * # All documentation recursive-include doc * recursive-include demo * # Cached Cython signatures include cythonize.dat # Add build and testing tools include tox.ini pytest.ini recursive-include util * # Exclude what we don't want to include prune build prune doc/build prune */__pycache__ global-exclude *.py[cod] *.egg *.egg-info global-exclude *~ *.bak *.swp PyWavelets-1.1.1/PKG-INFO0000644000175000017500000000401113552543071015353 0ustar lee8rxlee8rx00000000000000Metadata-Version: 1.2 Name: PyWavelets Version: 1.1.1 Summary: PyWavelets, wavelet transform module Home-page: https://github.com/PyWavelets/pywt Maintainer: The PyWavelets Developers Maintainer-email: pywavelets@googlegroups.com License: MIT Download-URL: https://github.com/PyWavelets/pywt/releases Description: PyWavelets is a Python wavelet transforms module that includes: * nD Forward and Inverse Discrete Wavelet Transform (DWT and IDWT) * 1D and 2D Forward and Inverse Stationary Wavelet Transform (Undecimated Wavelet Transform) * 1D and 2D Wavelet Packet decomposition and reconstruction * 1D Continuous Wavelet Tranfsorm * Computing Approximations of wavelet and scaling functions * Over 100 built-in wavelet filters and support for custom wavelets * Single and double precision calculations * Real and complex calculations * Results compatible with Matlab Wavelet Toolbox (TM) Keywords: wavelets,wavelet transform,DWT,SWT,CWT,scientific Platform: Windows Platform: Linux Platform: Solaris Platform: Mac OS-X Platform: Unix Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: Intended Audience :: Education Classifier: Intended Audience :: Science/Research Classifier: License :: OSI Approved :: MIT License Classifier: Operating System :: OS Independent Classifier: Programming Language :: C Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3 :: Only Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Topic :: Software Development :: Libraries :: Python Modules Requires-Python: >=3.5 PyWavelets-1.1.1/PyWavelets.egg-info/0000755000175000017500000000000013552543071020057 5ustar lee8rxlee8rx00000000000000PyWavelets-1.1.1/PyWavelets.egg-info/PKG-INFO0000644000175000017500000000401113552543071021150 0ustar lee8rxlee8rx00000000000000Metadata-Version: 1.2 Name: PyWavelets Version: 1.1.1 Summary: PyWavelets, wavelet transform module Home-page: https://github.com/PyWavelets/pywt Maintainer: The PyWavelets Developers Maintainer-email: pywavelets@googlegroups.com License: MIT Download-URL: https://github.com/PyWavelets/pywt/releases Description: PyWavelets is a Python wavelet transforms module that includes: * nD Forward and Inverse Discrete Wavelet Transform (DWT and IDWT) * 1D and 2D Forward and Inverse Stationary Wavelet Transform (Undecimated Wavelet Transform) * 1D and 2D Wavelet Packet decomposition and reconstruction * 1D Continuous Wavelet Tranfsorm * Computing Approximations of wavelet and scaling functions * Over 100 built-in wavelet filters and support for custom wavelets * Single and double precision calculations * Real and complex calculations * Results compatible with Matlab Wavelet Toolbox (TM) Keywords: wavelets,wavelet transform,DWT,SWT,CWT,scientific Platform: Windows Platform: Linux Platform: Solaris Platform: Mac OS-X Platform: Unix Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: Intended Audience :: Education Classifier: Intended Audience :: Science/Research Classifier: License :: OSI Approved :: MIT License Classifier: Operating System :: OS Independent Classifier: Programming Language :: C Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3 :: Only Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Topic :: Software Development :: Libraries :: Python Modules Requires-Python: >=3.5 PyWavelets-1.1.1/PyWavelets.egg-info/SOURCES.txt0000644000175000017500000001300113552543071021736 0ustar lee8rxlee8rx00000000000000LICENSE LICENSES_bundled.txt MANIFEST.in README.rst pytest.ini setup.py tox.ini PyWavelets.egg-info/PKG-INFO PyWavelets.egg-info/SOURCES.txt PyWavelets.egg-info/dependency_links.txt PyWavelets.egg-info/requires.txt PyWavelets.egg-info/top_level.txt demo/_dwt_decompose.c demo/batch_processing.py demo/benchmark.py demo/cwt_analysis.py demo/dwt2_dwtn_image.py demo/dwt_signal_decomposition.py demo/dwt_swt_show_coeffs.py demo/fswavedecn.py demo/fswavedecn_mondrian.py demo/image_blender.py demo/plot_demo_signals.py demo/plot_wavelets.py demo/plot_wavelets_pyqtgraph.py demo/swt2.py demo/swt_variance.py demo/waveinfo.py demo/wp_2d.py demo/wp_scalogram.py demo/wp_visualize_coeffs_distribution.py doc/Makefile doc/doc2html.bat doc/make.bat doc/paper/paper.bib doc/paper/paper.md doc/release/0.3.0-notes.rst doc/release/0.4.0-notes.rst doc/release/0.5.0-notes.rst doc/release/1.0.0-notes.rst doc/release/1.1.0-notes.rst doc/release/1.1.1-notes.rst doc/source/common_refs.rst doc/source/conf.py doc/source/contributing.rst doc/source/index.rst doc/source/install.rst doc/source/release.0.3.0.rst doc/source/release.0.4.0.rst doc/source/release.0.5.0.rst doc/source/release.1.0.0.rst doc/source/release.1.1.0.rst doc/source/release.1.1.1.rst doc/source/releasenotes.rst doc/source/substitutions.rst doc/source/_static/comments.png doc/source/_static/favicon.ico doc/source/_static/github.png doc/source/_static/page_edit.png doc/source/_static/twitter.png doc/source/_static/wave.png doc/source/_templates/editdocument.html doc/source/_templates/page.html doc/source/_templates/quicklinks.html doc/source/dev/building_extension.rst doc/source/dev/how_to_release.rst doc/source/dev/index.rst doc/source/dev/installing_build_dependencies.rst doc/source/dev/preparing_linux_build_environment.rst doc/source/dev/preparing_windows_build_environment.rst doc/source/dev/testing.rst doc/source/dev/conduct/code_of_conduct.rst doc/source/dev/conduct/report_handling_manual.rst doc/source/pyplots/camera_approx_detail.py doc/source/pyplots/cwt_scaling_demo.py doc/source/pyplots/plot_2d_bases.py doc/source/pyplots/plot_boundary_modes.py doc/source/pyplots/plot_mallat_2d.py doc/source/pyplots/plot_thresholds.py doc/source/ref/2d-decompositions-overview.rst doc/source/ref/2d-dwt-and-idwt.rst doc/source/ref/cwt.rst doc/source/ref/dwt-coefficient-handling.rst doc/source/ref/dwt-discrete-wavelet-transform.rst doc/source/ref/idwt-inverse-discrete-wavelet-transform.rst doc/source/ref/index.rst doc/source/ref/iswt-inverse-stationary-wavelet-transform.rst doc/source/ref/nd-dwt-and-idwt.rst doc/source/ref/other-functions.rst doc/source/ref/signal-extension-modes.rst doc/source/ref/swt-stationary-wavelet-transform.rst doc/source/ref/thresholding-functions.rst doc/source/ref/wavelet-packets.rst doc/source/ref/wavelets.rst doc/source/regression/dwt-idwt.rst doc/source/regression/gotchas.rst doc/source/regression/index.rst doc/source/regression/modes.rst doc/source/regression/multilevel.rst doc/source/regression/wavelet.rst doc/source/regression/wp.rst doc/source/regression/wp2d.rst pywt/__init__.py pywt/_c99_config.py pywt/_cwt.py pywt/_doc_utils.py pywt/_dwt.py pywt/_functions.py pywt/_multidim.py pywt/_multilevel.py pywt/_pytest.py pywt/_pytesttester.py pywt/_swt.py pywt/_thresholding.py pywt/_utils.py pywt/_wavelet_packets.py pywt/conftest.py pywt/version.py pywt/_extensions/__init__.py pywt/_extensions/_cwt.c pywt/_extensions/_cwt.pxd pywt/_extensions/_cwt.pyx pywt/_extensions/_dwt.c pywt/_extensions/_dwt.pxd pywt/_extensions/_dwt.pyx pywt/_extensions/_pywt.c pywt/_extensions/_pywt.h pywt/_extensions/_pywt.pxd pywt/_extensions/_pywt.pyx pywt/_extensions/_swt.c pywt/_extensions/_swt.pyx pywt/_extensions/c_wt.pxd pywt/_extensions/common.pxd pywt/_extensions/config.pxi pywt/_extensions/wavelet.pxd pywt/_extensions/wavelets_list.pxi pywt/_extensions/c/common.c pywt/_extensions/c/common.h pywt/_extensions/c/convolution.c pywt/_extensions/c/convolution.h pywt/_extensions/c/convolution.template.c pywt/_extensions/c/convolution.template.h pywt/_extensions/c/cwt.c pywt/_extensions/c/cwt.h pywt/_extensions/c/cwt.template.c pywt/_extensions/c/cwt.template.h pywt/_extensions/c/templating.h pywt/_extensions/c/wavelets.c pywt/_extensions/c/wavelets.h pywt/_extensions/c/wavelets_coeffs.h pywt/_extensions/c/wavelets_coeffs.template.h pywt/_extensions/c/wt.c pywt/_extensions/c/wt.h pywt/_extensions/c/wt.template.c pywt/_extensions/c/wt.template.h pywt/data/__init__.py pywt/data/_readers.py pywt/data/_wavelab_signals.py pywt/data/aero.npz pywt/data/ascent.npz pywt/data/camera.npz pywt/data/create_dat.py pywt/data/ecg.npy pywt/data/sst_nino3.npz pywt/tests/test__pywt.py pywt/tests/test_concurrent.py pywt/tests/test_cwt_wavelets.py pywt/tests/test_data.py pywt/tests/test_deprecations.py pywt/tests/test_doc.py pywt/tests/test_dwt_idwt.py pywt/tests/test_functions.py pywt/tests/test_matlab_compatibility.py pywt/tests/test_matlab_compatibility_cwt.py pywt/tests/test_modes.py pywt/tests/test_multidim.py pywt/tests/test_multilevel.py pywt/tests/test_perfect_reconstruction.py pywt/tests/test_swt.py pywt/tests/test_thresholding.py pywt/tests/test_wavelet.py pywt/tests/test_wp.py pywt/tests/test_wp2d.py pywt/tests/data/cwt_matlabR2015b_result.npz pywt/tests/data/dwt_matlabR2012a_result.npz pywt/tests/data/generate_matlab_data.py pywt/tests/data/generate_matlab_data_cwt.py pywt/tests/data/wavelab_test_signals.npz util/__init__.py util/authors.py util/gh_lists.py util/refguide_check.py util/setenv_build32.bat util/setenv_build64.bat util/travis_osx_install.sh util/appveyor/build.cmd util/readthedocs/requirements.txtPyWavelets-1.1.1/PyWavelets.egg-info/dependency_links.txt0000644000175000017500000000000113552543071024125 0ustar lee8rxlee8rx00000000000000 PyWavelets-1.1.1/PyWavelets.egg-info/requires.txt0000644000175000017500000000001613552543071022454 0ustar lee8rxlee8rx00000000000000numpy>=1.13.3 PyWavelets-1.1.1/PyWavelets.egg-info/top_level.txt0000644000175000017500000000000513552543071022604 0ustar lee8rxlee8rx00000000000000pywt PyWavelets-1.1.1/README.rst0000644000175000017500000001437413552333332015757 0ustar lee8rxlee8rx00000000000000+---------------+-----------------+ | Service | Master branch | +===============+=================+ | Travis | |travis_ci| | +---------------+-----------------+ | Appveyor | |appveyor_ci| | +---------------+-----------------+ | Read the Docs | |read_the_docs| | +---------------+-----------------+ .. |travis_ci| image:: https://api.travis-ci.org/PyWavelets/pywt.svg?branch=master :align: middle :target: https://travis-ci.org/PyWavelets/pywt :alt: TravisCI Status .. |appveyor_ci| image:: https://ci.appveyor.com/api/projects/status/github/PyWavelets/pywt :align: middle :target: https://ci.appveyor.com/project/PyWavelets/pywt :alt: Appveyor Status .. |read_the_docs| image:: https://readthedocs.org/projects/pywavelets/badge/?version=latest :align: middle :target: https://pywavelets.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status PyWavelets ========== .. contents:: What is PyWavelets ------------------ PyWavelets is a free Open Source library for wavelet transforms in Python. Wavelets are mathematical basis functions that are localized in both time and frequency. Wavelet transforms are time-frequency transforms employing wavelets. They are similar to Fourier transforms, the difference being that Fourier transforms are localized only in frequency instead of in time and frequency. The main features of PyWavelets are: * 1D, 2D and nD Forward and Inverse Discrete Wavelet Transform (DWT and IDWT) * 1D, 2D and nD Multilevel DWT and IDWT * 1D and 2D Stationary Wavelet Transform (Undecimated Wavelet Transform) * 1D and 2D Wavelet Packet decomposition and reconstruction * 1D Continuous Wavelet Tranfsorm * Computing Approximations of wavelet and scaling functions * Over 100 `built-in wavelet filters`_ and support for custom wavelets * Single and double precision calculations * Real and complex calculations * Results compatible with Matlab Wavelet Toolbox (TM) Documentation ------------- Documentation with detailed examples and links to more resources is available online at http://pywavelets.readthedocs.org. For more usage examples see the `demo`_ directory in the source package. Installation ------------ PyWavelets supports `Python`_ >=3.5, and is only dependent on `NumPy`_ (supported versions are currently ``>= 1.13.3``). To pass all of the tests, `Matplotlib`_ is also required. `SciPy`_ is also an optional dependency. When present, FFT-based continuous wavelet transforms will use FFTs from SciPy rather than NumPy. There are binary wheels for Intel Linux, Windows and macOS / OSX on PyPi. If you are on one of these platforms, you should get a binary (precompiled) installation with:: pip install PyWavelets Users of the Anaconda_ Python distribution may wish to obtain pre-built Windows, Intel Linux or macOS / OSX binaries from the conda-forge channel. This can be done via:: conda install -c conda-forge pywavelets Several Linux distributions have their own packages for PyWavelets, but these tend to be moderately out of date. Query your Linux package manager tool for ``python-pywavelets``, ``python-wavelets``, ``python-pywt`` or a similar package name. If you want or need to install from source, you will need a working C compiler (any common one will work) and a recent version of `Cython`_. Navigate to the PyWavelets source code directory (containing ``setup.py``) and type:: pip install . The most recent *development* version can be found on GitHub at https://github.com/PyWavelets/pywt. The latest release, including source and binary packages for Intel Linux, macOS and Windows, is available for download from the `Python Package Index`_. You can find source releases at the `Releases Page`_. State of development & Contributing ----------------------------------- PyWavelets started in 2006 as an academic project for a master thesis on `Analysis and Classification of Medical Signals using Wavelet Transforms` and was maintained until 2012 by its `original developer`_. In 2013 maintenance was taken over in a `new repo `_) by a larger development team - a move supported by the original developer. The repo move doesn't mean that this is a fork - the package continues to be developed under the name "PyWavelets", and released on PyPi and Github (see `this issue `_ for the discussion where that was decided). All contributions including bug reports, bug fixes, new feature implementations and documentation improvements are welcome. Moreover, developers with an interest in PyWavelets are very welcome to join the development team! As of 2019, PyWavelets development is supported in part by Tidelift. `Help support PyWavelets with the Tidelift Subscription `_ Contact ------- Use `GitHub Issues`_ or the `mailing list`_ to post your comments or questions. **Report a security vulnerability:** https://tidelift.com/security License ------- PyWavelets is a free Open Source software released under the MIT license. If you wish to cite PyWavelets in a publication, please use the following JOSS publication. .. image:: http://joss.theoj.org/papers/10.21105/joss.01237/status.svg :target: https://doi.org/10.21105/joss.01237 Specific releases can also be cited via Zenodo. The DOI below will correspond to the most recent release. DOIs for past versions can be found by following the link in the badge below to Zenodo: .. image:: https://zenodo.org/badge/DOI/10.5281/zenodo.1407171.svg :target: https://doi.org/10.5281/zenodo.1407171 .. _built-in wavelet filters: http://wavelets.pybytes.com/ .. _Cython: http://cython.org/ .. _demo: https://github.com/PyWavelets/pywt/tree/master/demo .. _Anaconda: https://www.continuum.io .. _GitHub: https://github.com/PyWavelets/pywt .. _GitHub Issues: https://github.com/PyWavelets/pywt/issues .. _NumPy: https://www.numpy.org .. _SciPy: https://www.scipy.org .. _original developer: http://en.ig.ma .. _Python: http://python.org/ .. _Python Package Index: http://pypi.python.org/pypi/PyWavelets/ .. _mailing list: http://groups.google.com/group/pywavelets .. _Releases Page: https://github.com/PyWavelets/pywt/releases .. _Matplotlib: http://matplotlib.org PyWavelets-1.1.1/demo/0000755000175000017500000000000013552543071015206 5ustar lee8rxlee8rx00000000000000PyWavelets-1.1.1/demo/_dwt_decompose.c0000664000175000017500000000234213270003221020331 0ustar lee8rxlee8rx00000000000000/* * Note: this currently doesn't get installed. There's also no way to query * the location of wt.h. Conclusion: there is no C API. */ #include #include "wt.h" int main(){ // Using C API to decompose 1D signal. // Results equivalent to pywt.dwt([1,2,3,4,5,6,7,8], 'db2', 'zpd'). // Compile: gcc -I../src dwt_decompose.c ../src/wt.c ../src/wavelets.c ../src/common.c ../src/convolution.c Wavelet *w = wavelet('d', 2); MODE mode = MODE_ZEROPAD; int i; float input[] = {1,2,3,4,5,6,7,8,9}; float *cA, *cD; pywt_index_t input_len, output_len; input_len = sizeof input / sizeof input[0]; output_len = dwt_buffer_length(input_len, w->dec_len, mode); cA = wtcalloc(output_len, sizeof(float)); cD = wtcalloc(output_len, sizeof(float)); printf("Wavelet: %s %d\n\n", w->family_name, w->vanishing_moments_psi); float_dec_a(input, input_len, w, cA, output_len, mode); float_dec_d(input, input_len, w, cD, output_len, mode); for(i=0; i # Copyright (c) 2012-2016 The PyWavelets Developers # # See COPYING for license details. """ Wavelet Image Blender. Blend image A with texture extracted from image B by selecting detail coefficients: ----------------- ----------------- | | | | | | | | | | | | | A | | B | | | | | | | | | | | | | ----------------- ----------------- | | 2D DWT | 2D DWT | V V ----------------- --------- ----------------- | | | | | | | | A(LL) | H(LH) | | H(LH) | | | | | | | | IDWT | | ----------------- + ----------------- -----> | C | | | | | | | | | | V(HL) | D(HH) | | V(HL) | D(HH) | | | | | | | | | | | ----------------- ----------------- ----------------- (details only) """ import optparse import os import sys if os.name == 'nt': from time import clock # noqa else: from time import time as clock # noqa from PIL import Image # PIL import numpy # http://www.scipy.org import pywt def image2array(image): """PIL Image to NumPy array""" assert image.mode in ('L', 'RGB', 'CMYK') arr = numpy.fromstring(image.tobytes(), numpy.uint8) arr.shape = (image.size[1], image.size[0], len(image.getbands())) return arr.swapaxes(0, 2).swapaxes(1, 2).astype(numpy.float32) def array2image(arr, mode): """NumPy array to PIL Image""" arr = arr.swapaxes(1, 2).swapaxes(0, 2) arr[arr < 0] = 0 arr[arr > 255] = 255 arr = numpy.fix(arr).astype(numpy.uint8) return Image.frombytes(mode, arr.shape[1::-1], arr.tobytes()) def load_image(path, mode=None, size=None): """Load image""" im = Image.open(path) if im.mode not in ('L', 'P', 'RGB', 'CMYK'): raise TypeError("Image mode must be 'L', 'P', 'RGB' or 'CMYK'") if mode is not None: if mode == 'P': raise ValueError("Mode must be 'L', 'RGB' or 'CMYK'") im = im.convert(mode) elif im.mode == 'P': im = im.convert('RGB') if size is not None and im.size != size: im = im.resize(size, Image.ANTIALIAS) return im def blend_images(base, texture, wavelet, level, mode='smooth', base_gain=None, texture_gain=None): """Blend loaded images at `level` of granularity using `wavelet`""" base_data = image2array(base) texture_data = image2array(texture) output_data = [] # process color bands for base_band, texture_band in zip(base_data, texture_data): # multilevel dwt base_band_coeffs = pywt.wavedec2(base_band, wavelet, mode, level) texture_band_coeffs = pywt.wavedec2(texture_band, wavelet, mode, level) # average coefficients of base image output_band_coeffs = [base_band_coeffs[0]] # cA del base_band_coeffs[0], texture_band_coeffs[0] # blend details coefficients for n, (base_band_details, texture_band_details) in enumerate( zip(base_band_coeffs, texture_band_coeffs)): blended_details = [] for (base_detail, texture_detail) in zip(base_band_details, texture_band_details): if base_gain is not None: base_detail *= base_gain if texture_gain is not None: texture_detail *= texture_gain # select coeffs with greater energy blended = numpy.where(abs(base_detail) > abs(texture_detail), base_detail, texture_detail) blended_details.append(blended) base_band_coeffs[n] = texture_band_coeffs[n] = None output_band_coeffs.append(blended_details) # multilevel idwt new_band = pywt.waverec2(output_band_coeffs, wavelet, mode) output_data.append(new_band) del new_band, base_band_coeffs, texture_band_coeffs del base_data, texture_data output_data = numpy.array(output_data) return array2image(output_data, base.mode) def main(): usage = "usage: %prog -b BASE -t TEXTURE -o OUTPUT "\ "[-w WAVELET] [-l LEVEL] [-m MODE]" parser = optparse.OptionParser(usage=usage) parser.add_option("-b", "--base", dest="base", metavar="BASE", help="base image name") parser.add_option("-t", "--texture", dest="texture", metavar="TEXTURE", help="texture image name") parser.add_option("-o", "--output", dest="output", metavar="OUTPUT", help="output image name") parser.add_option("-w", "--wavelet", dest="wavelet", metavar="WAVELET", default='db2', help="wavelet name [default: %default]") parser.add_option("-l", "--level", dest="level", metavar="LEVEL", type="int", default=4, help="decomposition level [default: %default]") parser.add_option("-m", "--mode", dest="mode", metavar="MODE", default='symmetric', help="decomposition mode. Adjust this if" " getting edge artifacts [default: %default]") parser.add_option("-x", "--base_gain", dest="base_gain", metavar="BG", type="float", default=None, help="Base image gain [default: %default]") parser.add_option("-y", "--texture_gain", dest="texture_gain", metavar="TG", type="float", default=None, help="Texture image gain [default: %default]") parser.add_option("--timeit", dest="timeit", action="store_true", default=False, help="time blending operations") (options, args) = parser.parse_args() if None in (options.base, options.texture, options.output): parser.print_help() sys.exit(-1) base = load_image(options.base) texture = load_image(options.texture, base.mode, base.size) if options.timeit: t = clock() im = blend_images(base, texture, options.wavelet, options.level, options.mode, options.base_gain, options.texture_gain) if options.timeit: print("%.3fs" % (clock() - t)) im.save(options.output) if __name__ == '__main__': main() PyWavelets-1.1.1/demo/plot_demo_signals.py0000664000175000017500000000256013334573651021274 0ustar lee8rxlee8rx00000000000000#!/usr/bin/env python # -*- coding: utf-8 -*- """Plot the set of 1D demo signals available in `pywt.data.demo_signal`.""" import numpy as np import matplotlib.pyplot as plt import pywt # use 'list' to get a list of all available 1d demo signals signals = pywt.data.demo_signal('list') subplots_per_fig = 5 signal_length = 1024 i_fig = 0 n_figures = int(np.ceil(len(signals)/subplots_per_fig)) for i_fig in range(n_figures): # Select a subset of functions for the current plot func_subset = signals[ i_fig * subplots_per_fig:(i_fig + 1) * subplots_per_fig] # create a figure to hold this subset of the functions fig, axes = plt.subplots(subplots_per_fig, 1) axes = axes.ravel() for n, signal in enumerate(func_subset): if signal in ['Gabor', 'sineoneoverx']: # user cannot specify a length for these two x = pywt.data.demo_signal(signal) else: x = pywt.data.demo_signal(signal, signal_length) ax = axes[n] ax.plot(x.real) if signal == 'Gabor': # The Gabor signal is complex-valued ax.plot(x.imag) ax.legend(['Gabor (Re)', 'Gabor (Im)'], loc='upper left') else: ax.legend([signal, ], loc='upper left') # omit axes for any unused subplots for n in range(n + 1, len(axes)): axes[n].set_axis_off() plt.show() PyWavelets-1.1.1/demo/plot_wavelets.py0000664000175000017500000000514013270003221020433 0ustar lee8rxlee8rx00000000000000#!/usr/bin/env python # -*- coding: utf-8 -*- # Plot scaling and wavelet functions for db, sym, coif, bior and rbio families import itertools import matplotlib.pyplot as plt import pywt plot_data = [('db', (4, 3)), ('sym', (4, 3)), ('coif', (3, 2))] for family, (rows, cols) in plot_data: fig = plt.figure() fig.subplots_adjust(hspace=0.2, wspace=0.2, bottom=.02, left=.06, right=.97, top=.94) colors = itertools.cycle('bgrcmyk') wnames = pywt.wavelist(family) i = iter(wnames) for col in range(cols): for row in range(rows): try: wavelet = pywt.Wavelet(next(i)) except StopIteration: break phi, psi, x = wavelet.wavefun(level=5) color = next(colors) ax = fig.add_subplot(rows, 2 * cols, 1 + 2 * (col + row * cols)) ax.set_title(wavelet.name + " phi") ax.plot(x, phi, color) ax.set_xlim(min(x), max(x)) ax = fig.add_subplot(rows, 2*cols, 1 + 2*(col + row*cols) + 1) ax.set_title(wavelet.name + " psi") ax.plot(x, psi, color) ax.set_xlim(min(x), max(x)) for family, (rows, cols) in [('bior', (4, 3)), ('rbio', (4, 3))]: fig = plt.figure() fig.subplots_adjust(hspace=0.5, wspace=0.2, bottom=.02, left=.06, right=.97, top=.94) colors = itertools.cycle('bgrcmyk') wnames = pywt.wavelist(family) i = iter(wnames) for col in range(cols): for row in range(rows): try: wavelet = pywt.Wavelet(next(i)) except StopIteration: break phi, psi, phi_r, psi_r, x = wavelet.wavefun(level=5) row *= 2 color = next(colors) ax = fig.add_subplot(2*rows, 2*cols, 1 + 2*(col + row*cols)) ax.set_title(wavelet.name + " phi") ax.plot(x, phi, color) ax.set_xlim(min(x), max(x)) ax = fig.add_subplot(2*rows, 2*cols, 2*(1 + col + row*cols)) ax.set_title(wavelet.name + " psi") ax.plot(x, psi, color) ax.set_xlim(min(x), max(x)) row += 1 ax = fig.add_subplot(2*rows, 2*cols, 1 + 2*(col + row*cols)) ax.set_title(wavelet.name + " phi_r") ax.plot(x, phi_r, color) ax.set_xlim(min(x), max(x)) ax = fig.add_subplot(2*rows, 2*cols, 1 + 2*(col + row*cols) + 1) ax.set_title(wavelet.name + " psi_r") ax.plot(x, psi_r, color) ax.set_xlim(min(x), max(x)) plt.show() PyWavelets-1.1.1/demo/plot_wavelets_pyqtgraph.py0000664000175000017500000000303213317422762022551 0ustar lee8rxlee8rx00000000000000import sys import pywt from pyqtgraph.Qt import QtGui import pyqtgraph as pg families = ['db', 'sym', 'coif', 'bior', 'rbio'] def main(): app = QtGui.QApplication(sys.argv) tabs = QtGui.QTabWidget() for family in families: scroller = QtGui.QScrollArea() vb = pg.GraphicsWindow() vb.setMinimumHeight(3000) vb.setMinimumWidth(1900) scroller.setWidget(vb) for i, name in enumerate(pywt.wavelist(family)): pen = pg.intColor(i) wavelet = pywt.Wavelet(name) if wavelet.orthogonal: phi, psi, x = wavelet.wavefun(level=5) ax = vb.addPlot(title=wavelet.name + " phi") ax.plot(phi, pen=pen) bx = vb.addPlot(title=wavelet.name + " psi") bx.plot(psi, pen=pen) else: phi, psi, phi_r, psi_r, x = wavelet.wavefun(level=5) ax = vb.addPlot(title=wavelet.name + " phi") ax.plot(phi, pen=pen) bx = vb.addPlot(title=wavelet.name + " psi") bx.plot(psi, pen=pen) ax = vb.addPlot(title=wavelet.name + " phi_r") ax.plot(phi_r, pen=pen) bx = vb.addPlot(title=wavelet.name + " psi_r") bx.plot(psi_r, pen=pen) if i % 2 == 0: vb.nextRow() tabs.addTab(scroller, family) tabs.setWindowTitle('Wavelets') tabs.resize(1920, 1080) tabs.show() sys.exit(app.exec_()) if __name__ == '__main__': main() PyWavelets-1.1.1/demo/swt2.py0000664000175000017500000000130613270003221016442 0ustar lee8rxlee8rx00000000000000#!/usr/bin/env python # -*- coding: utf-8 -*- import matplotlib.pyplot as plt import pywt import pywt.data arr = pywt.data.aero() plt.imshow(arr, interpolation="nearest", cmap=plt.cm.gray) level = 0 titles = ['Approximation', ' Horizontal detail', 'Vertical detail', 'Diagonal detail'] for LL, (LH, HL, HH) in pywt.swt2(arr, 'bior1.3', level=3, start_level=0): fig = plt.figure() for i, a in enumerate([LL, LH, HL, HH]): ax = fig.add_subplot(2, 2, i + 1) ax.imshow(a, origin='image', interpolation="nearest", cmap=plt.cm.gray) ax.set_title(titles[i], fontsize=12) fig.suptitle("SWT2 coefficients, level %s" % level, fontsize=14) level += 1 plt.show() PyWavelets-1.1.1/demo/swt_variance.py0000644000175000017500000000345213552341401020242 0ustar lee8rxlee8rx00000000000000#!/usr/bin/env python import numpy as np import matplotlib.pyplot as plt import pywt import pywt.data ecg = pywt.data.ecg() # set trim_approx to avoid keeping approximation coefficients for all levels # set norm=True to rescale the wavelets so that the transform partitions the # variance of the input signal among the various coefficient arrays. coeffs = pywt.swt(ecg, wavelet='sym4', trim_approx=True, norm=True) ca = coeffs[0] details = coeffs[1:] print("Variance of the ecg signal = {}".format(np.var(ecg, ddof=1))) variances = [np.var(c, ddof=1) for c in coeffs] detail_variances = variances[1:] print("Sum of variance across all SWT coefficients = {}".format( np.sum(variances))) # Create a plot using the same y axis limits for all coefficient arrays to # illustrate the preservation of amplitude scale across levels when norm=True. ylim = [ecg.min(), ecg.max()] fig, axes = plt.subplots(len(coeffs) + 1) axes[0].set_title("normalized SWT decomposition") axes[0].plot(ecg) axes[0].set_ylabel('ECG Signal') axes[0].set_xlim(0, len(ecg) - 1) axes[0].set_ylim(ylim[0], ylim[1]) for i, x in enumerate(coeffs): ax = axes[-i - 1] ax.plot(coeffs[i], 'g') if i == 0: ax.set_ylabel("A%d" % (len(coeffs) - 1)) else: ax.set_ylabel("D%d" % (len(coeffs) - i)) # Scale axes ax.set_xlim(0, len(ecg) - 1) ax.set_ylim(ylim[0], ylim[1]) # reorder from first to last level of coefficients level = np.arange(1, len(detail_variances) + 1) # create a plot of the variance as a function of level plt.figure(figsize=(8, 6)) fontdict = dict(fontsize=16, fontweight='bold') plt.plot(level, detail_variances[::-1], 'k.') plt.xlabel("Decomposition level", fontdict=fontdict) plt.ylabel("Variance", fontdict=fontdict) plt.title("Variances of detail coefficients", fontdict=fontdict) plt.show() PyWavelets-1.1.1/demo/waveinfo.py0000664000175000017500000000364513270003221017371 0ustar lee8rxlee8rx00000000000000#!/usr/bin/env python # -*- coding: utf-8 -*- import sys import matplotlib.pyplot as plt import numpy as np import pywt usage = """ Usage: python waveinfo.py waveletname Example: python waveinfo.py 'sym5' """ try: wavelet = pywt.Wavelet(sys.argv[1]) try: level = int(sys.argv[2]) except IndexError as e: level = 10 except ValueError as e: print("Unknown wavelet") raise SystemExit except IndexError as e: print(usage) raise SystemExit data = wavelet.wavefun(level) if len(data) == 2: x = data[1] psi = data[0] fig = plt.figure() if wavelet.complex_cwt: plt.subplot(211) plt.title(wavelet.name+' real part') mi, ma = np.real(psi).min(), np.real(psi).max() margin = (ma - mi) * 0.05 plt.plot(x,np.real(psi)) plt.ylim(mi - margin, ma + margin) plt.xlim(x[0], x[-1]) plt.subplot(212) plt.title(wavelet.name+' imag part') mi, ma = np.imag(psi).min(), np.imag(psi).max() margin = (ma - mi) * 0.05 plt.plot(x,np.imag(psi)) plt.ylim(mi - margin, ma + margin) plt.xlim(x[0], x[-1]) else: mi, ma = psi.min(), psi.max() margin = (ma - mi) * 0.05 plt.plot(x,psi) plt.title(wavelet.name) plt.ylim(mi - margin, ma + margin) plt.xlim(x[0], x[-1]) else: funcs, x = data[:-1], data[-1] labels = ["scaling function (phi)", "wavelet function (psi)", "r. scaling function (phi)", "r. wavelet function (psi)"] colors = ("r", "g", "r", "g") fig = plt.figure() for i, (d, label, color) in enumerate(zip(funcs, labels, colors)): mi, ma = d.min(), d.max() margin = (ma - mi) * 0.05 ax = fig.add_subplot((len(data) - 1) // 2, 2, 1 + i) ax.plot(x, d, color) ax.set_title(label) ax.set_ylim(mi - margin, ma + margin) ax.set_xlim(x[0], x[-1]) plt.show() PyWavelets-1.1.1/demo/wp_2d.py0000664000175000017500000000243613270003221016563 0ustar lee8rxlee8rx00000000000000#!/usr/bin/env python # -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt from pywt import WaveletPacket2D import pywt.data arr = pywt.data.aero() wp2 = WaveletPacket2D(arr, 'db2', 'symmetric', maxlevel=2) # Show original figure plt.imshow(arr, interpolation="nearest", cmap=plt.cm.gray) path = ['d', 'v', 'h', 'a'] # Show level 1 nodes fig = plt.figure() for i, p2 in enumerate(path): ax = fig.add_subplot(2, 2, i + 1) ax.imshow(np.sqrt(np.abs(wp2[p2].data)), origin='image', interpolation="nearest", cmap=plt.cm.gray) ax.set_title(p2) # Show level 2 nodes for p1 in path: fig = plt.figure() for i, p2 in enumerate(path): ax = fig.add_subplot(2, 2, i + 1) p1p2 = p1 + p2 ax.imshow(np.sqrt(np.abs(wp2[p1p2].data)), origin='image', interpolation="nearest", cmap=plt.cm.gray) ax.set_title(p1p2) fig = plt.figure() i = 1 for row in wp2.get_level(2, 'freq'): for node in row: ax = fig.add_subplot(len(row), len(row), i) ax.set_title("%s=(%s row, %s col)" % ( (node.path,) + wp2.expand_2d_path(node.path))) ax.imshow(np.sqrt(np.abs(node.data)), origin='image', interpolation="nearest", cmap=plt.cm.gray) i += 1 plt.show() PyWavelets-1.1.1/demo/wp_scalogram.py0000664000175000017500000000270413270003221020224 0ustar lee8rxlee8rx00000000000000#!/usr/bin/env python # -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt import pywt x = np.linspace(0, 1, num=512) data = np.sin(250 * np.pi * x**2) wavelet = 'db2' level = 4 order = "freq" # other option is "normal" interpolation = 'nearest' cmap = plt.cm.cool # Construct wavelet packet wp = pywt.WaveletPacket(data, wavelet, 'symmetric', maxlevel=level) nodes = wp.get_level(level, order=order) labels = [n.path for n in nodes] values = np.array([n.data for n in nodes], 'd') values = abs(values) # Show signal and wavelet packet coefficients fig = plt.figure() fig.subplots_adjust(hspace=0.2, bottom=.03, left=.07, right=.97, top=.92) ax = fig.add_subplot(2, 1, 1) ax.set_title("linchirp signal") ax.plot(x, data, 'b') ax.set_xlim(0, x[-1]) ax = fig.add_subplot(2, 1, 2) ax.set_title("Wavelet packet coefficients at level %d" % level) ax.imshow(values, interpolation=interpolation, cmap=cmap, aspect="auto", origin="lower", extent=[0, 1, 0, len(values)]) ax.set_yticks(np.arange(0.5, len(labels) + 0.5), labels) # Show spectrogram and wavelet packet coefficients fig2 = plt.figure() ax2 = fig2.add_subplot(211) ax2.specgram(data, NFFT=64, noverlap=32, Fs=2, cmap=cmap, interpolation='bilinear') ax2.set_title("Spectrogram of signal") ax3 = fig2.add_subplot(212) ax3.imshow(values, origin='upper', extent=[-1, 1, -1, 1], interpolation='nearest') ax3.set_title("Wavelet packet coefficients") plt.show() PyWavelets-1.1.1/demo/wp_visualize_coeffs_distribution.py0000664000175000017500000000151013270003221024405 0ustar lee8rxlee8rx00000000000000#!/usr/bin/env python # -*- coding: utf-8 -*- import os import numpy as np import matplotlib.pyplot as plt from pywt import WaveletPacket import pywt.data ecg = pywt.data.ecg() wp = WaveletPacket(ecg, 'sym5', maxlevel=4) fig = plt.figure() plt.set_cmap('bone') ax = fig.add_subplot(wp.maxlevel + 1, 1, 1) ax.plot(ecg, 'k') ax.set_xlim(0, len(ecg) - 1) ax.set_title("Wavelet packet coefficients") for level in range(1, wp.maxlevel + 1): ax = fig.add_subplot(wp.maxlevel + 1, 1, level + 1) nodes = wp.get_level(level, "freq") nodes.reverse() labels = [n.path for n in nodes] values = -abs(np.array([n.data for n in nodes])) ax.imshow(values, interpolation='nearest', aspect='auto') ax.set_yticks(np.arange(len(labels) - 0.5, -0.5, -1), labels) plt.setp(ax.get_xticklabels(), visible=False) plt.show() PyWavelets-1.1.1/doc/0000755000175000017500000000000013552543071015027 5ustar lee8rxlee8rx00000000000000PyWavelets-1.1.1/doc/Makefile0000664000175000017500000000610213270003221016451 0ustar lee8rxlee8rx00000000000000# Makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build PAPER = BUILDDIR = build # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source .PHONY: help clean html dirhtml pickle json htmlhelp qthelp latex changes linkcheck doctest help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" @echo " dirhtml to make HTML files named index.html in directories" @echo " pickle to make pickle files" @echo " json to make JSON files" @echo " htmlhelp to make HTML files and a HTML help project" @echo " qthelp to make HTML files and a qthelp project" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" @echo " changes to make an overview of all changed/added/deprecated items" @echo " linkcheck to check all external links for integrity" @echo " doctest to run all doctests embedded in the documentation (if enabled)" clean: -rm -rf $(BUILDDIR)/* html: $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." dirhtml: $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." pickle: $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle @echo @echo "Build finished; now you can process the pickle files." json: $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json @echo @echo "Build finished; now you can process the JSON files." htmlhelp: $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp @echo @echo "Build finished; now you can run HTML Help Workshop with the" \ ".hhp project file in $(BUILDDIR)/htmlhelp." qthelp: $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp @echo @echo "Build finished; now you can run "qcollectiongenerator" with the" \ ".qhcp project file in $(BUILDDIR)/qthelp, like this:" @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/PyWavelets.qhcp" @echo "To view the help file:" @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/PyWavelets.qhc" latex: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \ "run these through (pdf)latex." changes: $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes @echo @echo "The overview file is in $(BUILDDIR)/changes." linkcheck: $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck @echo @echo "Link check complete; look for any errors in the above output " \ "or in $(BUILDDIR)/linkcheck/output.txt." doctest: $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest @echo "Testing of doctests in the sources finished, look at the " \ "results in $(BUILDDIR)/doctest/output.txt." PyWavelets-1.1.1/doc/doc2html.bat0000664000175000017500000000005513270003221017216 0ustar lee8rxlee8rx00000000000000sphinx-build -b html -a -E source build\html PyWavelets-1.1.1/doc/make.bat0000664000175000017500000000617413270003221016427 0ustar lee8rxlee8rx00000000000000@ECHO OFF REM Command file for Sphinx documentation set SPHINXBUILD=sphinx-build set BUILDDIR=build set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% source if NOT "%PAPER%" == "" ( set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% ) if "%1" == "" goto help if "%1" == "help" ( :help echo.Please use `make ^` where ^ is one of echo. html to make standalone HTML files echo. dirhtml to make HTML files named index.html in directories echo. pickle to make pickle files echo. json to make JSON files echo. htmlhelp to make HTML files and a HTML help project echo. qthelp to make HTML files and a qthelp project echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter echo. changes to make an overview over all changed/added/deprecated items echo. linkcheck to check all external links for integrity echo. doctest to run all doctests embedded in the documentation if enabled goto end ) if "%1" == "clean" ( for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i del /q /s %BUILDDIR%\* goto end ) if "%1" == "html" ( %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html echo. echo.Build finished. The HTML pages are in %BUILDDIR%/html. goto end ) if "%1" == "dirhtml" ( %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml echo. echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. goto end ) if "%1" == "pickle" ( %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle echo. echo.Build finished; now you can process the pickle files. goto end ) if "%1" == "json" ( %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json echo. echo.Build finished; now you can process the JSON files. goto end ) if "%1" == "htmlhelp" ( %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp echo. echo.Build finished; now you can run HTML Help Workshop with the ^ .hhp project file in %BUILDDIR%/htmlhelp. goto end ) if "%1" == "qthelp" ( %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp echo. echo.Build finished; now you can run "qcollectiongenerator" with the ^ .qhcp project file in %BUILDDIR%/qthelp, like this: echo.^> qcollectiongenerator %BUILDDIR%\qthelp\PyWavelets.qhcp echo.To view the help file: echo.^> assistant -collectionFile %BUILDDIR%\qthelp\PyWavelets.ghc goto end ) if "%1" == "latex" ( %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex echo. echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. goto end ) if "%1" == "changes" ( %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes echo. echo.The overview file is in %BUILDDIR%/changes. goto end ) if "%1" == "linkcheck" ( %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck echo. echo.Link check complete; look for any errors in the above output ^ or in %BUILDDIR%/linkcheck/output.txt. goto end ) if "%1" == "doctest" ( %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest echo. echo.Testing of doctests in the sources finished, look at the ^ results in %BUILDDIR%/doctest/output.txt. goto end ) :end PyWavelets-1.1.1/doc/paper/0000755000175000017500000000000013552543071016136 5ustar lee8rxlee8rx00000000000000PyWavelets-1.1.1/doc/paper/paper.bib0000644000175000017500000000716313552333332017727 0ustar lee8rxlee8rx00000000000000 @Book{mallat2008wavelet, title = {A wavelet tour of signal processing: the sparse way}, author = {Mallat, Stéphane}, year = {2008}, publisher = {Academic press} } @book{Daubechies1992, author = {Daubechies, Ingrid}, title = {Ten Lectures on Wavelets}, year = {1992}, isbn = {0-89871-274-2}, publisher = {Society for Industrial and Applied Mathematics}, address = {Philadelphia, PA, USA}, doi = {10.1137/1.9781611970104}, url = {https://doi.org/10.1137/1.9781611970104} } @Article{cython, author = {S. Behnel and R. Bradshaw and C. Citro and L. Dalcin and D. S. Seljebotn and K. Smith}, journal = {Computing in Science Engineering}, title = {Cython: The Best of Both Worlds}, year = {2011}, volume = {13}, number = {2}, pages = {31-39}, keywords = {C language;numerical analysis;Python language extension;Fortran code;numerical loops;Cython language;programming language;Sparse matrices;Runtime;Syntactics;Computer programs;Programming;Python;Cython;numerics;scientific computing}, doi = {10.1109/MCSE.2010.118}, ISSN = {1521-9615}, month = {March},} @Article{scikit-image, title = {scikit-image: image processing in {P}ython}, author = {van der Walt, {S}t\'efan and {S}ch\"onberger, {J}ohannes {L}. and {Nunez-Iglesias}, {J}uan and {B}oulogne, {F}ran\c{c}ois and {W}arner, {J}oshua {D}. and {Y}ager, {N}eil and {G}ouillart, {E}mmanuelle and {Y}u, {T}ony and the scikit-image contributors}, year = {2014}, month = {6}, keywords = {Image processing, Reproducible research, Education, Visualization, Open source, Python, Scientific programming}, volume = {2}, pages = {e453}, journal = {PeerJ}, issn = {2167-8359}, url = {http://dx.doi.org/10.7717/peerj.453}, doi = {10.7717/peerj.453} } @article{kymatio, author = {Mathieu Andreux and Tom{\'{a}}s Angles and Georgios Exarchakis and Roberto Leonarduzzi and Gaspar Rochette and Louis Thiry and John Zarka and St{\'{e}}phane Mallat and Joakim And{\'{e}}n and Eugene Belilovsky and Joan Bruna and Vincent Lostanlen and Matthew J. Hirn and Edouard Oyallon and Sixhin Zhang and Carmine{-}Emanuele Cella and Michael Eickenberg}, title = {Kymatio: Scattering Transforms in Python}, journal = {CoRR}, volume = {abs/1812.11214}, year = {2018}, url = {http://arxiv.org/abs/1812.11214}, archivePrefix = {arXiv}, eprint = {1812.11214}, timestamp = {Wed, 02 Jan 2019 14:40:18 +0100}, biburl = {https://dblp.org/rec/bib/journals/corr/abs-1812-11214}, bibsource = {dblp computer science bibliography, https://dblp.org} } @Misc{odl, author = {Jonas Adler and Holger Kohr and Axel Ringh and Julian Moosmann and Sebastian Banert and Matthias J. Ehrhardt and Gregory R. Lee and niinimaki and bgris and Olivier Verdier and Johan Karlsson and zickert and Willem Jan Palenstijn and \"Oktem Ozan and Chong Chen and Hector Andrade Loarca and Michael Lohmann}, title = {odlgroup/odl: ODL 0.7.0}, month = sep, year = 2018, doi = {10.5281/zenodo.1442734}, url = {https://doi.org/10.5281/zenodo.1442734} } TODO: determine real name for bgris, zickert, niinimaki PyWavelets-1.1.1/doc/paper/paper.md0000644000175000017500000001072113552333332017565 0ustar lee8rxlee8rx00000000000000--- title: 'PyWavelets: A Python package for wavelet analysis' tags: - Python - wavelets - wavelet packets - discrete wavelet transform - continuous wavelet transform - computational harmonic analysis authors: - name: Gregory R. Lee orcid: 0000-0001-8895-2740 affiliation: "1, 2" # (Multiple affiliations must be quoted) - name: Ralf Gommers orcid: 0000-0002-0300-3333 affiliation: "3, 4" - name: Filip Waselewski orcid: 0000-0003-0729-5879 affiliation: 6 - name: Kai Wohlfahrt orcid: 0000-0002-0970-5539 affiliation: 5 - name: Aaron O’Leary orcid: 0000-0003-1984-2323 affiliation: 6 affiliations: - name: Department of Radiology, Cincinnati Children's Hospital Medical Center, Cincinnati, OH, USA index: 1 - name: Department of Radiology, University of Cincinnati School of Medicine, Cincinnati, OH, USA index: 2 - name: Scion, 49 Sala Street, Private Bag 3020, Rotorua 3046, New Zealand index: 3 - name: FPInnovations, 2665 East Mall, Vancouver, BC V6T 1Z4, Canada index: 4 - name: Department of Biochemistry, University of Cambridge, Old Addenbrookes Site, 80 Tennis Court Road, Cambridge, CB2 1GA, United Kingdom index: 5 - name: None index: 6 date: 24 August 2018 bibliography: paper.bib --- # Summary Wavelets are a popular tool for computational harmonic analysis. They provide localization in both the temporal (or spatial) domain as well as in the frequency domain [@Daubechies1992]. A prominent feature is the ability to perform a multiresolution analysis [@mallat2008wavelet]. The wavelet transform of natural signals and images tends to have most of its energy concentrated in a small fraction of the coefficients. This sparse representation property is key to the good performance of wavelets in applications such as data compression and denoising. For example, the wavelet transform is a key component of the JPEG 2000 image compression standard. ``PyWavelets`` is a Python package implementing a number of n-dimensional discrete wavelet transforms as well as the 1D continuous wavelet transform. A wide variety of predefined wavelets are provided and it is possible for users to specify custom wavelet filter banks. All discrete wavelet transforms are implemented by convolution with finite impulse response filters. The required up/downsampling convolutions are implemented in C for good performance. Cython [@cython] is used to wrap the C code and implement axis-specific 1D transformations based on the low-level C routines. All multi-dimensional transforms are implemented in Python via separable application of the 1D transforms. The API for ``PyWavelets`` was designed to be similar to Matlab's wavelet toolbox and functions such as the 1D, 2D and 3D discrete wavelet transforms are tested for accuracy vs. their Matlab counterparts. PyWavelets has additional functionality not common in other wavelet toolboxes such as support for dimension $n > 3$ and support for both real and complex-valued data in either single or double precision. It is also possible to transform only a subset of axes and to vary the wavelet and signal boundary extension mode on a per-axis basis. ``PyWavelets`` was designed for use by scientists working within a range of applications including time-series analysis, signal processing, image processing and medical imaging. It has already been adopted as a required or optional dependency by a number of other software projects. For example, it has enabled wavelet-based image denoising in scikit-image [@scikit-image]. The Operator Discretization Library (ODL) [@odl] uses PyWavelets to enable wavelet-based regularization in iterative inverse problems such as computed tomography image reconstruction. Another related package which is independent of ``PyWavelets`` is Kymatio, which implements the wavelet scattering transform in 1D-3D [@kymatio]. The current implementation in Kymatio uses non-separable 2D and 3D wavelets defined in the frequency domain and is well suited to signal classification tasks, but does not have a simple inverse transform like the standard discrete wavelet transform. A number of common 1D demo signals used in the literature and in the manuscript by Stephan Mallat [-@mallat2008wavelet] are provided for use in teaching and for purposes of reproducible research. # Acknowledgements We would to acknowledge the various PyWavelets contributors for their contributions to the library, and specifically Holger Nahrstaedt for contributing a continuous wavelet transform. # References PyWavelets-1.1.1/doc/release/0000755000175000017500000000000013552543071016447 5ustar lee8rxlee8rx00000000000000PyWavelets-1.1.1/doc/release/0.3.0-notes.rst0000664000175000017500000001451313270003221020754 0ustar lee8rxlee8rx00000000000000============================== PyWavelets 0.3.0 Release Notes ============================== .. contents:: PyWavelets 0.3.0 is the first release of the package in 3 years. It is the result of a significant effort of a growing development team to modernize the package, to provide Python 3.x support and to make a start with providing new features as well as improved performance. A 0.4.0 release will follow shortly, and will contain more significant new features as well as changes/deprecations to streamline the API. This release requires Python 2.6, 2.7 or 3.3-3.5 and NumPy 1.6.2 or greater. Highlights of this release include: - Support for Python 3.x (>=3.3) - Added a test suite (based on nose, coverage up to 61% so far) - Maintenance work: C style complying to the Numpy style guide, improved templating system, more complete docstrings, pep8/pyflakes compliance, and more. New features ============ Test suite ---------- The test suite can be run with ``nosetests pywt`` or with:: >>> import pywt >>> pywt.test() n-D Inverse Discrete Wavelet Transform -------------------------------------- The function ``pywt.idwtn``, which provides n-dimensional inverse DWT, has been added. It complements ``idwt``, ``idwt2`` and ``dwtn``. Thresholding ------------ The function `pywt.threshold` has been added. It unifies the four thresholding functions that are still provided in the ``pywt.thresholding`` namespace. Backwards incompatible changes ============================== None in this release. Other changes ============= Development has moved to `a new repo `_. Everyone with an interest in wavelets is welcome to contribute! Building wheels, building with ``python setup.py develop`` and many other standard ways to build and install PyWavelets are supported now. Authors ======= * Ankit Agrawal + * François Boulogne + * Ralf Gommers + * David Menéndez Hurtado + * Gregory R. Lee + * David McInnis + * Helder Oliveira + * Filip Wasilewski * Kai Wohlfahrt + A total of 9 people contributed to this release. People with a "+" by their names contributed a patch for the first time. This list of names is automatically generated, and may not be fully complete. Issues closed for v0.3.0 ------------------------ - `#3 `__: Remove numerix compat layer - `#4 `__: Add single code base Python 3 support - `#5 `__: PEP8 issues - `#6 `__: Migrate tests to nose - `#7 `__: Expand test coverage without Matlab to a reasonable level - `#8 `__: Replace custom C templates by Numpy's templating system - `#9 `__: Replace Cython templates by fused types - `#10 `__: Replace use of __array_interface__ with Cython's memoryviews - `#11 `__: Format existing docstrings in numpydoc format. - `#12 `__: Complete docstrings, they're quite sparse right now - `#13 `__: Reorganize source tree - `#24 `__: doc/source/regression should be moved - `#27 `__: Broken test: test_swt_decomposition - `#28 `__: Install issue, no module tools.six - `#29 `__: wp.update fails after removal of nodes - `#32 `__: wp.update fails on 2D - `#34 `__: Wavelet string attributes shouldn't be bytes in Python 3 - `#35 `__: Re-enable float32 support - `#36 `__: wavelet instance vs string - `#40 `__: Test with Numpy 1.8rc1 - `#45 `__: demos should be updated and integrated in docs - `#60 `__: Moving pywt forward faster - `#61 `__: issues to address in moving towards 0.3.0 - `#71 `__: BUG: _pywt.downcoef always returns level=1 result Pull requests for v0.3.0 ------------------------ - `#1 `__: travis: check all branches + fix URL - `#17 `__: [DOC] doctrings for multilevel functions - `#18 `__: DOC: format -> functions.py - `#20 `__: MAINT: remove unnecessary zero() copy() - `#21 `__: Doc wavelet_packets - `#22 `__: Minor doc fixes - `#25 `__: TEST: remove useless functions and use numpy instead - `#26 `__: Merge most recent work - `#30 `__: Adding test for wp.rst - `#41 `__: Change to Numpy templating system - `#43 `__: MAINT: update six.py to not use lazy loading. - `#49 `__: Taking on API Issues - `#50 `__: Add idwtn - `#53 `__: readme updated with info related to Py3 version - `#63 `__: Remove six - `#65 `__: Thresholding - `#70 `__: MAINT: PEP8 fixes - `#72 `__: BUG: fix _downcoef for level > 1 - `#73 `__: MAINT: documentation and metadata update for repo fork - `#74 `__: STY: fix pep8/pyflakes issues - `#77 `__: MAINT: raise ValueError if data given to dwt or idwt is not 1D... PyWavelets-1.1.1/doc/release/0.4.0-notes.rst0000664000175000017500000001602713270003221020757 0ustar lee8rxlee8rx00000000000000============================== PyWavelets 0.4.0 Release Notes ============================== .. contents:: PyWavelets 0.4.0 is the culmination of 6 months of work. In addition to several new features, some changes and deprecations have been made to streamline the API. This release requires Python 2.6, 2.7 or 3.3-3.5 and NumPy 1.6.2 or greater. Highlights of this release include: - 1D and 2D inverse stationary wavelet transforms - Substantially faster 2D and nD discrete wavelet transforms - Complex number support - nD versions of the multilevel DWT and IDWT New features ============ 1D and 2D inverse stationary wavelet transforms ----------------------------------------------- 1D (``iswt``) and 2D (``iswt2``) inverse stationary wavelet transforms were added. These currently only support even length inputs. Faster 2D and nD wavelet transforms ----------------------------------- The multidimensional DWT and IDWT code was refactored and is now an order of magnitude faster than in previous releases. The following functions benefit: ``dwt2``, ``idwt2``, ``dwtn``, ``idwtn``. Complex floating point support ------------------------------ 64 and 128-bit complex data types are now supported by all wavelet transforms. nD implementation of the multilevel DWT and IDWT ------------------------------------------------ The existing 1D and 2D multilevel transforms were supplemented with an nD implementation. Wavelet transforms can be applied along a specific axis/axes ------------------------------------------------------------ All wavelet transform functions now support explicit specification of the axis or axes upon which to perform the transform. Example Datasets ---------------- Two additional 2D grayscale images were added (`camera`, `ascent`). The previously existing 1D ECG data (`ecg`) and the 2D aerial image (`aero`) used in the demos can also now be imported via functions defined in `pywt.data` (e.g. ``camera = pywt.data.camera()``) Deprecated features =================== A number of functions have been renamed, the old names are deprecated and will be removed in a future release: - ``intwave``, renamed to ``integrate_wavelet`` - ``centrfrq``, renamed to ``central_frequency`` - ``scal2frq``, renamed to ``scale2frequency`` - ``orthfilt``, renamed to ``orthogonal_filter_bank`` Integration of general signals (i.e. not wavelets) with ``integrate_wavelet`` is deprecated. The ``MODES`` object and its attributes are deprecated. The new name is ``Modes``, and the attribute names are expanded: - ``zpd``, renamed to ``zero`` - ``cpd``, renamed to ``constant`` - ``sp1``, renamed to ``smooth`` - ``sym``, renamed to ``symmetric`` - ``ppd``, renamed to ``periodic`` - ``per``, renamed to ``periodization`` Backwards incompatible changes ============================== ``idwt`` no longer takes a ``correct_size`` parameter. As a consequence, ``idwt2`` inputs must match exactly in length. For multilevel transforms, where arrays differing in size by one element may be produced, use the ``waverec`` functions from the ``multilevel`` module instead. Bugs Fixed ========== float32 inputs were not always respected. All transforms now return float32 outputs when called using float32 inputs. Incorrect detail coefficients were returned by `downcoef` when `level > 1`. Other changes ============= Much of the API documentation is now autogenerated from the corresponding function docstrings. The numpydoc sphinx extension is now needed to build the documentation. Authors ======= * Thomas Arildsen + * François Boulogne * Ralf Gommers * Gregory R. Lee * Michael Marino + * Aaron O'Leary + * Daniele Tricoli + * Kai Wohlfahrt A total of 8 people contributed to this release. People with a "+" by their names contributed a patch for the first time. This list of names is automatically generated, and may not be fully complete. Issues closed for v0.4.0 ------------------------ - `#46 `__: Independent test comparison - `#95 `__: Simplify Matlab tests - `#97 `__: BUG: erroneous detail coefficients returned by downcoef with... - `#140 `__: demo/dwt_signal_decomposition.py : TypeError: object of type... - `#141 `__: Documentation needs update: ImportError: cannot import name 'multilevel' Pull requests for v0.4.0 ------------------------ - `#55 `__: [RFC] Api changes - `#59 `__: Refactor convolution.c.src - `#64 `__: MAINT: make LH, HL variable names in idwt2 consistent with dwt2 - `#67 `__: ENH: add wavedecn and waverecn functions - `#68 `__: ENH: Faster dwtn and idwtn - `#88 `__: DOC minor edit about possible naming - `#93 `__: Added implementation of iswt and iswt2 - `#98 `__: fix downcoef detail coefficients for level > 1 - `#99 `__: complex support in all dwt and idwt related functions - `#100 `__: replace mlabwrap with python-matlab-bridge in Matlab tests - `#102 `__: Replace some .src expansion with macros - `#104 `__: Faster idwtn/dwtn - `#106 `__: make sure transforms respect float32 dtype - `#109 `__: DOC: fix broken link in sidebar for html docs. - `#112 `__: Complex fix - `#113 `__: TST: don't build .exe installers on Appveyor anymore, only wheels. - `#116 `__: [RFC] ENH: Add axis argument to dwt - `#117 `__: MAINT: remove deprecated for loop syntax from Cython code - `#121 `__: Fix typo - `#123 `__: MAINT: remove some unused imports - `#124 `__: switch travis from python 3.5-dev to 3.5 - `#130 `__: Add axis argument to multidim - `#138 `__: WIP: Documentation updates for v0.4.0 - `#139 `__: Autogenerate function API docs - `#142 `__: fix broken docstring examples in _multilevel.py - `#143 `__: handle None properly in waverec - `#144 `__: Add importable images - `#145 `__: DOC: Document MSVC versions PyWavelets-1.1.1/doc/release/0.5.0-notes.rst0000664000175000017500000002775713270003221020774 0ustar lee8rxlee8rx00000000000000============================== PyWavelets 0.5.0 Release Notes ============================== .. |MATLAB| unicode:: MATLAB U+02122 .. with trademark sign .. contents:: PyWavelets is a Python toolbox implementing both discrete and continuous wavelet transforms (mathematical time-frequency transforms) with a wide range of built-in wavelets. C/Cython are used for the low-level routines, enabling high performance. Key Features of PyWavelets are: * 1D, 2D and nD Forward and Inverse Discrete Wavelet Transform (DWT and IDWT) * 1D, 2D and nD Multilevel DWT and IDWT * 1D and 2D Forward and Inverse Stationary Wavelet Transform * 1D and 2D Wavelet Packet decomposition and reconstruction * 1D Continuous Wavelet Transform * When multiple valid implementations are available, we have chosen to maintain consistency with |MATLAB|'s Wavelet Toolbox. PyWavelets 0.5.0 is the culmination of 1 year of work. In addition to several new features, substantial refactoring of the underlying C and Cython code have been made. This release requires Python 2.6, 2.7 or 3.3-3.5 and NumPy 1.9.1 or greater. This will be the final release supporting Python 2.6 and 3.3. Highlights of this release include: - 1D continuous wavelet transforms - new discrete wavelets added (additional Debauchies and Coiflet wavelets) - new 'reflect' extension mode for discrete wavelet transforms - faster performance for multilevel forward stationary wavelet transforms (SWT) - n-dimensional support added to forward SWT - routines to convert multilevel DWT coefficients to and from a single array - axis support for multilevel DWT - substantial refactoring/reorganization of the underlying C and Cython code New features ============ 1D Continous Wavelet Transforms ------------------------------- A wide range of continous wavelets are now available. These include the following: - Gaussian wavelets (``gaus1``...``gaus8``) - Mexican hat wavelet (``mexh``) - Morlet wavelet (``morl``) - Complex Gaussian wavelets (``cgau1``...``cgau8``) - Shannon wavelet (``shan``) - Frequency B-Spline wavelet (``fbsp``) - Complex Morlet wavelet (``cmor``) Also, see the new CWT-related demo: demo/cwt_analysis.py New discrete wavelets --------------------- Additional Debauchies wavelets (``db20``...``db38``) and Coiflets (``coif6``...``coif17``) have been added. New extension mode: reflect --------------------------- Discrete wavelet transforms support a new extension mode, ``reflect``. This mode pads an array symmetrically, but without repeating the edge value. As an example:: pad array pad 4 3 2 | 1 2 3 4 5 | 4 3 2 This differs from ``symmetric``, which repeats the values at the boundaries:: pad array pad 3 2 1 | 1 2 3 4 5 | 5 4 3 Multilevel DWT Coefficient Handling ----------------------------------- New routines to convert the coefficients returned by multilevel DWT routines to and from a single n-dimensional array have been added. ``pywt.coeffs_to_array`` concatenates the output of ``wavedec``, ``wavedec2`` or ``wavedecn`` into a single numpy array. ``pywt.array_to_coeffs`` can be used to transform back from a single coefficient array to a format appropriate for ``waverec``, ``waverec2`` or ``waverecn``. More C function calls release the GIL ------------------------------------- Cython code calling the wavelet filtering routines (DWT and SWT) now releases the global interpreter lock (GIL) where possible. A potential use case is in speeding up the batch computation of several large DWTs using multi-threading (e.g. via concurrent.futures). Multilevel wavelet transforms along specific axes ------------------------------------------------- The axis specific transform support introduced in the prior release was extended to the multilevel DWT transforms. All ``wavedec*`` and ``waverec*`` routines have a new `axis` (1D) or `axes` (2D, nD) keyword argument. If unspecified the default behaviour is to transform all axes of the input. Faster multilevel stationary wavelet transforms ----------------------------------------------- Stationary wavelet transforms are now faster when the number of levels is greater than one. The improvement can be very large (multiple orders of magnitude) for transforms with a large number of levels. Deprecated features =================== Backwards incompatible changes ============================== A FutureWarning was added to ``swt2`` and ``iswt2`` to warn about a pending backwards incompatible change to the order of the coefficients in the list returned by these routines. The actual change will not occur until the next release. Transform coefficients will be returned in descending rather than ascending order. This change is being made for consistency with all other existing multi-level transforms in PyWavelets. Bugs Fixed ========== ``demo/image_blender.py`` was updated to support the new api of Pillow 3.x A bug related to size of assumed ``size_t`` on some platforms/compilers (e.g. Windows with mingw64) was fixed. Fix to memory leak in ``(i)dwt_axis`` Fix to a performance regression in ``idwt`` and ``iswt`` that was introduced in v0.4.0. Fixed a bug in ``dwtn`` and ``idwtn`` for data with complex dtype when ``axes != None``. Other changes ============= The minimum supported numpy version has been increased to 1.9.1. Test coverage (including for the Cython and C code) via `Codecov `_ was added and the overall test coverage has been improved. A substantial overhaul of the C extension code has been performed. Custom templating is no longer used. The intention is to make this code easier to maintain and expand in the future. The Cython code has been split out into a multiple files to hopefully make relevant portions of the wrappers easier to find for future developers. ``setup.py`` now relies on setuptools in all cases (rather than distutils). Authors ======= * Jonathan Dan + * Ralf Gommers * David Menéndez Hurtado * Gregory R. Lee * Holger Nahrstaedt + * Daniel M. Pelt + * Alexandre Saint + * Scott Sievert + * Kai Wohlfahrt * Frank Yu + A total of 10 people contributed to this release. People with a "+" by their names contributed a patch for the first time. This list of names is automatically generated, and may not be fully complete. Issues closed for v0.5.0 ------------------------ - `#48 `__: Continous wavelet transform? - `#127 `__: Reorganize _pywt - `#160 `__: Appveyor failing on recent PRs - `#163 `__: Set up coveralls - `#166 `__: Wavelet coefficients to single array (and vice versa?) - `#177 `__: Fail to install pywt due to the use of index_t which conflict with the defination in /usr/include/sys/types.h on smartos sysmte(open solaris like system) - `#180 `__: Memory leak - `#187 `__: 'reflect' signal extension mode - `#189 `__: bump minimum numpy version? - `#191 `__: Upgrade removed Pillow methods - `#196 `__: building in-place for development. - `#200 `__: swt implementation is considerably slower than MATLAB - `#209 `__: broken doctests - `#210 `__: Run doctests in CI setup - `#211 `__: Typo in iswt documentation - `#217 `__: `blank_discrete_wavelet` does not properly intiailize some properties - `#231 `__: I can't compile pywt Pull requests for v0.5.0 ------------------------ - `#148 `__: Reorganize C v2 - `#161 `__: Remove numpy distutils - `#162 `__: fix: iswt/idwt performance regression - `#164 `__: Improved coefficients for db and coif - `#167 `__: Add coverage (codecov.io) - `#168 `__: convert transform coefficients to and from a single n-dimensional array - `#169 `__: Remove templating - `#170 `__: :Always install new pip on Appveyor - `#172 `__: Adding of missing wavelets from the matlab list - `#178 `__: use Index_t instead of index_t - `#179 `__: add axis/axes support to multilevel discrete wavelet transforms - `#181 `__: Fix memory leak - `#182 `__: improve test coverage for _multidim.py and _multilevel.py - `#183 `__: improve coverage for _dwt.py - `#184 `__: fix corner case in coeffs_to_array - `#188 `__: Drop GIL in c_wt calls - `#190 `__: bump minimum numpy to 1.9 - `#192 `__: Upgrade to Pillow>=3 api - `#193 `__: ENH: add 'reflect' extension mode - `#197 `__: BLD: fix "python setup.py develop". Closes gh-196 - `#198 `__: Choose clz* based on SIZE_MAX - `#201 `__: speedup multi-level swt - `#205 `__: fix dwtn/idwtn with axes != None and complex data - `#206 `__: DOC: correct typo in iswt docstring - `#207 `__: minor documentation updates - `#208 `__: document coeff_to_array and array_to_coeff - `#214 `__: FIX: update several doctests to reflect the new wavelets added - `#218 `__: FIX: initialize all properties of a blank discrete wavelet - `#219 `__: document coordinate conventions for 2D DWT routines. - `#220 `__: Run doctests on TravisCI - `#221 `__: Documentation for cwt and ContinuousWavelet - `#222 `__: consistent use of double backticks in docs - `#223 `__: add FutureWarning about swt2 coefficient order - `#224 `__: n-dimensional stationary wavelet transform (swtn) and axis support in swt, swt2 - `#225 `__: BUG: fix breakage on 32-bit Python. - `#226 `__: DOC: update Copyright statements. - `#227 `__: ENH: add kind keyword to wavelist() - `#228 `__: MAINT: avoid using a builtin as variable name in qmf(). - `#229 `__: DOC: add swtn, iswt, iswt2 to the API documentation - `#230 `__: add demo of batch processing via concurrent.futures - `#234 `__: ENH: coeffs_to_array supports axes argument as recently added to wavedec* - `#236 `__: BLD: raise an ImportError if Cython should be installed but isn't. PyWavelets-1.1.1/doc/release/1.0.0-notes.rst0000664000175000017500000004075613443204401020767 0ustar lee8rxlee8rx00000000000000============================== PyWavelets 1.0.0 Release Notes ============================== .. contents:: We are very pleased to announce the release of PyWavelets 1.0. We view this version number as a milestone in the project's now more than a decade long history. It reflects that PyWavelets has stabilized over the past few years, and is now a mature package which a lot of other important packages depend on. A listing of those package won't be complete, but some we are aware of are: - `scikit-image `_ - image processing in Python - `imagehash `_ - perceptual image hashing - `pyradiomics `_ - extraction of Radiomics features from 2D and 3D images and binary masks - `tomopy `_ - Tomographic Reconstruction in Python - `SpikeSort `_ - Spike sorting library implemented in Python/NumPy/PyTables - `ODL `_ - operator discretization library This release requires Python 2.7 or >=3.5 and NumPy 1.9.1 or greater. The 1.0 release will be the last release supporting Python 2.7. It will be a Long Term Support (LTS) release, meaning that we will backport critical bug fixes to 1.0.x for as long as Python itself does so (i.e. until 1 Jan 2020). New features ============ New 1D test signals ------------------- Many common synthetic 1D test signals have been implemented in the new function ``pywt.data.demo_signals`` to encourage reproducible research. To get a list of the available signals, call ``pywt.data.demo_signals('list')``. These signals have been validated to match the test signals of the same name from the `Wavelab `_ toolbox (with the kind permission of Dr. David Donoho). C99 complex support ------------------- The Cython modules and underlying C library can now be built with C99 complex support when supported by the compiler. Doing so improves performance when running wavelet transforms on complex-valued data. On POSIX systems (Linux, Mac OS X), C99 complex support is enabled by default at build time. The user can set the environment variable ``USE_C99_COMPLEX`` to 0 or 1 to manually disable or enable C99 support at compile time. complex-valued CWT ------------------ The continuous wavelet transform, ``cwt``, now also accepts complex-valued data. More flexible specification of some continuous wavelets ------------------------------------------------------- The continous wavelets ``"cmor"``, ``"shan"`` and ``"fbsp"`` now let the user specify attributes such as their center frequency and bandwidth that were previously fixed. See more on this in the section on deprecated features. Fully Separable Discrete Wavelet Transfrom ------------------------------------------ A new variant of the multilevel n-dimensional DWT has been implemented. It is known as the fully separable wavelet transform (FSWT). The functions ``fswavedecn`` ``fswaverecn`` correspond to the forward and inverse transforms, respectively. This differs from the existing ``wavedecn`` and ``waverecn`` in dimensions >= 2 in that all levels of decomposition are performed along a single axis prior to moving on to the next. New thresholding methods ------------------------ ``pywt.threshold`` now supports non-negative Garotte thresholding (``mode='garotte'``). There is also a new function ``pywt.threshold_firm`` that implements firm (semi-soft) thresholding. Both of the these new thresholding methods are intermediate between soft and hard thresholding. New anti-symmetric boundary modes --------------------------------- Two new boundary handling modes for the discrete wavelet transforms have been implemented. These correspond to whole-sample and half-sample anti-symmetric boundary conditions (``antisymmetric`` and ``antireflect``). New functions to ravel and unravel wavedecn coefficients -------------------------------------------------------- The function ``ravel_coeffs`` can be used to ravel all coefficients from ``wavedec``, ``wavedec2`` or ``wavedecn`` into a single 1D array. Unraveling back into a list of individual n-dimensional coefficients can be performed by ``unravel_coeffs``. New functions to determine multilevel DWT coefficient shapes and sizes ---------------------------------------------------------------------- The new function ``wavedecn_size`` outputs the total number of coefficients that will be produced by a ``wavedecn`` decomposition. The function ``wavedecn_shapes`` returns full shape information for all coefficient arrays produced by ``wavedecn``. These functions provide the size/shape information without having to explicitly compute a transform. Deprecated features =================== The continous wavelets with names ``"cmor"``, ``"shan"`` and ``"fbsp"`` should now be modified to include formerly hard-coded attributes such as their center frequency and bandwidth. Use of the bare names "cmor". "shan" and "fbsp" is now deprecated. For "cmor" (and "shan"), the form of the wavelet name is now "cmorB-C" ("shanB-C") where B and C are floats representing the bandwidth frequency and center frequency. For "fbsp" the form should now incorporate three floats as in "fbspM-B-C" where M is the spline order and B and C are the bandwidth and center frequencies. Backwards incompatible changes ============================== Python 2.6, 3.3 and 3.4 are no longer supported. The order of coefficients returned by ``swt2`` and input to ``iswt2`` have been reversed so that the decomposition levels are now returned in descending rather than ascending order. This makes these 2D stationary wavelet functions consistent with all of the other multilevel discrete transforms in PyWavelets. For ``wavedec``, ``wavedec2`` and ``wavedecn``, the ability for the user to specify a ``level`` that is greater than the value returned by ``dwt_max_level`` has been restored. A ``UserWarning`` is raised instead of a ``ValueError`` in this case. Bugs Fixed ========== Assigning new data to the ``Node`` or ``Node2D`` no longer forces a cast to ``float64`` when the data is one of the other dtypes supported by the dwt (``float32``, ``complex64``, ``complex128``). Calling ``pywt.threshold`` with ``mode='soft'`` now works properly for complex-valued inputs. A segfault when running multiple `swt2` or `swtn` transforms concurrently has been fixed. Several instances of deprecated numpy multi-indexing that caused warnings in numpy >=1.15 have been resolved. The 2d inverse stationary wavelet transform, `iswt2`, now supports non-square inputs (an unnecessary check for square inputs was removed). Wavelet packets no longer convert float32 to float64 upon assignment to nodes. Doctests have been updated to also work with NumPy >= 1.14, Indexing conventions have been updated to avoid FutureWarnings in NumPy 1.15. Other changes ============= Python 3.7 is now officially supported. Authors ======= * 0-tree + * Jacopo Antonello + * Matthew Brett + * Saket Choudhary + * Michael V. DePalatis + * Daniel Goertzen + * Ralf Gommers * Mark Harfouche + * John Kirkham + * Dawid Laszuk + * Gregory R. Lee * Michel Pelletier + * Balint Reczey + * SylvainLan + * Daniele Tricoli * Kai Wohlfahrt A total of 16 people contributed to this release. People with a "+" by their names contributed a patch for the first time. This list of names is automatically generated, and may not be fully complete. Issues closed for v1.0.0 ------------------------ The following 15 issues were closed for this release. * `#405 `__: New warning appearing * `#397 `__: Make pip install work if numpy is not yet installed * `#396 `__: Allow more levels in wavedec * `#386 `__: Improve documentation for cwt * `#396 `__: Allow more levels in wavedec * `#368 `__: Bug in ISWT2 for non-rectangular arrays * `#363 `__: Crash threading swt2 * `#357 `__: reconstruction from array_to_coeff and waverec * `#352 `__: FYI: PyWavelet does not correctly declare setup.py dependency... * `#338 `__: upcoef - TypeError: No matching signature found * `#335 `__: Build issue: PyWavelets does not install from sdist * `#333 `__: user-friendly error messages regarding discrete vs. continuous... * `#326 `__: Allow complex dtype of input * `#316 `__: Test fail in some architectures * `#312 `__: Documentation should suggest using the default conda channel * `#308 `__: incorporate bandwidths into CWT wavelet names for families `cmor`,... * `#306 `__: dwt_max_levels not enough documentation * `#302 `__: Can't remove cA and then reconstruct * `#290 `__: idwtn should treat coefficients set to None as zeros * `#288 `__: RuntimeErrors and segfaults from swt2() in threaded environments Pull requests for v1.0.0 ------------------------ A total of 53 pull requests were merged for this release. * `#248 `__: DOC: sync PyWavelets main descriptions. * `#249 `__: Add pyqtgraph demo for plotting wavelets * `#254 `__: DOC: fix rendering of wavelist docstring * `#255 `__: ENH: improve iswt performance * `#256 `__: ENH: add iswtn (n-dimensional inverse SWT) * `#257 `__: s/addional/additional/ * `#260 `__: TST: test OS X build on TravisCI. Closes gh-75. * `#262 `__: avoid some compiler warnings * `#263 `__: MAINT: better exception message for Wavelet('continuous_familyname') * `#264 `__: add ASV (continued) * `#265 `__: MAINT: fix more compiler warnings * `#269 `__: allow string input in dwt_max_level * `#270 `__: DOC: update ISWT documentation * `#272 `__: allow separate wavelet/mode for each axis in routines based on... * `#273 `__: fix non-integer index error * `#275 `__: ENH: use single precision routines for half-precision inputs * `#276 `__: update wp_scalogram demo work with matplotlib 2.0 * `#285 `__: Fix spelling typo * `#286 `__: MAINT: Package the license file * `#291 `__: idwtn should allow coefficients to be set as None * `#292 `__: MAINT: ensure tests are included in wheels * `#294 `__: FIX: shape adjustment in waverec should not assume a transform... * `#299 `__: DOC: update outdated scipy-user email address * `#300 `__: ENH: compiling with C99 support (non-MSVC only) * `#303 `__: DOC: better document how to handle omitted coefficients in multilevel... * `#309 `__: Document how max levels are determined for multilevel DWT and... * `#310 `__: parse CWT wavelet names for parameters * `#314 `__: TST: Explicity align data records in test_byte_offset() * `#317 `__: TST: specify rtol and atol for assert_allclose calls in test_swt_decomposition * `#320 `__: Suggest using default conda channel to install * `#321 `__: BLD: add pyproject.toml file (PEP 518 support). * `#322 `__: support soft thresholding of complex valued data * `#331 `__: Rename to CONTRIBUTING.rst * `#337 `__: provide a more helpful error message for wrong wavelet type * `#339 `__: check for wrong number of dimensions in upcoef and downcoef * `#340 `__: DOC: fix broken link to Airspeed Velocity documentation * `#344 `__: force legacy numpy repr for doctests * `#349 `__: test case for CWT with complex input * `#350 `__: better document the size requirements for swt/swt2/swtn * `#351 `__: Add two new antisymmetric edge modes * `#353 `__: DOC: add citation info to the front page of the docs. * `#354 `__: add firm (semi-soft) and non-negative garotte thresholding * `#355 `__: swt(): inference of level=None to depend on axis * `#356 `__: fix: default level in `wavedec2` and `wavedecn` can be too conservative * `#360 `__: fix Continuous spelling * `#361 `__: AttributeError when using coeffs_to_array * `#362 `__: Fix spelling of continuous globally * `#364 `__: DOC: Explicitly print wavelet name for invalid wavelets * `#367 `__: fix segfault related to parallel SWT * `#369 `__: remove iswt2's restriction on non-square inputs * `#376 `__: add common 1d synthetic signals * `#377 `__: minor update to demo_signals * `#378 `__: numpy: 1.15 multiindexing warning. targetted fix * `#380 `__: BLD: fix doc build on ReadTheDocs, need matplotlib for plots... * `#381 `__: Fix corner case for small scales in CWT * `#382 `__: avoid FutureWarnings related to multiindexing in Numpy1.15 * `#383 `__: adding Community guidelines * `#384 `__: swap swt2 coefficient order (and remove FutureWarnings) * `#387 `__: improve CWT docs * `#390 `__: MAINT: update Python version support. Closes gh-385. * `#391 `__: fix broken link in documentation * `#392 `__: do not force float64 dtype on assignment to Node, Node2D * `#398 `__: MAINT: update .gitignore for files generated during build. * `#401 `__: Fix failing numpy 1.9.3 build on Travis CI * `#403 `__: Change ValueError to UserWarning when level is > dwt_max_level * `#404 `__: BLD: fix ReadTheDocs build. Outdated NumPy gave a conflict with MPL. * `#410 `__: DOC: rewrite docs front page * `#413 `__: add wavelets.pybytes.com disclaimer PyWavelets-1.1.1/doc/release/1.1.0-notes.rst0000644000175000017500000002016413552333332020764 0ustar lee8rxlee8rx00000000000000============================== PyWavelets 1.1.0 Release Notes ============================== .. contents:: We are very pleased to announce the release of PyWavelets 1.1. This release includes enhanced functionality for both the stationary wavelet transforms (``swt``, ``swt2``, ``swtn``) as well as the continuous wavelet transform (``cwt``). In addition, there are a handful of bug fixes as described in more detail below. This release has dropped Python 2.7 support and now requires Python >= 3.5. In addition to these changes to the software itself, a paper describing PyWavelets was recently published in The Journal of Open Source Software: https://joss.theoj.org/papers/10.21105/joss.01237 New features ============ - All ``swt`` functions now have a new ``trim_approx`` option that can be used to exclude the approximation coefficients from all but the final level of decomposition. This mode makes the output of these functions consistent with the format of the output from the corresponding ``wavedec`` functions. - All ``swt`` functions also now have a new ``norm`` option that, when set to ``True`` and used in combination with ``trim_approx=True``, gives a partition of variance across the transform coefficients. In other words, the sum of the variances of all coefficients is equal to the variance of the original data. This partitioning of variance makes the ``swt`` transform more similar to the multiple-overlap DWT (MODWT) described in Percival and Walden's book, "Wavelet Methods for Time Series Analysis". (#476) A demo of this new ``swt`` functionality is available at https://github.com/PyWavelets/pywt/blob/master/demo/swt_variance.py - The continuous wavelet transform (``cwt``) now offers an FFT-based implementation in addition to the previous convolution based one. The new ``method`` argument can be set to either ``'conv'`` or ``'fft'`` to select between these two implementations. (#490). - The ``cwt`` now also has ``axis`` support so that CWTs can be applied in batch along any axis of an n-dimensional array. This enables faster batch transformation of signals. (#509) Backwards incompatible changes ============================== - When the input to ``cwt`` is single precision, the computations are now performed in single precision. This was done both for efficiency and to make ``cwt`` handle dtypes consistently with the discrete transforms in PyWavelets. This is a change from the prior behaviour of always performing the ``cwt`` in double precision. (#507) - When using complex-valued wavelets with the ``cwt``, the output will now be the complex conjugate of the result that was produced by PyWavelets 1.0.x. This was done to account for a bug described below. The magnitude of the ``cwt`` coefficients will still match those from previous releases. (#439) Bugs Fixed ========== - For a ``cwt`` with complex wavelets, the results in PyWavelets 1.0.x releases matched the output of Matlab R2012a's ``cwt``. Howveer, older Matlab releases like R2012a had a phase that was of opposite sign to that given in textbook definitions of the CWT (Eq. 2 of Torrence and Compo's review article, "A Practical Guide to Wavelet Analysis"). Consequently, the wavelet coefficients were the complex conjugates of the expected result. This was validated by comparing the results of a transform using ``cmor1.0-1.0`` as compared to the ``cwt`` implementation available in Matlab R2017b as well as the function ``wt.m`` from the Lancaster University Physics department's `MODA toolbox `_. (#439) - For some boundary modes and data sizes, round-trip ``dwt``/``idwt`` can result in an output that has one additional coefficient. Prior to this relese, this could cause a failure during ``WaveletPacket`` or ``WaveletPacket2D`` reconstruction. These wavelet packet transforms have now been fixed and round-trip wavelet packet transforms always preserve the original data shape. (#448) - All inverse transforms now handle mixed precision coefficients consistently. Prior to this release some inverse transform raised an error upon encountering mixed precision dtypes in the wavelet subbands. In release 1.1, when the user-provided coefficients are a mixture of single and double precision, all coefficients will be promoted to double precision. (#450) - A bug that caused a failure for ``iswtn`` when using user-provided ``axes`` with non-uniform shape along the transformed axes has been fixed. (#462) Other changes ============= - The PyWavelet test suite now uses ``pytest`` rather than ``nose``. (#477) - Cython code has been updated to use ``language_level=3``. (#435) - PyWavelets has adopted the SciPy Code of Conduct. (#521) Authors ======= * Pavle Boškoski + * Luke M Craig + * Corey Goldberg * Ralf Gommers * Gregory R. Lee * Pavle Boškoski + * Lokesh Ravindranathan * Alexandre Sauve + * Arfon Smith + * Valentin Valls + A total of 10 people contributed to this release. People with a "+" by their names contributed a patch for the first time. This list of names is automatically generated, and may not be fully complete. Issues closed for v1.1.0 ------------------------ - `#389 `__: Change test suite from nose to pytest - `#445 `__: Batch load for pywt.cwt - `#449 `__: Coefficients arrays must have the same dtype error in iswt function Pull requests for v1.1.0 ------------------------ - `#434 `__: Drop Python 2.7 testing on CI and update docs for Python 3.5+... - `#435 `__: set language_level=3 for Cython - `#436 `__: Fix deprecated import for Iterable - `#438 `__: Fix spelling of "Garrote" - `#439 `__: fix the phase of CWT when using complex mother wavelets - `#442 `__: document the numpy.pad equivalent of 'antireflect' - `#446 `__: Spelling correction - `#448 `__: Properly trim wavelet packet node coefficients during reconstruction - `#450 `__: handle mixed dtype cofficients correctly across inverse transforms - `#462 `__: fix bug in iswtn for data of arbitrary shape when using user-specified... - `#463 `__: TST: fix misc. doctest failures (test_doc.py) - `#471 `__: user-friendly error messages about multilevel DWT format - `#476 `__: swt normalization and option to trim the approximation coefficients - `#477 `__: MAINT/TST: update tests to use pytest - `#490 `__: cwt with fft convolution support - `#495 `__: BLD: add missing import of warnings module to setup.py - `#499 `__: register markers for pytest 4.5 compatibility - `#502 `__: fix docstring's scale2frequency parameter order - `#506 `__: Guard against trying to transform along size 0 axes - `#507 `__: preserve single precision in CWT - `#509 `__: add axis support to cwt - `#510 `__: add demo using swt with norm=True to analyze variance across... - `#511 `__: MAINT: split bundled licenses into a separate file - `#514 `__: Small typo in the doc - `#516 `__: Fix docstrings to avoid sphinx warnings - `#521 `__: DOC: adopt the SciPy Code of Conduct PyWavelets-1.1.1/doc/release/1.1.1-notes.rst0000644000175000017500000000036713552477326021004 0ustar lee8rxlee8rx00000000000000============================== PyWavelets 1.1.1 Release Notes ============================== .. contents:: This release is identical in functionality to 1.1.0. It fixes setup.py to prevent pip from trying to install from PyPI for Python < 3.5. PyWavelets-1.1.1/doc/source/0000755000175000017500000000000013552543071016327 5ustar lee8rxlee8rx00000000000000PyWavelets-1.1.1/doc/source/_static/0000755000175000017500000000000013552543071017755 5ustar lee8rxlee8rx00000000000000PyWavelets-1.1.1/doc/source/_static/comments.png0000664000175000017500000000105513270003221022274 0ustar lee8rxlee8rx00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8ˍOPYML܌&.]$$κHA<–CXG((GIK^9Y:p V8y~h"+j).UP"K m:ruS( Qr?рOeb նUZ"[n_絖)TyXywe-~, BhX)7oȅ0i=] !B.m V}a~v$;Ř0!B.\]}ŕN.Z|*[\r> 0#B.8CQu]mKOM[iy1Qqұ/Pp  >1\Qzq/Pp!+6@IZ1pQq/ P6pLbx1Qq,/KPip1Qq/-P?pRcv1Qqϑܱ/Pp!&,>X1qQq       *?PyWavelets-1.1.1/doc/source/_static/github.png0000664000175000017500000000070513270003221021732 0ustar lee8rxlee8rx00000000000000PNG  IHDR7bKGD) pHYsHHFk> vpAg\ƭIDAT(υѿgCQONdJNkn.!S]OdJY^J K.nBHNJw:9롢H낆 Ҋ?/}_'֏ jC E#m*Ưi)LYUھ}ظxq`u#RkRJj4$! dD!iOn9C/im&N{ A DJD)u\~'ו:nһaK A I"%wyĖU־zRWO؄wRD(SHIF^}:߿,?~V^P[[nƍ<=<}|hPJR2000\|yJGggҥK`p hPfFSM`03[UUu@KG o@;13DePbFfb#`&e_J+'Ng8028 320?+WWPXXۯXsus$#&ʄPT\q̙XXtWxhX@!LA |*O>`ee= n@QQrw{۾ @?+# C8fbc u)ffkg8 )&Mvefð`䔔EpTZW ~p?OA!C439ߵ M---(11Ѥng/;(v`xbHKIH@OO:}3WA0. ^AIENDB`PyWavelets-1.1.1/doc/source/_static/wave.png0000664000175000017500000000054113270003221021410 0ustar lee8rxlee8rx00000000000000PNG  IHDRabKGDB{7: pHYs  tIME(u8IDATxݓ0F??gT(~=)-  K(؃l"Ady 7G~G,߽ꌉ:cΘ@f܎< ,AǨ/5odw"%4tiTNvgBYX ^蟀:Q2dr[4iڗ.ӊ\,Ъ;j ` $x/}AN?F̶&Tmu#<Ve}Ү:IENDB`PyWavelets-1.1.1/doc/source/_templates/0000755000175000017500000000000013552543071020464 5ustar lee8rxlee8rx00000000000000PyWavelets-1.1.1/doc/source/_templates/editdocument.html0000664000175000017500000000277713270003221024036 0ustar lee8rxlee8rx00000000000000{% set repo="PyWavelets/pywt" %} {% set branch="master" %}

Edit this document

The source code of this file is hosted on GitHub. Everyone can update and fix errors in this document with few clicks - no downloads needed.

PyWavelets-1.1.1/doc/source/_templates/page.html0000664000175000017500000000307513270003221022256 0ustar lee8rxlee8rx00000000000000{# Drop version number from the HTML documentation title #} {%- set docstitle = "PyWavelets Documentation" %} {% extends "!page.html" %} {% block extrahead %} {{ super() }} {% endblock %} {# Remove version number from the top and bottom path bars #} {%- block rootrellink %}
  • Home{{ reldelim1 }}
  • {%- endblock %} PyWavelets-1.1.1/doc/source/_templates/quicklinks.html0000664000175000017500000000100313270003221023504 0ustar lee8rxlee8rx00000000000000 PyWavelets-1.1.1/doc/source/common_refs.rst0000644000175000017500000000225713552333332021373 0ustar lee8rxlee8rx00000000000000.. _built-in wavelet filters: http://wavelets.pybytes.com/ .. _Cython: http://cython.org/ .. _demo: https://github.com/PyWavelets/pywt/tree/master/demo .. _Anaconda: https://www.continuum.io .. _GitHub: https://github.com/PyWavelets/pywt .. _GitHub repository: https://github.com/PyWavelets/pywt .. _GitHub Issues: https://github.com/PyWavelets/pywt/issues .. _NumPy: https://www.numpy.org .. _SciPy: https://www.scipy.org .. _original developer: http://en.ig.ma .. _Python: http://python.org/ .. _Python Package Index: http://pypi.python.org/pypi/PyWavelets/ .. _PyPI: http://pypi.python.org/pypi/PyWavelets/ .. _PyWavelets discussions group: http://groups.google.com/group/pywavelets .. _Releases Page: https://github.com/PyWavelets/pywt/releases .. _Matplotlib: http://matplotlib.org .. _guidelines for pull requests: https://github.com/PyWavelets/pywt/tree/master/CONTRIBUTING.rst .. _community guidelines: https://github.com/PyWavelets/pywt/tree/master/community_guidelines.rst .. _code of conduct: https://github.com/PyWavelets/pywt/tree/master/doc/source/dev/conduct/community_guidelines.rst .. _StackOverflow: https://stackoverflow.com .. _wavelets.pybytes.com: http://wavelets.pybytes.com/ PyWavelets-1.1.1/doc/source/conf.py0000644000175000017500000001717413552333332017635 0ustar lee8rxlee8rx00000000000000# -*- coding: utf-8 -*- # # PyWavelets documentation build configuration file, created by # sphinx-quickstart on Sun Mar 14 10:46:18 2010. # # This file is execfile()d with the current directory set to its containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. import re import datetime import jinja2.filters import numpy as np # FIXME: doctests need the str/repr formatting used in Numpy < 1.14. try: np.set_printoptions(legacy='1.13') except TypeError: pass # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. #sys.path.append(os.path.abspath('.')) # -- General configuration ----------------------------------------------------- # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ['sphinx.ext.doctest', 'sphinx.ext.autodoc', 'sphinx.ext.todo', 'sphinx.ext.extlinks', 'sphinx.ext.mathjax', 'sphinx.ext.autosummary', 'numpydoc', 'sphinx.ext.intersphinx', 'matplotlib.sphinxext.plot_directive'] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # The suffix of source filenames. source_suffix = '.rst' # The encoding of source files. #source_encoding = 'utf-8' # The master toctree document. master_doc = 'index' # General information about the project. project = 'PyWavelets' copyright = '2006-%s, The PyWavelets Developers' % datetime.date.today().year # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # The default replacements for |version| and |release|, also used in various # other places throughout the built documents. import pywt version = re.sub(r'\.dev0+.*$', r'.dev', pywt.__version__) release = pywt.__version__ print("PyWavelets (VERSION %s)" % (version,)) # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # List of documents that shouldn't be included in the build. unused_docs = ['substitutions', ] # List of directories, relative to source directory, that shouldn't be searched # for source files. exclude_trees = ['_build'] # The reST default role (used for this markup: `text`) to use for all documents. #default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. #add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). #add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. #show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # A list of ignored prefixes for module index sorting. modindex_common_prefix = ['pywt.'] # -- Options for HTML output --------------------------------------------------- # The theme to use for HTML and HTML Help pages. Major themes that come with # Sphinx are currently 'default' and 'sphinxdoc'. html_theme = 'nature' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. #html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. #html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". html_title = 'PyWavelets Documentation' # A shorter title for the navigation bar. Default is the same as html_title. #html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. #html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. html_favicon = '_static/favicon.ico' # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. #html_use_smartypants = True # Custom sidebar templates, maps document names to template names. #html_sidebars = {} html_sidebars = { '**': ['localtoc.html', "relations.html", 'quicklinks.html', 'searchbox.html', 'editdocument.html'], } # Additional templates that should be rendered to pages, maps page names to # template names. #html_additional_pages = {} # If false, no module index is generated. #html_use_modindex = True # If false, no index is generated. #html_use_index = True # If true, the index is split into individual pages for each letter. #html_split_index = False # If true, links to the reST sources are added to the pages. html_show_sourcelink = False # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. html_use_opensearch = 'http://pywavelets.readthedocs.org' # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). #html_file_suffix = '' # Output file base name for HTML help builder. htmlhelp_basename = 'PyWaveletsdoc' # -- Options for LaTeX output -------------------------------------------------- # The paper size ('letter' or 'a4'). #latex_paper_size = 'letter' # The font size ('10pt', '11pt' or '12pt'). #latex_font_size = '10pt' # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ ('index', 'PyWavelets.tex', 'PyWavelets Documentation', 'The PyWavelets Developers', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. #latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. #latex_use_parts = False # Additional stuff for the LaTeX preamble. #latex_preamble = '' # Documents to append as an appendix to all manuals. #latex_appendices = [] # If false, no module index is generated. #latex_use_modindex = True # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. exclude_patterns = ['substitutions.rst', ] # numpydoc_show_class_members = False numpydoc_class_members_toctree = False # plot_directive options plot_include_source = True plot_formats = [('png', 96), 'pdf'] plot_html_show_formats = False plot_html_show_source_link = False # -- Options for intersphinx extension --------------------------------------- # Intersphinx to get Numpy and other targets intersphinx_mapping = { 'numpy': ('https://docs.scipy.org/doc/numpy/', None)} PyWavelets-1.1.1/doc/source/contributing.rst0000644000175000017500000000215613552333332021571 0ustar lee8rxlee8rx00000000000000Contributing ============ All contributions including bug reports, bug fixes, new feature implementations and documentation improvements are welcome. Moreover, developers with an interest in PyWavelets are very welcome to join the development team! Please see our `guidelines for pull requests`_ for more information. Contributors are expected to behave in a productive and respectful manner in accordance with our `community guidelines`_ and :ref:`CoC`. History ------- PyWavelets started in 2006 as an academic project for a masters thesis on `Analysis and Classification of Medical Signals using Wavelet Transforms` and was maintained until 2012 by its `original developer`_. In 2013 maintenance was taken over in a `new repo `_) by a larger development team - a move supported by the original developer. The repo move doesn't mean that this is a fork - the package continues to be developed under the name "PyWavelets", and released on PyPI and Github (see `this issue `_ for the discussion where that was decided). .. include:: common_refs.rst PyWavelets-1.1.1/doc/source/dev/0000755000175000017500000000000013552543071017105 5ustar lee8rxlee8rx00000000000000PyWavelets-1.1.1/doc/source/dev/building_extension.rst0000664000175000017500000000212613270003221023514 0ustar lee8rxlee8rx00000000000000.. _dev-building-extension: Building and installing PyWavelets ================================== Installing from source code --------------------------- Go to https://github.com/PyWavelets/pywt GitHub project page, fork and clone the repository or use the upstream repository to get the source code:: git clone https://github.com/PyWavelets/pywt.git PyWavelets Activate your Python virtual environment, go to the cloned source directory and type the following commands to build and install the package:: python setup.py build python setup.py install To verify the installation run the following command:: python setup.py test To build docs:: cd doc make html Installing a development version -------------------------------- You can also install directly from the source repository:: pip install -e git+https://github.com/PyWavelets/pywt.git#egg=PyWavelets or:: pip install PyWavelets==dev Installing a regular release from PyPi -------------------------------------- A regular release can be installed with pip or easy_install:: pip install PyWavelets PyWavelets-1.1.1/doc/source/dev/conduct/0000755000175000017500000000000013552543071020544 5ustar lee8rxlee8rx00000000000000PyWavelets-1.1.1/doc/source/dev/conduct/code_of_conduct.rst0000644000175000017500000002004313552333332024407 0ustar lee8rxlee8rx00000000000000.. _CoC: PyWavelets Code of Conduct ========================== Introduction ------------ This code of conduct applies to all spaces managed by the PyWavelets project, including all public and private mailing lists, issue trackers, wikis, blogs, Twitter, and any other communication channel used by our community. The PyWavelets project does not organise in-person events, however events related to our community should have a code of conduct similar in spirit to this one. This code of conduct should be honored by everyone who participates in the PyWavelets community formally or informally, or claims any affiliation with the project, in any project-related activities and especially when representing the project, in any role. This code is not exhaustive or complete. It serves to distill our common understanding of a collaborative, shared environment and goals. Please try to follow this code in spirit as much as in letter, to create a friendly and productive environment that enriches the surrounding community. This code of conduct was adapted from SciPy's code of conduct without any substantial modification in terms. We wish to thank the SciPy contributors for their hard work in authoring these terms and in helping develop a community consensus them. Specific Guidelines ------------------- We strive to: 1. Be open. We invite anyone to participate in our community. We prefer to use public methods of communication for project-related messages, unless discussing something sensitive. This applies to messages for help or project-related support, too; not only is a public support request much more likely to result in an answer to a question, it also ensures that any inadvertent mistakes in answering are more easily detected and corrected. 2. Be empathetic, welcoming, friendly, and patient. We work together to resolve conflict, and assume good intentions. We may all experience some frustration from time to time, but we do not allow frustration to turn into a personal attack. A community where people feel uncomfortable or threatened is not a productive one. 3. Be collaborative. Our work will be used by other people, and in turn we will depend on the work of others. When we make something for the benefit of the project, we are willing to explain to others how it works, so that they can build on the work to make it even better. Any decision we make will affect users and colleagues, and we take those consequences seriously when making decisions. 4. Be inquisitive. Nobody knows everything! Asking questions early avoids many problems later, so we encourage questions, although we may direct them to the appropriate forum. We will try hard to be responsive and helpful. 5. Be careful in the words that we choose. We are careful and respectful in our communication and we take responsibility for our own speech. Be kind to others. Do not insult or put down other participants. We will not accept harassment or other exclusionary behaviour, such as: - Violent threats or language directed against another person. - Sexist, racist, or otherwise discriminatory jokes and language. - Posting sexually explicit or violent material. - Posting (or threatening to post) other people's personally identifying information ("doxing"). - Sharing private content, such as emails sent privately or non-publicly, or unlogged forums such as IRC channel history, without the sender's consent. - Personal insults, especially those using racist or sexist terms. - Unwelcome sexual attention. - Excessive profanity. Please avoid swearwords; people differ greatly in their sensitivity to swearing. - Repeated harassment of others. In general, if someone asks you to stop, then stop. - Advocating for, or encouraging, any of the above behaviour. Diversity Statement ------------------- The PyWavelets project welcomes and encourages participation by everyone. We are committed to being a community that everyone enjoys being part of. Although we may not always be able to accommodate each individual's preferences, we try our best to treat everyone kindly. No matter how you identify yourself or how others perceive you: we welcome you. Though no list can hope to be comprehensive, we explicitly honour diversity in: age, culture, ethnicity, genotype, gender identity or expression, language, national origin, neurotype, phenotype, political beliefs, profession, race, religion, sexual orientation, socioeconomic status, subculture and technical ability, to the extent that these do not conflict with this code of conduct. Though we welcome people fluent in all languages, PyWavelets development is conducted in English. Standards for behaviour in the PyWavelets community are detailed in the Code of Conduct above. Participants in our community should uphold these standards in all their interactions and help others to do so as well (see next section). Reporting Guidelines -------------------- We know that it is painfully common for internet communication to start at or devolve into obvious and flagrant abuse. We also recognize that sometimes people may have a bad day, or be unaware of some of the guidelines in this Code of Conduct. Please keep this in mind when deciding on how to respond to a breach of this Code. For clearly intentional breaches, report those to the Code of Conduct committee (see below). For possibly unintentional breaches, you may reply to the person and point out this code of conduct (either in public or in private, whatever is most appropriate). If you would prefer not to do that, please feel free to report to the Code of Conduct Committee directly, or ask the Committee for advice, in confidence. You can report issues to the PyWavelets Code of Conduct committee, at PyWavelets-conduct@googlegroups.com. Currently, the committee consists of: - Gregory Lee - Ralf Gommers - Alexandre de Siqueira If your report involves any members of the committee, or if they feel they have a conflict of interest in handling it, then they will recuse themselves from considering your report. Alternatively, if for any reason you feel uncomfortable making a report to the committee, then you can also contact: - Chair of the PyWavelets Steering Committee: Gregory Lee Incident reporting resolution & Code of Conduct enforcement ----------------------------------------------------------- *This section summarizes the most important points, more details can be found in* :ref:`CoC_reporting_manual`. We will investigate and respond to all complaints. The PyWavelets Code of Conduct Committee and the PyWavelets Steering Committee (if involved) will protect the identity of the reporter, and treat the content of complaints as confidential (unless the reporter agrees otherwise). In case of severe and obvious breaches, e.g. personal threat or violent, sexist or racist language, we will immediately disconnect the originator from PyWavelets communication channels; please see the manual for details. In cases not involving clear severe and obvious breaches of this code of conduct, the process for acting on any received code of conduct violation report will be: 1. acknowledge report is received 2. reasonable discussion/feedback 3. mediation (if feedback didn't help, and only if both reporter and reportee agree to this) 4. enforcement via transparent decision (see :ref:`CoC_resolutions`) by the Code of Conduct Committee The committee will respond to any report as soon as possible, and at most within 72 hours. Endnotes -------- We are thankful to the SciPy developers for creating the code of conduct we have adapated here. - `Scipy Code of Conduct `_ The SciPy code of conduct was in turn inspired by the following documents: - `The Apache Foundation Code of Conduct `_ - `The Contributor Covenant `_ - `Jupyter Code of Conduct `_ - `Open Source Guides - Code of Conduct `_ PyWavelets-1.1.1/doc/source/dev/conduct/report_handling_manual.rst0000644000175000017500000002556313552333332026022 0ustar lee8rxlee8rx00000000000000:orphan: .. _CoC_reporting_manual: PyWavelets Code of Conduct - How to follow up on a report --------------------------------------------------------- This is the manual followed by PyWavelets's Code of Conduct Committee. It's used when we respond to an issue to make sure we're consistent and fair. Enforcing the Code of Conduct impacts our community today and for the future. It's an action that we do not take lightly. When reviewing enforcement measures, the Code of Conduct Committee will keep the following values and guidelines in mind: * Act in a personal manner rather than impersonal. The Committee can engage the parties to understand the situation, while respecting the privacy and any necessary confidentiality of reporters. However, sometimes it is necessary to communicate with one or more individuals directly: the Committee's goal is to improve the health of our community rather than only produce a formal decision. * Emphasize empathy for individuals rather than judging behavior, avoiding binary labels of "good" and "bad/evil". Overt, clear-cut aggression and harassment exists and we will be address that firmly. But many scenarios that can prove challenging to resolve are those where normal disagreements devolve into unhelpful or harmful behavior from multiple parties. Understanding the full context and finding a path that re-engages all is hard, but ultimately the most productive for our community. * We understand that email is a difficult medium and can be isolating. Receiving criticism over email, without personal contact, can be particularly painful. This makes it especially important to keep an atmosphere of open-minded respect of the views of others. It also means that we must be transparent in our actions, and that we will do everything in our power to make sure that all our members are treated fairly and with sympathy. * Discrimination can be subtle and it can be unconscious. It can show itself as unfairness and hostility in otherwise ordinary interactions. We know that this does occur, and we will take care to look out for it. We would very much like to hear from you if you feel you have been treated unfairly, and we will use these procedures to make sure that your complaint is heard and addressed. * Help increase engagement in good discussion practice: try to identify where discussion may have broken down and provide actionable information, pointers and resources that can lead to positive change on these points. * Be mindful of the needs of new members: provide them with explicit support and consideration, with the aim of increasing participation from underrepresented groups in particular. * Individuals come from different cultural backgrounds and native languages. Try to identify any honest misunderstandings caused by a non-native speaker and help them understand the issue and what they can change to avoid causing offence. Complex discussion in a foreign language can be very intimidating, and we want to grow our diversity also across nationalities and cultures. *Mediation*: voluntary, informal mediation is a tool at our disposal. In contexts such as when two or more parties have all escalated to the point of inappropriate behavior (something sadly common in human conflict), it may be useful to facilitate a mediation process. This is only an example: the Committee can consider mediation in any case, mindful that the process is meant to be strictly voluntary and no party can be pressured to participate. If the Committee suggests mediation, it should: * Find a candidate who can serve as a mediator. * Obtain the agreement of the reporter(s). The reporter(s) have complete freedom to decline the mediation idea, or to propose an alternate mediator. * Obtain the agreement of the reported person(s). * Settle on the mediator: while parties can propose a different mediator than the suggested candidate, only if common agreement is reached on all terms can the process move forward. * Establish a timeline for mediation to complete, ideally within two weeks. The mediator will engage with all the parties and seek a resolution that is satisfactory to all. Upon completion, the mediator will provide a report (vetted by all parties to the process) to the Committee, with recommendations on further steps. The Committee will then evaluate these results (whether satisfactory resolution was achieved or not) and decide on any additional action deemed necessary. How the committee will respond to reports ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ When the committee (or a committee member) receives a report, they will first determine whether the report is about a clear and severe breach (as defined below). If so, immediate action needs to be taken in addition to the regular report handling process. Clear and severe breach actions +++++++++++++++++++++++++++++++ We know that it is painfully common for internet communication to start at or devolve into obvious and flagrant abuse. We will deal quickly with clear and severe breaches like personal threats, violent, sexist or racist language. When a member of the Code of Conduct committee becomes aware of a clear and severe breach, they will do the following: * Immediately disconnect the originator from all PyWavelets communication channels. * Reply to the reporter that their report has been received and that the originator has been disconnected. * In every case, the moderator should make a reasonable effort to contact the originator, and tell them specifically how their language or actions qualify as a "clear and severe breach". The moderator should also say that, if the originator believes this is unfair or they want to be reconnected to PyWavelets, they have the right to ask for a review, as below, by the Code of Conduct Committee. The moderator should copy this explanation to the Code of Conduct Committee. * The Code of Conduct Committee will formally review and sign off on all cases where this mechanism has been applied to make sure it is not being used to control ordinary heated disagreement. Report handling +++++++++++++++ When a report is sent to the committee they will immediately reply to the reporter to confirm receipt. This reply must be sent within 72 hours, and the group should strive to respond much quicker than that. If a report doesn't contain enough information, the committee will obtain all relevant data before acting. The committee is empowered to act on the Steering Council’s behalf in contacting any individuals involved to get a more complete account of events. The committee will then review the incident and determine, to the best of their ability: * What happened. * Whether this event constitutes a Code of Conduct violation. * Who are the responsible party(ies). * Whether this is an ongoing situation, and there is a threat to anyone's physical safety. This information will be collected in writing, and whenever possible the group's deliberations will be recorded and retained (i.e. chat transcripts, email discussions, recorded conference calls, summaries of voice conversations, etc). It is important to retain an archive of all activities of this committee to ensure consistency in behavior and provide institutional memory for the project. To assist in this, the default channel of discussion for this committee will be a private mailing list accessible to current and future members of the committee as well as members of the Steering Council upon justified request. If the Committee finds the need to use off-list communications (e.g. phone calls for early/rapid response), it should in all cases summarize these back to the list so there's a good record of the process. The Code of Conduct Committee should aim to have a resolution agreed upon within two weeks. In the event that a resolution can't be determined in that time, the committee will respond to the reporter(s) with an update and projected timeline for resolution. .. _CoC_resolutions: Resolutions ~~~~~~~~~~~ The committee must agree on a resolution by consensus. If the group cannot reach consensus and deadlocks for over a week, the group will turn the matter over to the Steering Council for resolution. Possible responses may include: * Taking no further action - if we determine no violations have occurred. - if the matter has been resolved publicly while the committee was considering responses. * Coordinating voluntary mediation: if all involved parties agree, the Committee may facilitate a mediation process as detailed above. * Remind publicly, and point out that some behavior/actions/language have been judged inappropriate and why in the current context, or can but hurtful to some people, requesting the community to self-adjust. * A private reprimand from the committee to the individual(s) involved. In this case, the group chair will deliver that reprimand to the individual(s) over email, cc'ing the group. * A public reprimand. In this case, the committee chair will deliver that reprimand in the same venue that the violation occurred, within the limits of practicality. E.g., the original mailing list for an email violation, but for a chat room discussion where the person/context may be gone, they can be reached by other means. The group may choose to publish this message elsewhere for documentation purposes. * A request for a public or private apology, assuming the reporter agrees to this idea: they may at their discretion refuse further contact with the violator. The chair will deliver this request. The committee may, if it chooses, attach "strings" to this request: for example, the group may ask a violator to apologize in order to retain one’s membership on a mailing list. * A "mutually agreed upon hiatus" where the committee asks the individual to temporarily refrain from community participation. If the individual chooses not to take a temporary break voluntarily, the committee may issue a "mandatory cooling off period". * A permanent or temporary ban from some or all PyWavelets spaces (mailing lists, gitter.im, etc.). The group will maintain records of all such bans so that they may be reviewed in the future or otherwise maintained. Once a resolution is agreed upon, but before it is enacted, the committee will contact the original reporter and any other affected parties and explain the proposed resolution. The committee will ask if this resolution is acceptable, and must note feedback for the record. Finally, the committee will make a report to the PyWavelets Steering Council (as well as the PyWavelets core team in the event of an ongoing resolution, such as a ban). The committee will never publicly discuss the issue; all public statements will be made by the chair of the Code of Conduct Committee or the PyWavelets Steering Council. Conflicts of Interest ~~~~~~~~~~~~~~~~~~~~~ In the event of any conflict of interest, a committee member must immediately notify the other members, and recuse themselves if necessary. PyWavelets-1.1.1/doc/source/dev/how_to_release.rst0000664000175000017500000000710113317422762022641 0ustar lee8rxlee8rx00000000000000Guidelines for Releasing PyWavelets =================================== The following are guidelines for preparing a release of PyWavelets. The notation ``vX.X.X`` in the commands below would be replaced by the actual release number. Updating the release notes -------------------------- Prior to the release, make sure the release notes are up to date. The author lists can be generated via:: python ./util/authors.py vP.P.P.. where ``vP.P.P`` is the previous release number. The lists of issues closed and PRs merged can be generated via (script requires Python 2.X to run):: python ./util/gh_lists.py vX.X.X Tag the release --------------- Change ``ISRELEASED`` to ``True`` in ``setup.py`` and commit. Tag the release via:: git tag -s vX.X.X Then push the ``vX.X.X`` tag to the PyWavelets GitHub repo. Note that while Appveyor will build wheels for Windows, it is preferred to get those wheels from the step below. Instructions for grabbing Appveyor wheels manually here for reference only: if the commit with ``ISRELEASED=True`` is submitted as a PR, the wheels can be downloaded from Appveyor once it has run on the PR. They can be found under the "Artifacts" tab in the Appveyor interface. Build Windows, OS X and Linux wheels and upload to PyPI ------------------------------------------------------- Push a commit with the new tag and updates of dependency versions where needed to https://github.com/MacPython/pywavelets-wheels. The wheels will be produced automatically and uploaded to http://wheels.scipy.org/. From there they can be uploaded to `PyPI `_ automatically with ``wheel-uploader``. See the README on https://github.com/MacPython/pywavelets-wheels for more details. Create the source distribution ------------------------------ Remove untracked files and directories with ``git clean``. *Warning: this will delete files & directories that are not under version control so you may want to do a dry run first by adding -n, so you can see what will be removed*:: git clean -xfdn Then run without ``-n``:: git clean -xfd Create the source distribution files via:: python setup.py sdist --formats=gztar,zip Upload the release to PyPI -------------------------- The binary Windows wheels downloaded from Appveyor (see above) should also be placed into the ``/dist`` subfolder along with the sdist archives. The wheels and source distributions created above can all be securely uploaded to pypi.python.org using twine:: twine upload -s dist/* Note that the documentation on ReadTheDocs (http://pywavelets.readthedocs.org) will have been automatically generated, so no actions need to be taken for documentation. Update conda-forge ------------------ Send a PR with the new version number and ``sha256`` hash of the source release to https://github.com/conda-forge/pywavelets-feedstock. Create the release on GitHub ---------------------------- On the project's GitHub page, click the releases tab and then press the "*Draft a new release*" button to create a release from the appropriate tag. Announcing the release ---------------------- Send release announcements to: - pywavelets@googlegroups.com - python-announce-list@python.org - scipy-user@python.org Prepare for continued development --------------------------------- Increment the version number in setup.py and change ISRELEASED to False. Prepare new release note files for the upcoming release:: git add doc/release/X.X.X-notes.rst git add doc/source/release.X.X.X.rst And add ``release.X.X.X`` to the list in ``doc/source/releasenotes.rst`` PyWavelets-1.1.1/doc/source/dev/index.rst0000644000175000017500000000136713552333332020752 0ustar lee8rxlee8rx00000000000000.. _dev-index: Development guide ================= This section contains information on building and installing PyWavelets from source code as well as instructions for preparing the build environment on Windows and Linux. .. toctree:: :maxdepth: 2 conduct/code_of_conduct preparing_windows_build_environment preparing_linux_build_environment installing_build_dependencies building_extension testing how_to_release Something not working? ---------------------- If these instructions are not clear or you need help setting up your development environment, go ahead and ask on the PyWavelets discussion group at http://groups.google.com/group/pywavelets or open a ticket on GitHub_. .. _GitHub: https://github.com/PyWavelets/pywt PyWavelets-1.1.1/doc/source/dev/installing_build_dependencies.rst0000664000175000017500000000306313270003221025655 0ustar lee8rxlee8rx00000000000000.. _dev-installing-build-dependencies: Installing build dependencies ============================= Setting up Python virtual environment ------------------------------------- A good practice is to create a separate Python virtual environment for each project. If you don't have `virtualenv`_ yet, install and activate it using:: curl -O https://raw.github.com/pypa/virtualenv/master/virtualenv.py python virtualenv.py . /bin/activate Installing Cython ----------------- Use ``pip`` (http://pypi.python.org/pypi/pip) to install Cython_:: pip install Cython>=0.16 Installing numpy ---------------- Use ``pip`` to install numpy_:: pip install numpy Numpy can also be obtained via scientific python distributions such as: - Anaconda_ - `Enthought Canopy`_ - `Python(x,y) `_ .. note:: You can find binaries for 64-bit Windows on http://www.lfd.uci.edu/~gohlke/pythonlibs/. Installing Sphinx ----------------- Sphinx_ is a documentation tool that converts reStructuredText files into nicely looking html documentation. Install it with:: pip install Sphinx numpydoc_ is used to format the API docmentation appropriately. Install it via:: pip install numpydoc .. _virtualenv: http://pypi.python.org/pypi/virtualenv .. _numpy: http://numpy.org/ .. _Cython: http://cython.org/ .. _Sphinx: http://sphinx.pocoo.org .. _numpydoc: https://github.com/numpy/numpydoc .. _Anaconda: https://www.continuum.io/downloads .. _Enthought Canopy: https://www.enthought.com/products/canopy/ PyWavelets-1.1.1/doc/source/dev/preparing_linux_build_environment.rst0000664000175000017500000000127513270003221026640 0ustar lee8rxlee8rx00000000000000.. _dev-preparing-linux-build-environment: Preparing Linux build environment ================================= There is a good chance that you already have a working build environment. Just skip steps that you don't need to execute. Installing basic build tools ---------------------------- Note that the example below uses ``aptitude`` package manager, which is specific to Debian and Ubuntu Linux distributions. Use your favourite package manager to install these packages on your OS. :: aptitude install build-essential gcc python-dev git-core Next steps ---------- After completing these steps continue with :ref:`Installing build dependencies `. PyWavelets-1.1.1/doc/source/dev/preparing_windows_build_environment.rst0000664000175000017500000000745713453134055027220 0ustar lee8rxlee8rx00000000000000.. _dev-building-on-windows: Preparing Windows build environment =================================== To start developing PyWavelets code on Windows you will have to install a C compiler and prepare the build environment. Installing Windows SDK C/C++ compiler ------------------------------------- Depending on your Python version, a different version of the Microsoft Visual C++ compiler will be required to build extensions. The same compiler that was used to build Python itself should be used. For Python 3.5, 3.6 and 3.7 it will be MSVC 2015. The MSVC version should be printed when starting a Python REPL, and can be checked against the note below: .. note:: For reference: - the *MSC v.1500* in the Python version string is Microsoft Visual C++ 2008 (Microsoft Visual Studio 9.0 with msvcr90.dll runtime) - *MSC v.1600* is MSVC 2010 (10.0 with msvcr100.dll runtime) - *MSC v.1700* is MSVC 2012 (11.0) - *MSC v.1800* is MSVC 2013 (12.0) - *MSC v.1900* is MSVC 2015 (14.0) :: Python 3.5.5 (default, Feb 13 2018, 06:15:35) [MSC v.1900 64 bit (AMD64)] on win32 To get started first download, extract and install *Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1* from http://www.microsoft.com/downloads/en/details.aspx?familyid=71DEB800-C591-4F97-A900-BEA146E4FAE1&displaylang=en. There are several ISO images on the site, so just grab the one that is suitable for your platform: - ``GRMSDK_EN_DVD.iso`` for 32-bit x86 platform - ``GRMSDKX_EN_DVD.iso`` for 64-bit AMD64 platform (AMD64 is the codename for 64-bit CPU architecture, not the processor manufacturer) After installing the SDK and before compiling the extension you have to configure some environment variables. For 32-bit build execute the ``util/setenv_build32.bat`` script in the cmd window: .. sourcecode:: bat rem Configure the environment for 32-bit builds. rem Use "vcvars32.bat" for a 32-bit build. "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat" rem Convince setup.py to use the SDK tools. set MSSdk=1 setenv /x86 /release set DISTUTILS_USE_SDK=1 For 64-bit use ``util/setenv_build64.bat``: .. sourcecode:: bat rem Configure the environment for 64-bit builds. rem Use "vcvars32.bat" for a 32-bit build. "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars64.bat" rem Convince setup.py to use the SDK tools. set MSSdk=1 setenv /x64 /release set DISTUTILS_USE_SDK=1 See also http://wiki.cython.org/64BitCythonExtensionsOnWindows. MinGW C/C++ compiler -------------------- MinGW distribution can be downloaded from http://sourceforge.net/projects/mingwbuilds/. In order to change the settings and use MinGW as the default compiler, edit or create a Distutils configuration file ``c:\Python2*\Lib\distutils\distutils.cfg`` and place the following entry in it:: [build] compiler = mingw32 You can also take a look at Cython's "Installing MinGW on Windows" page at http://wiki.cython.org/InstallingOnWindows for more info. .. note:: Python 2.7/3.2 distutils package is incompatible with the current version (4.7+) of MinGW (MinGW dropped the ``-mno-cygwin`` flag, which is still passed by distutils). To use MinGW to compile Python extensions you have to patch the ``distutils/cygwinccompiler.py`` library module and remove every occurrence of ``-mno-cygwin``. See http://bugs.python.org/issue12641 bug report for more information on the issue. Next steps ---------- After completing these steps continue with :ref:`Installing build dependencies `. .. _Python: http://python.org/ .. _numpy: http://numpy.org/ .. _Cython: http://cython.org/ .. _Sphinx: http://sphinx.pocoo.org/ .. _MinGW C compiler: http://sourceforge.net/projects/mingwbuilds/ PyWavelets-1.1.1/doc/source/dev/testing.rst0000644000175000017500000000255313552333332021316 0ustar lee8rxlee8rx00000000000000.. _dev-testing: Testing ======= Continous integration with Travis-CI ------------------------------------ The project is using `Travis-CI `_ service for continuous integration and testing. Current build status is: .. image:: https://secure.travis-ci.org/PyWavelets/pywt.png?branch=master :alt: Build Status :target: https://secure.travis-ci.org/PyWavelets/pywt If you are submitting a patch or pull request please make sure it does not break the build. Running tests locally --------------------- Tests are implemented with `pytest`_, so use one of: $ pytest --pyargs pywt -v There are also older doctests that can be run by performing the following from the root of the project source. $ python pywt/tests/test_doc.py $ cd doc $ make doctest Additionally the examples in the demo subfolder can be checked by running: $ python util/refguide_check.py Note: doctests require `Matplotlib`_ in addition to the usual dependencies. Running tests with Tox ---------------------- There's also a config file for running tests with `Tox`_ (``pip install tox``). To for example run tests for Python 3.5 and 3.6 use:: tox -e py35,py36 For more information see the `Tox`_ documentation. .. _pytest: https://pytest.org .. _Tox: https://tox.readthedocs.io/en/latest/ .. _Matplotlib: https://matplotlib.org PyWavelets-1.1.1/doc/source/index.rst0000644000175000017500000000471213552333332020171 0ustar lee8rxlee8rx00000000000000PyWavelets - Wavelet Transforms in Python ========================================= PyWavelets is open source wavelet transform software for Python_. It combines a simple high level interface with low level C and Cython performance. PyWavelets is very easy to use and get started with. Just install the package, open the Python interactive shell and type: .. sourcecode:: python >>> import pywt >>> cA, cD = pywt.dwt([1, 2, 3, 4], 'db1') Voilà! Computing wavelet transforms has never been so simple :) Here is a slightly more involved example of applying a digital wavelet transform to an image: .. plot:: pyplots/camera_approx_detail.py Main features ------------- The main features of PyWavelets are: * 1D, 2D and nD Forward and Inverse Discrete Wavelet Transform (DWT and IDWT) * 1D, 2D and nD Multilevel DWT and IDWT * 1D, 2D and nD Stationary Wavelet Transform (Undecimated Wavelet Transform) * 1D and 2D Wavelet Packet decomposition and reconstruction * 1D Continuous Wavelet Transform * Computing Approximations of wavelet and scaling functions * Over 100 `built-in wavelet filters`_ and support for custom wavelets * Single and double precision calculations * Real and complex calculations * Results compatible with Matlab Wavelet Toolbox (TM) Getting help ------------ Use `GitHub Issues`_, `StackOverflow`_, or the `PyWavelets discussions group`_ to post your comments or questions. License ------- PyWavelets is a free Open Source software released under the MIT license. Citing ------ If you use PyWavelets in a scientific publication, we would appreciate citations of the project via the following JOSS publication: Gregory R. Lee, Ralf Gommers, Filip Wasilewski, Kai Wohlfahrt, Aaron O'Leary (2019). PyWavelets: A Python package for wavelet analysis. Journal of Open Source Software, 4(36), 1237, https://doi.org/10.21105/joss.01237. .. image:: http://joss.theoj.org/papers/10.21105/joss.01237/status.svg :target: https://doi.org/10.21105/joss.01237 Specific releases can also be cited via Zenodo. The DOI below will correspond to the most recent release. DOIs for past versions can be found by following the link in the badge below to Zenodo: .. image:: https://zenodo.org/badge/DOI/10.5281/zenodo.1407171.svg :target: https://doi.org/10.5281/zenodo.1407171 Contents -------- .. toctree:: :maxdepth: 1 install ref/index regression/index contributing dev/index releasenotes .. include:: common_refs.rst PyWavelets-1.1.1/doc/source/install.rst0000644000175000017500000000331613552333332020527 0ustar lee8rxlee8rx00000000000000Installing ========== The latest release, including binary packages for Windows, macOS and Linux, is available for download from `PyPI`_. You can also find source releases at the `Releases Page`_. You can install PyWavelets with:: pip install PyWavelets Users of the Anaconda_ Python distribution may wish to obtain pre-built Windows, Intel Linux or macOS / OSX binaries from the main or conda-forge channel:: conda install pywavelets Several Linux distributions have their own packages for PyWavelets, but these tend to be moderately out of date. Query your Linux package manager tool for ``python-pywavelets``, ``python-wavelets``, ``python-pywt`` or a similar package name. Building from source -------------------- The most recent *development* version can be found on GitHub at https://github.com/PyWavelets/pywt. The latest release, is available for download from `PyPI`_ or on the `Releases Page`_. If you want or need to install from source, you will need a working C compiler (any common one will work) and a recent version of `Cython`_. Navigate to the PyWavelets source code directory (containing ``setup.py``) and type:: pip install . The requirements needed to build from source are: - Python_ 2.7 or >=3.4 - NumPy_ >= 1.13.3 - Cython_ >= 0.23.5 (if installing from git, not from a PyPI source release) To run all the tests for PyWavelets, you will also need to install the Matplotlib_ package. If SciPy_ is available, FFT-based continuous wavelet transforms will use the FFT implementation from SciPy instead of NumPy. .. seealso:: :ref:`Development guide ` section contains more information on building and installing from source code. .. include:: common_refs.rst PyWavelets-1.1.1/doc/source/pyplots/0000755000175000017500000000000013552543071020041 5ustar lee8rxlee8rx00000000000000PyWavelets-1.1.1/doc/source/pyplots/camera_approx_detail.py0000644000175000017500000000120613516504110024544 0ustar lee8rxlee8rx00000000000000import numpy as np import matplotlib.pyplot as plt import pywt import pywt.data # Load image original = pywt.data.camera() # Wavelet transform of image, and plot approximation and details titles = ['Approximation', ' Horizontal detail', 'Vertical detail', 'Diagonal detail'] coeffs2 = pywt.dwt2(original, 'bior1.3') LL, (LH, HL, HH) = coeffs2 fig = plt.figure(figsize=(12, 3)) for i, a in enumerate([LL, LH, HL, HH]): ax = fig.add_subplot(1, 4, i + 1) ax.imshow(a, interpolation="nearest", cmap=plt.cm.gray) ax.set_title(titles[i], fontsize=10) ax.set_xticks([]) ax.set_yticks([]) fig.tight_layout() plt.show() PyWavelets-1.1.1/doc/source/pyplots/cwt_scaling_demo.py0000664000175000017500000000413613341306407023716 0ustar lee8rxlee8rx00000000000000import numpy as np import pywt import matplotlib.pyplot as plt wav = pywt.ContinuousWavelet('cmor1.5-1.0') # print the range over which the wavelet will be evaluated print("Continuous wavelet will be evaluated over the range [{}, {}]".format( wav.lower_bound, wav.upper_bound)) width = wav.upper_bound - wav.lower_bound scales = [1, 2, 3, 4, 10, 15] max_len = int(np.max(scales)*width + 1) t = np.arange(max_len) fig, axes = plt.subplots(len(scales), 2, figsize=(12, 6)) for n, scale in enumerate(scales): # The following code is adapted from the internals of cwt int_psi, x = pywt.integrate_wavelet(wav, precision=10) step = x[1] - x[0] j = np.floor( np.arange(scale * width + 1) / (scale * step)) if np.max(j) >= np.size(int_psi): j = np.delete(j, np.where((j >= np.size(int_psi)))[0]) j = j.astype(np.int) # normalize int_psi for easier plotting int_psi /= np.abs(int_psi).max() # discrete samples of the integrated wavelet filt = int_psi[j][::-1] # The CWT consists of convolution of filt with the signal at this scale # Here we plot this discrete convolution kernel at each scale. nt = len(filt) t = np.linspace(-nt//2, nt//2, nt) axes[n, 0].plot(t, filt.real, t, filt.imag) axes[n, 0].set_xlim([-max_len//2, max_len//2]) axes[n, 0].set_ylim([-1, 1]) axes[n, 0].text(50, 0.35, 'scale = {}'.format(scale)) f = np.linspace(-np.pi, np.pi, max_len) filt_fft = np.fft.fftshift(np.fft.fft(filt, n=max_len)) filt_fft /= np.abs(filt_fft).max() axes[n, 1].plot(f, np.abs(filt_fft)**2) axes[n, 1].set_xlim([-np.pi, np.pi]) axes[n, 1].set_ylim([0, 1]) axes[n, 1].set_xticks([-np.pi, 0, np.pi]) axes[n, 1].set_xticklabels([r'$-\pi$', '0', r'$\pi$']) axes[n, 1].grid(True, axis='x') axes[n, 1].text(np.pi/2, 0.5, 'scale = {}'.format(scale)) axes[n, 0].set_xlabel('time (samples)') axes[n, 1].set_xlabel('frequency (radians)') axes[0, 0].legend(['real', 'imaginary'], loc='upper left') axes[0, 1].legend(['Power'], loc='upper left') axes[0, 0].set_title('filter') axes[0, 1].set_title(r'|FFT(filter)|$^2$') PyWavelets-1.1.1/doc/source/pyplots/plot_2d_bases.py0000664000175000017500000000304013341306407023126 0ustar lee8rxlee8rx00000000000000from itertools import product import numpy as np from matplotlib import pyplot as plt from pywt._doc_utils import (wavedec_keys, wavedec2_keys, draw_2d_wp_basis, draw_2d_fswavedecn_basis) shape = (512, 512) max_lev = 4 # how many levels of decomposition to draw label_levels = 2 # how many levels to explicitly label on the plots if False: fig, axes = plt.subplots(1, 4, figsize=[16, 4]) axes = axes.ravel() else: fig, axes = plt.subplots(2, 2, figsize=[8, 8]) axes = axes.ravel() # plot a 5-level standard DWT basis draw_2d_wp_basis(shape, wavedec2_keys(max_lev), ax=axes[0], label_levels=label_levels) axes[0].set_title('wavedec2 ({} level)'.format(max_lev)) # plot for the fully separable case draw_2d_fswavedecn_basis(shape, max_lev, ax=axes[1], label_levels=label_levels) axes[1].set_title('fswavedecn ({} level)'.format(max_lev)) # get all keys corresponding to a full wavelet packet decomposition wp_keys = list(product(['a', 'd', 'h', 'v'], repeat=max_lev)) draw_2d_wp_basis(shape, wp_keys, ax=axes[2]) axes[2].set_title('wavelet packet\n(full: {} level)'.format(max_lev)) # plot an example of a custom wavelet packet basis keys = ['aaaa', 'aaad', 'aaah', 'aaav', 'aad', 'aah', 'aava', 'aavd', 'aavh', 'aavv', 'ad', 'ah', 'ava', 'avd', 'avh', 'avv', 'd', 'h', 'vaa', 'vad', 'vah', 'vav', 'vd', 'vh', 'vv'] draw_2d_wp_basis(shape, keys, ax=axes[3], label_levels=label_levels) axes[3].set_title('wavelet packet\n(custom)'.format(max_lev)) plt.tight_layout() plt.show() PyWavelets-1.1.1/doc/source/pyplots/plot_boundary_modes.py0000644000175000017500000000270013552333332024457 0ustar lee8rxlee8rx00000000000000"""A visual illustration of the various signal extension modes supported in PyWavelets. For efficiency, in the C routines the array is not actually extended as is done here. This is just a demo for easier visual explanation of the behavior of the various boundary modes. In practice, which signal extension mode is beneficial will depend on the signal characteristics. For this particular signal, some modes such as "periodic", "antisymmetric" and "zero" result in large discontinuities that would lead to large amplitude boundary coefficients in the detail coefficients of a discrete wavelet transform. """ import numpy as np from matplotlib import pyplot as plt from pywt._doc_utils import boundary_mode_subplot # synthetic test signal x = 5 - np.linspace(-1.9, 1.1, 9)**2 # Create a figure with one subplots per boundary mode fig, axes = plt.subplots(3, 3, figsize=(10, 6)) plt.subplots_adjust(hspace=0.5) axes = axes.ravel() boundary_mode_subplot(x, 'symmetric', axes[0], symw=False) boundary_mode_subplot(x, 'reflect', axes[1], symw=True) boundary_mode_subplot(x, 'periodic', axes[2], symw=False) boundary_mode_subplot(x, 'antisymmetric', axes[3], symw=False) boundary_mode_subplot(x, 'antireflect', axes[4], symw=True) boundary_mode_subplot(x, 'periodization', axes[5], symw=False) boundary_mode_subplot(x, 'smooth', axes[6], symw=False) boundary_mode_subplot(x, 'constant', axes[7], symw=False) boundary_mode_subplot(x, 'zero', axes[8], symw=False) plt.show() PyWavelets-1.1.1/doc/source/pyplots/plot_mallat_2d.py0000644000175000017500000000267713516504110023313 0ustar lee8rxlee8rx00000000000000import numpy as np import pywt from matplotlib import pyplot as plt from pywt._doc_utils import wavedec2_keys, draw_2d_wp_basis x = pywt.data.camera().astype(np.float32) shape = x.shape max_lev = 3 # how many levels of decomposition to draw label_levels = 3 # how many levels to explicitly label on the plots fig, axes = plt.subplots(2, 4, figsize=[14, 8]) for level in range(0, max_lev + 1): if level == 0: # show the original image before decomposition axes[0, 0].set_axis_off() axes[1, 0].imshow(x, cmap=plt.cm.gray) axes[1, 0].set_title('Image') axes[1, 0].set_axis_off() continue # plot subband boundaries of a standard DWT basis draw_2d_wp_basis(shape, wavedec2_keys(level), ax=axes[0, level], label_levels=label_levels) axes[0, level].set_title('{} level\ndecomposition'.format(level)) # compute the 2D DWT c = pywt.wavedec2(x, 'db2', mode='periodization', level=level) # normalize each coefficient array independently for better visibility c[0] /= np.abs(c[0]).max() for detail_level in range(level): c[detail_level + 1] = [d/np.abs(d).max() for d in c[detail_level + 1]] # show the normalized coefficients arr, slices = pywt.coeffs_to_array(c) axes[1, level].imshow(arr, cmap=plt.cm.gray) axes[1, level].set_title('Coefficients\n({} level)'.format(level)) axes[1, level].set_axis_off() plt.tight_layout() plt.show() PyWavelets-1.1.1/doc/source/pyplots/plot_thresholds.py0000664000175000017500000000174213453117224023633 0ustar lee8rxlee8rx00000000000000import numpy as np import matplotlib.pyplot as plt import pywt s = np.linspace(-4, 4, 1000) s_soft = pywt.threshold(s, value=0.5, mode='soft') s_hard = pywt.threshold(s, value=0.5, mode='hard') s_garrote = pywt.threshold(s, value=0.5, mode='garrote') s_firm1 = pywt.threshold_firm(s, value_low=0.5, value_high=1) s_firm2 = pywt.threshold_firm(s, value_low=0.5, value_high=2) s_firm3 = pywt.threshold_firm(s, value_low=0.5, value_high=4) fig, ax = plt.subplots(1, 2, figsize=(10, 4)) ax[0].plot(s, s_soft) ax[0].plot(s, s_hard) ax[0].plot(s, s_garrote) ax[0].legend(['soft (0.5)', 'hard (0.5)', 'non-neg. garrote (0.5)']) ax[0].set_xlabel('input value') ax[0].set_ylabel('thresholded value') ax[1].plot(s, s_soft) ax[1].plot(s, s_hard) ax[1].plot(s, s_firm1) ax[1].plot(s, s_firm2) ax[1].plot(s, s_firm3) ax[1].legend(['soft (0.5)', 'hard (0.5)', 'firm(0.5, 1)', 'firm(0.5, 2)', 'firm(0.5, 4)']) ax[1].set_xlabel('input value') ax[1].set_ylabel('thresholded value') plt.show() PyWavelets-1.1.1/doc/source/ref/0000755000175000017500000000000013552543071017103 5ustar lee8rxlee8rx00000000000000PyWavelets-1.1.1/doc/source/ref/2d-decompositions-overview.rst0000664000175000017500000000771213341306407025050 0ustar lee8rxlee8rx00000000000000 Overview of multilevel wavelet decompositions ============================================= There are a number of different ways a wavelet decomposition can be performed for multiresolution analysis of n-dimensional data. Here we will review the three approaches currently implemented in PyWavelets. 2D cases are illustrated, but each of the approaches extends to the n-dimensional case in a straightforward manner. Multilevel Discrete Wavelet Transform ------------------------------------- The most common approach to the multilevel discrete wavelet transform involves further decomposition of only the approximation subband at each subsequent level. This is also sometimes referred to as the Mallat decomposition [Mall89]_. In 2D, the discrete wavelet transform produces four sets of coefficients corresponding to the four possible compinations of the wavelet decomposition filters over the two separate axes. (In n-dimensions, there are ``2**n`` sets of coefficients). For subsequent levels of decomposition, only the approximation coefficients (the lowpass subband) are further decomposed. In PyWavelets, this decomposition is implemented for n-dimensional data by :func:`~pywt.wavedecn` and the inverse by :func:`~pywt.waverecn`. 1D and 2D versions of these routines also exist. It is illustrated in the figure below. The top row indicates the coefficient names as used by :func:`~pywt.wavedec2` after each level of decomposition. The bottom row shows wavelet coefficients for the camerman image (with each subband independently normalized for easier visualization). .. plot:: pyplots/plot_mallat_2d.py It can be seen that many of the coefficients are near zero (gray). This ability of the wavelet transform to sparsely represent natural images is a key property that makes it desirable in applications such as image compression and restoration. Fully Seperable Discrete Wavelet Transform ------------------------------------------ An alternative decomposition results in first fully decomposing one axis of the data prior to moving onto each additional axis in turn. This is illustrated for the 2D case in the upper right panel of the figure below. This approach has a factor of two higher computational cost as compared to the Mallat approach, but has advantages in compactly representing anisotropic data. A demo of this is `available `_). This form of the DWT is also sometimes referred to as the tensor wavelet transform or the hyperbolic wavelet transform. In PyWavelets it is implemented for n-dimensional data by :func:`~pywt.fswavedecn` and the inverse by :func:`~pywt.fswaverecn`. Wavelet Packet Transform ------------------------ Another possible choice is to apply additional levels of decomposition to all wavelet subbands from the first level as opposed to only the approximation subband. This is known as the wavelet packet transform and is illustrated in 2D in the lower left panel of the figure. It is also possible to only perform any subset of the decompositions, resulting in a wide number of potential wavelet packet bases. An arbitrary example is shown in the lower right panel of the figure below. A further description is available in the :ref:`wavelet packet documentation`. For the wavelet packets, the plots below use "natural" ordering for simplicity, but this does not directly match the "frequency" ordering for these wavelet packets. It is possible to rearrange the coefficients into frequency ordering (see the ``get_level`` method of :class:`~pywt.WaveletPacket2D` and [Wick94]_ for more details). .. plot:: pyplots/plot_2d_bases.py .. rubric:: References .. [Mall89] Mallat, S.G. "A Theory for Multiresolution Signal Decomposition: The Wavelet Representation" IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 2, no. 7. July 1989. DOI: 10.1109/34.192463 .. [Wick94] Wickerhauser, M.V. "Adapted Wavelet Analysis from Theory to Software" Wellesley. Massachusetts: A K Peters. 1994. PyWavelets-1.1.1/doc/source/ref/2d-dwt-and-idwt.rst0000664000175000017500000000413313317422762022450 0ustar lee8rxlee8rx00000000000000.. _ref-dwt2: .. currentmodule:: pywt ================================================= 2D Forward and Inverse Discrete Wavelet Transform ================================================= Single level ``dwt2`` ~~~~~~~~~~~~~~~~~~~~~ .. autofunction:: dwt2 The relation to the other common data layout where all the approximation and details coefficients are stored in one big 2D array is as follows: :: ------------------- | | | | cA(LL) | cH(LH) | | | | (cA, (cH, cV, cD)) <---> ------------------- | | | | cV(HL) | cD(HH) | | | | ------------------- PyWavelets does not follow this pattern because of pure practical reasons of simple access to particular type of the output coefficients. Single level ``idwt2`` ~~~~~~~~~~~~~~~~~~~~~~ .. autofunction:: idwt2 2D multilevel decomposition using ``wavedec2`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. autofunction:: wavedec2 2D multilevel reconstruction using ``waverec2`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. autofunction:: waverec2 2D coordinate conventions ~~~~~~~~~~~~~~~~~~~~~~~~~ The labels for "horizontal" and "vertical" used by ``dwt2`` and ``idwt2`` follow the common mathematical convention that coordinate axis 0 is horizontal while axis 1 is vertical:: dwt2, idwt2 convention ---------------------- axis 1 ^ | | | |---------> axis 0 Note that this is different from another common convention used in computer graphics and image processing (e.g. by matplotlib's ``imshow`` and functions in ``scikit-image``). In those packages axis 0 is a vertical axis and axis 1 is horizontal as follows:: imshow convention ------------------- axis 1 |---------> | | | axis 0 v PyWavelets-1.1.1/doc/source/ref/cwt.rst0000644000175000017500000001167113552333332020435 0ustar lee8rxlee8rx00000000000000.. _ref-cwt: .. currentmodule:: pywt ================================== Continuous Wavelet Transform (CWT) ================================== This section describes functions used to perform single continuous wavelet transforms. Single level - ``cwt`` ---------------------- .. autofunction:: cwt Continuous Wavelet Families --------------------------- A variety of continuous wavelets have been implemented. A list of the available wavelet names compatible with ``cwt`` can be obtained by: .. sourcecode:: python wavlist = pywt.wavelist(kind='continuous') Mexican Hat Wavelet ^^^^^^^^^^^^^^^^^^^ The mexican hat wavelet ``"mexh"`` is given by: .. math:: \psi(t) = \frac{2}{\sqrt{3} \sqrt[4]{\pi}} \exp^{-\frac{t^2}{2}} \left( 1 - t^2 \right) where the constant out front is a normalization factor so that the wavelet has unit energy. Morlet Wavelet ^^^^^^^^^^^^^^ The Morlet wavelet ``"morl"`` is given by: .. math:: \psi(t) = \exp^{-\frac{t^2}{2}} \cos(5t) Complex Morlet Wavelets ^^^^^^^^^^^^^^^^^^^^^^^ The complex Morlet wavelet (``"cmorB-C"`` with floating point values B, C) is given by: .. math:: \psi(t) = \frac{1}{\sqrt{\pi B}} \exp^{-\frac{t^2}{B}} \exp^{\mathrm{j} 2\pi C t} where :math:`B` is the bandwidth and :math:`C` is the center frequency. Gaussian Derivative Wavelets ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The Gaussian wavelets (``"gausP"`` where P is an integer between 1 and and 8) correspond to the Pth order derivatives of the function: .. math:: \psi(t) = C \exp^{-t^2} where :math:`C` is an order-dependent normalization constant. Complex Gaussian Derivative Wavelets ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The complex Gaussian wavelets (``"cgauP"`` where P is an integer between 1 and 8) correspond to the Pth order derivatives of the function: .. math:: \psi(t) = C \exp^{-\mathrm{j} t}\exp^{-t^2} where :math:`C` is an order-dependent normalization constant. Shannon Wavelets ^^^^^^^^^^^^^^^^ The Shannon wavelets (``"shanB-C"`` with floating point values B and C) correspond to the following wavelets: .. math:: \psi(t) = \sqrt{B} \frac{\sin(\pi B t)}{\pi B t} \exp^{\mathrm{j}2 \pi C t} where :math:`B` is the bandwidth and :math:`C` is the center frequency. Frequency B-Spline Wavelets ^^^^^^^^^^^^^^^^^^^^^^^^^^^ The frequency B-spline wavelets (``"fpspM-B-C"`` with integer M and floating point B, C) correspond to the following wavelets: .. math:: \psi(t) = \sqrt{B} \left[\frac{\sin(\pi B \frac{t}{M})}{\pi B \frac{t}{M}}\right]^M \exp^{2\mathrm{j} \pi C t} where :math:`M` is the spline order, :math:`B` is the bandwidth and :math:`C` is the center frequency. Choosing the scales for ``cwt`` ------------------------------- For each of the wavelets described below, the implementation in PyWavelets evaluates the wavelet function for :math:`t` over the range ``[wavelet.lower_bound, wavelet.upper_bound]`` (with default range :math:`[-8, 8]`). ``scale = 1`` corresponds to the case where the extent of the wavelet is ``(wavelet.upper_bound - wavelet.lower_bound + 1)`` samples of the digital signal being analyzed. Larger scales correspond to stretching of the wavelet. For example, at ``scale=10`` the wavelet is stretched by a factor of 10, making it sensitive to lower frequencies in the signal. To relate a given scale to a specific signal frequency, the sampling period of the signal must be known. :func:`pywt.scale2frequency` can be used to convert a list of scales to their corresponding frequencies. The proper choice of scales depends on the chosen wavelet, so :func:`pywt.scale2frequency` should be used to get an idea of an appropriate range for the signal of interest. For the ``cmor``, ``fbsp`` and ``shan`` wavelets, the user can specify a specific a normalized center frequency. A value of 1.0 corresponds to 1/dt where dt is the sampling period. In other words, when analyzing a signal sampled at 100 Hz, a center frequency of 1.0 corresponds to ~100 Hz at ``scale = 1``. This is above the Nyquist rate of 50 Hz, so for this particular wavelet, one would analyze a signal using ``scales >= 2``. .. sourcecode:: python >>> import numpy as np >>> import pywt >>> dt = 0.01 # 100 Hz sampling >>> frequencies = pywt.scale2frequency('cmor1.5-1.0', [1, 2, 3, 4]) / dt >>> frequencies array([ 100. , 50. , 33.33333333, 25. ]) The CWT in PyWavelets is applied to discrete data by convolution with samples of the integral of the wavelet. If ``scale`` is too low, this will result in a discrete filter that is inadequately sampled leading to aliasing as shown in the example below. Here the wavelet is ``'cmor1.5-1.0'``. The left column of the figure shows the discrete filters used in the convolution at various scales. The right column are the corresponding Fourier power spectra of each filter.. For scales 1 and 2 it can be seen that aliasing due to violation of the Nyquist limit occurs. .. plot:: pyplots/cwt_scaling_demo.py PyWavelets-1.1.1/doc/source/ref/dwt-coefficient-handling.rst0000664000175000017500000000213113341306407024464 0ustar lee8rxlee8rx00000000000000.. _ref-dwt-coef: ========================= Handling DWT Coefficients ========================= Convenience routines are available for converting the outputs of the multilevel dwt functions (``wavedec``, ``wavedec2`` and ``wavedecn``) to and from a single, concatenated coefficient array. .. currentmodule:: pywt Concatenating all coefficients into a single n-d array ------------------------------------------------------ .. autofunction:: coeffs_to_array Splitting concatenated coefficient array back into its components ----------------------------------------------------------------- .. autofunction:: array_to_coeffs Raveling and unraveling coefficients to/from a 1D array ------------------------------------------------------- .. autofunction:: ravel_coeffs .. autofunction:: unravel_coeffs Multilevel: Total size of all coefficients - ``wavedecn_size`` -------------------------------------------------------------- .. autofunction:: wavedecn_size Multilevel: n-d coefficient shapes - ``wavedecn_shapes`` -------------------------------------------------------- .. autofunction:: wavedecn_shapes PyWavelets-1.1.1/doc/source/ref/dwt-discrete-wavelet-transform.rst0000664000175000017500000000345513341306407025716 0ustar lee8rxlee8rx00000000000000.. _ref-dwt: .. currentmodule:: pywt ================================ Discrete Wavelet Transform (DWT) ================================ Wavelet transform has recently become a very popular when it comes to analysis, de-noising and compression of signals and images. This section describes functions used to perform single- and multilevel Discrete Wavelet Transforms. Single level ``dwt`` -------------------- .. autofunction:: dwt See the :ref:`signal extension modes ` section for the list of available options and the :func:`dwt_coeff_len` function for information on getting the expected result length. The transform can be performed over one axis of multi-dimensional data. By default this is the last axis. For multi-dimensional transforms see the :ref:`2D transforms ` section. Multilevel decomposition using ``wavedec`` ------------------------------------------ .. autofunction:: wavedec Partial Discrete Wavelet Transform data decomposition ``downcoef`` ------------------------------------------------------------------ .. autofunction:: downcoef Maximum decomposition level - ``dwt_max_level``, ``dwtn_max_level`` ------------------------------------------------------------------- .. autofunction:: dwt_max_level .. autofunction:: dwtn_max_level .. _`dwt_coeff_len`: Result coefficients length - ``dwt_coeff_len`` ---------------------------------------------- .. autofunction:: dwt_coeff_len Based on the given input data length (``data_len``), wavelet decomposition filter length (``filter_len``) and :ref:`signal extension mode `, the :func:`dwt_coeff_len` function calculates the length of the resulting coefficients arrays that would be created while performing :func:`dwt` transform. ``filter_len`` can be either an ``int`` or :class:`Wavelet` object for convenience. PyWavelets-1.1.1/doc/source/ref/idwt-inverse-discrete-wavelet-transform.rst0000664000175000017500000000071113341306407027530 0ustar lee8rxlee8rx00000000000000.. _ref-idwt: .. currentmodule:: pywt ========================================= Inverse Discrete Wavelet Transform (IDWT) ========================================= Single level ``idwt`` --------------------- .. autofunction:: idwt Multilevel reconstruction using ``waverec`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. autofunction:: waverec Direct reconstruction with ``upcoef`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. autofunction:: upcoef PyWavelets-1.1.1/doc/source/ref/index.rst0000644000175000017500000000066613552427321020753 0ustar lee8rxlee8rx00000000000000.. _ref-index: API Reference ============= .. toctree:: :maxdepth: 2 wavelets signal-extension-modes dwt-discrete-wavelet-transform idwt-inverse-discrete-wavelet-transform 2d-decompositions-overview 2d-dwt-and-idwt nd-dwt-and-idwt dwt-coefficient-handling swt-stationary-wavelet-transform iswt-inverse-stationary-wavelet-transform wavelet-packets cwt thresholding-functions other-functions PyWavelets-1.1.1/doc/source/ref/iswt-inverse-stationary-wavelet-transform.rst0000664000175000017500000000107113317422762030150 0ustar lee8rxlee8rx00000000000000.. _ref-iswt: .. currentmodule:: pywt Inverse Stationary Wavelet Transform ------------------------------------ Inverse :ref:`stationary wavelet transforms ` are provided. **Note**: These inverse transforms are not yet optimized for speed. Only, the n-dimensional inverse transform currently has ``axes`` support. Multilevel 1D ``iswt`` ~~~~~~~~~~~~~~~~~~~~~~ .. autofunction:: iswt Multilevel 2D ``iswt2`` ~~~~~~~~~~~~~~~~~~~~~~~ .. autofunction:: iswt2 Multilevel n-dimensional ``iswtn`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. autofunction:: iswtn PyWavelets-1.1.1/doc/source/ref/nd-dwt-and-idwt.rst0000664000175000017500000000204013341306407022531 0ustar lee8rxlee8rx00000000000000.. _ref-dwtn: ================================================= nD Forward and Inverse Discrete Wavelet Transform ================================================= .. currentmodule:: pywt .. autosummary:: _multilevel Single level - ``dwtn`` ----------------------- .. autofunction:: dwtn Single level - ``idwtn`` ------------------------ .. autofunction:: idwtn Multilevel decomposition - ``wavedecn`` --------------------------------------- .. autofunction:: wavedecn Multilevel reconstruction - ``waverecn`` ---------------------------------------- .. autofunction:: waverecn Multilevel fully separable decomposition - ``fswavedecn`` --------------------------------------------------------- .. autofunction:: fswavedecn Multilevel fully separable reconstruction - ``fswaverecn`` ---------------------------------------------------------- .. autofunction:: fswaverecn Multilevel fully separable reconstruction coeffs - ``FswavedecnResult`` ----------------------------------------------------------------------- .. autoclass:: FswavedecnResult PyWavelets-1.1.1/doc/source/ref/other-functions.rst0000644000175000017500000000352013552333332022761 0ustar lee8rxlee8rx00000000000000.. _ref-other: .. currentmodule:: pywt =============== Other functions =============== Integrating wavelet functions ----------------------------- .. autofunction:: integrate_wavelet The result of the call depends on the ``wavelet`` argument: * for orthogonal and continuous wavelets - an integral of the wavelet function specified on an x-grid:: [int_psi, x_grid] = integrate_wavelet(wavelet, precision) * for other wavelets - integrals of decomposition and reconstruction wavelet functions and a corresponding x-grid:: [int_psi_d, int_psi_r, x_grid] = integrate_wavelet(wavelet, precision) Central frequency of ``psi`` wavelet function --------------------------------------------- .. autofunction:: central_frequency .. autofunction:: scale2frequency Quadrature Mirror Filter ------------------------ .. autofunction:: qmf Orthogonal Filter Banks ----------------------- .. autofunction:: orthogonal_filter_bank Example Datasets ---------------- The following example datasets are available in the module ``pywt.data``: ============ ======================================= **name** **description** ============ ======================================= ecg ECG waveform (1024 samples) aero grayscale image (512x512) ascent grayscale image (512x512) camera grayscale image (512x512) nino sea surface temperature (264 samples) demo_signal various synthetic 1d test signals ============ ======================================= Each can be loaded via a function of the same name. .. currentmodule:: pywt.data .. autofunction:: demo_signal **Example:** .. sourcecode:: python >>> import pywt >>> camera = pywt.data.camera() >>> doppler = pywt.data.demo_signal('doppler', 1024) >>> available_signals = pywt.data.demo_signal('list') PyWavelets-1.1.1/doc/source/ref/signal-extension-modes.rst0000644000175000017500000001250413552333332024230 0ustar lee8rxlee8rx00000000000000.. _ref-modes: .. currentmodule:: pywt ====================== Signal extension modes ====================== .. _Modes: Because the most common and practical way of representing digital signals in computer science is with finite arrays of values, some extrapolation of the input data has to be performed in order to extend the signal before computing the :ref:`Discrete Wavelet Transform ` using the cascading filter banks algorithm. Depending on the extrapolation method, significant artifacts at the signal's borders can be introduced during that process, which in turn may lead to inaccurate computations of the :ref:`DWT ` at the signal's ends. PyWavelets provides several methods of signal extrapolation that can be used to minimize this negative effect: .. _`Modes.zero`: * ``zero`` - **zero-padding** - signal is extended by adding zero samples:: ... 0 0 | x1 x2 ... xn | 0 0 ... .. _`Modes.constant`: * ``constant`` - **constant-padding** - border values are replicated:: ... x1 x1 | x1 x2 ... xn | xn xn ... .. _`Modes.symmetric`: * ``symmetric`` - **symmetric-padding** - signal is extended by *mirroring* samples. This mode is also known as half-sample symmetric.:: ... x2 x1 | x1 x2 ... xn | xn xn-1 ... .. _`Modes.reflect`: * ``reflect`` - **reflect-padding** - signal is extended by *reflecting* samples. This mode is also known as whole-sample symmetric.:: ... x3 x2 | x1 x2 ... xn | xn-1 xn-2 ... .. _`Modes.periodic`: .. _`periodic-padding`: * ``periodic`` - **periodic-padding** - signal is treated as a periodic one:: ... xn-1 xn | x1 x2 ... xn | x1 x2 ... .. _`Modes.smooth`: * ``smooth`` - **smooth-padding** - signal is extended according to the first derivatives calculated on the edges (straight line) .. _`Modes.antisymmetric`: * ``antisymmetric`` - **anti-symmetric padding** - signal is extended by *mirroring* and negating samples. This mode is also known as half-sample anti-symmetric:: ... -x2 -x1 | x1 x2 ... xn | -xn -xn-1 ... .. _`Modes.antireflect`: * ``antireflect`` - **anti-symmetric-reflect padding** - signal is extended by *reflecting* anti-symmetrically about the edge samples. This mode is also known as whole-sample anti-symmetric:: ... (2*x1 - x3) (2*x1 - x2) | x1 x2 ... xn | (2*xn - xn-1) (2*xn - xn-2) ... :ref:`DWT ` performed for these extension modes is slightly redundant, but ensures perfect reconstruction. To receive the smallest possible number of coefficients, computations can be performed with the `periodization`_ mode: .. _`periodization`: .. _`Modes.periodization`: * ``periodization`` - **periodization** - is like `periodic-padding`_ but gives the smallest possible number of decomposition coefficients. :ref:`IDWT ` must be performed with the same mode. **Example:** .. sourcecode:: python >>> import pywt >>> print(pywt.Modes.modes) ['zero', 'constant', 'symmetric', 'periodic', 'smooth', 'periodization', 'reflect', 'antisymmetric', 'antireflect'] The following figure illustrates how a short signal (red) gets extended (black) outside of its original extent. Note that periodization first extends the signal to an even length prior to using periodic boundary conditions. .. plot:: pyplots/plot_boundary_modes.py Notice that you can use any of the following ways of passing wavelet and mode parameters: .. sourcecode:: python >>> import pywt >>> (a, d) = pywt.dwt([1,2,3,4,5,6], 'db2', 'smooth') >>> (a, d) = pywt.dwt([1,2,3,4,5,6], pywt.Wavelet('db2'), pywt.Modes.smooth) .. note:: Extending data in context of PyWavelets does not mean reallocation of the data in the computer's physical memory and copying values, but rather computing the extra values only when they are needed. This feature saves extra memory and CPU resources and helps to avoid page swapping when handling relatively big data arrays on computers with low physical memory. Naming Conventions ------------------ The correspondence between PyWavelets edge modes and the extension modes available in Matlab's dwtmode and numpy's pad are tabulated here for reference. ================== ============= =========================== **PyWavelets** **Matlab** **numpy.pad** ================== ============= =========================== symmetric sym, symh symmetric reflect symw reflect smooth spd, sp1 N/A constant sp0 edge zero zpd constant, cval=0 periodic ppd wrap periodization per N/A antisymmetric asym, asymh N/A antireflect asymw reflect, reflect_type='odd' ================== ============= =========================== Padding using PyWavelets Signal Extension Modes - ``pad`` --------------------------------------------------------- .. autofunction:: pad Pywavelets provides a function, :func:`pad`, that operate like :func:`numpy.pad`, but supporting the PyWavelets signal extension modes discussed above. For efficiency, the DWT routines in PyWavelets do not expclitly create padded signals using this function. It can be used to manually prepad signals to reduce boundary effects in functions such as :func:`cwt` and :func:`swt` that do not currently support all of these signal extension modes. PyWavelets-1.1.1/doc/source/ref/swt-stationary-wavelet-transform.rst0000664000175000017500000000140613317422762026330 0ustar lee8rxlee8rx00000000000000.. _ref-swt: .. currentmodule:: pywt Stationary Wavelet Transform ---------------------------- `Stationary Wavelet Transform (SWT) `_, also known as *Undecimated wavelet transform* or *Algorithme à trous* is a translation-invariance modification of the *Discrete Wavelet Transform* that does not decimate coefficients at every transformation level. Multilevel 1D ``swt`` ~~~~~~~~~~~~~~~~~~~~~ .. autofunction:: swt Multilevel 2D ``swt2`` ~~~~~~~~~~~~~~~~~~~~~~ .. autofunction:: swt2 Multilevel n-dimensional ``swtn`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. autofunction:: swtn Maximum decomposition level - ``swt_max_level`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. autofunction:: swt_max_level PyWavelets-1.1.1/doc/source/ref/thresholding-functions.rst0000664000175000017500000000122313334573651024342 0ustar lee8rxlee8rx00000000000000.. _ref-thresholding: .. currentmodule:: pywt Thresholding functions ====================== The :mod:`~pywt.thresholding` helper module implements the most popular signal thresholding functions. Thresholding ------------ .. autofunction:: threshold .. autofunction:: threshold_firm The left panel of the figure below illustrates that non-negative Garotte thresholding is intermediate between soft and hard thresholding. Firm thresholding transitions between soft and hard thresholding behavior. It requires a pair of threshold values that define the width of the transition region. .. plot:: pyplots/plot_thresholds.py .. include:: ../common_refs.rst PyWavelets-1.1.1/doc/source/ref/wavelet-packets.rst0000664000175000017500000002607213416111752022741 0ustar lee8rxlee8rx00000000000000.. _ref-wp: .. currentmodule:: pywt .. include:: ../substitutions.rst =============== Wavelet Packets =============== .. versionadded:: 0.2 Version `0.2` of PyWavelets includes many new features and improvements. One of such new feature is a two-dimensional wavelet packet transform structure that is almost completely sharing programming interface with the one-dimensional tree structure. In order to achieve this simplification, a new inheritance scheme was used in which a :class:`~pywt.BaseNode` base node class is a superclass for both :class:`~pywt.Node` and :class:`~pywt.Node2D` node classes. The node classes are used as data wrappers and can be organized in trees (binary trees for 1D transform case and quad-trees for the 2D one). They are also superclasses to the :class:`~pywt.WaveletPacket` class and :class:`~pywt.WaveletPacket2D` class that are used as the decomposition tree roots and contain a couple additional methods. The below diagram illustrates the inheritance tree: - :class:`~pywt.BaseNode` - common interface for 1D and 2D nodes: - :class:`~pywt.Node` - data carrier node in a 1D decomposition tree - :class:`~pywt.WaveletPacket` - 1D decomposition tree root node - :class:`~pywt.Node2D` - data carrier node in a 2D decomposition tree - :class:`~pywt.WaveletPacket2D` - 2D decomposition tree root node BaseNode - a common interface of WaveletPacket and WaveletPacket2D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. class:: BaseNode Node(BaseNode) WaveletPacket(Node) Node2D(BaseNode) WaveletPacket2D(Node2D) .. note:: The BaseNode is a base class for :class:`Node` and :class:`Node2D`. It should not be used directly unless creating a new transformation type. It is included here to document the common interface of 1D and 2D node an wavelet packet transform classes. .. method:: __init__(parent, data, node_name) :param parent: parent node. If parent is ``None`` then the node is considered detached. :param data: data associated with the node. 1D or 2D numeric array, depending on the transform type. :param node_name: a name identifying the coefficients type. See :attr:`Node.node_name` and :attr:`Node2D.node_name` for information on the accepted subnodes names. .. attribute:: data Data associated with the node. 1D or 2D numeric array (depends on the transform type). .. attribute:: parent Parent node. Used in tree navigation. ``None`` for root node. .. attribute:: wavelet :class:`~pywt.Wavelet` used for decomposition and reconstruction. Inherited from parent node. .. attribute:: mode Signal extension :ref:`mode ` for the :func:`dwt` (:func:`dwt2`) and :func:`idwt` (:func:`idwt2`) decomposition and reconstruction functions. Inherited from parent node. .. attribute:: level Decomposition level of the current node. ``0`` for root (original data), ``1`` for the first decomposition level, etc. .. attribute:: path Path string defining position of the node in the decomposition tree. .. attribute:: node_name Node name describing :attr:`~BaseNode.data` coefficients type of the current subnode. See :attr:`Node.node_name` and :attr:`Node2D.node_name`. .. attribute:: maxlevel Maximum allowed level of decomposition. Evaluated from parent or child nodes. .. attribute:: is_empty Checks if :attr:`~BaseNode.data` attribute is ``None``. .. attribute:: has_any_subnode Checks if node has any subnodes (is not a leaf node). .. method:: decompose() Performs Discrete Wavelet Transform on the :attr:`~BaseNode.data` and returns transform coefficients. .. method:: reconstruct([update=False]) Performs Inverse Discrete Wavelet Transform on subnodes coefficients and returns reconstructed data for the current level. :param update: If set, the :attr:`~BaseNode.data` attribute will be updated with the reconstructed value. .. note:: Descends to subnodes and recursively calls :meth:`~BaseNode.reconstruct` on them. .. method:: get_subnode(part[, decompose=True]) Returns subnode or None (see *decomposition* flag description). :param part: Subnode name :param decompose: If True and subnode does not exist, it will be created using coefficients from the DWT decomposition of the current node. .. method:: __getitem__(path) Used to access nodes in the decomposition tree by string ``path``. :param path: Path string composed from valid node names. See :attr:`Node.node_name` and :attr:`Node2D.node_name` for node naming convention. Similar to :meth:`~BaseNode.get_subnode` method with `decompose=True`, but can access nodes on any level in the decomposition tree. If node does not exist yet, it will be created by decomposition of its parent node. .. method:: __setitem__(path, data) Used to set node or node's data in the decomposition tree. Nodes are identified by string ``path``. :param path: Path string composed from valid node names. See :attr:`Node.node_name` and :attr:`Node2D.node_name` for node naming convention. :param data: numeric array or :class:`~BaseNode` subclass. .. method:: __delitem__(path) Used to delete node from the decomposition tree. :param path: Path string composed from valid node names. See :attr:`Node.node_name` and :attr:`Node2D.node_name` for node naming convention. .. method:: get_leaf_nodes([decompose=False]) Traverses through the decomposition tree and collects leaf nodes (nodes without any subnodes). :param decompose: If ``decompose`` is ``True``, the method will try to decompose the tree up to the :attr:`maximum level `. .. method:: walk(self, func, [args=(), [kwargs={}, [decompose=True]]]) Traverses the decomposition tree and calls ``func(node, *args, **kwargs)`` on every node. If `func` returns ``True``, descending to subnodes will continue. :param func: callable accepting :class:`BaseNode` as the first param and optional positional and keyword arguments:: func(node, *args, **kwargs) :args: arguments to pass to the ``func`` :kwargs: keyword arguments to pass to the ``func`` :param decompose: If ``decompose`` is ``True`` (default), the method will also try to decompose the tree up to the :attr:`maximum level `. .. method:: walk_depth(self, func, [args=(), [kwargs={}, [decompose=False]]]) Similar to :meth:`~BaseNode.walk` but traverses the tree in depth-first order. :param func: callable accepting :class:`BaseNode` as the first param and optional positional and keyword arguments:: func(node, *args, **kwargs) :args: arguments to pass to the ``func`` :kwargs: keyword arguments to pass to the ``func`` :param decompose: If ``decompose`` is ``True``, the method will also try to decompose the tree up to the :attr:`maximum level `. WaveletPacket and WaveletPacket tree Node ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. class:: Node(BaseNode) WaveletPacket(Node) .. attribute:: node_name Node name describing :attr:`~BaseNode.data` coefficients type of the current subnode. For :class:`WaveletPacket` case it is just as in :func:`dwt`: - ``a`` - approximation coefficients - ``d`` - details coefficients .. method:: decompose() .. seealso:: - :func:`dwt` for 1D Discrete Wavelet Transform output coefficients. .. class:: WaveletPacket(Node) .. method:: __init__(data, wavelet, [mode='symmetric', [maxlevel=None]]) :param data: data associated with the node. 1D numeric array. :param wavelet: |wavelet| :param mode: Signal extension :ref:`mode ` for the :func:`dwt` and :func:`idwt` decomposition and reconstruction functions. :param maxlevel: Maximum allowed level of decomposition. If not specified it will be calculated based on the ``wavelet`` and ``data`` length using :func:`pywt.dwt_max_level`. .. method:: get_level(level, [order="natural", [decompose=True]]) Collects nodes from the given level of decomposition. :param level: Specifies decomposition ``level`` from which the nodes will be collected. :param order: Specifies nodes order - natural (``natural``) or frequency (``freq``). :param decompose: If set then the method will try to decompose the data up to the specified ``level``. If nodes at the given level are missing (i.e. the tree is partially decomposed) and the ``decompose`` is set to ``False``, only existing nodes will be returned. WaveletPacket2D and WaveletPacket2D tree Node2D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. class:: Node2D(BaseNode) WaveletPacket2D(Node2D) .. attribute:: node_name For :class:`WaveletPacket2D` case it is just as in :func:`dwt2`: - ``a`` - approximation coefficients (`LL`) - ``h`` - horizontal detail coefficients (`LH`) - ``v`` - vertical detail coefficients (`HL`) - ``d`` - diagonal detail coefficients (`HH`) .. method:: decompose() .. seealso:: :func:`dwt2` for 2D Discrete Wavelet Transform output coefficients. .. method:: expand_2d_path(self, path): .. class:: WaveletPacket2D(Node2D) .. method:: __init__(data, wavelet, [mode='symmetric', [maxlevel=None]]) :param data: data associated with the node. 2D numeric array. :param wavelet: |wavelet| :param mode: Signal extension :ref:`mode ` for the :func:`dwt` and :func:`idwt` decomposition and reconstruction functions. :param maxlevel: Maximum allowed level of decomposition. If not specified it will be calculated based on the ``wavelet`` and ``data`` length using :func:`pywt.dwt_max_level`. .. method:: get_level(level, [order="natural", [decompose=True]]) Collects nodes from the given level of decomposition. :param level: Specifies decomposition ``level`` from which the nodes will be collected. :param order: Specifies nodes order - natural (``natural``) or frequency (``freq``). :param decompose: If set then the method will try to decompose the data up to the specified ``level``. If nodes at the given level are missing (i.e. the tree is partially decomposed) and the ``decompose`` is set to ``False``, only existing nodes will be returned. PyWavelets-1.1.1/doc/source/ref/wavelets.rst0000644000175000017500000002523613552333332021474 0ustar lee8rxlee8rx00000000000000.. _ref-wavelets: .. currentmodule:: pywt ======== Wavelets ======== Wavelet ``families()`` ---------------------- .. autofunction:: families Built-in wavelets - ``wavelist()`` ---------------------------------- .. autofunction:: wavelist Custom discrete wavelets are also supported through the :class:`Wavelet` object constructor as described below. ``Wavelet`` object ------------------ .. class:: Wavelet(name[, filter_bank=None]) Describes properties of a discrete wavelet identified by the specified wavelet ``name``. For continuous wavelets see :class:`pywt.ContinuousWavelet` instead. In order to use a built-in wavelet the ``name`` parameter must be a valid wavelet name from the :func:`pywt.wavelist` list. Custom Wavelet objects can be created by passing a user-defined filters set with the ``filter_bank`` parameter. :param name: Wavelet name :param filter_bank: Use a user supplied filter bank instead of a built-in :class:`Wavelet`. The filter bank object can be a list of four filters coefficients or an object with :attr:`~Wavelet.filter_bank` attribute, which returns a list of such filters in the following order:: [dec_lo, dec_hi, rec_lo, rec_hi] Wavelet objects can also be used as a base filter banks. See section on :ref:`using custom wavelets ` for more information. **Example:** .. sourcecode:: python >>> import pywt >>> wavelet = pywt.Wavelet('db1') .. attribute:: name Wavelet name. .. attribute:: short_name Short wavelet name. .. attribute:: dec_lo Decomposition filter values. .. attribute:: dec_hi Decomposition filter values. .. attribute:: rec_lo Reconstruction filter values. .. attribute:: rec_hi Reconstruction filter values. .. attribute:: dec_len Decomposition filter length. .. attribute:: rec_len Reconstruction filter length. .. attribute:: filter_bank Returns filters list for the current wavelet in the following order:: [dec_lo, dec_hi, rec_lo, rec_hi] .. attribute:: inverse_filter_bank Returns list of reverse wavelet filters coefficients. The mapping from the ``filter_coeffs`` list is as follows:: [rec_lo[::-1], rec_hi[::-1], dec_lo[::-1], dec_hi[::-1]] .. attribute:: short_family_name Wavelet short family name .. attribute:: family_name Wavelet family name .. attribute:: orthogonal Set if wavelet is orthogonal .. attribute:: biorthogonal Set if wavelet is biorthogonal .. attribute:: symmetry ``asymmetric``, ``near symmetric``, ``symmetric`` .. attribute:: vanishing_moments_psi Number of vanishing moments for the wavelet function .. attribute:: vanishing_moments_phi Number of vanishing moments for the scaling function **Example:** .. sourcecode:: python >>> def format_array(arr): ... return "[%s]" % ", ".join(["%.14f" % x for x in arr]) >>> import pywt >>> wavelet = pywt.Wavelet('db1') >>> print(wavelet) Wavelet db1 Family name: Daubechies Short name: db Filters length: 2 Orthogonal: True Biorthogonal: True Symmetry: asymmetric DWT: True CWT: False >>> print(format_array(wavelet.dec_lo), format_array(wavelet.dec_hi)) [0.70710678118655, 0.70710678118655] [-0.70710678118655, 0.70710678118655] >>> print(format_array(wavelet.rec_lo), format_array(wavelet.rec_hi)) [0.70710678118655, 0.70710678118655] [0.70710678118655, -0.70710678118655] Approximating wavelet and scaling functions - ``Wavelet.wavefun()`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. method:: Wavelet.wavefun(level) .. versionchanged:: 0.2 The time (space) localisation of approximation function points was added. The :meth:`~Wavelet.wavefun` method can be used to calculate approximations of scaling function (``phi``) and wavelet function (``psi``) at the given level of refinement. For :attr:`orthogonal ` wavelets returns approximations of scaling function and wavelet function with corresponding x-grid coordinates:: [phi, psi, x] = wavelet.wavefun(level) **Example:** .. sourcecode:: python >>> import pywt >>> wavelet = pywt.Wavelet('db2') >>> phi, psi, x = wavelet.wavefun(level=5) For other (:attr:`biorthogonal ` but not :attr:`orthogonal `) wavelets returns approximations of scaling and wavelet function both for decomposition and reconstruction and corresponding x-grid coordinates:: [phi_d, psi_d, phi_r, psi_r, x] = wavelet.wavefun(level) **Example:** .. sourcecode:: python >>> import pywt >>> wavelet = pywt.Wavelet('bior3.5') >>> phi_d, psi_d, phi_r, psi_r, x = wavelet.wavefun(level=5) .. See also plots of Daubechies and Symlets wavelet families generated using the :meth:`~Wavelet.wavefun` function: - `db.png`_ - `sym.png`_ .. seealso:: You can find live examples of :meth:`~Wavelet.wavefun` usage and images of all the built-in wavelets on the `Wavelet Properties Browser `_ page. However, **this website is no longer actively maintained** and does not include every wavelet present in PyWavelets. The precision of the wavelet coefficients at that site is also lower than those included in PyWavelets. .. _using-custom-wavelets: .. _custom-wavelets: Using custom wavelets --------------------- PyWavelets comes with a :func:`long list ` of the most popular wavelets built-in and ready to use. If you need to use a specific wavelet which is not included in the list it is very easy to do so. Just pass a list of four filters or an object with a :attr:`~Wavelet.filter_bank` attribute as a ``filter_bank`` argument to the :class:`Wavelet` constructor. .. compound:: The filters list, either in a form of a simple Python list or returned via the :attr:`~Wavelet.filter_bank` attribute, must be in the following order: * lowpass decomposition filter * highpass decomposition filter * lowpass reconstruction filter * highpass reconstruction filter just as for the :attr:`~Wavelet.filter_bank` attribute of the :class:`Wavelet` class. The Wavelet object created in this way is a standard :class:`Wavelet` instance. The following example illustrates the way of creating custom Wavelet objects from plain Python lists of filter coefficients and a *filter bank-like* object. **Example:** .. sourcecode:: python >>> import pywt, math >>> c = math.sqrt(2)/2 >>> dec_lo, dec_hi, rec_lo, rec_hi = [c, c], [-c, c], [c, c], [c, -c] >>> filter_bank = [dec_lo, dec_hi, rec_lo, rec_hi] >>> myWavelet = pywt.Wavelet(name="myHaarWavelet", filter_bank=filter_bank) >>> >>> class HaarFilterBank(object): ... @property ... def filter_bank(self): ... c = math.sqrt(2)/2 ... dec_lo, dec_hi, rec_lo, rec_hi = [c, c], [-c, c], [c, c], [c, -c] ... return [dec_lo, dec_hi, rec_lo, rec_hi] >>> filter_bank = HaarFilterBank() >>> myOtherWavelet = pywt.Wavelet(name="myHaarWavelet", filter_bank=filter_bank) ``ContinuousWavelet`` object ---------------------------- .. class:: ContinuousWavelet(name) Describes properties of a continuous wavelet identified by the specified wavelet ``name``. In order to use a built-in wavelet the ``name`` parameter must be a valid wavelet name from the :func:`pywt.wavelist` list. :param name: Wavelet name **Example:** .. sourcecode:: python >>> import pywt >>> wavelet = pywt.ContinuousWavelet('gaus1') .. attribute:: name Continuous Wavelet name. .. attribute:: short_family_name Wavelet short family name .. attribute:: family_name Wavelet family name .. attribute:: orthogonal Set if wavelet is orthogonal .. attribute:: biorthogonal Set if wavelet is biorthogonal .. attribute:: complex_cwt Returns if wavelet is complex .. attribute:: lower_bound Set the lower bound of the effective support .. attribute:: upper_bound Set the upper bound of the effective support .. attribute:: center_frequency Set the center frequency for the shan, fbsp and cmor wavelets .. attribute:: bandwidth_frequency Set the bandwidth frequency for the shan, fbsp and cmor wavelets .. attribute:: fbsp_order Set the order for the fbsp wavelet .. attribute:: symmetry ``asymmetric``, ``near symmetric``, ``symmetric``, ``anti-symmetric`` **Example:** .. sourcecode:: python >>> import pywt >>> wavelet = pywt.ContinuousWavelet('gaus1') >>> print(wavelet) ContinuousWavelet gaus1 Family name: Gaussian Short name: gaus Symmetry: anti-symmetric DWT: False CWT: True Complex CWT: False Approximating wavelet functions - ``ContinuousWavelet.wavefun()`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. method:: ContinuousWavelet.wavefun(level, length = None) The :meth:`~ContinuousWavelet.wavefun` method can be used to calculate approximations of scaling function (``psi``) with grid (``x``). The vector length is set by ``length``. The vector length can also be defined by ``2**level`` if ``length`` is not set. For :attr:`complex_cwt ` wavelets returns a complex approximations of wavelet function with corresponding x-grid coordinates:: [psi, x] = wavelet.wavefun(level) **Example:** .. sourcecode:: python >>> import pywt >>> wavelet = pywt.ContinuousWavelet('gaus1') >>> psi, x = wavelet.wavefun(level=5) Approximating wavelet functions - ``ContinuousWavelet.wavefun()`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. method:: DiscreteContinuousWavelet(name, [filter_bank = None]) The :meth:`~DiscreteContinuousWavelet` returns a Wavelet or a ContinuousWavelet object depending on the given name. **Example:** .. sourcecode:: python >>> import pywt >>> wavelet = pywt.DiscreteContinuousWavelet('db1') >>> print(wavelet) Wavelet db1 Family name: Daubechies Short name: db Filters length: 2 Orthogonal: True Biorthogonal: True Symmetry: asymmetric DWT: True CWT: False >>> wavelet = pywt.DiscreteContinuousWavelet('gaus1') >>> print(wavelet) ContinuousWavelet gaus1 Family name: Gaussian Short name: gaus Symmetry: anti-symmetric DWT: False CWT: True Complex CWT: False PyWavelets-1.1.1/doc/source/regression/0000755000175000017500000000000013552543071020507 5ustar lee8rxlee8rx00000000000000PyWavelets-1.1.1/doc/source/regression/dwt-idwt.rst0000644000175000017500000001257013552333332023006 0ustar lee8rxlee8rx00000000000000.. _reg-dwt-idwt: .. currentmodule:: pywt DWT and IDWT ============ Discrete Wavelet Transform -------------------------- Let's do a :func:`Discrete Wavelet Transform ` of a sample data ``x`` using the ``db2`` wavelet. It's simple.. >>> import pywt >>> x = [3, 7, 1, 1, -2, 5, 4, 6] >>> cA, cD = pywt.dwt(x, 'db2') And the approximation and details coefficients are in ``cA`` and ``cD`` respectively: >>> print(cA) [ 5.65685425 7.39923721 0.22414387 3.33677403 7.77817459] >>> print(cD) [-2.44948974 -1.60368225 -4.44140056 -0.41361256 1.22474487] Inverse Discrete Wavelet Transform ---------------------------------- Now let's do an opposite operation - :func:`Inverse Discrete Wavelet Transform `: >>> print(pywt.idwt(cA, cD, 'db2')) [ 3. 7. 1. 1. -2. 5. 4. 6.] Voilà! That's it! More Examples ------------- Now let's experiment with the :func:`dwt` some more. For example let's pass a :class:`Wavelet` object instead of the wavelet name and specify signal extension mode (the default is :ref:`symmetric `) for the border effect handling: >>> w = pywt.Wavelet('sym3') >>> cA, cD = pywt.dwt(x, wavelet=w, mode='constant') >>> print(cA) [ 4.38354585 3.80302657 7.31813271 -0.58565539 4.09727044 7.81994027] >>> print(cD) [-1.33068221 -2.78795192 -3.16825651 -0.67715519 -0.09722957 -0.07045258] Note that the output coefficients arrays length depends not only on the input data length but also on the :class:Wavelet type (particularly on its :attr:`filters length <~Wavelet.dec_len>` that are used in the transformation). To find out what will be the output data size use the :func:`dwt_coeff_len` function: >>> # int() is for normalizing Python integers and long integers for documentation tests >>> int(pywt.dwt_coeff_len(data_len=len(x), filter_len=w.dec_len, mode='symmetric')) 6 >>> int(pywt.dwt_coeff_len(len(x), w, 'symmetric')) 6 >>> len(cA) 6 Looks fine. (And if you expected that the output length would be a half of the input data length, well, that's the trade-off that allows for the perfect reconstruction...). The third argument of the :func:`dwt_coeff_len` is the already mentioned signal extension mode (please refer to the PyWavelets' documentation for the :ref:`modes ` description). Currently there are six :ref:`extension modes ` available: >>> pywt.Modes.modes ['zero', 'constant', 'symmetric', 'periodic', 'smooth', 'periodization', 'reflect', 'antisymmetric', 'antireflect'] As you see in the above example, the :ref:`periodization ` (periodization) mode is slightly different from the others. It's aim when doing the :func:`DWT ` transform is to output coefficients arrays that are half of the length of the input data. Knowing that, you should never mix the periodization mode with other modes when doing :func:`DWT ` and :func:`IDWT `. Otherwise, it will produce **invalid results**: >>> x [3, 7, 1, 1, -2, 5, 4, 6] >>> cA, cD = pywt.dwt(x, wavelet=w, mode='periodization') >>> print(pywt.idwt(cA, cD, 'sym3', 'symmetric')) # invalid mode [ 1. 1. -2. 5.] >>> print(pywt.idwt(cA, cD, 'sym3', 'periodization')) [ 3. 7. 1. 1. -2. 5. 4. 6.] Tips & tricks ------------- Passing ``None`` instead of coefficients data to :func:`idwt` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Now some tips & tricks. Passing ``None`` as one of the coefficient arrays parameters is similar to passing a *zero-filled* array. The results are simply the same: >>> print(pywt.idwt([1,2,0,1], None, 'db2', 'symmetric')) [ 1.19006969 1.54362308 0.44828774 -0.25881905 0.48296291 0.8365163 ] >>> print(pywt.idwt([1, 2, 0, 1], [0, 0, 0, 0], 'db2', 'symmetric')) [ 1.19006969 1.54362308 0.44828774 -0.25881905 0.48296291 0.8365163 ] >>> print(pywt.idwt(None, [1, 2, 0, 1], 'db2', 'symmetric')) [ 0.57769726 -0.93125065 1.67303261 -0.96592583 -0.12940952 -0.22414387] >>> print(pywt.idwt([0, 0, 0, 0], [1, 2, 0, 1], 'db2', 'symmetric')) [ 0.57769726 -0.93125065 1.67303261 -0.96592583 -0.12940952 -0.22414387] Remember that only one argument at a time can be ``None``: >>> print(pywt.idwt(None, None, 'db2', 'symmetric')) Traceback (most recent call last): ... ValueError: At least one coefficient parameter must be specified. Coefficients data size in :attr:`idwt` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ When doing the :func:`IDWT ` transform, usually the coefficient arrays must have the same size. >>> print(pywt.idwt([1, 2, 3, 4, 5], [1, 2, 3, 4], 'db2', 'symmetric')) Traceback (most recent call last): ... ValueError: Coefficients arrays must have the same size. Not every coefficient array can be used in :func:`IDWT `. In the following example the :func:`idwt` will fail because the input arrays are invalid - they couldn't be created as a result of :func:`DWT `, because the minimal output length for dwt using ``db4`` wavelet and the :ref:`symmetric ` mode is ``4``, not ``3``: >>> pywt.idwt([1,2,4], [4,1,3], 'db4', 'symmetric') Traceback (most recent call last): ... ValueError: Invalid coefficient arrays length for specified wavelet. Wavelet and mode must be the same as used for decomposition. >>> int(pywt.dwt_coeff_len(1, pywt.Wavelet('db4').dec_len, 'symmetric')) 4 PyWavelets-1.1.1/doc/source/regression/gotchas.rst0000664000175000017500000000111613270003221022653 0ustar lee8rxlee8rx00000000000000.. _reg-gotchas: .. currentmodule:: pywt ======= Gotchas ======= PyWavelets utilizes ``NumPy`` under the hood. That's why handling the data containing ``None`` values can be surprising. ``None`` values are converted to 'not a number' (``numpy.NaN``) values: >>> import numpy, pywt >>> x = [None, None] >>> mode = 'symmetric' >>> wavelet = 'db1' >>> cA, cD = pywt.dwt(x, wavelet, mode) >>> numpy.all(numpy.isnan(cA)) True >>> numpy.all(numpy.isnan(cD)) True >>> rec = pywt.idwt(cA, cD, wavelet, mode) >>> numpy.all(numpy.isnan(rec)) True PyWavelets-1.1.1/doc/source/regression/index.rst0000664000175000017500000000077113341306407022353 0ustar lee8rxlee8rx00000000000000.. _reg-index: .. currentmodule:: pywt Usage examples ============== The following examples are used as doctest regression tests written using reST markup. They are included in the documentation since they contain various useful examples illustrating how to use and how not to use PyWavelets. For more usage examples see the `demo`_ directory in the source package. .. toctree:: :maxdepth: 1 wavelet modes dwt-idwt multilevel wp wp2d gotchas .. include:: ../common_refs.rst PyWavelets-1.1.1/doc/source/regression/modes.rst0000644000175000017500000000374413552333332022355 0ustar lee8rxlee8rx00000000000000.. _reg-modes: .. currentmodule:: pywt Signal Extension Modes ====================== Import :mod:`pywt` first >>> import pywt >>> def format_array(a): ... """Consistent array representation across different systems""" ... import numpy ... a = numpy.where(numpy.abs(a) < 1e-5, 0, a) ... return numpy.array2string(a, precision=5, separator=' ', suppress_small=True) List of available signal extension :ref:`modes `: >>> print(pywt.Modes.modes) ['zero', 'constant', 'symmetric', 'periodic', 'smooth', 'periodization', 'reflect', 'antisymmetric', 'antireflect'] Invalid mode name should rise a :exc:`ValueError`: >>> pywt.dwt([1,2,3,4], 'db2', 'invalid') Traceback (most recent call last): ... ValueError: Unknown mode name 'invalid'. You can also refer to modes via :ref:`Modes ` class attributes: >>> x = [1, 2, 1, 5, -1, 8, 4, 6] >>> for mode_name in ['zero', 'constant', 'symmetric', 'reflect', 'periodic', 'smooth', 'periodization']: ... mode = getattr(pywt.Modes, mode_name) ... cA, cD = pywt.dwt(x, 'db2', mode) ... print("Mode: %d (%s)" % (mode, mode_name)) Mode: 0 (zero) Mode: 2 (constant) Mode: 1 (symmetric) Mode: 6 (reflect) Mode: 4 (periodic) Mode: 3 (smooth) Mode: 5 (periodization) The default mode is :ref:`symmetric `: >>> cA, cD = pywt.dwt(x, 'db2') >>> print(cA) [ 1.76776695 1.73309178 3.40612438 6.32928585 7.77817459] >>> print(cD) [-0.61237244 -2.15599552 -5.95034847 -1.21545369 1.22474487] >>> print(pywt.idwt(cA, cD, 'db2')) [ 1. 2. 1. 5. -1. 8. 4. 6.] And using a keyword argument: >>> cA, cD = pywt.dwt(x, 'db2', mode='symmetric') >>> print(cA) [ 1.76776695 1.73309178 3.40612438 6.32928585 7.77817459] >>> print(cD) [-0.61237244 -2.15599552 -5.95034847 -1.21545369 1.22474487] >>> print(pywt.idwt(cA, cD, 'db2')) [ 1. 2. 1. 5. -1. 8. 4. 6.] PyWavelets-1.1.1/doc/source/regression/multilevel.rst0000664000175000017500000000271413270003221023412 0ustar lee8rxlee8rx00000000000000.. _reg-multilevel: .. currentmodule:: pywt Multilevel DWT, IDWT and SWT ============================ Multilevel DWT decomposition ---------------------------- >>> import pywt >>> x = [3, 7, 1, 1, -2, 5, 4, 6] >>> db1 = pywt.Wavelet('db1') >>> cA3, cD3, cD2, cD1 = pywt.wavedec(x, db1) >>> print(cA3) [ 8.83883476] >>> print(cD3) [-0.35355339] >>> print(cD2) [ 4. -3.5] >>> print(cD1) [-2.82842712 0. -4.94974747 -1.41421356] >>> pywt.dwt_max_level(len(x), db1) 3 >>> cA2, cD2, cD1 = pywt.wavedec(x, db1, mode='constant', level=2) Multilevel IDWT reconstruction ------------------------------ >>> coeffs = pywt.wavedec(x, db1) >>> print(pywt.waverec(coeffs, db1)) [ 3. 7. 1. 1. -2. 5. 4. 6.] Multilevel SWT decomposition ---------------------------- >>> x = [3, 7, 1, 3, -2, 6, 4, 6] >>> (cA2, cD2), (cA1, cD1) = pywt.swt(x, db1, level=2) >>> print(cA1) [ 7.07106781 5.65685425 2.82842712 0.70710678 2.82842712 7.07106781 7.07106781 6.36396103] >>> print(cD1) [-2.82842712 4.24264069 -1.41421356 3.53553391 -5.65685425 1.41421356 -1.41421356 2.12132034] >>> print(cA2) [ 7. 4.5 4. 5.5 7. 9.5 10. 8.5] >>> print(cD2) [ 3. 3.5 0. -4.5 -3. 0.5 0. 0.5] >>> [(cA2, cD2)] = pywt.swt(cA1, db1, level=1, start_level=1) >>> print(cA2) [ 7. 4.5 4. 5.5 7. 9.5 10. 8.5] >>> print(cD2) [ 3. 3.5 0. -4.5 -3. 0.5 0. 0.5] >>> coeffs = pywt.swt(x, db1) >>> len(coeffs) 3 >>> pywt.swt_max_level(len(x)) 3 PyWavelets-1.1.1/doc/source/regression/wavelet.rst0000664000175000017500000002006013443204401022676 0ustar lee8rxlee8rx00000000000000.. _reg-wavelet: .. currentmodule:: pywt The Wavelet object ================== Wavelet families and builtin Wavelets names ------------------------------------------- :class:`Wavelet` objects are really a handy carriers of a bunch of DWT-specific data like *quadrature mirror filters* and some general properties associated with them. At first let's go through the methods of creating a :class:`Wavelet` object. The easiest and the most convenient way is to use builtin named Wavelets. These wavelets are organized into groups called wavelet families. The most commonly used families are: >>> import pywt >>> pywt.families() ['haar', 'db', 'sym', 'coif', 'bior', 'rbio', 'dmey', 'gaus', 'mexh', 'morl', 'cgau', 'shan', 'fbsp', 'cmor'] The :func:`wavelist` function with family name passed as an argument is used to obtain the list of wavelet names in each family. >>> for family in pywt.families(): ... print("%s family: " % family + ', '.join(pywt.wavelist(family))) haar family: haar db family: db1, db2, db3, db4, db5, db6, db7, db8, db9, db10, db11, db12, db13, db14, db15, db16, db17, db18, db19, db20, db21, db22, db23, db24, db25, db26, db27, db28, db29, db30, db31, db32, db33, db34, db35, db36, db37, db38 sym family: sym2, sym3, sym4, sym5, sym6, sym7, sym8, sym9, sym10, sym11, sym12, sym13, sym14, sym15, sym16, sym17, sym18, sym19, sym20 coif family: coif1, coif2, coif3, coif4, coif5, coif6, coif7, coif8, coif9, coif10, coif11, coif12, coif13, coif14, coif15, coif16, coif17 bior family: bior1.1, bior1.3, bior1.5, bior2.2, bior2.4, bior2.6, bior2.8, bior3.1, bior3.3, bior3.5, bior3.7, bior3.9, bior4.4, bior5.5, bior6.8 rbio family: rbio1.1, rbio1.3, rbio1.5, rbio2.2, rbio2.4, rbio2.6, rbio2.8, rbio3.1, rbio3.3, rbio3.5, rbio3.7, rbio3.9, rbio4.4, rbio5.5, rbio6.8 dmey family: dmey gaus family: gaus1, gaus2, gaus3, gaus4, gaus5, gaus6, gaus7, gaus8 mexh family: mexh morl family: morl cgau family: cgau1, cgau2, cgau3, cgau4, cgau5, cgau6, cgau7, cgau8 shan family: shan fbsp family: fbsp cmor family: cmor To get the full list of builtin wavelets' names just use the :func:`wavelist` with no argument. Creating Wavelet objects ------------------------ Now when we know all the names let's finally create a :class:`Wavelet` object: >>> w = pywt.Wavelet('db3') So.. that's it. Wavelet properties ------------------ But what can we do with :class:`Wavelet` objects? Well, they carry some interesting information. First, let's try printing a :class:`Wavelet` object. This shows a brief information about its name, its family name and some properties like orthogonality and symmetry. >>> print(w) Wavelet db3 Family name: Daubechies Short name: db Filters length: 6 Orthogonal: True Biorthogonal: True Symmetry: asymmetric DWT: True CWT: False But the most important information are the wavelet filters coefficients, which are used in :ref:`Discrete Wavelet Transform `. These coefficients can be obtained via the :attr:`~Wavelet.dec_lo`, :attr:`Wavelet.dec_hi`, :attr:`~Wavelet.rec_lo` and :attr:`~Wavelet.rec_hi` attributes, which corresponds to lowpass and highpass decomposition filters and lowpass and highpass reconstruction filters respectively: >>> def print_array(arr): ... print("[%s]" % ", ".join(["%.14f" % x for x in arr])) Another way to get the filters data is to use the :attr:`~Wavelet.filter_bank` attribute, which returns all four filters in a tuple: >>> w.filter_bank == (w.dec_lo, w.dec_hi, w.rec_lo, w.rec_hi) True Other Wavelet's properties are: Wavelet :attr:`~Wavelet.name`, :attr:`~Wavelet.short_family_name` and :attr:`~Wavelet.family_name`: >>> print(w.name) db3 >>> print(w.short_family_name) db >>> print(w.family_name) Daubechies - Decomposition (:attr:`~Wavelet.dec_len`) and reconstruction (:attr:`~.Wavelet.rec_len`) filter lengths: >>> int(w.dec_len) # int() is for normalizing longs and ints for doctest 6 >>> int(w.rec_len) 6 - Orthogonality (:attr:`~Wavelet.orthogonal`) and biorthogonality (:attr:`~Wavelet.biorthogonal`): >>> w.orthogonal True >>> w.biorthogonal True - Symmetry (:attr:`~Wavelet.symmetry`): >>> print(w.symmetry) asymmetric - Number of vanishing moments for the scaling function ``phi`` (:attr:`~Wavelet.vanishing_moments_phi`) and the wavelet function ``psi`` (:attr:`~Wavelet.vanishing_moments_psi`) associated with the filters: >>> w.vanishing_moments_phi 0 >>> w.vanishing_moments_psi 3 Now when we know a bit about the builtin Wavelets, let's see how to create :ref:`custom Wavelets ` objects. These can be done in two ways: 1) Passing the filter bank object that implements the ``filter_bank`` attribute. The attribute must return four filters coefficients. >>> class MyHaarFilterBank(object): ... @property ... def filter_bank(self): ... from math import sqrt ... return ([sqrt(2)/2, sqrt(2)/2], [-sqrt(2)/2, sqrt(2)/2], ... [sqrt(2)/2, sqrt(2)/2], [sqrt(2)/2, -sqrt(2)/2]) >>> my_wavelet = pywt.Wavelet('My Haar Wavelet', filter_bank=MyHaarFilterBank()) 2) Passing the filters coefficients directly as the ``filter_bank`` parameter. >>> from math import sqrt >>> my_filter_bank = ([sqrt(2)/2, sqrt(2)/2], [-sqrt(2)/2, sqrt(2)/2], ... [sqrt(2)/2, sqrt(2)/2], [sqrt(2)/2, -sqrt(2)/2]) >>> my_wavelet = pywt.Wavelet('My Haar Wavelet', filter_bank=my_filter_bank) Note that such custom wavelets **will not** have all the properties set to correct values: >>> print(my_wavelet) Wavelet My Haar Wavelet Family name: Short name: Filters length: 2 Orthogonal: False Biorthogonal: False Symmetry: unknown DWT: True CWT: False You can however set a couple of them on your own: >>> my_wavelet.orthogonal = True >>> my_wavelet.biorthogonal = True >>> print(my_wavelet) Wavelet My Haar Wavelet Family name: Short name: Filters length: 2 Orthogonal: True Biorthogonal: True Symmetry: unknown DWT: True CWT: False And now... the ``wavefun``! --------------------------- We all know that the fun with wavelets is in wavelet functions. Now what would be this package without a tool to compute wavelet and scaling functions approximations? This is the purpose of the :meth:`~Wavelet.wavefun` method, which is used to approximate scaling function (``phi``) and wavelet function (``psi``) at the given level of refinement, based on the filters coefficients. The number of returned values varies depending on the wavelet's orthogonality property. For orthogonal wavelets the result is tuple with scaling function, wavelet function and xgrid coordinates. >>> w = pywt.Wavelet('sym3') >>> w.orthogonal True >>> (phi, psi, x) = w.wavefun(level=5) For biorthogonal (non-orthogonal) wavelets different scaling and wavelet functions are used for decomposition and reconstruction, and thus five elements are returned: decomposition scaling and wavelet functions approximations, reconstruction scaling and wavelet functions approximations, and the xgrid. >>> w = pywt.Wavelet('bior1.3') >>> w.orthogonal False >>> (phi_d, psi_d, phi_r, psi_r, x) = w.wavefun(level=5) .. seealso:: You can find live examples of :meth:`~Wavelet.wavefun` usage and images of all the built-in wavelets on the `Wavelet Properties Browser `_ page. However, **this website is no longer actively maintained** and does not include every wavelet present in PyWavelets. The precision of the wavelet coefficients at that site is also lower than those included in PyWavelets. PyWavelets-1.1.1/doc/source/regression/wp.rst0000664000175000017500000001637213270003221021663 0ustar lee8rxlee8rx00000000000000.. _reg-wp: .. currentmodule:: pywt >>> from __future__ import print_function Wavelet Packets =============== Import pywt ----------- >>> import pywt >>> def format_array(a): ... """Consistent array representation across different systems""" ... import numpy ... a = numpy.where(numpy.abs(a) < 1e-5, 0, a) ... return numpy.array2string(a, precision=5, separator=' ', suppress_small=True) Create Wavelet Packet structure ------------------------------- Ok, let's create a sample :class:`WaveletPacket`: >>> x = [1, 2, 3, 4, 5, 6, 7, 8] >>> wp = pywt.WaveletPacket(data=x, wavelet='db1', mode='symmetric') The input ``data`` and decomposition coefficients are stored in the :attr:`WaveletPacket.data` attribute: >>> print(wp.data) [1, 2, 3, 4, 5, 6, 7, 8] :class:`Nodes ` are identified by :attr:`paths <~Node.path>`. For the root node the path is ``''`` and the decomposition level is ``0``. >>> print(repr(wp.path)) '' >>> print(wp.level) 0 The ``maxlevel``, if not given as param in the constructor, is automatically computed: >>> print(wp['ad'].maxlevel) 3 Traversing WP tree: ------------------- Accessing subnodes: ~~~~~~~~~~~~~~~~~~~ >>> x = [1, 2, 3, 4, 5, 6, 7, 8] >>> wp = pywt.WaveletPacket(data=x, wavelet='db1', mode='symmetric') First check what is the maximum level of decomposition: >>> print(wp.maxlevel) 3 and try accessing subnodes of the WP tree: * 1st level: >>> print(wp['a'].data) [ 2.12132034 4.94974747 7.77817459 10.60660172] >>> print(wp['a'].path) a * 2nd level: >>> print(wp['aa'].data) [ 5. 13.] >>> print(wp['aa'].path) aa * 3rd level: >>> print(wp['aaa'].data) [ 12.72792206] >>> print(wp['aaa'].path) aaa Ups, we have reached the maximum level of decomposition and got an :exc:`IndexError`: >>> print(wp['aaaa'].data) Traceback (most recent call last): ... IndexError: Path length is out of range. Now try some invalid path: >>> print(wp['ac']) Traceback (most recent call last): ... ValueError: Subnode name must be in ['a', 'd'], not 'c'. which just yielded a :exc:`ValueError`. Accessing Node's attributes: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :class:`WaveletPacket` object is a tree data structure, which evaluates to a set of :class:`Node` objects. :class:`WaveletPacket` is just a special subclass of the :class:`Node` class (which in turn inherits from the :class:`BaseNode`). Tree nodes can be accessed using the ``obj[x]`` (:meth:`Node.__getitem__`) operator. Each tree node has a set of attributes: :attr:`~Node.data`, :attr:`~Node.path`, :attr:`~Node.node_name`, :attr:`~Node.parent`, :attr:`~Node.level`, :attr:`~Node.maxlevel` and :attr:`~Node.mode`. >>> x = [1, 2, 3, 4, 5, 6, 7, 8] >>> wp = pywt.WaveletPacket(data=x, wavelet='db1', mode='symmetric') >>> print(wp['ad'].data) [-2. -2.] >>> print(wp['ad'].path) ad >>> print(wp['ad'].node_name) d >>> print(wp['ad'].parent.path) a >>> print(wp['ad'].level) 2 >>> print(wp['ad'].maxlevel) 3 >>> print(wp['ad'].mode) symmetric Collecting nodes ~~~~~~~~~~~~~~~~ >>> x = [1, 2, 3, 4, 5, 6, 7, 8] >>> wp = pywt.WaveletPacket(data=x, wavelet='db1', mode='symmetric') We can get all nodes on the particular level either in ``natural`` order: >>> print([node.path for node in wp.get_level(3, 'natural')]) ['aaa', 'aad', 'ada', 'add', 'daa', 'dad', 'dda', 'ddd'] or sorted based on the band frequency (``freq``): >>> print([node.path for node in wp.get_level(3, 'freq')]) ['aaa', 'aad', 'add', 'ada', 'dda', 'ddd', 'dad', 'daa'] Note that :meth:`WaveletPacket.get_level` also performs automatic decomposition until it reaches the specified ``level``. Reconstructing data from Wavelet Packets: ----------------------------------------- >>> x = [1, 2, 3, 4, 5, 6, 7, 8] >>> wp = pywt.WaveletPacket(data=x, wavelet='db1', mode='symmetric') Now create a new :class:`Wavelet Packet ` and set its nodes with some data. >>> new_wp = pywt.WaveletPacket(data=None, wavelet='db1', mode='symmetric') >>> new_wp['aa'] = wp['aa'].data >>> new_wp['ad'] = [-2., -2.] For convenience, :attr:`Node.data` gets automatically extracted from the :class:`Node` object: >>> new_wp['d'] = wp['d'] And reconstruct the data from the ``aa``, ``ad`` and ``d`` packets. >>> print(new_wp.reconstruct(update=False)) [ 1. 2. 3. 4. 5. 6. 7. 8.] If the ``update`` param in the reconstruct method is set to ``False``, the node's :attr:`~Node.data` will not be updated. >>> print(new_wp.data) None Otherwise, the :attr:`~Node.data` attribute will be set to the reconstructed value. >>> print(new_wp.reconstruct(update=True)) [ 1. 2. 3. 4. 5. 6. 7. 8.] >>> print(new_wp.data) [ 1. 2. 3. 4. 5. 6. 7. 8.] >>> print([n.path for n in new_wp.get_leaf_nodes(False)]) ['aa', 'ad', 'd'] >>> print([n.path for n in new_wp.get_leaf_nodes(True)]) ['aaa', 'aad', 'ada', 'add', 'daa', 'dad', 'dda', 'ddd'] Removing nodes from Wavelet Packet tree: ---------------------------------------- Let's create a sample data: >>> x = [1, 2, 3, 4, 5, 6, 7, 8] >>> wp = pywt.WaveletPacket(data=x, wavelet='db1', mode='symmetric') First, start with a tree decomposition at level 2. Leaf nodes in the tree are: >>> dummy = wp.get_level(2) >>> for n in wp.get_leaf_nodes(False): ... print(n.path, format_array(n.data)) aa [ 5. 13.] ad [-2. -2.] da [-1. -1.] dd [ 0. 0.] >>> node = wp['ad'] >>> print(node) ad: [-2. -2.] To remove a node from the WP tree, use Python's ``del obj[x]`` (:class:`Node.__delitem__`): >>> del wp['ad'] The leaf nodes that left in the tree are: >>> for n in wp.get_leaf_nodes(): ... print(n.path, format_array(n.data)) aa [ 5. 13.] da [-1. -1.] dd [ 0. 0.] And the reconstruction is: >>> print(wp.reconstruct()) [ 2. 3. 2. 3. 6. 7. 6. 7.] Now restore the deleted node value. >>> wp['ad'].data = node.data Printing leaf nodes and tree reconstruction confirms the original state of the tree: >>> for n in wp.get_leaf_nodes(False): ... print(n.path, format_array(n.data)) aa [ 5. 13.] ad [-2. -2.] da [-1. -1.] dd [ 0. 0.] >>> print(wp.reconstruct()) [ 1. 2. 3. 4. 5. 6. 7. 8.] Lazy evaluation: ---------------- .. note:: This section is for demonstration of pywt internals purposes only. Do not rely on the attribute access to nodes as presented in this example. >>> x = [1, 2, 3, 4, 5, 6, 7, 8] >>> wp = pywt.WaveletPacket(data=x, wavelet='db1', mode='symmetric') 1) At first the wp's attribute ``a`` is None >>> print(wp.a) None **Remember that you should not rely on the attribute access.** 2) At first attempt to access the node it is computed via decomposition of its parent node (the wp object itself). >>> print(wp['a']) a: [ 2.12132034 4.94974747 7.77817459 10.60660172] 3) Now the ``wp.a`` is set to the newly created node: >>> print(wp.a) a: [ 2.12132034 4.94974747 7.77817459 10.60660172] And so is ``wp.d``: >>> print(wp.d) d: [-0.70710678 -0.70710678 -0.70710678 -0.70710678] PyWavelets-1.1.1/doc/source/regression/wp2d.rst0000664000175000017500000003130413270003221022101 0ustar lee8rxlee8rx00000000000000.. _reg-wp2d: .. currentmodule:: pywt 2D Wavelet Packets ================== Import pywt ----------- >>> from __future__ import print_function >>> import pywt >>> import numpy Create 2D Wavelet Packet structure ---------------------------------- Start with preparing test data: >>> x = numpy.array([[1, 2, 3, 4, 5, 6, 7, 8]] * 8, 'd') >>> print(x) [[ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.]] Now create a :class:`2D Wavelet Packet ` object: >>> wp = pywt.WaveletPacket2D(data=x, wavelet='db1', mode='symmetric') The input ``data`` and decomposition coefficients are stored in the :attr:`WaveletPacket2D.data` attribute: >>> print(wp.data) [[ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.]] :class:`Nodes ` are identified by paths. For the root node the path is ``''`` and the decomposition level is ``0``. >>> print(repr(wp.path)) '' >>> print(wp.level) 0 The :attr:`WaveletPacket2D.maxlevel`, if not given in the constructor, is automatically computed based on the data size: >>> print(wp.maxlevel) 3 Traversing WP tree: ------------------- Wavelet Packet :class:`nodes ` are arranged in a tree. Each node in a WP tree is uniquely identified and addressed by a :attr:`~Node2D.path` string. In the 1D :class:`WaveletPacket` case nodes were accessed using ``'a'`` (approximation) and ``'d'`` (details) path names (each node has two 1D children). Because now we deal with a bit more complex structure (each node has four children), we have four basic path names based on the dwt 2D output convention to address the WP2D structure: * ``a`` - LL, low-low coefficients * ``h`` - LH, low-high coefficients * ``v`` - HL, high-low coefficients * ``d`` - HH, high-high coefficients In other words, subnode naming corresponds to the :func:`dwt2` function output naming convention (as wavelet packet transform is based on the dwt2 transform):: ------------------- | | | | cA(LL) | cH(LH) | | | | (cA, (cH, cV, cD)) <---> ------------------- | | | | cV(HL) | cD(HH) | | | | ------------------- (fig.1: DWT 2D output and interpretation) Knowing what the nodes names are, we can now access them using the indexing operator ``obj[x]`` (:meth:`WaveletPacket2D.__getitem__`): >>> print(wp['a'].data) [[ 3. 7. 11. 15.] [ 3. 7. 11. 15.] [ 3. 7. 11. 15.] [ 3. 7. 11. 15.]] >>> print(wp['h'].data) [[ 0. 0. 0. 0.] [ 0. 0. 0. 0.] [ 0. 0. 0. 0.] [ 0. 0. 0. 0.]] >>> print(wp['v'].data) [[-1. -1. -1. -1.] [-1. -1. -1. -1.] [-1. -1. -1. -1.] [-1. -1. -1. -1.]] >>> print(wp['d'].data) [[ 0. 0. 0. 0.] [ 0. 0. 0. 0.] [ 0. 0. 0. 0.] [ 0. 0. 0. 0.]] Similarly, a subnode of a subnode can be accessed by: >>> print(wp['aa'].data) [[ 10. 26.] [ 10. 26.]] Indexing base :class:`WaveletPacket2D` (as well as 1D :class:`WaveletPacket`) using compound path is just the same as indexing WP subnode: >>> node = wp['a'] >>> print(node['a'].data) [[ 10. 26.] [ 10. 26.]] >>> print(wp['a']['a'].data is wp['aa'].data) True Following down the decomposition path: >>> print(wp['aaa'].data) [[ 36.]] >>> print(wp['aaaa'].data) Traceback (most recent call last): ... IndexError: Path length is out of range. Ups, we have reached the maximum level of decomposition for the ``'aaaa'`` path, which btw. was: >>> print(wp.maxlevel) 3 Now try some invalid path: >>> print(wp['f']) Traceback (most recent call last): ... ValueError: Subnode name must be in ['a', 'h', 'v', 'd'], not 'f'. Accessing Node2D's attributes: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :class:`WaveletPacket2D` is a tree data structure, which evaluates to a set of :class:`Node2D` objects. :class:`WaveletPacket2D` is just a special subclass of the :class:`Node2D` class (which in turn inherits from a :class:`BaseNode`, just like with :class:`Node` and :class:`WaveletPacket` for the 1D case.). >>> print(wp['av'].data) [[-4. -4.] [-4. -4.]] >>> print(wp['av'].path) av >>> print(wp['av'].node_name) v >>> print(wp['av'].parent.path) a >>> print(wp['av'].parent.data) [[ 3. 7. 11. 15.] [ 3. 7. 11. 15.] [ 3. 7. 11. 15.] [ 3. 7. 11. 15.]] >>> print(wp['av'].level) 2 >>> print(wp['av'].maxlevel) 3 >>> print(wp['av'].mode) symmetric Collecting nodes ~~~~~~~~~~~~~~~~ We can get all nodes on the particular level using the :meth:`WaveletPacket2D.get_level` method: * 0 level - the root `wp` node: >>> len(wp.get_level(0)) 1 >>> print([node.path for node in wp.get_level(0)]) [''] * 1st level of decomposition: >>> len(wp.get_level(1)) 4 >>> print([node.path for node in wp.get_level(1)]) ['a', 'h', 'v', 'd'] * 2nd level of decomposition: >>> len(wp.get_level(2)) 16 >>> paths = [node.path for node in wp.get_level(2)] >>> for i, path in enumerate(paths): ... if (i+1) % 4 == 0: ... print(path) ... else: ... print(path, end=' ') aa ah av ad ha hh hv hd va vh vv vd da dh dv dd * 3rd level of decomposition: >>> print(len(wp.get_level(3))) 64 >>> paths = [node.path for node in wp.get_level(3)] >>> for i, path in enumerate(paths): ... if (i+1) % 8 == 0: ... print(path) ... else: ... print(path, end=' ') aaa aah aav aad aha ahh ahv ahd ava avh avv avd ada adh adv add haa hah hav had hha hhh hhv hhd hva hvh hvv hvd hda hdh hdv hdd vaa vah vav vad vha vhh vhv vhd vva vvh vvv vvd vda vdh vdv vdd daa dah dav dad dha dhh dhv dhd dva dvh dvv dvd dda ddh ddv ddd Note that :meth:`WaveletPacket2D.get_level` performs automatic decomposition until it reaches the given level. Reconstructing data from Wavelet Packets: ----------------------------------------- Let's create a new empty 2D Wavelet Packet structure and set its nodes values with known data from the previous examples: >>> new_wp = pywt.WaveletPacket2D(data=None, wavelet='db1', mode='symmetric') >>> new_wp['vh'] = wp['vh'].data # [[0.0, 0.0], [0.0, 0.0]] >>> new_wp['vv'] = wp['vh'].data # [[0.0, 0.0], [0.0, 0.0]] >>> new_wp['vd'] = [[0.0, 0.0], [0.0, 0.0]] >>> new_wp['a'] = [[3.0, 7.0, 11.0, 15.0], [3.0, 7.0, 11.0, 15.0], ... [3.0, 7.0, 11.0, 15.0], [3.0, 7.0, 11.0, 15.0]] >>> new_wp['d'] = [[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], ... [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]] For convenience, :attr:`Node2D.data` gets automatically extracted from the base :class:`Node2D` object: >>> new_wp['h'] = wp['h'] # all zeros Note: just remember to not assign to the node.data parameter directly (todo). And reconstruct the data from the ``a``, ``d``, ``vh``, ``vv``, ``vd`` and ``h`` packets (Note that ``va`` node was not set and the WP tree is "not complete" - the ``va`` branch will be treated as *zero-array*): >>> print(new_wp.reconstruct(update=False)) [[ 1.5 1.5 3.5 3.5 5.5 5.5 7.5 7.5] [ 1.5 1.5 3.5 3.5 5.5 5.5 7.5 7.5] [ 1.5 1.5 3.5 3.5 5.5 5.5 7.5 7.5] [ 1.5 1.5 3.5 3.5 5.5 5.5 7.5 7.5] [ 1.5 1.5 3.5 3.5 5.5 5.5 7.5 7.5] [ 1.5 1.5 3.5 3.5 5.5 5.5 7.5 7.5] [ 1.5 1.5 3.5 3.5 5.5 5.5 7.5 7.5] [ 1.5 1.5 3.5 3.5 5.5 5.5 7.5 7.5]] Now set the ``va`` node with the known values and do the reconstruction again: >>> new_wp['va'] = wp['va'].data # [[-2.0, -2.0], [-2.0, -2.0]] >>> print(new_wp.reconstruct(update=False)) [[ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.]] which is just the same as the base sample data ``x``. Of course we can go the other way and remove nodes from the tree. If we delete the ``va`` node, again, we get the "not complete" tree from one of the previous examples: >>> del new_wp['va'] >>> print(new_wp.reconstruct(update=False)) [[ 1.5 1.5 3.5 3.5 5.5 5.5 7.5 7.5] [ 1.5 1.5 3.5 3.5 5.5 5.5 7.5 7.5] [ 1.5 1.5 3.5 3.5 5.5 5.5 7.5 7.5] [ 1.5 1.5 3.5 3.5 5.5 5.5 7.5 7.5] [ 1.5 1.5 3.5 3.5 5.5 5.5 7.5 7.5] [ 1.5 1.5 3.5 3.5 5.5 5.5 7.5 7.5] [ 1.5 1.5 3.5 3.5 5.5 5.5 7.5 7.5] [ 1.5 1.5 3.5 3.5 5.5 5.5 7.5 7.5]] Just restore the node before next examples. >>> new_wp['va'] = wp['va'].data If the ``update`` param in the :meth:`WaveletPacket2D.reconstruct` method is set to ``False``, the node's :attr:`Node2D.data` attribute will not be updated. >>> print(new_wp.data) None Otherwise, the :attr:`WaveletPacket2D.data` attribute will be set to the reconstructed value. >>> print(new_wp.reconstruct(update=True)) [[ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.]] >>> print(new_wp.data) [[ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.] [ 1. 2. 3. 4. 5. 6. 7. 8.]] Since we have an interesting WP structure built, it is a good occasion to present the :meth:`WaveletPacket2D.get_leaf_nodes` method, which collects non-zero leaf nodes from the WP tree: >>> print([n.path for n in new_wp.get_leaf_nodes()]) ['a', 'h', 'va', 'vh', 'vv', 'vd', 'd'] Passing the ``decompose = True`` parameter to the method will force the WP object to do a full decomposition up to the *maximum level* of decomposition: >>> paths = [n.path for n in new_wp.get_leaf_nodes(decompose=True)] >>> len(paths) 64 >>> for i, path in enumerate(paths): ... if (i+1) % 8 == 0: ... print(path) ... else: ... try: ... print(path, end=' ') ... except: ... print(path, end=' ') aaa aah aav aad aha ahh ahv ahd ava avh avv avd ada adh adv add haa hah hav had hha hhh hhv hhd hva hvh hvv hvd hda hdh hdv hdd vaa vah vav vad vha vhh vhv vhd vva vvh vvv vvd vda vdh vdv vdd daa dah dav dad dha dhh dhv dhd dva dvh dvv dvd dda ddh ddv ddd Lazy evaluation: ---------------- .. note:: This section is for demonstration of pywt internals purposes only. Do not rely on the attribute access to nodes as presented in this example. >>> x = numpy.array([[1, 2, 3, 4, 5, 6, 7, 8]] * 8) >>> wp = pywt.WaveletPacket2D(data=x, wavelet='db1', mode='symmetric') 1) At first the wp's attribute ``a`` is ``None`` >>> print(wp.a) None **Remember that you should not rely on the attribute access.** 2) During the first attempt to access the node it is computed via decomposition of its parent node (the wp object itself). >>> print(wp['a']) a: [[ 3. 7. 11. 15.] [ 3. 7. 11. 15.] [ 3. 7. 11. 15.] [ 3. 7. 11. 15.]] 3) Now the ``a`` is set to the newly created node: >>> print(wp.a) a: [[ 3. 7. 11. 15.] [ 3. 7. 11. 15.] [ 3. 7. 11. 15.] [ 3. 7. 11. 15.]] And so is `wp.d`: >>> print(wp.d) d: [[ 0. 0. 0. 0.] [ 0. 0. 0. 0.] [ 0. 0. 0. 0.] [ 0. 0. 0. 0.]] PyWavelets-1.1.1/doc/source/release.0.3.0.rst0000664000175000017500000000005013270003221021114 0ustar lee8rxlee8rx00000000000000.. include:: ../release/0.3.0-notes.rst PyWavelets-1.1.1/doc/source/release.0.4.0.rst0000664000175000017500000000005013270003221021115 0ustar lee8rxlee8rx00000000000000.. include:: ../release/0.4.0-notes.rst PyWavelets-1.1.1/doc/source/release.0.5.0.rst0000664000175000017500000000005013270003221021116 0ustar lee8rxlee8rx00000000000000.. include:: ../release/0.5.0-notes.rst PyWavelets-1.1.1/doc/source/release.1.0.0.rst0000664000175000017500000000005013317422762021133 0ustar lee8rxlee8rx00000000000000.. include:: ../release/1.0.0-notes.rst PyWavelets-1.1.1/doc/source/release.1.1.0.rst0000664000175000017500000000005013453134055021130 0ustar lee8rxlee8rx00000000000000.. include:: ../release/1.1.0-notes.rst PyWavelets-1.1.1/doc/source/release.1.1.1.rst0000644000175000017500000000005013552477326021142 0ustar lee8rxlee8rx00000000000000.. include:: ../release/1.1.1-notes.rst PyWavelets-1.1.1/doc/source/releasenotes.rst0000644000175000017500000000024113552477326021560 0ustar lee8rxlee8rx00000000000000Release Notes ============= .. toctree:: :maxdepth: 1 release.0.3.0 release.0.4.0 release.0.5.0 release.1.0.0 release.1.1.0 release.1.1.1 PyWavelets-1.1.1/doc/source/substitutions.rst0000664000175000017500000000024313317422762022023 0ustar lee8rxlee8rx00000000000000.. |wavelet| replace:: Wavelet to use in the transform. This can be a name of the wavelet from the :func:`wavelist` list or a :class:`Wavelet` object instance. PyWavelets-1.1.1/pytest.ini0000644000175000017500000000057213552333332016314 0ustar lee8rxlee8rx00000000000000[pytest] addopts = -l norecursedirs = doc tools pywt/_extensions doctest_optionflags = NORMALIZE_WHITESPACE ELLIPSIS ALLOW_UNICODE ALLOW_BYTES filterwarnings = error # Filter out annoying import messages. ignore:Not importing directory ignore:numpy.dtype size changed ignore:numpy.ufunc size changed ignore::UserWarning:cpuinfo, env = PYTHONHASHSEED=0 PyWavelets-1.1.1/pywt/0000755000175000017500000000000013552543071015265 5ustar lee8rxlee8rx00000000000000PyWavelets-1.1.1/pywt/__init__.py0000644000175000017500000000213713552427321017400 0ustar lee8rxlee8rx00000000000000# flake8: noqa # Copyright (c) 2006-2012 Filip Wasilewski # Copyright (c) 2012-2016 The PyWavelets Developers # # See COPYING for license details. """ Discrete forward and inverse wavelet transform, stationary wavelet transform, wavelet packets signal decomposition and reconstruction module. """ from __future__ import division, print_function, absolute_import from distutils.version import LooseVersion from ._extensions._pywt import * from ._functions import * from ._multilevel import * from ._multidim import * from ._thresholding import * from ._wavelet_packets import * from ._dwt import * from ._swt import * from ._cwt import * from . import data __all__ = [s for s in dir() if not s.startswith('_')] try: # In Python 2.x the name of the tempvar leaks out of the list # comprehension. Delete it to not make it show up in the main namespace. del s except NameError: pass from pywt.version import version as __version__ from ._pytesttester import PytestTester test = PytestTester(__name__) del PytestTester PyWavelets-1.1.1/pywt/_c99_config.py0000644000175000017500000000012013552543065017723 0ustar lee8rxlee8rx00000000000000# Autogenerated file containing compile-time definitions _have_c99_complex = 1 PyWavelets-1.1.1/pywt/_cwt.py0000644000175000017500000001704113552333332016573 0ustar lee8rxlee8rx00000000000000from math import floor, ceil from ._extensions._pywt import (DiscreteContinuousWavelet, ContinuousWavelet, Wavelet, _check_dtype) from ._functions import integrate_wavelet, scale2frequency __all__ = ["cwt"] import numpy as np try: # Prefer scipy.fft (new in SciPy 1.4) import scipy.fft fftmodule = scipy.fft next_fast_len = fftmodule.next_fast_len except ImportError: try: import scipy.fftpack fftmodule = scipy.fftpack next_fast_len = fftmodule.next_fast_len except ImportError: fftmodule = np.fft # provide a fallback so scipy is an optional requirement def next_fast_len(n): """Round up size to the nearest power of two. Given a number of samples `n`, returns the next power of two following this number to take advantage of FFT speedup. This fallback is less efficient than `scipy.fftpack.next_fast_len` """ return 2**ceil(np.log2(n)) def cwt(data, scales, wavelet, sampling_period=1., method='conv', axis=-1): """ cwt(data, scales, wavelet) One dimensional Continuous Wavelet Transform. Parameters ---------- data : array_like Input signal scales : array_like The wavelet scales to use. One can use ``f = scale2frequency(wavelet, scale)/sampling_period`` to determine what physical frequency, ``f``. Here, ``f`` is in hertz when the ``sampling_period`` is given in seconds. wavelet : Wavelet object or name Wavelet to use sampling_period : float Sampling period for the frequencies output (optional). The values computed for ``coefs`` are independent of the choice of ``sampling_period`` (i.e. ``scales`` is not scaled by the sampling period). method : {'conv', 'fft'}, optional The method used to compute the CWT. Can be any of: - ``conv`` uses ``numpy.convolve``. - ``fft`` uses frequency domain convolution. - ``auto`` uses automatic selection based on an estimate of the computational complexity at each scale. The ``conv`` method complexity is ``O(len(scale) * len(data))``. The ``fft`` method is ``O(N * log2(N))`` with ``N = len(scale) + len(data) - 1``. It is well suited for large size signals but slightly slower than ``conv`` on small ones. axis: int, optional Axis over which to compute the CWT. If not given, the last axis is used. Returns ------- coefs : array_like Continuous wavelet transform of the input signal for the given scales and wavelet. The first axis of ``coefs`` corresponds to the scales. The remaining axes match the shape of ``data``. frequencies : array_like If the unit of sampling period are seconds and given, than frequencies are in hertz. Otherwise, a sampling period of 1 is assumed. Notes ----- Size of coefficients arrays depends on the length of the input array and the length of given scales. Examples -------- >>> import pywt >>> import numpy as np >>> import matplotlib.pyplot as plt >>> x = np.arange(512) >>> y = np.sin(2*np.pi*x/32) >>> coef, freqs=pywt.cwt(y,np.arange(1,129),'gaus1') >>> plt.matshow(coef) # doctest: +SKIP >>> plt.show() # doctest: +SKIP ---------- >>> import pywt >>> import numpy as np >>> import matplotlib.pyplot as plt >>> t = np.linspace(-1, 1, 200, endpoint=False) >>> sig = np.cos(2 * np.pi * 7 * t) + np.real(np.exp(-7*(t-0.4)**2)*np.exp(1j*2*np.pi*2*(t-0.4))) >>> widths = np.arange(1, 31) >>> cwtmatr, freqs = pywt.cwt(sig, widths, 'mexh') >>> plt.imshow(cwtmatr, extent=[-1, 1, 1, 31], cmap='PRGn', aspect='auto', ... vmax=abs(cwtmatr).max(), vmin=-abs(cwtmatr).max()) # doctest: +SKIP >>> plt.show() # doctest: +SKIP """ # accept array_like input; make a copy to ensure a contiguous array dt = _check_dtype(data) data = np.asarray(data, dtype=dt) dt_cplx = np.result_type(dt, np.complex64) if not isinstance(wavelet, (ContinuousWavelet, Wavelet)): wavelet = DiscreteContinuousWavelet(wavelet) if np.isscalar(scales): scales = np.array([scales]) if not np.isscalar(axis): raise ValueError("axis must be a scalar.") dt_out = dt_cplx if wavelet.complex_cwt else dt out = np.empty((np.size(scales),) + data.shape, dtype=dt_out) precision = 10 int_psi, x = integrate_wavelet(wavelet, precision=precision) int_psi = np.conj(int_psi) if wavelet.complex_cwt else int_psi # convert int_psi, x to the same precision as the data dt_psi = dt_cplx if int_psi.dtype.kind == 'c' else dt int_psi = np.asarray(int_psi, dtype=dt_psi) x = np.asarray(x, dtype=data.real.dtype) if method == 'fft': size_scale0 = -1 fft_data = None elif not method == 'conv': raise ValueError("method must be 'conv' or 'fft'") if data.ndim > 1: # move axis to be transformed last (so it is contiguous) data = data.swapaxes(-1, axis) # reshape to (n_batch, data.shape[-1]) data_shape_pre = data.shape data = data.reshape((-1, data.shape[-1])) for i, scale in enumerate(scales): step = x[1] - x[0] j = np.arange(scale * (x[-1] - x[0]) + 1) / (scale * step) j = j.astype(int) # floor if j[-1] >= int_psi.size: j = np.extract(j < int_psi.size, j) int_psi_scale = int_psi[j][::-1] if method == 'conv': if data.ndim == 1: conv = np.convolve(data, int_psi_scale) else: # batch convolution via loop conv_shape = list(data.shape) conv_shape[-1] += int_psi_scale.size - 1 conv_shape = tuple(conv_shape) conv = np.empty(conv_shape, dtype=dt_out) for n in range(data.shape[0]): conv[n, :] = np.convolve(data[n], int_psi_scale) else: # The padding is selected for: # - optimal FFT complexity # - to be larger than the two signals length to avoid circular # convolution size_scale = next_fast_len( data.shape[-1] + int_psi_scale.size - 1 ) if size_scale != size_scale0: # Must recompute fft_data when the padding size changes. fft_data = fftmodule.fft(data, size_scale, axis=-1) size_scale0 = size_scale fft_wav = fftmodule.fft(int_psi_scale, size_scale, axis=-1) conv = fftmodule.ifft(fft_wav * fft_data, axis=-1) conv = conv[..., :data.shape[-1] + int_psi_scale.size - 1] coef = - np.sqrt(scale) * np.diff(conv, axis=-1) if out.dtype.kind != 'c': coef = coef.real # transform axis is always -1 due to the data reshape above d = (coef.shape[-1] - data.shape[-1]) / 2. if d > 0: coef = coef[..., floor(d):-ceil(d)] elif d < 0: raise ValueError( "Selected scale of {} too small.".format(scale)) if data.ndim > 1: # restore original data shape and axis position coef = coef.reshape(data_shape_pre) coef = coef.swapaxes(axis, -1) out[i, ...] = coef frequencies = scale2frequency(wavelet, scales, precision) if np.isscalar(frequencies): frequencies = np.array([frequencies]) frequencies /= sampling_period return out, frequencies PyWavelets-1.1.1/pywt/_doc_utils.py0000644000175000017500000001327713552333332017772 0ustar lee8rxlee8rx00000000000000"""Utilities used to generate various figures in the documentation.""" from itertools import product import numpy as np from matplotlib import pyplot as plt from ._dwt import pad __all__ = ['wavedec_keys', 'wavedec2_keys', 'draw_2d_wp_basis', 'draw_2d_fswavedecn_basis', 'boundary_mode_subplot'] def wavedec_keys(level): """Subband keys corresponding to a wavedec decomposition.""" approx = '' coeffs = {} for lev in range(level): for k in ['a', 'd']: coeffs[approx + k] = None approx = 'a' * (lev + 1) if lev < level - 1: coeffs.pop(approx) return list(coeffs.keys()) def wavedec2_keys(level): """Subband keys corresponding to a wavedec2 decomposition.""" approx = '' coeffs = {} for lev in range(level): for k in ['a', 'h', 'v', 'd']: coeffs[approx + k] = None approx = 'a' * (lev + 1) if lev < level - 1: coeffs.pop(approx) return list(coeffs.keys()) def _box(bl, ur): """(x, y) coordinates for the 4 lines making up a rectangular box. Parameters ========== bl : float The bottom left corner of the box ur : float The upper right corner of the box Returns ======= coords : 2-tuple The first and second elements of the tuple are the x and y coordinates of the box. """ xl, xr = bl[0], ur[0] yb, yt = bl[1], ur[1] box_x = [xl, xr, xr, xr, xr, xl, xl, xl] box_y = [yb, yb, yb, yt, yt, yt, yt, yb] return (box_x, box_y) def _2d_wp_basis_coords(shape, keys): # Coordinates of the lines to be drawn by draw_2d_wp_basis coords = [] centers = {} # retain center of boxes for use in labeling for key in keys: offset_x = offset_y = 0 for n, char in enumerate(key): if char in ['h', 'd']: offset_x += shape[0] // 2**(n + 1) if char in ['v', 'd']: offset_y += shape[1] // 2**(n + 1) sx = shape[0] // 2**(n + 1) sy = shape[1] // 2**(n + 1) xc, yc = _box((offset_x, -offset_y), (offset_x + sx, -offset_y - sy)) coords.append((xc, yc)) centers[key] = (offset_x + sx // 2, -offset_y - sy // 2) return coords, centers def draw_2d_wp_basis(shape, keys, fmt='k', plot_kwargs={}, ax=None, label_levels=0): """Plot a 2D representation of a WaveletPacket2D basis.""" coords, centers = _2d_wp_basis_coords(shape, keys) if ax is None: fig, ax = plt.subplots(1, 1) else: fig = ax.get_figure() for coord in coords: ax.plot(coord[0], coord[1], fmt) ax.set_axis_off() ax.axis('square') if label_levels > 0: for key, c in centers.items(): if len(key) <= label_levels: ax.text(c[0], c[1], key, horizontalalignment='center', verticalalignment='center') return fig, ax def _2d_fswavedecn_coords(shape, levels): coords = [] centers = {} # retain center of boxes for use in labeling for key in product(wavedec_keys(levels), repeat=2): (key0, key1) = key offsets = [0, 0] widths = list(shape) for n0, char in enumerate(key0): if char in ['d']: offsets[0] += shape[0] // 2**(n0 + 1) for n1, char in enumerate(key1): if char in ['d']: offsets[1] += shape[1] // 2**(n1 + 1) widths[0] = shape[0] // 2**(n0 + 1) widths[1] = shape[1] // 2**(n1 + 1) xc, yc = _box((offsets[0], -offsets[1]), (offsets[0] + widths[0], -offsets[1] - widths[1])) coords.append((xc, yc)) centers[(key0, key1)] = (offsets[0] + widths[0] / 2, -offsets[1] - widths[1] / 2) return coords, centers def draw_2d_fswavedecn_basis(shape, levels, fmt='k', plot_kwargs={}, ax=None, label_levels=0): """Plot a 2D representation of a WaveletPacket2D basis.""" coords, centers = _2d_fswavedecn_coords(shape, levels) if ax is None: fig, ax = plt.subplots(1, 1) else: fig = ax.get_figure() for coord in coords: ax.plot(coord[0], coord[1], fmt) ax.set_axis_off() ax.axis('square') if label_levels > 0: for key, c in centers.items(): lev = np.max([len(k) for k in key]) if lev <= label_levels: ax.text(c[0], c[1], key, horizontalalignment='center', verticalalignment='center') return fig, ax def boundary_mode_subplot(x, mode, ax, symw=True): """Plot an illustration of the boundary mode in a subplot axis.""" # if odd-length, periodization replicates the last sample to make it even if mode == 'periodization' and len(x) % 2 == 1: x = np.concatenate((x, (x[-1], ))) npad = 2 * len(x) t = np.arange(len(x) + 2 * npad) xp = pad(x, (npad, npad), mode=mode) ax.plot(t, xp, 'k.') ax.set_title(mode) # plot the original signal in red if mode == 'periodization': ax.plot(t[npad:npad + len(x) - 1], x[:-1], 'r.') else: ax.plot(t[npad:npad + len(x)], x, 'r.') # add vertical bars indicating points of symmetry or boundary extension o2 = np.ones(2) left = npad if symw: step = len(x) - 1 rng = range(-2, 4) else: left -= 0.5 step = len(x) rng = range(-2, 4) if mode in ['smooth', 'constant', 'zero']: rng = range(0, 2) for rep in rng: ax.plot((left + rep * step) * o2, [xp.min() - .5, xp.max() + .5], 'k-') PyWavelets-1.1.1/pywt/_dwt.py0000644000175000017500000004150713552333332016600 0ustar lee8rxlee8rx00000000000000from numbers import Number import numpy as np from ._c99_config import _have_c99_complex from ._extensions._pywt import Wavelet, Modes, _check_dtype, wavelist from ._extensions._dwt import (dwt_single, dwt_axis, idwt_single, idwt_axis, upcoef as _upcoef, downcoef as _downcoef, dwt_max_level as _dwt_max_level, dwt_coeff_len as _dwt_coeff_len) from ._utils import string_types, _as_wavelet __all__ = ["dwt", "idwt", "downcoef", "upcoef", "dwt_max_level", "dwt_coeff_len", "pad"] def dwt_max_level(data_len, filter_len): r""" dwt_max_level(data_len, filter_len) Compute the maximum useful level of decomposition. Parameters ---------- data_len : int Input data length. filter_len : int, str or Wavelet The wavelet filter length. Alternatively, the name of a discrete wavelet or a Wavelet object can be specified. Returns ------- max_level : int Maximum level. Notes ----- The rational for the choice of levels is the maximum level where at least one coefficient in the output is uncorrupted by edge effects caused by signal extension. Put another way, decomposition stops when the signal becomes shorter than the FIR filter length for a given wavelet. This corresponds to: .. max_level = floor(log2(data_len/(filter_len - 1))) .. math:: \mathtt{max\_level} = \left\lfloor\log_2\left(\mathtt{ \frac{data\_len}{filter\_len - 1}}\right)\right\rfloor Examples -------- >>> import pywt >>> w = pywt.Wavelet('sym5') >>> pywt.dwt_max_level(data_len=1000, filter_len=w.dec_len) 6 >>> pywt.dwt_max_level(1000, w) 6 >>> pywt.dwt_max_level(1000, 'sym5') 6 """ if isinstance(filter_len, Wavelet): filter_len = filter_len.dec_len elif isinstance(filter_len, string_types): if filter_len in wavelist(kind='discrete'): filter_len = Wavelet(filter_len).dec_len else: raise ValueError( ("'{}', is not a recognized discrete wavelet. A list of " "supported wavelet names can be obtained via " "pywt.wavelist(kind='discrete')").format(filter_len)) elif not (isinstance(filter_len, Number) and filter_len % 1 == 0): raise ValueError( "filter_len must be an integer, discrete Wavelet object, or the " "name of a discrete wavelet.") if filter_len < 2: raise ValueError("invalid wavelet filter length") return _dwt_max_level(data_len, filter_len) def dwt_coeff_len(data_len, filter_len, mode): """ dwt_coeff_len(data_len, filter_len, mode='symmetric') Returns length of dwt output for given data length, filter length and mode Parameters ---------- data_len : int Data length. filter_len : int Filter length. mode : str, optional Signal extension mode, see :ref:`Modes `. Returns ------- len : int Length of dwt output. Notes ----- For all modes except periodization:: len(cA) == len(cD) == floor((len(data) + wavelet.dec_len - 1) / 2) for periodization mode ("per"):: len(cA) == len(cD) == ceil(len(data) / 2) """ if isinstance(filter_len, Wavelet): filter_len = filter_len.dec_len return _dwt_coeff_len(data_len, filter_len, Modes.from_object(mode)) def dwt(data, wavelet, mode='symmetric', axis=-1): """ dwt(data, wavelet, mode='symmetric', axis=-1) Single level Discrete Wavelet Transform. Parameters ---------- data : array_like Input signal wavelet : Wavelet object or name Wavelet to use mode : str, optional Signal extension mode, see :ref:`Modes `. axis: int, optional Axis over which to compute the DWT. If not given, the last axis is used. Returns ------- (cA, cD) : tuple Approximation and detail coefficients. Notes ----- Length of coefficients arrays depends on the selected mode. For all modes except periodization: ``len(cA) == len(cD) == floor((len(data) + wavelet.dec_len - 1) / 2)`` For periodization mode ("per"): ``len(cA) == len(cD) == ceil(len(data) / 2)`` Examples -------- >>> import pywt >>> (cA, cD) = pywt.dwt([1, 2, 3, 4, 5, 6], 'db1') >>> cA array([ 2.12132034, 4.94974747, 7.77817459]) >>> cD array([-0.70710678, -0.70710678, -0.70710678]) """ if not _have_c99_complex and np.iscomplexobj(data): data = np.asarray(data) cA_r, cD_r = dwt(data.real, wavelet, mode, axis) cA_i, cD_i = dwt(data.imag, wavelet, mode, axis) return (cA_r + 1j*cA_i, cD_r + 1j*cD_i) # accept array_like input; make a copy to ensure a contiguous array dt = _check_dtype(data) data = np.asarray(data, dtype=dt, order='C') mode = Modes.from_object(mode) wavelet = _as_wavelet(wavelet) if axis < 0: axis = axis + data.ndim if not 0 <= axis < data.ndim: raise ValueError("Axis greater than data dimensions") if data.ndim == 1: cA, cD = dwt_single(data, wavelet, mode) # TODO: Check whether this makes a copy cA, cD = np.asarray(cA, dt), np.asarray(cD, dt) else: cA, cD = dwt_axis(data, wavelet, mode, axis=axis) return (cA, cD) def idwt(cA, cD, wavelet, mode='symmetric', axis=-1): """ idwt(cA, cD, wavelet, mode='symmetric', axis=-1) Single level Inverse Discrete Wavelet Transform. Parameters ---------- cA : array_like or None Approximation coefficients. If None, will be set to array of zeros with same shape as ``cD``. cD : array_like or None Detail coefficients. If None, will be set to array of zeros with same shape as ``cA``. wavelet : Wavelet object or name Wavelet to use mode : str, optional (default: 'symmetric') Signal extension mode, see :ref:`Modes `. axis: int, optional Axis over which to compute the inverse DWT. If not given, the last axis is used. Returns ------- rec: array_like Single level reconstruction of signal from given coefficients. Examples -------- >>> import pywt >>> (cA, cD) = pywt.dwt([1,2,3,4,5,6], 'db2', 'smooth') >>> pywt.idwt(cA, cD, 'db2', 'smooth') array([ 1., 2., 3., 4., 5., 6.]) One of the neat features of ``idwt`` is that one of the ``cA`` and ``cD`` arguments can be set to None. In that situation the reconstruction will be performed using only the other one. Mathematically speaking, this is equivalent to passing a zero-filled array as one of the arguments. >>> (cA, cD) = pywt.dwt([1,2,3,4,5,6], 'db2', 'smooth') >>> A = pywt.idwt(cA, None, 'db2', 'smooth') >>> D = pywt.idwt(None, cD, 'db2', 'smooth') >>> A + D array([ 1., 2., 3., 4., 5., 6.]) """ # TODO: Lots of possible allocations to eliminate (zeros_like, asarray(rec)) # accept array_like input; make a copy to ensure a contiguous array if cA is None and cD is None: raise ValueError("At least one coefficient parameter must be " "specified.") # for complex inputs: compute real and imaginary separately then combine if not _have_c99_complex and (np.iscomplexobj(cA) or np.iscomplexobj(cD)): if cA is None: cD = np.asarray(cD) cA = np.zeros_like(cD) elif cD is None: cA = np.asarray(cA) cD = np.zeros_like(cA) return (idwt(cA.real, cD.real, wavelet, mode, axis) + 1j*idwt(cA.imag, cD.imag, wavelet, mode, axis)) if cA is not None: dt = _check_dtype(cA) cA = np.asarray(cA, dtype=dt, order='C') if cD is not None: dt = _check_dtype(cD) cD = np.asarray(cD, dtype=dt, order='C') if cA is not None and cD is not None: if cA.dtype != cD.dtype: # need to upcast to common type if cA.dtype.kind == 'c' or cD.dtype.kind == 'c': dtype = np.complex128 else: dtype = np.float64 cA = cA.astype(dtype) cD = cD.astype(dtype) elif cA is None: cA = np.zeros_like(cD) elif cD is None: cD = np.zeros_like(cA) # cA and cD should be same dimension by here ndim = cA.ndim mode = Modes.from_object(mode) wavelet = _as_wavelet(wavelet) if axis < 0: axis = axis + ndim if not 0 <= axis < ndim: raise ValueError("Axis greater than coefficient dimensions") if ndim == 1: rec = idwt_single(cA, cD, wavelet, mode) else: rec = idwt_axis(cA, cD, wavelet, mode, axis=axis) return rec def downcoef(part, data, wavelet, mode='symmetric', level=1): """ downcoef(part, data, wavelet, mode='symmetric', level=1) Partial Discrete Wavelet Transform data decomposition. Similar to ``pywt.dwt``, but computes only one set of coefficients. Useful when you need only approximation or only details at the given level. Parameters ---------- part : str Coefficients type: * 'a' - approximations reconstruction is performed * 'd' - details reconstruction is performed data : array_like Input signal. wavelet : Wavelet object or name Wavelet to use mode : str, optional Signal extension mode, see :ref:`Modes `. level : int, optional Decomposition level. Default is 1. Returns ------- coeffs : ndarray 1-D array of coefficients. See Also -------- upcoef """ if not _have_c99_complex and np.iscomplexobj(data): return (downcoef(part, data.real, wavelet, mode, level) + 1j*downcoef(part, data.imag, wavelet, mode, level)) # accept array_like input; make a copy to ensure a contiguous array dt = _check_dtype(data) data = np.asarray(data, dtype=dt, order='C') if data.ndim > 1: raise ValueError("downcoef only supports 1d data.") if part not in 'ad': raise ValueError("Argument 1 must be 'a' or 'd', not '%s'." % part) mode = Modes.from_object(mode) wavelet = _as_wavelet(wavelet) return np.asarray(_downcoef(part == 'a', data, wavelet, mode, level)) def upcoef(part, coeffs, wavelet, level=1, take=0): """ upcoef(part, coeffs, wavelet, level=1, take=0) Direct reconstruction from coefficients. Parameters ---------- part : str Coefficients type: * 'a' - approximations reconstruction is performed * 'd' - details reconstruction is performed coeffs : array_like Coefficients array to recontruct wavelet : Wavelet object or name Wavelet to use level : int, optional Multilevel reconstruction level. Default is 1. take : int, optional Take central part of length equal to 'take' from the result. Default is 0. Returns ------- rec : ndarray 1-D array with reconstructed data from coefficients. See Also -------- downcoef Examples -------- >>> import pywt >>> data = [1,2,3,4,5,6] >>> (cA, cD) = pywt.dwt(data, 'db2', 'smooth') >>> pywt.upcoef('a', cA, 'db2') + pywt.upcoef('d', cD, 'db2') array([-0.25 , -0.4330127 , 1. , 2. , 3. , 4. , 5. , 6. , 1.78589838, -1.03108891]) >>> n = len(data) >>> pywt.upcoef('a', cA, 'db2', take=n) + pywt.upcoef('d', cD, 'db2', take=n) array([ 1., 2., 3., 4., 5., 6.]) """ if not _have_c99_complex and np.iscomplexobj(coeffs): return (upcoef(part, coeffs.real, wavelet, level, take) + 1j*upcoef(part, coeffs.imag, wavelet, level, take)) # accept array_like input; make a copy to ensure a contiguous array dt = _check_dtype(coeffs) coeffs = np.asarray(coeffs, dtype=dt, order='C') if coeffs.ndim > 1: raise ValueError("upcoef only supports 1d coeffs.") wavelet = _as_wavelet(wavelet) if part not in 'ad': raise ValueError("Argument 1 must be 'a' or 'd', not '%s'." % part) return np.asarray(_upcoef(part == 'a', coeffs, wavelet, level, take)) def pad(x, pad_widths, mode): """Extend a 1D signal using a given boundary mode. This function operates like :func:`numpy.pad` but supports all signal extension modes that can be used by PyWavelets discrete wavelet transforms. Parameters ---------- x : ndarray The array to pad pad_widths : {sequence, array_like, int} Number of values padded to the edges of each axis. ``((before_1, after_1), … (before_N, after_N))`` unique pad widths for each axis. ``((before, after),)`` yields same before and after pad for each axis. ``(pad,)`` or int is a shortcut for ``before = after = pad width`` for all axes. mode : str, optional Signal extension mode, see :ref:`Modes `. Returns ------- pad : ndarray Padded array of rank equal to array with shape increased according to ``pad_widths``. Notes ----- The performance of padding in dimensions > 1 may be substantially slower for modes ``'smooth'`` and ``'antisymmetric'`` as these modes are not supported efficiently by the underlying :func:`numpy.pad` function. Note that the behavior of the ``'constant'`` mode here follows the PyWavelets convention which is different from NumPy (it is equivalent to ``mode='edge'`` in :func:`numpy.pad`). """ x = np.asanyarray(x) # process pad_widths exactly as in numpy.pad pad_widths = np.array(pad_widths) pad_widths = np.round(pad_widths).astype(np.intp, copy=False) if pad_widths.min() < 0: raise ValueError("pad_widths must be > 0") pad_widths = np.broadcast_to(pad_widths, (x.ndim, 2)).tolist() if mode in ['symmetric', 'reflect']: xp = np.pad(x, pad_widths, mode=mode) elif mode in ['periodic', 'periodization']: if mode == 'periodization': # Promote odd-sized dimensions to even length by duplicating the # last value. edge_pad_widths = [(0, x.shape[ax] % 2) for ax in range(x.ndim)] x = np.pad(x, edge_pad_widths, mode='edge') xp = np.pad(x, pad_widths, mode='wrap') elif mode == 'zero': xp = np.pad(x, pad_widths, mode='constant', constant_values=0) elif mode == 'constant': xp = np.pad(x, pad_widths, mode='edge') elif mode == 'smooth': def pad_smooth(vector, pad_width, iaxis, kwargs): # smooth extension to left left = vector[pad_width[0]] slope_left = (left - vector[pad_width[0] + 1]) vector[:pad_width[0]] = \ left + np.arange(pad_width[0], 0, -1) * slope_left # smooth extension to right right = vector[-pad_width[1] - 1] slope_right = (right - vector[-pad_width[1] - 2]) vector[-pad_width[1]:] = \ right + np.arange(1, pad_width[1] + 1) * slope_right return vector xp = np.pad(x, pad_widths, pad_smooth) elif mode == 'antisymmetric': def pad_antisymmetric(vector, pad_width, iaxis, kwargs): # smooth extension to left # implement by flipping portions symmetric padding npad_l, npad_r = pad_width vsize_nonpad = vector.size - npad_l - npad_r # Note: must modify vector in-place vector[:] = np.pad(vector[pad_width[0]:-pad_width[-1]], pad_width, mode='symmetric') vp = vector r_edge = npad_l + vsize_nonpad - 1 l_edge = npad_l # width of each reflected segment seg_width = vsize_nonpad # flip reflected segments on the right of the original signal n = 1 while r_edge <= vp.size: segment_slice = slice(r_edge + 1, min(r_edge + 1 + seg_width, vp.size)) if n % 2: vp[segment_slice] *= -1 r_edge += seg_width n += 1 # flip reflected segments on the left of the original signal n = 1 while l_edge >= 0: segment_slice = slice(max(0, l_edge - seg_width), l_edge) if n % 2: vp[segment_slice] *= -1 l_edge -= seg_width n += 1 return vector xp = np.pad(x, pad_widths, pad_antisymmetric) elif mode == 'antireflect': xp = np.pad(x, pad_widths, mode='reflect', reflect_type='odd') else: raise ValueError( ("unsupported mode: {}. The supported modes are {}").format( mode, Modes.modes)) return xp PyWavelets-1.1.1/pywt/_extensions/0000755000175000017500000000000013552543071017623 5ustar lee8rxlee8rx00000000000000PyWavelets-1.1.1/pywt/_extensions/__init__.py0000664000175000017500000000000013270003221021705 0ustar lee8rxlee8rx00000000000000PyWavelets-1.1.1/pywt/_extensions/_cwt.c0000644000175000017500000434406013552543070020735 0ustar lee8rxlee8rx00000000000000/* Generated by Cython 0.29.13 */ /* BEGIN: Cython Metadata { "distutils": { "define_macros": [ [ "PY_EXTENSION", null ], [ "HAVE_C99_COMPLEX", null ], [ "CYTHON_CCOMPLEX", 1 ] ], "depends": [ "/home/lee8rx/miniconda3/envs/pyir/lib/python3.7/site-packages/numpy/core/include/numpy/arrayobject.h", "/home/lee8rx/miniconda3/envs/pyir/lib/python3.7/site-packages/numpy/core/include/numpy/ufuncobject.h", "pywt/_extensions/c/common.c", "pywt/_extensions/c/common.h", "pywt/_extensions/c/convolution.c", "pywt/_extensions/c/convolution.h", "pywt/_extensions/c/convolution.template.c", "pywt/_extensions/c/convolution.template.h", "pywt/_extensions/c/cwt.c", "pywt/_extensions/c/cwt.h", "pywt/_extensions/c/cwt.template.c", "pywt/_extensions/c/cwt.template.h", "pywt/_extensions/c/templating.h", "pywt/_extensions/c/wavelets.c", "pywt/_extensions/c/wavelets.h", "pywt/_extensions/c/wavelets_coeffs.h", "pywt/_extensions/c/wavelets_coeffs.template.h", "pywt/_extensions/c/wt.c", "pywt/_extensions/c/wt.h", "pywt/_extensions/c/wt.template.c", "pywt/_extensions/c/wt.template.h" ], "include_dirs": [ "./pywt/_extensions", "pywt/_extensions/c", "/home/lee8rx/miniconda3/envs/pyir/lib/python3.7/site-packages/numpy/core/include" ], "libraries": [ "c_wt" ], "name": "pywt._extensions._cwt", "sources": [ "pywt/_extensions/_cwt.pyx" ] }, "module_name": "pywt._extensions._cwt" } END: Cython Metadata */ #define PY_SSIZE_T_CLEAN #include "Python.h" #ifndef Py_PYTHON_H #error Python headers needed to compile C extensions, please install development version of Python. #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000) #error Cython requires Python 2.6+ or Python 3.3+. #else #define CYTHON_ABI "0_29_13" #define CYTHON_HEX_VERSION 0x001D0DF0 #define CYTHON_FUTURE_DIVISION 1 #include #ifndef offsetof #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) #endif #if !defined(WIN32) && !defined(MS_WINDOWS) #ifndef __stdcall #define __stdcall #endif #ifndef __cdecl #define __cdecl #endif #ifndef __fastcall #define __fastcall #endif #endif #ifndef DL_IMPORT #define DL_IMPORT(t) t #endif #ifndef DL_EXPORT #define DL_EXPORT(t) t #endif #define __PYX_COMMA , #ifndef HAVE_LONG_LONG #if PY_VERSION_HEX >= 0x02070000 #define HAVE_LONG_LONG #endif #endif #ifndef PY_LONG_LONG #define PY_LONG_LONG LONG_LONG #endif #ifndef Py_HUGE_VAL #define Py_HUGE_VAL HUGE_VAL #endif #ifdef PYPY_VERSION #define CYTHON_COMPILING_IN_PYPY 1 #define CYTHON_COMPILING_IN_PYSTON 0 #define CYTHON_COMPILING_IN_CPYTHON 0 #undef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 0 #undef CYTHON_USE_PYTYPE_LOOKUP #define CYTHON_USE_PYTYPE_LOOKUP 0 #if PY_VERSION_HEX < 0x03050000 #undef CYTHON_USE_ASYNC_SLOTS #define CYTHON_USE_ASYNC_SLOTS 0 #elif !defined(CYTHON_USE_ASYNC_SLOTS) #define CYTHON_USE_ASYNC_SLOTS 1 #endif #undef CYTHON_USE_PYLIST_INTERNALS #define CYTHON_USE_PYLIST_INTERNALS 0 #undef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 0 #undef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #undef CYTHON_USE_PYLONG_INTERNALS #define CYTHON_USE_PYLONG_INTERNALS 0 #undef CYTHON_AVOID_BORROWED_REFS #define CYTHON_AVOID_BORROWED_REFS 1 #undef CYTHON_ASSUME_SAFE_MACROS #define CYTHON_ASSUME_SAFE_MACROS 0 #undef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 0 #undef CYTHON_FAST_THREAD_STATE #define CYTHON_FAST_THREAD_STATE 0 #undef CYTHON_FAST_PYCALL #define CYTHON_FAST_PYCALL 0 #undef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT 0 #undef CYTHON_USE_TP_FINALIZE #define CYTHON_USE_TP_FINALIZE 0 #undef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 #elif defined(PYSTON_VERSION) #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_PYSTON 1 #define CYTHON_COMPILING_IN_CPYTHON 0 #ifndef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 1 #endif #undef CYTHON_USE_PYTYPE_LOOKUP #define CYTHON_USE_PYTYPE_LOOKUP 0 #undef CYTHON_USE_ASYNC_SLOTS #define CYTHON_USE_ASYNC_SLOTS 0 #undef CYTHON_USE_PYLIST_INTERNALS #define CYTHON_USE_PYLIST_INTERNALS 0 #ifndef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 1 #endif #undef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #undef CYTHON_USE_PYLONG_INTERNALS #define CYTHON_USE_PYLONG_INTERNALS 0 #ifndef CYTHON_AVOID_BORROWED_REFS #define CYTHON_AVOID_BORROWED_REFS 0 #endif #ifndef CYTHON_ASSUME_SAFE_MACROS #define CYTHON_ASSUME_SAFE_MACROS 1 #endif #ifndef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 1 #endif #undef CYTHON_FAST_THREAD_STATE #define CYTHON_FAST_THREAD_STATE 0 #undef CYTHON_FAST_PYCALL #define CYTHON_FAST_PYCALL 0 #undef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT 0 #undef CYTHON_USE_TP_FINALIZE #define CYTHON_USE_TP_FINALIZE 0 #undef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 #else #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_PYSTON 0 #define CYTHON_COMPILING_IN_CPYTHON 1 #ifndef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 1 #endif #if PY_VERSION_HEX < 0x02070000 #undef CYTHON_USE_PYTYPE_LOOKUP #define CYTHON_USE_PYTYPE_LOOKUP 0 #elif !defined(CYTHON_USE_PYTYPE_LOOKUP) #define CYTHON_USE_PYTYPE_LOOKUP 1 #endif #if PY_MAJOR_VERSION < 3 #undef CYTHON_USE_ASYNC_SLOTS #define CYTHON_USE_ASYNC_SLOTS 0 #elif !defined(CYTHON_USE_ASYNC_SLOTS) #define CYTHON_USE_ASYNC_SLOTS 1 #endif #if PY_VERSION_HEX < 0x02070000 #undef CYTHON_USE_PYLONG_INTERNALS #define CYTHON_USE_PYLONG_INTERNALS 0 #elif !defined(CYTHON_USE_PYLONG_INTERNALS) #define CYTHON_USE_PYLONG_INTERNALS 1 #endif #ifndef CYTHON_USE_PYLIST_INTERNALS #define CYTHON_USE_PYLIST_INTERNALS 1 #endif #ifndef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 1 #endif #if PY_VERSION_HEX < 0x030300F0 #undef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #elif !defined(CYTHON_USE_UNICODE_WRITER) #define CYTHON_USE_UNICODE_WRITER 1 #endif #ifndef CYTHON_AVOID_BORROWED_REFS #define CYTHON_AVOID_BORROWED_REFS 0 #endif #ifndef CYTHON_ASSUME_SAFE_MACROS #define CYTHON_ASSUME_SAFE_MACROS 1 #endif #ifndef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 1 #endif #ifndef CYTHON_FAST_THREAD_STATE #define CYTHON_FAST_THREAD_STATE 1 #endif #ifndef CYTHON_FAST_PYCALL #define CYTHON_FAST_PYCALL 1 #endif #ifndef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000) #endif #ifndef CYTHON_USE_TP_FINALIZE #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1) #endif #ifndef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1) #endif #ifndef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3) #endif #endif #if !defined(CYTHON_FAST_PYCCALL) #define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) #endif #if CYTHON_USE_PYLONG_INTERNALS #include "longintrepr.h" #undef SHIFT #undef BASE #undef MASK #ifdef SIZEOF_VOID_P enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) }; #endif #endif #ifndef __has_attribute #define __has_attribute(x) 0 #endif #ifndef __has_cpp_attribute #define __has_cpp_attribute(x) 0 #endif #ifndef CYTHON_RESTRICT #if defined(__GNUC__) #define CYTHON_RESTRICT __restrict__ #elif defined(_MSC_VER) && _MSC_VER >= 1400 #define CYTHON_RESTRICT __restrict #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define CYTHON_RESTRICT restrict #else #define CYTHON_RESTRICT #endif #endif #ifndef CYTHON_UNUSED # if defined(__GNUC__) # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) # define CYTHON_UNUSED __attribute__ ((__unused__)) # else # define CYTHON_UNUSED # endif # elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) # define CYTHON_UNUSED __attribute__ ((__unused__)) # else # define CYTHON_UNUSED # endif #endif #ifndef CYTHON_MAYBE_UNUSED_VAR # if defined(__cplusplus) template void CYTHON_MAYBE_UNUSED_VAR( const T& ) { } # else # define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x) # endif #endif #ifndef CYTHON_NCP_UNUSED # if CYTHON_COMPILING_IN_CPYTHON # define CYTHON_NCP_UNUSED # else # define CYTHON_NCP_UNUSED CYTHON_UNUSED # endif #endif #define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None) #ifdef _MSC_VER #ifndef _MSC_STDINT_H_ #if _MSC_VER < 1300 typedef unsigned char uint8_t; typedef unsigned int uint32_t; #else typedef unsigned __int8 uint8_t; typedef unsigned __int32 uint32_t; #endif #endif #else #include #endif #ifndef CYTHON_FALLTHROUGH #if defined(__cplusplus) && __cplusplus >= 201103L #if __has_cpp_attribute(fallthrough) #define CYTHON_FALLTHROUGH [[fallthrough]] #elif __has_cpp_attribute(clang::fallthrough) #define CYTHON_FALLTHROUGH [[clang::fallthrough]] #elif __has_cpp_attribute(gnu::fallthrough) #define CYTHON_FALLTHROUGH [[gnu::fallthrough]] #endif #endif #ifndef CYTHON_FALLTHROUGH #if __has_attribute(fallthrough) #define CYTHON_FALLTHROUGH __attribute__((fallthrough)) #else #define CYTHON_FALLTHROUGH #endif #endif #if defined(__clang__ ) && defined(__apple_build_version__) #if __apple_build_version__ < 7000000 #undef CYTHON_FALLTHROUGH #define CYTHON_FALLTHROUGH #endif #endif #endif #ifndef CYTHON_INLINE #if defined(__clang__) #define CYTHON_INLINE __inline__ __attribute__ ((__unused__)) #elif defined(__GNUC__) #define CYTHON_INLINE __inline__ #elif defined(_MSC_VER) #define CYTHON_INLINE __inline #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define CYTHON_INLINE inline #else #define CYTHON_INLINE #endif #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag) #define Py_OptimizeFlag 0 #endif #define __PYX_BUILD_PY_SSIZE_T "n" #define CYTHON_FORMAT_SSIZE_T "z" #if PY_MAJOR_VERSION < 3 #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #define __Pyx_DefaultClassType PyClass_Type #else #define __Pyx_BUILTIN_MODULE_NAME "builtins" #if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2 #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #else #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #endif #define __Pyx_DefaultClassType PyType_Type #endif #ifndef Py_TPFLAGS_CHECKTYPES #define Py_TPFLAGS_CHECKTYPES 0 #endif #ifndef Py_TPFLAGS_HAVE_INDEX #define Py_TPFLAGS_HAVE_INDEX 0 #endif #ifndef Py_TPFLAGS_HAVE_NEWBUFFER #define Py_TPFLAGS_HAVE_NEWBUFFER 0 #endif #ifndef Py_TPFLAGS_HAVE_FINALIZE #define Py_TPFLAGS_HAVE_FINALIZE 0 #endif #ifndef METH_STACKLESS #define METH_STACKLESS 0 #endif #if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL) #ifndef METH_FASTCALL #define METH_FASTCALL 0x80 #endif typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs); typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames); #else #define __Pyx_PyCFunctionFast _PyCFunctionFast #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords #endif #if CYTHON_FAST_PYCCALL #define __Pyx_PyFastCFunction_Check(func)\ ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))))) #else #define __Pyx_PyFastCFunction_Check(func) 0 #endif #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc) #define PyObject_Malloc(s) PyMem_Malloc(s) #define PyObject_Free(p) PyMem_Free(p) #define PyObject_Realloc(p) PyMem_Realloc(p) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030400A1 #define PyMem_RawMalloc(n) PyMem_Malloc(n) #define PyMem_RawRealloc(p, n) PyMem_Realloc(p, n) #define PyMem_RawFree(p) PyMem_Free(p) #endif #if CYTHON_COMPILING_IN_PYSTON #define __Pyx_PyCode_HasFreeVars(co) PyCode_HasFreeVars(co) #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno) #else #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno) #endif #if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000 #define __Pyx_PyThreadState_Current PyThreadState_GET() #elif PY_VERSION_HEX >= 0x03060000 #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet() #elif PY_VERSION_HEX >= 0x03000000 #define __Pyx_PyThreadState_Current PyThreadState_GET() #else #define __Pyx_PyThreadState_Current _PyThreadState_Current #endif #if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT) #include "pythread.h" #define Py_tss_NEEDS_INIT 0 typedef int Py_tss_t; static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) { *key = PyThread_create_key(); return 0; } static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) { Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t)); *key = Py_tss_NEEDS_INIT; return key; } static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) { PyObject_Free(key); } static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) { return *key != Py_tss_NEEDS_INIT; } static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) { PyThread_delete_key(*key); *key = Py_tss_NEEDS_INIT; } static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) { return PyThread_set_key_value(*key, value); } static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { return PyThread_get_key_value(*key); } #endif #if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized) #define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n)) #else #define __Pyx_PyDict_NewPresized(n) PyDict_New() #endif #if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) #else #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS #define __Pyx_PyDict_GetItemStr(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash) #else #define __Pyx_PyDict_GetItemStr(dict, name) PyDict_GetItem(dict, name) #endif #if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) #define CYTHON_PEP393_ENABLED 1 #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ 0 : _PyUnicode_Ready((PyObject *)(op))) #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u) #define __Pyx_PyUnicode_KIND(u) PyUnicode_KIND(u) #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) #else #define CYTHON_PEP393_ENABLED 0 #define PyUnicode_1BYTE_KIND 1 #define PyUnicode_2BYTE_KIND 2 #define PyUnicode_4BYTE_KIND 4 #define __Pyx_PyUnicode_READY(op) (0) #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u) #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111) #define __Pyx_PyUnicode_KIND(u) (sizeof(Py_UNICODE)) #define __Pyx_PyUnicode_DATA(u) ((void*)PyUnicode_AS_UNICODE(u)) #define __Pyx_PyUnicode_READ(k, d, i) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i])) #define __Pyx_PyUnicode_WRITE(k, d, i, ch) (((void)(k)), ((Py_UNICODE*)d)[i] = ch) #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_SIZE(u)) #endif #if CYTHON_COMPILING_IN_PYPY #define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b) #define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b) #else #define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b) #define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\ PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b)) #endif #if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains) #define PyUnicode_Contains(u, s) PySequence_Contains(u, s) #endif #if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check) #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type) #endif #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format) #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) #endif #define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) #define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyString_Format(a, b) PyUnicode_Format(a, b) #else #define __Pyx_PyString_Format(a, b) PyString_Format(a, b) #endif #if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII) #define PyObject_ASCII(o) PyObject_Repr(o) #endif #if PY_MAJOR_VERSION >= 3 #define PyBaseString_Type PyUnicode_Type #define PyStringObject PyUnicodeObject #define PyString_Type PyUnicode_Type #define PyString_Check PyUnicode_Check #define PyString_CheckExact PyUnicode_CheckExact #define PyObject_Unicode PyObject_Str #endif #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) #else #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj)) #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj)) #endif #ifndef PySet_CheckExact #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) #endif #if CYTHON_ASSUME_SAFE_MACROS #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) #else #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq) #endif #if PY_MAJOR_VERSION >= 3 #define PyIntObject PyLongObject #define PyInt_Type PyLong_Type #define PyInt_Check(op) PyLong_Check(op) #define PyInt_CheckExact(op) PyLong_CheckExact(op) #define PyInt_FromString PyLong_FromString #define PyInt_FromUnicode PyLong_FromUnicode #define PyInt_FromLong PyLong_FromLong #define PyInt_FromSize_t PyLong_FromSize_t #define PyInt_FromSsize_t PyLong_FromSsize_t #define PyInt_AsLong PyLong_AsLong #define PyInt_AS_LONG PyLong_AS_LONG #define PyInt_AsSsize_t PyLong_AsSsize_t #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask #define PyNumber_Int PyNumber_Long #endif #if PY_MAJOR_VERSION >= 3 #define PyBoolObject PyLongObject #endif #if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY #ifndef PyUnicode_InternFromString #define PyUnicode_InternFromString(s) PyUnicode_FromString(s) #endif #endif #if PY_VERSION_HEX < 0x030200A4 typedef long Py_hash_t; #define __Pyx_PyInt_FromHash_t PyInt_FromLong #define __Pyx_PyInt_AsHash_t PyInt_AsLong #else #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t #endif #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) #else #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) #endif #if CYTHON_USE_ASYNC_SLOTS #if PY_VERSION_HEX >= 0x030500B1 #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async) #else #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved)) #endif #else #define __Pyx_PyType_AsAsync(obj) NULL #endif #ifndef __Pyx_PyAsyncMethodsStruct typedef struct { unaryfunc am_await; unaryfunc am_aiter; unaryfunc am_anext; } __Pyx_PyAsyncMethodsStruct; #endif #if defined(WIN32) || defined(MS_WINDOWS) #define _USE_MATH_DEFINES #endif #include #ifdef NAN #define __PYX_NAN() ((float) NAN) #else static CYTHON_INLINE float __PYX_NAN() { float value; memset(&value, 0xFF, sizeof(value)); return value; } #endif #if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL) #define __Pyx_truncl trunc #else #define __Pyx_truncl truncl #endif #define __PYX_ERR(f_index, lineno, Ln_error) \ { \ __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ } #ifndef __PYX_EXTERN_C #ifdef __cplusplus #define __PYX_EXTERN_C extern "C" #else #define __PYX_EXTERN_C extern #endif #endif #define __PYX_HAVE__pywt___extensions___cwt #define __PYX_HAVE_API__pywt___extensions___cwt /* Early includes */ #include "c/common.h" #include "c/wavelets.h" #include #include #include "numpy/arrayobject.h" #include "numpy/ufuncobject.h" #include "c/wt.h" #include "c/cwt.h" #include "pythread.h" #include #include "pystate.h" #ifdef _OPENMP #include #endif /* _OPENMP */ #if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS) #define CYTHON_WITHOUT_ASSERTIONS #endif typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding; const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; #define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0 #define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0 #define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8) #define __PYX_DEFAULT_STRING_ENCODING "" #define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString #define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize #define __Pyx_uchar_cast(c) ((unsigned char)c) #define __Pyx_long_cast(x) ((long)x) #define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\ (sizeof(type) < sizeof(Py_ssize_t)) ||\ (sizeof(type) > sizeof(Py_ssize_t) &&\ likely(v < (type)PY_SSIZE_T_MAX ||\ v == (type)PY_SSIZE_T_MAX) &&\ (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\ v == (type)PY_SSIZE_T_MIN))) ||\ (sizeof(type) == sizeof(Py_ssize_t) &&\ (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\ v == (type)PY_SSIZE_T_MAX))) ) static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) { return (size_t) i < (size_t) limit; } #if defined (__cplusplus) && __cplusplus >= 201103L #include #define __Pyx_sst_abs(value) std::abs(value) #elif SIZEOF_INT >= SIZEOF_SIZE_T #define __Pyx_sst_abs(value) abs(value) #elif SIZEOF_LONG >= SIZEOF_SIZE_T #define __Pyx_sst_abs(value) labs(value) #elif defined (_MSC_VER) #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value)) #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define __Pyx_sst_abs(value) llabs(value) #elif defined (__GNUC__) #define __Pyx_sst_abs(value) __builtin_llabs(value) #else #define __Pyx_sst_abs(value) ((value<0) ? -value : value) #endif static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*); static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length); #define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s)) #define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l) #define __Pyx_PyBytes_FromString PyBytes_FromString #define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*); #if PY_MAJOR_VERSION < 3 #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize #else #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize #endif #define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AS_STRING(s)) #define __Pyx_PyObject_AsWritableString(s) ((char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsWritableSString(s) ((signed char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsSString(s) ((const signed char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsUString(s) ((const unsigned char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s) #define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s) #define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s) #define __Pyx_PyStr_FromCString(s) __Pyx_PyStr_FromString((const char*)s) #define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s) static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) { const Py_UNICODE *u_end = u; while (*u_end++) ; return (size_t)(u_end - u - 1); } #define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u)) #define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode #define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode #define __Pyx_NewRef(obj) (Py_INCREF(obj), obj) #define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None) static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b); static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*); static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); #define __Pyx_PySequence_Tuple(obj)\ (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj)) static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); #if CYTHON_ASSUME_SAFE_MACROS #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) #else #define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) #endif #define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x)) #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x)) #else #define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x)) #endif #define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x)) #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII static int __Pyx_sys_getdefaultencoding_not_ascii; static int __Pyx_init_sys_getdefaultencoding_params(void) { PyObject* sys; PyObject* default_encoding = NULL; PyObject* ascii_chars_u = NULL; PyObject* ascii_chars_b = NULL; const char* default_encoding_c; sys = PyImport_ImportModule("sys"); if (!sys) goto bad; default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL); Py_DECREF(sys); if (!default_encoding) goto bad; default_encoding_c = PyBytes_AsString(default_encoding); if (!default_encoding_c) goto bad; if (strcmp(default_encoding_c, "ascii") == 0) { __Pyx_sys_getdefaultencoding_not_ascii = 0; } else { char ascii_chars[128]; int c; for (c = 0; c < 128; c++) { ascii_chars[c] = c; } __Pyx_sys_getdefaultencoding_not_ascii = 1; ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL); if (!ascii_chars_u) goto bad; ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL); if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) { PyErr_Format( PyExc_ValueError, "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.", default_encoding_c); goto bad; } Py_DECREF(ascii_chars_u); Py_DECREF(ascii_chars_b); } Py_DECREF(default_encoding); return 0; bad: Py_XDECREF(default_encoding); Py_XDECREF(ascii_chars_u); Py_XDECREF(ascii_chars_b); return -1; } #endif #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL) #else #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL) #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT static char* __PYX_DEFAULT_STRING_ENCODING; static int __Pyx_init_sys_getdefaultencoding_params(void) { PyObject* sys; PyObject* default_encoding = NULL; char* default_encoding_c; sys = PyImport_ImportModule("sys"); if (!sys) goto bad; default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL); Py_DECREF(sys); if (!default_encoding) goto bad; default_encoding_c = PyBytes_AsString(default_encoding); if (!default_encoding_c) goto bad; __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1); if (!__PYX_DEFAULT_STRING_ENCODING) goto bad; strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c); Py_DECREF(default_encoding); return 0; bad: Py_XDECREF(default_encoding); return -1; } #endif #endif /* Test for GCC > 2.95 */ #if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))) #define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) #else /* !__GNUC__ or GCC < 2.95 */ #define likely(x) (x) #define unlikely(x) (x) #endif /* __GNUC__ */ static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; } static PyObject *__pyx_m = NULL; static PyObject *__pyx_d; static PyObject *__pyx_b; static PyObject *__pyx_cython_runtime = NULL; static PyObject *__pyx_empty_tuple; static PyObject *__pyx_empty_bytes; static PyObject *__pyx_empty_unicode; static int __pyx_lineno; static int __pyx_clineno = 0; static const char * __pyx_cfilenm= __FILE__; static const char *__pyx_filename; /* Header.proto */ #if !defined(CYTHON_CCOMPLEX) #if defined(__cplusplus) #define CYTHON_CCOMPLEX 1 #elif defined(_Complex_I) #define CYTHON_CCOMPLEX 1 #else #define CYTHON_CCOMPLEX 0 #endif #endif #if CYTHON_CCOMPLEX #ifdef __cplusplus #include #else #include #endif #endif #if CYTHON_CCOMPLEX && !defined(__cplusplus) && defined(__sun__) && defined(__GNUC__) #undef _Complex_I #define _Complex_I 1.0fj #endif static const char *__pyx_f[] = { "pywt/_extensions/_cwt.pyx", "__init__.pxd", "stringsource", "type.pxd", "pywt/_extensions/_pywt.pxd", }; /* NoFastGil.proto */ #define __Pyx_PyGILState_Ensure PyGILState_Ensure #define __Pyx_PyGILState_Release PyGILState_Release #define __Pyx_FastGIL_Remember() #define __Pyx_FastGIL_Forget() #define __Pyx_FastGilFuncInit() /* MemviewSliceStruct.proto */ struct __pyx_memoryview_obj; typedef struct { struct __pyx_memoryview_obj *memview; char *data; Py_ssize_t shape[8]; Py_ssize_t strides[8]; Py_ssize_t suboffsets[8]; } __Pyx_memviewslice; #define __Pyx_MemoryView_Len(m) (m.shape[0]) /* Atomics.proto */ #include #ifndef CYTHON_ATOMICS #define CYTHON_ATOMICS 1 #endif #define __pyx_atomic_int_type int #if CYTHON_ATOMICS && __GNUC__ >= 4 && (__GNUC_MINOR__ > 1 ||\ (__GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL >= 2)) &&\ !defined(__i386__) #define __pyx_atomic_incr_aligned(value, lock) __sync_fetch_and_add(value, 1) #define __pyx_atomic_decr_aligned(value, lock) __sync_fetch_and_sub(value, 1) #ifdef __PYX_DEBUG_ATOMICS #warning "Using GNU atomics" #endif #elif CYTHON_ATOMICS && defined(_MSC_VER) && 0 #include #undef __pyx_atomic_int_type #define __pyx_atomic_int_type LONG #define __pyx_atomic_incr_aligned(value, lock) InterlockedIncrement(value) #define __pyx_atomic_decr_aligned(value, lock) InterlockedDecrement(value) #ifdef __PYX_DEBUG_ATOMICS #pragma message ("Using MSVC atomics") #endif #elif CYTHON_ATOMICS && (defined(__ICC) || defined(__INTEL_COMPILER)) && 0 #define __pyx_atomic_incr_aligned(value, lock) _InterlockedIncrement(value) #define __pyx_atomic_decr_aligned(value, lock) _InterlockedDecrement(value) #ifdef __PYX_DEBUG_ATOMICS #warning "Using Intel atomics" #endif #else #undef CYTHON_ATOMICS #define CYTHON_ATOMICS 0 #ifdef __PYX_DEBUG_ATOMICS #warning "Not using atomics" #endif #endif typedef volatile __pyx_atomic_int_type __pyx_atomic_int; #if CYTHON_ATOMICS #define __pyx_add_acquisition_count(memview)\ __pyx_atomic_incr_aligned(__pyx_get_slice_count_pointer(memview), memview->lock) #define __pyx_sub_acquisition_count(memview)\ __pyx_atomic_decr_aligned(__pyx_get_slice_count_pointer(memview), memview->lock) #else #define __pyx_add_acquisition_count(memview)\ __pyx_add_acquisition_count_locked(__pyx_get_slice_count_pointer(memview), memview->lock) #define __pyx_sub_acquisition_count(memview)\ __pyx_sub_acquisition_count_locked(__pyx_get_slice_count_pointer(memview), memview->lock) #endif /* ForceInitThreads.proto */ #ifndef __PYX_FORCE_INIT_THREADS #define __PYX_FORCE_INIT_THREADS 0 #endif /* BufferFormatStructs.proto */ #define IS_UNSIGNED(type) (((type) -1) > 0) struct __Pyx_StructField_; #define __PYX_BUF_FLAGS_PACKED_STRUCT (1 << 0) typedef struct { const char* name; struct __Pyx_StructField_* fields; size_t size; size_t arraysize[8]; int ndim; char typegroup; char is_unsigned; int flags; } __Pyx_TypeInfo; typedef struct __Pyx_StructField_ { __Pyx_TypeInfo* type; const char* name; size_t offset; } __Pyx_StructField; typedef struct { __Pyx_StructField* field; size_t parent_offset; } __Pyx_BufFmt_StackElem; typedef struct { __Pyx_StructField root; __Pyx_BufFmt_StackElem* head; size_t fmt_offset; size_t new_count, enc_count; size_t struct_alignment; int is_complex; char enc_type; char new_packmode; char enc_packmode; char is_valid_array; } __Pyx_BufFmt_Context; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":776 * # in Cython to enable them only on the right systems. * * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<< * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t */ typedef npy_int8 __pyx_t_5numpy_int8_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":777 * * ctypedef npy_int8 int8_t * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< * ctypedef npy_int32 int32_t * ctypedef npy_int64 int64_t */ typedef npy_int16 __pyx_t_5numpy_int16_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":778 * ctypedef npy_int8 int8_t * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<< * ctypedef npy_int64 int64_t * #ctypedef npy_int96 int96_t */ typedef npy_int32 __pyx_t_5numpy_int32_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":779 * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<< * #ctypedef npy_int96 int96_t * #ctypedef npy_int128 int128_t */ typedef npy_int64 __pyx_t_5numpy_int64_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":783 * #ctypedef npy_int128 int128_t * * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t */ typedef npy_uint8 __pyx_t_5numpy_uint8_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":784 * * ctypedef npy_uint8 uint8_t * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< * ctypedef npy_uint32 uint32_t * ctypedef npy_uint64 uint64_t */ typedef npy_uint16 __pyx_t_5numpy_uint16_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":785 * ctypedef npy_uint8 uint8_t * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<< * ctypedef npy_uint64 uint64_t * #ctypedef npy_uint96 uint96_t */ typedef npy_uint32 __pyx_t_5numpy_uint32_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":786 * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<< * #ctypedef npy_uint96 uint96_t * #ctypedef npy_uint128 uint128_t */ typedef npy_uint64 __pyx_t_5numpy_uint64_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":790 * #ctypedef npy_uint128 uint128_t * * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< * ctypedef npy_float64 float64_t * #ctypedef npy_float80 float80_t */ typedef npy_float32 __pyx_t_5numpy_float32_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":791 * * ctypedef npy_float32 float32_t * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< * #ctypedef npy_float80 float80_t * #ctypedef npy_float128 float128_t */ typedef npy_float64 __pyx_t_5numpy_float64_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":800 * # The int types are mapped a bit surprising -- * # numpy.int corresponds to 'l' and numpy.long to 'q' * ctypedef npy_long int_t # <<<<<<<<<<<<<< * ctypedef npy_longlong long_t * ctypedef npy_longlong longlong_t */ typedef npy_long __pyx_t_5numpy_int_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":801 * # numpy.int corresponds to 'l' and numpy.long to 'q' * ctypedef npy_long int_t * ctypedef npy_longlong long_t # <<<<<<<<<<<<<< * ctypedef npy_longlong longlong_t * */ typedef npy_longlong __pyx_t_5numpy_long_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":802 * ctypedef npy_long int_t * ctypedef npy_longlong long_t * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<< * * ctypedef npy_ulong uint_t */ typedef npy_longlong __pyx_t_5numpy_longlong_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":804 * ctypedef npy_longlong longlong_t * * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< * ctypedef npy_ulonglong ulong_t * ctypedef npy_ulonglong ulonglong_t */ typedef npy_ulong __pyx_t_5numpy_uint_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":805 * * ctypedef npy_ulong uint_t * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< * ctypedef npy_ulonglong ulonglong_t * */ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":806 * ctypedef npy_ulong uint_t * ctypedef npy_ulonglong ulong_t * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<< * * ctypedef npy_intp intp_t */ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":808 * ctypedef npy_ulonglong ulonglong_t * * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< * ctypedef npy_uintp uintp_t * */ typedef npy_intp __pyx_t_5numpy_intp_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":809 * * ctypedef npy_intp intp_t * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< * * ctypedef npy_double float_t */ typedef npy_uintp __pyx_t_5numpy_uintp_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":811 * ctypedef npy_uintp uintp_t * * ctypedef npy_double float_t # <<<<<<<<<<<<<< * ctypedef npy_double double_t * ctypedef npy_longdouble longdouble_t */ typedef npy_double __pyx_t_5numpy_float_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":812 * * ctypedef npy_double float_t * ctypedef npy_double double_t # <<<<<<<<<<<<<< * ctypedef npy_longdouble longdouble_t * */ typedef npy_double __pyx_t_5numpy_double_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":813 * ctypedef npy_double float_t * ctypedef npy_double double_t * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<< * * ctypedef npy_cfloat cfloat_t */ typedef npy_longdouble __pyx_t_5numpy_longdouble_t; /* "_pywt.pxd":5 * include "config.pxi" * * ctypedef Py_ssize_t pywt_index_t # <<<<<<<<<<<<<< * * ctypedef fused data_t: */ typedef Py_ssize_t __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t; /* Declarations.proto */ #if CYTHON_CCOMPLEX #ifdef __cplusplus typedef ::std::complex< float > __pyx_t_float_complex; #else typedef float _Complex __pyx_t_float_complex; #endif #else typedef struct { float real, imag; } __pyx_t_float_complex; #endif static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float, float); /* Declarations.proto */ #if CYTHON_CCOMPLEX #ifdef __cplusplus typedef ::std::complex< double > __pyx_t_double_complex; #else typedef double _Complex __pyx_t_double_complex; #endif #else typedef struct { double real, imag; } __pyx_t_double_complex; #endif static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double, double); /*--- Type declarations ---*/ struct WaveletObject; struct ContinuousWaveletObject; struct __pyx_array_obj; struct __pyx_MemviewEnum_obj; struct __pyx_memoryview_obj; struct __pyx_memoryviewslice_obj; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":815 * ctypedef npy_longdouble longdouble_t * * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< * ctypedef npy_cdouble cdouble_t * ctypedef npy_clongdouble clongdouble_t */ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":816 * * ctypedef npy_cfloat cfloat_t * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< * ctypedef npy_clongdouble clongdouble_t * */ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":817 * ctypedef npy_cfloat cfloat_t * ctypedef npy_cdouble cdouble_t * ctypedef npy_clongdouble clongdouble_t # <<<<<<<<<<<<<< * * ctypedef npy_cdouble complex_t */ typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":819 * ctypedef npy_clongdouble clongdouble_t * * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew1(a): */ typedef npy_cdouble __pyx_t_5numpy_complex_t; /* "_pywt.pxd":23 * have_c99_complex = 0 * * cdef public class Wavelet [type WaveletType, object WaveletObject]: # <<<<<<<<<<<<<< * cdef wavelet.DiscreteWavelet* w * */ struct WaveletObject { PyObject_HEAD DiscreteWavelet *w; PyObject *name; PyObject *number; }; __PYX_EXTERN_C DL_EXPORT(PyTypeObject) WaveletType; /* "_pywt.pxd":29 * cdef readonly number * * cdef public class ContinuousWavelet [type ContinuousWaveletType, object ContinuousWaveletObject]: # <<<<<<<<<<<<<< * cdef wavelet.ContinuousWavelet* w * */ struct ContinuousWaveletObject { PyObject_HEAD ContinuousWavelet *w; PyObject *name; PyObject *number; PyObject *dt; }; __PYX_EXTERN_C DL_EXPORT(PyTypeObject) ContinuousWaveletType; /* "View.MemoryView":105 * * @cname("__pyx_array") * cdef class array: # <<<<<<<<<<<<<< * * cdef: */ struct __pyx_array_obj { PyObject_HEAD struct __pyx_vtabstruct_array *__pyx_vtab; char *data; Py_ssize_t len; char *format; int ndim; Py_ssize_t *_shape; Py_ssize_t *_strides; Py_ssize_t itemsize; PyObject *mode; PyObject *_format; void (*callback_free_data)(void *); int free_data; int dtype_is_object; }; /* "View.MemoryView":279 * * @cname('__pyx_MemviewEnum') * cdef class Enum(object): # <<<<<<<<<<<<<< * cdef object name * def __init__(self, name): */ struct __pyx_MemviewEnum_obj { PyObject_HEAD PyObject *name; }; /* "View.MemoryView":330 * * @cname('__pyx_memoryview') * cdef class memoryview(object): # <<<<<<<<<<<<<< * * cdef object obj */ struct __pyx_memoryview_obj { PyObject_HEAD struct __pyx_vtabstruct_memoryview *__pyx_vtab; PyObject *obj; PyObject *_size; PyObject *_array_interface; PyThread_type_lock lock; __pyx_atomic_int acquisition_count[2]; __pyx_atomic_int *acquisition_count_aligned_p; Py_buffer view; int flags; int dtype_is_object; __Pyx_TypeInfo *typeinfo; }; /* "View.MemoryView":965 * * @cname('__pyx_memoryviewslice') * cdef class _memoryviewslice(memoryview): # <<<<<<<<<<<<<< * "Internal class for passing memoryview slices to Python" * */ struct __pyx_memoryviewslice_obj { struct __pyx_memoryview_obj __pyx_base; __Pyx_memviewslice from_slice; PyObject *from_object; PyObject *(*to_object_func)(char *); int (*to_dtype_func)(char *, PyObject *); }; /* "View.MemoryView":105 * * @cname("__pyx_array") * cdef class array: # <<<<<<<<<<<<<< * * cdef: */ struct __pyx_vtabstruct_array { PyObject *(*get_memview)(struct __pyx_array_obj *); }; static struct __pyx_vtabstruct_array *__pyx_vtabptr_array; /* "View.MemoryView":330 * * @cname('__pyx_memoryview') * cdef class memoryview(object): # <<<<<<<<<<<<<< * * cdef object obj */ struct __pyx_vtabstruct_memoryview { char *(*get_item_pointer)(struct __pyx_memoryview_obj *, PyObject *); PyObject *(*is_slice)(struct __pyx_memoryview_obj *, PyObject *); PyObject *(*setitem_slice_assignment)(struct __pyx_memoryview_obj *, PyObject *, PyObject *); PyObject *(*setitem_slice_assign_scalar)(struct __pyx_memoryview_obj *, struct __pyx_memoryview_obj *, PyObject *); PyObject *(*setitem_indexed)(struct __pyx_memoryview_obj *, PyObject *, PyObject *); PyObject *(*convert_item_to_object)(struct __pyx_memoryview_obj *, char *); PyObject *(*assign_item_from_object)(struct __pyx_memoryview_obj *, char *, PyObject *); }; static struct __pyx_vtabstruct_memoryview *__pyx_vtabptr_memoryview; /* "View.MemoryView":965 * * @cname('__pyx_memoryviewslice') * cdef class _memoryviewslice(memoryview): # <<<<<<<<<<<<<< * "Internal class for passing memoryview slices to Python" * */ struct __pyx_vtabstruct__memoryviewslice { struct __pyx_vtabstruct_memoryview __pyx_base; }; static struct __pyx_vtabstruct__memoryviewslice *__pyx_vtabptr__memoryviewslice; /* --- Runtime support code (head) --- */ /* Refnanny.proto */ #ifndef CYTHON_REFNANNY #define CYTHON_REFNANNY 0 #endif #if CYTHON_REFNANNY typedef struct { void (*INCREF)(void*, PyObject*, int); void (*DECREF)(void*, PyObject*, int); void (*GOTREF)(void*, PyObject*, int); void (*GIVEREF)(void*, PyObject*, int); void* (*SetupContext)(const char*, int, const char*); void (*FinishContext)(void**); } __Pyx_RefNannyAPIStruct; static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; #ifdef WITH_THREAD #define __Pyx_RefNannySetupContext(name, acquire_gil)\ if (acquire_gil) {\ PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ PyGILState_Release(__pyx_gilstate_save);\ } else {\ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ } #else #define __Pyx_RefNannySetupContext(name, acquire_gil)\ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) #endif #define __Pyx_RefNannyFinishContext()\ __Pyx_RefNanny->FinishContext(&__pyx_refnanny) #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0) #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0) #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0) #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0) #else #define __Pyx_RefNannyDeclarations #define __Pyx_RefNannySetupContext(name, acquire_gil) #define __Pyx_RefNannyFinishContext() #define __Pyx_INCREF(r) Py_INCREF(r) #define __Pyx_DECREF(r) Py_DECREF(r) #define __Pyx_GOTREF(r) #define __Pyx_GIVEREF(r) #define __Pyx_XINCREF(r) Py_XINCREF(r) #define __Pyx_XDECREF(r) Py_XDECREF(r) #define __Pyx_XGOTREF(r) #define __Pyx_XGIVEREF(r) #endif #define __Pyx_XDECREF_SET(r, v) do {\ PyObject *tmp = (PyObject *) r;\ r = v; __Pyx_XDECREF(tmp);\ } while (0) #define __Pyx_DECREF_SET(r, v) do {\ PyObject *tmp = (PyObject *) r;\ r = v; __Pyx_DECREF(tmp);\ } while (0) #define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) #define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) /* PyObjectGetAttrStr.proto */ #if CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name); #else #define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) #endif /* GetBuiltinName.proto */ static PyObject *__Pyx_GetBuiltinName(PyObject *name); /* RaiseArgTupleInvalid.proto */ static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /* RaiseDoubleKeywords.proto */ static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); /* ParseKeywords.proto */ static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\ PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\ const char* function_name); /* PyDictContains.proto */ static CYTHON_INLINE int __Pyx_PyDict_ContainsTF(PyObject* item, PyObject* dict, int eq) { int result = PyDict_Contains(dict, item); return unlikely(result < 0) ? result : (result == (eq == Py_EQ)); } /* DictGetItem.proto */ #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key); #define __Pyx_PyObject_Dict_GetItem(obj, name)\ (likely(PyDict_CheckExact(obj)) ?\ __Pyx_PyDict_GetItem(obj, name) : PyObject_GetItem(obj, name)) #else #define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key) #define __Pyx_PyObject_Dict_GetItem(obj, name) PyObject_GetItem(obj, name) #endif /* PyCFunctionFastCall.proto */ #if CYTHON_FAST_PYCCALL static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs); #else #define __Pyx_PyCFunction_FastCall(func, args, nargs) (assert(0), NULL) #endif /* PyFunctionFastCall.proto */ #if CYTHON_FAST_PYCALL #define __Pyx_PyFunction_FastCall(func, args, nargs)\ __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) #if 1 || PY_VERSION_HEX < 0x030600B1 static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs); #else #define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) #endif #define __Pyx_BUILD_ASSERT_EXPR(cond)\ (sizeof(char [1 - 2*!(cond)]) - 1) #ifndef Py_MEMBER_SIZE #define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) #endif static size_t __pyx_pyframe_localsplus_offset = 0; #include "frameobject.h" #define __Pxy_PyFrame_Initialize_Offsets()\ ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) #define __Pyx_PyFrame_GetLocalsplus(frame)\ (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) #endif /* PyObjectCall.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); #else #define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw) #endif /* PyObjectCallMethO.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); #endif /* PyObjectCallOneArg.proto */ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); /* PyThreadStateGet.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; #define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current; #define __Pyx_PyErr_Occurred() __pyx_tstate->curexc_type #else #define __Pyx_PyThreadState_declare #define __Pyx_PyThreadState_assign #define __Pyx_PyErr_Occurred() PyErr_Occurred() #endif /* PyErrFetchRestore.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL) #define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb) #define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb) #define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb) #define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL)) #else #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) #endif #else #define __Pyx_PyErr_Clear() PyErr_Clear() #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) #define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb) #define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb) #define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb) #define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb) #define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb) #define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb) #endif /* RaiseException.proto */ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); /* UnicodeAsUCS4.proto */ static CYTHON_INLINE Py_UCS4 __Pyx_PyUnicode_AsPy_UCS4(PyObject*); /* object_ord.proto */ #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyObject_Ord(c)\ (likely(PyUnicode_Check(c)) ? (long)__Pyx_PyUnicode_AsPy_UCS4(c) : __Pyx__PyObject_Ord(c)) #else #define __Pyx_PyObject_Ord(c) __Pyx__PyObject_Ord(c) #endif static long __Pyx__PyObject_Ord(PyObject* c); /* SetItemInt.proto */ #define __Pyx_SetItemInt(o, i, v, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_SetItemInt_Fast(o, (Py_ssize_t)i, v, is_list, wraparound, boundscheck) :\ (is_list ? (PyErr_SetString(PyExc_IndexError, "list assignment index out of range"), -1) :\ __Pyx_SetItemInt_Generic(o, to_py_func(i), v))) static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v); static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, int is_list, int wraparound, int boundscheck); /* IterFinish.proto */ static CYTHON_INLINE int __Pyx_IterFinish(void); /* PyObjectCallNoArg.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func); #else #define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL) #endif /* PyObjectGetMethod.proto */ static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method); /* PyObjectCallMethod0.proto */ static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name); /* RaiseNeedMoreValuesToUnpack.proto */ static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index); /* RaiseTooManyValuesToUnpack.proto */ static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected); /* UnpackItemEndCheck.proto */ static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected); /* RaiseNoneIterError.proto */ static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void); /* UnpackTupleError.proto */ static void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index); /* UnpackTuple2.proto */ #define __Pyx_unpack_tuple2(tuple, value1, value2, is_tuple, has_known_size, decref_tuple)\ (likely(is_tuple || PyTuple_Check(tuple)) ?\ (likely(has_known_size || PyTuple_GET_SIZE(tuple) == 2) ?\ __Pyx_unpack_tuple2_exact(tuple, value1, value2, decref_tuple) :\ (__Pyx_UnpackTupleError(tuple, 2), -1)) :\ __Pyx_unpack_tuple2_generic(tuple, value1, value2, has_known_size, decref_tuple)) static CYTHON_INLINE int __Pyx_unpack_tuple2_exact( PyObject* tuple, PyObject** value1, PyObject** value2, int decref_tuple); static int __Pyx_unpack_tuple2_generic( PyObject* tuple, PyObject** value1, PyObject** value2, int has_known_size, int decref_tuple); /* dict_iter.proto */ static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* dict, int is_dict, PyObject* method_name, Py_ssize_t* p_orig_length, int* p_is_dict); static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* dict_or_iter, Py_ssize_t orig_length, Py_ssize_t* ppos, PyObject** pkey, PyObject** pvalue, PyObject** pitem, int is_dict); /* PyObjectCall2Args.proto */ static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2); /* GetItemInt.proto */ #define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\ (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\ __Pyx_GetItemInt_Generic(o, to_py_func(i)))) #define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL)) static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, int wraparound, int boundscheck); #define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL)) static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, int wraparound, int boundscheck); static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j); static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list, int wraparound, int boundscheck); /* ListAppend.proto */ #if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) { PyListObject* L = (PyListObject*) list; Py_ssize_t len = Py_SIZE(list); if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) { Py_INCREF(x); PyList_SET_ITEM(list, len, x); Py_SIZE(list) = len+1; return 0; } return PyList_Append(list, x); } #else #define __Pyx_PyList_Append(L,x) PyList_Append(L,x) #endif /* IncludeStringH.proto */ #include /* BytesEquals.proto */ static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals); /* UnicodeEquals.proto */ static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals); /* PyDictVersioning.proto */ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS #define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1) #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\ (version_var) = __PYX_GET_DICT_VERSION(dict);\ (cache_var) = (value); #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\ static PY_UINT64_T __pyx_dict_version = 0;\ static PyObject *__pyx_dict_cached_value = NULL;\ if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\ (VAR) = __pyx_dict_cached_value;\ } else {\ (VAR) = __pyx_dict_cached_value = (LOOKUP);\ __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\ }\ } static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj); static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj); static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version); #else #define __PYX_GET_DICT_VERSION(dict) (0) #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var) #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP); #endif /* GetModuleGlobalName.proto */ #if CYTHON_USE_DICT_VERSIONS #define __Pyx_GetModuleGlobalName(var, name) {\ static PY_UINT64_T __pyx_dict_version = 0;\ static PyObject *__pyx_dict_cached_value = NULL;\ (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\ (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\ __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ } #define __Pyx_GetModuleGlobalNameUncached(var, name) {\ PY_UINT64_T __pyx_dict_version;\ PyObject *__pyx_dict_cached_value;\ (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ } static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value); #else #define __Pyx_GetModuleGlobalName(var, name) (var) = __Pyx__GetModuleGlobalName(name) #define __Pyx_GetModuleGlobalNameUncached(var, name) (var) = __Pyx__GetModuleGlobalName(name) static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name); #endif /* ExtTypeTest.proto */ static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); /* ArgTypeTest.proto */ #define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\ ((likely((Py_TYPE(obj) == type) | (none_allowed && (obj == Py_None)))) ? 1 :\ __Pyx__ArgTypeTest(obj, type, name, exact)) static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact); /* None.proto */ static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname); /* MemviewSliceInit.proto */ #define __Pyx_BUF_MAX_NDIMS %(BUF_MAX_NDIMS)d #define __Pyx_MEMVIEW_DIRECT 1 #define __Pyx_MEMVIEW_PTR 2 #define __Pyx_MEMVIEW_FULL 4 #define __Pyx_MEMVIEW_CONTIG 8 #define __Pyx_MEMVIEW_STRIDED 16 #define __Pyx_MEMVIEW_FOLLOW 32 #define __Pyx_IS_C_CONTIG 1 #define __Pyx_IS_F_CONTIG 2 static int __Pyx_init_memviewslice( struct __pyx_memoryview_obj *memview, int ndim, __Pyx_memviewslice *memviewslice, int memview_is_new_reference); static CYTHON_INLINE int __pyx_add_acquisition_count_locked( __pyx_atomic_int *acquisition_count, PyThread_type_lock lock); static CYTHON_INLINE int __pyx_sub_acquisition_count_locked( __pyx_atomic_int *acquisition_count, PyThread_type_lock lock); #define __pyx_get_slice_count_pointer(memview) (memview->acquisition_count_aligned_p) #define __pyx_get_slice_count(memview) (*__pyx_get_slice_count_pointer(memview)) #define __PYX_INC_MEMVIEW(slice, have_gil) __Pyx_INC_MEMVIEW(slice, have_gil, __LINE__) #define __PYX_XDEC_MEMVIEW(slice, have_gil) __Pyx_XDEC_MEMVIEW(slice, have_gil, __LINE__) static CYTHON_INLINE void __Pyx_INC_MEMVIEW(__Pyx_memviewslice *, int, int); static CYTHON_INLINE void __Pyx_XDEC_MEMVIEW(__Pyx_memviewslice *, int, int); /* GetTopmostException.proto */ #if CYTHON_USE_EXC_INFO_STACK static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate); #endif /* SaveResetException.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); #else #define __Pyx_ExceptionSave(type, value, tb) PyErr_GetExcInfo(type, value, tb) #define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb) #endif /* PyErrExceptionMatches.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err) static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err); #else #define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err) #endif /* GetException.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb) static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #else static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); #endif /* StrEquals.proto */ #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyString_Equals __Pyx_PyUnicode_Equals #else #define __Pyx_PyString_Equals __Pyx_PyBytes_Equals #endif /* None.proto */ static CYTHON_INLINE Py_ssize_t __Pyx_div_Py_ssize_t(Py_ssize_t, Py_ssize_t); /* UnaryNegOverflows.proto */ #define UNARY_NEG_WOULD_OVERFLOW(x)\ (((x) < 0) & ((unsigned long)(x) == 0-(unsigned long)(x))) static CYTHON_UNUSED int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *); /*proto*/ /* GetAttr.proto */ static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *); /* ObjectGetItem.proto */ #if CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key); #else #define __Pyx_PyObject_GetItem(obj, key) PyObject_GetItem(obj, key) #endif /* decode_c_string_utf16.proto */ static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16(const char *s, Py_ssize_t size, const char *errors) { int byteorder = 0; return PyUnicode_DecodeUTF16(s, size, errors, &byteorder); } static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16LE(const char *s, Py_ssize_t size, const char *errors) { int byteorder = -1; return PyUnicode_DecodeUTF16(s, size, errors, &byteorder); } static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16BE(const char *s, Py_ssize_t size, const char *errors) { int byteorder = 1; return PyUnicode_DecodeUTF16(s, size, errors, &byteorder); } /* decode_c_string.proto */ static CYTHON_INLINE PyObject* __Pyx_decode_c_string( const char* cstring, Py_ssize_t start, Py_ssize_t stop, const char* encoding, const char* errors, PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)); /* GetAttr3.proto */ static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *); /* SwapException.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_ExceptionSwap(type, value, tb) __Pyx__ExceptionSwap(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #else static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb); #endif /* Import.proto */ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); /* FastTypeChecks.proto */ #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b); static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type); static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2); #else #define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) #define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type) #define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2)) #endif #define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) static CYTHON_UNUSED int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ /* ListCompAppend.proto */ #if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) { PyListObject* L = (PyListObject*) list; Py_ssize_t len = Py_SIZE(list); if (likely(L->allocated > len)) { Py_INCREF(x); PyList_SET_ITEM(list, len, x); Py_SIZE(list) = len+1; return 0; } return PyList_Append(list, x); } #else #define __Pyx_ListComp_Append(L,x) PyList_Append(L,x) #endif /* PyIntBinop.proto */ #if !CYTHON_COMPILING_IN_PYPY static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check); #else #define __Pyx_PyInt_AddObjC(op1, op2, intval, inplace, zerodivision_check)\ (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2)) #endif /* ListExtend.proto */ static CYTHON_INLINE int __Pyx_PyList_Extend(PyObject* L, PyObject* v) { #if CYTHON_COMPILING_IN_CPYTHON PyObject* none = _PyList_Extend((PyListObject*)L, v); if (unlikely(!none)) return -1; Py_DECREF(none); return 0; #else return PyList_SetSlice(L, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, v); #endif } /* None.proto */ static CYTHON_INLINE long __Pyx_div_long(long, long); /* WriteUnraisableException.proto */ static void __Pyx_WriteUnraisable(const char *name, int clineno, int lineno, const char *filename, int full_traceback, int nogil); /* ImportFrom.proto */ static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name); /* HasAttr.proto */ static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *); /* PyObject_GenericGetAttrNoDict.proto */ #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name); #else #define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr #endif /* PyObject_GenericGetAttr.proto */ #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name); #else #define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr #endif /* SetVTable.proto */ static int __Pyx_SetVtable(PyObject *dict, void *vtable); /* SetupReduce.proto */ static int __Pyx_setup_reduce(PyObject* type_obj); /* TypeImport.proto */ #ifndef __PYX_HAVE_RT_ImportType_proto #define __PYX_HAVE_RT_ImportType_proto enum __Pyx_ImportType_CheckSize { __Pyx_ImportType_CheckSize_Error = 0, __Pyx_ImportType_CheckSize_Warn = 1, __Pyx_ImportType_CheckSize_Ignore = 2 }; static PyTypeObject *__Pyx_ImportType(PyObject* module, const char *module_name, const char *class_name, size_t size, enum __Pyx_ImportType_CheckSize check_size); #endif /* FetchCommonType.proto */ static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type); /* CythonFunction.proto */ #define __Pyx_CyFunction_USED 1 #define __Pyx_CYFUNCTION_STATICMETHOD 0x01 #define __Pyx_CYFUNCTION_CLASSMETHOD 0x02 #define __Pyx_CYFUNCTION_CCLASS 0x04 #define __Pyx_CyFunction_GetClosure(f)\ (((__pyx_CyFunctionObject *) (f))->func_closure) #define __Pyx_CyFunction_GetClassObj(f)\ (((__pyx_CyFunctionObject *) (f))->func_classobj) #define __Pyx_CyFunction_Defaults(type, f)\ ((type *)(((__pyx_CyFunctionObject *) (f))->defaults)) #define __Pyx_CyFunction_SetDefaultsGetter(f, g)\ ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g) typedef struct { PyCFunctionObject func; #if PY_VERSION_HEX < 0x030500A0 PyObject *func_weakreflist; #endif PyObject *func_dict; PyObject *func_name; PyObject *func_qualname; PyObject *func_doc; PyObject *func_globals; PyObject *func_code; PyObject *func_closure; PyObject *func_classobj; void *defaults; int defaults_pyobjects; int flags; PyObject *defaults_tuple; PyObject *defaults_kwdict; PyObject *(*defaults_getter)(PyObject *); PyObject *func_annotations; } __pyx_CyFunctionObject; static PyTypeObject *__pyx_CyFunctionType = 0; #define __Pyx_CyFunction_Check(obj) (__Pyx_TypeCheck(obj, __pyx_CyFunctionType)) #define __Pyx_CyFunction_NewEx(ml, flags, qualname, self, module, globals, code)\ __Pyx_CyFunction_New(__pyx_CyFunctionType, ml, flags, qualname, self, module, globals, code) static PyObject *__Pyx_CyFunction_New(PyTypeObject *, PyMethodDef *ml, int flags, PyObject* qualname, PyObject *self, PyObject *module, PyObject *globals, PyObject* code); static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *m, size_t size, int pyobjects); static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m, PyObject *tuple); static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m, PyObject *dict); static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m, PyObject *dict); static int __pyx_CyFunction_init(void); /* FusedFunction.proto */ typedef struct { __pyx_CyFunctionObject func; PyObject *__signatures__; PyObject *type; PyObject *self; } __pyx_FusedFunctionObject; #define __pyx_FusedFunction_NewEx(ml, flags, qualname, self, module, globals, code)\ __pyx_FusedFunction_New(__pyx_FusedFunctionType, ml, flags, qualname, self, module, globals, code) static PyObject *__pyx_FusedFunction_New(PyTypeObject *type, PyMethodDef *ml, int flags, PyObject *qualname, PyObject *self, PyObject *module, PyObject *globals, PyObject *code); static int __pyx_FusedFunction_clear(__pyx_FusedFunctionObject *self); static PyTypeObject *__pyx_FusedFunctionType = NULL; static int __pyx_FusedFunction_init(void); #define __Pyx_FusedFunction_USED /* CLineInTraceback.proto */ #ifdef CYTHON_CLINE_IN_TRACEBACK #define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0) #else static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line); #endif /* CodeObjectCache.proto */ typedef struct { PyCodeObject* code_object; int code_line; } __Pyx_CodeObjectCacheEntry; struct __Pyx_CodeObjectCache { int count; int max_count; __Pyx_CodeObjectCacheEntry* entries; }; static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL}; static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); static PyCodeObject *__pyx_find_code_object(int code_line); static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); /* AddTraceback.proto */ static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename); #if PY_MAJOR_VERSION < 3 static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags); static void __Pyx_ReleaseBuffer(Py_buffer *view); #else #define __Pyx_GetBuffer PyObject_GetBuffer #define __Pyx_ReleaseBuffer PyBuffer_Release #endif /* BufferStructDeclare.proto */ typedef struct { Py_ssize_t shape, strides, suboffsets; } __Pyx_Buf_DimInfo; typedef struct { size_t refcount; Py_buffer pybuffer; } __Pyx_Buffer; typedef struct { __Pyx_Buffer *rcbuffer; char *data; __Pyx_Buf_DimInfo diminfo[8]; } __Pyx_LocalBuf_ND; /* MemviewSliceIsContig.proto */ static int __pyx_memviewslice_is_contig(const __Pyx_memviewslice mvs, char order, int ndim); /* OverlappingSlices.proto */ static int __pyx_slices_overlap(__Pyx_memviewslice *slice1, __Pyx_memviewslice *slice2, int ndim, size_t itemsize); /* Capsule.proto */ static CYTHON_INLINE PyObject *__pyx_capsule_create(void *p, const char *sig); /* IsLittleEndian.proto */ static CYTHON_INLINE int __Pyx_Is_Little_Endian(void); /* BufferFormatCheck.proto */ static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts); static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx, __Pyx_BufFmt_StackElem* stack, __Pyx_TypeInfo* type); /* TypeInfoCompare.proto */ static int __pyx_typeinfo_cmp(__Pyx_TypeInfo *a, __Pyx_TypeInfo *b); /* MemviewSliceValidateAndInit.proto */ static int __Pyx_ValidateAndInit_memviewslice( int *axes_specs, int c_or_f_flag, int buf_flags, int ndim, __Pyx_TypeInfo *dtype, __Pyx_BufFmt_StackElem stack[], __Pyx_memviewslice *memviewslice, PyObject *original_obj); /* ObjectToMemviewSlice.proto */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(PyObject *, int writable_flag); /* ObjectToMemviewSlice.proto */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(PyObject *, int writable_flag); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); /* MemviewDtypeToObject.proto */ static CYTHON_INLINE PyObject *__pyx_memview_get_nn___pyx_t_5numpy_float32_t(const char *itemp); static CYTHON_INLINE int __pyx_memview_set_nn___pyx_t_5numpy_float32_t(const char *itemp, PyObject *obj); /* MemviewDtypeToObject.proto */ static CYTHON_INLINE PyObject *__pyx_memview_get_nn___pyx_t_5numpy_float64_t(const char *itemp); static CYTHON_INLINE int __pyx_memview_set_nn___pyx_t_5numpy_float64_t(const char *itemp, PyObject *obj); /* RealImag.proto */ #if CYTHON_CCOMPLEX #ifdef __cplusplus #define __Pyx_CREAL(z) ((z).real()) #define __Pyx_CIMAG(z) ((z).imag()) #else #define __Pyx_CREAL(z) (__real__(z)) #define __Pyx_CIMAG(z) (__imag__(z)) #endif #else #define __Pyx_CREAL(z) ((z).real) #define __Pyx_CIMAG(z) ((z).imag) #endif #if defined(__cplusplus) && CYTHON_CCOMPLEX\ && (defined(_WIN32) || defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 5 || __GNUC__ == 4 && __GNUC_MINOR__ >= 4 )) || __cplusplus >= 201103) #define __Pyx_SET_CREAL(z,x) ((z).real(x)) #define __Pyx_SET_CIMAG(z,y) ((z).imag(y)) #else #define __Pyx_SET_CREAL(z,x) __Pyx_CREAL(z) = (x) #define __Pyx_SET_CIMAG(z,y) __Pyx_CIMAG(z) = (y) #endif /* Arithmetic.proto */ #if CYTHON_CCOMPLEX #define __Pyx_c_eq_float(a, b) ((a)==(b)) #define __Pyx_c_sum_float(a, b) ((a)+(b)) #define __Pyx_c_diff_float(a, b) ((a)-(b)) #define __Pyx_c_prod_float(a, b) ((a)*(b)) #define __Pyx_c_quot_float(a, b) ((a)/(b)) #define __Pyx_c_neg_float(a) (-(a)) #ifdef __cplusplus #define __Pyx_c_is_zero_float(z) ((z)==(float)0) #define __Pyx_c_conj_float(z) (::std::conj(z)) #if 1 #define __Pyx_c_abs_float(z) (::std::abs(z)) #define __Pyx_c_pow_float(a, b) (::std::pow(a, b)) #endif #else #define __Pyx_c_is_zero_float(z) ((z)==0) #define __Pyx_c_conj_float(z) (conjf(z)) #if 1 #define __Pyx_c_abs_float(z) (cabsf(z)) #define __Pyx_c_pow_float(a, b) (cpowf(a, b)) #endif #endif #else static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex); static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex); #if 1 static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex, __pyx_t_float_complex); #endif #endif /* Arithmetic.proto */ #if CYTHON_CCOMPLEX #define __Pyx_c_eq_double(a, b) ((a)==(b)) #define __Pyx_c_sum_double(a, b) ((a)+(b)) #define __Pyx_c_diff_double(a, b) ((a)-(b)) #define __Pyx_c_prod_double(a, b) ((a)*(b)) #define __Pyx_c_quot_double(a, b) ((a)/(b)) #define __Pyx_c_neg_double(a) (-(a)) #ifdef __cplusplus #define __Pyx_c_is_zero_double(z) ((z)==(double)0) #define __Pyx_c_conj_double(z) (::std::conj(z)) #if 1 #define __Pyx_c_abs_double(z) (::std::abs(z)) #define __Pyx_c_pow_double(a, b) (::std::pow(a, b)) #endif #else #define __Pyx_c_is_zero_double(z) ((z)==0) #define __Pyx_c_conj_double(z) (conj(z)) #if 1 #define __Pyx_c_abs_double(z) (cabs(z)) #define __Pyx_c_pow_double(a, b) (cpow(a, b)) #endif #endif #else static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex); static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex); #if 1 static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex, __pyx_t_double_complex); #endif #endif /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value); /* MemviewSliceCopyTemplate.proto */ static __Pyx_memviewslice __pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs, const char *mode, int ndim, size_t sizeof_dtype, int contig_flag, int dtype_is_object); /* CIntFromPy.proto */ static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); /* BytesContains.proto */ static CYTHON_INLINE int __Pyx_BytesContains(PyObject* bytes, char character); /* ImportNumPyArray.proto */ static PyObject *__pyx_numpy_ndarray = NULL; static PyObject* __Pyx_ImportNumPyArrayTypeIfAvailable(void); /* CIntFromPy.proto */ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *); /* CheckBinaryVersion.proto */ static int __Pyx_check_binary_version(void); /* FunctionExport.proto */ static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *sig); /* VoidPtrImport.proto */ static int __Pyx_ImportVoidPtr(PyObject *module, const char *name, void **p, const char *sig); /* FunctionImport.proto */ static int __Pyx_ImportFunction(PyObject *module, const char *funcname, void (**f)(void), const char *sig); /* InitStrings.proto */ static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *__pyx_v_self); /* proto*/ static char *__pyx_memoryview_get_item_pointer(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index); /* proto*/ static PyObject *__pyx_memoryview_is_slice(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj); /* proto*/ static PyObject *__pyx_memoryview_setitem_slice_assignment(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_dst, PyObject *__pyx_v_src); /* proto*/ static PyObject *__pyx_memoryview_setitem_slice_assign_scalar(struct __pyx_memoryview_obj *__pyx_v_self, struct __pyx_memoryview_obj *__pyx_v_dst, PyObject *__pyx_v_value); /* proto*/ static PyObject *__pyx_memoryview_setitem_indexed(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /* proto*/ static PyObject *__pyx_memoryview_convert_item_to_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp); /* proto*/ static PyObject *__pyx_memoryview_assign_item_from_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value); /* proto*/ static PyObject *__pyx_memoryviewslice_convert_item_to_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp); /* proto*/ static PyObject *__pyx_memoryviewslice_assign_item_from_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value); /* proto*/ /* Module declarations from 'pywt._extensions' */ /* Module declarations from 'pywt._extensions.common' */ /* Module declarations from 'pywt._extensions.wavelet' */ /* Module declarations from 'cpython.buffer' */ /* Module declarations from 'libc.string' */ /* Module declarations from 'libc.stdio' */ /* Module declarations from '__builtin__' */ /* Module declarations from 'cpython.type' */ static PyTypeObject *__pyx_ptype_7cpython_4type_type = 0; /* Module declarations from 'cpython' */ /* Module declarations from 'cpython.object' */ /* Module declarations from 'cpython.ref' */ /* Module declarations from 'cpython.mem' */ /* Module declarations from 'numpy' */ /* Module declarations from 'numpy' */ static PyTypeObject *__pyx_ptype_5numpy_dtype = 0; static PyTypeObject *__pyx_ptype_5numpy_flatiter = 0; static PyTypeObject *__pyx_ptype_5numpy_broadcast = 0; static PyTypeObject *__pyx_ptype_5numpy_ndarray = 0; static PyTypeObject *__pyx_ptype_5numpy_ufunc = 0; static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *, char *, char *, int *); /*proto*/ /* Module declarations from 'pywt._extensions._pywt' */ static PyTypeObject *__pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet = 0; static PyTypeObject *__pyx_ptype_4pywt_11_extensions_5_pywt_ContinuousWavelet = 0; static int *__pyx_vp_4pywt_11_extensions_5_pywt_have_c99_complex = 0; #define __pyx_v_4pywt_11_extensions_5_pywt_have_c99_complex (*__pyx_vp_4pywt_11_extensions_5_pywt_have_c99_complex) static PyArray_Descr *(*__pyx_f_4pywt_11_extensions_5_pywt__check_dtype)(PyObject *, int __pyx_skip_dispatch); /*proto*/ /* Module declarations from 'pywt._extensions.c_wt' */ /* Module declarations from 'pywt._extensions._cwt' */ static PyTypeObject *__pyx_array_type = 0; static PyTypeObject *__pyx_MemviewEnum_type = 0; static PyTypeObject *__pyx_memoryview_type = 0; static PyTypeObject *__pyx_memoryviewslice_type = 0; static PyObject *generic = 0; static PyObject *strided = 0; static PyObject *indirect = 0; static PyObject *contiguous = 0; static PyObject *indirect_contiguous = 0; static int __pyx_memoryview_thread_locks_used; static PyThread_type_lock __pyx_memoryview_thread_locks[8]; static PyObject *__pyx_fuse_0__pyx_f_4pywt_11_extensions_4_cwt_cwt_psi_single(__Pyx_memviewslice, struct ContinuousWaveletObject *, size_t, int __pyx_skip_dispatch); /*proto*/ static PyObject *__pyx_fuse_1__pyx_f_4pywt_11_extensions_4_cwt_cwt_psi_single(__Pyx_memviewslice, struct ContinuousWaveletObject *, size_t, int __pyx_skip_dispatch); /*proto*/ static struct __pyx_array_obj *__pyx_array_new(PyObject *, Py_ssize_t, char *, char *, char *); /*proto*/ static void *__pyx_align_pointer(void *, size_t); /*proto*/ static PyObject *__pyx_memoryview_new(PyObject *, int, int, __Pyx_TypeInfo *); /*proto*/ static CYTHON_INLINE int __pyx_memoryview_check(PyObject *); /*proto*/ static PyObject *_unellipsify(PyObject *, int); /*proto*/ static PyObject *assert_direct_dimensions(Py_ssize_t *, int); /*proto*/ static struct __pyx_memoryview_obj *__pyx_memview_slice(struct __pyx_memoryview_obj *, PyObject *); /*proto*/ static int __pyx_memoryview_slice_memviewslice(__Pyx_memviewslice *, Py_ssize_t, Py_ssize_t, Py_ssize_t, int, int, int *, Py_ssize_t, Py_ssize_t, Py_ssize_t, int, int, int, int); /*proto*/ static char *__pyx_pybuffer_index(Py_buffer *, char *, Py_ssize_t, Py_ssize_t); /*proto*/ static int __pyx_memslice_transpose(__Pyx_memviewslice *); /*proto*/ static PyObject *__pyx_memoryview_fromslice(__Pyx_memviewslice, int, PyObject *(*)(char *), int (*)(char *, PyObject *), int); /*proto*/ static __Pyx_memviewslice *__pyx_memoryview_get_slice_from_memoryview(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/ static void __pyx_memoryview_slice_copy(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/ static PyObject *__pyx_memoryview_copy_object(struct __pyx_memoryview_obj *); /*proto*/ static PyObject *__pyx_memoryview_copy_object_from_slice(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/ static Py_ssize_t abs_py_ssize_t(Py_ssize_t); /*proto*/ static char __pyx_get_best_slice_order(__Pyx_memviewslice *, int); /*proto*/ static void _copy_strided_to_strided(char *, Py_ssize_t *, char *, Py_ssize_t *, Py_ssize_t *, Py_ssize_t *, int, size_t); /*proto*/ static void copy_strided_to_strided(__Pyx_memviewslice *, __Pyx_memviewslice *, int, size_t); /*proto*/ static Py_ssize_t __pyx_memoryview_slice_get_size(__Pyx_memviewslice *, int); /*proto*/ static Py_ssize_t __pyx_fill_contig_strides_array(Py_ssize_t *, Py_ssize_t *, Py_ssize_t, int, char); /*proto*/ static void *__pyx_memoryview_copy_data_to_temp(__Pyx_memviewslice *, __Pyx_memviewslice *, char, int); /*proto*/ static int __pyx_memoryview_err_extents(int, Py_ssize_t, Py_ssize_t); /*proto*/ static int __pyx_memoryview_err_dim(PyObject *, char *, int); /*proto*/ static int __pyx_memoryview_err(PyObject *, char *); /*proto*/ static int __pyx_memoryview_copy_contents(__Pyx_memviewslice, __Pyx_memviewslice, int, int, int); /*proto*/ static void __pyx_memoryview_broadcast_leading(__Pyx_memviewslice *, int, int); /*proto*/ static void __pyx_memoryview_refcount_copying(__Pyx_memviewslice *, int, int, int); /*proto*/ static void __pyx_memoryview_refcount_objects_in_slice_with_gil(char *, Py_ssize_t *, Py_ssize_t *, int, int); /*proto*/ static void __pyx_memoryview_refcount_objects_in_slice(char *, Py_ssize_t *, Py_ssize_t *, int, int); /*proto*/ static void __pyx_memoryview_slice_assign_scalar(__Pyx_memviewslice *, int, size_t, void *, int); /*proto*/ static void __pyx_memoryview__slice_assign_scalar(char *, Py_ssize_t *, Py_ssize_t *, int, size_t, void *); /*proto*/ static PyObject *__pyx_unpickle_Enum__set_state(struct __pyx_MemviewEnum_obj *, PyObject *); /*proto*/ static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t = { "float32_t", NULL, sizeof(__pyx_t_5numpy_float32_t), { 0 }, 0, 'R', 0, 0 }; static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t = { "float64_t", NULL, sizeof(__pyx_t_5numpy_float64_t), { 0 }, 0, 'R', 0, 0 }; #define __Pyx_MODULE_NAME "pywt._extensions._cwt" extern int __pyx_module_is_main_pywt___extensions___cwt; int __pyx_module_is_main_pywt___extensions___cwt = 0; /* Implementation of 'pywt._extensions._cwt' */ static PyObject *__pyx_builtin_TypeError; static PyObject *__pyx_builtin_range; static PyObject *__pyx_builtin_RuntimeError; static PyObject *__pyx_builtin_ValueError; static PyObject *__pyx_builtin_ImportError; static PyObject *__pyx_builtin_MemoryError; static PyObject *__pyx_builtin_enumerate; static PyObject *__pyx_builtin_Ellipsis; static PyObject *__pyx_builtin_id; static PyObject *__pyx_builtin_IndexError; static const char __pyx_k_[] = "()"; static const char __pyx_k_O[] = "O"; static const char __pyx_k_c[] = "c"; static const char __pyx_k_s[] = "s"; static const char __pyx_k__2[] = "|"; static const char __pyx_k_id[] = "id"; static const char __pyx_k_np[] = "np"; static const char __pyx_k_new[] = "__new__"; static const char __pyx_k_obj[] = "obj"; static const char __pyx_k_args[] = "args"; static const char __pyx_k_base[] = "base"; static const char __pyx_k_cgau[] = "cgau"; static const char __pyx_k_cmor[] = "cmor"; static const char __pyx_k_data[] = "data"; static const char __pyx_k_dict[] = "__dict__"; static const char __pyx_k_fbsp[] = "fbsp"; static const char __pyx_k_gaus[] = "gaus"; static const char __pyx_k_kind[] = "kind"; static const char __pyx_k_main[] = "__main__"; static const char __pyx_k_mexh[] = "mexh"; static const char __pyx_k_mode[] = "mode"; static const char __pyx_k_morl[] = "morl"; static const char __pyx_k_name[] = "name"; static const char __pyx_k_ndim[] = "ndim"; static const char __pyx_k_pack[] = "pack"; static const char __pyx_k_shan[] = "shan"; static const char __pyx_k_size[] = "size"; static const char __pyx_k_step[] = "step"; static const char __pyx_k_stop[] = "stop"; static const char __pyx_k_test[] = "__test__"; static const char __pyx_k_ASCII[] = "ASCII"; static const char __pyx_k_class[] = "__class__"; static const char __pyx_k_dtype[] = "dtype"; static const char __pyx_k_error[] = "error"; static const char __pyx_k_flags[] = "flags"; static const char __pyx_k_numpy[] = "numpy"; static const char __pyx_k_range[] = "range"; static const char __pyx_k_shape[] = "shape"; static const char __pyx_k_split[] = "split"; static const char __pyx_k_start[] = "start"; static const char __pyx_k_strip[] = "strip"; static const char __pyx_k_zeros[] = "zeros"; static const char __pyx_k_encode[] = "encode"; static const char __pyx_k_format[] = "format"; static const char __pyx_k_import[] = "__import__"; static const char __pyx_k_kwargs[] = "kwargs"; static const char __pyx_k_name_2[] = "__name__"; static const char __pyx_k_pickle[] = "pickle"; static const char __pyx_k_reduce[] = "__reduce__"; static const char __pyx_k_struct[] = "struct"; static const char __pyx_k_unpack[] = "unpack"; static const char __pyx_k_update[] = "update"; static const char __pyx_k_float32[] = "float32"; static const char __pyx_k_float64[] = "float64"; static const char __pyx_k_fortran[] = "fortran"; static const char __pyx_k_memview[] = "memview"; static const char __pyx_k_wavelet[] = "wavelet"; static const char __pyx_k_Ellipsis[] = "Ellipsis"; static const char __pyx_k_defaults[] = "defaults"; static const char __pyx_k_getstate[] = "__getstate__"; static const char __pyx_k_itemsize[] = "itemsize"; static const char __pyx_k_pyx_type[] = "__pyx_type"; static const char __pyx_k_setstate[] = "__setstate__"; static const char __pyx_k_TypeError[] = "TypeError"; static const char __pyx_k_enumerate[] = "enumerate"; static const char __pyx_k_float32_t[] = "float32_t"; static const char __pyx_k_float64_t[] = "float64_t"; static const char __pyx_k_pyx_state[] = "__pyx_state"; static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; static const char __pyx_k_IndexError[] = "IndexError"; static const char __pyx_k_ValueError[] = "ValueError"; static const char __pyx_k_fbsp_order[] = "fbsp_order"; static const char __pyx_k_output_len[] = "output_len"; static const char __pyx_k_pyx_result[] = "__pyx_result"; static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; static const char __pyx_k_signatures[] = "signatures"; static const char __pyx_k_ImportError[] = "ImportError"; static const char __pyx_k_MemoryError[] = "MemoryError"; static const char __pyx_k_PickleError[] = "PickleError"; static const char __pyx_k_RuntimeError[] = "RuntimeError"; static const char __pyx_k_pyx_checksum[] = "__pyx_checksum"; static const char __pyx_k_stringsource[] = "stringsource"; static const char __pyx_k_family_number[] = "family_number"; static const char __pyx_k_pyx_getbuffer[] = "__pyx_getbuffer"; static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; static const char __pyx_k_cwt_psi_single[] = "cwt_psi_single"; static const char __pyx_k_View_MemoryView[] = "View.MemoryView"; static const char __pyx_k_allocate_buffer[] = "allocate_buffer"; static const char __pyx_k_dtype_is_object[] = "dtype_is_object"; static const char __pyx_k_pyx_PickleError[] = "__pyx_PickleError"; static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; static const char __pyx_k_center_frequency[] = "center_frequency"; static const char __pyx_k_pyx_unpickle_Enum[] = "__pyx_unpickle_Enum"; static const char __pyx_k_short_family_name[] = "short_family_name"; static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; static const char __pyx_k_strided_and_direct[] = ""; static const char __pyx_k_bandwidth_frequency[] = "bandwidth_frequency"; static const char __pyx_k_strided_and_indirect[] = ""; static const char __pyx_k_Invalid_output_length[] = "Invalid output length."; static const char __pyx_k_contiguous_and_direct[] = ""; static const char __pyx_k_pywt__extensions__cwt[] = "pywt._extensions._cwt"; static const char __pyx_k_MemoryView_of_r_object[] = ""; static const char __pyx_k_MemoryView_of_r_at_0x_x[] = ""; static const char __pyx_k_contiguous_and_indirect[] = ""; static const char __pyx_k_Cannot_index_with_type_s[] = "Cannot index with type '%s'"; static const char __pyx_k_pyx_fuse_0cwt_psi_single[] = "__pyx_fuse_0cwt_psi_single"; static const char __pyx_k_pyx_fuse_1cwt_psi_single[] = "__pyx_fuse_1cwt_psi_single"; static const char __pyx_k_Invalid_shape_in_axis_d_d[] = "Invalid shape in axis %d: %d."; static const char __pyx_k_pywt__extensions__cwt_pyx[] = "pywt/_extensions/_cwt.pyx"; static const char __pyx_k_No_matching_signature_found[] = "No matching signature found"; static const char __pyx_k_itemsize_0_for_cython_array[] = "itemsize <= 0 for cython.array"; static const char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous"; static const char __pyx_k_unable_to_allocate_array_data[] = "unable to allocate array data."; static const char __pyx_k_strided_and_direct_or_indirect[] = ""; static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import"; static const char __pyx_k_unknown_dtype_code_in_numpy_pxd[] = "unknown dtype code in numpy.pxd (%d)"; static const char __pyx_k_Buffer_view_does_not_expose_stri[] = "Buffer view does not expose strides"; static const char __pyx_k_Can_only_create_a_buffer_that_is[] = "Can only create a buffer that is contiguous in memory."; static const char __pyx_k_Cannot_assign_to_read_only_memor[] = "Cannot assign to read-only memoryview"; static const char __pyx_k_Cannot_create_writable_memory_vi[] = "Cannot create writable memory view from read-only memoryview"; static const char __pyx_k_Empty_shape_tuple_for_cython_arr[] = "Empty shape tuple for cython.array"; static const char __pyx_k_Expected_at_least_d_argument_s_g[] = "Expected at least %d argument%s, got %d"; static const char __pyx_k_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd"; static const char __pyx_k_Function_call_with_ambiguous_arg[] = "Function call with ambiguous argument types"; static const char __pyx_k_Incompatible_checksums_s_vs_0xb0[] = "Incompatible checksums (%s vs 0xb068931 = (name))"; static const char __pyx_k_Indirect_dimensions_not_supporte[] = "Indirect dimensions not supported"; static const char __pyx_k_Invalid_mode_expected_c_or_fortr[] = "Invalid mode, expected 'c' or 'fortran', got %s"; static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported"; static const char __pyx_k_Out_of_bounds_on_buffer_access_a[] = "Out of bounds on buffer access (axis %d)"; static const char __pyx_k_Unable_to_convert_item_to_object[] = "Unable to convert item to object"; static const char __pyx_k_got_differing_extents_in_dimensi[] = "got differing extents in dimension %d (got %d and %d)"; static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous"; static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__"; static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import"; static const char __pyx_k_unable_to_allocate_shape_and_str[] = "unable to allocate shape and strides."; static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; static PyObject *__pyx_kp_s_; static PyObject *__pyx_n_s_ASCII; static PyObject *__pyx_kp_s_Buffer_view_does_not_expose_stri; static PyObject *__pyx_kp_s_Can_only_create_a_buffer_that_is; static PyObject *__pyx_kp_s_Cannot_assign_to_read_only_memor; static PyObject *__pyx_kp_s_Cannot_create_writable_memory_vi; static PyObject *__pyx_kp_s_Cannot_index_with_type_s; static PyObject *__pyx_n_s_Ellipsis; static PyObject *__pyx_kp_s_Empty_shape_tuple_for_cython_arr; static PyObject *__pyx_kp_s_Expected_at_least_d_argument_s_g; static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; static PyObject *__pyx_kp_s_Function_call_with_ambiguous_arg; static PyObject *__pyx_n_s_ImportError; static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xb0; static PyObject *__pyx_n_s_IndexError; static PyObject *__pyx_kp_s_Indirect_dimensions_not_supporte; static PyObject *__pyx_kp_s_Invalid_mode_expected_c_or_fortr; static PyObject *__pyx_kp_u_Invalid_output_length; static PyObject *__pyx_kp_s_Invalid_shape_in_axis_d_d; static PyObject *__pyx_n_s_MemoryError; static PyObject *__pyx_kp_s_MemoryView_of_r_at_0x_x; static PyObject *__pyx_kp_s_MemoryView_of_r_object; static PyObject *__pyx_kp_s_No_matching_signature_found; static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; static PyObject *__pyx_n_b_O; static PyObject *__pyx_kp_s_Out_of_bounds_on_buffer_access_a; static PyObject *__pyx_n_s_PickleError; static PyObject *__pyx_n_s_RuntimeError; static PyObject *__pyx_n_s_TypeError; static PyObject *__pyx_kp_s_Unable_to_convert_item_to_object; static PyObject *__pyx_n_s_ValueError; static PyObject *__pyx_n_s_View_MemoryView; static PyObject *__pyx_kp_s__2; static PyObject *__pyx_n_s_allocate_buffer; static PyObject *__pyx_n_s_args; static PyObject *__pyx_n_s_bandwidth_frequency; static PyObject *__pyx_n_s_base; static PyObject *__pyx_n_s_c; static PyObject *__pyx_n_u_c; static PyObject *__pyx_n_s_center_frequency; static PyObject *__pyx_n_u_cgau; static PyObject *__pyx_n_s_class; static PyObject *__pyx_n_s_cline_in_traceback; static PyObject *__pyx_n_u_cmor; static PyObject *__pyx_kp_s_contiguous_and_direct; static PyObject *__pyx_kp_s_contiguous_and_indirect; static PyObject *__pyx_n_s_cwt_psi_single; static PyObject *__pyx_n_s_data; static PyObject *__pyx_n_s_defaults; static PyObject *__pyx_n_s_dict; static PyObject *__pyx_n_s_dtype; static PyObject *__pyx_n_s_dtype_is_object; static PyObject *__pyx_n_s_encode; static PyObject *__pyx_n_s_enumerate; static PyObject *__pyx_n_s_error; static PyObject *__pyx_n_s_family_number; static PyObject *__pyx_n_u_fbsp; static PyObject *__pyx_n_s_fbsp_order; static PyObject *__pyx_n_s_flags; static PyObject *__pyx_n_s_float32; static PyObject *__pyx_n_s_float32_t; static PyObject *__pyx_n_s_float64; static PyObject *__pyx_n_s_float64_t; static PyObject *__pyx_n_s_format; static PyObject *__pyx_n_s_fortran; static PyObject *__pyx_n_u_fortran; static PyObject *__pyx_n_u_gaus; static PyObject *__pyx_n_s_getstate; static PyObject *__pyx_kp_s_got_differing_extents_in_dimensi; static PyObject *__pyx_n_s_id; static PyObject *__pyx_n_s_import; static PyObject *__pyx_n_s_itemsize; static PyObject *__pyx_kp_s_itemsize_0_for_cython_array; static PyObject *__pyx_n_s_kind; static PyObject *__pyx_n_s_kwargs; static PyObject *__pyx_n_s_main; static PyObject *__pyx_n_s_memview; static PyObject *__pyx_n_u_mexh; static PyObject *__pyx_n_s_mode; static PyObject *__pyx_n_u_morl; static PyObject *__pyx_n_s_name; static PyObject *__pyx_n_s_name_2; static PyObject *__pyx_kp_u_ndarray_is_not_C_contiguous; static PyObject *__pyx_kp_u_ndarray_is_not_Fortran_contiguou; static PyObject *__pyx_n_s_ndim; static PyObject *__pyx_n_s_new; static PyObject *__pyx_kp_s_no_default___reduce___due_to_non; static PyObject *__pyx_n_s_np; static PyObject *__pyx_n_s_numpy; static PyObject *__pyx_kp_u_numpy_core_multiarray_failed_to; static PyObject *__pyx_kp_u_numpy_core_umath_failed_to_impor; static PyObject *__pyx_n_s_obj; static PyObject *__pyx_n_s_output_len; static PyObject *__pyx_n_s_pack; static PyObject *__pyx_n_s_pickle; static PyObject *__pyx_n_s_pywt__extensions__cwt; static PyObject *__pyx_kp_s_pywt__extensions__cwt_pyx; static PyObject *__pyx_n_s_pyx_PickleError; static PyObject *__pyx_n_s_pyx_checksum; static PyObject *__pyx_n_s_pyx_fuse_0cwt_psi_single; static PyObject *__pyx_n_s_pyx_fuse_1cwt_psi_single; static PyObject *__pyx_n_s_pyx_getbuffer; static PyObject *__pyx_n_s_pyx_result; static PyObject *__pyx_n_s_pyx_state; static PyObject *__pyx_n_s_pyx_type; static PyObject *__pyx_n_s_pyx_unpickle_Enum; static PyObject *__pyx_n_s_pyx_vtable; static PyObject *__pyx_n_s_range; static PyObject *__pyx_n_s_reduce; static PyObject *__pyx_n_s_reduce_cython; static PyObject *__pyx_n_s_reduce_ex; static PyObject *__pyx_n_s_s; static PyObject *__pyx_n_s_setstate; static PyObject *__pyx_n_s_setstate_cython; static PyObject *__pyx_n_u_shan; static PyObject *__pyx_n_s_shape; static PyObject *__pyx_n_s_short_family_name; static PyObject *__pyx_n_s_signatures; static PyObject *__pyx_n_s_size; static PyObject *__pyx_n_s_split; static PyObject *__pyx_n_s_start; static PyObject *__pyx_n_s_step; static PyObject *__pyx_n_s_stop; static PyObject *__pyx_kp_s_strided_and_direct; static PyObject *__pyx_kp_s_strided_and_direct_or_indirect; static PyObject *__pyx_kp_s_strided_and_indirect; static PyObject *__pyx_kp_s_stringsource; static PyObject *__pyx_n_s_strip; static PyObject *__pyx_n_s_struct; static PyObject *__pyx_n_s_test; static PyObject *__pyx_kp_s_unable_to_allocate_array_data; static PyObject *__pyx_kp_s_unable_to_allocate_shape_and_str; static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; static PyObject *__pyx_n_s_unpack; static PyObject *__pyx_n_s_update; static PyObject *__pyx_n_s_wavelet; static PyObject *__pyx_n_s_zeros; static PyObject *__pyx_pf_4pywt_11_extensions_4_cwt_cwt_psi_single(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_cwt_2__pyx_fuse_0cwt_psi_single(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_data, struct ContinuousWaveletObject *__pyx_v_wavelet, size_t __pyx_v_output_len); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_cwt_4__pyx_fuse_1cwt_psi_single(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_data, struct ContinuousWaveletObject *__pyx_v_wavelet, size_t __pyx_v_output_len); /* proto */ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info); /* proto */ static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, PyObject *__pyx_v_format, PyObject *__pyx_v_mode, int __pyx_v_allocate_buffer); /* proto */ static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(struct __pyx_array_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */ static void __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(struct __pyx_array_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_5array_7memview___get__(struct __pyx_array_obj *__pyx_v_self); /* proto */ static Py_ssize_t __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(struct __pyx_array_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_attr); /* proto */ static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item); /* proto */ static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value); /* proto */ static PyObject *__pyx_pf___pyx_array___reduce_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf___pyx_array_2__setstate_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static int __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v_name); /* proto */ static PyObject *__pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(struct __pyx_MemviewEnum_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf___pyx_MemviewEnum___reduce_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf___pyx_MemviewEnum_2__setstate_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */ static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_v_flags, int __pyx_v_dtype_is_object); /* proto */ static void __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index); /* proto */ static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /* proto */ static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(struct __pyx_memoryview_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static Py_ssize_t __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf___pyx_memoryview___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf___pyx_memoryview_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static void __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf___pyx_memoryviewslice___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf___pyx_memoryviewslice_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_tp_new_array(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_Enum(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_memoryview(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new__memoryviewslice(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_int_0; static PyObject *__pyx_int_1; static PyObject *__pyx_int_3; static PyObject *__pyx_int_184977713; static PyObject *__pyx_int_neg_1; static PyObject *__pyx_tuple__3; static PyObject *__pyx_tuple__4; static PyObject *__pyx_tuple__5; static PyObject *__pyx_tuple__6; static PyObject *__pyx_tuple__7; static PyObject *__pyx_tuple__8; static PyObject *__pyx_tuple__9; static PyObject *__pyx_slice__27; static PyObject *__pyx_tuple__10; static PyObject *__pyx_tuple__11; static PyObject *__pyx_tuple__12; static PyObject *__pyx_tuple__13; static PyObject *__pyx_tuple__14; static PyObject *__pyx_tuple__15; static PyObject *__pyx_tuple__16; static PyObject *__pyx_tuple__17; static PyObject *__pyx_tuple__18; static PyObject *__pyx_tuple__19; static PyObject *__pyx_tuple__20; static PyObject *__pyx_tuple__21; static PyObject *__pyx_tuple__22; static PyObject *__pyx_tuple__23; static PyObject *__pyx_tuple__24; static PyObject *__pyx_tuple__25; static PyObject *__pyx_tuple__26; static PyObject *__pyx_tuple__28; static PyObject *__pyx_tuple__29; static PyObject *__pyx_tuple__30; static PyObject *__pyx_tuple__31; static PyObject *__pyx_tuple__33; static PyObject *__pyx_tuple__34; static PyObject *__pyx_tuple__35; static PyObject *__pyx_tuple__36; static PyObject *__pyx_tuple__37; static PyObject *__pyx_tuple__38; static PyObject *__pyx_codeobj__32; static PyObject *__pyx_codeobj__39; /* Late includes */ /* "pywt/_extensions/_cwt.pyx":13 * * * cpdef cwt_psi_single(data_t[::1] data, ContinuousWavelet wavelet, size_t output_len): # <<<<<<<<<<<<<< * cdef np.ndarray psi, psi_r, psi_i * cdef size_t data_size = data.size */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_4_cwt_1cwt_psi_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_4pywt_11_extensions_4_cwt_1cwt_psi_single = {"cwt_psi_single", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_4_cwt_1cwt_psi_single, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_4pywt_11_extensions_4_cwt_1cwt_psi_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_signatures = 0; PyObject *__pyx_v_args = 0; PyObject *__pyx_v_kwargs = 0; CYTHON_UNUSED PyObject *__pyx_v_defaults = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0}; PyObject* values[4] = {0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 13, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(0, 13, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(0, 13, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 13, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); } __pyx_v_signatures = values[0]; __pyx_v_args = values[1]; __pyx_v_kwargs = values[2]; __pyx_v_defaults = values[3]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 13, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._cwt.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_4_cwt_cwt_psi_single(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_cwt_cwt_psi_single(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) { PyObject *__pyx_v_dest_sig = NULL; Py_ssize_t __pyx_v_i; PyTypeObject *__pyx_v_ndarray = 0; __Pyx_memviewslice __pyx_v_memslice; Py_ssize_t __pyx_v_itemsize; CYTHON_UNUSED int __pyx_v_dtype_signed; char __pyx_v_kind; PyObject *__pyx_v_arg = NULL; PyObject *__pyx_v_dtype = NULL; PyObject *__pyx_v_arg_base = NULL; PyObject *__pyx_v_candidates = NULL; PyObject *__pyx_v_sig = NULL; int __pyx_v_match_found; PyObject *__pyx_v_src_sig = NULL; PyObject *__pyx_v_dst_type = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; Py_ssize_t __pyx_t_5; PyObject *__pyx_t_6 = NULL; long __pyx_t_7; __Pyx_memviewslice __pyx_t_8; Py_ssize_t __pyx_t_9; int __pyx_t_10; int __pyx_t_11; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; Py_ssize_t __pyx_t_15; Py_ssize_t __pyx_t_16; Py_ssize_t __pyx_t_17; int __pyx_t_18; __Pyx_RefNannySetupContext("cwt_psi_single", 0); __Pyx_INCREF(__pyx_v_kwargs); __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyList_SET_ITEM(__pyx_t_1, 0, Py_None); __pyx_v_dest_sig = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__pyx_v_kwargs != Py_None); __pyx_t_4 = (__pyx_t_3 != 0); if (__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L4_bool_binop_done; } __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 13, __pyx_L1_error) __pyx_t_3 = ((!__pyx_t_4) != 0); __pyx_t_2 = __pyx_t_3; __pyx_L4_bool_binop_done:; if (__pyx_t_2) { __Pyx_INCREF(Py_None); __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None); } __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_itemsize = -1L; if (unlikely(__pyx_v_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 13, __pyx_L1_error) } __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 13, __pyx_L1_error) __pyx_t_2 = ((0 < __pyx_t_5) != 0); if (__pyx_t_2) { if (unlikely(__pyx_v_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 13, __pyx_L1_error) } __pyx_t_1 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 0); __Pyx_INCREF(__pyx_t_1); __pyx_v_arg = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L6; } __pyx_t_3 = (__pyx_v_kwargs != Py_None); __pyx_t_4 = (__pyx_t_3 != 0); if (__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L7_bool_binop_done; } if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(0, 13, __pyx_L1_error) } __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_data, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 13, __pyx_L1_error) __pyx_t_3 = (__pyx_t_4 != 0); __pyx_t_2 = __pyx_t_3; __pyx_L7_bool_binop_done:; if (__pyx_t_2) { if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 13, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_arg = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L6; } /*else*/ { if (unlikely(__pyx_v_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 13, __pyx_L1_error) } __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 13, __pyx_L1_error) __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_3); __Pyx_INCREF(__pyx_n_s_s); __Pyx_GIVEREF(__pyx_n_s_s); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(0, 13, __pyx_L1_error) } __pyx_L6:; while (1) { __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None)); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_v_dtype = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L12; } __pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_v_arg_base = __pyx_t_6; __pyx_t_6 = 0; __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_v_dtype = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L13; } /*else*/ { __Pyx_INCREF(Py_None); __pyx_v_dtype = Py_None; } __pyx_L13:; goto __pyx_L12; } /*else*/ { __Pyx_INCREF(Py_None); __pyx_v_dtype = Py_None; } __pyx_L12:; __pyx_v_itemsize = -1L; __pyx_t_2 = (__pyx_v_dtype != Py_None); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_itemsize = __pyx_t_5; __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_kind = __pyx_t_7; __pyx_v_dtype_signed = (__pyx_v_kind == 'i'); switch (__pyx_v_kind) { case 'i': case 'u': break; case 'f': __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0); if (__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L16_bool_binop_done; } __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L16_bool_binop_done:; if (__pyx_t_3) { if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 13, __pyx_L1_error) goto __pyx_L10_break; } __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0); if (__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L19_bool_binop_done; } __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L19_bool_binop_done:; if (__pyx_t_3) { if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 13, __pyx_L1_error) goto __pyx_L10_break; } break; case 'c': break; case 'O': break; default: break; } } } __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0); if (!__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L22_bool_binop_done; } __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L22_bool_binop_done:; if (__pyx_t_3) { __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(__pyx_v_arg, 0); __pyx_v_memslice = __pyx_t_8; __pyx_t_3 = (__pyx_v_memslice.memview != 0); if (__pyx_t_3) { __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 13, __pyx_L1_error) goto __pyx_L10_break; } /*else*/ { PyErr_Clear(); } } __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0); if (!__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L26_bool_binop_done; } __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L26_bool_binop_done:; if (__pyx_t_3) { __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0); __pyx_v_memslice = __pyx_t_8; __pyx_t_3 = (__pyx_v_memslice.memview != 0); if (__pyx_t_3) { __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 13, __pyx_L1_error) goto __pyx_L10_break; } /*else*/ { PyErr_Clear(); } } if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 13, __pyx_L1_error) goto __pyx_L10_break; } __pyx_L10_break:; __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_v_candidates = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0; __pyx_t_5 = 0; if (unlikely(__pyx_v_signatures == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(0, 13, __pyx_L1_error) } __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = __pyx_t_1; __pyx_t_1 = 0; while (1) { __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_9, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_10); if (unlikely(__pyx_t_11 == 0)) break; if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1); __pyx_t_1 = 0; __pyx_v_match_found = 0; __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); } } __pyx_t_12 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_kp_s_) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s_); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); } } __pyx_t_1 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__2); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_15 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 13, __pyx_L1_error) __pyx_t_16 = __pyx_t_15; for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) { __pyx_v_i = __pyx_t_17; __pyx_t_1 = PyList_GET_ITEM(__pyx_v_dest_sig, __pyx_v_i); __Pyx_INCREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__pyx_v_dst_type != Py_None); __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_13 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (__pyx_t_2) { __pyx_v_match_found = 1; goto __pyx_L34; } /*else*/ { __pyx_v_match_found = 0; goto __pyx_L32_break; } __pyx_L34:; } } __pyx_L32_break:; __pyx_t_2 = (__pyx_v_match_found != 0); if (__pyx_t_2) { __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 13, __pyx_L1_error) } } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_candidates) != 0); __pyx_t_3 = ((!__pyx_t_2) != 0); if (__pyx_t_3) { __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(0, 13, __pyx_L1_error) } __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 13, __pyx_L1_error) __pyx_t_3 = ((__pyx_t_9 > 1) != 0); if (__pyx_t_3) { __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(0, 13, __pyx_L1_error) } /*else*/ { __Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_signatures == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 13, __pyx_L1_error) } __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), PyList_GET_ITEM(__pyx_v_candidates, 0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0; } /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_12); __Pyx_XDECREF(__pyx_t_13); __Pyx_XDECREF(__pyx_t_14); __Pyx_AddTraceback("pywt._extensions._cwt.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_dest_sig); __Pyx_XDECREF(__pyx_v_ndarray); __Pyx_XDECREF(__pyx_v_arg); __Pyx_XDECREF(__pyx_v_dtype); __Pyx_XDECREF(__pyx_v_arg_base); __Pyx_XDECREF(__pyx_v_candidates); __Pyx_XDECREF(__pyx_v_sig); __Pyx_XDECREF(__pyx_v_src_sig); __Pyx_XDECREF(__pyx_v_dst_type); __Pyx_XDECREF(__pyx_v_kwargs); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pw_4pywt_11_extensions_4_cwt_3__pyx_fuse_0cwt_psi_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_4_cwt_1cwt_psi_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_fuse_0__pyx_f_4pywt_11_extensions_4_cwt_cwt_psi_single(__Pyx_memviewslice __pyx_v_data, struct ContinuousWaveletObject *__pyx_v_wavelet, size_t __pyx_v_output_len, CYTHON_UNUSED int __pyx_skip_dispatch) { PyArrayObject *__pyx_v_psi = 0; PyArrayObject *__pyx_v_psi_r = 0; PyArrayObject *__pyx_v_psi_i = 0; size_t __pyx_v_data_size; int __pyx_v_family_number; double __pyx_v_bandwidth_frequency; double __pyx_v_center_frequency; int __pyx_v_fbsp_order; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; PyObject *__pyx_t_9 = NULL; Py_ssize_t __pyx_t_10; Py_ssize_t __pyx_t_11; Py_ssize_t __pyx_t_12; Py_ssize_t __pyx_t_13; double __pyx_t_14; Py_ssize_t __pyx_t_15; Py_ssize_t __pyx_t_16; Py_ssize_t __pyx_t_17; __Pyx_RefNannySetupContext("__pyx_fuse_0cwt_psi_single", 0); /* "pywt/_extensions/_cwt.pyx":15 * cpdef cwt_psi_single(data_t[::1] data, ContinuousWavelet wavelet, size_t output_len): * cdef np.ndarray psi, psi_r, psi_i * cdef size_t data_size = data.size # <<<<<<<<<<<<<< * cdef int family_number = 0 * cdef double bandwidth_frequency */ __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_3 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 15, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_data_size = __pyx_t_3; /* "pywt/_extensions/_cwt.pyx":16 * cdef np.ndarray psi, psi_r, psi_i * cdef size_t data_size = data.size * cdef int family_number = 0 # <<<<<<<<<<<<<< * cdef double bandwidth_frequency * cdef double center_frequency */ __pyx_v_family_number = 0; /* "pywt/_extensions/_cwt.pyx":20 * cdef double center_frequency * cdef int fbsp_order * if output_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ __pyx_t_4 = ((__pyx_v_output_len < 1) != 0); if (unlikely(__pyx_t_4)) { /* "pywt/_extensions/_cwt.pyx":21 * cdef int fbsp_order * if output_len < 1: * raise RuntimeError("Invalid output length.") # <<<<<<<<<<<<<< * * #if data_t is np.float64_t: */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 21, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 21, __pyx_L1_error) /* "pywt/_extensions/_cwt.pyx":20 * cdef double center_frequency * cdef int fbsp_order * if output_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ } /* "pywt/_extensions/_cwt.pyx":77 * * elif data_t is np.float32_t: * if wavelet.short_family_name == "gaus": # <<<<<<<<<<<<<< * psi = np.zeros(output_len, np.float32) * family_number = wavelet.family_number */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_short_family_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_gaus, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_4) { /* "pywt/_extensions/_cwt.pyx":78 * elif data_t is np.float32_t: * if wavelet.short_family_name == "gaus": * psi = np.zeros(output_len, np.float32) # <<<<<<<<<<<<<< * family_number = wavelet.family_number * with nogil: */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_float32); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_1, __pyx_t_7}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_1, __pyx_t_7}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_7); __pyx_t_1 = 0; __pyx_t_7 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 78, __pyx_L1_error) __pyx_v_psi = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_cwt.pyx":79 * if wavelet.short_family_name == "gaus": * psi = np.zeros(output_len, np.float32) * family_number = wavelet.family_number # <<<<<<<<<<<<<< * with nogil: * c_wt.float_gaus(&data[0], psi.data, data_size, family_number) */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_family_number); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_family_number = __pyx_t_8; /* "pywt/_extensions/_cwt.pyx":80 * psi = np.zeros(output_len, np.float32) * family_number = wavelet.family_number * with nogil: # <<<<<<<<<<<<<< * c_wt.float_gaus(&data[0], psi.data, data_size, family_number) * return psi */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_cwt.pyx":81 * family_number = wavelet.family_number * with nogil: * c_wt.float_gaus(&data[0], psi.data, data_size, family_number) # <<<<<<<<<<<<<< * return psi * elif wavelet.short_family_name == "mexh": */ __pyx_t_10 = 0; float_gaus((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_data.data) + __pyx_t_10)) )))), ((float *)__pyx_v_psi->data), __pyx_v_data_size, __pyx_v_family_number); } /* "pywt/_extensions/_cwt.pyx":80 * psi = np.zeros(output_len, np.float32) * family_number = wavelet.family_number * with nogil: # <<<<<<<<<<<<<< * c_wt.float_gaus(&data[0], psi.data, data_size, family_number) * return psi */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L7; } __pyx_L7:; } } /* "pywt/_extensions/_cwt.pyx":82 * with nogil: * c_wt.float_gaus(&data[0], psi.data, data_size, family_number) * return psi # <<<<<<<<<<<<<< * elif wavelet.short_family_name == "mexh": * psi = np.zeros(output_len, np.float32) */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_psi)); __pyx_r = ((PyObject *)__pyx_v_psi); goto __pyx_L0; /* "pywt/_extensions/_cwt.pyx":77 * * elif data_t is np.float32_t: * if wavelet.short_family_name == "gaus": # <<<<<<<<<<<<<< * psi = np.zeros(output_len, np.float32) * family_number = wavelet.family_number */ } /* "pywt/_extensions/_cwt.pyx":83 * c_wt.float_gaus(&data[0], psi.data, data_size, family_number) * return psi * elif wavelet.short_family_name == "mexh": # <<<<<<<<<<<<<< * psi = np.zeros(output_len, np.float32) * with nogil: */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_short_family_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 83, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_mexh, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 83, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_4) { /* "pywt/_extensions/_cwt.pyx":84 * return psi * elif wavelet.short_family_name == "mexh": * psi = np.zeros(output_len, np.float32) # <<<<<<<<<<<<<< * with nogil: * c_wt.float_mexh(&data[0], psi.data, data_size) */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_float32); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_5, __pyx_t_1}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_5, __pyx_t_1}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { __pyx_t_6 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_8, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_8, __pyx_t_1); __pyx_t_5 = 0; __pyx_t_1 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 84, __pyx_L1_error) __pyx_v_psi = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_cwt.pyx":85 * elif wavelet.short_family_name == "mexh": * psi = np.zeros(output_len, np.float32) * with nogil: # <<<<<<<<<<<<<< * c_wt.float_mexh(&data[0], psi.data, data_size) * return psi */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_cwt.pyx":86 * psi = np.zeros(output_len, np.float32) * with nogil: * c_wt.float_mexh(&data[0], psi.data, data_size) # <<<<<<<<<<<<<< * return psi * elif wavelet.short_family_name == "morl": */ __pyx_t_11 = 0; float_mexh((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_data.data) + __pyx_t_11)) )))), ((float *)__pyx_v_psi->data), __pyx_v_data_size); } /* "pywt/_extensions/_cwt.pyx":85 * elif wavelet.short_family_name == "mexh": * psi = np.zeros(output_len, np.float32) * with nogil: # <<<<<<<<<<<<<< * c_wt.float_mexh(&data[0], psi.data, data_size) * return psi */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L10; } __pyx_L10:; } } /* "pywt/_extensions/_cwt.pyx":87 * with nogil: * c_wt.float_mexh(&data[0], psi.data, data_size) * return psi # <<<<<<<<<<<<<< * elif wavelet.short_family_name == "morl": * psi = np.zeros(output_len, np.float32) */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_psi)); __pyx_r = ((PyObject *)__pyx_v_psi); goto __pyx_L0; /* "pywt/_extensions/_cwt.pyx":83 * c_wt.float_gaus(&data[0], psi.data, data_size, family_number) * return psi * elif wavelet.short_family_name == "mexh": # <<<<<<<<<<<<<< * psi = np.zeros(output_len, np.float32) * with nogil: */ } /* "pywt/_extensions/_cwt.pyx":88 * c_wt.float_mexh(&data[0], psi.data, data_size) * return psi * elif wavelet.short_family_name == "morl": # <<<<<<<<<<<<<< * psi = np.zeros(output_len, np.float32) * with nogil: */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_short_family_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 88, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_morl, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 88, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_4) { /* "pywt/_extensions/_cwt.pyx":89 * return psi * elif wavelet.short_family_name == "morl": * psi = np.zeros(output_len, np.float32) # <<<<<<<<<<<<<< * with nogil: * c_wt.float_morl(&data[0], psi.data, data_size) */ __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 89, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 89, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 89, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 89, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_float32); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 89, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_9, __pyx_t_5}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 89, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_9, __pyx_t_5}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 89, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { __pyx_t_7 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 89, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_8, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_8, __pyx_t_5); __pyx_t_9 = 0; __pyx_t_5 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 89, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 89, __pyx_L1_error) __pyx_v_psi = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_cwt.pyx":90 * elif wavelet.short_family_name == "morl": * psi = np.zeros(output_len, np.float32) * with nogil: # <<<<<<<<<<<<<< * c_wt.float_morl(&data[0], psi.data, data_size) * return psi */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_cwt.pyx":91 * psi = np.zeros(output_len, np.float32) * with nogil: * c_wt.float_morl(&data[0], psi.data, data_size) # <<<<<<<<<<<<<< * return psi * elif wavelet.short_family_name == "cgau": */ __pyx_t_12 = 0; float_morl((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_data.data) + __pyx_t_12)) )))), ((float *)__pyx_v_psi->data), __pyx_v_data_size); } /* "pywt/_extensions/_cwt.pyx":90 * elif wavelet.short_family_name == "morl": * psi = np.zeros(output_len, np.float32) * with nogil: # <<<<<<<<<<<<<< * c_wt.float_morl(&data[0], psi.data, data_size) * return psi */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L13; } __pyx_L13:; } } /* "pywt/_extensions/_cwt.pyx":92 * with nogil: * c_wt.float_morl(&data[0], psi.data, data_size) * return psi # <<<<<<<<<<<<<< * elif wavelet.short_family_name == "cgau": * psi_r = np.zeros(output_len, np.float32) */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_psi)); __pyx_r = ((PyObject *)__pyx_v_psi); goto __pyx_L0; /* "pywt/_extensions/_cwt.pyx":88 * c_wt.float_mexh(&data[0], psi.data, data_size) * return psi * elif wavelet.short_family_name == "morl": # <<<<<<<<<<<<<< * psi = np.zeros(output_len, np.float32) * with nogil: */ } /* "pywt/_extensions/_cwt.pyx":93 * c_wt.float_morl(&data[0], psi.data, data_size) * return psi * elif wavelet.short_family_name == "cgau": # <<<<<<<<<<<<<< * psi_r = np.zeros(output_len, np.float32) * psi_i = np.zeros(output_len, np.float32) */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_short_family_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 93, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_cgau, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 93, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_4) { /* "pywt/_extensions/_cwt.pyx":94 * return psi * elif wavelet.short_family_name == "cgau": * psi_r = np.zeros(output_len, np.float32) # <<<<<<<<<<<<<< * psi_i = np.zeros(output_len, np.float32) * family_number = wavelet.family_number */ __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 94, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 94, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 94, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 94, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_float32); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 94, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_6, __pyx_t_9}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 94, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_6, __pyx_t_9}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 94, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif { __pyx_t_1 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 94, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_8, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_8, __pyx_t_9); __pyx_t_6 = 0; __pyx_t_9 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 94, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 94, __pyx_L1_error) __pyx_v_psi_r = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_cwt.pyx":95 * elif wavelet.short_family_name == "cgau": * psi_r = np.zeros(output_len, np.float32) * psi_i = np.zeros(output_len, np.float32) # <<<<<<<<<<<<<< * family_number = wavelet.family_number * with nogil: */ __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 95, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 95, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 95, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 95, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_float32); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 95, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_7, __pyx_t_6}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 95, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_7, __pyx_t_6}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 95, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 95, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_8, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_8, __pyx_t_6); __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 95, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 95, __pyx_L1_error) __pyx_v_psi_i = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_cwt.pyx":96 * psi_r = np.zeros(output_len, np.float32) * psi_i = np.zeros(output_len, np.float32) * family_number = wavelet.family_number # <<<<<<<<<<<<<< * with nogil: * c_wt.float_cgau(&data[0], psi_r.data, psi_i.data, data_size, family_number) */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_family_number); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_family_number = __pyx_t_8; /* "pywt/_extensions/_cwt.pyx":97 * psi_i = np.zeros(output_len, np.float32) * family_number = wavelet.family_number * with nogil: # <<<<<<<<<<<<<< * c_wt.float_cgau(&data[0], psi_r.data, psi_i.data, data_size, family_number) * return (psi_r, psi_i) */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_cwt.pyx":98 * family_number = wavelet.family_number * with nogil: * c_wt.float_cgau(&data[0], psi_r.data, psi_i.data, data_size, family_number) # <<<<<<<<<<<<<< * return (psi_r, psi_i) * elif wavelet.short_family_name == "shan": */ __pyx_t_13 = 0; float_cgau((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_data.data) + __pyx_t_13)) )))), ((float *)__pyx_v_psi_r->data), ((float *)__pyx_v_psi_i->data), __pyx_v_data_size, __pyx_v_family_number); } /* "pywt/_extensions/_cwt.pyx":97 * psi_i = np.zeros(output_len, np.float32) * family_number = wavelet.family_number * with nogil: # <<<<<<<<<<<<<< * c_wt.float_cgau(&data[0], psi_r.data, psi_i.data, data_size, family_number) * return (psi_r, psi_i) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L16; } __pyx_L16:; } } /* "pywt/_extensions/_cwt.pyx":99 * with nogil: * c_wt.float_cgau(&data[0], psi_r.data, psi_i.data, data_size, family_number) * return (psi_r, psi_i) # <<<<<<<<<<<<<< * elif wavelet.short_family_name == "shan": * psi_r = np.zeros(output_len, np.float32) */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 99, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_psi_r)); __Pyx_GIVEREF(((PyObject *)__pyx_v_psi_r)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_psi_r)); __Pyx_INCREF(((PyObject *)__pyx_v_psi_i)); __Pyx_GIVEREF(((PyObject *)__pyx_v_psi_i)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_psi_i)); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "pywt/_extensions/_cwt.pyx":93 * c_wt.float_morl(&data[0], psi.data, data_size) * return psi * elif wavelet.short_family_name == "cgau": # <<<<<<<<<<<<<< * psi_r = np.zeros(output_len, np.float32) * psi_i = np.zeros(output_len, np.float32) */ } /* "pywt/_extensions/_cwt.pyx":100 * c_wt.float_cgau(&data[0], psi_r.data, psi_i.data, data_size, family_number) * return (psi_r, psi_i) * elif wavelet.short_family_name == "shan": # <<<<<<<<<<<<<< * psi_r = np.zeros(output_len, np.float32) * psi_i = np.zeros(output_len, np.float32) */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_short_family_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_shan, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 100, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_4) { /* "pywt/_extensions/_cwt.pyx":101 * return (psi_r, psi_i) * elif wavelet.short_family_name == "shan": * psi_r = np.zeros(output_len, np.float32) # <<<<<<<<<<<<<< * psi_i = np.zeros(output_len, np.float32) * bandwidth_frequency = wavelet.bandwidth_frequency */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_float32); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_1, __pyx_t_7}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 101, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_1, __pyx_t_7}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 101, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_7); __pyx_t_1 = 0; __pyx_t_7 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 101, __pyx_L1_error) __pyx_v_psi_r = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_cwt.pyx":102 * elif wavelet.short_family_name == "shan": * psi_r = np.zeros(output_len, np.float32) * psi_i = np.zeros(output_len, np.float32) # <<<<<<<<<<<<<< * bandwidth_frequency = wavelet.bandwidth_frequency * center_frequency = wavelet.center_frequency */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_float32); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_5, __pyx_t_1}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_5, __pyx_t_1}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { __pyx_t_6 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_8, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_8, __pyx_t_1); __pyx_t_5 = 0; __pyx_t_1 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 102, __pyx_L1_error) __pyx_v_psi_i = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_cwt.pyx":103 * psi_r = np.zeros(output_len, np.float32) * psi_i = np.zeros(output_len, np.float32) * bandwidth_frequency = wavelet.bandwidth_frequency # <<<<<<<<<<<<<< * center_frequency = wavelet.center_frequency * with nogil: */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_bandwidth_frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 103, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_bandwidth_frequency = __pyx_t_14; /* "pywt/_extensions/_cwt.pyx":104 * psi_i = np.zeros(output_len, np.float32) * bandwidth_frequency = wavelet.bandwidth_frequency * center_frequency = wavelet.center_frequency # <<<<<<<<<<<<<< * with nogil: * c_wt.float_shan(&data[0], psi_r.data, psi_i.data, data_size, bandwidth_frequency, center_frequency) */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_center_frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 104, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_center_frequency = __pyx_t_14; /* "pywt/_extensions/_cwt.pyx":105 * bandwidth_frequency = wavelet.bandwidth_frequency * center_frequency = wavelet.center_frequency * with nogil: # <<<<<<<<<<<<<< * c_wt.float_shan(&data[0], psi_r.data, psi_i.data, data_size, bandwidth_frequency, center_frequency) * return (psi_r, psi_i) */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_cwt.pyx":106 * center_frequency = wavelet.center_frequency * with nogil: * c_wt.float_shan(&data[0], psi_r.data, psi_i.data, data_size, bandwidth_frequency, center_frequency) # <<<<<<<<<<<<<< * return (psi_r, psi_i) * elif wavelet.short_family_name == "fbsp": */ __pyx_t_15 = 0; float_shan((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_data.data) + __pyx_t_15)) )))), ((float *)__pyx_v_psi_r->data), ((float *)__pyx_v_psi_i->data), __pyx_v_data_size, __pyx_v_bandwidth_frequency, __pyx_v_center_frequency); } /* "pywt/_extensions/_cwt.pyx":105 * bandwidth_frequency = wavelet.bandwidth_frequency * center_frequency = wavelet.center_frequency * with nogil: # <<<<<<<<<<<<<< * c_wt.float_shan(&data[0], psi_r.data, psi_i.data, data_size, bandwidth_frequency, center_frequency) * return (psi_r, psi_i) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L19; } __pyx_L19:; } } /* "pywt/_extensions/_cwt.pyx":107 * with nogil: * c_wt.float_shan(&data[0], psi_r.data, psi_i.data, data_size, bandwidth_frequency, center_frequency) * return (psi_r, psi_i) # <<<<<<<<<<<<<< * elif wavelet.short_family_name == "fbsp": * psi_r = np.zeros(output_len, np.float32) */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_psi_r)); __Pyx_GIVEREF(((PyObject *)__pyx_v_psi_r)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_psi_r)); __Pyx_INCREF(((PyObject *)__pyx_v_psi_i)); __Pyx_GIVEREF(((PyObject *)__pyx_v_psi_i)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_psi_i)); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "pywt/_extensions/_cwt.pyx":100 * c_wt.float_cgau(&data[0], psi_r.data, psi_i.data, data_size, family_number) * return (psi_r, psi_i) * elif wavelet.short_family_name == "shan": # <<<<<<<<<<<<<< * psi_r = np.zeros(output_len, np.float32) * psi_i = np.zeros(output_len, np.float32) */ } /* "pywt/_extensions/_cwt.pyx":108 * c_wt.float_shan(&data[0], psi_r.data, psi_i.data, data_size, bandwidth_frequency, center_frequency) * return (psi_r, psi_i) * elif wavelet.short_family_name == "fbsp": # <<<<<<<<<<<<<< * psi_r = np.zeros(output_len, np.float32) * psi_i = np.zeros(output_len, np.float32) */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_short_family_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_fbsp, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 108, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_4) { /* "pywt/_extensions/_cwt.pyx":109 * return (psi_r, psi_i) * elif wavelet.short_family_name == "fbsp": * psi_r = np.zeros(output_len, np.float32) # <<<<<<<<<<<<<< * psi_i = np.zeros(output_len, np.float32) * fbsp_order = wavelet.fbsp_order */ __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_float32); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_9, __pyx_t_5}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_9, __pyx_t_5}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { __pyx_t_7 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_8, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_8, __pyx_t_5); __pyx_t_9 = 0; __pyx_t_5 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 109, __pyx_L1_error) __pyx_v_psi_r = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_cwt.pyx":110 * elif wavelet.short_family_name == "fbsp": * psi_r = np.zeros(output_len, np.float32) * psi_i = np.zeros(output_len, np.float32) # <<<<<<<<<<<<<< * fbsp_order = wavelet.fbsp_order * bandwidth_frequency = wavelet.bandwidth_frequency */ __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_float32); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_6, __pyx_t_9}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 110, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_6, __pyx_t_9}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 110, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif { __pyx_t_1 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_8, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_8, __pyx_t_9); __pyx_t_6 = 0; __pyx_t_9 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 110, __pyx_L1_error) __pyx_v_psi_i = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_cwt.pyx":111 * psi_r = np.zeros(output_len, np.float32) * psi_i = np.zeros(output_len, np.float32) * fbsp_order = wavelet.fbsp_order # <<<<<<<<<<<<<< * bandwidth_frequency = wavelet.bandwidth_frequency * center_frequency = wavelet.center_frequency */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_fbsp_order); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 111, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_fbsp_order = __pyx_t_8; /* "pywt/_extensions/_cwt.pyx":112 * psi_i = np.zeros(output_len, np.float32) * fbsp_order = wavelet.fbsp_order * bandwidth_frequency = wavelet.bandwidth_frequency # <<<<<<<<<<<<<< * center_frequency = wavelet.center_frequency * with nogil: */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_bandwidth_frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 112, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_bandwidth_frequency = __pyx_t_14; /* "pywt/_extensions/_cwt.pyx":113 * fbsp_order = wavelet.fbsp_order * bandwidth_frequency = wavelet.bandwidth_frequency * center_frequency = wavelet.center_frequency # <<<<<<<<<<<<<< * with nogil: * c_wt.float_fbsp(&data[0], psi_r.data, psi_i.data, data_size, fbsp_order, bandwidth_frequency, center_frequency) */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_center_frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 113, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_center_frequency = __pyx_t_14; /* "pywt/_extensions/_cwt.pyx":114 * bandwidth_frequency = wavelet.bandwidth_frequency * center_frequency = wavelet.center_frequency * with nogil: # <<<<<<<<<<<<<< * c_wt.float_fbsp(&data[0], psi_r.data, psi_i.data, data_size, fbsp_order, bandwidth_frequency, center_frequency) * return (psi_r, psi_i) */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_cwt.pyx":115 * center_frequency = wavelet.center_frequency * with nogil: * c_wt.float_fbsp(&data[0], psi_r.data, psi_i.data, data_size, fbsp_order, bandwidth_frequency, center_frequency) # <<<<<<<<<<<<<< * return (psi_r, psi_i) * elif wavelet.short_family_name == "cmor": */ __pyx_t_16 = 0; float_fbsp((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_data.data) + __pyx_t_16)) )))), ((float *)__pyx_v_psi_r->data), ((float *)__pyx_v_psi_i->data), __pyx_v_data_size, __pyx_v_fbsp_order, __pyx_v_bandwidth_frequency, __pyx_v_center_frequency); } /* "pywt/_extensions/_cwt.pyx":114 * bandwidth_frequency = wavelet.bandwidth_frequency * center_frequency = wavelet.center_frequency * with nogil: # <<<<<<<<<<<<<< * c_wt.float_fbsp(&data[0], psi_r.data, psi_i.data, data_size, fbsp_order, bandwidth_frequency, center_frequency) * return (psi_r, psi_i) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L22; } __pyx_L22:; } } /* "pywt/_extensions/_cwt.pyx":116 * with nogil: * c_wt.float_fbsp(&data[0], psi_r.data, psi_i.data, data_size, fbsp_order, bandwidth_frequency, center_frequency) * return (psi_r, psi_i) # <<<<<<<<<<<<<< * elif wavelet.short_family_name == "cmor": * psi_r = np.zeros(output_len, np.float32) */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_psi_r)); __Pyx_GIVEREF(((PyObject *)__pyx_v_psi_r)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_psi_r)); __Pyx_INCREF(((PyObject *)__pyx_v_psi_i)); __Pyx_GIVEREF(((PyObject *)__pyx_v_psi_i)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_psi_i)); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "pywt/_extensions/_cwt.pyx":108 * c_wt.float_shan(&data[0], psi_r.data, psi_i.data, data_size, bandwidth_frequency, center_frequency) * return (psi_r, psi_i) * elif wavelet.short_family_name == "fbsp": # <<<<<<<<<<<<<< * psi_r = np.zeros(output_len, np.float32) * psi_i = np.zeros(output_len, np.float32) */ } /* "pywt/_extensions/_cwt.pyx":117 * c_wt.float_fbsp(&data[0], psi_r.data, psi_i.data, data_size, fbsp_order, bandwidth_frequency, center_frequency) * return (psi_r, psi_i) * elif wavelet.short_family_name == "cmor": # <<<<<<<<<<<<<< * psi_r = np.zeros(output_len, np.float32) * psi_i = np.zeros(output_len, np.float32) */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_short_family_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_cmor, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_4) { /* "pywt/_extensions/_cwt.pyx":118 * return (psi_r, psi_i) * elif wavelet.short_family_name == "cmor": * psi_r = np.zeros(output_len, np.float32) # <<<<<<<<<<<<<< * psi_i = np.zeros(output_len, np.float32) * bandwidth_frequency = wavelet.bandwidth_frequency */ __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_float32); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_7, __pyx_t_6}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_7, __pyx_t_6}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_8, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_8, __pyx_t_6); __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 118, __pyx_L1_error) __pyx_v_psi_r = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_cwt.pyx":119 * elif wavelet.short_family_name == "cmor": * psi_r = np.zeros(output_len, np.float32) * psi_i = np.zeros(output_len, np.float32) # <<<<<<<<<<<<<< * bandwidth_frequency = wavelet.bandwidth_frequency * center_frequency = wavelet.center_frequency */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_float32); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_1, __pyx_t_7}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_1, __pyx_t_7}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_7); __pyx_t_1 = 0; __pyx_t_7 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 119, __pyx_L1_error) __pyx_v_psi_i = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_cwt.pyx":120 * psi_r = np.zeros(output_len, np.float32) * psi_i = np.zeros(output_len, np.float32) * bandwidth_frequency = wavelet.bandwidth_frequency # <<<<<<<<<<<<<< * center_frequency = wavelet.center_frequency * with nogil: */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_bandwidth_frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 120, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_bandwidth_frequency = __pyx_t_14; /* "pywt/_extensions/_cwt.pyx":121 * psi_i = np.zeros(output_len, np.float32) * bandwidth_frequency = wavelet.bandwidth_frequency * center_frequency = wavelet.center_frequency # <<<<<<<<<<<<<< * with nogil: * c_wt.float_cmor(&data[0], psi_r.data, psi_i.data, data_size, bandwidth_frequency, center_frequency) */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_center_frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_center_frequency = __pyx_t_14; /* "pywt/_extensions/_cwt.pyx":122 * bandwidth_frequency = wavelet.bandwidth_frequency * center_frequency = wavelet.center_frequency * with nogil: # <<<<<<<<<<<<<< * c_wt.float_cmor(&data[0], psi_r.data, psi_i.data, data_size, bandwidth_frequency, center_frequency) * return (psi_r, psi_i) */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_cwt.pyx":123 * center_frequency = wavelet.center_frequency * with nogil: * c_wt.float_cmor(&data[0], psi_r.data, psi_i.data, data_size, bandwidth_frequency, center_frequency) # <<<<<<<<<<<<<< * return (psi_r, psi_i) * */ __pyx_t_17 = 0; float_cmor((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_data.data) + __pyx_t_17)) )))), ((float *)__pyx_v_psi_r->data), ((float *)__pyx_v_psi_i->data), __pyx_v_data_size, __pyx_v_bandwidth_frequency, __pyx_v_center_frequency); } /* "pywt/_extensions/_cwt.pyx":122 * bandwidth_frequency = wavelet.bandwidth_frequency * center_frequency = wavelet.center_frequency * with nogil: # <<<<<<<<<<<<<< * c_wt.float_cmor(&data[0], psi_r.data, psi_i.data, data_size, bandwidth_frequency, center_frequency) * return (psi_r, psi_i) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L25; } __pyx_L25:; } } /* "pywt/_extensions/_cwt.pyx":124 * with nogil: * c_wt.float_cmor(&data[0], psi_r.data, psi_i.data, data_size, bandwidth_frequency, center_frequency) * return (psi_r, psi_i) # <<<<<<<<<<<<<< * */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_psi_r)); __Pyx_GIVEREF(((PyObject *)__pyx_v_psi_r)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_psi_r)); __Pyx_INCREF(((PyObject *)__pyx_v_psi_i)); __Pyx_GIVEREF(((PyObject *)__pyx_v_psi_i)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_psi_i)); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "pywt/_extensions/_cwt.pyx":117 * c_wt.float_fbsp(&data[0], psi_r.data, psi_i.data, data_size, fbsp_order, bandwidth_frequency, center_frequency) * return (psi_r, psi_i) * elif wavelet.short_family_name == "cmor": # <<<<<<<<<<<<<< * psi_r = np.zeros(output_len, np.float32) * psi_i = np.zeros(output_len, np.float32) */ } /* "pywt/_extensions/_cwt.pyx":13 * * * cpdef cwt_psi_single(data_t[::1] data, ContinuousWavelet wavelet, size_t output_len): # <<<<<<<<<<<<<< * cdef np.ndarray psi, psi_r, psi_i * cdef size_t data_size = data.size */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("pywt._extensions._cwt.cwt_psi_single", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_psi); __Pyx_XDECREF((PyObject *)__pyx_v_psi_r); __Pyx_XDECREF((PyObject *)__pyx_v_psi_i); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_4_cwt_3__pyx_fuse_0cwt_psi_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_0__pyx_mdef_4pywt_11_extensions_4_cwt_3__pyx_fuse_0cwt_psi_single = {"__pyx_fuse_0cwt_psi_single", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_4_cwt_3__pyx_fuse_0cwt_psi_single, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_4pywt_11_extensions_4_cwt_3__pyx_fuse_0cwt_psi_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } }; struct ContinuousWaveletObject *__pyx_v_wavelet = 0; size_t __pyx_v_output_len; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_0cwt_psi_single (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_data,&__pyx_n_s_wavelet,&__pyx_n_s_output_len,0}; PyObject* values[3] = {0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wavelet)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0cwt_psi_single", 1, 3, 3, 1); __PYX_ERR(0, 13, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_output_len)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0cwt_psi_single", 1, 3, 3, 2); __PYX_ERR(0, 13, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0cwt_psi_single") < 0)) __PYX_ERR(0, 13, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); } __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 13, __pyx_L3_error) __pyx_v_wavelet = ((struct ContinuousWaveletObject *)values[1]); __pyx_v_output_len = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_output_len == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 13, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0cwt_psi_single", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 13, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._cwt.__pyx_fuse_0cwt_psi_single", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_wavelet), __pyx_ptype_4pywt_11_extensions_5_pywt_ContinuousWavelet, 1, "wavelet", 0))) __PYX_ERR(0, 13, __pyx_L1_error) __pyx_r = __pyx_pf_4pywt_11_extensions_4_cwt_2__pyx_fuse_0cwt_psi_single(__pyx_self, __pyx_v_data, __pyx_v_wavelet, __pyx_v_output_len); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_cwt_2__pyx_fuse_0cwt_psi_single(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_data, struct ContinuousWaveletObject *__pyx_v_wavelet, size_t __pyx_v_output_len) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__pyx_fuse_0cwt_psi_single", 0); __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_data.memview)) { __Pyx_RaiseUnboundLocalError("data"); __PYX_ERR(0, 13, __pyx_L1_error) } __pyx_t_1 = __pyx_fuse_0__pyx_f_4pywt_11_extensions_4_cwt_cwt_psi_single(__pyx_v_data, __pyx_v_wavelet, __pyx_v_output_len, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._cwt.__pyx_fuse_0cwt_psi_single", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pw_4pywt_11_extensions_4_cwt_5__pyx_fuse_1cwt_psi_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_4_cwt_1cwt_psi_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_fuse_1__pyx_f_4pywt_11_extensions_4_cwt_cwt_psi_single(__Pyx_memviewslice __pyx_v_data, struct ContinuousWaveletObject *__pyx_v_wavelet, size_t __pyx_v_output_len, CYTHON_UNUSED int __pyx_skip_dispatch) { PyArrayObject *__pyx_v_psi = 0; PyArrayObject *__pyx_v_psi_r = 0; PyArrayObject *__pyx_v_psi_i = 0; size_t __pyx_v_data_size; int __pyx_v_family_number; double __pyx_v_bandwidth_frequency; double __pyx_v_center_frequency; int __pyx_v_fbsp_order; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; PyObject *__pyx_t_9 = NULL; Py_ssize_t __pyx_t_10; Py_ssize_t __pyx_t_11; Py_ssize_t __pyx_t_12; Py_ssize_t __pyx_t_13; double __pyx_t_14; Py_ssize_t __pyx_t_15; Py_ssize_t __pyx_t_16; Py_ssize_t __pyx_t_17; __Pyx_RefNannySetupContext("__pyx_fuse_1cwt_psi_single", 0); /* "pywt/_extensions/_cwt.pyx":15 * cpdef cwt_psi_single(data_t[::1] data, ContinuousWavelet wavelet, size_t output_len): * cdef np.ndarray psi, psi_r, psi_i * cdef size_t data_size = data.size # <<<<<<<<<<<<<< * cdef int family_number = 0 * cdef double bandwidth_frequency */ __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_3 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 15, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_data_size = __pyx_t_3; /* "pywt/_extensions/_cwt.pyx":16 * cdef np.ndarray psi, psi_r, psi_i * cdef size_t data_size = data.size * cdef int family_number = 0 # <<<<<<<<<<<<<< * cdef double bandwidth_frequency * cdef double center_frequency */ __pyx_v_family_number = 0; /* "pywt/_extensions/_cwt.pyx":20 * cdef double center_frequency * cdef int fbsp_order * if output_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ __pyx_t_4 = ((__pyx_v_output_len < 1) != 0); if (unlikely(__pyx_t_4)) { /* "pywt/_extensions/_cwt.pyx":21 * cdef int fbsp_order * if output_len < 1: * raise RuntimeError("Invalid output length.") # <<<<<<<<<<<<<< * * #if data_t is np.float64_t: */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 21, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 21, __pyx_L1_error) /* "pywt/_extensions/_cwt.pyx":20 * cdef double center_frequency * cdef int fbsp_order * if output_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ } /* "pywt/_extensions/_cwt.pyx":27 * # TODO: Check other methods of allocating (e.g. Cython/CPython arrays) * if data_t is np.float64_t: * if wavelet.short_family_name == "gaus": # <<<<<<<<<<<<<< * psi = np.zeros(output_len, np.float64) * family_number = wavelet.family_number */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_short_family_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_gaus, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_4) { /* "pywt/_extensions/_cwt.pyx":28 * if data_t is np.float64_t: * if wavelet.short_family_name == "gaus": * psi = np.zeros(output_len, np.float64) # <<<<<<<<<<<<<< * family_number = wavelet.family_number * with nogil: */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_float64); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_1, __pyx_t_7}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_1, __pyx_t_7}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_7); __pyx_t_1 = 0; __pyx_t_7 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 28, __pyx_L1_error) __pyx_v_psi = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_cwt.pyx":29 * if wavelet.short_family_name == "gaus": * psi = np.zeros(output_len, np.float64) * family_number = wavelet.family_number # <<<<<<<<<<<<<< * with nogil: * c_wt.double_gaus(&data[0], psi.data, data_size, family_number) */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_family_number); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_family_number = __pyx_t_8; /* "pywt/_extensions/_cwt.pyx":30 * psi = np.zeros(output_len, np.float64) * family_number = wavelet.family_number * with nogil: # <<<<<<<<<<<<<< * c_wt.double_gaus(&data[0], psi.data, data_size, family_number) * return psi */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_cwt.pyx":31 * family_number = wavelet.family_number * with nogil: * c_wt.double_gaus(&data[0], psi.data, data_size, family_number) # <<<<<<<<<<<<<< * return psi * elif wavelet.short_family_name == "mexh": */ __pyx_t_10 = 0; double_gaus((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_data.data) + __pyx_t_10)) )))), ((double *)__pyx_v_psi->data), __pyx_v_data_size, __pyx_v_family_number); } /* "pywt/_extensions/_cwt.pyx":30 * psi = np.zeros(output_len, np.float64) * family_number = wavelet.family_number * with nogil: # <<<<<<<<<<<<<< * c_wt.double_gaus(&data[0], psi.data, data_size, family_number) * return psi */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L7; } __pyx_L7:; } } /* "pywt/_extensions/_cwt.pyx":32 * with nogil: * c_wt.double_gaus(&data[0], psi.data, data_size, family_number) * return psi # <<<<<<<<<<<<<< * elif wavelet.short_family_name == "mexh": * psi = np.zeros(output_len, np.float64) */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_psi)); __pyx_r = ((PyObject *)__pyx_v_psi); goto __pyx_L0; /* "pywt/_extensions/_cwt.pyx":27 * # TODO: Check other methods of allocating (e.g. Cython/CPython arrays) * if data_t is np.float64_t: * if wavelet.short_family_name == "gaus": # <<<<<<<<<<<<<< * psi = np.zeros(output_len, np.float64) * family_number = wavelet.family_number */ } /* "pywt/_extensions/_cwt.pyx":33 * c_wt.double_gaus(&data[0], psi.data, data_size, family_number) * return psi * elif wavelet.short_family_name == "mexh": # <<<<<<<<<<<<<< * psi = np.zeros(output_len, np.float64) * with nogil: */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_short_family_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 33, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_mexh, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 33, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_4) { /* "pywt/_extensions/_cwt.pyx":34 * return psi * elif wavelet.short_family_name == "mexh": * psi = np.zeros(output_len, np.float64) # <<<<<<<<<<<<<< * with nogil: * c_wt.double_mexh(&data[0], psi.data, data_size) */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_float64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_5, __pyx_t_1}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_5, __pyx_t_1}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { __pyx_t_6 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_8, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_8, __pyx_t_1); __pyx_t_5 = 0; __pyx_t_1 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 34, __pyx_L1_error) __pyx_v_psi = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_cwt.pyx":35 * elif wavelet.short_family_name == "mexh": * psi = np.zeros(output_len, np.float64) * with nogil: # <<<<<<<<<<<<<< * c_wt.double_mexh(&data[0], psi.data, data_size) * return psi */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_cwt.pyx":36 * psi = np.zeros(output_len, np.float64) * with nogil: * c_wt.double_mexh(&data[0], psi.data, data_size) # <<<<<<<<<<<<<< * return psi * elif wavelet.short_family_name == "morl": */ __pyx_t_11 = 0; double_mexh((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_data.data) + __pyx_t_11)) )))), ((double *)__pyx_v_psi->data), __pyx_v_data_size); } /* "pywt/_extensions/_cwt.pyx":35 * elif wavelet.short_family_name == "mexh": * psi = np.zeros(output_len, np.float64) * with nogil: # <<<<<<<<<<<<<< * c_wt.double_mexh(&data[0], psi.data, data_size) * return psi */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L10; } __pyx_L10:; } } /* "pywt/_extensions/_cwt.pyx":37 * with nogil: * c_wt.double_mexh(&data[0], psi.data, data_size) * return psi # <<<<<<<<<<<<<< * elif wavelet.short_family_name == "morl": * psi = np.zeros(output_len, np.float64) */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_psi)); __pyx_r = ((PyObject *)__pyx_v_psi); goto __pyx_L0; /* "pywt/_extensions/_cwt.pyx":33 * c_wt.double_gaus(&data[0], psi.data, data_size, family_number) * return psi * elif wavelet.short_family_name == "mexh": # <<<<<<<<<<<<<< * psi = np.zeros(output_len, np.float64) * with nogil: */ } /* "pywt/_extensions/_cwt.pyx":38 * c_wt.double_mexh(&data[0], psi.data, data_size) * return psi * elif wavelet.short_family_name == "morl": # <<<<<<<<<<<<<< * psi = np.zeros(output_len, np.float64) * with nogil: */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_short_family_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_morl, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_4) { /* "pywt/_extensions/_cwt.pyx":39 * return psi * elif wavelet.short_family_name == "morl": * psi = np.zeros(output_len, np.float64) # <<<<<<<<<<<<<< * with nogil: * c_wt.double_morl(&data[0], psi.data, data_size) */ __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_float64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_9, __pyx_t_5}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_9, __pyx_t_5}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { __pyx_t_7 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_8, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_8, __pyx_t_5); __pyx_t_9 = 0; __pyx_t_5 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 39, __pyx_L1_error) __pyx_v_psi = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_cwt.pyx":40 * elif wavelet.short_family_name == "morl": * psi = np.zeros(output_len, np.float64) * with nogil: # <<<<<<<<<<<<<< * c_wt.double_morl(&data[0], psi.data, data_size) * return psi */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_cwt.pyx":41 * psi = np.zeros(output_len, np.float64) * with nogil: * c_wt.double_morl(&data[0], psi.data, data_size) # <<<<<<<<<<<<<< * return psi * elif wavelet.short_family_name == "cgau": */ __pyx_t_12 = 0; double_morl((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_data.data) + __pyx_t_12)) )))), ((double *)__pyx_v_psi->data), __pyx_v_data_size); } /* "pywt/_extensions/_cwt.pyx":40 * elif wavelet.short_family_name == "morl": * psi = np.zeros(output_len, np.float64) * with nogil: # <<<<<<<<<<<<<< * c_wt.double_morl(&data[0], psi.data, data_size) * return psi */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L13; } __pyx_L13:; } } /* "pywt/_extensions/_cwt.pyx":42 * with nogil: * c_wt.double_morl(&data[0], psi.data, data_size) * return psi # <<<<<<<<<<<<<< * elif wavelet.short_family_name == "cgau": * psi_r = np.zeros(output_len, np.float64) */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_psi)); __pyx_r = ((PyObject *)__pyx_v_psi); goto __pyx_L0; /* "pywt/_extensions/_cwt.pyx":38 * c_wt.double_mexh(&data[0], psi.data, data_size) * return psi * elif wavelet.short_family_name == "morl": # <<<<<<<<<<<<<< * psi = np.zeros(output_len, np.float64) * with nogil: */ } /* "pywt/_extensions/_cwt.pyx":43 * c_wt.double_morl(&data[0], psi.data, data_size) * return psi * elif wavelet.short_family_name == "cgau": # <<<<<<<<<<<<<< * psi_r = np.zeros(output_len, np.float64) * psi_i = np.zeros(output_len, np.float64) */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_short_family_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 43, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_cgau, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 43, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_4) { /* "pywt/_extensions/_cwt.pyx":44 * return psi * elif wavelet.short_family_name == "cgau": * psi_r = np.zeros(output_len, np.float64) # <<<<<<<<<<<<<< * psi_i = np.zeros(output_len, np.float64) * family_number = wavelet.family_number */ __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 44, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 44, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 44, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 44, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_float64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 44, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_6, __pyx_t_9}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 44, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_6, __pyx_t_9}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 44, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif { __pyx_t_1 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 44, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_8, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_8, __pyx_t_9); __pyx_t_6 = 0; __pyx_t_9 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 44, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 44, __pyx_L1_error) __pyx_v_psi_r = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_cwt.pyx":45 * elif wavelet.short_family_name == "cgau": * psi_r = np.zeros(output_len, np.float64) * psi_i = np.zeros(output_len, np.float64) # <<<<<<<<<<<<<< * family_number = wavelet.family_number * with nogil: */ __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 45, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 45, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 45, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 45, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_float64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 45, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_7, __pyx_t_6}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 45, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_7, __pyx_t_6}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 45, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 45, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_8, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_8, __pyx_t_6); __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 45, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 45, __pyx_L1_error) __pyx_v_psi_i = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_cwt.pyx":46 * psi_r = np.zeros(output_len, np.float64) * psi_i = np.zeros(output_len, np.float64) * family_number = wavelet.family_number # <<<<<<<<<<<<<< * with nogil: * c_wt.double_cgau(&data[0], psi_r.data, psi_i.data, data_size, family_number) */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_family_number); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_family_number = __pyx_t_8; /* "pywt/_extensions/_cwt.pyx":47 * psi_i = np.zeros(output_len, np.float64) * family_number = wavelet.family_number * with nogil: # <<<<<<<<<<<<<< * c_wt.double_cgau(&data[0], psi_r.data, psi_i.data, data_size, family_number) * return (psi_r, psi_i) */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_cwt.pyx":48 * family_number = wavelet.family_number * with nogil: * c_wt.double_cgau(&data[0], psi_r.data, psi_i.data, data_size, family_number) # <<<<<<<<<<<<<< * return (psi_r, psi_i) * elif wavelet.short_family_name == "shan": */ __pyx_t_13 = 0; double_cgau((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_data.data) + __pyx_t_13)) )))), ((double *)__pyx_v_psi_r->data), ((double *)__pyx_v_psi_i->data), __pyx_v_data_size, __pyx_v_family_number); } /* "pywt/_extensions/_cwt.pyx":47 * psi_i = np.zeros(output_len, np.float64) * family_number = wavelet.family_number * with nogil: # <<<<<<<<<<<<<< * c_wt.double_cgau(&data[0], psi_r.data, psi_i.data, data_size, family_number) * return (psi_r, psi_i) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L16; } __pyx_L16:; } } /* "pywt/_extensions/_cwt.pyx":49 * with nogil: * c_wt.double_cgau(&data[0], psi_r.data, psi_i.data, data_size, family_number) * return (psi_r, psi_i) # <<<<<<<<<<<<<< * elif wavelet.short_family_name == "shan": * psi_r = np.zeros(output_len, np.float64) */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 49, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_psi_r)); __Pyx_GIVEREF(((PyObject *)__pyx_v_psi_r)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_psi_r)); __Pyx_INCREF(((PyObject *)__pyx_v_psi_i)); __Pyx_GIVEREF(((PyObject *)__pyx_v_psi_i)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_psi_i)); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "pywt/_extensions/_cwt.pyx":43 * c_wt.double_morl(&data[0], psi.data, data_size) * return psi * elif wavelet.short_family_name == "cgau": # <<<<<<<<<<<<<< * psi_r = np.zeros(output_len, np.float64) * psi_i = np.zeros(output_len, np.float64) */ } /* "pywt/_extensions/_cwt.pyx":50 * c_wt.double_cgau(&data[0], psi_r.data, psi_i.data, data_size, family_number) * return (psi_r, psi_i) * elif wavelet.short_family_name == "shan": # <<<<<<<<<<<<<< * psi_r = np.zeros(output_len, np.float64) * psi_i = np.zeros(output_len, np.float64) */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_short_family_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 50, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_shan, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 50, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_4) { /* "pywt/_extensions/_cwt.pyx":51 * return (psi_r, psi_i) * elif wavelet.short_family_name == "shan": * psi_r = np.zeros(output_len, np.float64) # <<<<<<<<<<<<<< * psi_i = np.zeros(output_len, np.float64) * bandwidth_frequency = wavelet.bandwidth_frequency */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_float64); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_1, __pyx_t_7}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_1, __pyx_t_7}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_7); __pyx_t_1 = 0; __pyx_t_7 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 51, __pyx_L1_error) __pyx_v_psi_r = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_cwt.pyx":52 * elif wavelet.short_family_name == "shan": * psi_r = np.zeros(output_len, np.float64) * psi_i = np.zeros(output_len, np.float64) # <<<<<<<<<<<<<< * bandwidth_frequency = wavelet.bandwidth_frequency * center_frequency = wavelet.center_frequency */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_float64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_5, __pyx_t_1}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_5, __pyx_t_1}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { __pyx_t_6 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_8, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_8, __pyx_t_1); __pyx_t_5 = 0; __pyx_t_1 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 52, __pyx_L1_error) __pyx_v_psi_i = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_cwt.pyx":53 * psi_r = np.zeros(output_len, np.float64) * psi_i = np.zeros(output_len, np.float64) * bandwidth_frequency = wavelet.bandwidth_frequency # <<<<<<<<<<<<<< * center_frequency = wavelet.center_frequency * with nogil: */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_bandwidth_frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 53, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 53, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_bandwidth_frequency = __pyx_t_14; /* "pywt/_extensions/_cwt.pyx":54 * psi_i = np.zeros(output_len, np.float64) * bandwidth_frequency = wavelet.bandwidth_frequency * center_frequency = wavelet.center_frequency # <<<<<<<<<<<<<< * with nogil: * c_wt.double_shan(&data[0], psi_r.data, psi_i.data, data_size, bandwidth_frequency, center_frequency) */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_center_frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 54, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 54, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_center_frequency = __pyx_t_14; /* "pywt/_extensions/_cwt.pyx":55 * bandwidth_frequency = wavelet.bandwidth_frequency * center_frequency = wavelet.center_frequency * with nogil: # <<<<<<<<<<<<<< * c_wt.double_shan(&data[0], psi_r.data, psi_i.data, data_size, bandwidth_frequency, center_frequency) * return (psi_r, psi_i) */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_cwt.pyx":56 * center_frequency = wavelet.center_frequency * with nogil: * c_wt.double_shan(&data[0], psi_r.data, psi_i.data, data_size, bandwidth_frequency, center_frequency) # <<<<<<<<<<<<<< * return (psi_r, psi_i) * elif wavelet.short_family_name == "fbsp": */ __pyx_t_15 = 0; double_shan((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_data.data) + __pyx_t_15)) )))), ((double *)__pyx_v_psi_r->data), ((double *)__pyx_v_psi_i->data), __pyx_v_data_size, __pyx_v_bandwidth_frequency, __pyx_v_center_frequency); } /* "pywt/_extensions/_cwt.pyx":55 * bandwidth_frequency = wavelet.bandwidth_frequency * center_frequency = wavelet.center_frequency * with nogil: # <<<<<<<<<<<<<< * c_wt.double_shan(&data[0], psi_r.data, psi_i.data, data_size, bandwidth_frequency, center_frequency) * return (psi_r, psi_i) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L19; } __pyx_L19:; } } /* "pywt/_extensions/_cwt.pyx":57 * with nogil: * c_wt.double_shan(&data[0], psi_r.data, psi_i.data, data_size, bandwidth_frequency, center_frequency) * return (psi_r, psi_i) # <<<<<<<<<<<<<< * elif wavelet.short_family_name == "fbsp": * psi_r = np.zeros(output_len, np.float64) */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_psi_r)); __Pyx_GIVEREF(((PyObject *)__pyx_v_psi_r)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_psi_r)); __Pyx_INCREF(((PyObject *)__pyx_v_psi_i)); __Pyx_GIVEREF(((PyObject *)__pyx_v_psi_i)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_psi_i)); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "pywt/_extensions/_cwt.pyx":50 * c_wt.double_cgau(&data[0], psi_r.data, psi_i.data, data_size, family_number) * return (psi_r, psi_i) * elif wavelet.short_family_name == "shan": # <<<<<<<<<<<<<< * psi_r = np.zeros(output_len, np.float64) * psi_i = np.zeros(output_len, np.float64) */ } /* "pywt/_extensions/_cwt.pyx":58 * c_wt.double_shan(&data[0], psi_r.data, psi_i.data, data_size, bandwidth_frequency, center_frequency) * return (psi_r, psi_i) * elif wavelet.short_family_name == "fbsp": # <<<<<<<<<<<<<< * psi_r = np.zeros(output_len, np.float64) * psi_i = np.zeros(output_len, np.float64) */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_short_family_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 58, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_fbsp, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 58, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_4) { /* "pywt/_extensions/_cwt.pyx":59 * return (psi_r, psi_i) * elif wavelet.short_family_name == "fbsp": * psi_r = np.zeros(output_len, np.float64) # <<<<<<<<<<<<<< * psi_i = np.zeros(output_len, np.float64) * fbsp_order = wavelet.fbsp_order */ __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 59, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 59, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 59, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 59, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_float64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 59, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_9, __pyx_t_5}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 59, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_9, __pyx_t_5}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 59, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { __pyx_t_7 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 59, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_8, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_8, __pyx_t_5); __pyx_t_9 = 0; __pyx_t_5 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 59, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 59, __pyx_L1_error) __pyx_v_psi_r = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_cwt.pyx":60 * elif wavelet.short_family_name == "fbsp": * psi_r = np.zeros(output_len, np.float64) * psi_i = np.zeros(output_len, np.float64) # <<<<<<<<<<<<<< * fbsp_order = wavelet.fbsp_order * bandwidth_frequency = wavelet.bandwidth_frequency */ __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_float64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_6, __pyx_t_9}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_6, __pyx_t_9}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif { __pyx_t_1 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_8, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_8, __pyx_t_9); __pyx_t_6 = 0; __pyx_t_9 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 60, __pyx_L1_error) __pyx_v_psi_i = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_cwt.pyx":61 * psi_r = np.zeros(output_len, np.float64) * psi_i = np.zeros(output_len, np.float64) * fbsp_order = wavelet.fbsp_order # <<<<<<<<<<<<<< * bandwidth_frequency = wavelet.bandwidth_frequency * center_frequency = wavelet.center_frequency */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_fbsp_order); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 61, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 61, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_fbsp_order = __pyx_t_8; /* "pywt/_extensions/_cwt.pyx":62 * psi_i = np.zeros(output_len, np.float64) * fbsp_order = wavelet.fbsp_order * bandwidth_frequency = wavelet.bandwidth_frequency # <<<<<<<<<<<<<< * center_frequency = wavelet.center_frequency * with nogil: */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_bandwidth_frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_bandwidth_frequency = __pyx_t_14; /* "pywt/_extensions/_cwt.pyx":63 * fbsp_order = wavelet.fbsp_order * bandwidth_frequency = wavelet.bandwidth_frequency * center_frequency = wavelet.center_frequency # <<<<<<<<<<<<<< * with nogil: * c_wt.double_fbsp(&data[0], psi_r.data, psi_i.data, data_size, fbsp_order, bandwidth_frequency, center_frequency) */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_center_frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 63, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 63, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_center_frequency = __pyx_t_14; /* "pywt/_extensions/_cwt.pyx":64 * bandwidth_frequency = wavelet.bandwidth_frequency * center_frequency = wavelet.center_frequency * with nogil: # <<<<<<<<<<<<<< * c_wt.double_fbsp(&data[0], psi_r.data, psi_i.data, data_size, fbsp_order, bandwidth_frequency, center_frequency) * return (psi_r, psi_i) */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_cwt.pyx":65 * center_frequency = wavelet.center_frequency * with nogil: * c_wt.double_fbsp(&data[0], psi_r.data, psi_i.data, data_size, fbsp_order, bandwidth_frequency, center_frequency) # <<<<<<<<<<<<<< * return (psi_r, psi_i) * elif wavelet.short_family_name == "cmor": */ __pyx_t_16 = 0; double_fbsp((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_data.data) + __pyx_t_16)) )))), ((double *)__pyx_v_psi_r->data), ((double *)__pyx_v_psi_i->data), __pyx_v_data_size, __pyx_v_fbsp_order, __pyx_v_bandwidth_frequency, __pyx_v_center_frequency); } /* "pywt/_extensions/_cwt.pyx":64 * bandwidth_frequency = wavelet.bandwidth_frequency * center_frequency = wavelet.center_frequency * with nogil: # <<<<<<<<<<<<<< * c_wt.double_fbsp(&data[0], psi_r.data, psi_i.data, data_size, fbsp_order, bandwidth_frequency, center_frequency) * return (psi_r, psi_i) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L22; } __pyx_L22:; } } /* "pywt/_extensions/_cwt.pyx":66 * with nogil: * c_wt.double_fbsp(&data[0], psi_r.data, psi_i.data, data_size, fbsp_order, bandwidth_frequency, center_frequency) * return (psi_r, psi_i) # <<<<<<<<<<<<<< * elif wavelet.short_family_name == "cmor": * psi_r = np.zeros(output_len, np.float64) */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 66, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_psi_r)); __Pyx_GIVEREF(((PyObject *)__pyx_v_psi_r)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_psi_r)); __Pyx_INCREF(((PyObject *)__pyx_v_psi_i)); __Pyx_GIVEREF(((PyObject *)__pyx_v_psi_i)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_psi_i)); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "pywt/_extensions/_cwt.pyx":58 * c_wt.double_shan(&data[0], psi_r.data, psi_i.data, data_size, bandwidth_frequency, center_frequency) * return (psi_r, psi_i) * elif wavelet.short_family_name == "fbsp": # <<<<<<<<<<<<<< * psi_r = np.zeros(output_len, np.float64) * psi_i = np.zeros(output_len, np.float64) */ } /* "pywt/_extensions/_cwt.pyx":67 * c_wt.double_fbsp(&data[0], psi_r.data, psi_i.data, data_size, fbsp_order, bandwidth_frequency, center_frequency) * return (psi_r, psi_i) * elif wavelet.short_family_name == "cmor": # <<<<<<<<<<<<<< * psi_r = np.zeros(output_len, np.float64) * psi_i = np.zeros(output_len, np.float64) */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_short_family_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_cmor, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_4) { /* "pywt/_extensions/_cwt.pyx":68 * return (psi_r, psi_i) * elif wavelet.short_family_name == "cmor": * psi_r = np.zeros(output_len, np.float64) # <<<<<<<<<<<<<< * psi_i = np.zeros(output_len, np.float64) * bandwidth_frequency = wavelet.bandwidth_frequency */ __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_float64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_7, __pyx_t_6}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_7, __pyx_t_6}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_8, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_8, __pyx_t_6); __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 68, __pyx_L1_error) __pyx_v_psi_r = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_cwt.pyx":69 * elif wavelet.short_family_name == "cmor": * psi_r = np.zeros(output_len, np.float64) * psi_i = np.zeros(output_len, np.float64) # <<<<<<<<<<<<<< * bandwidth_frequency = wavelet.bandwidth_frequency * center_frequency = wavelet.center_frequency */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_float64); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_1, __pyx_t_7}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_1, __pyx_t_7}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_7); __pyx_t_1 = 0; __pyx_t_7 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 69, __pyx_L1_error) __pyx_v_psi_i = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_cwt.pyx":70 * psi_r = np.zeros(output_len, np.float64) * psi_i = np.zeros(output_len, np.float64) * bandwidth_frequency = wavelet.bandwidth_frequency # <<<<<<<<<<<<<< * center_frequency = wavelet.center_frequency * with nogil: */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_bandwidth_frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 70, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 70, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_bandwidth_frequency = __pyx_t_14; /* "pywt/_extensions/_cwt.pyx":71 * psi_i = np.zeros(output_len, np.float64) * bandwidth_frequency = wavelet.bandwidth_frequency * center_frequency = wavelet.center_frequency # <<<<<<<<<<<<<< * with nogil: * c_wt.double_cmor(&data[0], psi_r.data, psi_i.data, data_size, bandwidth_frequency, center_frequency) */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_center_frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_center_frequency = __pyx_t_14; /* "pywt/_extensions/_cwt.pyx":72 * bandwidth_frequency = wavelet.bandwidth_frequency * center_frequency = wavelet.center_frequency * with nogil: # <<<<<<<<<<<<<< * c_wt.double_cmor(&data[0], psi_r.data, psi_i.data, data_size, bandwidth_frequency, center_frequency) * return (psi_r, psi_i) */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_cwt.pyx":73 * center_frequency = wavelet.center_frequency * with nogil: * c_wt.double_cmor(&data[0], psi_r.data, psi_i.data, data_size, bandwidth_frequency, center_frequency) # <<<<<<<<<<<<<< * return (psi_r, psi_i) * */ __pyx_t_17 = 0; double_cmor((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_data.data) + __pyx_t_17)) )))), ((double *)__pyx_v_psi_r->data), ((double *)__pyx_v_psi_i->data), __pyx_v_data_size, __pyx_v_bandwidth_frequency, __pyx_v_center_frequency); } /* "pywt/_extensions/_cwt.pyx":72 * bandwidth_frequency = wavelet.bandwidth_frequency * center_frequency = wavelet.center_frequency * with nogil: # <<<<<<<<<<<<<< * c_wt.double_cmor(&data[0], psi_r.data, psi_i.data, data_size, bandwidth_frequency, center_frequency) * return (psi_r, psi_i) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L25; } __pyx_L25:; } } /* "pywt/_extensions/_cwt.pyx":74 * with nogil: * c_wt.double_cmor(&data[0], psi_r.data, psi_i.data, data_size, bandwidth_frequency, center_frequency) * return (psi_r, psi_i) # <<<<<<<<<<<<<< * * elif data_t is np.float32_t: */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_psi_r)); __Pyx_GIVEREF(((PyObject *)__pyx_v_psi_r)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_psi_r)); __Pyx_INCREF(((PyObject *)__pyx_v_psi_i)); __Pyx_GIVEREF(((PyObject *)__pyx_v_psi_i)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_psi_i)); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "pywt/_extensions/_cwt.pyx":67 * c_wt.double_fbsp(&data[0], psi_r.data, psi_i.data, data_size, fbsp_order, bandwidth_frequency, center_frequency) * return (psi_r, psi_i) * elif wavelet.short_family_name == "cmor": # <<<<<<<<<<<<<< * psi_r = np.zeros(output_len, np.float64) * psi_i = np.zeros(output_len, np.float64) */ } /* "pywt/_extensions/_cwt.pyx":13 * * * cpdef cwt_psi_single(data_t[::1] data, ContinuousWavelet wavelet, size_t output_len): # <<<<<<<<<<<<<< * cdef np.ndarray psi, psi_r, psi_i * cdef size_t data_size = data.size */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("pywt._extensions._cwt.cwt_psi_single", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_psi); __Pyx_XDECREF((PyObject *)__pyx_v_psi_r); __Pyx_XDECREF((PyObject *)__pyx_v_psi_i); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_4_cwt_5__pyx_fuse_1cwt_psi_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_1__pyx_mdef_4pywt_11_extensions_4_cwt_5__pyx_fuse_1cwt_psi_single = {"__pyx_fuse_1cwt_psi_single", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_4_cwt_5__pyx_fuse_1cwt_psi_single, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_4pywt_11_extensions_4_cwt_5__pyx_fuse_1cwt_psi_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } }; struct ContinuousWaveletObject *__pyx_v_wavelet = 0; size_t __pyx_v_output_len; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_1cwt_psi_single (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_data,&__pyx_n_s_wavelet,&__pyx_n_s_output_len,0}; PyObject* values[3] = {0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wavelet)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1cwt_psi_single", 1, 3, 3, 1); __PYX_ERR(0, 13, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_output_len)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1cwt_psi_single", 1, 3, 3, 2); __PYX_ERR(0, 13, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1cwt_psi_single") < 0)) __PYX_ERR(0, 13, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); } __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 13, __pyx_L3_error) __pyx_v_wavelet = ((struct ContinuousWaveletObject *)values[1]); __pyx_v_output_len = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_output_len == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 13, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1cwt_psi_single", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 13, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._cwt.__pyx_fuse_1cwt_psi_single", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_wavelet), __pyx_ptype_4pywt_11_extensions_5_pywt_ContinuousWavelet, 1, "wavelet", 0))) __PYX_ERR(0, 13, __pyx_L1_error) __pyx_r = __pyx_pf_4pywt_11_extensions_4_cwt_4__pyx_fuse_1cwt_psi_single(__pyx_self, __pyx_v_data, __pyx_v_wavelet, __pyx_v_output_len); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_cwt_4__pyx_fuse_1cwt_psi_single(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_data, struct ContinuousWaveletObject *__pyx_v_wavelet, size_t __pyx_v_output_len) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__pyx_fuse_1cwt_psi_single", 0); __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_data.memview)) { __Pyx_RaiseUnboundLocalError("data"); __PYX_ERR(0, 13, __pyx_L1_error) } __pyx_t_1 = __pyx_fuse_1__pyx_f_4pywt_11_extensions_4_cwt_cwt_psi_single(__pyx_v_data, __pyx_v_wavelet, __pyx_v_output_len, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._cwt.__pyx_fuse_1cwt_psi_single", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":258 * # experimental exception made for __getbuffer__ and __releasebuffer__ * # -- the details of this may change. * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< * # This implementation of getbuffer is geared towards Cython * # requirements, and does not yet fulfill the PEP. */ /* Python wrapper */ static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); __pyx_r = __pyx_pf_5numpy_7ndarray___getbuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_v_i; int __pyx_v_ndim; int __pyx_v_endian_detector; int __pyx_v_little_endian; int __pyx_v_t; char *__pyx_v_f; PyArray_Descr *__pyx_v_descr = 0; int __pyx_v_offset; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_t_5; int __pyx_t_6; PyArray_Descr *__pyx_t_7; PyObject *__pyx_t_8 = NULL; char *__pyx_t_9; if (__pyx_v_info == NULL) { PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); return -1; } __Pyx_RefNannySetupContext("__getbuffer__", 0); __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); __Pyx_GIVEREF(__pyx_v_info->obj); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":265 * * cdef int i, ndim * cdef int endian_detector = 1 # <<<<<<<<<<<<<< * cdef bint little_endian = ((&endian_detector)[0] != 0) * */ __pyx_v_endian_detector = 1; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":266 * cdef int i, ndim * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< * * ndim = PyArray_NDIM(self) */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":268 * cdef bint little_endian = ((&endian_detector)[0] != 0) * * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<< * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) */ __pyx_v_ndim = PyArray_NDIM(__pyx_v_self); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":270 * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") */ __pyx_t_2 = (((__pyx_v_flags & PyBUF_C_CONTIGUOUS) == PyBUF_C_CONTIGUOUS) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L4_bool_binop_done; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":271 * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< * raise ValueError(u"ndarray is not C contiguous") * */ __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_C_CONTIGUOUS) != 0)) != 0); __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":270 * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") */ if (unlikely(__pyx_t_1)) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":272 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 272, __pyx_L1_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":270 * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":274 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") */ __pyx_t_2 = (((__pyx_v_flags & PyBUF_F_CONTIGUOUS) == PyBUF_F_CONTIGUOUS) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L7_bool_binop_done; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":275 * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< * raise ValueError(u"ndarray is not Fortran contiguous") * */ __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_F_CONTIGUOUS) != 0)) != 0); __pyx_t_1 = __pyx_t_2; __pyx_L7_bool_binop_done:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":274 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") */ if (unlikely(__pyx_t_1)) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":276 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< * * info.buf = PyArray_DATA(self) */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 276, __pyx_L1_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":274 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":278 * raise ValueError(u"ndarray is not Fortran contiguous") * * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< * info.ndim = ndim * if sizeof(npy_intp) != sizeof(Py_ssize_t): */ __pyx_v_info->buf = PyArray_DATA(__pyx_v_self); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":279 * * info.buf = PyArray_DATA(self) * info.ndim = ndim # <<<<<<<<<<<<<< * if sizeof(npy_intp) != sizeof(Py_ssize_t): * # Allocate new buffer for strides and shape info. */ __pyx_v_info->ndim = __pyx_v_ndim; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":280 * info.buf = PyArray_DATA(self) * info.ndim = ndim * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< * # Allocate new buffer for strides and shape info. * # This is allocated as one block, strides first. */ __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); if (__pyx_t_1) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":283 * # Allocate new buffer for strides and shape info. * # This is allocated as one block, strides first. * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim) # <<<<<<<<<<<<<< * info.shape = info.strides + ndim * for i in range(ndim): */ __pyx_v_info->strides = ((Py_ssize_t *)PyObject_Malloc((((sizeof(Py_ssize_t)) * 2) * ((size_t)__pyx_v_ndim)))); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":284 * # This is allocated as one block, strides first. * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim) * info.shape = info.strides + ndim # <<<<<<<<<<<<<< * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] */ __pyx_v_info->shape = (__pyx_v_info->strides + __pyx_v_ndim); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":285 * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim) * info.shape = info.strides + ndim * for i in range(ndim): # <<<<<<<<<<<<<< * info.strides[i] = PyArray_STRIDES(self)[i] * info.shape[i] = PyArray_DIMS(self)[i] */ __pyx_t_4 = __pyx_v_ndim; __pyx_t_5 = __pyx_t_4; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":286 * info.shape = info.strides + ndim * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] # <<<<<<<<<<<<<< * info.shape[i] = PyArray_DIMS(self)[i] * else: */ (__pyx_v_info->strides[__pyx_v_i]) = (PyArray_STRIDES(__pyx_v_self)[__pyx_v_i]); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":287 * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] * info.shape[i] = PyArray_DIMS(self)[i] # <<<<<<<<<<<<<< * else: * info.strides = PyArray_STRIDES(self) */ (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":280 * info.buf = PyArray_DATA(self) * info.ndim = ndim * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< * # Allocate new buffer for strides and shape info. * # This is allocated as one block, strides first. */ goto __pyx_L9; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":289 * info.shape[i] = PyArray_DIMS(self)[i] * else: * info.strides = PyArray_STRIDES(self) # <<<<<<<<<<<<<< * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL */ /*else*/ { __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":290 * else: * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) # <<<<<<<<<<<<<< * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) */ __pyx_v_info->shape = ((Py_ssize_t *)PyArray_DIMS(__pyx_v_self)); } __pyx_L9:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":291 * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL # <<<<<<<<<<<<<< * info.itemsize = PyArray_ITEMSIZE(self) * info.readonly = not PyArray_ISWRITEABLE(self) */ __pyx_v_info->suboffsets = NULL; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":292 * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) # <<<<<<<<<<<<<< * info.readonly = not PyArray_ISWRITEABLE(self) * */ __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":293 * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) * info.readonly = not PyArray_ISWRITEABLE(self) # <<<<<<<<<<<<<< * * cdef int t */ __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0)); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":296 * * cdef int t * cdef char* f = NULL # <<<<<<<<<<<<<< * cdef dtype descr = PyArray_DESCR(self) * cdef int offset */ __pyx_v_f = NULL; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":297 * cdef int t * cdef char* f = NULL * cdef dtype descr = PyArray_DESCR(self) # <<<<<<<<<<<<<< * cdef int offset * */ __pyx_t_7 = PyArray_DESCR(__pyx_v_self); __pyx_t_3 = ((PyObject *)__pyx_t_7); __Pyx_INCREF(__pyx_t_3); __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); __pyx_t_3 = 0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":300 * cdef int offset * * info.obj = self # <<<<<<<<<<<<<< * * if not PyDataType_HASFIELDS(descr): */ __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = ((PyObject *)__pyx_v_self); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":302 * info.obj = self * * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or */ __pyx_t_1 = ((!(PyDataType_HASFIELDS(__pyx_v_descr) != 0)) != 0); if (__pyx_t_1) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":303 * * if not PyDataType_HASFIELDS(descr): * t = descr.type_num # <<<<<<<<<<<<<< * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): */ __pyx_t_4 = __pyx_v_descr->type_num; __pyx_v_t = __pyx_t_4; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":304 * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ __pyx_t_2 = ((__pyx_v_descr->byteorder == '>') != 0); if (!__pyx_t_2) { goto __pyx_L15_next_or; } else { } __pyx_t_2 = (__pyx_v_little_endian != 0); if (!__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L14_bool_binop_done; } __pyx_L15_next_or:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":305 * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" */ __pyx_t_2 = ((__pyx_v_descr->byteorder == '<') != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L14_bool_binop_done; } __pyx_t_2 = ((!(__pyx_v_little_endian != 0)) != 0); __pyx_t_1 = __pyx_t_2; __pyx_L14_bool_binop_done:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":304 * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ if (unlikely(__pyx_t_1)) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":306 * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 306, __pyx_L1_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":304 * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":307 * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" # <<<<<<<<<<<<<< * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" */ switch (__pyx_v_t) { case NPY_BYTE: __pyx_v_f = ((char *)"b"); break; case NPY_UBYTE: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":308 * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" # <<<<<<<<<<<<<< * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" */ __pyx_v_f = ((char *)"B"); break; case NPY_SHORT: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":309 * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" # <<<<<<<<<<<<<< * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" */ __pyx_v_f = ((char *)"h"); break; case NPY_USHORT: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":310 * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" # <<<<<<<<<<<<<< * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" */ __pyx_v_f = ((char *)"H"); break; case NPY_INT: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":311 * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" # <<<<<<<<<<<<<< * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" */ __pyx_v_f = ((char *)"i"); break; case NPY_UINT: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":312 * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" # <<<<<<<<<<<<<< * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" */ __pyx_v_f = ((char *)"I"); break; case NPY_LONG: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":313 * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" # <<<<<<<<<<<<<< * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" */ __pyx_v_f = ((char *)"l"); break; case NPY_ULONG: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":314 * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" # <<<<<<<<<<<<<< * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" */ __pyx_v_f = ((char *)"L"); break; case NPY_LONGLONG: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":315 * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" # <<<<<<<<<<<<<< * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" */ __pyx_v_f = ((char *)"q"); break; case NPY_ULONGLONG: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":316 * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" # <<<<<<<<<<<<<< * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" */ __pyx_v_f = ((char *)"Q"); break; case NPY_FLOAT: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":317 * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" # <<<<<<<<<<<<<< * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" */ __pyx_v_f = ((char *)"f"); break; case NPY_DOUBLE: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":318 * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" # <<<<<<<<<<<<<< * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" */ __pyx_v_f = ((char *)"d"); break; case NPY_LONGDOUBLE: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":319 * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" # <<<<<<<<<<<<<< * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" */ __pyx_v_f = ((char *)"g"); break; case NPY_CFLOAT: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":320 * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" # <<<<<<<<<<<<<< * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" */ __pyx_v_f = ((char *)"Zf"); break; case NPY_CDOUBLE: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":321 * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" # <<<<<<<<<<<<<< * elif t == NPY_CLONGDOUBLE: f = "Zg" * elif t == NPY_OBJECT: f = "O" */ __pyx_v_f = ((char *)"Zd"); break; case NPY_CLONGDOUBLE: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":322 * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" # <<<<<<<<<<<<<< * elif t == NPY_OBJECT: f = "O" * else: */ __pyx_v_f = ((char *)"Zg"); break; case NPY_OBJECT: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":323 * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" * elif t == NPY_OBJECT: f = "O" # <<<<<<<<<<<<<< * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) */ __pyx_v_f = ((char *)"O"); break; default: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":325 * elif t == NPY_OBJECT: f = "O" * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< * info.format = f * return */ __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 325, __pyx_L1_error) break; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":326 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f # <<<<<<<<<<<<<< * return * else: */ __pyx_v_info->format = __pyx_v_f; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":327 * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f * return # <<<<<<<<<<<<<< * else: * info.format = PyObject_Malloc(_buffer_format_string_len) */ __pyx_r = 0; goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":302 * info.obj = self * * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":329 * return * else: * info.format = PyObject_Malloc(_buffer_format_string_len) # <<<<<<<<<<<<<< * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 */ /*else*/ { __pyx_v_info->format = ((char *)PyObject_Malloc(0xFF)); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":330 * else: * info.format = PyObject_Malloc(_buffer_format_string_len) * info.format[0] = c'^' # Native data types, manual alignment # <<<<<<<<<<<<<< * offset = 0 * f = _util_dtypestring(descr, info.format + 1, */ (__pyx_v_info->format[0]) = '^'; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":331 * info.format = PyObject_Malloc(_buffer_format_string_len) * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 # <<<<<<<<<<<<<< * f = _util_dtypestring(descr, info.format + 1, * info.format + _buffer_format_string_len, */ __pyx_v_offset = 0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":332 * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 * f = _util_dtypestring(descr, info.format + 1, # <<<<<<<<<<<<<< * info.format + _buffer_format_string_len, * &offset) */ __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_descr, (__pyx_v_info->format + 1), (__pyx_v_info->format + 0xFF), (&__pyx_v_offset)); if (unlikely(__pyx_t_9 == ((char *)NULL))) __PYX_ERR(1, 332, __pyx_L1_error) __pyx_v_f = __pyx_t_9; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":335 * info.format + _buffer_format_string_len, * &offset) * f[0] = c'\0' # Terminate format string # <<<<<<<<<<<<<< * * def __releasebuffer__(ndarray self, Py_buffer* info): */ (__pyx_v_f[0]) = '\x00'; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":258 * # experimental exception made for __getbuffer__ and __releasebuffer__ * # -- the details of this may change. * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< * # This implementation of getbuffer is geared towards Cython * # requirements, and does not yet fulfill the PEP. */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("numpy.ndarray.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; if (__pyx_v_info->obj != NULL) { __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; } goto __pyx_L2; __pyx_L0:; if (__pyx_v_info->obj == Py_None) { __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; } __pyx_L2:; __Pyx_XDECREF((PyObject *)__pyx_v_descr); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":337 * f[0] = c'\0' # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) */ /* Python wrapper */ static CYTHON_UNUSED void __pyx_pw_5numpy_7ndarray_3__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info); /*proto*/ static CYTHON_UNUSED void __pyx_pw_5numpy_7ndarray_3__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__releasebuffer__ (wrapper)", 0); __pyx_pf_5numpy_7ndarray_2__releasebuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info) { __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("__releasebuffer__", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":338 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): */ __pyx_t_1 = (PyArray_HASFIELDS(__pyx_v_self) != 0); if (__pyx_t_1) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":339 * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) # <<<<<<<<<<<<<< * if sizeof(npy_intp) != sizeof(Py_ssize_t): * PyObject_Free(info.strides) */ PyObject_Free(__pyx_v_info->format); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":338 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":340 * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< * PyObject_Free(info.strides) * # info.shape was stored after info.strides in the same block */ __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); if (__pyx_t_1) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":341 * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): * PyObject_Free(info.strides) # <<<<<<<<<<<<<< * # info.shape was stored after info.strides in the same block * */ PyObject_Free(__pyx_v_info->strides); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":340 * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< * PyObject_Free(info.strides) * # info.shape was stored after info.strides in the same block */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":337 * f[0] = c'\0' # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":821 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(1, a) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__pyx_v_a) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":822 * * cdef inline object PyArray_MultiIterNew1(a): * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew2(a, b): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":821 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(1, a) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew1", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":824 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(2, a, b) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyObject *__pyx_v_b) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":825 * * cdef inline object PyArray_MultiIterNew2(a, b): * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew3(a, b, c): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 825, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":824 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(2, a, b) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew2", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":827 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(3, a, b, c) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":828 * * cdef inline object PyArray_MultiIterNew3(a, b, c): * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":827 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(3, a, b, c) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew3", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":830 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(4, a, b, c, d) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":831 * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): * return PyArray_MultiIterNew(4, a, b, c, d) # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 831, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":830 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(4, a, b, c, d) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew4", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":833 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(5, a, b, c, d, e) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d, PyObject *__pyx_v_e) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":834 * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): * return PyArray_MultiIterNew(5, a, b, c, d, e) # <<<<<<<<<<<<<< * * cdef inline tuple PyDataType_SHAPE(dtype d): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":833 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(5, a, b, c, d, e) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew5", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":836 * return PyArray_MultiIterNew(5, a, b, c, d, e) * * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< * if PyDataType_HASSUBARRAY(d): * return d.subarray.shape */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__pyx_v_d) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":837 * * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< * return d.subarray.shape * else: */ __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0); if (__pyx_t_1) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":838 * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): * return d.subarray.shape # <<<<<<<<<<<<<< * else: * return () */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject*)__pyx_v_d->subarray->shape)); __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape); goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":837 * * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< * return d.subarray.shape * else: */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":840 * return d.subarray.shape * else: * return () # <<<<<<<<<<<<<< * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: */ /*else*/ { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_empty_tuple); __pyx_r = __pyx_empty_tuple; goto __pyx_L0; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":836 * return PyArray_MultiIterNew(5, a, b, c, d, e) * * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< * if PyDataType_HASSUBARRAY(d): * return d.subarray.shape */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":842 * return () * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< * # Recursive utility function used in __getbuffer__ to get format * # string. The new location in the format string is returned. */ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx_v_descr, char *__pyx_v_f, char *__pyx_v_end, int *__pyx_v_offset) { PyArray_Descr *__pyx_v_child = 0; int __pyx_v_endian_detector; int __pyx_v_little_endian; PyObject *__pyx_v_fields = 0; PyObject *__pyx_v_childname = NULL; PyObject *__pyx_v_new_offset = NULL; PyObject *__pyx_v_t = NULL; char *__pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_t_6; int __pyx_t_7; long __pyx_t_8; char *__pyx_t_9; __Pyx_RefNannySetupContext("_util_dtypestring", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":847 * * cdef dtype child * cdef int endian_detector = 1 # <<<<<<<<<<<<<< * cdef bint little_endian = ((&endian_detector)[0] != 0) * cdef tuple fields */ __pyx_v_endian_detector = 1; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":848 * cdef dtype child * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< * cdef tuple fields * */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":851 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< * fields = descr.fields[childname] * child, new_offset = fields */ if (unlikely(__pyx_v_descr->names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(1, 851, __pyx_L1_error) } __pyx_t_1 = __pyx_v_descr->names; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; for (;;) { if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 851, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 851, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); __pyx_t_3 = 0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":852 * * for childname in descr.names: * fields = descr.fields[childname] # <<<<<<<<<<<<<< * child, new_offset = fields * */ if (unlikely(__pyx_v_descr->fields == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(1, 852, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 852, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(1, 852, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":853 * for childname in descr.names: * fields = descr.fields[childname] * child, new_offset = fields # <<<<<<<<<<<<<< * * if (end - f) - (new_offset - offset[0]) < 15: */ if (likely(__pyx_v_fields != Py_None)) { PyObject* sequence = __pyx_v_fields; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(1, 853, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); #else __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 853, __pyx_L1_error) } if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(1, 853, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_child, ((PyArray_Descr *)__pyx_t_3)); __pyx_t_3 = 0; __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4); __pyx_t_4 = 0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":855 * child, new_offset = fields * * if (end - f) - (new_offset - offset[0]) < 15: # <<<<<<<<<<<<<< * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * */ __pyx_t_4 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 855, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0); if (unlikely(__pyx_t_6)) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":856 * * if (end - f) - (new_offset - offset[0]) < 15: * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") # <<<<<<<<<<<<<< * * if ((child.byteorder == c'>' and little_endian) or */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 856, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 856, __pyx_L1_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":855 * child, new_offset = fields * * if (end - f) - (new_offset - offset[0]) < 15: # <<<<<<<<<<<<<< * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":858 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ __pyx_t_7 = ((__pyx_v_child->byteorder == '>') != 0); if (!__pyx_t_7) { goto __pyx_L8_next_or; } else { } __pyx_t_7 = (__pyx_v_little_endian != 0); if (!__pyx_t_7) { } else { __pyx_t_6 = __pyx_t_7; goto __pyx_L7_bool_binop_done; } __pyx_L8_next_or:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":859 * * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< * raise ValueError(u"Non-native byte order not supported") * # One could encode it in the format string and have Cython */ __pyx_t_7 = ((__pyx_v_child->byteorder == '<') != 0); if (__pyx_t_7) { } else { __pyx_t_6 = __pyx_t_7; goto __pyx_L7_bool_binop_done; } __pyx_t_7 = ((!(__pyx_v_little_endian != 0)) != 0); __pyx_t_6 = __pyx_t_7; __pyx_L7_bool_binop_done:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":858 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ if (unlikely(__pyx_t_6)) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":860 * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< * # One could encode it in the format string and have Cython * # complain instead, BUT: < and > in format strings also imply */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 860, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 860, __pyx_L1_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":858 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":870 * * # Output padding bytes * while offset[0] < new_offset: # <<<<<<<<<<<<<< * f[0] = 120 # "x"; pad byte * f += 1 */ while (1) { __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 870, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_new_offset, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 870, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 870, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!__pyx_t_6) break; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":871 * # Output padding bytes * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< * f += 1 * offset[0] += 1 */ (__pyx_v_f[0]) = 0x78; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":872 * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte * f += 1 # <<<<<<<<<<<<<< * offset[0] += 1 * */ __pyx_v_f = (__pyx_v_f + 1); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":873 * f[0] = 120 # "x"; pad byte * f += 1 * offset[0] += 1 # <<<<<<<<<<<<<< * * offset[0] += child.itemsize */ __pyx_t_8 = 0; (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":875 * offset[0] += 1 * * offset[0] += child.itemsize # <<<<<<<<<<<<<< * * if not PyDataType_HASFIELDS(child): */ __pyx_t_8 = 0; (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":877 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< * t = child.type_num * if end - f < 5: */ __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); if (__pyx_t_6) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":878 * * if not PyDataType_HASFIELDS(child): * t = child.type_num # <<<<<<<<<<<<<< * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") */ __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 878, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); __pyx_t_4 = 0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":879 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< * raise RuntimeError(u"Format string allocated too short.") * */ __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); if (unlikely(__pyx_t_6)) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":880 * t = child.type_num * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< * * # Until ticket #99 is fixed, use integers to avoid warnings */ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 880, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 880, __pyx_L1_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":879 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< * raise RuntimeError(u"Format string allocated too short.") * */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":883 * * # Until ticket #99 is fixed, use integers to avoid warnings * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 883, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 883, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 98; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":884 * # Until ticket #99 is fixed, use integers to avoid warnings * if t == NPY_BYTE: f[0] = 98 #"b" * elif t == NPY_UBYTE: f[0] = 66 #"B" # <<<<<<<<<<<<<< * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 884, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 884, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 884, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 66; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":885 * if t == NPY_BYTE: f[0] = 98 #"b" * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<< * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 885, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 885, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 885, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x68; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":886 * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<< * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 886, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 886, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 886, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 72; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":887 * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<< * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 887, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 887, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x69; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":888 * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<< * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 888, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 888, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 73; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":889 * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<< * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 889, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 889, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x6C; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":890 * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<< * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 890, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 890, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 76; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":891 * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<< * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 891, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 891, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x71; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":892 * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<< * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 892, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 892, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 81; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":893 * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<< * elif t == NPY_DOUBLE: f[0] = 100 #"d" * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 893, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 893, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x66; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":894 * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<< * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 894, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 894, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x64; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":895 * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<< * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 895, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 895, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 895, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x67; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":896 * elif t == NPY_DOUBLE: f[0] = 100 #"d" * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf # <<<<<<<<<<<<<< * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 896, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 896, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; (__pyx_v_f[1]) = 0x66; __pyx_v_f = (__pyx_v_f + 1); goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":897 * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd # <<<<<<<<<<<<<< * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg * elif t == NPY_OBJECT: f[0] = 79 #"O" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 897, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 897, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; (__pyx_v_f[1]) = 0x64; __pyx_v_f = (__pyx_v_f + 1); goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":898 * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg # <<<<<<<<<<<<<< * elif t == NPY_OBJECT: f[0] = 79 #"O" * else: */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 898, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 898, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; (__pyx_v_f[1]) = 0x67; __pyx_v_f = (__pyx_v_f + 1); goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":899 * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg * elif t == NPY_OBJECT: f[0] = 79 #"O" # <<<<<<<<<<<<<< * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 899, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 899, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (likely(__pyx_t_6)) { (__pyx_v_f[0]) = 79; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":901 * elif t == NPY_OBJECT: f[0] = 79 #"O" * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< * f += 1 * else: */ /*else*/ { __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 901, __pyx_L1_error) } __pyx_L15:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":902 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * f += 1 # <<<<<<<<<<<<<< * else: * # Cython ignores struct boundary information ("T{...}"), */ __pyx_v_f = (__pyx_v_f + 1); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":877 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< * t = child.type_num * if end - f < 5: */ goto __pyx_L13; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":906 * # Cython ignores struct boundary information ("T{...}"), * # so don't output it * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< * return f * */ /*else*/ { __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_child, __pyx_v_f, __pyx_v_end, __pyx_v_offset); if (unlikely(__pyx_t_9 == ((char *)NULL))) __PYX_ERR(1, 906, __pyx_L1_error) __pyx_v_f = __pyx_t_9; } __pyx_L13:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":851 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< * fields = descr.fields[childname] * child, new_offset = fields */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":907 * # so don't output it * f = _util_dtypestring(child, f, end, offset) * return f # <<<<<<<<<<<<<< * * */ __pyx_r = __pyx_v_f; goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":842 * return () * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< * # Recursive utility function used in __getbuffer__ to get format * # string. The new location in the format string is returned. */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("numpy._util_dtypestring", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_child); __Pyx_XDECREF(__pyx_v_fields); __Pyx_XDECREF(__pyx_v_childname); __Pyx_XDECREF(__pyx_v_new_offset); __Pyx_XDECREF(__pyx_v_t); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1022 * int _import_umath() except -1 * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< * Py_INCREF(base) # important to do this before stealing the reference below! * PyArray_SetBaseObject(arr, base) */ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("set_array_base", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1023 * * cdef inline void set_array_base(ndarray arr, object base): * Py_INCREF(base) # important to do this before stealing the reference below! # <<<<<<<<<<<<<< * PyArray_SetBaseObject(arr, base) * */ Py_INCREF(__pyx_v_base); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1024 * cdef inline void set_array_base(ndarray arr, object base): * Py_INCREF(base) # important to do this before stealing the reference below! * PyArray_SetBaseObject(arr, base) # <<<<<<<<<<<<<< * * cdef inline object get_array_base(ndarray arr): */ (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base)); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1022 * int _import_umath() except -1 * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< * Py_INCREF(base) # important to do this before stealing the reference below! * PyArray_SetBaseObject(arr, base) */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1026 * PyArray_SetBaseObject(arr, base) * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< * base = PyArray_BASE(arr) * if base is NULL: */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) { PyObject *__pyx_v_base; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("get_array_base", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1027 * * cdef inline object get_array_base(ndarray arr): * base = PyArray_BASE(arr) # <<<<<<<<<<<<<< * if base is NULL: * return None */ __pyx_v_base = PyArray_BASE(__pyx_v_arr); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1028 * cdef inline object get_array_base(ndarray arr): * base = PyArray_BASE(arr) * if base is NULL: # <<<<<<<<<<<<<< * return None * return base */ __pyx_t_1 = ((__pyx_v_base == NULL) != 0); if (__pyx_t_1) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1029 * base = PyArray_BASE(arr) * if base is NULL: * return None # <<<<<<<<<<<<<< * return base * */ __Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1028 * cdef inline object get_array_base(ndarray arr): * base = PyArray_BASE(arr) * if base is NULL: # <<<<<<<<<<<<<< * return None * return base */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1030 * if base is NULL: * return None * return base # <<<<<<<<<<<<<< * * # Versions of the import_* functions which are more suitable for */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_base)); __pyx_r = ((PyObject *)__pyx_v_base); goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1026 * PyArray_SetBaseObject(arr, base) * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< * base = PyArray_BASE(arr) * if base is NULL: */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1034 * # Versions of the import_* functions which are more suitable for * # Cython code. * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< * try: * _import_array() */ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_array", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1035 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< * _import_array() * except Exception: */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1036 * cdef inline int import_array() except -1: * try: * _import_array() # <<<<<<<<<<<<<< * except Exception: * raise ImportError("numpy.core.multiarray failed to import") */ __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1036, __pyx_L3_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1035 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< * _import_array() * except Exception: */ } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L8_try_end; __pyx_L3_error:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1037 * try: * _import_array() * except Exception: # <<<<<<<<<<<<<< * raise ImportError("numpy.core.multiarray failed to import") * */ __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_4) { __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1037, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1038 * _import_array() * except Exception: * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< * * cdef inline int import_umath() except -1: */ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1038, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __PYX_ERR(1, 1038, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1035 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< * _import_array() * except Exception: */ __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L8_try_end:; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1034 * # Versions of the import_* functions which are more suitable for * # Cython code. * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< * try: * _import_array() */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1040 * raise ImportError("numpy.core.multiarray failed to import") * * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< * try: * _import_umath() */ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_umath", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1041 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< * _import_umath() * except Exception: */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1042 * cdef inline int import_umath() except -1: * try: * _import_umath() # <<<<<<<<<<<<<< * except Exception: * raise ImportError("numpy.core.umath failed to import") */ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1042, __pyx_L3_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1041 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< * _import_umath() * except Exception: */ } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L8_try_end; __pyx_L3_error:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1043 * try: * _import_umath() * except Exception: # <<<<<<<<<<<<<< * raise ImportError("numpy.core.umath failed to import") * */ __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_4) { __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1043, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1044 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< * * cdef inline int import_ufunc() except -1: */ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1044, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __PYX_ERR(1, 1044, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1041 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< * _import_umath() * except Exception: */ __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L8_try_end:; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1040 * raise ImportError("numpy.core.multiarray failed to import") * * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< * try: * _import_umath() */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1046 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< * try: * _import_umath() */ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_ufunc", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1047 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< * _import_umath() * except Exception: */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1048 * cdef inline int import_ufunc() except -1: * try: * _import_umath() # <<<<<<<<<<<<<< * except Exception: * raise ImportError("numpy.core.umath failed to import") */ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1048, __pyx_L3_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1047 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< * _import_umath() * except Exception: */ } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L8_try_end; __pyx_L3_error:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1049 * try: * _import_umath() * except Exception: # <<<<<<<<<<<<<< * raise ImportError("numpy.core.umath failed to import") */ __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_4) { __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1049, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1050 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< */ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1050, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __PYX_ERR(1, 1050, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1047 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< * _import_umath() * except Exception: */ __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L8_try_end:; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1046 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< * try: * _import_umath() */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":122 * cdef bint dtype_is_object * * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<< * mode="c", bint allocate_buffer=True): * */ /* Python wrapper */ static int __pyx_array___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_array___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_shape = 0; Py_ssize_t __pyx_v_itemsize; PyObject *__pyx_v_format = 0; PyObject *__pyx_v_mode = 0; int __pyx_v_allocate_buffer; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_shape,&__pyx_n_s_itemsize,&__pyx_n_s_format,&__pyx_n_s_mode,&__pyx_n_s_allocate_buffer,0}; PyObject* values[5] = {0,0,0,0,0}; values[3] = ((PyObject *)__pyx_n_s_c); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_shape)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_itemsize)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, 1); __PYX_ERR(2, 122, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_format)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, 2); __PYX_ERR(2, 122, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); if (value) { values[3] = value; kw_args--; } } CYTHON_FALLTHROUGH; case 4: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allocate_buffer); if (value) { values[4] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(2, 122, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_shape = ((PyObject*)values[0]); __pyx_v_itemsize = __Pyx_PyIndex_AsSsize_t(values[1]); if (unlikely((__pyx_v_itemsize == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 122, __pyx_L3_error) __pyx_v_format = values[2]; __pyx_v_mode = values[3]; if (values[4]) { __pyx_v_allocate_buffer = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allocate_buffer == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 123, __pyx_L3_error) } else { /* "View.MemoryView":123 * * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, * mode="c", bint allocate_buffer=True): # <<<<<<<<<<<<<< * * cdef int idx */ __pyx_v_allocate_buffer = ((int)1); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 122, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("View.MemoryView.array.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_shape), (&PyTuple_Type), 1, "shape", 1))) __PYX_ERR(2, 122, __pyx_L1_error) if (unlikely(((PyObject *)__pyx_v_format) == Py_None)) { PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "format"); __PYX_ERR(2, 122, __pyx_L1_error) } __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(((struct __pyx_array_obj *)__pyx_v_self), __pyx_v_shape, __pyx_v_itemsize, __pyx_v_format, __pyx_v_mode, __pyx_v_allocate_buffer); /* "View.MemoryView":122 * cdef bint dtype_is_object * * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<< * mode="c", bint allocate_buffer=True): * */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, PyObject *__pyx_v_format, PyObject *__pyx_v_mode, int __pyx_v_allocate_buffer) { int __pyx_v_idx; Py_ssize_t __pyx_v_i; Py_ssize_t __pyx_v_dim; PyObject **__pyx_v_p; char __pyx_v_order; int __pyx_r; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; char *__pyx_t_7; int __pyx_t_8; Py_ssize_t __pyx_t_9; PyObject *__pyx_t_10 = NULL; Py_ssize_t __pyx_t_11; __Pyx_RefNannySetupContext("__cinit__", 0); __Pyx_INCREF(__pyx_v_format); /* "View.MemoryView":129 * cdef PyObject **p * * self.ndim = len(shape) # <<<<<<<<<<<<<< * self.itemsize = itemsize * */ if (unlikely(__pyx_v_shape == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(2, 129, __pyx_L1_error) } __pyx_t_1 = PyTuple_GET_SIZE(__pyx_v_shape); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(2, 129, __pyx_L1_error) __pyx_v_self->ndim = ((int)__pyx_t_1); /* "View.MemoryView":130 * * self.ndim = len(shape) * self.itemsize = itemsize # <<<<<<<<<<<<<< * * if not self.ndim: */ __pyx_v_self->itemsize = __pyx_v_itemsize; /* "View.MemoryView":132 * self.itemsize = itemsize * * if not self.ndim: # <<<<<<<<<<<<<< * raise ValueError("Empty shape tuple for cython.array") * */ __pyx_t_2 = ((!(__pyx_v_self->ndim != 0)) != 0); if (unlikely(__pyx_t_2)) { /* "View.MemoryView":133 * * if not self.ndim: * raise ValueError("Empty shape tuple for cython.array") # <<<<<<<<<<<<<< * * if itemsize <= 0: */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 133, __pyx_L1_error) /* "View.MemoryView":132 * self.itemsize = itemsize * * if not self.ndim: # <<<<<<<<<<<<<< * raise ValueError("Empty shape tuple for cython.array") * */ } /* "View.MemoryView":135 * raise ValueError("Empty shape tuple for cython.array") * * if itemsize <= 0: # <<<<<<<<<<<<<< * raise ValueError("itemsize <= 0 for cython.array") * */ __pyx_t_2 = ((__pyx_v_itemsize <= 0) != 0); if (unlikely(__pyx_t_2)) { /* "View.MemoryView":136 * * if itemsize <= 0: * raise ValueError("itemsize <= 0 for cython.array") # <<<<<<<<<<<<<< * * if not isinstance(format, bytes): */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 136, __pyx_L1_error) /* "View.MemoryView":135 * raise ValueError("Empty shape tuple for cython.array") * * if itemsize <= 0: # <<<<<<<<<<<<<< * raise ValueError("itemsize <= 0 for cython.array") * */ } /* "View.MemoryView":138 * raise ValueError("itemsize <= 0 for cython.array") * * if not isinstance(format, bytes): # <<<<<<<<<<<<<< * format = format.encode('ASCII') * self._format = format # keep a reference to the byte string */ __pyx_t_2 = PyBytes_Check(__pyx_v_format); __pyx_t_4 = ((!(__pyx_t_2 != 0)) != 0); if (__pyx_t_4) { /* "View.MemoryView":139 * * if not isinstance(format, bytes): * format = format.encode('ASCII') # <<<<<<<<<<<<<< * self._format = format # keep a reference to the byte string * self.format = self._format */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_format, __pyx_n_s_encode); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_n_s_ASCII) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_n_s_ASCII); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF_SET(__pyx_v_format, __pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":138 * raise ValueError("itemsize <= 0 for cython.array") * * if not isinstance(format, bytes): # <<<<<<<<<<<<<< * format = format.encode('ASCII') * self._format = format # keep a reference to the byte string */ } /* "View.MemoryView":140 * if not isinstance(format, bytes): * format = format.encode('ASCII') * self._format = format # keep a reference to the byte string # <<<<<<<<<<<<<< * self.format = self._format * */ if (!(likely(PyBytes_CheckExact(__pyx_v_format))||((__pyx_v_format) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_v_format)->tp_name), 0))) __PYX_ERR(2, 140, __pyx_L1_error) __pyx_t_3 = __pyx_v_format; __Pyx_INCREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_self->_format); __Pyx_DECREF(__pyx_v_self->_format); __pyx_v_self->_format = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":141 * format = format.encode('ASCII') * self._format = format # keep a reference to the byte string * self.format = self._format # <<<<<<<<<<<<<< * * */ if (unlikely(__pyx_v_self->_format == Py_None)) { PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found"); __PYX_ERR(2, 141, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyBytes_AsWritableString(__pyx_v_self->_format); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) __PYX_ERR(2, 141, __pyx_L1_error) __pyx_v_self->format = __pyx_t_7; /* "View.MemoryView":144 * * * self._shape = PyObject_Malloc(sizeof(Py_ssize_t)*self.ndim*2) # <<<<<<<<<<<<<< * self._strides = self._shape + self.ndim * */ __pyx_v_self->_shape = ((Py_ssize_t *)PyObject_Malloc((((sizeof(Py_ssize_t)) * __pyx_v_self->ndim) * 2))); /* "View.MemoryView":145 * * self._shape = PyObject_Malloc(sizeof(Py_ssize_t)*self.ndim*2) * self._strides = self._shape + self.ndim # <<<<<<<<<<<<<< * * if not self._shape: */ __pyx_v_self->_strides = (__pyx_v_self->_shape + __pyx_v_self->ndim); /* "View.MemoryView":147 * self._strides = self._shape + self.ndim * * if not self._shape: # <<<<<<<<<<<<<< * raise MemoryError("unable to allocate shape and strides.") * */ __pyx_t_4 = ((!(__pyx_v_self->_shape != 0)) != 0); if (unlikely(__pyx_t_4)) { /* "View.MemoryView":148 * * if not self._shape: * raise MemoryError("unable to allocate shape and strides.") # <<<<<<<<<<<<<< * * */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 148, __pyx_L1_error) /* "View.MemoryView":147 * self._strides = self._shape + self.ndim * * if not self._shape: # <<<<<<<<<<<<<< * raise MemoryError("unable to allocate shape and strides.") * */ } /* "View.MemoryView":151 * * * for idx, dim in enumerate(shape): # <<<<<<<<<<<<<< * if dim <= 0: * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) */ __pyx_t_8 = 0; __pyx_t_3 = __pyx_v_shape; __Pyx_INCREF(__pyx_t_3); __pyx_t_1 = 0; for (;;) { if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_1); __Pyx_INCREF(__pyx_t_5); __pyx_t_1++; if (unlikely(0 < 0)) __PYX_ERR(2, 151, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_t_5); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 151, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_dim = __pyx_t_9; __pyx_v_idx = __pyx_t_8; __pyx_t_8 = (__pyx_t_8 + 1); /* "View.MemoryView":152 * * for idx, dim in enumerate(shape): * if dim <= 0: # <<<<<<<<<<<<<< * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) * self._shape[idx] = dim */ __pyx_t_4 = ((__pyx_v_dim <= 0) != 0); if (unlikely(__pyx_t_4)) { /* "View.MemoryView":153 * for idx, dim in enumerate(shape): * if dim <= 0: * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) # <<<<<<<<<<<<<< * self._shape[idx] = dim * */ __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_idx); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_dim); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_6); __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Invalid_shape_in_axis_d_d, __pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_6); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_Raise(__pyx_t_10, 0, 0, 0); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __PYX_ERR(2, 153, __pyx_L1_error) /* "View.MemoryView":152 * * for idx, dim in enumerate(shape): * if dim <= 0: # <<<<<<<<<<<<<< * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) * self._shape[idx] = dim */ } /* "View.MemoryView":154 * if dim <= 0: * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) * self._shape[idx] = dim # <<<<<<<<<<<<<< * * cdef char order */ (__pyx_v_self->_shape[__pyx_v_idx]) = __pyx_v_dim; /* "View.MemoryView":151 * * * for idx, dim in enumerate(shape): # <<<<<<<<<<<<<< * if dim <= 0: * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":157 * * cdef char order * if mode == 'fortran': # <<<<<<<<<<<<<< * order = b'F' * self.mode = u'fortran' */ __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_fortran, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(2, 157, __pyx_L1_error) if (__pyx_t_4) { /* "View.MemoryView":158 * cdef char order * if mode == 'fortran': * order = b'F' # <<<<<<<<<<<<<< * self.mode = u'fortran' * elif mode == 'c': */ __pyx_v_order = 'F'; /* "View.MemoryView":159 * if mode == 'fortran': * order = b'F' * self.mode = u'fortran' # <<<<<<<<<<<<<< * elif mode == 'c': * order = b'C' */ __Pyx_INCREF(__pyx_n_u_fortran); __Pyx_GIVEREF(__pyx_n_u_fortran); __Pyx_GOTREF(__pyx_v_self->mode); __Pyx_DECREF(__pyx_v_self->mode); __pyx_v_self->mode = __pyx_n_u_fortran; /* "View.MemoryView":157 * * cdef char order * if mode == 'fortran': # <<<<<<<<<<<<<< * order = b'F' * self.mode = u'fortran' */ goto __pyx_L10; } /* "View.MemoryView":160 * order = b'F' * self.mode = u'fortran' * elif mode == 'c': # <<<<<<<<<<<<<< * order = b'C' * self.mode = u'c' */ __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_c, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(2, 160, __pyx_L1_error) if (likely(__pyx_t_4)) { /* "View.MemoryView":161 * self.mode = u'fortran' * elif mode == 'c': * order = b'C' # <<<<<<<<<<<<<< * self.mode = u'c' * else: */ __pyx_v_order = 'C'; /* "View.MemoryView":162 * elif mode == 'c': * order = b'C' * self.mode = u'c' # <<<<<<<<<<<<<< * else: * raise ValueError("Invalid mode, expected 'c' or 'fortran', got %s" % mode) */ __Pyx_INCREF(__pyx_n_u_c); __Pyx_GIVEREF(__pyx_n_u_c); __Pyx_GOTREF(__pyx_v_self->mode); __Pyx_DECREF(__pyx_v_self->mode); __pyx_v_self->mode = __pyx_n_u_c; /* "View.MemoryView":160 * order = b'F' * self.mode = u'fortran' * elif mode == 'c': # <<<<<<<<<<<<<< * order = b'C' * self.mode = u'c' */ goto __pyx_L10; } /* "View.MemoryView":164 * self.mode = u'c' * else: * raise ValueError("Invalid mode, expected 'c' or 'fortran', got %s" % mode) # <<<<<<<<<<<<<< * * self.len = fill_contig_strides_array(self._shape, self._strides, */ /*else*/ { __pyx_t_3 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Invalid_mode_expected_c_or_fortr, __pyx_v_mode); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_10, 0, 0, 0); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __PYX_ERR(2, 164, __pyx_L1_error) } __pyx_L10:; /* "View.MemoryView":166 * raise ValueError("Invalid mode, expected 'c' or 'fortran', got %s" % mode) * * self.len = fill_contig_strides_array(self._shape, self._strides, # <<<<<<<<<<<<<< * itemsize, self.ndim, order) * */ __pyx_v_self->len = __pyx_fill_contig_strides_array(__pyx_v_self->_shape, __pyx_v_self->_strides, __pyx_v_itemsize, __pyx_v_self->ndim, __pyx_v_order); /* "View.MemoryView":169 * itemsize, self.ndim, order) * * self.free_data = allocate_buffer # <<<<<<<<<<<<<< * self.dtype_is_object = format == b'O' * if allocate_buffer: */ __pyx_v_self->free_data = __pyx_v_allocate_buffer; /* "View.MemoryView":170 * * self.free_data = allocate_buffer * self.dtype_is_object = format == b'O' # <<<<<<<<<<<<<< * if allocate_buffer: * */ __pyx_t_10 = PyObject_RichCompare(__pyx_v_format, __pyx_n_b_O, Py_EQ); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 170, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 170, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_v_self->dtype_is_object = __pyx_t_4; /* "View.MemoryView":171 * self.free_data = allocate_buffer * self.dtype_is_object = format == b'O' * if allocate_buffer: # <<<<<<<<<<<<<< * * */ __pyx_t_4 = (__pyx_v_allocate_buffer != 0); if (__pyx_t_4) { /* "View.MemoryView":174 * * * self.data = malloc(self.len) # <<<<<<<<<<<<<< * if not self.data: * raise MemoryError("unable to allocate array data.") */ __pyx_v_self->data = ((char *)malloc(__pyx_v_self->len)); /* "View.MemoryView":175 * * self.data = malloc(self.len) * if not self.data: # <<<<<<<<<<<<<< * raise MemoryError("unable to allocate array data.") * */ __pyx_t_4 = ((!(__pyx_v_self->data != 0)) != 0); if (unlikely(__pyx_t_4)) { /* "View.MemoryView":176 * self.data = malloc(self.len) * if not self.data: * raise MemoryError("unable to allocate array data.") # <<<<<<<<<<<<<< * * if self.dtype_is_object: */ __pyx_t_10 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_Raise(__pyx_t_10, 0, 0, 0); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __PYX_ERR(2, 176, __pyx_L1_error) /* "View.MemoryView":175 * * self.data = malloc(self.len) * if not self.data: # <<<<<<<<<<<<<< * raise MemoryError("unable to allocate array data.") * */ } /* "View.MemoryView":178 * raise MemoryError("unable to allocate array data.") * * if self.dtype_is_object: # <<<<<<<<<<<<<< * p = self.data * for i in range(self.len / itemsize): */ __pyx_t_4 = (__pyx_v_self->dtype_is_object != 0); if (__pyx_t_4) { /* "View.MemoryView":179 * * if self.dtype_is_object: * p = self.data # <<<<<<<<<<<<<< * for i in range(self.len / itemsize): * p[i] = Py_None */ __pyx_v_p = ((PyObject **)__pyx_v_self->data); /* "View.MemoryView":180 * if self.dtype_is_object: * p = self.data * for i in range(self.len / itemsize): # <<<<<<<<<<<<<< * p[i] = Py_None * Py_INCREF(Py_None) */ if (unlikely(__pyx_v_itemsize == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero"); __PYX_ERR(2, 180, __pyx_L1_error) } else if (sizeof(Py_ssize_t) == sizeof(long) && (!(((Py_ssize_t)-1) > 0)) && unlikely(__pyx_v_itemsize == (Py_ssize_t)-1) && unlikely(UNARY_NEG_WOULD_OVERFLOW(__pyx_v_self->len))) { PyErr_SetString(PyExc_OverflowError, "value too large to perform division"); __PYX_ERR(2, 180, __pyx_L1_error) } __pyx_t_1 = __Pyx_div_Py_ssize_t(__pyx_v_self->len, __pyx_v_itemsize); __pyx_t_9 = __pyx_t_1; for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_9; __pyx_t_11+=1) { __pyx_v_i = __pyx_t_11; /* "View.MemoryView":181 * p = self.data * for i in range(self.len / itemsize): * p[i] = Py_None # <<<<<<<<<<<<<< * Py_INCREF(Py_None) * */ (__pyx_v_p[__pyx_v_i]) = Py_None; /* "View.MemoryView":182 * for i in range(self.len / itemsize): * p[i] = Py_None * Py_INCREF(Py_None) # <<<<<<<<<<<<<< * * @cname('getbuffer') */ Py_INCREF(Py_None); } /* "View.MemoryView":178 * raise MemoryError("unable to allocate array data.") * * if self.dtype_is_object: # <<<<<<<<<<<<<< * p = self.data * for i in range(self.len / itemsize): */ } /* "View.MemoryView":171 * self.free_data = allocate_buffer * self.dtype_is_object = format == b'O' * if allocate_buffer: # <<<<<<<<<<<<<< * * */ } /* "View.MemoryView":122 * cdef bint dtype_is_object * * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<< * mode="c", bint allocate_buffer=True): * */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("View.MemoryView.array.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_format); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":185 * * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< * cdef int bufmode = -1 * if self.mode == u"c": */ /* Python wrapper */ static CYTHON_UNUSED int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ static CYTHON_UNUSED int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(((struct __pyx_array_obj *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(struct __pyx_array_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_v_bufmode; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; char *__pyx_t_4; Py_ssize_t __pyx_t_5; int __pyx_t_6; Py_ssize_t *__pyx_t_7; if (__pyx_v_info == NULL) { PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); return -1; } __Pyx_RefNannySetupContext("__getbuffer__", 0); __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); __Pyx_GIVEREF(__pyx_v_info->obj); /* "View.MemoryView":186 * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): * cdef int bufmode = -1 # <<<<<<<<<<<<<< * if self.mode == u"c": * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS */ __pyx_v_bufmode = -1; /* "View.MemoryView":187 * def __getbuffer__(self, Py_buffer *info, int flags): * cdef int bufmode = -1 * if self.mode == u"c": # <<<<<<<<<<<<<< * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * elif self.mode == u"fortran": */ __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_self->mode, __pyx_n_u_c, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 187, __pyx_L1_error) __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":188 * cdef int bufmode = -1 * if self.mode == u"c": * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS # <<<<<<<<<<<<<< * elif self.mode == u"fortran": * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS */ __pyx_v_bufmode = (PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS); /* "View.MemoryView":187 * def __getbuffer__(self, Py_buffer *info, int flags): * cdef int bufmode = -1 * if self.mode == u"c": # <<<<<<<<<<<<<< * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * elif self.mode == u"fortran": */ goto __pyx_L3; } /* "View.MemoryView":189 * if self.mode == u"c": * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * elif self.mode == u"fortran": # <<<<<<<<<<<<<< * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): */ __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_self->mode, __pyx_n_u_fortran, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 189, __pyx_L1_error) __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* "View.MemoryView":190 * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * elif self.mode == u"fortran": * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS # <<<<<<<<<<<<<< * if not (flags & bufmode): * raise ValueError("Can only create a buffer that is contiguous in memory.") */ __pyx_v_bufmode = (PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS); /* "View.MemoryView":189 * if self.mode == u"c": * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * elif self.mode == u"fortran": # <<<<<<<<<<<<<< * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): */ } __pyx_L3:; /* "View.MemoryView":191 * elif self.mode == u"fortran": * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): # <<<<<<<<<<<<<< * raise ValueError("Can only create a buffer that is contiguous in memory.") * info.buf = self.data */ __pyx_t_1 = ((!((__pyx_v_flags & __pyx_v_bufmode) != 0)) != 0); if (unlikely(__pyx_t_1)) { /* "View.MemoryView":192 * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): * raise ValueError("Can only create a buffer that is contiguous in memory.") # <<<<<<<<<<<<<< * info.buf = self.data * info.len = self.len */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 192, __pyx_L1_error) /* "View.MemoryView":191 * elif self.mode == u"fortran": * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): # <<<<<<<<<<<<<< * raise ValueError("Can only create a buffer that is contiguous in memory.") * info.buf = self.data */ } /* "View.MemoryView":193 * if not (flags & bufmode): * raise ValueError("Can only create a buffer that is contiguous in memory.") * info.buf = self.data # <<<<<<<<<<<<<< * info.len = self.len * info.ndim = self.ndim */ __pyx_t_4 = __pyx_v_self->data; __pyx_v_info->buf = __pyx_t_4; /* "View.MemoryView":194 * raise ValueError("Can only create a buffer that is contiguous in memory.") * info.buf = self.data * info.len = self.len # <<<<<<<<<<<<<< * info.ndim = self.ndim * info.shape = self._shape */ __pyx_t_5 = __pyx_v_self->len; __pyx_v_info->len = __pyx_t_5; /* "View.MemoryView":195 * info.buf = self.data * info.len = self.len * info.ndim = self.ndim # <<<<<<<<<<<<<< * info.shape = self._shape * info.strides = self._strides */ __pyx_t_6 = __pyx_v_self->ndim; __pyx_v_info->ndim = __pyx_t_6; /* "View.MemoryView":196 * info.len = self.len * info.ndim = self.ndim * info.shape = self._shape # <<<<<<<<<<<<<< * info.strides = self._strides * info.suboffsets = NULL */ __pyx_t_7 = __pyx_v_self->_shape; __pyx_v_info->shape = __pyx_t_7; /* "View.MemoryView":197 * info.ndim = self.ndim * info.shape = self._shape * info.strides = self._strides # <<<<<<<<<<<<<< * info.suboffsets = NULL * info.itemsize = self.itemsize */ __pyx_t_7 = __pyx_v_self->_strides; __pyx_v_info->strides = __pyx_t_7; /* "View.MemoryView":198 * info.shape = self._shape * info.strides = self._strides * info.suboffsets = NULL # <<<<<<<<<<<<<< * info.itemsize = self.itemsize * info.readonly = 0 */ __pyx_v_info->suboffsets = NULL; /* "View.MemoryView":199 * info.strides = self._strides * info.suboffsets = NULL * info.itemsize = self.itemsize # <<<<<<<<<<<<<< * info.readonly = 0 * */ __pyx_t_5 = __pyx_v_self->itemsize; __pyx_v_info->itemsize = __pyx_t_5; /* "View.MemoryView":200 * info.suboffsets = NULL * info.itemsize = self.itemsize * info.readonly = 0 # <<<<<<<<<<<<<< * * if flags & PyBUF_FORMAT: */ __pyx_v_info->readonly = 0; /* "View.MemoryView":202 * info.readonly = 0 * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * info.format = self.format * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0); if (__pyx_t_1) { /* "View.MemoryView":203 * * if flags & PyBUF_FORMAT: * info.format = self.format # <<<<<<<<<<<<<< * else: * info.format = NULL */ __pyx_t_4 = __pyx_v_self->format; __pyx_v_info->format = __pyx_t_4; /* "View.MemoryView":202 * info.readonly = 0 * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * info.format = self.format * else: */ goto __pyx_L5; } /* "View.MemoryView":205 * info.format = self.format * else: * info.format = NULL # <<<<<<<<<<<<<< * * info.obj = self */ /*else*/ { __pyx_v_info->format = NULL; } __pyx_L5:; /* "View.MemoryView":207 * info.format = NULL * * info.obj = self # <<<<<<<<<<<<<< * * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") */ __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = ((PyObject *)__pyx_v_self); /* "View.MemoryView":185 * * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< * cdef int bufmode = -1 * if self.mode == u"c": */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.array.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; if (__pyx_v_info->obj != NULL) { __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; } goto __pyx_L2; __pyx_L0:; if (__pyx_v_info->obj == Py_None) { __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; } __pyx_L2:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":211 * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") * * def __dealloc__(array self): # <<<<<<<<<<<<<< * if self.callback_free_data != NULL: * self.callback_free_data(self.data) */ /* Python wrapper */ static void __pyx_array___dealloc__(PyObject *__pyx_v_self); /*proto*/ static void __pyx_array___dealloc__(PyObject *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(((struct __pyx_array_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(struct __pyx_array_obj *__pyx_v_self) { __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("__dealloc__", 0); /* "View.MemoryView":212 * * def __dealloc__(array self): * if self.callback_free_data != NULL: # <<<<<<<<<<<<<< * self.callback_free_data(self.data) * elif self.free_data: */ __pyx_t_1 = ((__pyx_v_self->callback_free_data != NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":213 * def __dealloc__(array self): * if self.callback_free_data != NULL: * self.callback_free_data(self.data) # <<<<<<<<<<<<<< * elif self.free_data: * if self.dtype_is_object: */ __pyx_v_self->callback_free_data(__pyx_v_self->data); /* "View.MemoryView":212 * * def __dealloc__(array self): * if self.callback_free_data != NULL: # <<<<<<<<<<<<<< * self.callback_free_data(self.data) * elif self.free_data: */ goto __pyx_L3; } /* "View.MemoryView":214 * if self.callback_free_data != NULL: * self.callback_free_data(self.data) * elif self.free_data: # <<<<<<<<<<<<<< * if self.dtype_is_object: * refcount_objects_in_slice(self.data, self._shape, */ __pyx_t_1 = (__pyx_v_self->free_data != 0); if (__pyx_t_1) { /* "View.MemoryView":215 * self.callback_free_data(self.data) * elif self.free_data: * if self.dtype_is_object: # <<<<<<<<<<<<<< * refcount_objects_in_slice(self.data, self._shape, * self._strides, self.ndim, False) */ __pyx_t_1 = (__pyx_v_self->dtype_is_object != 0); if (__pyx_t_1) { /* "View.MemoryView":216 * elif self.free_data: * if self.dtype_is_object: * refcount_objects_in_slice(self.data, self._shape, # <<<<<<<<<<<<<< * self._strides, self.ndim, False) * free(self.data) */ __pyx_memoryview_refcount_objects_in_slice(__pyx_v_self->data, __pyx_v_self->_shape, __pyx_v_self->_strides, __pyx_v_self->ndim, 0); /* "View.MemoryView":215 * self.callback_free_data(self.data) * elif self.free_data: * if self.dtype_is_object: # <<<<<<<<<<<<<< * refcount_objects_in_slice(self.data, self._shape, * self._strides, self.ndim, False) */ } /* "View.MemoryView":218 * refcount_objects_in_slice(self.data, self._shape, * self._strides, self.ndim, False) * free(self.data) # <<<<<<<<<<<<<< * PyObject_Free(self._shape) * */ free(__pyx_v_self->data); /* "View.MemoryView":214 * if self.callback_free_data != NULL: * self.callback_free_data(self.data) * elif self.free_data: # <<<<<<<<<<<<<< * if self.dtype_is_object: * refcount_objects_in_slice(self.data, self._shape, */ } __pyx_L3:; /* "View.MemoryView":219 * self._strides, self.ndim, False) * free(self.data) * PyObject_Free(self._shape) # <<<<<<<<<<<<<< * * @property */ PyObject_Free(__pyx_v_self->_shape); /* "View.MemoryView":211 * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") * * def __dealloc__(array self): # <<<<<<<<<<<<<< * if self.callback_free_data != NULL: * self.callback_free_data(self.data) */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "View.MemoryView":222 * * @property * def memview(self): # <<<<<<<<<<<<<< * return self.get_memview() * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_5array_7memview___get__(((struct __pyx_array_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_5array_7memview___get__(struct __pyx_array_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":223 * @property * def memview(self): * return self.get_memview() # <<<<<<<<<<<<<< * * @cname('get_memview') */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((struct __pyx_vtabstruct_array *)__pyx_v_self->__pyx_vtab)->get_memview(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":222 * * @property * def memview(self): # <<<<<<<<<<<<<< * return self.get_memview() * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.array.memview.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":226 * * @cname('get_memview') * cdef get_memview(self): # <<<<<<<<<<<<<< * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE * return memoryview(self, flags, self.dtype_is_object) */ static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *__pyx_v_self) { int __pyx_v_flags; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("get_memview", 0); /* "View.MemoryView":227 * @cname('get_memview') * cdef get_memview(self): * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE # <<<<<<<<<<<<<< * return memoryview(self, flags, self.dtype_is_object) * */ __pyx_v_flags = ((PyBUF_ANY_CONTIGUOUS | PyBUF_FORMAT) | PyBUF_WRITABLE); /* "View.MemoryView":228 * cdef get_memview(self): * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE * return memoryview(self, flags, self.dtype_is_object) # <<<<<<<<<<<<<< * * def __len__(self): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":226 * * @cname('get_memview') * cdef get_memview(self): # <<<<<<<<<<<<<< * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE * return memoryview(self, flags, self.dtype_is_object) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.array.get_memview", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":230 * return memoryview(self, flags, self.dtype_is_object) * * def __len__(self): # <<<<<<<<<<<<<< * return self._shape[0] * */ /* Python wrapper */ static Py_ssize_t __pyx_array___len__(PyObject *__pyx_v_self); /*proto*/ static Py_ssize_t __pyx_array___len__(PyObject *__pyx_v_self) { Py_ssize_t __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__len__ (wrapper)", 0); __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(((struct __pyx_array_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static Py_ssize_t __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(struct __pyx_array_obj *__pyx_v_self) { Py_ssize_t __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__len__", 0); /* "View.MemoryView":231 * * def __len__(self): * return self._shape[0] # <<<<<<<<<<<<<< * * def __getattr__(self, attr): */ __pyx_r = (__pyx_v_self->_shape[0]); goto __pyx_L0; /* "View.MemoryView":230 * return memoryview(self, flags, self.dtype_is_object) * * def __len__(self): # <<<<<<<<<<<<<< * return self._shape[0] * */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":233 * return self._shape[0] * * def __getattr__(self, attr): # <<<<<<<<<<<<<< * return getattr(self.memview, attr) * */ /* Python wrapper */ static PyObject *__pyx_array___getattr__(PyObject *__pyx_v_self, PyObject *__pyx_v_attr); /*proto*/ static PyObject *__pyx_array___getattr__(PyObject *__pyx_v_self, PyObject *__pyx_v_attr) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getattr__ (wrapper)", 0); __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_attr)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_attr) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__getattr__", 0); /* "View.MemoryView":234 * * def __getattr__(self, attr): * return getattr(self.memview, attr) # <<<<<<<<<<<<<< * * def __getitem__(self, item): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_GetAttr(__pyx_t_1, __pyx_v_attr); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":233 * return self._shape[0] * * def __getattr__(self, attr): # <<<<<<<<<<<<<< * return getattr(self.memview, attr) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.array.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":236 * return getattr(self.memview, attr) * * def __getitem__(self, item): # <<<<<<<<<<<<<< * return self.memview[item] * */ /* Python wrapper */ static PyObject *__pyx_array___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item); /*proto*/ static PyObject *__pyx_array___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_item)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__getitem__", 0); /* "View.MemoryView":237 * * def __getitem__(self, item): * return self.memview[item] # <<<<<<<<<<<<<< * * def __setitem__(self, item, value): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_item); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":236 * return getattr(self.memview, attr) * * def __getitem__(self, item): # <<<<<<<<<<<<<< * return self.memview[item] * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.array.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":239 * return self.memview[item] * * def __setitem__(self, item, value): # <<<<<<<<<<<<<< * self.memview[item] = value * */ /* Python wrapper */ static int __pyx_array___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value); /*proto*/ static int __pyx_array___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0); __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_item), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__setitem__", 0); /* "View.MemoryView":240 * * def __setitem__(self, item, value): * self.memview[item] = value # <<<<<<<<<<<<<< * * */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_item, __pyx_v_value) < 0)) __PYX_ERR(2, 240, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "View.MemoryView":239 * return self.memview[item] * * def __setitem__(self, item, value): # <<<<<<<<<<<<<< * self.memview[item] = value * */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.array.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_array_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw___pyx_array_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_array___reduce_cython__(((struct __pyx_array_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_array___reduce_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(2, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.array.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_array_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw___pyx_array_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_array_2__setstate_cython__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_array_2__setstate_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(2, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.array.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":244 * * @cname("__pyx_array_new") * cdef array array_cwrapper(tuple shape, Py_ssize_t itemsize, char *format, # <<<<<<<<<<<<<< * char *mode, char *buf): * cdef array result */ static struct __pyx_array_obj *__pyx_array_new(PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, char *__pyx_v_format, char *__pyx_v_mode, char *__pyx_v_buf) { struct __pyx_array_obj *__pyx_v_result = 0; struct __pyx_array_obj *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("array_cwrapper", 0); /* "View.MemoryView":248 * cdef array result * * if buf == NULL: # <<<<<<<<<<<<<< * result = array(shape, itemsize, format, mode.decode('ASCII')) * else: */ __pyx_t_1 = ((__pyx_v_buf == NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":249 * * if buf == NULL: * result = array(shape, itemsize, format, mode.decode('ASCII')) # <<<<<<<<<<<<<< * else: * result = array(shape, itemsize, format, mode.decode('ASCII'), */ __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_itemsize); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_format); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_decode_c_string(__pyx_v_mode, 0, strlen(__pyx_v_mode), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_shape); __Pyx_GIVEREF(__pyx_v_shape); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_shape); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_array_type), __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_result = ((struct __pyx_array_obj *)__pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":248 * cdef array result * * if buf == NULL: # <<<<<<<<<<<<<< * result = array(shape, itemsize, format, mode.decode('ASCII')) * else: */ goto __pyx_L3; } /* "View.MemoryView":251 * result = array(shape, itemsize, format, mode.decode('ASCII')) * else: * result = array(shape, itemsize, format, mode.decode('ASCII'), # <<<<<<<<<<<<<< * allocate_buffer=False) * result.data = buf */ /*else*/ { __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_itemsize); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_format); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_mode, 0, strlen(__pyx_v_mode), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_shape); __Pyx_GIVEREF(__pyx_v_shape); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_shape); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_3); __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_3 = 0; /* "View.MemoryView":252 * else: * result = array(shape, itemsize, format, mode.decode('ASCII'), * allocate_buffer=False) # <<<<<<<<<<<<<< * result.data = buf * */ __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_allocate_buffer, Py_False) < 0) __PYX_ERR(2, 252, __pyx_L1_error) /* "View.MemoryView":251 * result = array(shape, itemsize, format, mode.decode('ASCII')) * else: * result = array(shape, itemsize, format, mode.decode('ASCII'), # <<<<<<<<<<<<<< * allocate_buffer=False) * result.data = buf */ __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_array_type), __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_result = ((struct __pyx_array_obj *)__pyx_t_5); __pyx_t_5 = 0; /* "View.MemoryView":253 * result = array(shape, itemsize, format, mode.decode('ASCII'), * allocate_buffer=False) * result.data = buf # <<<<<<<<<<<<<< * * return result */ __pyx_v_result->data = __pyx_v_buf; } __pyx_L3:; /* "View.MemoryView":255 * result.data = buf * * return result # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_result)); __pyx_r = __pyx_v_result; goto __pyx_L0; /* "View.MemoryView":244 * * @cname("__pyx_array_new") * cdef array array_cwrapper(tuple shape, Py_ssize_t itemsize, char *format, # <<<<<<<<<<<<<< * char *mode, char *buf): * cdef array result */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.array_cwrapper", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_result); __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":281 * cdef class Enum(object): * cdef object name * def __init__(self, name): # <<<<<<<<<<<<<< * self.name = name * def __repr__(self): */ /* Python wrapper */ static int __pyx_MemviewEnum___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_MemviewEnum___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_name = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0}; PyObject* values[1] = {0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(2, 281, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); } __pyx_v_name = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 281, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("View.MemoryView.Enum.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self), __pyx_v_name); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v_name) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); /* "View.MemoryView":282 * cdef object name * def __init__(self, name): * self.name = name # <<<<<<<<<<<<<< * def __repr__(self): * return self.name */ __Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); __Pyx_GOTREF(__pyx_v_self->name); __Pyx_DECREF(__pyx_v_self->name); __pyx_v_self->name = __pyx_v_name; /* "View.MemoryView":281 * cdef class Enum(object): * cdef object name * def __init__(self, name): # <<<<<<<<<<<<<< * self.name = name * def __repr__(self): */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":283 * def __init__(self, name): * self.name = name * def __repr__(self): # <<<<<<<<<<<<<< * return self.name * */ /* Python wrapper */ static PyObject *__pyx_MemviewEnum___repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_MemviewEnum___repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(struct __pyx_MemviewEnum_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__", 0); /* "View.MemoryView":284 * self.name = name * def __repr__(self): * return self.name # <<<<<<<<<<<<<< * * cdef generic = Enum("") */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->name); __pyx_r = __pyx_v_self->name; goto __pyx_L0; /* "View.MemoryView":283 * def __init__(self, name): * self.name = name * def __repr__(self): # <<<<<<<<<<<<<< * return self.name * */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * cdef tuple state * cdef object _dict */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_MemviewEnum_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw___pyx_MemviewEnum_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_MemviewEnum___reduce_cython__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_MemviewEnum___reduce_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self) { PyObject *__pyx_v_state = 0; PyObject *__pyx_v__dict = 0; int __pyx_v_use_setstate; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":5 * cdef object _dict * cdef bint use_setstate * state = (self.name,) # <<<<<<<<<<<<<< * _dict = getattr(self, '__dict__', None) * if _dict is not None: */ __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_self->name); __Pyx_GIVEREF(__pyx_v_self->name); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->name); __pyx_v_state = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "(tree fragment)":6 * cdef bint use_setstate * state = (self.name,) * _dict = getattr(self, '__dict__', None) # <<<<<<<<<<<<<< * if _dict is not None: * state += (_dict,) */ __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v__dict = __pyx_t_1; __pyx_t_1 = 0; /* "(tree fragment)":7 * state = (self.name,) * _dict = getattr(self, '__dict__', None) * if _dict is not None: # <<<<<<<<<<<<<< * state += (_dict,) * use_setstate = True */ __pyx_t_2 = (__pyx_v__dict != Py_None); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* "(tree fragment)":8 * _dict = getattr(self, '__dict__', None) * if _dict is not None: * state += (_dict,) # <<<<<<<<<<<<<< * use_setstate = True * else: */ __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v__dict); __Pyx_GIVEREF(__pyx_v__dict); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict); __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4)); __pyx_t_4 = 0; /* "(tree fragment)":9 * if _dict is not None: * state += (_dict,) * use_setstate = True # <<<<<<<<<<<<<< * else: * use_setstate = self.name is not None */ __pyx_v_use_setstate = 1; /* "(tree fragment)":7 * state = (self.name,) * _dict = getattr(self, '__dict__', None) * if _dict is not None: # <<<<<<<<<<<<<< * state += (_dict,) * use_setstate = True */ goto __pyx_L3; } /* "(tree fragment)":11 * use_setstate = True * else: * use_setstate = self.name is not None # <<<<<<<<<<<<<< * if use_setstate: * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state */ /*else*/ { __pyx_t_3 = (__pyx_v_self->name != Py_None); __pyx_v_use_setstate = __pyx_t_3; } __pyx_L3:; /* "(tree fragment)":12 * else: * use_setstate = self.name is not None * if use_setstate: # <<<<<<<<<<<<<< * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state * else: */ __pyx_t_3 = (__pyx_v_use_setstate != 0); if (__pyx_t_3) { /* "(tree fragment)":13 * use_setstate = self.name is not None * if use_setstate: * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state # <<<<<<<<<<<<<< * else: * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Enum); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_INCREF(__pyx_int_184977713); __Pyx_GIVEREF(__pyx_int_184977713); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_184977713); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None); __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1); __Pyx_INCREF(__pyx_v_state); __Pyx_GIVEREF(__pyx_v_state); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state); __pyx_t_4 = 0; __pyx_t_1 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0; /* "(tree fragment)":12 * else: * use_setstate = self.name is not None * if use_setstate: # <<<<<<<<<<<<<< * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state * else: */ } /* "(tree fragment)":15 * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state * else: * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * __pyx_unpickle_Enum__set_state(self, __pyx_state) */ /*else*/ { __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_Enum); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_INCREF(__pyx_int_184977713); __Pyx_GIVEREF(__pyx_int_184977713); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_184977713); __Pyx_INCREF(__pyx_v_state); __Pyx_GIVEREF(__pyx_v_state); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); __pyx_t_5 = 0; __pyx_t_1 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * cdef tuple state * cdef object _dict */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.Enum.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_state); __Pyx_XDECREF(__pyx_v__dict); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":16 * else: * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * __pyx_unpickle_Enum__set_state(self, __pyx_state) */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_MemviewEnum_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw___pyx_MemviewEnum_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_MemviewEnum_2__setstate_cython__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_MemviewEnum_2__setstate_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":17 * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) * def __setstate_cython__(self, __pyx_state): * __pyx_unpickle_Enum__set_state(self, __pyx_state) # <<<<<<<<<<<<<< */ if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(2, 17, __pyx_L1_error) __pyx_t_1 = __pyx_unpickle_Enum__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 17, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "(tree fragment)":16 * else: * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * __pyx_unpickle_Enum__set_state(self, __pyx_state) */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.Enum.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":298 * * @cname('__pyx_align_pointer') * cdef void *align_pointer(void *memory, size_t alignment) nogil: # <<<<<<<<<<<<<< * "Align pointer memory on a given boundary" * cdef Py_intptr_t aligned_p = memory */ static void *__pyx_align_pointer(void *__pyx_v_memory, size_t __pyx_v_alignment) { Py_intptr_t __pyx_v_aligned_p; size_t __pyx_v_offset; void *__pyx_r; int __pyx_t_1; /* "View.MemoryView":300 * cdef void *align_pointer(void *memory, size_t alignment) nogil: * "Align pointer memory on a given boundary" * cdef Py_intptr_t aligned_p = memory # <<<<<<<<<<<<<< * cdef size_t offset * */ __pyx_v_aligned_p = ((Py_intptr_t)__pyx_v_memory); /* "View.MemoryView":304 * * with cython.cdivision(True): * offset = aligned_p % alignment # <<<<<<<<<<<<<< * * if offset > 0: */ __pyx_v_offset = (__pyx_v_aligned_p % __pyx_v_alignment); /* "View.MemoryView":306 * offset = aligned_p % alignment * * if offset > 0: # <<<<<<<<<<<<<< * aligned_p += alignment - offset * */ __pyx_t_1 = ((__pyx_v_offset > 0) != 0); if (__pyx_t_1) { /* "View.MemoryView":307 * * if offset > 0: * aligned_p += alignment - offset # <<<<<<<<<<<<<< * * return aligned_p */ __pyx_v_aligned_p = (__pyx_v_aligned_p + (__pyx_v_alignment - __pyx_v_offset)); /* "View.MemoryView":306 * offset = aligned_p % alignment * * if offset > 0: # <<<<<<<<<<<<<< * aligned_p += alignment - offset * */ } /* "View.MemoryView":309 * aligned_p += alignment - offset * * return aligned_p # <<<<<<<<<<<<<< * * */ __pyx_r = ((void *)__pyx_v_aligned_p); goto __pyx_L0; /* "View.MemoryView":298 * * @cname('__pyx_align_pointer') * cdef void *align_pointer(void *memory, size_t alignment) nogil: # <<<<<<<<<<<<<< * "Align pointer memory on a given boundary" * cdef Py_intptr_t aligned_p = memory */ /* function exit code */ __pyx_L0:; return __pyx_r; } /* "View.MemoryView":345 * cdef __Pyx_TypeInfo *typeinfo * * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): # <<<<<<<<<<<<<< * self.obj = obj * self.flags = flags */ /* Python wrapper */ static int __pyx_memoryview___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_memoryview___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_obj = 0; int __pyx_v_flags; int __pyx_v_dtype_is_object; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_obj,&__pyx_n_s_flags,&__pyx_n_s_dtype_is_object,0}; PyObject* values[3] = {0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_obj)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, 1); __PYX_ERR(2, 345, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dtype_is_object); if (value) { values[2] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(2, 345, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_obj = values[0]; __pyx_v_flags = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_flags == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 345, __pyx_L3_error) if (values[2]) { __pyx_v_dtype_is_object = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_dtype_is_object == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 345, __pyx_L3_error) } else { __pyx_v_dtype_is_object = ((int)0); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 345, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("View.MemoryView.memoryview.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_obj, __pyx_v_flags, __pyx_v_dtype_is_object); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_v_flags, int __pyx_v_dtype_is_object) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; __Pyx_RefNannySetupContext("__cinit__", 0); /* "View.MemoryView":346 * * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): * self.obj = obj # <<<<<<<<<<<<<< * self.flags = flags * if type(self) is memoryview or obj is not None: */ __Pyx_INCREF(__pyx_v_obj); __Pyx_GIVEREF(__pyx_v_obj); __Pyx_GOTREF(__pyx_v_self->obj); __Pyx_DECREF(__pyx_v_self->obj); __pyx_v_self->obj = __pyx_v_obj; /* "View.MemoryView":347 * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): * self.obj = obj * self.flags = flags # <<<<<<<<<<<<<< * if type(self) is memoryview or obj is not None: * __Pyx_GetBuffer(obj, &self.view, flags) */ __pyx_v_self->flags = __pyx_v_flags; /* "View.MemoryView":348 * self.obj = obj * self.flags = flags * if type(self) is memoryview or obj is not None: # <<<<<<<<<<<<<< * __Pyx_GetBuffer(obj, &self.view, flags) * if self.view.obj == NULL: */ __pyx_t_2 = (((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))) == ((PyObject *)__pyx_memoryview_type)); __pyx_t_3 = (__pyx_t_2 != 0); if (!__pyx_t_3) { } else { __pyx_t_1 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = (__pyx_v_obj != Py_None); __pyx_t_2 = (__pyx_t_3 != 0); __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; if (__pyx_t_1) { /* "View.MemoryView":349 * self.flags = flags * if type(self) is memoryview or obj is not None: * __Pyx_GetBuffer(obj, &self.view, flags) # <<<<<<<<<<<<<< * if self.view.obj == NULL: * (<__pyx_buffer *> &self.view).obj = Py_None */ __pyx_t_4 = __Pyx_GetBuffer(__pyx_v_obj, (&__pyx_v_self->view), __pyx_v_flags); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 349, __pyx_L1_error) /* "View.MemoryView":350 * if type(self) is memoryview or obj is not None: * __Pyx_GetBuffer(obj, &self.view, flags) * if self.view.obj == NULL: # <<<<<<<<<<<<<< * (<__pyx_buffer *> &self.view).obj = Py_None * Py_INCREF(Py_None) */ __pyx_t_1 = ((((PyObject *)__pyx_v_self->view.obj) == NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":351 * __Pyx_GetBuffer(obj, &self.view, flags) * if self.view.obj == NULL: * (<__pyx_buffer *> &self.view).obj = Py_None # <<<<<<<<<<<<<< * Py_INCREF(Py_None) * */ ((Py_buffer *)(&__pyx_v_self->view))->obj = Py_None; /* "View.MemoryView":352 * if self.view.obj == NULL: * (<__pyx_buffer *> &self.view).obj = Py_None * Py_INCREF(Py_None) # <<<<<<<<<<<<<< * * global __pyx_memoryview_thread_locks_used */ Py_INCREF(Py_None); /* "View.MemoryView":350 * if type(self) is memoryview or obj is not None: * __Pyx_GetBuffer(obj, &self.view, flags) * if self.view.obj == NULL: # <<<<<<<<<<<<<< * (<__pyx_buffer *> &self.view).obj = Py_None * Py_INCREF(Py_None) */ } /* "View.MemoryView":348 * self.obj = obj * self.flags = flags * if type(self) is memoryview or obj is not None: # <<<<<<<<<<<<<< * __Pyx_GetBuffer(obj, &self.view, flags) * if self.view.obj == NULL: */ } /* "View.MemoryView":355 * * global __pyx_memoryview_thread_locks_used * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: # <<<<<<<<<<<<<< * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] * __pyx_memoryview_thread_locks_used += 1 */ __pyx_t_1 = ((__pyx_memoryview_thread_locks_used < 8) != 0); if (__pyx_t_1) { /* "View.MemoryView":356 * global __pyx_memoryview_thread_locks_used * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks_used += 1 * if self.lock is NULL: */ __pyx_v_self->lock = (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]); /* "View.MemoryView":357 * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] * __pyx_memoryview_thread_locks_used += 1 # <<<<<<<<<<<<<< * if self.lock is NULL: * self.lock = PyThread_allocate_lock() */ __pyx_memoryview_thread_locks_used = (__pyx_memoryview_thread_locks_used + 1); /* "View.MemoryView":355 * * global __pyx_memoryview_thread_locks_used * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: # <<<<<<<<<<<<<< * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] * __pyx_memoryview_thread_locks_used += 1 */ } /* "View.MemoryView":358 * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] * __pyx_memoryview_thread_locks_used += 1 * if self.lock is NULL: # <<<<<<<<<<<<<< * self.lock = PyThread_allocate_lock() * if self.lock is NULL: */ __pyx_t_1 = ((__pyx_v_self->lock == NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":359 * __pyx_memoryview_thread_locks_used += 1 * if self.lock is NULL: * self.lock = PyThread_allocate_lock() # <<<<<<<<<<<<<< * if self.lock is NULL: * raise MemoryError */ __pyx_v_self->lock = PyThread_allocate_lock(); /* "View.MemoryView":360 * if self.lock is NULL: * self.lock = PyThread_allocate_lock() * if self.lock is NULL: # <<<<<<<<<<<<<< * raise MemoryError * */ __pyx_t_1 = ((__pyx_v_self->lock == NULL) != 0); if (unlikely(__pyx_t_1)) { /* "View.MemoryView":361 * self.lock = PyThread_allocate_lock() * if self.lock is NULL: * raise MemoryError # <<<<<<<<<<<<<< * * if flags & PyBUF_FORMAT: */ PyErr_NoMemory(); __PYX_ERR(2, 361, __pyx_L1_error) /* "View.MemoryView":360 * if self.lock is NULL: * self.lock = PyThread_allocate_lock() * if self.lock is NULL: # <<<<<<<<<<<<<< * raise MemoryError * */ } /* "View.MemoryView":358 * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] * __pyx_memoryview_thread_locks_used += 1 * if self.lock is NULL: # <<<<<<<<<<<<<< * self.lock = PyThread_allocate_lock() * if self.lock is NULL: */ } /* "View.MemoryView":363 * raise MemoryError * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0); if (__pyx_t_1) { /* "View.MemoryView":364 * * if flags & PyBUF_FORMAT: * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') # <<<<<<<<<<<<<< * else: * self.dtype_is_object = dtype_is_object */ __pyx_t_2 = (((__pyx_v_self->view.format[0]) == 'O') != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L11_bool_binop_done; } __pyx_t_2 = (((__pyx_v_self->view.format[1]) == '\x00') != 0); __pyx_t_1 = __pyx_t_2; __pyx_L11_bool_binop_done:; __pyx_v_self->dtype_is_object = __pyx_t_1; /* "View.MemoryView":363 * raise MemoryError * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') * else: */ goto __pyx_L10; } /* "View.MemoryView":366 * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') * else: * self.dtype_is_object = dtype_is_object # <<<<<<<<<<<<<< * * self.acquisition_count_aligned_p = <__pyx_atomic_int *> align_pointer( */ /*else*/ { __pyx_v_self->dtype_is_object = __pyx_v_dtype_is_object; } __pyx_L10:; /* "View.MemoryView":368 * self.dtype_is_object = dtype_is_object * * self.acquisition_count_aligned_p = <__pyx_atomic_int *> align_pointer( # <<<<<<<<<<<<<< * &self.acquisition_count[0], sizeof(__pyx_atomic_int)) * self.typeinfo = NULL */ __pyx_v_self->acquisition_count_aligned_p = ((__pyx_atomic_int *)__pyx_align_pointer(((void *)(&(__pyx_v_self->acquisition_count[0]))), (sizeof(__pyx_atomic_int)))); /* "View.MemoryView":370 * self.acquisition_count_aligned_p = <__pyx_atomic_int *> align_pointer( * &self.acquisition_count[0], sizeof(__pyx_atomic_int)) * self.typeinfo = NULL # <<<<<<<<<<<<<< * * def __dealloc__(memoryview self): */ __pyx_v_self->typeinfo = NULL; /* "View.MemoryView":345 * cdef __Pyx_TypeInfo *typeinfo * * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): # <<<<<<<<<<<<<< * self.obj = obj * self.flags = flags */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("View.MemoryView.memoryview.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":372 * self.typeinfo = NULL * * def __dealloc__(memoryview self): # <<<<<<<<<<<<<< * if self.obj is not None: * __Pyx_ReleaseBuffer(&self.view) */ /* Python wrapper */ static void __pyx_memoryview___dealloc__(PyObject *__pyx_v_self); /*proto*/ static void __pyx_memoryview___dealloc__(PyObject *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(struct __pyx_memoryview_obj *__pyx_v_self) { int __pyx_v_i; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; int __pyx_t_5; PyThread_type_lock __pyx_t_6; PyThread_type_lock __pyx_t_7; __Pyx_RefNannySetupContext("__dealloc__", 0); /* "View.MemoryView":373 * * def __dealloc__(memoryview self): * if self.obj is not None: # <<<<<<<<<<<<<< * __Pyx_ReleaseBuffer(&self.view) * elif (<__pyx_buffer *> &self.view).obj == Py_None: */ __pyx_t_1 = (__pyx_v_self->obj != Py_None); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":374 * def __dealloc__(memoryview self): * if self.obj is not None: * __Pyx_ReleaseBuffer(&self.view) # <<<<<<<<<<<<<< * elif (<__pyx_buffer *> &self.view).obj == Py_None: * */ __Pyx_ReleaseBuffer((&__pyx_v_self->view)); /* "View.MemoryView":373 * * def __dealloc__(memoryview self): * if self.obj is not None: # <<<<<<<<<<<<<< * __Pyx_ReleaseBuffer(&self.view) * elif (<__pyx_buffer *> &self.view).obj == Py_None: */ goto __pyx_L3; } /* "View.MemoryView":375 * if self.obj is not None: * __Pyx_ReleaseBuffer(&self.view) * elif (<__pyx_buffer *> &self.view).obj == Py_None: # <<<<<<<<<<<<<< * * (<__pyx_buffer *> &self.view).obj = NULL */ __pyx_t_2 = ((((Py_buffer *)(&__pyx_v_self->view))->obj == Py_None) != 0); if (__pyx_t_2) { /* "View.MemoryView":377 * elif (<__pyx_buffer *> &self.view).obj == Py_None: * * (<__pyx_buffer *> &self.view).obj = NULL # <<<<<<<<<<<<<< * Py_DECREF(Py_None) * */ ((Py_buffer *)(&__pyx_v_self->view))->obj = NULL; /* "View.MemoryView":378 * * (<__pyx_buffer *> &self.view).obj = NULL * Py_DECREF(Py_None) # <<<<<<<<<<<<<< * * cdef int i */ Py_DECREF(Py_None); /* "View.MemoryView":375 * if self.obj is not None: * __Pyx_ReleaseBuffer(&self.view) * elif (<__pyx_buffer *> &self.view).obj == Py_None: # <<<<<<<<<<<<<< * * (<__pyx_buffer *> &self.view).obj = NULL */ } __pyx_L3:; /* "View.MemoryView":382 * cdef int i * global __pyx_memoryview_thread_locks_used * if self.lock != NULL: # <<<<<<<<<<<<<< * for i in range(__pyx_memoryview_thread_locks_used): * if __pyx_memoryview_thread_locks[i] is self.lock: */ __pyx_t_2 = ((__pyx_v_self->lock != NULL) != 0); if (__pyx_t_2) { /* "View.MemoryView":383 * global __pyx_memoryview_thread_locks_used * if self.lock != NULL: * for i in range(__pyx_memoryview_thread_locks_used): # <<<<<<<<<<<<<< * if __pyx_memoryview_thread_locks[i] is self.lock: * __pyx_memoryview_thread_locks_used -= 1 */ __pyx_t_3 = __pyx_memoryview_thread_locks_used; __pyx_t_4 = __pyx_t_3; for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_v_i = __pyx_t_5; /* "View.MemoryView":384 * if self.lock != NULL: * for i in range(__pyx_memoryview_thread_locks_used): * if __pyx_memoryview_thread_locks[i] is self.lock: # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks_used -= 1 * if i != __pyx_memoryview_thread_locks_used: */ __pyx_t_2 = (((__pyx_memoryview_thread_locks[__pyx_v_i]) == __pyx_v_self->lock) != 0); if (__pyx_t_2) { /* "View.MemoryView":385 * for i in range(__pyx_memoryview_thread_locks_used): * if __pyx_memoryview_thread_locks[i] is self.lock: * __pyx_memoryview_thread_locks_used -= 1 # <<<<<<<<<<<<<< * if i != __pyx_memoryview_thread_locks_used: * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( */ __pyx_memoryview_thread_locks_used = (__pyx_memoryview_thread_locks_used - 1); /* "View.MemoryView":386 * if __pyx_memoryview_thread_locks[i] is self.lock: * __pyx_memoryview_thread_locks_used -= 1 * if i != __pyx_memoryview_thread_locks_used: # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) */ __pyx_t_2 = ((__pyx_v_i != __pyx_memoryview_thread_locks_used) != 0); if (__pyx_t_2) { /* "View.MemoryView":388 * if i != __pyx_memoryview_thread_locks_used: * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) # <<<<<<<<<<<<<< * break * else: */ __pyx_t_6 = (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]); __pyx_t_7 = (__pyx_memoryview_thread_locks[__pyx_v_i]); /* "View.MemoryView":387 * __pyx_memoryview_thread_locks_used -= 1 * if i != __pyx_memoryview_thread_locks_used: * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) * break */ (__pyx_memoryview_thread_locks[__pyx_v_i]) = __pyx_t_6; (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]) = __pyx_t_7; /* "View.MemoryView":386 * if __pyx_memoryview_thread_locks[i] is self.lock: * __pyx_memoryview_thread_locks_used -= 1 * if i != __pyx_memoryview_thread_locks_used: # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) */ } /* "View.MemoryView":389 * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) * break # <<<<<<<<<<<<<< * else: * PyThread_free_lock(self.lock) */ goto __pyx_L6_break; /* "View.MemoryView":384 * if self.lock != NULL: * for i in range(__pyx_memoryview_thread_locks_used): * if __pyx_memoryview_thread_locks[i] is self.lock: # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks_used -= 1 * if i != __pyx_memoryview_thread_locks_used: */ } } /*else*/ { /* "View.MemoryView":391 * break * else: * PyThread_free_lock(self.lock) # <<<<<<<<<<<<<< * * cdef char *get_item_pointer(memoryview self, object index) except NULL: */ PyThread_free_lock(__pyx_v_self->lock); } __pyx_L6_break:; /* "View.MemoryView":382 * cdef int i * global __pyx_memoryview_thread_locks_used * if self.lock != NULL: # <<<<<<<<<<<<<< * for i in range(__pyx_memoryview_thread_locks_used): * if __pyx_memoryview_thread_locks[i] is self.lock: */ } /* "View.MemoryView":372 * self.typeinfo = NULL * * def __dealloc__(memoryview self): # <<<<<<<<<<<<<< * if self.obj is not None: * __Pyx_ReleaseBuffer(&self.view) */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "View.MemoryView":393 * PyThread_free_lock(self.lock) * * cdef char *get_item_pointer(memoryview self, object index) except NULL: # <<<<<<<<<<<<<< * cdef Py_ssize_t dim * cdef char *itemp = self.view.buf */ static char *__pyx_memoryview_get_item_pointer(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index) { Py_ssize_t __pyx_v_dim; char *__pyx_v_itemp; PyObject *__pyx_v_idx = NULL; char *__pyx_r; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; PyObject *__pyx_t_2 = NULL; Py_ssize_t __pyx_t_3; PyObject *(*__pyx_t_4)(PyObject *); PyObject *__pyx_t_5 = NULL; Py_ssize_t __pyx_t_6; char *__pyx_t_7; __Pyx_RefNannySetupContext("get_item_pointer", 0); /* "View.MemoryView":395 * cdef char *get_item_pointer(memoryview self, object index) except NULL: * cdef Py_ssize_t dim * cdef char *itemp = self.view.buf # <<<<<<<<<<<<<< * * for dim, idx in enumerate(index): */ __pyx_v_itemp = ((char *)__pyx_v_self->view.buf); /* "View.MemoryView":397 * cdef char *itemp = self.view.buf * * for dim, idx in enumerate(index): # <<<<<<<<<<<<<< * itemp = pybuffer_index(&self.view, itemp, idx, dim) * */ __pyx_t_1 = 0; if (likely(PyList_CheckExact(__pyx_v_index)) || PyTuple_CheckExact(__pyx_v_index)) { __pyx_t_2 = __pyx_v_index; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; __pyx_t_4 = NULL; } else { __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 397, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_4)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(2, 397, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } else { if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(2, 397, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } } else { __pyx_t_5 = __pyx_t_4(__pyx_t_2); if (unlikely(!__pyx_t_5)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 397, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_5); } __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_5); __pyx_t_5 = 0; __pyx_v_dim = __pyx_t_1; __pyx_t_1 = (__pyx_t_1 + 1); /* "View.MemoryView":398 * * for dim, idx in enumerate(index): * itemp = pybuffer_index(&self.view, itemp, idx, dim) # <<<<<<<<<<<<<< * * return itemp */ __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_idx); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 398, __pyx_L1_error) __pyx_t_7 = __pyx_pybuffer_index((&__pyx_v_self->view), __pyx_v_itemp, __pyx_t_6, __pyx_v_dim); if (unlikely(__pyx_t_7 == ((char *)NULL))) __PYX_ERR(2, 398, __pyx_L1_error) __pyx_v_itemp = __pyx_t_7; /* "View.MemoryView":397 * cdef char *itemp = self.view.buf * * for dim, idx in enumerate(index): # <<<<<<<<<<<<<< * itemp = pybuffer_index(&self.view, itemp, idx, dim) * */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":400 * itemp = pybuffer_index(&self.view, itemp, idx, dim) * * return itemp # <<<<<<<<<<<<<< * * */ __pyx_r = __pyx_v_itemp; goto __pyx_L0; /* "View.MemoryView":393 * PyThread_free_lock(self.lock) * * cdef char *get_item_pointer(memoryview self, object index) except NULL: # <<<<<<<<<<<<<< * cdef Py_ssize_t dim * cdef char *itemp = self.view.buf */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.memoryview.get_item_pointer", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_idx); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":403 * * * def __getitem__(memoryview self, object index): # <<<<<<<<<<<<<< * if index is Ellipsis: * return self */ /* Python wrapper */ static PyObject *__pyx_memoryview___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index); /*proto*/ static PyObject *__pyx_memoryview___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v_index)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index) { PyObject *__pyx_v_have_slices = NULL; PyObject *__pyx_v_indices = NULL; char *__pyx_v_itemp; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; char *__pyx_t_6; __Pyx_RefNannySetupContext("__getitem__", 0); /* "View.MemoryView":404 * * def __getitem__(memoryview self, object index): * if index is Ellipsis: # <<<<<<<<<<<<<< * return self * */ __pyx_t_1 = (__pyx_v_index == __pyx_builtin_Ellipsis); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":405 * def __getitem__(memoryview self, object index): * if index is Ellipsis: * return self # <<<<<<<<<<<<<< * * have_slices, indices = _unellipsify(index, self.view.ndim) */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; /* "View.MemoryView":404 * * def __getitem__(memoryview self, object index): * if index is Ellipsis: # <<<<<<<<<<<<<< * return self * */ } /* "View.MemoryView":407 * return self * * have_slices, indices = _unellipsify(index, self.view.ndim) # <<<<<<<<<<<<<< * * cdef char *itemp */ __pyx_t_3 = _unellipsify(__pyx_v_index, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (likely(__pyx_t_3 != Py_None)) { PyObject* sequence = __pyx_t_3; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(2, 407, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); #else __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 407, __pyx_L1_error) } __pyx_v_have_slices = __pyx_t_4; __pyx_t_4 = 0; __pyx_v_indices = __pyx_t_5; __pyx_t_5 = 0; /* "View.MemoryView":410 * * cdef char *itemp * if have_slices: # <<<<<<<<<<<<<< * return memview_slice(self, indices) * else: */ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_have_slices); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 410, __pyx_L1_error) if (__pyx_t_2) { /* "View.MemoryView":411 * cdef char *itemp * if have_slices: * return memview_slice(self, indices) # <<<<<<<<<<<<<< * else: * itemp = self.get_item_pointer(indices) */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = ((PyObject *)__pyx_memview_slice(__pyx_v_self, __pyx_v_indices)); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* "View.MemoryView":410 * * cdef char *itemp * if have_slices: # <<<<<<<<<<<<<< * return memview_slice(self, indices) * else: */ } /* "View.MemoryView":413 * return memview_slice(self, indices) * else: * itemp = self.get_item_pointer(indices) # <<<<<<<<<<<<<< * return self.convert_item_to_object(itemp) * */ /*else*/ { __pyx_t_6 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->get_item_pointer(__pyx_v_self, __pyx_v_indices); if (unlikely(__pyx_t_6 == ((char *)NULL))) __PYX_ERR(2, 413, __pyx_L1_error) __pyx_v_itemp = __pyx_t_6; /* "View.MemoryView":414 * else: * itemp = self.get_item_pointer(indices) * return self.convert_item_to_object(itemp) # <<<<<<<<<<<<<< * * def __setitem__(memoryview self, object index, object value): */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->convert_item_to_object(__pyx_v_self, __pyx_v_itemp); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; } /* "View.MemoryView":403 * * * def __getitem__(memoryview self, object index): # <<<<<<<<<<<<<< * if index is Ellipsis: * return self */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.memoryview.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_have_slices); __Pyx_XDECREF(__pyx_v_indices); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":416 * return self.convert_item_to_object(itemp) * * def __setitem__(memoryview self, object index, object value): # <<<<<<<<<<<<<< * if self.view.readonly: * raise TypeError("Cannot assign to read-only memoryview") */ /* Python wrapper */ static int __pyx_memoryview___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /*proto*/ static int __pyx_memoryview___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v_index), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { PyObject *__pyx_v_have_slices = NULL; PyObject *__pyx_v_obj = NULL; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; __Pyx_RefNannySetupContext("__setitem__", 0); __Pyx_INCREF(__pyx_v_index); /* "View.MemoryView":417 * * def __setitem__(memoryview self, object index, object value): * if self.view.readonly: # <<<<<<<<<<<<<< * raise TypeError("Cannot assign to read-only memoryview") * */ __pyx_t_1 = (__pyx_v_self->view.readonly != 0); if (unlikely(__pyx_t_1)) { /* "View.MemoryView":418 * def __setitem__(memoryview self, object index, object value): * if self.view.readonly: * raise TypeError("Cannot assign to read-only memoryview") # <<<<<<<<<<<<<< * * have_slices, index = _unellipsify(index, self.view.ndim) */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__20, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(2, 418, __pyx_L1_error) /* "View.MemoryView":417 * * def __setitem__(memoryview self, object index, object value): * if self.view.readonly: # <<<<<<<<<<<<<< * raise TypeError("Cannot assign to read-only memoryview") * */ } /* "View.MemoryView":420 * raise TypeError("Cannot assign to read-only memoryview") * * have_slices, index = _unellipsify(index, self.view.ndim) # <<<<<<<<<<<<<< * * if have_slices: */ __pyx_t_2 = _unellipsify(__pyx_v_index, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (likely(__pyx_t_2 != Py_None)) { PyObject* sequence = __pyx_t_2; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(2, 420, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); #else __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 420, __pyx_L1_error) } __pyx_v_have_slices = __pyx_t_3; __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_index, __pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":422 * have_slices, index = _unellipsify(index, self.view.ndim) * * if have_slices: # <<<<<<<<<<<<<< * obj = self.is_slice(value) * if obj: */ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_have_slices); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 422, __pyx_L1_error) if (__pyx_t_1) { /* "View.MemoryView":423 * * if have_slices: * obj = self.is_slice(value) # <<<<<<<<<<<<<< * if obj: * self.setitem_slice_assignment(self[index], obj) */ __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->is_slice(__pyx_v_self, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_obj = __pyx_t_2; __pyx_t_2 = 0; /* "View.MemoryView":424 * if have_slices: * obj = self.is_slice(value) * if obj: # <<<<<<<<<<<<<< * self.setitem_slice_assignment(self[index], obj) * else: */ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_obj); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 424, __pyx_L1_error) if (__pyx_t_1) { /* "View.MemoryView":425 * obj = self.is_slice(value) * if obj: * self.setitem_slice_assignment(self[index], obj) # <<<<<<<<<<<<<< * else: * self.setitem_slice_assign_scalar(self[index], value) */ __pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self), __pyx_v_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_slice_assignment(__pyx_v_self, __pyx_t_2, __pyx_v_obj); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":424 * if have_slices: * obj = self.is_slice(value) * if obj: # <<<<<<<<<<<<<< * self.setitem_slice_assignment(self[index], obj) * else: */ goto __pyx_L5; } /* "View.MemoryView":427 * self.setitem_slice_assignment(self[index], obj) * else: * self.setitem_slice_assign_scalar(self[index], value) # <<<<<<<<<<<<<< * else: * self.setitem_indexed(index, value) */ /*else*/ { __pyx_t_4 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self), __pyx_v_index); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_memoryview_type))))) __PYX_ERR(2, 427, __pyx_L1_error) __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_slice_assign_scalar(__pyx_v_self, ((struct __pyx_memoryview_obj *)__pyx_t_4), __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_L5:; /* "View.MemoryView":422 * have_slices, index = _unellipsify(index, self.view.ndim) * * if have_slices: # <<<<<<<<<<<<<< * obj = self.is_slice(value) * if obj: */ goto __pyx_L4; } /* "View.MemoryView":429 * self.setitem_slice_assign_scalar(self[index], value) * else: * self.setitem_indexed(index, value) # <<<<<<<<<<<<<< * * cdef is_slice(self, obj): */ /*else*/ { __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_indexed(__pyx_v_self, __pyx_v_index, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 429, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_L4:; /* "View.MemoryView":416 * return self.convert_item_to_object(itemp) * * def __setitem__(memoryview self, object index, object value): # <<<<<<<<<<<<<< * if self.view.readonly: * raise TypeError("Cannot assign to read-only memoryview") */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("View.MemoryView.memoryview.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_have_slices); __Pyx_XDECREF(__pyx_v_obj); __Pyx_XDECREF(__pyx_v_index); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":431 * self.setitem_indexed(index, value) * * cdef is_slice(self, obj): # <<<<<<<<<<<<<< * if not isinstance(obj, memoryview): * try: */ static PyObject *__pyx_memoryview_is_slice(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; int __pyx_t_9; __Pyx_RefNannySetupContext("is_slice", 0); __Pyx_INCREF(__pyx_v_obj); /* "View.MemoryView":432 * * cdef is_slice(self, obj): * if not isinstance(obj, memoryview): # <<<<<<<<<<<<<< * try: * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, */ __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_obj, __pyx_memoryview_type); __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":433 * cdef is_slice(self, obj): * if not isinstance(obj, memoryview): * try: # <<<<<<<<<<<<<< * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, * self.dtype_is_object) */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_5); /*try:*/ { /* "View.MemoryView":434 * if not isinstance(obj, memoryview): * try: * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, # <<<<<<<<<<<<<< * self.dtype_is_object) * except TypeError: */ __pyx_t_6 = __Pyx_PyInt_From_int(((__pyx_v_self->flags & (~PyBUF_WRITABLE)) | PyBUF_ANY_CONTIGUOUS)); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 434, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); /* "View.MemoryView":435 * try: * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, * self.dtype_is_object) # <<<<<<<<<<<<<< * except TypeError: * return None */ __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_self->dtype_is_object); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 435, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); /* "View.MemoryView":434 * if not isinstance(obj, memoryview): * try: * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, # <<<<<<<<<<<<<< * self.dtype_is_object) * except TypeError: */ __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 434, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_v_obj); __Pyx_GIVEREF(__pyx_v_obj); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_obj); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7); __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_8, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 434, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF_SET(__pyx_v_obj, __pyx_t_7); __pyx_t_7 = 0; /* "View.MemoryView":433 * cdef is_slice(self, obj): * if not isinstance(obj, memoryview): * try: # <<<<<<<<<<<<<< * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, * self.dtype_is_object) */ } __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; /* "View.MemoryView":436 * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, * self.dtype_is_object) * except TypeError: # <<<<<<<<<<<<<< * return None * */ __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError); if (__pyx_t_9) { __Pyx_AddTraceback("View.MemoryView.memoryview.is_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_6) < 0) __PYX_ERR(2, 436, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_6); /* "View.MemoryView":437 * self.dtype_is_object) * except TypeError: * return None # <<<<<<<<<<<<<< * * return obj */ __Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L7_except_return; } goto __pyx_L6_except_error; __pyx_L6_except_error:; /* "View.MemoryView":433 * cdef is_slice(self, obj): * if not isinstance(obj, memoryview): * try: # <<<<<<<<<<<<<< * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, * self.dtype_is_object) */ __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5); goto __pyx_L1_error; __pyx_L7_except_return:; __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5); goto __pyx_L0; __pyx_L9_try_end:; } /* "View.MemoryView":432 * * cdef is_slice(self, obj): * if not isinstance(obj, memoryview): # <<<<<<<<<<<<<< * try: * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, */ } /* "View.MemoryView":439 * return None * * return obj # <<<<<<<<<<<<<< * * cdef setitem_slice_assignment(self, dst, src): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_obj); __pyx_r = __pyx_v_obj; goto __pyx_L0; /* "View.MemoryView":431 * self.setitem_indexed(index, value) * * cdef is_slice(self, obj): # <<<<<<<<<<<<<< * if not isinstance(obj, memoryview): * try: */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("View.MemoryView.memoryview.is_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_obj); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":441 * return obj * * cdef setitem_slice_assignment(self, dst, src): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice dst_slice * cdef __Pyx_memviewslice src_slice */ static PyObject *__pyx_memoryview_setitem_slice_assignment(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_dst, PyObject *__pyx_v_src) { __Pyx_memviewslice __pyx_v_dst_slice; __Pyx_memviewslice __pyx_v_src_slice; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; __Pyx_RefNannySetupContext("setitem_slice_assignment", 0); /* "View.MemoryView":445 * cdef __Pyx_memviewslice src_slice * * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], # <<<<<<<<<<<<<< * get_slice_from_memview(dst, &dst_slice)[0], * src.ndim, dst.ndim, self.dtype_is_object) */ if (!(likely(((__pyx_v_src) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_src, __pyx_memoryview_type))))) __PYX_ERR(2, 445, __pyx_L1_error) /* "View.MemoryView":446 * * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], * get_slice_from_memview(dst, &dst_slice)[0], # <<<<<<<<<<<<<< * src.ndim, dst.ndim, self.dtype_is_object) * */ if (!(likely(((__pyx_v_dst) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_dst, __pyx_memoryview_type))))) __PYX_ERR(2, 446, __pyx_L1_error) /* "View.MemoryView":447 * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], * get_slice_from_memview(dst, &dst_slice)[0], * src.ndim, dst.ndim, self.dtype_is_object) # <<<<<<<<<<<<<< * * cdef setitem_slice_assign_scalar(self, memoryview dst, value): */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_src, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 447, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dst, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 447, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "View.MemoryView":445 * cdef __Pyx_memviewslice src_slice * * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], # <<<<<<<<<<<<<< * get_slice_from_memview(dst, &dst_slice)[0], * src.ndim, dst.ndim, self.dtype_is_object) */ __pyx_t_4 = __pyx_memoryview_copy_contents((__pyx_memoryview_get_slice_from_memoryview(((struct __pyx_memoryview_obj *)__pyx_v_src), (&__pyx_v_src_slice))[0]), (__pyx_memoryview_get_slice_from_memoryview(((struct __pyx_memoryview_obj *)__pyx_v_dst), (&__pyx_v_dst_slice))[0]), __pyx_t_2, __pyx_t_3, __pyx_v_self->dtype_is_object); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 445, __pyx_L1_error) /* "View.MemoryView":441 * return obj * * cdef setitem_slice_assignment(self, dst, src): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice dst_slice * cdef __Pyx_memviewslice src_slice */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_slice_assignment", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":449 * src.ndim, dst.ndim, self.dtype_is_object) * * cdef setitem_slice_assign_scalar(self, memoryview dst, value): # <<<<<<<<<<<<<< * cdef int array[128] * cdef void *tmp = NULL */ static PyObject *__pyx_memoryview_setitem_slice_assign_scalar(struct __pyx_memoryview_obj *__pyx_v_self, struct __pyx_memoryview_obj *__pyx_v_dst, PyObject *__pyx_v_value) { int __pyx_v_array[0x80]; void *__pyx_v_tmp; void *__pyx_v_item; __Pyx_memviewslice *__pyx_v_dst_slice; __Pyx_memviewslice __pyx_v_tmp_slice; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_t_3; int __pyx_t_4; char const *__pyx_t_5; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; __Pyx_RefNannySetupContext("setitem_slice_assign_scalar", 0); /* "View.MemoryView":451 * cdef setitem_slice_assign_scalar(self, memoryview dst, value): * cdef int array[128] * cdef void *tmp = NULL # <<<<<<<<<<<<<< * cdef void *item * */ __pyx_v_tmp = NULL; /* "View.MemoryView":456 * cdef __Pyx_memviewslice *dst_slice * cdef __Pyx_memviewslice tmp_slice * dst_slice = get_slice_from_memview(dst, &tmp_slice) # <<<<<<<<<<<<<< * * if self.view.itemsize > sizeof(array): */ __pyx_v_dst_slice = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_dst, (&__pyx_v_tmp_slice)); /* "View.MemoryView":458 * dst_slice = get_slice_from_memview(dst, &tmp_slice) * * if self.view.itemsize > sizeof(array): # <<<<<<<<<<<<<< * tmp = PyMem_Malloc(self.view.itemsize) * if tmp == NULL: */ __pyx_t_1 = ((((size_t)__pyx_v_self->view.itemsize) > (sizeof(__pyx_v_array))) != 0); if (__pyx_t_1) { /* "View.MemoryView":459 * * if self.view.itemsize > sizeof(array): * tmp = PyMem_Malloc(self.view.itemsize) # <<<<<<<<<<<<<< * if tmp == NULL: * raise MemoryError */ __pyx_v_tmp = PyMem_Malloc(__pyx_v_self->view.itemsize); /* "View.MemoryView":460 * if self.view.itemsize > sizeof(array): * tmp = PyMem_Malloc(self.view.itemsize) * if tmp == NULL: # <<<<<<<<<<<<<< * raise MemoryError * item = tmp */ __pyx_t_1 = ((__pyx_v_tmp == NULL) != 0); if (unlikely(__pyx_t_1)) { /* "View.MemoryView":461 * tmp = PyMem_Malloc(self.view.itemsize) * if tmp == NULL: * raise MemoryError # <<<<<<<<<<<<<< * item = tmp * else: */ PyErr_NoMemory(); __PYX_ERR(2, 461, __pyx_L1_error) /* "View.MemoryView":460 * if self.view.itemsize > sizeof(array): * tmp = PyMem_Malloc(self.view.itemsize) * if tmp == NULL: # <<<<<<<<<<<<<< * raise MemoryError * item = tmp */ } /* "View.MemoryView":462 * if tmp == NULL: * raise MemoryError * item = tmp # <<<<<<<<<<<<<< * else: * item = array */ __pyx_v_item = __pyx_v_tmp; /* "View.MemoryView":458 * dst_slice = get_slice_from_memview(dst, &tmp_slice) * * if self.view.itemsize > sizeof(array): # <<<<<<<<<<<<<< * tmp = PyMem_Malloc(self.view.itemsize) * if tmp == NULL: */ goto __pyx_L3; } /* "View.MemoryView":464 * item = tmp * else: * item = array # <<<<<<<<<<<<<< * * try: */ /*else*/ { __pyx_v_item = ((void *)__pyx_v_array); } __pyx_L3:; /* "View.MemoryView":466 * item = array * * try: # <<<<<<<<<<<<<< * if self.dtype_is_object: * ( item)[0] = value */ /*try:*/ { /* "View.MemoryView":467 * * try: * if self.dtype_is_object: # <<<<<<<<<<<<<< * ( item)[0] = value * else: */ __pyx_t_1 = (__pyx_v_self->dtype_is_object != 0); if (__pyx_t_1) { /* "View.MemoryView":468 * try: * if self.dtype_is_object: * ( item)[0] = value # <<<<<<<<<<<<<< * else: * self.assign_item_from_object( item, value) */ (((PyObject **)__pyx_v_item)[0]) = ((PyObject *)__pyx_v_value); /* "View.MemoryView":467 * * try: * if self.dtype_is_object: # <<<<<<<<<<<<<< * ( item)[0] = value * else: */ goto __pyx_L8; } /* "View.MemoryView":470 * ( item)[0] = value * else: * self.assign_item_from_object( item, value) # <<<<<<<<<<<<<< * * */ /*else*/ { __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->assign_item_from_object(__pyx_v_self, ((char *)__pyx_v_item), __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 470, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_L8:; /* "View.MemoryView":474 * * * if self.view.suboffsets != NULL: # <<<<<<<<<<<<<< * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, */ __pyx_t_1 = ((__pyx_v_self->view.suboffsets != NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":475 * * if self.view.suboffsets != NULL: * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) # <<<<<<<<<<<<<< * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, * item, self.dtype_is_object) */ __pyx_t_2 = assert_direct_dimensions(__pyx_v_self->view.suboffsets, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 475, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":474 * * * if self.view.suboffsets != NULL: # <<<<<<<<<<<<<< * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, */ } /* "View.MemoryView":476 * if self.view.suboffsets != NULL: * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, # <<<<<<<<<<<<<< * item, self.dtype_is_object) * finally: */ __pyx_memoryview_slice_assign_scalar(__pyx_v_dst_slice, __pyx_v_dst->view.ndim, __pyx_v_self->view.itemsize, __pyx_v_item, __pyx_v_self->dtype_is_object); } /* "View.MemoryView":479 * item, self.dtype_is_object) * finally: * PyMem_Free(tmp) # <<<<<<<<<<<<<< * * cdef setitem_indexed(self, index, value): */ /*finally:*/ { /*normal exit:*/{ PyMem_Free(__pyx_v_tmp); goto __pyx_L7; } __pyx_L6_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { PyMem_Free(__pyx_v_tmp); } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); } __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L7:; } /* "View.MemoryView":449 * src.ndim, dst.ndim, self.dtype_is_object) * * cdef setitem_slice_assign_scalar(self, memoryview dst, value): # <<<<<<<<<<<<<< * cdef int array[128] * cdef void *tmp = NULL */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_slice_assign_scalar", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":481 * PyMem_Free(tmp) * * cdef setitem_indexed(self, index, value): # <<<<<<<<<<<<<< * cdef char *itemp = self.get_item_pointer(index) * self.assign_item_from_object(itemp, value) */ static PyObject *__pyx_memoryview_setitem_indexed(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { char *__pyx_v_itemp; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations char *__pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("setitem_indexed", 0); /* "View.MemoryView":482 * * cdef setitem_indexed(self, index, value): * cdef char *itemp = self.get_item_pointer(index) # <<<<<<<<<<<<<< * self.assign_item_from_object(itemp, value) * */ __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->get_item_pointer(__pyx_v_self, __pyx_v_index); if (unlikely(__pyx_t_1 == ((char *)NULL))) __PYX_ERR(2, 482, __pyx_L1_error) __pyx_v_itemp = __pyx_t_1; /* "View.MemoryView":483 * cdef setitem_indexed(self, index, value): * cdef char *itemp = self.get_item_pointer(index) * self.assign_item_from_object(itemp, value) # <<<<<<<<<<<<<< * * cdef convert_item_to_object(self, char *itemp): */ __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->assign_item_from_object(__pyx_v_self, __pyx_v_itemp, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":481 * PyMem_Free(tmp) * * cdef setitem_indexed(self, index, value): # <<<<<<<<<<<<<< * cdef char *itemp = self.get_item_pointer(index) * self.assign_item_from_object(itemp, value) */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_indexed", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":485 * self.assign_item_from_object(itemp, value) * * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" */ static PyObject *__pyx_memoryview_convert_item_to_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp) { PyObject *__pyx_v_struct = NULL; PyObject *__pyx_v_bytesitem = 0; PyObject *__pyx_v_result = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; PyObject *__pyx_t_9 = NULL; size_t __pyx_t_10; int __pyx_t_11; __Pyx_RefNannySetupContext("convert_item_to_object", 0); /* "View.MemoryView":488 * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" * import struct # <<<<<<<<<<<<<< * cdef bytes bytesitem * */ __pyx_t_1 = __Pyx_Import(__pyx_n_s_struct, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 488, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_struct = __pyx_t_1; __pyx_t_1 = 0; /* "View.MemoryView":491 * cdef bytes bytesitem * * bytesitem = itemp[:self.view.itemsize] # <<<<<<<<<<<<<< * try: * result = struct.unpack(self.view.format, bytesitem) */ __pyx_t_1 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_itemp + 0, __pyx_v_self->view.itemsize - 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_bytesitem = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "View.MemoryView":492 * * bytesitem = itemp[:self.view.itemsize] * try: # <<<<<<<<<<<<<< * result = struct.unpack(self.view.format, bytesitem) * except struct.error: */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "View.MemoryView":493 * bytesitem = itemp[:self.view.itemsize] * try: * result = struct.unpack(self.view.format, bytesitem) # <<<<<<<<<<<<<< * except struct.error: * raise ValueError("Unable to convert item to object") */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_unpack); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 493, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 493, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_6, __pyx_v_bytesitem}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 493, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_6, __pyx_v_bytesitem}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 493, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif { __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 493, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_6); __Pyx_INCREF(__pyx_v_bytesitem); __Pyx_GIVEREF(__pyx_v_bytesitem); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_bytesitem); __pyx_t_6 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 493, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_result = __pyx_t_1; __pyx_t_1 = 0; /* "View.MemoryView":492 * * bytesitem = itemp[:self.view.itemsize] * try: # <<<<<<<<<<<<<< * result = struct.unpack(self.view.format, bytesitem) * except struct.error: */ } /* "View.MemoryView":497 * raise ValueError("Unable to convert item to object") * else: * if len(self.view.format) == 1: # <<<<<<<<<<<<<< * return result[0] * return result */ /*else:*/ { __pyx_t_10 = strlen(__pyx_v_self->view.format); __pyx_t_11 = ((__pyx_t_10 == 1) != 0); if (__pyx_t_11) { /* "View.MemoryView":498 * else: * if len(self.view.format) == 1: * return result[0] # <<<<<<<<<<<<<< * return result * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_result, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 498, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L6_except_return; /* "View.MemoryView":497 * raise ValueError("Unable to convert item to object") * else: * if len(self.view.format) == 1: # <<<<<<<<<<<<<< * return result[0] * return result */ } /* "View.MemoryView":499 * if len(self.view.format) == 1: * return result[0] * return result # <<<<<<<<<<<<<< * * cdef assign_item_from_object(self, char *itemp, object value): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_result); __pyx_r = __pyx_v_result; goto __pyx_L6_except_return; } __pyx_L3_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; /* "View.MemoryView":494 * try: * result = struct.unpack(self.view.format, bytesitem) * except struct.error: # <<<<<<<<<<<<<< * raise ValueError("Unable to convert item to object") * else: */ __Pyx_ErrFetch(&__pyx_t_1, &__pyx_t_5, &__pyx_t_9); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_error); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 494, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_8 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_1, __pyx_t_6); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_ErrRestore(__pyx_t_1, __pyx_t_5, __pyx_t_9); __pyx_t_1 = 0; __pyx_t_5 = 0; __pyx_t_9 = 0; if (__pyx_t_8) { __Pyx_AddTraceback("View.MemoryView.memoryview.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_5, &__pyx_t_1) < 0) __PYX_ERR(2, 494, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_1); /* "View.MemoryView":495 * result = struct.unpack(self.view.format, bytesitem) * except struct.error: * raise ValueError("Unable to convert item to object") # <<<<<<<<<<<<<< * else: * if len(self.view.format) == 1: */ __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__21, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 495, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(2, 495, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; /* "View.MemoryView":492 * * bytesitem = itemp[:self.view.itemsize] * try: # <<<<<<<<<<<<<< * result = struct.unpack(self.view.format, bytesitem) * except struct.error: */ __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L6_except_return:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L0; } /* "View.MemoryView":485 * self.assign_item_from_object(itemp, value) * * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("View.MemoryView.memoryview.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_struct); __Pyx_XDECREF(__pyx_v_bytesitem); __Pyx_XDECREF(__pyx_v_result); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":501 * return result * * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" */ static PyObject *__pyx_memoryview_assign_item_from_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value) { PyObject *__pyx_v_struct = NULL; char __pyx_v_c; PyObject *__pyx_v_bytesvalue = 0; Py_ssize_t __pyx_v_i; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_t_7; PyObject *__pyx_t_8 = NULL; Py_ssize_t __pyx_t_9; PyObject *__pyx_t_10 = NULL; char *__pyx_t_11; char *__pyx_t_12; char *__pyx_t_13; char *__pyx_t_14; __Pyx_RefNannySetupContext("assign_item_from_object", 0); /* "View.MemoryView":504 * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" * import struct # <<<<<<<<<<<<<< * cdef char c * cdef bytes bytesvalue */ __pyx_t_1 = __Pyx_Import(__pyx_n_s_struct, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 504, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_struct = __pyx_t_1; __pyx_t_1 = 0; /* "View.MemoryView":509 * cdef Py_ssize_t i * * if isinstance(value, tuple): # <<<<<<<<<<<<<< * bytesvalue = struct.pack(self.view.format, *value) * else: */ __pyx_t_2 = PyTuple_Check(__pyx_v_value); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* "View.MemoryView":510 * * if isinstance(value, tuple): * bytesvalue = struct.pack(self.view.format, *value) # <<<<<<<<<<<<<< * else: * bytesvalue = struct.pack(self.view.format, value) */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_pack); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_v_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyNumber_Add(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(2, 510, __pyx_L1_error) __pyx_v_bytesvalue = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":509 * cdef Py_ssize_t i * * if isinstance(value, tuple): # <<<<<<<<<<<<<< * bytesvalue = struct.pack(self.view.format, *value) * else: */ goto __pyx_L3; } /* "View.MemoryView":512 * bytesvalue = struct.pack(self.view.format, *value) * else: * bytesvalue = struct.pack(self.view.format, value) # <<<<<<<<<<<<<< * * for i, c in enumerate(bytesvalue): */ /*else*/ { __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_pack); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_7 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_1, __pyx_v_value}; __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 512, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_1, __pyx_v_value}; __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 512, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_1); __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_value); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(2, 512, __pyx_L1_error) __pyx_v_bytesvalue = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; } __pyx_L3:; /* "View.MemoryView":514 * bytesvalue = struct.pack(self.view.format, value) * * for i, c in enumerate(bytesvalue): # <<<<<<<<<<<<<< * itemp[i] = c * */ __pyx_t_9 = 0; if (unlikely(__pyx_v_bytesvalue == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' is not iterable"); __PYX_ERR(2, 514, __pyx_L1_error) } __Pyx_INCREF(__pyx_v_bytesvalue); __pyx_t_10 = __pyx_v_bytesvalue; __pyx_t_12 = PyBytes_AS_STRING(__pyx_t_10); __pyx_t_13 = (__pyx_t_12 + PyBytes_GET_SIZE(__pyx_t_10)); for (__pyx_t_14 = __pyx_t_12; __pyx_t_14 < __pyx_t_13; __pyx_t_14++) { __pyx_t_11 = __pyx_t_14; __pyx_v_c = (__pyx_t_11[0]); /* "View.MemoryView":515 * * for i, c in enumerate(bytesvalue): * itemp[i] = c # <<<<<<<<<<<<<< * * @cname('getbuffer') */ __pyx_v_i = __pyx_t_9; /* "View.MemoryView":514 * bytesvalue = struct.pack(self.view.format, value) * * for i, c in enumerate(bytesvalue): # <<<<<<<<<<<<<< * itemp[i] = c * */ __pyx_t_9 = (__pyx_t_9 + 1); /* "View.MemoryView":515 * * for i, c in enumerate(bytesvalue): * itemp[i] = c # <<<<<<<<<<<<<< * * @cname('getbuffer') */ (__pyx_v_itemp[__pyx_v_i]) = __pyx_v_c; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; /* "View.MemoryView":501 * return result * * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("View.MemoryView.memoryview.assign_item_from_object", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_struct); __Pyx_XDECREF(__pyx_v_bytesvalue); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":518 * * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< * if flags & PyBUF_WRITABLE and self.view.readonly: * raise ValueError("Cannot create writable memory view from read-only memoryview") */ /* Python wrapper */ static CYTHON_UNUSED int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ static CYTHON_UNUSED int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(struct __pyx_memoryview_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; Py_ssize_t *__pyx_t_4; char *__pyx_t_5; void *__pyx_t_6; int __pyx_t_7; Py_ssize_t __pyx_t_8; if (__pyx_v_info == NULL) { PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); return -1; } __Pyx_RefNannySetupContext("__getbuffer__", 0); __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); __Pyx_GIVEREF(__pyx_v_info->obj); /* "View.MemoryView":519 * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): * if flags & PyBUF_WRITABLE and self.view.readonly: # <<<<<<<<<<<<<< * raise ValueError("Cannot create writable memory view from read-only memoryview") * */ __pyx_t_2 = ((__pyx_v_flags & PyBUF_WRITABLE) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L4_bool_binop_done; } __pyx_t_2 = (__pyx_v_self->view.readonly != 0); __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; if (unlikely(__pyx_t_1)) { /* "View.MemoryView":520 * def __getbuffer__(self, Py_buffer *info, int flags): * if flags & PyBUF_WRITABLE and self.view.readonly: * raise ValueError("Cannot create writable memory view from read-only memoryview") # <<<<<<<<<<<<<< * * if flags & PyBUF_ND: */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__22, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 520, __pyx_L1_error) /* "View.MemoryView":519 * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): * if flags & PyBUF_WRITABLE and self.view.readonly: # <<<<<<<<<<<<<< * raise ValueError("Cannot create writable memory view from read-only memoryview") * */ } /* "View.MemoryView":522 * raise ValueError("Cannot create writable memory view from read-only memoryview") * * if flags & PyBUF_ND: # <<<<<<<<<<<<<< * info.shape = self.view.shape * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_ND) != 0); if (__pyx_t_1) { /* "View.MemoryView":523 * * if flags & PyBUF_ND: * info.shape = self.view.shape # <<<<<<<<<<<<<< * else: * info.shape = NULL */ __pyx_t_4 = __pyx_v_self->view.shape; __pyx_v_info->shape = __pyx_t_4; /* "View.MemoryView":522 * raise ValueError("Cannot create writable memory view from read-only memoryview") * * if flags & PyBUF_ND: # <<<<<<<<<<<<<< * info.shape = self.view.shape * else: */ goto __pyx_L6; } /* "View.MemoryView":525 * info.shape = self.view.shape * else: * info.shape = NULL # <<<<<<<<<<<<<< * * if flags & PyBUF_STRIDES: */ /*else*/ { __pyx_v_info->shape = NULL; } __pyx_L6:; /* "View.MemoryView":527 * info.shape = NULL * * if flags & PyBUF_STRIDES: # <<<<<<<<<<<<<< * info.strides = self.view.strides * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_STRIDES) != 0); if (__pyx_t_1) { /* "View.MemoryView":528 * * if flags & PyBUF_STRIDES: * info.strides = self.view.strides # <<<<<<<<<<<<<< * else: * info.strides = NULL */ __pyx_t_4 = __pyx_v_self->view.strides; __pyx_v_info->strides = __pyx_t_4; /* "View.MemoryView":527 * info.shape = NULL * * if flags & PyBUF_STRIDES: # <<<<<<<<<<<<<< * info.strides = self.view.strides * else: */ goto __pyx_L7; } /* "View.MemoryView":530 * info.strides = self.view.strides * else: * info.strides = NULL # <<<<<<<<<<<<<< * * if flags & PyBUF_INDIRECT: */ /*else*/ { __pyx_v_info->strides = NULL; } __pyx_L7:; /* "View.MemoryView":532 * info.strides = NULL * * if flags & PyBUF_INDIRECT: # <<<<<<<<<<<<<< * info.suboffsets = self.view.suboffsets * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_INDIRECT) != 0); if (__pyx_t_1) { /* "View.MemoryView":533 * * if flags & PyBUF_INDIRECT: * info.suboffsets = self.view.suboffsets # <<<<<<<<<<<<<< * else: * info.suboffsets = NULL */ __pyx_t_4 = __pyx_v_self->view.suboffsets; __pyx_v_info->suboffsets = __pyx_t_4; /* "View.MemoryView":532 * info.strides = NULL * * if flags & PyBUF_INDIRECT: # <<<<<<<<<<<<<< * info.suboffsets = self.view.suboffsets * else: */ goto __pyx_L8; } /* "View.MemoryView":535 * info.suboffsets = self.view.suboffsets * else: * info.suboffsets = NULL # <<<<<<<<<<<<<< * * if flags & PyBUF_FORMAT: */ /*else*/ { __pyx_v_info->suboffsets = NULL; } __pyx_L8:; /* "View.MemoryView":537 * info.suboffsets = NULL * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * info.format = self.view.format * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0); if (__pyx_t_1) { /* "View.MemoryView":538 * * if flags & PyBUF_FORMAT: * info.format = self.view.format # <<<<<<<<<<<<<< * else: * info.format = NULL */ __pyx_t_5 = __pyx_v_self->view.format; __pyx_v_info->format = __pyx_t_5; /* "View.MemoryView":537 * info.suboffsets = NULL * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * info.format = self.view.format * else: */ goto __pyx_L9; } /* "View.MemoryView":540 * info.format = self.view.format * else: * info.format = NULL # <<<<<<<<<<<<<< * * info.buf = self.view.buf */ /*else*/ { __pyx_v_info->format = NULL; } __pyx_L9:; /* "View.MemoryView":542 * info.format = NULL * * info.buf = self.view.buf # <<<<<<<<<<<<<< * info.ndim = self.view.ndim * info.itemsize = self.view.itemsize */ __pyx_t_6 = __pyx_v_self->view.buf; __pyx_v_info->buf = __pyx_t_6; /* "View.MemoryView":543 * * info.buf = self.view.buf * info.ndim = self.view.ndim # <<<<<<<<<<<<<< * info.itemsize = self.view.itemsize * info.len = self.view.len */ __pyx_t_7 = __pyx_v_self->view.ndim; __pyx_v_info->ndim = __pyx_t_7; /* "View.MemoryView":544 * info.buf = self.view.buf * info.ndim = self.view.ndim * info.itemsize = self.view.itemsize # <<<<<<<<<<<<<< * info.len = self.view.len * info.readonly = self.view.readonly */ __pyx_t_8 = __pyx_v_self->view.itemsize; __pyx_v_info->itemsize = __pyx_t_8; /* "View.MemoryView":545 * info.ndim = self.view.ndim * info.itemsize = self.view.itemsize * info.len = self.view.len # <<<<<<<<<<<<<< * info.readonly = self.view.readonly * info.obj = self */ __pyx_t_8 = __pyx_v_self->view.len; __pyx_v_info->len = __pyx_t_8; /* "View.MemoryView":546 * info.itemsize = self.view.itemsize * info.len = self.view.len * info.readonly = self.view.readonly # <<<<<<<<<<<<<< * info.obj = self * */ __pyx_t_1 = __pyx_v_self->view.readonly; __pyx_v_info->readonly = __pyx_t_1; /* "View.MemoryView":547 * info.len = self.view.len * info.readonly = self.view.readonly * info.obj = self # <<<<<<<<<<<<<< * * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") */ __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = ((PyObject *)__pyx_v_self); /* "View.MemoryView":518 * * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< * if flags & PyBUF_WRITABLE and self.view.readonly: * raise ValueError("Cannot create writable memory view from read-only memoryview") */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; if (__pyx_v_info->obj != NULL) { __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; } goto __pyx_L2; __pyx_L0:; if (__pyx_v_info->obj == Py_None) { __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; } __pyx_L2:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":553 * * @property * def T(self): # <<<<<<<<<<<<<< * cdef _memoryviewslice result = memoryview_copy(self) * transpose_memslice(&result.from_slice) */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(struct __pyx_memoryview_obj *__pyx_v_self) { struct __pyx_memoryviewslice_obj *__pyx_v_result = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":554 * @property * def T(self): * cdef _memoryviewslice result = memoryview_copy(self) # <<<<<<<<<<<<<< * transpose_memslice(&result.from_slice) * return result */ __pyx_t_1 = __pyx_memoryview_copy_object(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_memoryviewslice_type))))) __PYX_ERR(2, 554, __pyx_L1_error) __pyx_v_result = ((struct __pyx_memoryviewslice_obj *)__pyx_t_1); __pyx_t_1 = 0; /* "View.MemoryView":555 * def T(self): * cdef _memoryviewslice result = memoryview_copy(self) * transpose_memslice(&result.from_slice) # <<<<<<<<<<<<<< * return result * */ __pyx_t_2 = __pyx_memslice_transpose((&__pyx_v_result->from_slice)); if (unlikely(__pyx_t_2 == ((int)0))) __PYX_ERR(2, 555, __pyx_L1_error) /* "View.MemoryView":556 * cdef _memoryviewslice result = memoryview_copy(self) * transpose_memslice(&result.from_slice) * return result # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_result)); __pyx_r = ((PyObject *)__pyx_v_result); goto __pyx_L0; /* "View.MemoryView":553 * * @property * def T(self): # <<<<<<<<<<<<<< * cdef _memoryviewslice result = memoryview_copy(self) * transpose_memslice(&result.from_slice) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.T.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_result); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":559 * * @property * def base(self): # <<<<<<<<<<<<<< * return self.obj * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":560 * @property * def base(self): * return self.obj # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->obj); __pyx_r = __pyx_v_self->obj; goto __pyx_L0; /* "View.MemoryView":559 * * @property * def base(self): # <<<<<<<<<<<<<< * return self.obj * */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":563 * * @property * def shape(self): # <<<<<<<<<<<<<< * return tuple([length for length in self.view.shape[:self.view.ndim]]) * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(struct __pyx_memoryview_obj *__pyx_v_self) { Py_ssize_t __pyx_v_length; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t *__pyx_t_2; Py_ssize_t *__pyx_t_3; Py_ssize_t *__pyx_t_4; PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":564 * @property * def shape(self): * return tuple([length for length in self.view.shape[:self.view.ndim]]) # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = (__pyx_v_self->view.shape + __pyx_v_self->view.ndim); for (__pyx_t_4 = __pyx_v_self->view.shape; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) { __pyx_t_2 = __pyx_t_4; __pyx_v_length = (__pyx_t_2[0]); __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_length); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(2, 564, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_t_5 = PyList_AsTuple(((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0; /* "View.MemoryView":563 * * @property * def shape(self): # <<<<<<<<<<<<<< * return tuple([length for length in self.view.shape[:self.view.ndim]]) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.memoryview.shape.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":567 * * @property * def strides(self): # <<<<<<<<<<<<<< * if self.view.strides == NULL: * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(struct __pyx_memoryview_obj *__pyx_v_self) { Py_ssize_t __pyx_v_stride; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; Py_ssize_t *__pyx_t_3; Py_ssize_t *__pyx_t_4; Py_ssize_t *__pyx_t_5; PyObject *__pyx_t_6 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":568 * @property * def strides(self): * if self.view.strides == NULL: # <<<<<<<<<<<<<< * * raise ValueError("Buffer view does not expose strides") */ __pyx_t_1 = ((__pyx_v_self->view.strides == NULL) != 0); if (unlikely(__pyx_t_1)) { /* "View.MemoryView":570 * if self.view.strides == NULL: * * raise ValueError("Buffer view does not expose strides") # <<<<<<<<<<<<<< * * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__23, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(2, 570, __pyx_L1_error) /* "View.MemoryView":568 * @property * def strides(self): * if self.view.strides == NULL: # <<<<<<<<<<<<<< * * raise ValueError("Buffer view does not expose strides") */ } /* "View.MemoryView":572 * raise ValueError("Buffer view does not expose strides") * * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = (__pyx_v_self->view.strides + __pyx_v_self->view.ndim); for (__pyx_t_5 = __pyx_v_self->view.strides; __pyx_t_5 < __pyx_t_4; __pyx_t_5++) { __pyx_t_3 = __pyx_t_5; __pyx_v_stride = (__pyx_t_3[0]); __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_stride); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_6))) __PYX_ERR(2, 572, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __pyx_t_6 = PyList_AsTuple(((PyObject*)__pyx_t_2)); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0; /* "View.MemoryView":567 * * @property * def strides(self): # <<<<<<<<<<<<<< * if self.view.strides == NULL: * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("View.MemoryView.memoryview.strides.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":575 * * @property * def suboffsets(self): # <<<<<<<<<<<<<< * if self.view.suboffsets == NULL: * return (-1,) * self.view.ndim */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(struct __pyx_memoryview_obj *__pyx_v_self) { Py_ssize_t __pyx_v_suboffset; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; Py_ssize_t *__pyx_t_4; Py_ssize_t *__pyx_t_5; Py_ssize_t *__pyx_t_6; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":576 * @property * def suboffsets(self): * if self.view.suboffsets == NULL: # <<<<<<<<<<<<<< * return (-1,) * self.view.ndim * */ __pyx_t_1 = ((__pyx_v_self->view.suboffsets == NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":577 * def suboffsets(self): * if self.view.suboffsets == NULL: * return (-1,) * self.view.ndim # <<<<<<<<<<<<<< * * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]]) */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_Multiply(__pyx_tuple__24, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* "View.MemoryView":576 * @property * def suboffsets(self): * if self.view.suboffsets == NULL: # <<<<<<<<<<<<<< * return (-1,) * self.view.ndim * */ } /* "View.MemoryView":579 * return (-1,) * self.view.ndim * * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]]) # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = (__pyx_v_self->view.suboffsets + __pyx_v_self->view.ndim); for (__pyx_t_6 = __pyx_v_self->view.suboffsets; __pyx_t_6 < __pyx_t_5; __pyx_t_6++) { __pyx_t_4 = __pyx_t_6; __pyx_v_suboffset = (__pyx_t_4[0]); __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_suboffset); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_2))) __PYX_ERR(2, 579, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_t_2 = PyList_AsTuple(((PyObject*)__pyx_t_3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":575 * * @property * def suboffsets(self): # <<<<<<<<<<<<<< * if self.view.suboffsets == NULL: * return (-1,) * self.view.ndim */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview.suboffsets.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":582 * * @property * def ndim(self): # <<<<<<<<<<<<<< * return self.view.ndim * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":583 * @property * def ndim(self): * return self.view.ndim # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->view.ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":582 * * @property * def ndim(self): # <<<<<<<<<<<<<< * return self.view.ndim * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.ndim.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":586 * * @property * def itemsize(self): # <<<<<<<<<<<<<< * return self.view.itemsize * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":587 * @property * def itemsize(self): * return self.view.itemsize # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->view.itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":586 * * @property * def itemsize(self): # <<<<<<<<<<<<<< * return self.view.itemsize * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.itemsize.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":590 * * @property * def nbytes(self): # <<<<<<<<<<<<<< * return self.size * self.view.itemsize * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":591 * @property * def nbytes(self): * return self.size * self.view.itemsize # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_self->view.itemsize); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* "View.MemoryView":590 * * @property * def nbytes(self): # <<<<<<<<<<<<<< * return self.size * self.view.itemsize * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview.nbytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":594 * * @property * def size(self): # <<<<<<<<<<<<<< * if self._size is None: * result = 1 */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_v_result = NULL; PyObject *__pyx_v_length = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; Py_ssize_t *__pyx_t_3; Py_ssize_t *__pyx_t_4; Py_ssize_t *__pyx_t_5; PyObject *__pyx_t_6 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":595 * @property * def size(self): * if self._size is None: # <<<<<<<<<<<<<< * result = 1 * */ __pyx_t_1 = (__pyx_v_self->_size == Py_None); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":596 * def size(self): * if self._size is None: * result = 1 # <<<<<<<<<<<<<< * * for length in self.view.shape[:self.view.ndim]: */ __Pyx_INCREF(__pyx_int_1); __pyx_v_result = __pyx_int_1; /* "View.MemoryView":598 * result = 1 * * for length in self.view.shape[:self.view.ndim]: # <<<<<<<<<<<<<< * result *= length * */ __pyx_t_4 = (__pyx_v_self->view.shape + __pyx_v_self->view.ndim); for (__pyx_t_5 = __pyx_v_self->view.shape; __pyx_t_5 < __pyx_t_4; __pyx_t_5++) { __pyx_t_3 = __pyx_t_5; __pyx_t_6 = PyInt_FromSsize_t((__pyx_t_3[0])); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_XDECREF_SET(__pyx_v_length, __pyx_t_6); __pyx_t_6 = 0; /* "View.MemoryView":599 * * for length in self.view.shape[:self.view.ndim]: * result *= length # <<<<<<<<<<<<<< * * self._size = result */ __pyx_t_6 = PyNumber_InPlaceMultiply(__pyx_v_result, __pyx_v_length); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_6); __pyx_t_6 = 0; } /* "View.MemoryView":601 * result *= length * * self._size = result # <<<<<<<<<<<<<< * * return self._size */ __Pyx_INCREF(__pyx_v_result); __Pyx_GIVEREF(__pyx_v_result); __Pyx_GOTREF(__pyx_v_self->_size); __Pyx_DECREF(__pyx_v_self->_size); __pyx_v_self->_size = __pyx_v_result; /* "View.MemoryView":595 * @property * def size(self): * if self._size is None: # <<<<<<<<<<<<<< * result = 1 * */ } /* "View.MemoryView":603 * self._size = result * * return self._size # <<<<<<<<<<<<<< * * def __len__(self): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_size); __pyx_r = __pyx_v_self->_size; goto __pyx_L0; /* "View.MemoryView":594 * * @property * def size(self): # <<<<<<<<<<<<<< * if self._size is None: * result = 1 */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("View.MemoryView.memoryview.size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_result); __Pyx_XDECREF(__pyx_v_length); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":605 * return self._size * * def __len__(self): # <<<<<<<<<<<<<< * if self.view.ndim >= 1: * return self.view.shape[0] */ /* Python wrapper */ static Py_ssize_t __pyx_memoryview___len__(PyObject *__pyx_v_self); /*proto*/ static Py_ssize_t __pyx_memoryview___len__(PyObject *__pyx_v_self) { Py_ssize_t __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__len__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static Py_ssize_t __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(struct __pyx_memoryview_obj *__pyx_v_self) { Py_ssize_t __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("__len__", 0); /* "View.MemoryView":606 * * def __len__(self): * if self.view.ndim >= 1: # <<<<<<<<<<<<<< * return self.view.shape[0] * */ __pyx_t_1 = ((__pyx_v_self->view.ndim >= 1) != 0); if (__pyx_t_1) { /* "View.MemoryView":607 * def __len__(self): * if self.view.ndim >= 1: * return self.view.shape[0] # <<<<<<<<<<<<<< * * return 0 */ __pyx_r = (__pyx_v_self->view.shape[0]); goto __pyx_L0; /* "View.MemoryView":606 * * def __len__(self): * if self.view.ndim >= 1: # <<<<<<<<<<<<<< * return self.view.shape[0] * */ } /* "View.MemoryView":609 * return self.view.shape[0] * * return 0 # <<<<<<<<<<<<<< * * def __repr__(self): */ __pyx_r = 0; goto __pyx_L0; /* "View.MemoryView":605 * return self._size * * def __len__(self): # <<<<<<<<<<<<<< * if self.view.ndim >= 1: * return self.view.shape[0] */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":611 * return 0 * * def __repr__(self): # <<<<<<<<<<<<<< * return "" % (self.base.__class__.__name__, * id(self)) */ /* Python wrapper */ static PyObject *__pyx_memoryview___repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_memoryview___repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("__repr__", 0); /* "View.MemoryView":612 * * def __repr__(self): * return "" % (self.base.__class__.__name__, # <<<<<<<<<<<<<< * id(self)) * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":613 * def __repr__(self): * return "" % (self.base.__class__.__name__, * id(self)) # <<<<<<<<<<<<<< * * def __str__(self): */ __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 613, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); /* "View.MemoryView":612 * * def __repr__(self): * return "" % (self.base.__class__.__name__, # <<<<<<<<<<<<<< * id(self)) * */ __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_MemoryView_of_r_at_0x_x, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":611 * return 0 * * def __repr__(self): # <<<<<<<<<<<<<< * return "" % (self.base.__class__.__name__, * id(self)) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":615 * id(self)) * * def __str__(self): # <<<<<<<<<<<<<< * return "" % (self.base.__class__.__name__,) * */ /* Python wrapper */ static PyObject *__pyx_memoryview___str__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_memoryview___str__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__str__", 0); /* "View.MemoryView":616 * * def __str__(self): * return "" % (self.base.__class__.__name__,) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_MemoryView_of_r_object, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":615 * id(self)) * * def __str__(self): # <<<<<<<<<<<<<< * return "" % (self.base.__class__.__name__,) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.memoryview.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":619 * * * def is_c_contig(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp */ /* Python wrapper */ static PyObject *__pyx_memoryview_is_c_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_memoryview_is_c_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("is_c_contig (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(struct __pyx_memoryview_obj *__pyx_v_self) { __Pyx_memviewslice *__pyx_v_mslice; __Pyx_memviewslice __pyx_v_tmp; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("is_c_contig", 0); /* "View.MemoryView":622 * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp * mslice = get_slice_from_memview(self, &tmp) # <<<<<<<<<<<<<< * return slice_is_contig(mslice[0], 'C', self.view.ndim) * */ __pyx_v_mslice = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_self, (&__pyx_v_tmp)); /* "View.MemoryView":623 * cdef __Pyx_memviewslice tmp * mslice = get_slice_from_memview(self, &tmp) * return slice_is_contig(mslice[0], 'C', self.view.ndim) # <<<<<<<<<<<<<< * * def is_f_contig(self): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_memviewslice_is_contig((__pyx_v_mslice[0]), 'C', __pyx_v_self->view.ndim)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":619 * * * def is_c_contig(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.is_c_contig", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":625 * return slice_is_contig(mslice[0], 'C', self.view.ndim) * * def is_f_contig(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp */ /* Python wrapper */ static PyObject *__pyx_memoryview_is_f_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_memoryview_is_f_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("is_f_contig (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(struct __pyx_memoryview_obj *__pyx_v_self) { __Pyx_memviewslice *__pyx_v_mslice; __Pyx_memviewslice __pyx_v_tmp; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("is_f_contig", 0); /* "View.MemoryView":628 * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp * mslice = get_slice_from_memview(self, &tmp) # <<<<<<<<<<<<<< * return slice_is_contig(mslice[0], 'F', self.view.ndim) * */ __pyx_v_mslice = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_self, (&__pyx_v_tmp)); /* "View.MemoryView":629 * cdef __Pyx_memviewslice tmp * mslice = get_slice_from_memview(self, &tmp) * return slice_is_contig(mslice[0], 'F', self.view.ndim) # <<<<<<<<<<<<<< * * def copy(self): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_memviewslice_is_contig((__pyx_v_mslice[0]), 'F', __pyx_v_self->view.ndim)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":625 * return slice_is_contig(mslice[0], 'C', self.view.ndim) * * def is_f_contig(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.is_f_contig", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":631 * return slice_is_contig(mslice[0], 'F', self.view.ndim) * * def copy(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice mslice * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS */ /* Python wrapper */ static PyObject *__pyx_memoryview_copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_memoryview_copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("copy (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(struct __pyx_memoryview_obj *__pyx_v_self) { __Pyx_memviewslice __pyx_v_mslice; int __pyx_v_flags; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_memviewslice __pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("copy", 0); /* "View.MemoryView":633 * def copy(self): * cdef __Pyx_memviewslice mslice * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS # <<<<<<<<<<<<<< * * slice_copy(self, &mslice) */ __pyx_v_flags = (__pyx_v_self->flags & (~PyBUF_F_CONTIGUOUS)); /* "View.MemoryView":635 * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS * * slice_copy(self, &mslice) # <<<<<<<<<<<<<< * mslice = slice_copy_contig(&mslice, "c", self.view.ndim, * self.view.itemsize, */ __pyx_memoryview_slice_copy(__pyx_v_self, (&__pyx_v_mslice)); /* "View.MemoryView":636 * * slice_copy(self, &mslice) * mslice = slice_copy_contig(&mslice, "c", self.view.ndim, # <<<<<<<<<<<<<< * self.view.itemsize, * flags|PyBUF_C_CONTIGUOUS, */ __pyx_t_1 = __pyx_memoryview_copy_new_contig((&__pyx_v_mslice), ((char *)"c"), __pyx_v_self->view.ndim, __pyx_v_self->view.itemsize, (__pyx_v_flags | PyBUF_C_CONTIGUOUS), __pyx_v_self->dtype_is_object); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 636, __pyx_L1_error) __pyx_v_mslice = __pyx_t_1; /* "View.MemoryView":641 * self.dtype_is_object) * * return memoryview_copy_from_slice(self, &mslice) # <<<<<<<<<<<<<< * * def copy_fortran(self): */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __pyx_memoryview_copy_object_from_slice(__pyx_v_self, (&__pyx_v_mslice)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":631 * return slice_is_contig(mslice[0], 'F', self.view.ndim) * * def copy(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice mslice * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.memoryview.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":643 * return memoryview_copy_from_slice(self, &mslice) * * def copy_fortran(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice src, dst * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS */ /* Python wrapper */ static PyObject *__pyx_memoryview_copy_fortran(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_memoryview_copy_fortran(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("copy_fortran (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(struct __pyx_memoryview_obj *__pyx_v_self) { __Pyx_memviewslice __pyx_v_src; __Pyx_memviewslice __pyx_v_dst; int __pyx_v_flags; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_memviewslice __pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("copy_fortran", 0); /* "View.MemoryView":645 * def copy_fortran(self): * cdef __Pyx_memviewslice src, dst * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS # <<<<<<<<<<<<<< * * slice_copy(self, &src) */ __pyx_v_flags = (__pyx_v_self->flags & (~PyBUF_C_CONTIGUOUS)); /* "View.MemoryView":647 * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS * * slice_copy(self, &src) # <<<<<<<<<<<<<< * dst = slice_copy_contig(&src, "fortran", self.view.ndim, * self.view.itemsize, */ __pyx_memoryview_slice_copy(__pyx_v_self, (&__pyx_v_src)); /* "View.MemoryView":648 * * slice_copy(self, &src) * dst = slice_copy_contig(&src, "fortran", self.view.ndim, # <<<<<<<<<<<<<< * self.view.itemsize, * flags|PyBUF_F_CONTIGUOUS, */ __pyx_t_1 = __pyx_memoryview_copy_new_contig((&__pyx_v_src), ((char *)"fortran"), __pyx_v_self->view.ndim, __pyx_v_self->view.itemsize, (__pyx_v_flags | PyBUF_F_CONTIGUOUS), __pyx_v_self->dtype_is_object); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 648, __pyx_L1_error) __pyx_v_dst = __pyx_t_1; /* "View.MemoryView":653 * self.dtype_is_object) * * return memoryview_copy_from_slice(self, &dst) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __pyx_memoryview_copy_object_from_slice(__pyx_v_self, (&__pyx_v_dst)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":643 * return memoryview_copy_from_slice(self, &mslice) * * def copy_fortran(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice src, dst * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.memoryview.copy_fortran", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_memoryview_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw___pyx_memoryview_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_memoryview___reduce_cython__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_memoryview___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__25, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(2, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_memoryview_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw___pyx_memoryview_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_memoryview_2__setstate_cython__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_memoryview_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__26, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(2, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":657 * * @cname('__pyx_memoryview_new') * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): # <<<<<<<<<<<<<< * cdef memoryview result = memoryview(o, flags, dtype_is_object) * result.typeinfo = typeinfo */ static PyObject *__pyx_memoryview_new(PyObject *__pyx_v_o, int __pyx_v_flags, int __pyx_v_dtype_is_object, __Pyx_TypeInfo *__pyx_v_typeinfo) { struct __pyx_memoryview_obj *__pyx_v_result = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("memoryview_cwrapper", 0); /* "View.MemoryView":658 * @cname('__pyx_memoryview_new') * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): * cdef memoryview result = memoryview(o, flags, dtype_is_object) # <<<<<<<<<<<<<< * result.typeinfo = typeinfo * return result */ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_o); __Pyx_GIVEREF(__pyx_v_o); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_o); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_result = ((struct __pyx_memoryview_obj *)__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":659 * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): * cdef memoryview result = memoryview(o, flags, dtype_is_object) * result.typeinfo = typeinfo # <<<<<<<<<<<<<< * return result * */ __pyx_v_result->typeinfo = __pyx_v_typeinfo; /* "View.MemoryView":660 * cdef memoryview result = memoryview(o, flags, dtype_is_object) * result.typeinfo = typeinfo * return result # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_check') */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_result)); __pyx_r = ((PyObject *)__pyx_v_result); goto __pyx_L0; /* "View.MemoryView":657 * * @cname('__pyx_memoryview_new') * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): # <<<<<<<<<<<<<< * cdef memoryview result = memoryview(o, flags, dtype_is_object) * result.typeinfo = typeinfo */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview_cwrapper", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_result); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":663 * * @cname('__pyx_memoryview_check') * cdef inline bint memoryview_check(object o): # <<<<<<<<<<<<<< * return isinstance(o, memoryview) * */ static CYTHON_INLINE int __pyx_memoryview_check(PyObject *__pyx_v_o) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("memoryview_check", 0); /* "View.MemoryView":664 * @cname('__pyx_memoryview_check') * cdef inline bint memoryview_check(object o): * return isinstance(o, memoryview) # <<<<<<<<<<<<<< * * cdef tuple _unellipsify(object index, int ndim): */ __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_o, __pyx_memoryview_type); __pyx_r = __pyx_t_1; goto __pyx_L0; /* "View.MemoryView":663 * * @cname('__pyx_memoryview_check') * cdef inline bint memoryview_check(object o): # <<<<<<<<<<<<<< * return isinstance(o, memoryview) * */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":666 * return isinstance(o, memoryview) * * cdef tuple _unellipsify(object index, int ndim): # <<<<<<<<<<<<<< * """ * Replace all ellipses with full slices and fill incomplete indices with */ static PyObject *_unellipsify(PyObject *__pyx_v_index, int __pyx_v_ndim) { PyObject *__pyx_v_tup = NULL; PyObject *__pyx_v_result = NULL; int __pyx_v_have_slices; int __pyx_v_seen_ellipsis; CYTHON_UNUSED PyObject *__pyx_v_idx = NULL; PyObject *__pyx_v_item = NULL; Py_ssize_t __pyx_v_nslices; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; Py_ssize_t __pyx_t_5; PyObject *(*__pyx_t_6)(PyObject *); PyObject *__pyx_t_7 = NULL; Py_ssize_t __pyx_t_8; int __pyx_t_9; int __pyx_t_10; PyObject *__pyx_t_11 = NULL; __Pyx_RefNannySetupContext("_unellipsify", 0); /* "View.MemoryView":671 * full slices. * """ * if not isinstance(index, tuple): # <<<<<<<<<<<<<< * tup = (index,) * else: */ __pyx_t_1 = PyTuple_Check(__pyx_v_index); __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":672 * """ * if not isinstance(index, tuple): * tup = (index,) # <<<<<<<<<<<<<< * else: * tup = index */ __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_index); __Pyx_GIVEREF(__pyx_v_index); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_index); __pyx_v_tup = __pyx_t_3; __pyx_t_3 = 0; /* "View.MemoryView":671 * full slices. * """ * if not isinstance(index, tuple): # <<<<<<<<<<<<<< * tup = (index,) * else: */ goto __pyx_L3; } /* "View.MemoryView":674 * tup = (index,) * else: * tup = index # <<<<<<<<<<<<<< * * result = [] */ /*else*/ { __Pyx_INCREF(__pyx_v_index); __pyx_v_tup = __pyx_v_index; } __pyx_L3:; /* "View.MemoryView":676 * tup = index * * result = [] # <<<<<<<<<<<<<< * have_slices = False * seen_ellipsis = False */ __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_result = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":677 * * result = [] * have_slices = False # <<<<<<<<<<<<<< * seen_ellipsis = False * for idx, item in enumerate(tup): */ __pyx_v_have_slices = 0; /* "View.MemoryView":678 * result = [] * have_slices = False * seen_ellipsis = False # <<<<<<<<<<<<<< * for idx, item in enumerate(tup): * if item is Ellipsis: */ __pyx_v_seen_ellipsis = 0; /* "View.MemoryView":679 * have_slices = False * seen_ellipsis = False * for idx, item in enumerate(tup): # <<<<<<<<<<<<<< * if item is Ellipsis: * if not seen_ellipsis: */ __Pyx_INCREF(__pyx_int_0); __pyx_t_3 = __pyx_int_0; if (likely(PyList_CheckExact(__pyx_v_tup)) || PyTuple_CheckExact(__pyx_v_tup)) { __pyx_t_4 = __pyx_v_tup; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_tup); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 679, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(2, 679, __pyx_L1_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(2, 679, __pyx_L1_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif } } else { __pyx_t_7 = __pyx_t_6(__pyx_t_4); if (unlikely(!__pyx_t_7)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 679, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_7); } __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_7); __pyx_t_7 = 0; __Pyx_INCREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_3); __pyx_t_7 = __Pyx_PyInt_AddObjC(__pyx_t_3, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = __pyx_t_7; __pyx_t_7 = 0; /* "View.MemoryView":680 * seen_ellipsis = False * for idx, item in enumerate(tup): * if item is Ellipsis: # <<<<<<<<<<<<<< * if not seen_ellipsis: * result.extend([slice(None)] * (ndim - len(tup) + 1)) */ __pyx_t_2 = (__pyx_v_item == __pyx_builtin_Ellipsis); __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* "View.MemoryView":681 * for idx, item in enumerate(tup): * if item is Ellipsis: * if not seen_ellipsis: # <<<<<<<<<<<<<< * result.extend([slice(None)] * (ndim - len(tup) + 1)) * seen_ellipsis = True */ __pyx_t_1 = ((!(__pyx_v_seen_ellipsis != 0)) != 0); if (__pyx_t_1) { /* "View.MemoryView":682 * if item is Ellipsis: * if not seen_ellipsis: * result.extend([slice(None)] * (ndim - len(tup) + 1)) # <<<<<<<<<<<<<< * seen_ellipsis = True * else: */ __pyx_t_8 = PyObject_Length(__pyx_v_tup); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(2, 682, __pyx_L1_error) __pyx_t_7 = PyList_New(1 * ((((__pyx_v_ndim - __pyx_t_8) + 1)<0) ? 0:((__pyx_v_ndim - __pyx_t_8) + 1))); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); { Py_ssize_t __pyx_temp; for (__pyx_temp=0; __pyx_temp < ((__pyx_v_ndim - __pyx_t_8) + 1); __pyx_temp++) { __Pyx_INCREF(__pyx_slice__27); __Pyx_GIVEREF(__pyx_slice__27); PyList_SET_ITEM(__pyx_t_7, __pyx_temp, __pyx_slice__27); } } __pyx_t_9 = __Pyx_PyList_Extend(__pyx_v_result, __pyx_t_7); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 682, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "View.MemoryView":683 * if not seen_ellipsis: * result.extend([slice(None)] * (ndim - len(tup) + 1)) * seen_ellipsis = True # <<<<<<<<<<<<<< * else: * result.append(slice(None)) */ __pyx_v_seen_ellipsis = 1; /* "View.MemoryView":681 * for idx, item in enumerate(tup): * if item is Ellipsis: * if not seen_ellipsis: # <<<<<<<<<<<<<< * result.extend([slice(None)] * (ndim - len(tup) + 1)) * seen_ellipsis = True */ goto __pyx_L7; } /* "View.MemoryView":685 * seen_ellipsis = True * else: * result.append(slice(None)) # <<<<<<<<<<<<<< * have_slices = True * else: */ /*else*/ { __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_result, __pyx_slice__27); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 685, __pyx_L1_error) } __pyx_L7:; /* "View.MemoryView":686 * else: * result.append(slice(None)) * have_slices = True # <<<<<<<<<<<<<< * else: * if not isinstance(item, slice) and not PyIndex_Check(item): */ __pyx_v_have_slices = 1; /* "View.MemoryView":680 * seen_ellipsis = False * for idx, item in enumerate(tup): * if item is Ellipsis: # <<<<<<<<<<<<<< * if not seen_ellipsis: * result.extend([slice(None)] * (ndim - len(tup) + 1)) */ goto __pyx_L6; } /* "View.MemoryView":688 * have_slices = True * else: * if not isinstance(item, slice) and not PyIndex_Check(item): # <<<<<<<<<<<<<< * raise TypeError("Cannot index with type '%s'" % type(item)) * */ /*else*/ { __pyx_t_2 = PySlice_Check(__pyx_v_item); __pyx_t_10 = ((!(__pyx_t_2 != 0)) != 0); if (__pyx_t_10) { } else { __pyx_t_1 = __pyx_t_10; goto __pyx_L9_bool_binop_done; } __pyx_t_10 = ((!(PyIndex_Check(__pyx_v_item) != 0)) != 0); __pyx_t_1 = __pyx_t_10; __pyx_L9_bool_binop_done:; if (unlikely(__pyx_t_1)) { /* "View.MemoryView":689 * else: * if not isinstance(item, slice) and not PyIndex_Check(item): * raise TypeError("Cannot index with type '%s'" % type(item)) # <<<<<<<<<<<<<< * * have_slices = have_slices or isinstance(item, slice) */ __pyx_t_7 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Cannot_index_with_type_s, ((PyObject *)Py_TYPE(__pyx_v_item))); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_Raise(__pyx_t_11, 0, 0, 0); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_ERR(2, 689, __pyx_L1_error) /* "View.MemoryView":688 * have_slices = True * else: * if not isinstance(item, slice) and not PyIndex_Check(item): # <<<<<<<<<<<<<< * raise TypeError("Cannot index with type '%s'" % type(item)) * */ } /* "View.MemoryView":691 * raise TypeError("Cannot index with type '%s'" % type(item)) * * have_slices = have_slices or isinstance(item, slice) # <<<<<<<<<<<<<< * result.append(item) * */ __pyx_t_10 = (__pyx_v_have_slices != 0); if (!__pyx_t_10) { } else { __pyx_t_1 = __pyx_t_10; goto __pyx_L11_bool_binop_done; } __pyx_t_10 = PySlice_Check(__pyx_v_item); __pyx_t_2 = (__pyx_t_10 != 0); __pyx_t_1 = __pyx_t_2; __pyx_L11_bool_binop_done:; __pyx_v_have_slices = __pyx_t_1; /* "View.MemoryView":692 * * have_slices = have_slices or isinstance(item, slice) * result.append(item) # <<<<<<<<<<<<<< * * nslices = ndim - len(result) */ __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_result, __pyx_v_item); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 692, __pyx_L1_error) } __pyx_L6:; /* "View.MemoryView":679 * have_slices = False * seen_ellipsis = False * for idx, item in enumerate(tup): # <<<<<<<<<<<<<< * if item is Ellipsis: * if not seen_ellipsis: */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":694 * result.append(item) * * nslices = ndim - len(result) # <<<<<<<<<<<<<< * if nslices: * result.extend([slice(None)] * nslices) */ __pyx_t_5 = PyList_GET_SIZE(__pyx_v_result); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(2, 694, __pyx_L1_error) __pyx_v_nslices = (__pyx_v_ndim - __pyx_t_5); /* "View.MemoryView":695 * * nslices = ndim - len(result) * if nslices: # <<<<<<<<<<<<<< * result.extend([slice(None)] * nslices) * */ __pyx_t_1 = (__pyx_v_nslices != 0); if (__pyx_t_1) { /* "View.MemoryView":696 * nslices = ndim - len(result) * if nslices: * result.extend([slice(None)] * nslices) # <<<<<<<<<<<<<< * * return have_slices or nslices, tuple(result) */ __pyx_t_3 = PyList_New(1 * ((__pyx_v_nslices<0) ? 0:__pyx_v_nslices)); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { Py_ssize_t __pyx_temp; for (__pyx_temp=0; __pyx_temp < __pyx_v_nslices; __pyx_temp++) { __Pyx_INCREF(__pyx_slice__27); __Pyx_GIVEREF(__pyx_slice__27); PyList_SET_ITEM(__pyx_t_3, __pyx_temp, __pyx_slice__27); } } __pyx_t_9 = __Pyx_PyList_Extend(__pyx_v_result, __pyx_t_3); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 696, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":695 * * nslices = ndim - len(result) * if nslices: # <<<<<<<<<<<<<< * result.extend([slice(None)] * nslices) * */ } /* "View.MemoryView":698 * result.extend([slice(None)] * nslices) * * return have_slices or nslices, tuple(result) # <<<<<<<<<<<<<< * * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): */ __Pyx_XDECREF(__pyx_r); if (!__pyx_v_have_slices) { } else { __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_have_slices); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L14_bool_binop_done; } __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_nslices); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __pyx_t_4; __pyx_t_4 = 0; __pyx_L14_bool_binop_done:; __pyx_t_4 = PyList_AsTuple(__pyx_v_result); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_4); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_r = ((PyObject*)__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L0; /* "View.MemoryView":666 * return isinstance(o, memoryview) * * cdef tuple _unellipsify(object index, int ndim): # <<<<<<<<<<<<<< * """ * Replace all ellipses with full slices and fill incomplete indices with */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_11); __Pyx_AddTraceback("View.MemoryView._unellipsify", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_tup); __Pyx_XDECREF(__pyx_v_result); __Pyx_XDECREF(__pyx_v_idx); __Pyx_XDECREF(__pyx_v_item); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":700 * return have_slices or nslices, tuple(result) * * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): # <<<<<<<<<<<<<< * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: */ static PyObject *assert_direct_dimensions(Py_ssize_t *__pyx_v_suboffsets, int __pyx_v_ndim) { Py_ssize_t __pyx_v_suboffset; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations Py_ssize_t *__pyx_t_1; Py_ssize_t *__pyx_t_2; Py_ssize_t *__pyx_t_3; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("assert_direct_dimensions", 0); /* "View.MemoryView":701 * * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): * for suboffset in suboffsets[:ndim]: # <<<<<<<<<<<<<< * if suboffset >= 0: * raise ValueError("Indirect dimensions not supported") */ __pyx_t_2 = (__pyx_v_suboffsets + __pyx_v_ndim); for (__pyx_t_3 = __pyx_v_suboffsets; __pyx_t_3 < __pyx_t_2; __pyx_t_3++) { __pyx_t_1 = __pyx_t_3; __pyx_v_suboffset = (__pyx_t_1[0]); /* "View.MemoryView":702 * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: # <<<<<<<<<<<<<< * raise ValueError("Indirect dimensions not supported") * */ __pyx_t_4 = ((__pyx_v_suboffset >= 0) != 0); if (unlikely(__pyx_t_4)) { /* "View.MemoryView":703 * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: * raise ValueError("Indirect dimensions not supported") # <<<<<<<<<<<<<< * * */ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__28, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(2, 703, __pyx_L1_error) /* "View.MemoryView":702 * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: # <<<<<<<<<<<<<< * raise ValueError("Indirect dimensions not supported") * */ } } /* "View.MemoryView":700 * return have_slices or nslices, tuple(result) * * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): # <<<<<<<<<<<<<< * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.assert_direct_dimensions", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":710 * * @cname('__pyx_memview_slice') * cdef memoryview memview_slice(memoryview memview, object indices): # <<<<<<<<<<<<<< * cdef int new_ndim = 0, suboffset_dim = -1, dim * cdef bint negative_step */ static struct __pyx_memoryview_obj *__pyx_memview_slice(struct __pyx_memoryview_obj *__pyx_v_memview, PyObject *__pyx_v_indices) { int __pyx_v_new_ndim; int __pyx_v_suboffset_dim; int __pyx_v_dim; __Pyx_memviewslice __pyx_v_src; __Pyx_memviewslice __pyx_v_dst; __Pyx_memviewslice *__pyx_v_p_src; struct __pyx_memoryviewslice_obj *__pyx_v_memviewsliceobj = 0; __Pyx_memviewslice *__pyx_v_p_dst; int *__pyx_v_p_suboffset_dim; Py_ssize_t __pyx_v_start; Py_ssize_t __pyx_v_stop; Py_ssize_t __pyx_v_step; int __pyx_v_have_start; int __pyx_v_have_stop; int __pyx_v_have_step; PyObject *__pyx_v_index = NULL; struct __pyx_memoryview_obj *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; struct __pyx_memoryview_obj *__pyx_t_4; char *__pyx_t_5; int __pyx_t_6; Py_ssize_t __pyx_t_7; PyObject *(*__pyx_t_8)(PyObject *); PyObject *__pyx_t_9 = NULL; Py_ssize_t __pyx_t_10; int __pyx_t_11; Py_ssize_t __pyx_t_12; __Pyx_RefNannySetupContext("memview_slice", 0); /* "View.MemoryView":711 * @cname('__pyx_memview_slice') * cdef memoryview memview_slice(memoryview memview, object indices): * cdef int new_ndim = 0, suboffset_dim = -1, dim # <<<<<<<<<<<<<< * cdef bint negative_step * cdef __Pyx_memviewslice src, dst */ __pyx_v_new_ndim = 0; __pyx_v_suboffset_dim = -1; /* "View.MemoryView":718 * * * memset(&dst, 0, sizeof(dst)) # <<<<<<<<<<<<<< * * cdef _memoryviewslice memviewsliceobj */ (void)(memset((&__pyx_v_dst), 0, (sizeof(__pyx_v_dst)))); /* "View.MemoryView":722 * cdef _memoryviewslice memviewsliceobj * * assert memview.view.ndim > 0 # <<<<<<<<<<<<<< * * if isinstance(memview, _memoryviewslice): */ #ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_v_memview->view.ndim > 0) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(2, 722, __pyx_L1_error) } } #endif /* "View.MemoryView":724 * assert memview.view.ndim > 0 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * memviewsliceobj = memview * p_src = &memviewsliceobj.from_slice */ __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":725 * * if isinstance(memview, _memoryviewslice): * memviewsliceobj = memview # <<<<<<<<<<<<<< * p_src = &memviewsliceobj.from_slice * else: */ if (!(likely(((((PyObject *)__pyx_v_memview)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type))))) __PYX_ERR(2, 725, __pyx_L1_error) __pyx_t_3 = ((PyObject *)__pyx_v_memview); __Pyx_INCREF(__pyx_t_3); __pyx_v_memviewsliceobj = ((struct __pyx_memoryviewslice_obj *)__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":726 * if isinstance(memview, _memoryviewslice): * memviewsliceobj = memview * p_src = &memviewsliceobj.from_slice # <<<<<<<<<<<<<< * else: * slice_copy(memview, &src) */ __pyx_v_p_src = (&__pyx_v_memviewsliceobj->from_slice); /* "View.MemoryView":724 * assert memview.view.ndim > 0 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * memviewsliceobj = memview * p_src = &memviewsliceobj.from_slice */ goto __pyx_L3; } /* "View.MemoryView":728 * p_src = &memviewsliceobj.from_slice * else: * slice_copy(memview, &src) # <<<<<<<<<<<<<< * p_src = &src * */ /*else*/ { __pyx_memoryview_slice_copy(__pyx_v_memview, (&__pyx_v_src)); /* "View.MemoryView":729 * else: * slice_copy(memview, &src) * p_src = &src # <<<<<<<<<<<<<< * * */ __pyx_v_p_src = (&__pyx_v_src); } __pyx_L3:; /* "View.MemoryView":735 * * * dst.memview = p_src.memview # <<<<<<<<<<<<<< * dst.data = p_src.data * */ __pyx_t_4 = __pyx_v_p_src->memview; __pyx_v_dst.memview = __pyx_t_4; /* "View.MemoryView":736 * * dst.memview = p_src.memview * dst.data = p_src.data # <<<<<<<<<<<<<< * * */ __pyx_t_5 = __pyx_v_p_src->data; __pyx_v_dst.data = __pyx_t_5; /* "View.MemoryView":741 * * * cdef __Pyx_memviewslice *p_dst = &dst # <<<<<<<<<<<<<< * cdef int *p_suboffset_dim = &suboffset_dim * cdef Py_ssize_t start, stop, step */ __pyx_v_p_dst = (&__pyx_v_dst); /* "View.MemoryView":742 * * cdef __Pyx_memviewslice *p_dst = &dst * cdef int *p_suboffset_dim = &suboffset_dim # <<<<<<<<<<<<<< * cdef Py_ssize_t start, stop, step * cdef bint have_start, have_stop, have_step */ __pyx_v_p_suboffset_dim = (&__pyx_v_suboffset_dim); /* "View.MemoryView":746 * cdef bint have_start, have_stop, have_step * * for dim, index in enumerate(indices): # <<<<<<<<<<<<<< * if PyIndex_Check(index): * slice_memviewslice( */ __pyx_t_6 = 0; if (likely(PyList_CheckExact(__pyx_v_indices)) || PyTuple_CheckExact(__pyx_v_indices)) { __pyx_t_3 = __pyx_v_indices; __Pyx_INCREF(__pyx_t_3); __pyx_t_7 = 0; __pyx_t_8 = NULL; } else { __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_indices); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 746, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_8)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_9 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(2, 746, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif } else { if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(2, 746, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif } } else { __pyx_t_9 = __pyx_t_8(__pyx_t_3); if (unlikely(!__pyx_t_9)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 746, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_9); } __Pyx_XDECREF_SET(__pyx_v_index, __pyx_t_9); __pyx_t_9 = 0; __pyx_v_dim = __pyx_t_6; __pyx_t_6 = (__pyx_t_6 + 1); /* "View.MemoryView":747 * * for dim, index in enumerate(indices): * if PyIndex_Check(index): # <<<<<<<<<<<<<< * slice_memviewslice( * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], */ __pyx_t_2 = (PyIndex_Check(__pyx_v_index) != 0); if (__pyx_t_2) { /* "View.MemoryView":751 * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], * dim, new_ndim, p_suboffset_dim, * index, 0, 0, # start, stop, step # <<<<<<<<<<<<<< * 0, 0, 0, # have_{start,stop,step} * False) */ __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_v_index); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 751, __pyx_L1_error) /* "View.MemoryView":748 * for dim, index in enumerate(indices): * if PyIndex_Check(index): * slice_memviewslice( # <<<<<<<<<<<<<< * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], * dim, new_ndim, p_suboffset_dim, */ __pyx_t_11 = __pyx_memoryview_slice_memviewslice(__pyx_v_p_dst, (__pyx_v_p_src->shape[__pyx_v_dim]), (__pyx_v_p_src->strides[__pyx_v_dim]), (__pyx_v_p_src->suboffsets[__pyx_v_dim]), __pyx_v_dim, __pyx_v_new_ndim, __pyx_v_p_suboffset_dim, __pyx_t_10, 0, 0, 0, 0, 0, 0); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(2, 748, __pyx_L1_error) /* "View.MemoryView":747 * * for dim, index in enumerate(indices): * if PyIndex_Check(index): # <<<<<<<<<<<<<< * slice_memviewslice( * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], */ goto __pyx_L6; } /* "View.MemoryView":754 * 0, 0, 0, # have_{start,stop,step} * False) * elif index is None: # <<<<<<<<<<<<<< * p_dst.shape[new_ndim] = 1 * p_dst.strides[new_ndim] = 0 */ __pyx_t_2 = (__pyx_v_index == Py_None); __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* "View.MemoryView":755 * False) * elif index is None: * p_dst.shape[new_ndim] = 1 # <<<<<<<<<<<<<< * p_dst.strides[new_ndim] = 0 * p_dst.suboffsets[new_ndim] = -1 */ (__pyx_v_p_dst->shape[__pyx_v_new_ndim]) = 1; /* "View.MemoryView":756 * elif index is None: * p_dst.shape[new_ndim] = 1 * p_dst.strides[new_ndim] = 0 # <<<<<<<<<<<<<< * p_dst.suboffsets[new_ndim] = -1 * new_ndim += 1 */ (__pyx_v_p_dst->strides[__pyx_v_new_ndim]) = 0; /* "View.MemoryView":757 * p_dst.shape[new_ndim] = 1 * p_dst.strides[new_ndim] = 0 * p_dst.suboffsets[new_ndim] = -1 # <<<<<<<<<<<<<< * new_ndim += 1 * else: */ (__pyx_v_p_dst->suboffsets[__pyx_v_new_ndim]) = -1L; /* "View.MemoryView":758 * p_dst.strides[new_ndim] = 0 * p_dst.suboffsets[new_ndim] = -1 * new_ndim += 1 # <<<<<<<<<<<<<< * else: * start = index.start or 0 */ __pyx_v_new_ndim = (__pyx_v_new_ndim + 1); /* "View.MemoryView":754 * 0, 0, 0, # have_{start,stop,step} * False) * elif index is None: # <<<<<<<<<<<<<< * p_dst.shape[new_ndim] = 1 * p_dst.strides[new_ndim] = 0 */ goto __pyx_L6; } /* "View.MemoryView":760 * new_ndim += 1 * else: * start = index.start or 0 # <<<<<<<<<<<<<< * stop = index.stop or 0 * step = index.step or 0 */ /*else*/ { __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_start); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 760, __pyx_L1_error) if (!__pyx_t_1) { __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else { __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 760, __pyx_L1_error) __pyx_t_10 = __pyx_t_12; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L7_bool_binop_done; } __pyx_t_10 = 0; __pyx_L7_bool_binop_done:; __pyx_v_start = __pyx_t_10; /* "View.MemoryView":761 * else: * start = index.start or 0 * stop = index.stop or 0 # <<<<<<<<<<<<<< * step = index.step or 0 * */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_stop); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 761, __pyx_L1_error) if (!__pyx_t_1) { __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else { __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 761, __pyx_L1_error) __pyx_t_10 = __pyx_t_12; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L9_bool_binop_done; } __pyx_t_10 = 0; __pyx_L9_bool_binop_done:; __pyx_v_stop = __pyx_t_10; /* "View.MemoryView":762 * start = index.start or 0 * stop = index.stop or 0 * step = index.step or 0 # <<<<<<<<<<<<<< * * have_start = index.start is not None */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_step); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 762, __pyx_L1_error) if (!__pyx_t_1) { __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else { __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 762, __pyx_L1_error) __pyx_t_10 = __pyx_t_12; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L11_bool_binop_done; } __pyx_t_10 = 0; __pyx_L11_bool_binop_done:; __pyx_v_step = __pyx_t_10; /* "View.MemoryView":764 * step = index.step or 0 * * have_start = index.start is not None # <<<<<<<<<<<<<< * have_stop = index.stop is not None * have_step = index.step is not None */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_start); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = (__pyx_t_9 != Py_None); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_have_start = __pyx_t_1; /* "View.MemoryView":765 * * have_start = index.start is not None * have_stop = index.stop is not None # <<<<<<<<<<<<<< * have_step = index.step is not None * */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_stop); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 765, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = (__pyx_t_9 != Py_None); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_have_stop = __pyx_t_1; /* "View.MemoryView":766 * have_start = index.start is not None * have_stop = index.stop is not None * have_step = index.step is not None # <<<<<<<<<<<<<< * * slice_memviewslice( */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_step); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 766, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = (__pyx_t_9 != Py_None); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_have_step = __pyx_t_1; /* "View.MemoryView":768 * have_step = index.step is not None * * slice_memviewslice( # <<<<<<<<<<<<<< * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], * dim, new_ndim, p_suboffset_dim, */ __pyx_t_11 = __pyx_memoryview_slice_memviewslice(__pyx_v_p_dst, (__pyx_v_p_src->shape[__pyx_v_dim]), (__pyx_v_p_src->strides[__pyx_v_dim]), (__pyx_v_p_src->suboffsets[__pyx_v_dim]), __pyx_v_dim, __pyx_v_new_ndim, __pyx_v_p_suboffset_dim, __pyx_v_start, __pyx_v_stop, __pyx_v_step, __pyx_v_have_start, __pyx_v_have_stop, __pyx_v_have_step, 1); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(2, 768, __pyx_L1_error) /* "View.MemoryView":774 * have_start, have_stop, have_step, * True) * new_ndim += 1 # <<<<<<<<<<<<<< * * if isinstance(memview, _memoryviewslice): */ __pyx_v_new_ndim = (__pyx_v_new_ndim + 1); } __pyx_L6:; /* "View.MemoryView":746 * cdef bint have_start, have_stop, have_step * * for dim, index in enumerate(indices): # <<<<<<<<<<<<<< * if PyIndex_Check(index): * slice_memviewslice( */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":776 * new_ndim += 1 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * return memoryview_fromslice(dst, new_ndim, * memviewsliceobj.to_object_func, */ __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":777 * * if isinstance(memview, _memoryviewslice): * return memoryview_fromslice(dst, new_ndim, # <<<<<<<<<<<<<< * memviewsliceobj.to_object_func, * memviewsliceobj.to_dtype_func, */ __Pyx_XDECREF(((PyObject *)__pyx_r)); /* "View.MemoryView":778 * if isinstance(memview, _memoryviewslice): * return memoryview_fromslice(dst, new_ndim, * memviewsliceobj.to_object_func, # <<<<<<<<<<<<<< * memviewsliceobj.to_dtype_func, * memview.dtype_is_object) */ if (unlikely(!__pyx_v_memviewsliceobj)) { __Pyx_RaiseUnboundLocalError("memviewsliceobj"); __PYX_ERR(2, 778, __pyx_L1_error) } /* "View.MemoryView":779 * return memoryview_fromslice(dst, new_ndim, * memviewsliceobj.to_object_func, * memviewsliceobj.to_dtype_func, # <<<<<<<<<<<<<< * memview.dtype_is_object) * else: */ if (unlikely(!__pyx_v_memviewsliceobj)) { __Pyx_RaiseUnboundLocalError("memviewsliceobj"); __PYX_ERR(2, 779, __pyx_L1_error) } /* "View.MemoryView":777 * * if isinstance(memview, _memoryviewslice): * return memoryview_fromslice(dst, new_ndim, # <<<<<<<<<<<<<< * memviewsliceobj.to_object_func, * memviewsliceobj.to_dtype_func, */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_dst, __pyx_v_new_ndim, __pyx_v_memviewsliceobj->to_object_func, __pyx_v_memviewsliceobj->to_dtype_func, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 777, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_memoryview_type))))) __PYX_ERR(2, 777, __pyx_L1_error) __pyx_r = ((struct __pyx_memoryview_obj *)__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L0; /* "View.MemoryView":776 * new_ndim += 1 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * return memoryview_fromslice(dst, new_ndim, * memviewsliceobj.to_object_func, */ } /* "View.MemoryView":782 * memview.dtype_is_object) * else: * return memoryview_fromslice(dst, new_ndim, NULL, NULL, # <<<<<<<<<<<<<< * memview.dtype_is_object) * */ /*else*/ { __Pyx_XDECREF(((PyObject *)__pyx_r)); /* "View.MemoryView":783 * else: * return memoryview_fromslice(dst, new_ndim, NULL, NULL, * memview.dtype_is_object) # <<<<<<<<<<<<<< * * */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_dst, __pyx_v_new_ndim, NULL, NULL, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); /* "View.MemoryView":782 * memview.dtype_is_object) * else: * return memoryview_fromslice(dst, new_ndim, NULL, NULL, # <<<<<<<<<<<<<< * memview.dtype_is_object) * */ if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_memoryview_type))))) __PYX_ERR(2, 782, __pyx_L1_error) __pyx_r = ((struct __pyx_memoryview_obj *)__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L0; } /* "View.MemoryView":710 * * @cname('__pyx_memview_slice') * cdef memoryview memview_slice(memoryview memview, object indices): # <<<<<<<<<<<<<< * cdef int new_ndim = 0, suboffset_dim = -1, dim * cdef bint negative_step */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("View.MemoryView.memview_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_memviewsliceobj); __Pyx_XDECREF(__pyx_v_index); __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":807 * * @cname('__pyx_memoryview_slice_memviewslice') * cdef int slice_memviewslice( # <<<<<<<<<<<<<< * __Pyx_memviewslice *dst, * Py_ssize_t shape, Py_ssize_t stride, Py_ssize_t suboffset, */ static int __pyx_memoryview_slice_memviewslice(__Pyx_memviewslice *__pyx_v_dst, Py_ssize_t __pyx_v_shape, Py_ssize_t __pyx_v_stride, Py_ssize_t __pyx_v_suboffset, int __pyx_v_dim, int __pyx_v_new_ndim, int *__pyx_v_suboffset_dim, Py_ssize_t __pyx_v_start, Py_ssize_t __pyx_v_stop, Py_ssize_t __pyx_v_step, int __pyx_v_have_start, int __pyx_v_have_stop, int __pyx_v_have_step, int __pyx_v_is_slice) { Py_ssize_t __pyx_v_new_shape; int __pyx_v_negative_step; int __pyx_r; int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; /* "View.MemoryView":827 * cdef bint negative_step * * if not is_slice: # <<<<<<<<<<<<<< * * if start < 0: */ __pyx_t_1 = ((!(__pyx_v_is_slice != 0)) != 0); if (__pyx_t_1) { /* "View.MemoryView":829 * if not is_slice: * * if start < 0: # <<<<<<<<<<<<<< * start += shape * if not 0 <= start < shape: */ __pyx_t_1 = ((__pyx_v_start < 0) != 0); if (__pyx_t_1) { /* "View.MemoryView":830 * * if start < 0: * start += shape # <<<<<<<<<<<<<< * if not 0 <= start < shape: * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) */ __pyx_v_start = (__pyx_v_start + __pyx_v_shape); /* "View.MemoryView":829 * if not is_slice: * * if start < 0: # <<<<<<<<<<<<<< * start += shape * if not 0 <= start < shape: */ } /* "View.MemoryView":831 * if start < 0: * start += shape * if not 0 <= start < shape: # <<<<<<<<<<<<<< * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) * else: */ __pyx_t_1 = (0 <= __pyx_v_start); if (__pyx_t_1) { __pyx_t_1 = (__pyx_v_start < __pyx_v_shape); } __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":832 * start += shape * if not 0 <= start < shape: * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) # <<<<<<<<<<<<<< * else: * */ __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_IndexError, ((char *)"Index out of bounds (axis %d)"), __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 832, __pyx_L1_error) /* "View.MemoryView":831 * if start < 0: * start += shape * if not 0 <= start < shape: # <<<<<<<<<<<<<< * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) * else: */ } /* "View.MemoryView":827 * cdef bint negative_step * * if not is_slice: # <<<<<<<<<<<<<< * * if start < 0: */ goto __pyx_L3; } /* "View.MemoryView":835 * else: * * negative_step = have_step != 0 and step < 0 # <<<<<<<<<<<<<< * * if have_step and step == 0: */ /*else*/ { __pyx_t_1 = ((__pyx_v_have_step != 0) != 0); if (__pyx_t_1) { } else { __pyx_t_2 = __pyx_t_1; goto __pyx_L6_bool_binop_done; } __pyx_t_1 = ((__pyx_v_step < 0) != 0); __pyx_t_2 = __pyx_t_1; __pyx_L6_bool_binop_done:; __pyx_v_negative_step = __pyx_t_2; /* "View.MemoryView":837 * negative_step = have_step != 0 and step < 0 * * if have_step and step == 0: # <<<<<<<<<<<<<< * _err_dim(ValueError, "Step may not be zero (axis %d)", dim) * */ __pyx_t_1 = (__pyx_v_have_step != 0); if (__pyx_t_1) { } else { __pyx_t_2 = __pyx_t_1; goto __pyx_L9_bool_binop_done; } __pyx_t_1 = ((__pyx_v_step == 0) != 0); __pyx_t_2 = __pyx_t_1; __pyx_L9_bool_binop_done:; if (__pyx_t_2) { /* "View.MemoryView":838 * * if have_step and step == 0: * _err_dim(ValueError, "Step may not be zero (axis %d)", dim) # <<<<<<<<<<<<<< * * */ __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_ValueError, ((char *)"Step may not be zero (axis %d)"), __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 838, __pyx_L1_error) /* "View.MemoryView":837 * negative_step = have_step != 0 and step < 0 * * if have_step and step == 0: # <<<<<<<<<<<<<< * _err_dim(ValueError, "Step may not be zero (axis %d)", dim) * */ } /* "View.MemoryView":841 * * * if have_start: # <<<<<<<<<<<<<< * if start < 0: * start += shape */ __pyx_t_2 = (__pyx_v_have_start != 0); if (__pyx_t_2) { /* "View.MemoryView":842 * * if have_start: * if start < 0: # <<<<<<<<<<<<<< * start += shape * if start < 0: */ __pyx_t_2 = ((__pyx_v_start < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":843 * if have_start: * if start < 0: * start += shape # <<<<<<<<<<<<<< * if start < 0: * start = 0 */ __pyx_v_start = (__pyx_v_start + __pyx_v_shape); /* "View.MemoryView":844 * if start < 0: * start += shape * if start < 0: # <<<<<<<<<<<<<< * start = 0 * elif start >= shape: */ __pyx_t_2 = ((__pyx_v_start < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":845 * start += shape * if start < 0: * start = 0 # <<<<<<<<<<<<<< * elif start >= shape: * if negative_step: */ __pyx_v_start = 0; /* "View.MemoryView":844 * if start < 0: * start += shape * if start < 0: # <<<<<<<<<<<<<< * start = 0 * elif start >= shape: */ } /* "View.MemoryView":842 * * if have_start: * if start < 0: # <<<<<<<<<<<<<< * start += shape * if start < 0: */ goto __pyx_L12; } /* "View.MemoryView":846 * if start < 0: * start = 0 * elif start >= shape: # <<<<<<<<<<<<<< * if negative_step: * start = shape - 1 */ __pyx_t_2 = ((__pyx_v_start >= __pyx_v_shape) != 0); if (__pyx_t_2) { /* "View.MemoryView":847 * start = 0 * elif start >= shape: * if negative_step: # <<<<<<<<<<<<<< * start = shape - 1 * else: */ __pyx_t_2 = (__pyx_v_negative_step != 0); if (__pyx_t_2) { /* "View.MemoryView":848 * elif start >= shape: * if negative_step: * start = shape - 1 # <<<<<<<<<<<<<< * else: * start = shape */ __pyx_v_start = (__pyx_v_shape - 1); /* "View.MemoryView":847 * start = 0 * elif start >= shape: * if negative_step: # <<<<<<<<<<<<<< * start = shape - 1 * else: */ goto __pyx_L14; } /* "View.MemoryView":850 * start = shape - 1 * else: * start = shape # <<<<<<<<<<<<<< * else: * if negative_step: */ /*else*/ { __pyx_v_start = __pyx_v_shape; } __pyx_L14:; /* "View.MemoryView":846 * if start < 0: * start = 0 * elif start >= shape: # <<<<<<<<<<<<<< * if negative_step: * start = shape - 1 */ } __pyx_L12:; /* "View.MemoryView":841 * * * if have_start: # <<<<<<<<<<<<<< * if start < 0: * start += shape */ goto __pyx_L11; } /* "View.MemoryView":852 * start = shape * else: * if negative_step: # <<<<<<<<<<<<<< * start = shape - 1 * else: */ /*else*/ { __pyx_t_2 = (__pyx_v_negative_step != 0); if (__pyx_t_2) { /* "View.MemoryView":853 * else: * if negative_step: * start = shape - 1 # <<<<<<<<<<<<<< * else: * start = 0 */ __pyx_v_start = (__pyx_v_shape - 1); /* "View.MemoryView":852 * start = shape * else: * if negative_step: # <<<<<<<<<<<<<< * start = shape - 1 * else: */ goto __pyx_L15; } /* "View.MemoryView":855 * start = shape - 1 * else: * start = 0 # <<<<<<<<<<<<<< * * if have_stop: */ /*else*/ { __pyx_v_start = 0; } __pyx_L15:; } __pyx_L11:; /* "View.MemoryView":857 * start = 0 * * if have_stop: # <<<<<<<<<<<<<< * if stop < 0: * stop += shape */ __pyx_t_2 = (__pyx_v_have_stop != 0); if (__pyx_t_2) { /* "View.MemoryView":858 * * if have_stop: * if stop < 0: # <<<<<<<<<<<<<< * stop += shape * if stop < 0: */ __pyx_t_2 = ((__pyx_v_stop < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":859 * if have_stop: * if stop < 0: * stop += shape # <<<<<<<<<<<<<< * if stop < 0: * stop = 0 */ __pyx_v_stop = (__pyx_v_stop + __pyx_v_shape); /* "View.MemoryView":860 * if stop < 0: * stop += shape * if stop < 0: # <<<<<<<<<<<<<< * stop = 0 * elif stop > shape: */ __pyx_t_2 = ((__pyx_v_stop < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":861 * stop += shape * if stop < 0: * stop = 0 # <<<<<<<<<<<<<< * elif stop > shape: * stop = shape */ __pyx_v_stop = 0; /* "View.MemoryView":860 * if stop < 0: * stop += shape * if stop < 0: # <<<<<<<<<<<<<< * stop = 0 * elif stop > shape: */ } /* "View.MemoryView":858 * * if have_stop: * if stop < 0: # <<<<<<<<<<<<<< * stop += shape * if stop < 0: */ goto __pyx_L17; } /* "View.MemoryView":862 * if stop < 0: * stop = 0 * elif stop > shape: # <<<<<<<<<<<<<< * stop = shape * else: */ __pyx_t_2 = ((__pyx_v_stop > __pyx_v_shape) != 0); if (__pyx_t_2) { /* "View.MemoryView":863 * stop = 0 * elif stop > shape: * stop = shape # <<<<<<<<<<<<<< * else: * if negative_step: */ __pyx_v_stop = __pyx_v_shape; /* "View.MemoryView":862 * if stop < 0: * stop = 0 * elif stop > shape: # <<<<<<<<<<<<<< * stop = shape * else: */ } __pyx_L17:; /* "View.MemoryView":857 * start = 0 * * if have_stop: # <<<<<<<<<<<<<< * if stop < 0: * stop += shape */ goto __pyx_L16; } /* "View.MemoryView":865 * stop = shape * else: * if negative_step: # <<<<<<<<<<<<<< * stop = -1 * else: */ /*else*/ { __pyx_t_2 = (__pyx_v_negative_step != 0); if (__pyx_t_2) { /* "View.MemoryView":866 * else: * if negative_step: * stop = -1 # <<<<<<<<<<<<<< * else: * stop = shape */ __pyx_v_stop = -1L; /* "View.MemoryView":865 * stop = shape * else: * if negative_step: # <<<<<<<<<<<<<< * stop = -1 * else: */ goto __pyx_L19; } /* "View.MemoryView":868 * stop = -1 * else: * stop = shape # <<<<<<<<<<<<<< * * if not have_step: */ /*else*/ { __pyx_v_stop = __pyx_v_shape; } __pyx_L19:; } __pyx_L16:; /* "View.MemoryView":870 * stop = shape * * if not have_step: # <<<<<<<<<<<<<< * step = 1 * */ __pyx_t_2 = ((!(__pyx_v_have_step != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":871 * * if not have_step: * step = 1 # <<<<<<<<<<<<<< * * */ __pyx_v_step = 1; /* "View.MemoryView":870 * stop = shape * * if not have_step: # <<<<<<<<<<<<<< * step = 1 * */ } /* "View.MemoryView":875 * * with cython.cdivision(True): * new_shape = (stop - start) // step # <<<<<<<<<<<<<< * * if (stop - start) - step * new_shape: */ __pyx_v_new_shape = ((__pyx_v_stop - __pyx_v_start) / __pyx_v_step); /* "View.MemoryView":877 * new_shape = (stop - start) // step * * if (stop - start) - step * new_shape: # <<<<<<<<<<<<<< * new_shape += 1 * */ __pyx_t_2 = (((__pyx_v_stop - __pyx_v_start) - (__pyx_v_step * __pyx_v_new_shape)) != 0); if (__pyx_t_2) { /* "View.MemoryView":878 * * if (stop - start) - step * new_shape: * new_shape += 1 # <<<<<<<<<<<<<< * * if new_shape < 0: */ __pyx_v_new_shape = (__pyx_v_new_shape + 1); /* "View.MemoryView":877 * new_shape = (stop - start) // step * * if (stop - start) - step * new_shape: # <<<<<<<<<<<<<< * new_shape += 1 * */ } /* "View.MemoryView":880 * new_shape += 1 * * if new_shape < 0: # <<<<<<<<<<<<<< * new_shape = 0 * */ __pyx_t_2 = ((__pyx_v_new_shape < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":881 * * if new_shape < 0: * new_shape = 0 # <<<<<<<<<<<<<< * * */ __pyx_v_new_shape = 0; /* "View.MemoryView":880 * new_shape += 1 * * if new_shape < 0: # <<<<<<<<<<<<<< * new_shape = 0 * */ } /* "View.MemoryView":884 * * * dst.strides[new_ndim] = stride * step # <<<<<<<<<<<<<< * dst.shape[new_ndim] = new_shape * dst.suboffsets[new_ndim] = suboffset */ (__pyx_v_dst->strides[__pyx_v_new_ndim]) = (__pyx_v_stride * __pyx_v_step); /* "View.MemoryView":885 * * dst.strides[new_ndim] = stride * step * dst.shape[new_ndim] = new_shape # <<<<<<<<<<<<<< * dst.suboffsets[new_ndim] = suboffset * */ (__pyx_v_dst->shape[__pyx_v_new_ndim]) = __pyx_v_new_shape; /* "View.MemoryView":886 * dst.strides[new_ndim] = stride * step * dst.shape[new_ndim] = new_shape * dst.suboffsets[new_ndim] = suboffset # <<<<<<<<<<<<<< * * */ (__pyx_v_dst->suboffsets[__pyx_v_new_ndim]) = __pyx_v_suboffset; } __pyx_L3:; /* "View.MemoryView":889 * * * if suboffset_dim[0] < 0: # <<<<<<<<<<<<<< * dst.data += start * stride * else: */ __pyx_t_2 = (((__pyx_v_suboffset_dim[0]) < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":890 * * if suboffset_dim[0] < 0: * dst.data += start * stride # <<<<<<<<<<<<<< * else: * dst.suboffsets[suboffset_dim[0]] += start * stride */ __pyx_v_dst->data = (__pyx_v_dst->data + (__pyx_v_start * __pyx_v_stride)); /* "View.MemoryView":889 * * * if suboffset_dim[0] < 0: # <<<<<<<<<<<<<< * dst.data += start * stride * else: */ goto __pyx_L23; } /* "View.MemoryView":892 * dst.data += start * stride * else: * dst.suboffsets[suboffset_dim[0]] += start * stride # <<<<<<<<<<<<<< * * if suboffset >= 0: */ /*else*/ { __pyx_t_3 = (__pyx_v_suboffset_dim[0]); (__pyx_v_dst->suboffsets[__pyx_t_3]) = ((__pyx_v_dst->suboffsets[__pyx_t_3]) + (__pyx_v_start * __pyx_v_stride)); } __pyx_L23:; /* "View.MemoryView":894 * dst.suboffsets[suboffset_dim[0]] += start * stride * * if suboffset >= 0: # <<<<<<<<<<<<<< * if not is_slice: * if new_ndim == 0: */ __pyx_t_2 = ((__pyx_v_suboffset >= 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":895 * * if suboffset >= 0: * if not is_slice: # <<<<<<<<<<<<<< * if new_ndim == 0: * dst.data = ( dst.data)[0] + suboffset */ __pyx_t_2 = ((!(__pyx_v_is_slice != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":896 * if suboffset >= 0: * if not is_slice: * if new_ndim == 0: # <<<<<<<<<<<<<< * dst.data = ( dst.data)[0] + suboffset * else: */ __pyx_t_2 = ((__pyx_v_new_ndim == 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":897 * if not is_slice: * if new_ndim == 0: * dst.data = ( dst.data)[0] + suboffset # <<<<<<<<<<<<<< * else: * _err_dim(IndexError, "All dimensions preceding dimension %d " */ __pyx_v_dst->data = ((((char **)__pyx_v_dst->data)[0]) + __pyx_v_suboffset); /* "View.MemoryView":896 * if suboffset >= 0: * if not is_slice: * if new_ndim == 0: # <<<<<<<<<<<<<< * dst.data = ( dst.data)[0] + suboffset * else: */ goto __pyx_L26; } /* "View.MemoryView":899 * dst.data = ( dst.data)[0] + suboffset * else: * _err_dim(IndexError, "All dimensions preceding dimension %d " # <<<<<<<<<<<<<< * "must be indexed and not sliced", dim) * else: */ /*else*/ { /* "View.MemoryView":900 * else: * _err_dim(IndexError, "All dimensions preceding dimension %d " * "must be indexed and not sliced", dim) # <<<<<<<<<<<<<< * else: * suboffset_dim[0] = new_ndim */ __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_IndexError, ((char *)"All dimensions preceding dimension %d must be indexed and not sliced"), __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 899, __pyx_L1_error) } __pyx_L26:; /* "View.MemoryView":895 * * if suboffset >= 0: * if not is_slice: # <<<<<<<<<<<<<< * if new_ndim == 0: * dst.data = ( dst.data)[0] + suboffset */ goto __pyx_L25; } /* "View.MemoryView":902 * "must be indexed and not sliced", dim) * else: * suboffset_dim[0] = new_ndim # <<<<<<<<<<<<<< * * return 0 */ /*else*/ { (__pyx_v_suboffset_dim[0]) = __pyx_v_new_ndim; } __pyx_L25:; /* "View.MemoryView":894 * dst.suboffsets[suboffset_dim[0]] += start * stride * * if suboffset >= 0: # <<<<<<<<<<<<<< * if not is_slice: * if new_ndim == 0: */ } /* "View.MemoryView":904 * suboffset_dim[0] = new_ndim * * return 0 # <<<<<<<<<<<<<< * * */ __pyx_r = 0; goto __pyx_L0; /* "View.MemoryView":807 * * @cname('__pyx_memoryview_slice_memviewslice') * cdef int slice_memviewslice( # <<<<<<<<<<<<<< * __Pyx_memviewslice *dst, * Py_ssize_t shape, Py_ssize_t stride, Py_ssize_t suboffset, */ /* function exit code */ __pyx_L1_error:; { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_AddTraceback("View.MemoryView.slice_memviewslice", __pyx_clineno, __pyx_lineno, __pyx_filename); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif } __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "View.MemoryView":910 * * @cname('__pyx_pybuffer_index') * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, # <<<<<<<<<<<<<< * Py_ssize_t dim) except NULL: * cdef Py_ssize_t shape, stride, suboffset = -1 */ static char *__pyx_pybuffer_index(Py_buffer *__pyx_v_view, char *__pyx_v_bufp, Py_ssize_t __pyx_v_index, Py_ssize_t __pyx_v_dim) { Py_ssize_t __pyx_v_shape; Py_ssize_t __pyx_v_stride; Py_ssize_t __pyx_v_suboffset; Py_ssize_t __pyx_v_itemsize; char *__pyx_v_resultp; char *__pyx_r; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; __Pyx_RefNannySetupContext("pybuffer_index", 0); /* "View.MemoryView":912 * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, * Py_ssize_t dim) except NULL: * cdef Py_ssize_t shape, stride, suboffset = -1 # <<<<<<<<<<<<<< * cdef Py_ssize_t itemsize = view.itemsize * cdef char *resultp */ __pyx_v_suboffset = -1L; /* "View.MemoryView":913 * Py_ssize_t dim) except NULL: * cdef Py_ssize_t shape, stride, suboffset = -1 * cdef Py_ssize_t itemsize = view.itemsize # <<<<<<<<<<<<<< * cdef char *resultp * */ __pyx_t_1 = __pyx_v_view->itemsize; __pyx_v_itemsize = __pyx_t_1; /* "View.MemoryView":916 * cdef char *resultp * * if view.ndim == 0: # <<<<<<<<<<<<<< * shape = view.len / itemsize * stride = itemsize */ __pyx_t_2 = ((__pyx_v_view->ndim == 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":917 * * if view.ndim == 0: * shape = view.len / itemsize # <<<<<<<<<<<<<< * stride = itemsize * else: */ if (unlikely(__pyx_v_itemsize == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero"); __PYX_ERR(2, 917, __pyx_L1_error) } else if (sizeof(Py_ssize_t) == sizeof(long) && (!(((Py_ssize_t)-1) > 0)) && unlikely(__pyx_v_itemsize == (Py_ssize_t)-1) && unlikely(UNARY_NEG_WOULD_OVERFLOW(__pyx_v_view->len))) { PyErr_SetString(PyExc_OverflowError, "value too large to perform division"); __PYX_ERR(2, 917, __pyx_L1_error) } __pyx_v_shape = __Pyx_div_Py_ssize_t(__pyx_v_view->len, __pyx_v_itemsize); /* "View.MemoryView":918 * if view.ndim == 0: * shape = view.len / itemsize * stride = itemsize # <<<<<<<<<<<<<< * else: * shape = view.shape[dim] */ __pyx_v_stride = __pyx_v_itemsize; /* "View.MemoryView":916 * cdef char *resultp * * if view.ndim == 0: # <<<<<<<<<<<<<< * shape = view.len / itemsize * stride = itemsize */ goto __pyx_L3; } /* "View.MemoryView":920 * stride = itemsize * else: * shape = view.shape[dim] # <<<<<<<<<<<<<< * stride = view.strides[dim] * if view.suboffsets != NULL: */ /*else*/ { __pyx_v_shape = (__pyx_v_view->shape[__pyx_v_dim]); /* "View.MemoryView":921 * else: * shape = view.shape[dim] * stride = view.strides[dim] # <<<<<<<<<<<<<< * if view.suboffsets != NULL: * suboffset = view.suboffsets[dim] */ __pyx_v_stride = (__pyx_v_view->strides[__pyx_v_dim]); /* "View.MemoryView":922 * shape = view.shape[dim] * stride = view.strides[dim] * if view.suboffsets != NULL: # <<<<<<<<<<<<<< * suboffset = view.suboffsets[dim] * */ __pyx_t_2 = ((__pyx_v_view->suboffsets != NULL) != 0); if (__pyx_t_2) { /* "View.MemoryView":923 * stride = view.strides[dim] * if view.suboffsets != NULL: * suboffset = view.suboffsets[dim] # <<<<<<<<<<<<<< * * if index < 0: */ __pyx_v_suboffset = (__pyx_v_view->suboffsets[__pyx_v_dim]); /* "View.MemoryView":922 * shape = view.shape[dim] * stride = view.strides[dim] * if view.suboffsets != NULL: # <<<<<<<<<<<<<< * suboffset = view.suboffsets[dim] * */ } } __pyx_L3:; /* "View.MemoryView":925 * suboffset = view.suboffsets[dim] * * if index < 0: # <<<<<<<<<<<<<< * index += view.shape[dim] * if index < 0: */ __pyx_t_2 = ((__pyx_v_index < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":926 * * if index < 0: * index += view.shape[dim] # <<<<<<<<<<<<<< * if index < 0: * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) */ __pyx_v_index = (__pyx_v_index + (__pyx_v_view->shape[__pyx_v_dim])); /* "View.MemoryView":927 * if index < 0: * index += view.shape[dim] * if index < 0: # <<<<<<<<<<<<<< * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * */ __pyx_t_2 = ((__pyx_v_index < 0) != 0); if (unlikely(__pyx_t_2)) { /* "View.MemoryView":928 * index += view.shape[dim] * if index < 0: * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) # <<<<<<<<<<<<<< * * if index >= shape: */ __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_dim); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_IndexError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 928, __pyx_L1_error) /* "View.MemoryView":927 * if index < 0: * index += view.shape[dim] * if index < 0: # <<<<<<<<<<<<<< * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * */ } /* "View.MemoryView":925 * suboffset = view.suboffsets[dim] * * if index < 0: # <<<<<<<<<<<<<< * index += view.shape[dim] * if index < 0: */ } /* "View.MemoryView":930 * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * * if index >= shape: # <<<<<<<<<<<<<< * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * */ __pyx_t_2 = ((__pyx_v_index >= __pyx_v_shape) != 0); if (unlikely(__pyx_t_2)) { /* "View.MemoryView":931 * * if index >= shape: * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) # <<<<<<<<<<<<<< * * resultp = bufp + index * stride */ __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_dim); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_IndexError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 931, __pyx_L1_error) /* "View.MemoryView":930 * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * * if index >= shape: # <<<<<<<<<<<<<< * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * */ } /* "View.MemoryView":933 * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * * resultp = bufp + index * stride # <<<<<<<<<<<<<< * if suboffset >= 0: * resultp = ( resultp)[0] + suboffset */ __pyx_v_resultp = (__pyx_v_bufp + (__pyx_v_index * __pyx_v_stride)); /* "View.MemoryView":934 * * resultp = bufp + index * stride * if suboffset >= 0: # <<<<<<<<<<<<<< * resultp = ( resultp)[0] + suboffset * */ __pyx_t_2 = ((__pyx_v_suboffset >= 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":935 * resultp = bufp + index * stride * if suboffset >= 0: * resultp = ( resultp)[0] + suboffset # <<<<<<<<<<<<<< * * return resultp */ __pyx_v_resultp = ((((char **)__pyx_v_resultp)[0]) + __pyx_v_suboffset); /* "View.MemoryView":934 * * resultp = bufp + index * stride * if suboffset >= 0: # <<<<<<<<<<<<<< * resultp = ( resultp)[0] + suboffset * */ } /* "View.MemoryView":937 * resultp = ( resultp)[0] + suboffset * * return resultp # <<<<<<<<<<<<<< * * */ __pyx_r = __pyx_v_resultp; goto __pyx_L0; /* "View.MemoryView":910 * * @cname('__pyx_pybuffer_index') * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, # <<<<<<<<<<<<<< * Py_ssize_t dim) except NULL: * cdef Py_ssize_t shape, stride, suboffset = -1 */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("View.MemoryView.pybuffer_index", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":943 * * @cname('__pyx_memslice_transpose') * cdef int transpose_memslice(__Pyx_memviewslice *memslice) nogil except 0: # <<<<<<<<<<<<<< * cdef int ndim = memslice.memview.view.ndim * */ static int __pyx_memslice_transpose(__Pyx_memviewslice *__pyx_v_memslice) { int __pyx_v_ndim; Py_ssize_t *__pyx_v_shape; Py_ssize_t *__pyx_v_strides; int __pyx_v_i; int __pyx_v_j; int __pyx_r; int __pyx_t_1; Py_ssize_t *__pyx_t_2; long __pyx_t_3; long __pyx_t_4; Py_ssize_t __pyx_t_5; Py_ssize_t __pyx_t_6; int __pyx_t_7; int __pyx_t_8; int __pyx_t_9; /* "View.MemoryView":944 * @cname('__pyx_memslice_transpose') * cdef int transpose_memslice(__Pyx_memviewslice *memslice) nogil except 0: * cdef int ndim = memslice.memview.view.ndim # <<<<<<<<<<<<<< * * cdef Py_ssize_t *shape = memslice.shape */ __pyx_t_1 = __pyx_v_memslice->memview->view.ndim; __pyx_v_ndim = __pyx_t_1; /* "View.MemoryView":946 * cdef int ndim = memslice.memview.view.ndim * * cdef Py_ssize_t *shape = memslice.shape # <<<<<<<<<<<<<< * cdef Py_ssize_t *strides = memslice.strides * */ __pyx_t_2 = __pyx_v_memslice->shape; __pyx_v_shape = __pyx_t_2; /* "View.MemoryView":947 * * cdef Py_ssize_t *shape = memslice.shape * cdef Py_ssize_t *strides = memslice.strides # <<<<<<<<<<<<<< * * */ __pyx_t_2 = __pyx_v_memslice->strides; __pyx_v_strides = __pyx_t_2; /* "View.MemoryView":951 * * cdef int i, j * for i in range(ndim / 2): # <<<<<<<<<<<<<< * j = ndim - 1 - i * strides[i], strides[j] = strides[j], strides[i] */ __pyx_t_3 = __Pyx_div_long(__pyx_v_ndim, 2); __pyx_t_4 = __pyx_t_3; for (__pyx_t_1 = 0; __pyx_t_1 < __pyx_t_4; __pyx_t_1+=1) { __pyx_v_i = __pyx_t_1; /* "View.MemoryView":952 * cdef int i, j * for i in range(ndim / 2): * j = ndim - 1 - i # <<<<<<<<<<<<<< * strides[i], strides[j] = strides[j], strides[i] * shape[i], shape[j] = shape[j], shape[i] */ __pyx_v_j = ((__pyx_v_ndim - 1) - __pyx_v_i); /* "View.MemoryView":953 * for i in range(ndim / 2): * j = ndim - 1 - i * strides[i], strides[j] = strides[j], strides[i] # <<<<<<<<<<<<<< * shape[i], shape[j] = shape[j], shape[i] * */ __pyx_t_5 = (__pyx_v_strides[__pyx_v_j]); __pyx_t_6 = (__pyx_v_strides[__pyx_v_i]); (__pyx_v_strides[__pyx_v_i]) = __pyx_t_5; (__pyx_v_strides[__pyx_v_j]) = __pyx_t_6; /* "View.MemoryView":954 * j = ndim - 1 - i * strides[i], strides[j] = strides[j], strides[i] * shape[i], shape[j] = shape[j], shape[i] # <<<<<<<<<<<<<< * * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: */ __pyx_t_6 = (__pyx_v_shape[__pyx_v_j]); __pyx_t_5 = (__pyx_v_shape[__pyx_v_i]); (__pyx_v_shape[__pyx_v_i]) = __pyx_t_6; (__pyx_v_shape[__pyx_v_j]) = __pyx_t_5; /* "View.MemoryView":956 * shape[i], shape[j] = shape[j], shape[i] * * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: # <<<<<<<<<<<<<< * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") * */ __pyx_t_8 = (((__pyx_v_memslice->suboffsets[__pyx_v_i]) >= 0) != 0); if (!__pyx_t_8) { } else { __pyx_t_7 = __pyx_t_8; goto __pyx_L6_bool_binop_done; } __pyx_t_8 = (((__pyx_v_memslice->suboffsets[__pyx_v_j]) >= 0) != 0); __pyx_t_7 = __pyx_t_8; __pyx_L6_bool_binop_done:; if (__pyx_t_7) { /* "View.MemoryView":957 * * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") # <<<<<<<<<<<<<< * * return 1 */ __pyx_t_9 = __pyx_memoryview_err(__pyx_builtin_ValueError, ((char *)"Cannot transpose memoryview with indirect dimensions")); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 957, __pyx_L1_error) /* "View.MemoryView":956 * shape[i], shape[j] = shape[j], shape[i] * * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: # <<<<<<<<<<<<<< * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") * */ } } /* "View.MemoryView":959 * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") * * return 1 # <<<<<<<<<<<<<< * * */ __pyx_r = 1; goto __pyx_L0; /* "View.MemoryView":943 * * @cname('__pyx_memslice_transpose') * cdef int transpose_memslice(__Pyx_memviewslice *memslice) nogil except 0: # <<<<<<<<<<<<<< * cdef int ndim = memslice.memview.view.ndim * */ /* function exit code */ __pyx_L1_error:; { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_AddTraceback("View.MemoryView.transpose_memslice", __pyx_clineno, __pyx_lineno, __pyx_filename); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif } __pyx_r = 0; __pyx_L0:; return __pyx_r; } /* "View.MemoryView":976 * cdef int (*to_dtype_func)(char *, object) except 0 * * def __dealloc__(self): # <<<<<<<<<<<<<< * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) * */ /* Python wrapper */ static void __pyx_memoryviewslice___dealloc__(PyObject *__pyx_v_self); /*proto*/ static void __pyx_memoryviewslice___dealloc__(PyObject *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(struct __pyx_memoryviewslice_obj *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__", 0); /* "View.MemoryView":977 * * def __dealloc__(self): * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) # <<<<<<<<<<<<<< * * cdef convert_item_to_object(self, char *itemp): */ __PYX_XDEC_MEMVIEW((&__pyx_v_self->from_slice), 1); /* "View.MemoryView":976 * cdef int (*to_dtype_func)(char *, object) except 0 * * def __dealloc__(self): # <<<<<<<<<<<<<< * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) * */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "View.MemoryView":979 * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) * * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< * if self.to_object_func != NULL: * return self.to_object_func(itemp) */ static PyObject *__pyx_memoryviewslice_convert_item_to_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("convert_item_to_object", 0); /* "View.MemoryView":980 * * cdef convert_item_to_object(self, char *itemp): * if self.to_object_func != NULL: # <<<<<<<<<<<<<< * return self.to_object_func(itemp) * else: */ __pyx_t_1 = ((__pyx_v_self->to_object_func != NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":981 * cdef convert_item_to_object(self, char *itemp): * if self.to_object_func != NULL: * return self.to_object_func(itemp) # <<<<<<<<<<<<<< * else: * return memoryview.convert_item_to_object(self, itemp) */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __pyx_v_self->to_object_func(__pyx_v_itemp); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":980 * * cdef convert_item_to_object(self, char *itemp): * if self.to_object_func != NULL: # <<<<<<<<<<<<<< * return self.to_object_func(itemp) * else: */ } /* "View.MemoryView":983 * return self.to_object_func(itemp) * else: * return memoryview.convert_item_to_object(self, itemp) # <<<<<<<<<<<<<< * * cdef assign_item_from_object(self, char *itemp, object value): */ /*else*/ { __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __pyx_memoryview_convert_item_to_object(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_itemp); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; } /* "View.MemoryView":979 * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) * * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< * if self.to_object_func != NULL: * return self.to_object_func(itemp) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView._memoryviewslice.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":985 * return memoryview.convert_item_to_object(self, itemp) * * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< * if self.to_dtype_func != NULL: * self.to_dtype_func(itemp, value) */ static PyObject *__pyx_memoryviewslice_assign_item_from_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("assign_item_from_object", 0); /* "View.MemoryView":986 * * cdef assign_item_from_object(self, char *itemp, object value): * if self.to_dtype_func != NULL: # <<<<<<<<<<<<<< * self.to_dtype_func(itemp, value) * else: */ __pyx_t_1 = ((__pyx_v_self->to_dtype_func != NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":987 * cdef assign_item_from_object(self, char *itemp, object value): * if self.to_dtype_func != NULL: * self.to_dtype_func(itemp, value) # <<<<<<<<<<<<<< * else: * memoryview.assign_item_from_object(self, itemp, value) */ __pyx_t_2 = __pyx_v_self->to_dtype_func(__pyx_v_itemp, __pyx_v_value); if (unlikely(__pyx_t_2 == ((int)0))) __PYX_ERR(2, 987, __pyx_L1_error) /* "View.MemoryView":986 * * cdef assign_item_from_object(self, char *itemp, object value): * if self.to_dtype_func != NULL: # <<<<<<<<<<<<<< * self.to_dtype_func(itemp, value) * else: */ goto __pyx_L3; } /* "View.MemoryView":989 * self.to_dtype_func(itemp, value) * else: * memoryview.assign_item_from_object(self, itemp, value) # <<<<<<<<<<<<<< * * @property */ /*else*/ { __pyx_t_3 = __pyx_memoryview_assign_item_from_object(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_itemp, __pyx_v_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_L3:; /* "View.MemoryView":985 * return memoryview.convert_item_to_object(self, itemp) * * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< * if self.to_dtype_func != NULL: * self.to_dtype_func(itemp, value) */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView._memoryviewslice.assign_item_from_object", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":992 * * @property * def base(self): # <<<<<<<<<<<<<< * return self.from_object * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(struct __pyx_memoryviewslice_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":993 * @property * def base(self): * return self.from_object # <<<<<<<<<<<<<< * * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->from_object); __pyx_r = __pyx_v_self->from_object; goto __pyx_L0; /* "View.MemoryView":992 * * @property * def base(self): # <<<<<<<<<<<<<< * return self.from_object * */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_memoryviewslice_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw___pyx_memoryviewslice_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_memoryviewslice___reduce_cython__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_memoryviewslice___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__29, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(2, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView._memoryviewslice.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_memoryviewslice_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw___pyx_memoryviewslice_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_memoryviewslice_2__setstate_cython__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_memoryviewslice_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__30, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(2, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView._memoryviewslice.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":999 * * @cname('__pyx_memoryview_fromslice') * cdef memoryview_fromslice(__Pyx_memviewslice memviewslice, # <<<<<<<<<<<<<< * int ndim, * object (*to_object_func)(char *), */ static PyObject *__pyx_memoryview_fromslice(__Pyx_memviewslice __pyx_v_memviewslice, int __pyx_v_ndim, PyObject *(*__pyx_v_to_object_func)(char *), int (*__pyx_v_to_dtype_func)(char *, PyObject *), int __pyx_v_dtype_is_object) { struct __pyx_memoryviewslice_obj *__pyx_v_result = 0; Py_ssize_t __pyx_v_suboffset; PyObject *__pyx_v_length = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_TypeInfo *__pyx_t_4; Py_buffer __pyx_t_5; Py_ssize_t *__pyx_t_6; Py_ssize_t *__pyx_t_7; Py_ssize_t *__pyx_t_8; Py_ssize_t __pyx_t_9; __Pyx_RefNannySetupContext("memoryview_fromslice", 0); /* "View.MemoryView":1007 * cdef _memoryviewslice result * * if memviewslice.memview == Py_None: # <<<<<<<<<<<<<< * return None * */ __pyx_t_1 = ((((PyObject *)__pyx_v_memviewslice.memview) == Py_None) != 0); if (__pyx_t_1) { /* "View.MemoryView":1008 * * if memviewslice.memview == Py_None: * return None # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; /* "View.MemoryView":1007 * cdef _memoryviewslice result * * if memviewslice.memview == Py_None: # <<<<<<<<<<<<<< * return None * */ } /* "View.MemoryView":1013 * * * result = _memoryviewslice(None, 0, dtype_is_object) # <<<<<<<<<<<<<< * * result.from_slice = memviewslice */ __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_3, 0, Py_None); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryviewslice_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_result = ((struct __pyx_memoryviewslice_obj *)__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":1015 * result = _memoryviewslice(None, 0, dtype_is_object) * * result.from_slice = memviewslice # <<<<<<<<<<<<<< * __PYX_INC_MEMVIEW(&memviewslice, 1) * */ __pyx_v_result->from_slice = __pyx_v_memviewslice; /* "View.MemoryView":1016 * * result.from_slice = memviewslice * __PYX_INC_MEMVIEW(&memviewslice, 1) # <<<<<<<<<<<<<< * * result.from_object = ( memviewslice.memview).base */ __PYX_INC_MEMVIEW((&__pyx_v_memviewslice), 1); /* "View.MemoryView":1018 * __PYX_INC_MEMVIEW(&memviewslice, 1) * * result.from_object = ( memviewslice.memview).base # <<<<<<<<<<<<<< * result.typeinfo = memviewslice.memview.typeinfo * */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_memviewslice.memview), __pyx_n_s_base); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_result->from_object); __Pyx_DECREF(__pyx_v_result->from_object); __pyx_v_result->from_object = __pyx_t_2; __pyx_t_2 = 0; /* "View.MemoryView":1019 * * result.from_object = ( memviewslice.memview).base * result.typeinfo = memviewslice.memview.typeinfo # <<<<<<<<<<<<<< * * result.view = memviewslice.memview.view */ __pyx_t_4 = __pyx_v_memviewslice.memview->typeinfo; __pyx_v_result->__pyx_base.typeinfo = __pyx_t_4; /* "View.MemoryView":1021 * result.typeinfo = memviewslice.memview.typeinfo * * result.view = memviewslice.memview.view # <<<<<<<<<<<<<< * result.view.buf = memviewslice.data * result.view.ndim = ndim */ __pyx_t_5 = __pyx_v_memviewslice.memview->view; __pyx_v_result->__pyx_base.view = __pyx_t_5; /* "View.MemoryView":1022 * * result.view = memviewslice.memview.view * result.view.buf = memviewslice.data # <<<<<<<<<<<<<< * result.view.ndim = ndim * (<__pyx_buffer *> &result.view).obj = Py_None */ __pyx_v_result->__pyx_base.view.buf = ((void *)__pyx_v_memviewslice.data); /* "View.MemoryView":1023 * result.view = memviewslice.memview.view * result.view.buf = memviewslice.data * result.view.ndim = ndim # <<<<<<<<<<<<<< * (<__pyx_buffer *> &result.view).obj = Py_None * Py_INCREF(Py_None) */ __pyx_v_result->__pyx_base.view.ndim = __pyx_v_ndim; /* "View.MemoryView":1024 * result.view.buf = memviewslice.data * result.view.ndim = ndim * (<__pyx_buffer *> &result.view).obj = Py_None # <<<<<<<<<<<<<< * Py_INCREF(Py_None) * */ ((Py_buffer *)(&__pyx_v_result->__pyx_base.view))->obj = Py_None; /* "View.MemoryView":1025 * result.view.ndim = ndim * (<__pyx_buffer *> &result.view).obj = Py_None * Py_INCREF(Py_None) # <<<<<<<<<<<<<< * * if (memviewslice.memview).flags & PyBUF_WRITABLE: */ Py_INCREF(Py_None); /* "View.MemoryView":1027 * Py_INCREF(Py_None) * * if (memviewslice.memview).flags & PyBUF_WRITABLE: # <<<<<<<<<<<<<< * result.flags = PyBUF_RECORDS * else: */ __pyx_t_1 = ((((struct __pyx_memoryview_obj *)__pyx_v_memviewslice.memview)->flags & PyBUF_WRITABLE) != 0); if (__pyx_t_1) { /* "View.MemoryView":1028 * * if (memviewslice.memview).flags & PyBUF_WRITABLE: * result.flags = PyBUF_RECORDS # <<<<<<<<<<<<<< * else: * result.flags = PyBUF_RECORDS_RO */ __pyx_v_result->__pyx_base.flags = PyBUF_RECORDS; /* "View.MemoryView":1027 * Py_INCREF(Py_None) * * if (memviewslice.memview).flags & PyBUF_WRITABLE: # <<<<<<<<<<<<<< * result.flags = PyBUF_RECORDS * else: */ goto __pyx_L4; } /* "View.MemoryView":1030 * result.flags = PyBUF_RECORDS * else: * result.flags = PyBUF_RECORDS_RO # <<<<<<<<<<<<<< * * result.view.shape = result.from_slice.shape */ /*else*/ { __pyx_v_result->__pyx_base.flags = PyBUF_RECORDS_RO; } __pyx_L4:; /* "View.MemoryView":1032 * result.flags = PyBUF_RECORDS_RO * * result.view.shape = result.from_slice.shape # <<<<<<<<<<<<<< * result.view.strides = result.from_slice.strides * */ __pyx_v_result->__pyx_base.view.shape = ((Py_ssize_t *)__pyx_v_result->from_slice.shape); /* "View.MemoryView":1033 * * result.view.shape = result.from_slice.shape * result.view.strides = result.from_slice.strides # <<<<<<<<<<<<<< * * */ __pyx_v_result->__pyx_base.view.strides = ((Py_ssize_t *)__pyx_v_result->from_slice.strides); /* "View.MemoryView":1036 * * * result.view.suboffsets = NULL # <<<<<<<<<<<<<< * for suboffset in result.from_slice.suboffsets[:ndim]: * if suboffset >= 0: */ __pyx_v_result->__pyx_base.view.suboffsets = NULL; /* "View.MemoryView":1037 * * result.view.suboffsets = NULL * for suboffset in result.from_slice.suboffsets[:ndim]: # <<<<<<<<<<<<<< * if suboffset >= 0: * result.view.suboffsets = result.from_slice.suboffsets */ __pyx_t_7 = (__pyx_v_result->from_slice.suboffsets + __pyx_v_ndim); for (__pyx_t_8 = __pyx_v_result->from_slice.suboffsets; __pyx_t_8 < __pyx_t_7; __pyx_t_8++) { __pyx_t_6 = __pyx_t_8; __pyx_v_suboffset = (__pyx_t_6[0]); /* "View.MemoryView":1038 * result.view.suboffsets = NULL * for suboffset in result.from_slice.suboffsets[:ndim]: * if suboffset >= 0: # <<<<<<<<<<<<<< * result.view.suboffsets = result.from_slice.suboffsets * break */ __pyx_t_1 = ((__pyx_v_suboffset >= 0) != 0); if (__pyx_t_1) { /* "View.MemoryView":1039 * for suboffset in result.from_slice.suboffsets[:ndim]: * if suboffset >= 0: * result.view.suboffsets = result.from_slice.suboffsets # <<<<<<<<<<<<<< * break * */ __pyx_v_result->__pyx_base.view.suboffsets = ((Py_ssize_t *)__pyx_v_result->from_slice.suboffsets); /* "View.MemoryView":1040 * if suboffset >= 0: * result.view.suboffsets = result.from_slice.suboffsets * break # <<<<<<<<<<<<<< * * result.view.len = result.view.itemsize */ goto __pyx_L6_break; /* "View.MemoryView":1038 * result.view.suboffsets = NULL * for suboffset in result.from_slice.suboffsets[:ndim]: * if suboffset >= 0: # <<<<<<<<<<<<<< * result.view.suboffsets = result.from_slice.suboffsets * break */ } } __pyx_L6_break:; /* "View.MemoryView":1042 * break * * result.view.len = result.view.itemsize # <<<<<<<<<<<<<< * for length in result.view.shape[:ndim]: * result.view.len *= length */ __pyx_t_9 = __pyx_v_result->__pyx_base.view.itemsize; __pyx_v_result->__pyx_base.view.len = __pyx_t_9; /* "View.MemoryView":1043 * * result.view.len = result.view.itemsize * for length in result.view.shape[:ndim]: # <<<<<<<<<<<<<< * result.view.len *= length * */ __pyx_t_7 = (__pyx_v_result->__pyx_base.view.shape + __pyx_v_ndim); for (__pyx_t_8 = __pyx_v_result->__pyx_base.view.shape; __pyx_t_8 < __pyx_t_7; __pyx_t_8++) { __pyx_t_6 = __pyx_t_8; __pyx_t_2 = PyInt_FromSsize_t((__pyx_t_6[0])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XDECREF_SET(__pyx_v_length, __pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":1044 * result.view.len = result.view.itemsize * for length in result.view.shape[:ndim]: * result.view.len *= length # <<<<<<<<<<<<<< * * result.to_object_func = to_object_func */ __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_result->__pyx_base.view.len); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_InPlaceMultiply(__pyx_t_2, __pyx_v_length); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 1044, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_result->__pyx_base.view.len = __pyx_t_9; } /* "View.MemoryView":1046 * result.view.len *= length * * result.to_object_func = to_object_func # <<<<<<<<<<<<<< * result.to_dtype_func = to_dtype_func * */ __pyx_v_result->to_object_func = __pyx_v_to_object_func; /* "View.MemoryView":1047 * * result.to_object_func = to_object_func * result.to_dtype_func = to_dtype_func # <<<<<<<<<<<<<< * * return result */ __pyx_v_result->to_dtype_func = __pyx_v_to_dtype_func; /* "View.MemoryView":1049 * result.to_dtype_func = to_dtype_func * * return result # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_get_slice_from_memoryview') */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_result)); __pyx_r = ((PyObject *)__pyx_v_result); goto __pyx_L0; /* "View.MemoryView":999 * * @cname('__pyx_memoryview_fromslice') * cdef memoryview_fromslice(__Pyx_memviewslice memviewslice, # <<<<<<<<<<<<<< * int ndim, * object (*to_object_func)(char *), */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview_fromslice", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_result); __Pyx_XDECREF(__pyx_v_length); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":1052 * * @cname('__pyx_memoryview_get_slice_from_memoryview') * cdef __Pyx_memviewslice *get_slice_from_memview(memoryview memview, # <<<<<<<<<<<<<< * __Pyx_memviewslice *mslice): * cdef _memoryviewslice obj */ static __Pyx_memviewslice *__pyx_memoryview_get_slice_from_memoryview(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_mslice) { struct __pyx_memoryviewslice_obj *__pyx_v_obj = 0; __Pyx_memviewslice *__pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("get_slice_from_memview", 0); /* "View.MemoryView":1055 * __Pyx_memviewslice *mslice): * cdef _memoryviewslice obj * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * obj = memview * return &obj.from_slice */ __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":1056 * cdef _memoryviewslice obj * if isinstance(memview, _memoryviewslice): * obj = memview # <<<<<<<<<<<<<< * return &obj.from_slice * else: */ if (!(likely(((((PyObject *)__pyx_v_memview)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type))))) __PYX_ERR(2, 1056, __pyx_L1_error) __pyx_t_3 = ((PyObject *)__pyx_v_memview); __Pyx_INCREF(__pyx_t_3); __pyx_v_obj = ((struct __pyx_memoryviewslice_obj *)__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":1057 * if isinstance(memview, _memoryviewslice): * obj = memview * return &obj.from_slice # <<<<<<<<<<<<<< * else: * slice_copy(memview, mslice) */ __pyx_r = (&__pyx_v_obj->from_slice); goto __pyx_L0; /* "View.MemoryView":1055 * __Pyx_memviewslice *mslice): * cdef _memoryviewslice obj * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * obj = memview * return &obj.from_slice */ } /* "View.MemoryView":1059 * return &obj.from_slice * else: * slice_copy(memview, mslice) # <<<<<<<<<<<<<< * return mslice * */ /*else*/ { __pyx_memoryview_slice_copy(__pyx_v_memview, __pyx_v_mslice); /* "View.MemoryView":1060 * else: * slice_copy(memview, mslice) * return mslice # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_slice_copy') */ __pyx_r = __pyx_v_mslice; goto __pyx_L0; } /* "View.MemoryView":1052 * * @cname('__pyx_memoryview_get_slice_from_memoryview') * cdef __Pyx_memviewslice *get_slice_from_memview(memoryview memview, # <<<<<<<<<<<<<< * __Pyx_memviewslice *mslice): * cdef _memoryviewslice obj */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_WriteUnraisable("View.MemoryView.get_slice_from_memview", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_obj); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":1063 * * @cname('__pyx_memoryview_slice_copy') * cdef void slice_copy(memoryview memview, __Pyx_memviewslice *dst): # <<<<<<<<<<<<<< * cdef int dim * cdef (Py_ssize_t*) shape, strides, suboffsets */ static void __pyx_memoryview_slice_copy(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_dst) { int __pyx_v_dim; Py_ssize_t *__pyx_v_shape; Py_ssize_t *__pyx_v_strides; Py_ssize_t *__pyx_v_suboffsets; __Pyx_RefNannyDeclarations Py_ssize_t *__pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; Py_ssize_t __pyx_t_5; __Pyx_RefNannySetupContext("slice_copy", 0); /* "View.MemoryView":1067 * cdef (Py_ssize_t*) shape, strides, suboffsets * * shape = memview.view.shape # <<<<<<<<<<<<<< * strides = memview.view.strides * suboffsets = memview.view.suboffsets */ __pyx_t_1 = __pyx_v_memview->view.shape; __pyx_v_shape = __pyx_t_1; /* "View.MemoryView":1068 * * shape = memview.view.shape * strides = memview.view.strides # <<<<<<<<<<<<<< * suboffsets = memview.view.suboffsets * */ __pyx_t_1 = __pyx_v_memview->view.strides; __pyx_v_strides = __pyx_t_1; /* "View.MemoryView":1069 * shape = memview.view.shape * strides = memview.view.strides * suboffsets = memview.view.suboffsets # <<<<<<<<<<<<<< * * dst.memview = <__pyx_memoryview *> memview */ __pyx_t_1 = __pyx_v_memview->view.suboffsets; __pyx_v_suboffsets = __pyx_t_1; /* "View.MemoryView":1071 * suboffsets = memview.view.suboffsets * * dst.memview = <__pyx_memoryview *> memview # <<<<<<<<<<<<<< * dst.data = memview.view.buf * */ __pyx_v_dst->memview = ((struct __pyx_memoryview_obj *)__pyx_v_memview); /* "View.MemoryView":1072 * * dst.memview = <__pyx_memoryview *> memview * dst.data = memview.view.buf # <<<<<<<<<<<<<< * * for dim in range(memview.view.ndim): */ __pyx_v_dst->data = ((char *)__pyx_v_memview->view.buf); /* "View.MemoryView":1074 * dst.data = memview.view.buf * * for dim in range(memview.view.ndim): # <<<<<<<<<<<<<< * dst.shape[dim] = shape[dim] * dst.strides[dim] = strides[dim] */ __pyx_t_2 = __pyx_v_memview->view.ndim; __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_dim = __pyx_t_4; /* "View.MemoryView":1075 * * for dim in range(memview.view.ndim): * dst.shape[dim] = shape[dim] # <<<<<<<<<<<<<< * dst.strides[dim] = strides[dim] * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1 */ (__pyx_v_dst->shape[__pyx_v_dim]) = (__pyx_v_shape[__pyx_v_dim]); /* "View.MemoryView":1076 * for dim in range(memview.view.ndim): * dst.shape[dim] = shape[dim] * dst.strides[dim] = strides[dim] # <<<<<<<<<<<<<< * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1 * */ (__pyx_v_dst->strides[__pyx_v_dim]) = (__pyx_v_strides[__pyx_v_dim]); /* "View.MemoryView":1077 * dst.shape[dim] = shape[dim] * dst.strides[dim] = strides[dim] * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1 # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_copy_object') */ if ((__pyx_v_suboffsets != 0)) { __pyx_t_5 = (__pyx_v_suboffsets[__pyx_v_dim]); } else { __pyx_t_5 = -1L; } (__pyx_v_dst->suboffsets[__pyx_v_dim]) = __pyx_t_5; } /* "View.MemoryView":1063 * * @cname('__pyx_memoryview_slice_copy') * cdef void slice_copy(memoryview memview, __Pyx_memviewslice *dst): # <<<<<<<<<<<<<< * cdef int dim * cdef (Py_ssize_t*) shape, strides, suboffsets */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "View.MemoryView":1080 * * @cname('__pyx_memoryview_copy_object') * cdef memoryview_copy(memoryview memview): # <<<<<<<<<<<<<< * "Create a new memoryview object" * cdef __Pyx_memviewslice memviewslice */ static PyObject *__pyx_memoryview_copy_object(struct __pyx_memoryview_obj *__pyx_v_memview) { __Pyx_memviewslice __pyx_v_memviewslice; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("memoryview_copy", 0); /* "View.MemoryView":1083 * "Create a new memoryview object" * cdef __Pyx_memviewslice memviewslice * slice_copy(memview, &memviewslice) # <<<<<<<<<<<<<< * return memoryview_copy_from_slice(memview, &memviewslice) * */ __pyx_memoryview_slice_copy(__pyx_v_memview, (&__pyx_v_memviewslice)); /* "View.MemoryView":1084 * cdef __Pyx_memviewslice memviewslice * slice_copy(memview, &memviewslice) * return memoryview_copy_from_slice(memview, &memviewslice) # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_copy_object_from_slice') */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_memoryview_copy_object_from_slice(__pyx_v_memview, (&__pyx_v_memviewslice)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":1080 * * @cname('__pyx_memoryview_copy_object') * cdef memoryview_copy(memoryview memview): # <<<<<<<<<<<<<< * "Create a new memoryview object" * cdef __Pyx_memviewslice memviewslice */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview_copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":1087 * * @cname('__pyx_memoryview_copy_object_from_slice') * cdef memoryview_copy_from_slice(memoryview memview, __Pyx_memviewslice *memviewslice): # <<<<<<<<<<<<<< * """ * Create a new memoryview object from a given memoryview object and slice. */ static PyObject *__pyx_memoryview_copy_object_from_slice(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_memviewslice) { PyObject *(*__pyx_v_to_object_func)(char *); int (*__pyx_v_to_dtype_func)(char *, PyObject *); PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *(*__pyx_t_3)(char *); int (*__pyx_t_4)(char *, PyObject *); PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("memoryview_copy_from_slice", 0); /* "View.MemoryView":1094 * cdef int (*to_dtype_func)(char *, object) except 0 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * to_object_func = (<_memoryviewslice> memview).to_object_func * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func */ __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":1095 * * if isinstance(memview, _memoryviewslice): * to_object_func = (<_memoryviewslice> memview).to_object_func # <<<<<<<<<<<<<< * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func * else: */ __pyx_t_3 = ((struct __pyx_memoryviewslice_obj *)__pyx_v_memview)->to_object_func; __pyx_v_to_object_func = __pyx_t_3; /* "View.MemoryView":1096 * if isinstance(memview, _memoryviewslice): * to_object_func = (<_memoryviewslice> memview).to_object_func * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func # <<<<<<<<<<<<<< * else: * to_object_func = NULL */ __pyx_t_4 = ((struct __pyx_memoryviewslice_obj *)__pyx_v_memview)->to_dtype_func; __pyx_v_to_dtype_func = __pyx_t_4; /* "View.MemoryView":1094 * cdef int (*to_dtype_func)(char *, object) except 0 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * to_object_func = (<_memoryviewslice> memview).to_object_func * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func */ goto __pyx_L3; } /* "View.MemoryView":1098 * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func * else: * to_object_func = NULL # <<<<<<<<<<<<<< * to_dtype_func = NULL * */ /*else*/ { __pyx_v_to_object_func = NULL; /* "View.MemoryView":1099 * else: * to_object_func = NULL * to_dtype_func = NULL # <<<<<<<<<<<<<< * * return memoryview_fromslice(memviewslice[0], memview.view.ndim, */ __pyx_v_to_dtype_func = NULL; } __pyx_L3:; /* "View.MemoryView":1101 * to_dtype_func = NULL * * return memoryview_fromslice(memviewslice[0], memview.view.ndim, # <<<<<<<<<<<<<< * to_object_func, to_dtype_func, * memview.dtype_is_object) */ __Pyx_XDECREF(__pyx_r); /* "View.MemoryView":1103 * return memoryview_fromslice(memviewslice[0], memview.view.ndim, * to_object_func, to_dtype_func, * memview.dtype_is_object) # <<<<<<<<<<<<<< * * */ __pyx_t_5 = __pyx_memoryview_fromslice((__pyx_v_memviewslice[0]), __pyx_v_memview->view.ndim, __pyx_v_to_object_func, __pyx_v_to_dtype_func, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0; /* "View.MemoryView":1087 * * @cname('__pyx_memoryview_copy_object_from_slice') * cdef memoryview_copy_from_slice(memoryview memview, __Pyx_memviewslice *memviewslice): # <<<<<<<<<<<<<< * """ * Create a new memoryview object from a given memoryview object and slice. */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.memoryview_copy_from_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":1109 * * * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: # <<<<<<<<<<<<<< * if arg < 0: * return -arg */ static Py_ssize_t abs_py_ssize_t(Py_ssize_t __pyx_v_arg) { Py_ssize_t __pyx_r; int __pyx_t_1; /* "View.MemoryView":1110 * * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: * if arg < 0: # <<<<<<<<<<<<<< * return -arg * else: */ __pyx_t_1 = ((__pyx_v_arg < 0) != 0); if (__pyx_t_1) { /* "View.MemoryView":1111 * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: * if arg < 0: * return -arg # <<<<<<<<<<<<<< * else: * return arg */ __pyx_r = (-__pyx_v_arg); goto __pyx_L0; /* "View.MemoryView":1110 * * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: * if arg < 0: # <<<<<<<<<<<<<< * return -arg * else: */ } /* "View.MemoryView":1113 * return -arg * else: * return arg # <<<<<<<<<<<<<< * * @cname('__pyx_get_best_slice_order') */ /*else*/ { __pyx_r = __pyx_v_arg; goto __pyx_L0; } /* "View.MemoryView":1109 * * * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: # <<<<<<<<<<<<<< * if arg < 0: * return -arg */ /* function exit code */ __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1116 * * @cname('__pyx_get_best_slice_order') * cdef char get_best_order(__Pyx_memviewslice *mslice, int ndim) nogil: # <<<<<<<<<<<<<< * """ * Figure out the best memory access order for a given slice. */ static char __pyx_get_best_slice_order(__Pyx_memviewslice *__pyx_v_mslice, int __pyx_v_ndim) { int __pyx_v_i; Py_ssize_t __pyx_v_c_stride; Py_ssize_t __pyx_v_f_stride; char __pyx_r; int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; /* "View.MemoryView":1121 * """ * cdef int i * cdef Py_ssize_t c_stride = 0 # <<<<<<<<<<<<<< * cdef Py_ssize_t f_stride = 0 * */ __pyx_v_c_stride = 0; /* "View.MemoryView":1122 * cdef int i * cdef Py_ssize_t c_stride = 0 * cdef Py_ssize_t f_stride = 0 # <<<<<<<<<<<<<< * * for i in range(ndim - 1, -1, -1): */ __pyx_v_f_stride = 0; /* "View.MemoryView":1124 * cdef Py_ssize_t f_stride = 0 * * for i in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<< * if mslice.shape[i] > 1: * c_stride = mslice.strides[i] */ for (__pyx_t_1 = (__pyx_v_ndim - 1); __pyx_t_1 > -1; __pyx_t_1-=1) { __pyx_v_i = __pyx_t_1; /* "View.MemoryView":1125 * * for i in range(ndim - 1, -1, -1): * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< * c_stride = mslice.strides[i] * break */ __pyx_t_2 = (((__pyx_v_mslice->shape[__pyx_v_i]) > 1) != 0); if (__pyx_t_2) { /* "View.MemoryView":1126 * for i in range(ndim - 1, -1, -1): * if mslice.shape[i] > 1: * c_stride = mslice.strides[i] # <<<<<<<<<<<<<< * break * */ __pyx_v_c_stride = (__pyx_v_mslice->strides[__pyx_v_i]); /* "View.MemoryView":1127 * if mslice.shape[i] > 1: * c_stride = mslice.strides[i] * break # <<<<<<<<<<<<<< * * for i in range(ndim): */ goto __pyx_L4_break; /* "View.MemoryView":1125 * * for i in range(ndim - 1, -1, -1): * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< * c_stride = mslice.strides[i] * break */ } } __pyx_L4_break:; /* "View.MemoryView":1129 * break * * for i in range(ndim): # <<<<<<<<<<<<<< * if mslice.shape[i] > 1: * f_stride = mslice.strides[i] */ __pyx_t_1 = __pyx_v_ndim; __pyx_t_3 = __pyx_t_1; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_i = __pyx_t_4; /* "View.MemoryView":1130 * * for i in range(ndim): * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< * f_stride = mslice.strides[i] * break */ __pyx_t_2 = (((__pyx_v_mslice->shape[__pyx_v_i]) > 1) != 0); if (__pyx_t_2) { /* "View.MemoryView":1131 * for i in range(ndim): * if mslice.shape[i] > 1: * f_stride = mslice.strides[i] # <<<<<<<<<<<<<< * break * */ __pyx_v_f_stride = (__pyx_v_mslice->strides[__pyx_v_i]); /* "View.MemoryView":1132 * if mslice.shape[i] > 1: * f_stride = mslice.strides[i] * break # <<<<<<<<<<<<<< * * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): */ goto __pyx_L7_break; /* "View.MemoryView":1130 * * for i in range(ndim): * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< * f_stride = mslice.strides[i] * break */ } } __pyx_L7_break:; /* "View.MemoryView":1134 * break * * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): # <<<<<<<<<<<<<< * return 'C' * else: */ __pyx_t_2 = ((abs_py_ssize_t(__pyx_v_c_stride) <= abs_py_ssize_t(__pyx_v_f_stride)) != 0); if (__pyx_t_2) { /* "View.MemoryView":1135 * * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): * return 'C' # <<<<<<<<<<<<<< * else: * return 'F' */ __pyx_r = 'C'; goto __pyx_L0; /* "View.MemoryView":1134 * break * * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): # <<<<<<<<<<<<<< * return 'C' * else: */ } /* "View.MemoryView":1137 * return 'C' * else: * return 'F' # <<<<<<<<<<<<<< * * @cython.cdivision(True) */ /*else*/ { __pyx_r = 'F'; goto __pyx_L0; } /* "View.MemoryView":1116 * * @cname('__pyx_get_best_slice_order') * cdef char get_best_order(__Pyx_memviewslice *mslice, int ndim) nogil: # <<<<<<<<<<<<<< * """ * Figure out the best memory access order for a given slice. */ /* function exit code */ __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1140 * * @cython.cdivision(True) * cdef void _copy_strided_to_strided(char *src_data, Py_ssize_t *src_strides, # <<<<<<<<<<<<<< * char *dst_data, Py_ssize_t *dst_strides, * Py_ssize_t *src_shape, Py_ssize_t *dst_shape, */ static void _copy_strided_to_strided(char *__pyx_v_src_data, Py_ssize_t *__pyx_v_src_strides, char *__pyx_v_dst_data, Py_ssize_t *__pyx_v_dst_strides, Py_ssize_t *__pyx_v_src_shape, Py_ssize_t *__pyx_v_dst_shape, int __pyx_v_ndim, size_t __pyx_v_itemsize) { CYTHON_UNUSED Py_ssize_t __pyx_v_i; CYTHON_UNUSED Py_ssize_t __pyx_v_src_extent; Py_ssize_t __pyx_v_dst_extent; Py_ssize_t __pyx_v_src_stride; Py_ssize_t __pyx_v_dst_stride; int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; Py_ssize_t __pyx_t_4; Py_ssize_t __pyx_t_5; Py_ssize_t __pyx_t_6; /* "View.MemoryView":1147 * * cdef Py_ssize_t i * cdef Py_ssize_t src_extent = src_shape[0] # <<<<<<<<<<<<<< * cdef Py_ssize_t dst_extent = dst_shape[0] * cdef Py_ssize_t src_stride = src_strides[0] */ __pyx_v_src_extent = (__pyx_v_src_shape[0]); /* "View.MemoryView":1148 * cdef Py_ssize_t i * cdef Py_ssize_t src_extent = src_shape[0] * cdef Py_ssize_t dst_extent = dst_shape[0] # <<<<<<<<<<<<<< * cdef Py_ssize_t src_stride = src_strides[0] * cdef Py_ssize_t dst_stride = dst_strides[0] */ __pyx_v_dst_extent = (__pyx_v_dst_shape[0]); /* "View.MemoryView":1149 * cdef Py_ssize_t src_extent = src_shape[0] * cdef Py_ssize_t dst_extent = dst_shape[0] * cdef Py_ssize_t src_stride = src_strides[0] # <<<<<<<<<<<<<< * cdef Py_ssize_t dst_stride = dst_strides[0] * */ __pyx_v_src_stride = (__pyx_v_src_strides[0]); /* "View.MemoryView":1150 * cdef Py_ssize_t dst_extent = dst_shape[0] * cdef Py_ssize_t src_stride = src_strides[0] * cdef Py_ssize_t dst_stride = dst_strides[0] # <<<<<<<<<<<<<< * * if ndim == 1: */ __pyx_v_dst_stride = (__pyx_v_dst_strides[0]); /* "View.MemoryView":1152 * cdef Py_ssize_t dst_stride = dst_strides[0] * * if ndim == 1: # <<<<<<<<<<<<<< * if (src_stride > 0 and dst_stride > 0 and * src_stride == itemsize == dst_stride): */ __pyx_t_1 = ((__pyx_v_ndim == 1) != 0); if (__pyx_t_1) { /* "View.MemoryView":1153 * * if ndim == 1: * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<< * src_stride == itemsize == dst_stride): * memcpy(dst_data, src_data, itemsize * dst_extent) */ __pyx_t_2 = ((__pyx_v_src_stride > 0) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L5_bool_binop_done; } __pyx_t_2 = ((__pyx_v_dst_stride > 0) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L5_bool_binop_done; } /* "View.MemoryView":1154 * if ndim == 1: * if (src_stride > 0 and dst_stride > 0 and * src_stride == itemsize == dst_stride): # <<<<<<<<<<<<<< * memcpy(dst_data, src_data, itemsize * dst_extent) * else: */ __pyx_t_2 = (((size_t)__pyx_v_src_stride) == __pyx_v_itemsize); if (__pyx_t_2) { __pyx_t_2 = (__pyx_v_itemsize == ((size_t)__pyx_v_dst_stride)); } __pyx_t_3 = (__pyx_t_2 != 0); __pyx_t_1 = __pyx_t_3; __pyx_L5_bool_binop_done:; /* "View.MemoryView":1153 * * if ndim == 1: * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<< * src_stride == itemsize == dst_stride): * memcpy(dst_data, src_data, itemsize * dst_extent) */ if (__pyx_t_1) { /* "View.MemoryView":1155 * if (src_stride > 0 and dst_stride > 0 and * src_stride == itemsize == dst_stride): * memcpy(dst_data, src_data, itemsize * dst_extent) # <<<<<<<<<<<<<< * else: * for i in range(dst_extent): */ (void)(memcpy(__pyx_v_dst_data, __pyx_v_src_data, (__pyx_v_itemsize * __pyx_v_dst_extent))); /* "View.MemoryView":1153 * * if ndim == 1: * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<< * src_stride == itemsize == dst_stride): * memcpy(dst_data, src_data, itemsize * dst_extent) */ goto __pyx_L4; } /* "View.MemoryView":1157 * memcpy(dst_data, src_data, itemsize * dst_extent) * else: * for i in range(dst_extent): # <<<<<<<<<<<<<< * memcpy(dst_data, src_data, itemsize) * src_data += src_stride */ /*else*/ { __pyx_t_4 = __pyx_v_dst_extent; __pyx_t_5 = __pyx_t_4; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6; /* "View.MemoryView":1158 * else: * for i in range(dst_extent): * memcpy(dst_data, src_data, itemsize) # <<<<<<<<<<<<<< * src_data += src_stride * dst_data += dst_stride */ (void)(memcpy(__pyx_v_dst_data, __pyx_v_src_data, __pyx_v_itemsize)); /* "View.MemoryView":1159 * for i in range(dst_extent): * memcpy(dst_data, src_data, itemsize) * src_data += src_stride # <<<<<<<<<<<<<< * dst_data += dst_stride * else: */ __pyx_v_src_data = (__pyx_v_src_data + __pyx_v_src_stride); /* "View.MemoryView":1160 * memcpy(dst_data, src_data, itemsize) * src_data += src_stride * dst_data += dst_stride # <<<<<<<<<<<<<< * else: * for i in range(dst_extent): */ __pyx_v_dst_data = (__pyx_v_dst_data + __pyx_v_dst_stride); } } __pyx_L4:; /* "View.MemoryView":1152 * cdef Py_ssize_t dst_stride = dst_strides[0] * * if ndim == 1: # <<<<<<<<<<<<<< * if (src_stride > 0 and dst_stride > 0 and * src_stride == itemsize == dst_stride): */ goto __pyx_L3; } /* "View.MemoryView":1162 * dst_data += dst_stride * else: * for i in range(dst_extent): # <<<<<<<<<<<<<< * _copy_strided_to_strided(src_data, src_strides + 1, * dst_data, dst_strides + 1, */ /*else*/ { __pyx_t_4 = __pyx_v_dst_extent; __pyx_t_5 = __pyx_t_4; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6; /* "View.MemoryView":1163 * else: * for i in range(dst_extent): * _copy_strided_to_strided(src_data, src_strides + 1, # <<<<<<<<<<<<<< * dst_data, dst_strides + 1, * src_shape + 1, dst_shape + 1, */ _copy_strided_to_strided(__pyx_v_src_data, (__pyx_v_src_strides + 1), __pyx_v_dst_data, (__pyx_v_dst_strides + 1), (__pyx_v_src_shape + 1), (__pyx_v_dst_shape + 1), (__pyx_v_ndim - 1), __pyx_v_itemsize); /* "View.MemoryView":1167 * src_shape + 1, dst_shape + 1, * ndim - 1, itemsize) * src_data += src_stride # <<<<<<<<<<<<<< * dst_data += dst_stride * */ __pyx_v_src_data = (__pyx_v_src_data + __pyx_v_src_stride); /* "View.MemoryView":1168 * ndim - 1, itemsize) * src_data += src_stride * dst_data += dst_stride # <<<<<<<<<<<<<< * * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, */ __pyx_v_dst_data = (__pyx_v_dst_data + __pyx_v_dst_stride); } } __pyx_L3:; /* "View.MemoryView":1140 * * @cython.cdivision(True) * cdef void _copy_strided_to_strided(char *src_data, Py_ssize_t *src_strides, # <<<<<<<<<<<<<< * char *dst_data, Py_ssize_t *dst_strides, * Py_ssize_t *src_shape, Py_ssize_t *dst_shape, */ /* function exit code */ } /* "View.MemoryView":1170 * dst_data += dst_stride * * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< * __Pyx_memviewslice *dst, * int ndim, size_t itemsize) nogil: */ static void copy_strided_to_strided(__Pyx_memviewslice *__pyx_v_src, __Pyx_memviewslice *__pyx_v_dst, int __pyx_v_ndim, size_t __pyx_v_itemsize) { /* "View.MemoryView":1173 * __Pyx_memviewslice *dst, * int ndim, size_t itemsize) nogil: * _copy_strided_to_strided(src.data, src.strides, dst.data, dst.strides, # <<<<<<<<<<<<<< * src.shape, dst.shape, ndim, itemsize) * */ _copy_strided_to_strided(__pyx_v_src->data, __pyx_v_src->strides, __pyx_v_dst->data, __pyx_v_dst->strides, __pyx_v_src->shape, __pyx_v_dst->shape, __pyx_v_ndim, __pyx_v_itemsize); /* "View.MemoryView":1170 * dst_data += dst_stride * * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< * __Pyx_memviewslice *dst, * int ndim, size_t itemsize) nogil: */ /* function exit code */ } /* "View.MemoryView":1177 * * @cname('__pyx_memoryview_slice_get_size') * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) nogil: # <<<<<<<<<<<<<< * "Return the size of the memory occupied by the slice in number of bytes" * cdef int i */ static Py_ssize_t __pyx_memoryview_slice_get_size(__Pyx_memviewslice *__pyx_v_src, int __pyx_v_ndim) { int __pyx_v_i; Py_ssize_t __pyx_v_size; Py_ssize_t __pyx_r; Py_ssize_t __pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; /* "View.MemoryView":1180 * "Return the size of the memory occupied by the slice in number of bytes" * cdef int i * cdef Py_ssize_t size = src.memview.view.itemsize # <<<<<<<<<<<<<< * * for i in range(ndim): */ __pyx_t_1 = __pyx_v_src->memview->view.itemsize; __pyx_v_size = __pyx_t_1; /* "View.MemoryView":1182 * cdef Py_ssize_t size = src.memview.view.itemsize * * for i in range(ndim): # <<<<<<<<<<<<<< * size *= src.shape[i] * */ __pyx_t_2 = __pyx_v_ndim; __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_i = __pyx_t_4; /* "View.MemoryView":1183 * * for i in range(ndim): * size *= src.shape[i] # <<<<<<<<<<<<<< * * return size */ __pyx_v_size = (__pyx_v_size * (__pyx_v_src->shape[__pyx_v_i])); } /* "View.MemoryView":1185 * size *= src.shape[i] * * return size # <<<<<<<<<<<<<< * * @cname('__pyx_fill_contig_strides_array') */ __pyx_r = __pyx_v_size; goto __pyx_L0; /* "View.MemoryView":1177 * * @cname('__pyx_memoryview_slice_get_size') * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) nogil: # <<<<<<<<<<<<<< * "Return the size of the memory occupied by the slice in number of bytes" * cdef int i */ /* function exit code */ __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1188 * * @cname('__pyx_fill_contig_strides_array') * cdef Py_ssize_t fill_contig_strides_array( # <<<<<<<<<<<<<< * Py_ssize_t *shape, Py_ssize_t *strides, Py_ssize_t stride, * int ndim, char order) nogil: */ static Py_ssize_t __pyx_fill_contig_strides_array(Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, Py_ssize_t __pyx_v_stride, int __pyx_v_ndim, char __pyx_v_order) { int __pyx_v_idx; Py_ssize_t __pyx_r; int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; /* "View.MemoryView":1197 * cdef int idx * * if order == 'F': # <<<<<<<<<<<<<< * for idx in range(ndim): * strides[idx] = stride */ __pyx_t_1 = ((__pyx_v_order == 'F') != 0); if (__pyx_t_1) { /* "View.MemoryView":1198 * * if order == 'F': * for idx in range(ndim): # <<<<<<<<<<<<<< * strides[idx] = stride * stride = stride * shape[idx] */ __pyx_t_2 = __pyx_v_ndim; __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_idx = __pyx_t_4; /* "View.MemoryView":1199 * if order == 'F': * for idx in range(ndim): * strides[idx] = stride # <<<<<<<<<<<<<< * stride = stride * shape[idx] * else: */ (__pyx_v_strides[__pyx_v_idx]) = __pyx_v_stride; /* "View.MemoryView":1200 * for idx in range(ndim): * strides[idx] = stride * stride = stride * shape[idx] # <<<<<<<<<<<<<< * else: * for idx in range(ndim - 1, -1, -1): */ __pyx_v_stride = (__pyx_v_stride * (__pyx_v_shape[__pyx_v_idx])); } /* "View.MemoryView":1197 * cdef int idx * * if order == 'F': # <<<<<<<<<<<<<< * for idx in range(ndim): * strides[idx] = stride */ goto __pyx_L3; } /* "View.MemoryView":1202 * stride = stride * shape[idx] * else: * for idx in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<< * strides[idx] = stride * stride = stride * shape[idx] */ /*else*/ { for (__pyx_t_2 = (__pyx_v_ndim - 1); __pyx_t_2 > -1; __pyx_t_2-=1) { __pyx_v_idx = __pyx_t_2; /* "View.MemoryView":1203 * else: * for idx in range(ndim - 1, -1, -1): * strides[idx] = stride # <<<<<<<<<<<<<< * stride = stride * shape[idx] * */ (__pyx_v_strides[__pyx_v_idx]) = __pyx_v_stride; /* "View.MemoryView":1204 * for idx in range(ndim - 1, -1, -1): * strides[idx] = stride * stride = stride * shape[idx] # <<<<<<<<<<<<<< * * return stride */ __pyx_v_stride = (__pyx_v_stride * (__pyx_v_shape[__pyx_v_idx])); } } __pyx_L3:; /* "View.MemoryView":1206 * stride = stride * shape[idx] * * return stride # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_copy_data_to_temp') */ __pyx_r = __pyx_v_stride; goto __pyx_L0; /* "View.MemoryView":1188 * * @cname('__pyx_fill_contig_strides_array') * cdef Py_ssize_t fill_contig_strides_array( # <<<<<<<<<<<<<< * Py_ssize_t *shape, Py_ssize_t *strides, Py_ssize_t stride, * int ndim, char order) nogil: */ /* function exit code */ __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1209 * * @cname('__pyx_memoryview_copy_data_to_temp') * cdef void *copy_data_to_temp(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< * __Pyx_memviewslice *tmpslice, * char order, */ static void *__pyx_memoryview_copy_data_to_temp(__Pyx_memviewslice *__pyx_v_src, __Pyx_memviewslice *__pyx_v_tmpslice, char __pyx_v_order, int __pyx_v_ndim) { int __pyx_v_i; void *__pyx_v_result; size_t __pyx_v_itemsize; size_t __pyx_v_size; void *__pyx_r; Py_ssize_t __pyx_t_1; int __pyx_t_2; int __pyx_t_3; struct __pyx_memoryview_obj *__pyx_t_4; int __pyx_t_5; int __pyx_t_6; /* "View.MemoryView":1220 * cdef void *result * * cdef size_t itemsize = src.memview.view.itemsize # <<<<<<<<<<<<<< * cdef size_t size = slice_get_size(src, ndim) * */ __pyx_t_1 = __pyx_v_src->memview->view.itemsize; __pyx_v_itemsize = __pyx_t_1; /* "View.MemoryView":1221 * * cdef size_t itemsize = src.memview.view.itemsize * cdef size_t size = slice_get_size(src, ndim) # <<<<<<<<<<<<<< * * result = malloc(size) */ __pyx_v_size = __pyx_memoryview_slice_get_size(__pyx_v_src, __pyx_v_ndim); /* "View.MemoryView":1223 * cdef size_t size = slice_get_size(src, ndim) * * result = malloc(size) # <<<<<<<<<<<<<< * if not result: * _err(MemoryError, NULL) */ __pyx_v_result = malloc(__pyx_v_size); /* "View.MemoryView":1224 * * result = malloc(size) * if not result: # <<<<<<<<<<<<<< * _err(MemoryError, NULL) * */ __pyx_t_2 = ((!(__pyx_v_result != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":1225 * result = malloc(size) * if not result: * _err(MemoryError, NULL) # <<<<<<<<<<<<<< * * */ __pyx_t_3 = __pyx_memoryview_err(__pyx_builtin_MemoryError, NULL); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 1225, __pyx_L1_error) /* "View.MemoryView":1224 * * result = malloc(size) * if not result: # <<<<<<<<<<<<<< * _err(MemoryError, NULL) * */ } /* "View.MemoryView":1228 * * * tmpslice.data = result # <<<<<<<<<<<<<< * tmpslice.memview = src.memview * for i in range(ndim): */ __pyx_v_tmpslice->data = ((char *)__pyx_v_result); /* "View.MemoryView":1229 * * tmpslice.data = result * tmpslice.memview = src.memview # <<<<<<<<<<<<<< * for i in range(ndim): * tmpslice.shape[i] = src.shape[i] */ __pyx_t_4 = __pyx_v_src->memview; __pyx_v_tmpslice->memview = __pyx_t_4; /* "View.MemoryView":1230 * tmpslice.data = result * tmpslice.memview = src.memview * for i in range(ndim): # <<<<<<<<<<<<<< * tmpslice.shape[i] = src.shape[i] * tmpslice.suboffsets[i] = -1 */ __pyx_t_3 = __pyx_v_ndim; __pyx_t_5 = __pyx_t_3; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6; /* "View.MemoryView":1231 * tmpslice.memview = src.memview * for i in range(ndim): * tmpslice.shape[i] = src.shape[i] # <<<<<<<<<<<<<< * tmpslice.suboffsets[i] = -1 * */ (__pyx_v_tmpslice->shape[__pyx_v_i]) = (__pyx_v_src->shape[__pyx_v_i]); /* "View.MemoryView":1232 * for i in range(ndim): * tmpslice.shape[i] = src.shape[i] * tmpslice.suboffsets[i] = -1 # <<<<<<<<<<<<<< * * fill_contig_strides_array(&tmpslice.shape[0], &tmpslice.strides[0], itemsize, */ (__pyx_v_tmpslice->suboffsets[__pyx_v_i]) = -1L; } /* "View.MemoryView":1234 * tmpslice.suboffsets[i] = -1 * * fill_contig_strides_array(&tmpslice.shape[0], &tmpslice.strides[0], itemsize, # <<<<<<<<<<<<<< * ndim, order) * */ (void)(__pyx_fill_contig_strides_array((&(__pyx_v_tmpslice->shape[0])), (&(__pyx_v_tmpslice->strides[0])), __pyx_v_itemsize, __pyx_v_ndim, __pyx_v_order)); /* "View.MemoryView":1238 * * * for i in range(ndim): # <<<<<<<<<<<<<< * if tmpslice.shape[i] == 1: * tmpslice.strides[i] = 0 */ __pyx_t_3 = __pyx_v_ndim; __pyx_t_5 = __pyx_t_3; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6; /* "View.MemoryView":1239 * * for i in range(ndim): * if tmpslice.shape[i] == 1: # <<<<<<<<<<<<<< * tmpslice.strides[i] = 0 * */ __pyx_t_2 = (((__pyx_v_tmpslice->shape[__pyx_v_i]) == 1) != 0); if (__pyx_t_2) { /* "View.MemoryView":1240 * for i in range(ndim): * if tmpslice.shape[i] == 1: * tmpslice.strides[i] = 0 # <<<<<<<<<<<<<< * * if slice_is_contig(src[0], order, ndim): */ (__pyx_v_tmpslice->strides[__pyx_v_i]) = 0; /* "View.MemoryView":1239 * * for i in range(ndim): * if tmpslice.shape[i] == 1: # <<<<<<<<<<<<<< * tmpslice.strides[i] = 0 * */ } } /* "View.MemoryView":1242 * tmpslice.strides[i] = 0 * * if slice_is_contig(src[0], order, ndim): # <<<<<<<<<<<<<< * memcpy(result, src.data, size) * else: */ __pyx_t_2 = (__pyx_memviewslice_is_contig((__pyx_v_src[0]), __pyx_v_order, __pyx_v_ndim) != 0); if (__pyx_t_2) { /* "View.MemoryView":1243 * * if slice_is_contig(src[0], order, ndim): * memcpy(result, src.data, size) # <<<<<<<<<<<<<< * else: * copy_strided_to_strided(src, tmpslice, ndim, itemsize) */ (void)(memcpy(__pyx_v_result, __pyx_v_src->data, __pyx_v_size)); /* "View.MemoryView":1242 * tmpslice.strides[i] = 0 * * if slice_is_contig(src[0], order, ndim): # <<<<<<<<<<<<<< * memcpy(result, src.data, size) * else: */ goto __pyx_L9; } /* "View.MemoryView":1245 * memcpy(result, src.data, size) * else: * copy_strided_to_strided(src, tmpslice, ndim, itemsize) # <<<<<<<<<<<<<< * * return result */ /*else*/ { copy_strided_to_strided(__pyx_v_src, __pyx_v_tmpslice, __pyx_v_ndim, __pyx_v_itemsize); } __pyx_L9:; /* "View.MemoryView":1247 * copy_strided_to_strided(src, tmpslice, ndim, itemsize) * * return result # <<<<<<<<<<<<<< * * */ __pyx_r = __pyx_v_result; goto __pyx_L0; /* "View.MemoryView":1209 * * @cname('__pyx_memoryview_copy_data_to_temp') * cdef void *copy_data_to_temp(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< * __Pyx_memviewslice *tmpslice, * char order, */ /* function exit code */ __pyx_L1_error:; { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_AddTraceback("View.MemoryView.copy_data_to_temp", __pyx_clineno, __pyx_lineno, __pyx_filename); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif } __pyx_r = NULL; __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1252 * * @cname('__pyx_memoryview_err_extents') * cdef int _err_extents(int i, Py_ssize_t extent1, # <<<<<<<<<<<<<< * Py_ssize_t extent2) except -1 with gil: * raise ValueError("got differing extents in dimension %d (got %d and %d)" % */ static int __pyx_memoryview_err_extents(int __pyx_v_i, Py_ssize_t __pyx_v_extent1, Py_ssize_t __pyx_v_extent2) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_RefNannySetupContext("_err_extents", 0); /* "View.MemoryView":1255 * Py_ssize_t extent2) except -1 with gil: * raise ValueError("got differing extents in dimension %d (got %d and %d)" % * (i, extent1, extent2)) # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_err_dim') */ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_extent1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_extent2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 1255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; /* "View.MemoryView":1254 * cdef int _err_extents(int i, Py_ssize_t extent1, * Py_ssize_t extent2) except -1 with gil: * raise ValueError("got differing extents in dimension %d (got %d and %d)" % # <<<<<<<<<<<<<< * (i, extent1, extent2)) * */ __pyx_t_3 = __Pyx_PyString_Format(__pyx_kp_s_got_differing_extents_in_dimensi, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 1254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(2, 1254, __pyx_L1_error) /* "View.MemoryView":1252 * * @cname('__pyx_memoryview_err_extents') * cdef int _err_extents(int i, Py_ssize_t extent1, # <<<<<<<<<<<<<< * Py_ssize_t extent2) except -1 with gil: * raise ValueError("got differing extents in dimension %d (got %d and %d)" % */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("View.MemoryView._err_extents", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __Pyx_RefNannyFinishContext(); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif return __pyx_r; } /* "View.MemoryView":1258 * * @cname('__pyx_memoryview_err_dim') * cdef int _err_dim(object error, char *msg, int dim) except -1 with gil: # <<<<<<<<<<<<<< * raise error(msg.decode('ascii') % dim) * */ static int __pyx_memoryview_err_dim(PyObject *__pyx_v_error, char *__pyx_v_msg, int __pyx_v_dim) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_RefNannySetupContext("_err_dim", 0); __Pyx_INCREF(__pyx_v_error); /* "View.MemoryView":1259 * @cname('__pyx_memoryview_err_dim') * cdef int _err_dim(object error, char *msg, int dim) except -1 with gil: * raise error(msg.decode('ascii') % dim) # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_err') */ __pyx_t_2 = __Pyx_decode_c_string(__pyx_v_msg, 0, strlen(__pyx_v_msg), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_dim); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyUnicode_Format(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 1259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_INCREF(__pyx_v_error); __pyx_t_3 = __pyx_v_error; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(2, 1259, __pyx_L1_error) /* "View.MemoryView":1258 * * @cname('__pyx_memoryview_err_dim') * cdef int _err_dim(object error, char *msg, int dim) except -1 with gil: # <<<<<<<<<<<<<< * raise error(msg.decode('ascii') % dim) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("View.MemoryView._err_dim", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __Pyx_XDECREF(__pyx_v_error); __Pyx_RefNannyFinishContext(); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif return __pyx_r; } /* "View.MemoryView":1262 * * @cname('__pyx_memoryview_err') * cdef int _err(object error, char *msg) except -1 with gil: # <<<<<<<<<<<<<< * if msg != NULL: * raise error(msg.decode('ascii')) */ static int __pyx_memoryview_err(PyObject *__pyx_v_error, char *__pyx_v_msg) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_RefNannySetupContext("_err", 0); __Pyx_INCREF(__pyx_v_error); /* "View.MemoryView":1263 * @cname('__pyx_memoryview_err') * cdef int _err(object error, char *msg) except -1 with gil: * if msg != NULL: # <<<<<<<<<<<<<< * raise error(msg.decode('ascii')) * else: */ __pyx_t_1 = ((__pyx_v_msg != NULL) != 0); if (unlikely(__pyx_t_1)) { /* "View.MemoryView":1264 * cdef int _err(object error, char *msg) except -1 with gil: * if msg != NULL: * raise error(msg.decode('ascii')) # <<<<<<<<<<<<<< * else: * raise error */ __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_msg, 0, strlen(__pyx_v_msg), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_error); __pyx_t_4 = __pyx_v_error; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(2, 1264, __pyx_L1_error) /* "View.MemoryView":1263 * @cname('__pyx_memoryview_err') * cdef int _err(object error, char *msg) except -1 with gil: * if msg != NULL: # <<<<<<<<<<<<<< * raise error(msg.decode('ascii')) * else: */ } /* "View.MemoryView":1266 * raise error(msg.decode('ascii')) * else: * raise error # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_copy_contents') */ /*else*/ { __Pyx_Raise(__pyx_v_error, 0, 0, 0); __PYX_ERR(2, 1266, __pyx_L1_error) } /* "View.MemoryView":1262 * * @cname('__pyx_memoryview_err') * cdef int _err(object error, char *msg) except -1 with gil: # <<<<<<<<<<<<<< * if msg != NULL: * raise error(msg.decode('ascii')) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView._err", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __Pyx_XDECREF(__pyx_v_error); __Pyx_RefNannyFinishContext(); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif return __pyx_r; } /* "View.MemoryView":1269 * * @cname('__pyx_memoryview_copy_contents') * cdef int memoryview_copy_contents(__Pyx_memviewslice src, # <<<<<<<<<<<<<< * __Pyx_memviewslice dst, * int src_ndim, int dst_ndim, */ static int __pyx_memoryview_copy_contents(__Pyx_memviewslice __pyx_v_src, __Pyx_memviewslice __pyx_v_dst, int __pyx_v_src_ndim, int __pyx_v_dst_ndim, int __pyx_v_dtype_is_object) { void *__pyx_v_tmpdata; size_t __pyx_v_itemsize; int __pyx_v_i; char __pyx_v_order; int __pyx_v_broadcasting; int __pyx_v_direct_copy; __Pyx_memviewslice __pyx_v_tmp; int __pyx_v_ndim; int __pyx_r; Py_ssize_t __pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; int __pyx_t_5; int __pyx_t_6; void *__pyx_t_7; int __pyx_t_8; /* "View.MemoryView":1277 * Check for overlapping memory and verify the shapes. * """ * cdef void *tmpdata = NULL # <<<<<<<<<<<<<< * cdef size_t itemsize = src.memview.view.itemsize * cdef int i */ __pyx_v_tmpdata = NULL; /* "View.MemoryView":1278 * """ * cdef void *tmpdata = NULL * cdef size_t itemsize = src.memview.view.itemsize # <<<<<<<<<<<<<< * cdef int i * cdef char order = get_best_order(&src, src_ndim) */ __pyx_t_1 = __pyx_v_src.memview->view.itemsize; __pyx_v_itemsize = __pyx_t_1; /* "View.MemoryView":1280 * cdef size_t itemsize = src.memview.view.itemsize * cdef int i * cdef char order = get_best_order(&src, src_ndim) # <<<<<<<<<<<<<< * cdef bint broadcasting = False * cdef bint direct_copy = False */ __pyx_v_order = __pyx_get_best_slice_order((&__pyx_v_src), __pyx_v_src_ndim); /* "View.MemoryView":1281 * cdef int i * cdef char order = get_best_order(&src, src_ndim) * cdef bint broadcasting = False # <<<<<<<<<<<<<< * cdef bint direct_copy = False * cdef __Pyx_memviewslice tmp */ __pyx_v_broadcasting = 0; /* "View.MemoryView":1282 * cdef char order = get_best_order(&src, src_ndim) * cdef bint broadcasting = False * cdef bint direct_copy = False # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice tmp * */ __pyx_v_direct_copy = 0; /* "View.MemoryView":1285 * cdef __Pyx_memviewslice tmp * * if src_ndim < dst_ndim: # <<<<<<<<<<<<<< * broadcast_leading(&src, src_ndim, dst_ndim) * elif dst_ndim < src_ndim: */ __pyx_t_2 = ((__pyx_v_src_ndim < __pyx_v_dst_ndim) != 0); if (__pyx_t_2) { /* "View.MemoryView":1286 * * if src_ndim < dst_ndim: * broadcast_leading(&src, src_ndim, dst_ndim) # <<<<<<<<<<<<<< * elif dst_ndim < src_ndim: * broadcast_leading(&dst, dst_ndim, src_ndim) */ __pyx_memoryview_broadcast_leading((&__pyx_v_src), __pyx_v_src_ndim, __pyx_v_dst_ndim); /* "View.MemoryView":1285 * cdef __Pyx_memviewslice tmp * * if src_ndim < dst_ndim: # <<<<<<<<<<<<<< * broadcast_leading(&src, src_ndim, dst_ndim) * elif dst_ndim < src_ndim: */ goto __pyx_L3; } /* "View.MemoryView":1287 * if src_ndim < dst_ndim: * broadcast_leading(&src, src_ndim, dst_ndim) * elif dst_ndim < src_ndim: # <<<<<<<<<<<<<< * broadcast_leading(&dst, dst_ndim, src_ndim) * */ __pyx_t_2 = ((__pyx_v_dst_ndim < __pyx_v_src_ndim) != 0); if (__pyx_t_2) { /* "View.MemoryView":1288 * broadcast_leading(&src, src_ndim, dst_ndim) * elif dst_ndim < src_ndim: * broadcast_leading(&dst, dst_ndim, src_ndim) # <<<<<<<<<<<<<< * * cdef int ndim = max(src_ndim, dst_ndim) */ __pyx_memoryview_broadcast_leading((&__pyx_v_dst), __pyx_v_dst_ndim, __pyx_v_src_ndim); /* "View.MemoryView":1287 * if src_ndim < dst_ndim: * broadcast_leading(&src, src_ndim, dst_ndim) * elif dst_ndim < src_ndim: # <<<<<<<<<<<<<< * broadcast_leading(&dst, dst_ndim, src_ndim) * */ } __pyx_L3:; /* "View.MemoryView":1290 * broadcast_leading(&dst, dst_ndim, src_ndim) * * cdef int ndim = max(src_ndim, dst_ndim) # <<<<<<<<<<<<<< * * for i in range(ndim): */ __pyx_t_3 = __pyx_v_dst_ndim; __pyx_t_4 = __pyx_v_src_ndim; if (((__pyx_t_3 > __pyx_t_4) != 0)) { __pyx_t_5 = __pyx_t_3; } else { __pyx_t_5 = __pyx_t_4; } __pyx_v_ndim = __pyx_t_5; /* "View.MemoryView":1292 * cdef int ndim = max(src_ndim, dst_ndim) * * for i in range(ndim): # <<<<<<<<<<<<<< * if src.shape[i] != dst.shape[i]: * if src.shape[i] == 1: */ __pyx_t_5 = __pyx_v_ndim; __pyx_t_3 = __pyx_t_5; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_i = __pyx_t_4; /* "View.MemoryView":1293 * * for i in range(ndim): * if src.shape[i] != dst.shape[i]: # <<<<<<<<<<<<<< * if src.shape[i] == 1: * broadcasting = True */ __pyx_t_2 = (((__pyx_v_src.shape[__pyx_v_i]) != (__pyx_v_dst.shape[__pyx_v_i])) != 0); if (__pyx_t_2) { /* "View.MemoryView":1294 * for i in range(ndim): * if src.shape[i] != dst.shape[i]: * if src.shape[i] == 1: # <<<<<<<<<<<<<< * broadcasting = True * src.strides[i] = 0 */ __pyx_t_2 = (((__pyx_v_src.shape[__pyx_v_i]) == 1) != 0); if (__pyx_t_2) { /* "View.MemoryView":1295 * if src.shape[i] != dst.shape[i]: * if src.shape[i] == 1: * broadcasting = True # <<<<<<<<<<<<<< * src.strides[i] = 0 * else: */ __pyx_v_broadcasting = 1; /* "View.MemoryView":1296 * if src.shape[i] == 1: * broadcasting = True * src.strides[i] = 0 # <<<<<<<<<<<<<< * else: * _err_extents(i, dst.shape[i], src.shape[i]) */ (__pyx_v_src.strides[__pyx_v_i]) = 0; /* "View.MemoryView":1294 * for i in range(ndim): * if src.shape[i] != dst.shape[i]: * if src.shape[i] == 1: # <<<<<<<<<<<<<< * broadcasting = True * src.strides[i] = 0 */ goto __pyx_L7; } /* "View.MemoryView":1298 * src.strides[i] = 0 * else: * _err_extents(i, dst.shape[i], src.shape[i]) # <<<<<<<<<<<<<< * * if src.suboffsets[i] >= 0: */ /*else*/ { __pyx_t_6 = __pyx_memoryview_err_extents(__pyx_v_i, (__pyx_v_dst.shape[__pyx_v_i]), (__pyx_v_src.shape[__pyx_v_i])); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(2, 1298, __pyx_L1_error) } __pyx_L7:; /* "View.MemoryView":1293 * * for i in range(ndim): * if src.shape[i] != dst.shape[i]: # <<<<<<<<<<<<<< * if src.shape[i] == 1: * broadcasting = True */ } /* "View.MemoryView":1300 * _err_extents(i, dst.shape[i], src.shape[i]) * * if src.suboffsets[i] >= 0: # <<<<<<<<<<<<<< * _err_dim(ValueError, "Dimension %d is not direct", i) * */ __pyx_t_2 = (((__pyx_v_src.suboffsets[__pyx_v_i]) >= 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":1301 * * if src.suboffsets[i] >= 0: * _err_dim(ValueError, "Dimension %d is not direct", i) # <<<<<<<<<<<<<< * * if slices_overlap(&src, &dst, ndim, itemsize): */ __pyx_t_6 = __pyx_memoryview_err_dim(__pyx_builtin_ValueError, ((char *)"Dimension %d is not direct"), __pyx_v_i); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(2, 1301, __pyx_L1_error) /* "View.MemoryView":1300 * _err_extents(i, dst.shape[i], src.shape[i]) * * if src.suboffsets[i] >= 0: # <<<<<<<<<<<<<< * _err_dim(ValueError, "Dimension %d is not direct", i) * */ } } /* "View.MemoryView":1303 * _err_dim(ValueError, "Dimension %d is not direct", i) * * if slices_overlap(&src, &dst, ndim, itemsize): # <<<<<<<<<<<<<< * * if not slice_is_contig(src, order, ndim): */ __pyx_t_2 = (__pyx_slices_overlap((&__pyx_v_src), (&__pyx_v_dst), __pyx_v_ndim, __pyx_v_itemsize) != 0); if (__pyx_t_2) { /* "View.MemoryView":1305 * if slices_overlap(&src, &dst, ndim, itemsize): * * if not slice_is_contig(src, order, ndim): # <<<<<<<<<<<<<< * order = get_best_order(&dst, ndim) * */ __pyx_t_2 = ((!(__pyx_memviewslice_is_contig(__pyx_v_src, __pyx_v_order, __pyx_v_ndim) != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":1306 * * if not slice_is_contig(src, order, ndim): * order = get_best_order(&dst, ndim) # <<<<<<<<<<<<<< * * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim) */ __pyx_v_order = __pyx_get_best_slice_order((&__pyx_v_dst), __pyx_v_ndim); /* "View.MemoryView":1305 * if slices_overlap(&src, &dst, ndim, itemsize): * * if not slice_is_contig(src, order, ndim): # <<<<<<<<<<<<<< * order = get_best_order(&dst, ndim) * */ } /* "View.MemoryView":1308 * order = get_best_order(&dst, ndim) * * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim) # <<<<<<<<<<<<<< * src = tmp * */ __pyx_t_7 = __pyx_memoryview_copy_data_to_temp((&__pyx_v_src), (&__pyx_v_tmp), __pyx_v_order, __pyx_v_ndim); if (unlikely(__pyx_t_7 == ((void *)NULL))) __PYX_ERR(2, 1308, __pyx_L1_error) __pyx_v_tmpdata = __pyx_t_7; /* "View.MemoryView":1309 * * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim) * src = tmp # <<<<<<<<<<<<<< * * if not broadcasting: */ __pyx_v_src = __pyx_v_tmp; /* "View.MemoryView":1303 * _err_dim(ValueError, "Dimension %d is not direct", i) * * if slices_overlap(&src, &dst, ndim, itemsize): # <<<<<<<<<<<<<< * * if not slice_is_contig(src, order, ndim): */ } /* "View.MemoryView":1311 * src = tmp * * if not broadcasting: # <<<<<<<<<<<<<< * * */ __pyx_t_2 = ((!(__pyx_v_broadcasting != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":1314 * * * if slice_is_contig(src, 'C', ndim): # <<<<<<<<<<<<<< * direct_copy = slice_is_contig(dst, 'C', ndim) * elif slice_is_contig(src, 'F', ndim): */ __pyx_t_2 = (__pyx_memviewslice_is_contig(__pyx_v_src, 'C', __pyx_v_ndim) != 0); if (__pyx_t_2) { /* "View.MemoryView":1315 * * if slice_is_contig(src, 'C', ndim): * direct_copy = slice_is_contig(dst, 'C', ndim) # <<<<<<<<<<<<<< * elif slice_is_contig(src, 'F', ndim): * direct_copy = slice_is_contig(dst, 'F', ndim) */ __pyx_v_direct_copy = __pyx_memviewslice_is_contig(__pyx_v_dst, 'C', __pyx_v_ndim); /* "View.MemoryView":1314 * * * if slice_is_contig(src, 'C', ndim): # <<<<<<<<<<<<<< * direct_copy = slice_is_contig(dst, 'C', ndim) * elif slice_is_contig(src, 'F', ndim): */ goto __pyx_L12; } /* "View.MemoryView":1316 * if slice_is_contig(src, 'C', ndim): * direct_copy = slice_is_contig(dst, 'C', ndim) * elif slice_is_contig(src, 'F', ndim): # <<<<<<<<<<<<<< * direct_copy = slice_is_contig(dst, 'F', ndim) * */ __pyx_t_2 = (__pyx_memviewslice_is_contig(__pyx_v_src, 'F', __pyx_v_ndim) != 0); if (__pyx_t_2) { /* "View.MemoryView":1317 * direct_copy = slice_is_contig(dst, 'C', ndim) * elif slice_is_contig(src, 'F', ndim): * direct_copy = slice_is_contig(dst, 'F', ndim) # <<<<<<<<<<<<<< * * if direct_copy: */ __pyx_v_direct_copy = __pyx_memviewslice_is_contig(__pyx_v_dst, 'F', __pyx_v_ndim); /* "View.MemoryView":1316 * if slice_is_contig(src, 'C', ndim): * direct_copy = slice_is_contig(dst, 'C', ndim) * elif slice_is_contig(src, 'F', ndim): # <<<<<<<<<<<<<< * direct_copy = slice_is_contig(dst, 'F', ndim) * */ } __pyx_L12:; /* "View.MemoryView":1319 * direct_copy = slice_is_contig(dst, 'F', ndim) * * if direct_copy: # <<<<<<<<<<<<<< * * refcount_copying(&dst, dtype_is_object, ndim, False) */ __pyx_t_2 = (__pyx_v_direct_copy != 0); if (__pyx_t_2) { /* "View.MemoryView":1321 * if direct_copy: * * refcount_copying(&dst, dtype_is_object, ndim, False) # <<<<<<<<<<<<<< * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) * refcount_copying(&dst, dtype_is_object, ndim, True) */ __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 0); /* "View.MemoryView":1322 * * refcount_copying(&dst, dtype_is_object, ndim, False) * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) # <<<<<<<<<<<<<< * refcount_copying(&dst, dtype_is_object, ndim, True) * free(tmpdata) */ (void)(memcpy(__pyx_v_dst.data, __pyx_v_src.data, __pyx_memoryview_slice_get_size((&__pyx_v_src), __pyx_v_ndim))); /* "View.MemoryView":1323 * refcount_copying(&dst, dtype_is_object, ndim, False) * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) * refcount_copying(&dst, dtype_is_object, ndim, True) # <<<<<<<<<<<<<< * free(tmpdata) * return 0 */ __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 1); /* "View.MemoryView":1324 * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) * refcount_copying(&dst, dtype_is_object, ndim, True) * free(tmpdata) # <<<<<<<<<<<<<< * return 0 * */ free(__pyx_v_tmpdata); /* "View.MemoryView":1325 * refcount_copying(&dst, dtype_is_object, ndim, True) * free(tmpdata) * return 0 # <<<<<<<<<<<<<< * * if order == 'F' == get_best_order(&dst, ndim): */ __pyx_r = 0; goto __pyx_L0; /* "View.MemoryView":1319 * direct_copy = slice_is_contig(dst, 'F', ndim) * * if direct_copy: # <<<<<<<<<<<<<< * * refcount_copying(&dst, dtype_is_object, ndim, False) */ } /* "View.MemoryView":1311 * src = tmp * * if not broadcasting: # <<<<<<<<<<<<<< * * */ } /* "View.MemoryView":1327 * return 0 * * if order == 'F' == get_best_order(&dst, ndim): # <<<<<<<<<<<<<< * * */ __pyx_t_2 = (__pyx_v_order == 'F'); if (__pyx_t_2) { __pyx_t_2 = ('F' == __pyx_get_best_slice_order((&__pyx_v_dst), __pyx_v_ndim)); } __pyx_t_8 = (__pyx_t_2 != 0); if (__pyx_t_8) { /* "View.MemoryView":1330 * * * transpose_memslice(&src) # <<<<<<<<<<<<<< * transpose_memslice(&dst) * */ __pyx_t_5 = __pyx_memslice_transpose((&__pyx_v_src)); if (unlikely(__pyx_t_5 == ((int)0))) __PYX_ERR(2, 1330, __pyx_L1_error) /* "View.MemoryView":1331 * * transpose_memslice(&src) * transpose_memslice(&dst) # <<<<<<<<<<<<<< * * refcount_copying(&dst, dtype_is_object, ndim, False) */ __pyx_t_5 = __pyx_memslice_transpose((&__pyx_v_dst)); if (unlikely(__pyx_t_5 == ((int)0))) __PYX_ERR(2, 1331, __pyx_L1_error) /* "View.MemoryView":1327 * return 0 * * if order == 'F' == get_best_order(&dst, ndim): # <<<<<<<<<<<<<< * * */ } /* "View.MemoryView":1333 * transpose_memslice(&dst) * * refcount_copying(&dst, dtype_is_object, ndim, False) # <<<<<<<<<<<<<< * copy_strided_to_strided(&src, &dst, ndim, itemsize) * refcount_copying(&dst, dtype_is_object, ndim, True) */ __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 0); /* "View.MemoryView":1334 * * refcount_copying(&dst, dtype_is_object, ndim, False) * copy_strided_to_strided(&src, &dst, ndim, itemsize) # <<<<<<<<<<<<<< * refcount_copying(&dst, dtype_is_object, ndim, True) * */ copy_strided_to_strided((&__pyx_v_src), (&__pyx_v_dst), __pyx_v_ndim, __pyx_v_itemsize); /* "View.MemoryView":1335 * refcount_copying(&dst, dtype_is_object, ndim, False) * copy_strided_to_strided(&src, &dst, ndim, itemsize) * refcount_copying(&dst, dtype_is_object, ndim, True) # <<<<<<<<<<<<<< * * free(tmpdata) */ __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 1); /* "View.MemoryView":1337 * refcount_copying(&dst, dtype_is_object, ndim, True) * * free(tmpdata) # <<<<<<<<<<<<<< * return 0 * */ free(__pyx_v_tmpdata); /* "View.MemoryView":1338 * * free(tmpdata) * return 0 # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_broadcast_leading') */ __pyx_r = 0; goto __pyx_L0; /* "View.MemoryView":1269 * * @cname('__pyx_memoryview_copy_contents') * cdef int memoryview_copy_contents(__Pyx_memviewslice src, # <<<<<<<<<<<<<< * __Pyx_memviewslice dst, * int src_ndim, int dst_ndim, */ /* function exit code */ __pyx_L1_error:; { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_AddTraceback("View.MemoryView.memoryview_copy_contents", __pyx_clineno, __pyx_lineno, __pyx_filename); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif } __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1341 * * @cname('__pyx_memoryview_broadcast_leading') * cdef void broadcast_leading(__Pyx_memviewslice *mslice, # <<<<<<<<<<<<<< * int ndim, * int ndim_other) nogil: */ static void __pyx_memoryview_broadcast_leading(__Pyx_memviewslice *__pyx_v_mslice, int __pyx_v_ndim, int __pyx_v_ndim_other) { int __pyx_v_i; int __pyx_v_offset; int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; /* "View.MemoryView":1345 * int ndim_other) nogil: * cdef int i * cdef int offset = ndim_other - ndim # <<<<<<<<<<<<<< * * for i in range(ndim - 1, -1, -1): */ __pyx_v_offset = (__pyx_v_ndim_other - __pyx_v_ndim); /* "View.MemoryView":1347 * cdef int offset = ndim_other - ndim * * for i in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<< * mslice.shape[i + offset] = mslice.shape[i] * mslice.strides[i + offset] = mslice.strides[i] */ for (__pyx_t_1 = (__pyx_v_ndim - 1); __pyx_t_1 > -1; __pyx_t_1-=1) { __pyx_v_i = __pyx_t_1; /* "View.MemoryView":1348 * * for i in range(ndim - 1, -1, -1): * mslice.shape[i + offset] = mslice.shape[i] # <<<<<<<<<<<<<< * mslice.strides[i + offset] = mslice.strides[i] * mslice.suboffsets[i + offset] = mslice.suboffsets[i] */ (__pyx_v_mslice->shape[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->shape[__pyx_v_i]); /* "View.MemoryView":1349 * for i in range(ndim - 1, -1, -1): * mslice.shape[i + offset] = mslice.shape[i] * mslice.strides[i + offset] = mslice.strides[i] # <<<<<<<<<<<<<< * mslice.suboffsets[i + offset] = mslice.suboffsets[i] * */ (__pyx_v_mslice->strides[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->strides[__pyx_v_i]); /* "View.MemoryView":1350 * mslice.shape[i + offset] = mslice.shape[i] * mslice.strides[i + offset] = mslice.strides[i] * mslice.suboffsets[i + offset] = mslice.suboffsets[i] # <<<<<<<<<<<<<< * * for i in range(offset): */ (__pyx_v_mslice->suboffsets[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->suboffsets[__pyx_v_i]); } /* "View.MemoryView":1352 * mslice.suboffsets[i + offset] = mslice.suboffsets[i] * * for i in range(offset): # <<<<<<<<<<<<<< * mslice.shape[i] = 1 * mslice.strides[i] = mslice.strides[0] */ __pyx_t_1 = __pyx_v_offset; __pyx_t_2 = __pyx_t_1; for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_i = __pyx_t_3; /* "View.MemoryView":1353 * * for i in range(offset): * mslice.shape[i] = 1 # <<<<<<<<<<<<<< * mslice.strides[i] = mslice.strides[0] * mslice.suboffsets[i] = -1 */ (__pyx_v_mslice->shape[__pyx_v_i]) = 1; /* "View.MemoryView":1354 * for i in range(offset): * mslice.shape[i] = 1 * mslice.strides[i] = mslice.strides[0] # <<<<<<<<<<<<<< * mslice.suboffsets[i] = -1 * */ (__pyx_v_mslice->strides[__pyx_v_i]) = (__pyx_v_mslice->strides[0]); /* "View.MemoryView":1355 * mslice.shape[i] = 1 * mslice.strides[i] = mslice.strides[0] * mslice.suboffsets[i] = -1 # <<<<<<<<<<<<<< * * */ (__pyx_v_mslice->suboffsets[__pyx_v_i]) = -1L; } /* "View.MemoryView":1341 * * @cname('__pyx_memoryview_broadcast_leading') * cdef void broadcast_leading(__Pyx_memviewslice *mslice, # <<<<<<<<<<<<<< * int ndim, * int ndim_other) nogil: */ /* function exit code */ } /* "View.MemoryView":1363 * * @cname('__pyx_memoryview_refcount_copying') * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, # <<<<<<<<<<<<<< * int ndim, bint inc) nogil: * */ static void __pyx_memoryview_refcount_copying(__Pyx_memviewslice *__pyx_v_dst, int __pyx_v_dtype_is_object, int __pyx_v_ndim, int __pyx_v_inc) { int __pyx_t_1; /* "View.MemoryView":1367 * * * if dtype_is_object: # <<<<<<<<<<<<<< * refcount_objects_in_slice_with_gil(dst.data, dst.shape, * dst.strides, ndim, inc) */ __pyx_t_1 = (__pyx_v_dtype_is_object != 0); if (__pyx_t_1) { /* "View.MemoryView":1368 * * if dtype_is_object: * refcount_objects_in_slice_with_gil(dst.data, dst.shape, # <<<<<<<<<<<<<< * dst.strides, ndim, inc) * */ __pyx_memoryview_refcount_objects_in_slice_with_gil(__pyx_v_dst->data, __pyx_v_dst->shape, __pyx_v_dst->strides, __pyx_v_ndim, __pyx_v_inc); /* "View.MemoryView":1367 * * * if dtype_is_object: # <<<<<<<<<<<<<< * refcount_objects_in_slice_with_gil(dst.data, dst.shape, * dst.strides, ndim, inc) */ } /* "View.MemoryView":1363 * * @cname('__pyx_memoryview_refcount_copying') * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, # <<<<<<<<<<<<<< * int ndim, bint inc) nogil: * */ /* function exit code */ } /* "View.MemoryView":1372 * * @cname('__pyx_memoryview_refcount_objects_in_slice_with_gil') * cdef void refcount_objects_in_slice_with_gil(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, * bint inc) with gil: */ static void __pyx_memoryview_refcount_objects_in_slice_with_gil(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, int __pyx_v_inc) { __Pyx_RefNannyDeclarations #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_RefNannySetupContext("refcount_objects_in_slice_with_gil", 0); /* "View.MemoryView":1375 * Py_ssize_t *strides, int ndim, * bint inc) with gil: * refcount_objects_in_slice(data, shape, strides, ndim, inc) # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_refcount_objects_in_slice') */ __pyx_memoryview_refcount_objects_in_slice(__pyx_v_data, __pyx_v_shape, __pyx_v_strides, __pyx_v_ndim, __pyx_v_inc); /* "View.MemoryView":1372 * * @cname('__pyx_memoryview_refcount_objects_in_slice_with_gil') * cdef void refcount_objects_in_slice_with_gil(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, * bint inc) with gil: */ /* function exit code */ __Pyx_RefNannyFinishContext(); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif } /* "View.MemoryView":1378 * * @cname('__pyx_memoryview_refcount_objects_in_slice') * cdef void refcount_objects_in_slice(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, bint inc): * cdef Py_ssize_t i */ static void __pyx_memoryview_refcount_objects_in_slice(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, int __pyx_v_inc) { CYTHON_UNUSED Py_ssize_t __pyx_v_i; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; Py_ssize_t __pyx_t_2; Py_ssize_t __pyx_t_3; int __pyx_t_4; __Pyx_RefNannySetupContext("refcount_objects_in_slice", 0); /* "View.MemoryView":1382 * cdef Py_ssize_t i * * for i in range(shape[0]): # <<<<<<<<<<<<<< * if ndim == 1: * if inc: */ __pyx_t_1 = (__pyx_v_shape[0]); __pyx_t_2 = __pyx_t_1; for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_i = __pyx_t_3; /* "View.MemoryView":1383 * * for i in range(shape[0]): * if ndim == 1: # <<<<<<<<<<<<<< * if inc: * Py_INCREF(( data)[0]) */ __pyx_t_4 = ((__pyx_v_ndim == 1) != 0); if (__pyx_t_4) { /* "View.MemoryView":1384 * for i in range(shape[0]): * if ndim == 1: * if inc: # <<<<<<<<<<<<<< * Py_INCREF(( data)[0]) * else: */ __pyx_t_4 = (__pyx_v_inc != 0); if (__pyx_t_4) { /* "View.MemoryView":1385 * if ndim == 1: * if inc: * Py_INCREF(( data)[0]) # <<<<<<<<<<<<<< * else: * Py_DECREF(( data)[0]) */ Py_INCREF((((PyObject **)__pyx_v_data)[0])); /* "View.MemoryView":1384 * for i in range(shape[0]): * if ndim == 1: * if inc: # <<<<<<<<<<<<<< * Py_INCREF(( data)[0]) * else: */ goto __pyx_L6; } /* "View.MemoryView":1387 * Py_INCREF(( data)[0]) * else: * Py_DECREF(( data)[0]) # <<<<<<<<<<<<<< * else: * refcount_objects_in_slice(data, shape + 1, strides + 1, */ /*else*/ { Py_DECREF((((PyObject **)__pyx_v_data)[0])); } __pyx_L6:; /* "View.MemoryView":1383 * * for i in range(shape[0]): * if ndim == 1: # <<<<<<<<<<<<<< * if inc: * Py_INCREF(( data)[0]) */ goto __pyx_L5; } /* "View.MemoryView":1389 * Py_DECREF(( data)[0]) * else: * refcount_objects_in_slice(data, shape + 1, strides + 1, # <<<<<<<<<<<<<< * ndim - 1, inc) * */ /*else*/ { /* "View.MemoryView":1390 * else: * refcount_objects_in_slice(data, shape + 1, strides + 1, * ndim - 1, inc) # <<<<<<<<<<<<<< * * data += strides[0] */ __pyx_memoryview_refcount_objects_in_slice(__pyx_v_data, (__pyx_v_shape + 1), (__pyx_v_strides + 1), (__pyx_v_ndim - 1), __pyx_v_inc); } __pyx_L5:; /* "View.MemoryView":1392 * ndim - 1, inc) * * data += strides[0] # <<<<<<<<<<<<<< * * */ __pyx_v_data = (__pyx_v_data + (__pyx_v_strides[0])); } /* "View.MemoryView":1378 * * @cname('__pyx_memoryview_refcount_objects_in_slice') * cdef void refcount_objects_in_slice(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, bint inc): * cdef Py_ssize_t i */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "View.MemoryView":1398 * * @cname('__pyx_memoryview_slice_assign_scalar') * cdef void slice_assign_scalar(__Pyx_memviewslice *dst, int ndim, # <<<<<<<<<<<<<< * size_t itemsize, void *item, * bint dtype_is_object) nogil: */ static void __pyx_memoryview_slice_assign_scalar(__Pyx_memviewslice *__pyx_v_dst, int __pyx_v_ndim, size_t __pyx_v_itemsize, void *__pyx_v_item, int __pyx_v_dtype_is_object) { /* "View.MemoryView":1401 * size_t itemsize, void *item, * bint dtype_is_object) nogil: * refcount_copying(dst, dtype_is_object, ndim, False) # <<<<<<<<<<<<<< * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, * itemsize, item) */ __pyx_memoryview_refcount_copying(__pyx_v_dst, __pyx_v_dtype_is_object, __pyx_v_ndim, 0); /* "View.MemoryView":1402 * bint dtype_is_object) nogil: * refcount_copying(dst, dtype_is_object, ndim, False) * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, # <<<<<<<<<<<<<< * itemsize, item) * refcount_copying(dst, dtype_is_object, ndim, True) */ __pyx_memoryview__slice_assign_scalar(__pyx_v_dst->data, __pyx_v_dst->shape, __pyx_v_dst->strides, __pyx_v_ndim, __pyx_v_itemsize, __pyx_v_item); /* "View.MemoryView":1404 * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, * itemsize, item) * refcount_copying(dst, dtype_is_object, ndim, True) # <<<<<<<<<<<<<< * * */ __pyx_memoryview_refcount_copying(__pyx_v_dst, __pyx_v_dtype_is_object, __pyx_v_ndim, 1); /* "View.MemoryView":1398 * * @cname('__pyx_memoryview_slice_assign_scalar') * cdef void slice_assign_scalar(__Pyx_memviewslice *dst, int ndim, # <<<<<<<<<<<<<< * size_t itemsize, void *item, * bint dtype_is_object) nogil: */ /* function exit code */ } /* "View.MemoryView":1408 * * @cname('__pyx_memoryview__slice_assign_scalar') * cdef void _slice_assign_scalar(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, * size_t itemsize, void *item) nogil: */ static void __pyx_memoryview__slice_assign_scalar(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, size_t __pyx_v_itemsize, void *__pyx_v_item) { CYTHON_UNUSED Py_ssize_t __pyx_v_i; Py_ssize_t __pyx_v_stride; Py_ssize_t __pyx_v_extent; int __pyx_t_1; Py_ssize_t __pyx_t_2; Py_ssize_t __pyx_t_3; Py_ssize_t __pyx_t_4; /* "View.MemoryView":1412 * size_t itemsize, void *item) nogil: * cdef Py_ssize_t i * cdef Py_ssize_t stride = strides[0] # <<<<<<<<<<<<<< * cdef Py_ssize_t extent = shape[0] * */ __pyx_v_stride = (__pyx_v_strides[0]); /* "View.MemoryView":1413 * cdef Py_ssize_t i * cdef Py_ssize_t stride = strides[0] * cdef Py_ssize_t extent = shape[0] # <<<<<<<<<<<<<< * * if ndim == 1: */ __pyx_v_extent = (__pyx_v_shape[0]); /* "View.MemoryView":1415 * cdef Py_ssize_t extent = shape[0] * * if ndim == 1: # <<<<<<<<<<<<<< * for i in range(extent): * memcpy(data, item, itemsize) */ __pyx_t_1 = ((__pyx_v_ndim == 1) != 0); if (__pyx_t_1) { /* "View.MemoryView":1416 * * if ndim == 1: * for i in range(extent): # <<<<<<<<<<<<<< * memcpy(data, item, itemsize) * data += stride */ __pyx_t_2 = __pyx_v_extent; __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_i = __pyx_t_4; /* "View.MemoryView":1417 * if ndim == 1: * for i in range(extent): * memcpy(data, item, itemsize) # <<<<<<<<<<<<<< * data += stride * else: */ (void)(memcpy(__pyx_v_data, __pyx_v_item, __pyx_v_itemsize)); /* "View.MemoryView":1418 * for i in range(extent): * memcpy(data, item, itemsize) * data += stride # <<<<<<<<<<<<<< * else: * for i in range(extent): */ __pyx_v_data = (__pyx_v_data + __pyx_v_stride); } /* "View.MemoryView":1415 * cdef Py_ssize_t extent = shape[0] * * if ndim == 1: # <<<<<<<<<<<<<< * for i in range(extent): * memcpy(data, item, itemsize) */ goto __pyx_L3; } /* "View.MemoryView":1420 * data += stride * else: * for i in range(extent): # <<<<<<<<<<<<<< * _slice_assign_scalar(data, shape + 1, strides + 1, * ndim - 1, itemsize, item) */ /*else*/ { __pyx_t_2 = __pyx_v_extent; __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_i = __pyx_t_4; /* "View.MemoryView":1421 * else: * for i in range(extent): * _slice_assign_scalar(data, shape + 1, strides + 1, # <<<<<<<<<<<<<< * ndim - 1, itemsize, item) * data += stride */ __pyx_memoryview__slice_assign_scalar(__pyx_v_data, (__pyx_v_shape + 1), (__pyx_v_strides + 1), (__pyx_v_ndim - 1), __pyx_v_itemsize, __pyx_v_item); /* "View.MemoryView":1423 * _slice_assign_scalar(data, shape + 1, strides + 1, * ndim - 1, itemsize, item) * data += stride # <<<<<<<<<<<<<< * * */ __pyx_v_data = (__pyx_v_data + __pyx_v_stride); } } __pyx_L3:; /* "View.MemoryView":1408 * * @cname('__pyx_memoryview__slice_assign_scalar') * cdef void _slice_assign_scalar(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, * size_t itemsize, void *item) nogil: */ /* function exit code */ } /* "(tree fragment)":1 * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_PickleError * cdef object __pyx_result */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_15View_dot_MemoryView_1__pyx_unpickle_Enum = {"__pyx_unpickle_Enum", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_unpickle_Enum (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0}; PyObject* values[3] = {0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_type)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_checksum)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, 1); __PYX_ERR(2, 1, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, 2); __PYX_ERR(2, 1, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Enum") < 0)) __PYX_ERR(2, 1, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); } __pyx_v___pyx_type = values[0]; __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(2, 1, __pyx_L3_error) __pyx_v___pyx_state = values[2]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_t_6; __Pyx_RefNannySetupContext("__pyx_unpickle_Enum", 0); /* "(tree fragment)":4 * cdef object __pyx_PickleError * cdef object __pyx_result * if __pyx_checksum != 0xb068931: # <<<<<<<<<<<<<< * from pickle import PickleError as __pyx_PickleError * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) */ __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xb068931) != 0); if (__pyx_t_1) { /* "(tree fragment)":5 * cdef object __pyx_result * if __pyx_checksum != 0xb068931: * from pickle import PickleError as __pyx_PickleError # <<<<<<<<<<<<<< * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) * __pyx_result = Enum.__new__(__pyx_type) */ __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_PickleError); __Pyx_GIVEREF(__pyx_n_s_PickleError); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError); __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_2); __pyx_v___pyx_PickleError = __pyx_t_2; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "(tree fragment)":6 * if __pyx_checksum != 0xb068931: * from pickle import PickleError as __pyx_PickleError * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) # <<<<<<<<<<<<<< * __pyx_result = Enum.__new__(__pyx_type) * if __pyx_state is not None: */ __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xb0, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_INCREF(__pyx_v___pyx_PickleError); __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 6, __pyx_L1_error) /* "(tree fragment)":4 * cdef object __pyx_PickleError * cdef object __pyx_result * if __pyx_checksum != 0xb068931: # <<<<<<<<<<<<<< * from pickle import PickleError as __pyx_PickleError * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) */ } /* "(tree fragment)":7 * from pickle import PickleError as __pyx_PickleError * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) * __pyx_result = Enum.__new__(__pyx_type) # <<<<<<<<<<<<<< * if __pyx_state is not None: * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_MemviewEnum_type), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 7, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 7, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v___pyx_result = __pyx_t_3; __pyx_t_3 = 0; /* "(tree fragment)":8 * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) * __pyx_result = Enum.__new__(__pyx_type) * if __pyx_state is not None: # <<<<<<<<<<<<<< * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) * return __pyx_result */ __pyx_t_1 = (__pyx_v___pyx_state != Py_None); __pyx_t_6 = (__pyx_t_1 != 0); if (__pyx_t_6) { /* "(tree fragment)":9 * __pyx_result = Enum.__new__(__pyx_type) * if __pyx_state is not None: * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) # <<<<<<<<<<<<<< * return __pyx_result * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): */ if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(2, 9, __pyx_L1_error) __pyx_t_3 = __pyx_unpickle_Enum__set_state(((struct __pyx_MemviewEnum_obj *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "(tree fragment)":8 * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) * __pyx_result = Enum.__new__(__pyx_type) * if __pyx_state is not None: # <<<<<<<<<<<<<< * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) * return __pyx_result */ } /* "(tree fragment)":10 * if __pyx_state is not None: * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) * return __pyx_result # <<<<<<<<<<<<<< * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): * __pyx_result.name = __pyx_state[0] */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v___pyx_result); __pyx_r = __pyx_v___pyx_result; goto __pyx_L0; /* "(tree fragment)":1 * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_PickleError * cdef object __pyx_result */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v___pyx_PickleError); __Pyx_XDECREF(__pyx_v___pyx_result); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":11 * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) * return __pyx_result * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< * __pyx_result.name = __pyx_state[0] * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): */ static PyObject *__pyx_unpickle_Enum__set_state(struct __pyx_MemviewEnum_obj *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; Py_ssize_t __pyx_t_3; int __pyx_t_4; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("__pyx_unpickle_Enum__set_state", 0); /* "(tree fragment)":12 * return __pyx_result * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): * __pyx_result.name = __pyx_state[0] # <<<<<<<<<<<<<< * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): * __pyx_result.__dict__.update(__pyx_state[1]) */ if (unlikely(__pyx_v___pyx_state == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(2, 12, __pyx_L1_error) } __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v___pyx_result->name); __Pyx_DECREF(__pyx_v___pyx_result->name); __pyx_v___pyx_result->name = __pyx_t_1; __pyx_t_1 = 0; /* "(tree fragment)":13 * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): * __pyx_result.name = __pyx_state[0] * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< * __pyx_result.__dict__.update(__pyx_state[1]) */ if (unlikely(__pyx_v___pyx_state == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(2, 13, __pyx_L1_error) } __pyx_t_3 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(2, 13, __pyx_L1_error) __pyx_t_4 = ((__pyx_t_3 > 1) != 0); if (__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L4_bool_binop_done; } __pyx_t_4 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 13, __pyx_L1_error) __pyx_t_5 = (__pyx_t_4 != 0); __pyx_t_2 = __pyx_t_5; __pyx_L4_bool_binop_done:; if (__pyx_t_2) { /* "(tree fragment)":14 * __pyx_result.name = __pyx_state[0] * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): * __pyx_result.__dict__.update(__pyx_state[1]) # <<<<<<<<<<<<<< */ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(__pyx_v___pyx_state == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(2, 14, __pyx_L1_error) } __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "(tree fragment)":13 * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): * __pyx_result.name = __pyx_state[0] * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< * __pyx_result.__dict__.update(__pyx_state[1]) */ } /* "(tree fragment)":11 * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) * return __pyx_result * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< * __pyx_result.name = __pyx_state[0] * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static struct __pyx_vtabstruct_array __pyx_vtable_array; static PyObject *__pyx_tp_new_array(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_array_obj *p; PyObject *o; if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { o = (*t->tp_alloc)(t, 0); } else { o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); } if (unlikely(!o)) return 0; p = ((struct __pyx_array_obj *)o); p->__pyx_vtab = __pyx_vtabptr_array; p->mode = ((PyObject*)Py_None); Py_INCREF(Py_None); p->_format = ((PyObject*)Py_None); Py_INCREF(Py_None); if (unlikely(__pyx_array___cinit__(o, a, k) < 0)) goto bad; return o; bad: Py_DECREF(o); o = 0; return NULL; } static void __pyx_tp_dealloc_array(PyObject *o) { struct __pyx_array_obj *p = (struct __pyx_array_obj *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif { PyObject *etype, *eval, *etb; PyErr_Fetch(&etype, &eval, &etb); ++Py_REFCNT(o); __pyx_array___dealloc__(o); --Py_REFCNT(o); PyErr_Restore(etype, eval, etb); } Py_CLEAR(p->mode); Py_CLEAR(p->_format); (*Py_TYPE(o)->tp_free)(o); } static PyObject *__pyx_sq_item_array(PyObject *o, Py_ssize_t i) { PyObject *r; PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0; r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x); Py_DECREF(x); return r; } static int __pyx_mp_ass_subscript_array(PyObject *o, PyObject *i, PyObject *v) { if (v) { return __pyx_array___setitem__(o, i, v); } else { PyErr_Format(PyExc_NotImplementedError, "Subscript deletion not supported by %.200s", Py_TYPE(o)->tp_name); return -1; } } static PyObject *__pyx_tp_getattro_array(PyObject *o, PyObject *n) { PyObject *v = __Pyx_PyObject_GenericGetAttr(o, n); if (!v && PyErr_ExceptionMatches(PyExc_AttributeError)) { PyErr_Clear(); v = __pyx_array___getattr__(o, n); } return v; } static PyObject *__pyx_getprop___pyx_array_memview(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(o); } static PyMethodDef __pyx_methods_array[] = { {"__getattr__", (PyCFunction)__pyx_array___getattr__, METH_O|METH_COEXIST, 0}, {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_array_1__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_array_3__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_array[] = { {(char *)"memview", __pyx_getprop___pyx_array_memview, 0, (char *)0, 0}, {0, 0, 0, 0, 0} }; static PySequenceMethods __pyx_tp_as_sequence_array = { __pyx_array___len__, /*sq_length*/ 0, /*sq_concat*/ 0, /*sq_repeat*/ __pyx_sq_item_array, /*sq_item*/ 0, /*sq_slice*/ 0, /*sq_ass_item*/ 0, /*sq_ass_slice*/ 0, /*sq_contains*/ 0, /*sq_inplace_concat*/ 0, /*sq_inplace_repeat*/ }; static PyMappingMethods __pyx_tp_as_mapping_array = { __pyx_array___len__, /*mp_length*/ __pyx_array___getitem__, /*mp_subscript*/ __pyx_mp_ass_subscript_array, /*mp_ass_subscript*/ }; static PyBufferProcs __pyx_tp_as_buffer_array = { #if PY_MAJOR_VERSION < 3 0, /*bf_getreadbuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getwritebuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getsegcount*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getcharbuffer*/ #endif __pyx_array_getbuffer, /*bf_getbuffer*/ 0, /*bf_releasebuffer*/ }; static PyTypeObject __pyx_type___pyx_array = { PyVarObject_HEAD_INIT(0, 0) "pywt._extensions._cwt.array", /*tp_name*/ sizeof(struct __pyx_array_obj), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_array, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ &__pyx_tp_as_sequence_array, /*tp_as_sequence*/ &__pyx_tp_as_mapping_array, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ __pyx_tp_getattro_array, /*tp_getattro*/ 0, /*tp_setattro*/ &__pyx_tp_as_buffer_array, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ 0, /*tp_doc*/ 0, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_array, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_array, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_array, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif }; static PyObject *__pyx_tp_new_Enum(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { struct __pyx_MemviewEnum_obj *p; PyObject *o; if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { o = (*t->tp_alloc)(t, 0); } else { o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); } if (unlikely(!o)) return 0; p = ((struct __pyx_MemviewEnum_obj *)o); p->name = Py_None; Py_INCREF(Py_None); return o; } static void __pyx_tp_dealloc_Enum(PyObject *o) { struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->name); (*Py_TYPE(o)->tp_free)(o); } static int __pyx_tp_traverse_Enum(PyObject *o, visitproc v, void *a) { int e; struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o; if (p->name) { e = (*v)(p->name, a); if (e) return e; } return 0; } static int __pyx_tp_clear_Enum(PyObject *o) { PyObject* tmp; struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o; tmp = ((PyObject*)p->name); p->name = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyMethodDef __pyx_methods_Enum[] = { {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_MemviewEnum_1__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_MemviewEnum_3__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static PyTypeObject __pyx_type___pyx_MemviewEnum = { PyVarObject_HEAD_INIT(0, 0) "pywt._extensions._cwt.Enum", /*tp_name*/ sizeof(struct __pyx_MemviewEnum_obj), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_Enum, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif __pyx_MemviewEnum___repr__, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_Enum, /*tp_traverse*/ __pyx_tp_clear_Enum, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_Enum, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ __pyx_MemviewEnum___init__, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_Enum, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif }; static struct __pyx_vtabstruct_memoryview __pyx_vtable_memoryview; static PyObject *__pyx_tp_new_memoryview(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_memoryview_obj *p; PyObject *o; if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { o = (*t->tp_alloc)(t, 0); } else { o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); } if (unlikely(!o)) return 0; p = ((struct __pyx_memoryview_obj *)o); p->__pyx_vtab = __pyx_vtabptr_memoryview; p->obj = Py_None; Py_INCREF(Py_None); p->_size = Py_None; Py_INCREF(Py_None); p->_array_interface = Py_None; Py_INCREF(Py_None); p->view.obj = NULL; if (unlikely(__pyx_memoryview___cinit__(o, a, k) < 0)) goto bad; return o; bad: Py_DECREF(o); o = 0; return NULL; } static void __pyx_tp_dealloc_memoryview(PyObject *o) { struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif PyObject_GC_UnTrack(o); { PyObject *etype, *eval, *etb; PyErr_Fetch(&etype, &eval, &etb); ++Py_REFCNT(o); __pyx_memoryview___dealloc__(o); --Py_REFCNT(o); PyErr_Restore(etype, eval, etb); } Py_CLEAR(p->obj); Py_CLEAR(p->_size); Py_CLEAR(p->_array_interface); (*Py_TYPE(o)->tp_free)(o); } static int __pyx_tp_traverse_memoryview(PyObject *o, visitproc v, void *a) { int e; struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o; if (p->obj) { e = (*v)(p->obj, a); if (e) return e; } if (p->_size) { e = (*v)(p->_size, a); if (e) return e; } if (p->_array_interface) { e = (*v)(p->_array_interface, a); if (e) return e; } if (p->view.obj) { e = (*v)(p->view.obj, a); if (e) return e; } return 0; } static int __pyx_tp_clear_memoryview(PyObject *o) { PyObject* tmp; struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o; tmp = ((PyObject*)p->obj); p->obj = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->_size); p->_size = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->_array_interface); p->_array_interface = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); Py_CLEAR(p->view.obj); return 0; } static PyObject *__pyx_sq_item_memoryview(PyObject *o, Py_ssize_t i) { PyObject *r; PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0; r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x); Py_DECREF(x); return r; } static int __pyx_mp_ass_subscript_memoryview(PyObject *o, PyObject *i, PyObject *v) { if (v) { return __pyx_memoryview___setitem__(o, i, v); } else { PyErr_Format(PyExc_NotImplementedError, "Subscript deletion not supported by %.200s", Py_TYPE(o)->tp_name); return -1; } } static PyObject *__pyx_getprop___pyx_memoryview_T(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_base(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_shape(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_strides(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_suboffsets(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_ndim(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_itemsize(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_nbytes(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_size(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(o); } static PyMethodDef __pyx_methods_memoryview[] = { {"is_c_contig", (PyCFunction)__pyx_memoryview_is_c_contig, METH_NOARGS, 0}, {"is_f_contig", (PyCFunction)__pyx_memoryview_is_f_contig, METH_NOARGS, 0}, {"copy", (PyCFunction)__pyx_memoryview_copy, METH_NOARGS, 0}, {"copy_fortran", (PyCFunction)__pyx_memoryview_copy_fortran, METH_NOARGS, 0}, {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_memoryview_1__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_memoryview_3__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_memoryview[] = { {(char *)"T", __pyx_getprop___pyx_memoryview_T, 0, (char *)0, 0}, {(char *)"base", __pyx_getprop___pyx_memoryview_base, 0, (char *)0, 0}, {(char *)"shape", __pyx_getprop___pyx_memoryview_shape, 0, (char *)0, 0}, {(char *)"strides", __pyx_getprop___pyx_memoryview_strides, 0, (char *)0, 0}, {(char *)"suboffsets", __pyx_getprop___pyx_memoryview_suboffsets, 0, (char *)0, 0}, {(char *)"ndim", __pyx_getprop___pyx_memoryview_ndim, 0, (char *)0, 0}, {(char *)"itemsize", __pyx_getprop___pyx_memoryview_itemsize, 0, (char *)0, 0}, {(char *)"nbytes", __pyx_getprop___pyx_memoryview_nbytes, 0, (char *)0, 0}, {(char *)"size", __pyx_getprop___pyx_memoryview_size, 0, (char *)0, 0}, {0, 0, 0, 0, 0} }; static PySequenceMethods __pyx_tp_as_sequence_memoryview = { __pyx_memoryview___len__, /*sq_length*/ 0, /*sq_concat*/ 0, /*sq_repeat*/ __pyx_sq_item_memoryview, /*sq_item*/ 0, /*sq_slice*/ 0, /*sq_ass_item*/ 0, /*sq_ass_slice*/ 0, /*sq_contains*/ 0, /*sq_inplace_concat*/ 0, /*sq_inplace_repeat*/ }; static PyMappingMethods __pyx_tp_as_mapping_memoryview = { __pyx_memoryview___len__, /*mp_length*/ __pyx_memoryview___getitem__, /*mp_subscript*/ __pyx_mp_ass_subscript_memoryview, /*mp_ass_subscript*/ }; static PyBufferProcs __pyx_tp_as_buffer_memoryview = { #if PY_MAJOR_VERSION < 3 0, /*bf_getreadbuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getwritebuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getsegcount*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getcharbuffer*/ #endif __pyx_memoryview_getbuffer, /*bf_getbuffer*/ 0, /*bf_releasebuffer*/ }; static PyTypeObject __pyx_type___pyx_memoryview = { PyVarObject_HEAD_INIT(0, 0) "pywt._extensions._cwt.memoryview", /*tp_name*/ sizeof(struct __pyx_memoryview_obj), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_memoryview, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif __pyx_memoryview___repr__, /*tp_repr*/ 0, /*tp_as_number*/ &__pyx_tp_as_sequence_memoryview, /*tp_as_sequence*/ &__pyx_tp_as_mapping_memoryview, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ __pyx_memoryview___str__, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ &__pyx_tp_as_buffer_memoryview, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_memoryview, /*tp_traverse*/ __pyx_tp_clear_memoryview, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_memoryview, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_memoryview, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_memoryview, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif }; static struct __pyx_vtabstruct__memoryviewslice __pyx_vtable__memoryviewslice; static PyObject *__pyx_tp_new__memoryviewslice(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_memoryviewslice_obj *p; PyObject *o = __pyx_tp_new_memoryview(t, a, k); if (unlikely(!o)) return 0; p = ((struct __pyx_memoryviewslice_obj *)o); p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_memoryview*)__pyx_vtabptr__memoryviewslice; p->from_object = Py_None; Py_INCREF(Py_None); p->from_slice.memview = NULL; return o; } static void __pyx_tp_dealloc__memoryviewslice(PyObject *o) { struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif PyObject_GC_UnTrack(o); { PyObject *etype, *eval, *etb; PyErr_Fetch(&etype, &eval, &etb); ++Py_REFCNT(o); __pyx_memoryviewslice___dealloc__(o); --Py_REFCNT(o); PyErr_Restore(etype, eval, etb); } Py_CLEAR(p->from_object); PyObject_GC_Track(o); __pyx_tp_dealloc_memoryview(o); } static int __pyx_tp_traverse__memoryviewslice(PyObject *o, visitproc v, void *a) { int e; struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o; e = __pyx_tp_traverse_memoryview(o, v, a); if (e) return e; if (p->from_object) { e = (*v)(p->from_object, a); if (e) return e; } return 0; } static int __pyx_tp_clear__memoryviewslice(PyObject *o) { PyObject* tmp; struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o; __pyx_tp_clear_memoryview(o); tmp = ((PyObject*)p->from_object); p->from_object = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); __PYX_XDEC_MEMVIEW(&p->from_slice, 1); return 0; } static PyObject *__pyx_getprop___pyx_memoryviewslice_base(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(o); } static PyMethodDef __pyx_methods__memoryviewslice[] = { {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_memoryviewslice_1__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_memoryviewslice_3__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets__memoryviewslice[] = { {(char *)"base", __pyx_getprop___pyx_memoryviewslice_base, 0, (char *)0, 0}, {0, 0, 0, 0, 0} }; static PyTypeObject __pyx_type___pyx_memoryviewslice = { PyVarObject_HEAD_INIT(0, 0) "pywt._extensions._cwt._memoryviewslice", /*tp_name*/ sizeof(struct __pyx_memoryviewslice_obj), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc__memoryviewslice, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif #if CYTHON_COMPILING_IN_PYPY __pyx_memoryview___repr__, /*tp_repr*/ #else 0, /*tp_repr*/ #endif 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ #if CYTHON_COMPILING_IN_PYPY __pyx_memoryview___str__, /*tp_str*/ #else 0, /*tp_str*/ #endif 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ "Internal class for passing memoryview slices to Python", /*tp_doc*/ __pyx_tp_traverse__memoryviewslice, /*tp_traverse*/ __pyx_tp_clear__memoryviewslice, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods__memoryviewslice, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets__memoryviewslice, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new__memoryviewslice, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif }; static PyMethodDef __pyx_methods[] = { {0, 0, 0, 0} }; #if PY_MAJOR_VERSION >= 3 #if CYTHON_PEP489_MULTI_PHASE_INIT static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/ static int __pyx_pymod_exec__cwt(PyObject* module); /*proto*/ static PyModuleDef_Slot __pyx_moduledef_slots[] = { {Py_mod_create, (void*)__pyx_pymod_create}, {Py_mod_exec, (void*)__pyx_pymod_exec__cwt}, {0, NULL} }; #endif static struct PyModuleDef __pyx_moduledef = { PyModuleDef_HEAD_INIT, "_cwt", 0, /* m_doc */ #if CYTHON_PEP489_MULTI_PHASE_INIT 0, /* m_size */ #else -1, /* m_size */ #endif __pyx_methods /* m_methods */, #if CYTHON_PEP489_MULTI_PHASE_INIT __pyx_moduledef_slots, /* m_slots */ #else NULL, /* m_reload */ #endif NULL, /* m_traverse */ NULL, /* m_clear */ NULL /* m_free */ }; #endif #ifndef CYTHON_SMALL_CODE #if defined(__clang__) #define CYTHON_SMALL_CODE #elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) #define CYTHON_SMALL_CODE __attribute__((cold)) #else #define CYTHON_SMALL_CODE #endif #endif static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_kp_s_, __pyx_k_, sizeof(__pyx_k_), 0, 0, 1, 0}, {&__pyx_n_s_ASCII, __pyx_k_ASCII, sizeof(__pyx_k_ASCII), 0, 0, 1, 1}, {&__pyx_kp_s_Buffer_view_does_not_expose_stri, __pyx_k_Buffer_view_does_not_expose_stri, sizeof(__pyx_k_Buffer_view_does_not_expose_stri), 0, 0, 1, 0}, {&__pyx_kp_s_Can_only_create_a_buffer_that_is, __pyx_k_Can_only_create_a_buffer_that_is, sizeof(__pyx_k_Can_only_create_a_buffer_that_is), 0, 0, 1, 0}, {&__pyx_kp_s_Cannot_assign_to_read_only_memor, __pyx_k_Cannot_assign_to_read_only_memor, sizeof(__pyx_k_Cannot_assign_to_read_only_memor), 0, 0, 1, 0}, {&__pyx_kp_s_Cannot_create_writable_memory_vi, __pyx_k_Cannot_create_writable_memory_vi, sizeof(__pyx_k_Cannot_create_writable_memory_vi), 0, 0, 1, 0}, {&__pyx_kp_s_Cannot_index_with_type_s, __pyx_k_Cannot_index_with_type_s, sizeof(__pyx_k_Cannot_index_with_type_s), 0, 0, 1, 0}, {&__pyx_n_s_Ellipsis, __pyx_k_Ellipsis, sizeof(__pyx_k_Ellipsis), 0, 0, 1, 1}, {&__pyx_kp_s_Empty_shape_tuple_for_cython_arr, __pyx_k_Empty_shape_tuple_for_cython_arr, sizeof(__pyx_k_Empty_shape_tuple_for_cython_arr), 0, 0, 1, 0}, {&__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_k_Expected_at_least_d_argument_s_g, sizeof(__pyx_k_Expected_at_least_d_argument_s_g), 0, 0, 1, 0}, {&__pyx_kp_u_Format_string_allocated_too_shor, __pyx_k_Format_string_allocated_too_shor, sizeof(__pyx_k_Format_string_allocated_too_shor), 0, 1, 0, 0}, {&__pyx_kp_u_Format_string_allocated_too_shor_2, __pyx_k_Format_string_allocated_too_shor_2, sizeof(__pyx_k_Format_string_allocated_too_shor_2), 0, 1, 0, 0}, {&__pyx_kp_s_Function_call_with_ambiguous_arg, __pyx_k_Function_call_with_ambiguous_arg, sizeof(__pyx_k_Function_call_with_ambiguous_arg), 0, 0, 1, 0}, {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, {&__pyx_kp_s_Incompatible_checksums_s_vs_0xb0, __pyx_k_Incompatible_checksums_s_vs_0xb0, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xb0), 0, 0, 1, 0}, {&__pyx_n_s_IndexError, __pyx_k_IndexError, sizeof(__pyx_k_IndexError), 0, 0, 1, 1}, {&__pyx_kp_s_Indirect_dimensions_not_supporte, __pyx_k_Indirect_dimensions_not_supporte, sizeof(__pyx_k_Indirect_dimensions_not_supporte), 0, 0, 1, 0}, {&__pyx_kp_s_Invalid_mode_expected_c_or_fortr, __pyx_k_Invalid_mode_expected_c_or_fortr, sizeof(__pyx_k_Invalid_mode_expected_c_or_fortr), 0, 0, 1, 0}, {&__pyx_kp_u_Invalid_output_length, __pyx_k_Invalid_output_length, sizeof(__pyx_k_Invalid_output_length), 0, 1, 0, 0}, {&__pyx_kp_s_Invalid_shape_in_axis_d_d, __pyx_k_Invalid_shape_in_axis_d_d, sizeof(__pyx_k_Invalid_shape_in_axis_d_d), 0, 0, 1, 0}, {&__pyx_n_s_MemoryError, __pyx_k_MemoryError, sizeof(__pyx_k_MemoryError), 0, 0, 1, 1}, {&__pyx_kp_s_MemoryView_of_r_at_0x_x, __pyx_k_MemoryView_of_r_at_0x_x, sizeof(__pyx_k_MemoryView_of_r_at_0x_x), 0, 0, 1, 0}, {&__pyx_kp_s_MemoryView_of_r_object, __pyx_k_MemoryView_of_r_object, sizeof(__pyx_k_MemoryView_of_r_object), 0, 0, 1, 0}, {&__pyx_kp_s_No_matching_signature_found, __pyx_k_No_matching_signature_found, sizeof(__pyx_k_No_matching_signature_found), 0, 0, 1, 0}, {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0}, {&__pyx_n_b_O, __pyx_k_O, sizeof(__pyx_k_O), 0, 0, 0, 1}, {&__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_k_Out_of_bounds_on_buffer_access_a, sizeof(__pyx_k_Out_of_bounds_on_buffer_access_a), 0, 0, 1, 0}, {&__pyx_n_s_PickleError, __pyx_k_PickleError, sizeof(__pyx_k_PickleError), 0, 0, 1, 1}, {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, {&__pyx_kp_s_Unable_to_convert_item_to_object, __pyx_k_Unable_to_convert_item_to_object, sizeof(__pyx_k_Unable_to_convert_item_to_object), 0, 0, 1, 0}, {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, {&__pyx_n_s_View_MemoryView, __pyx_k_View_MemoryView, sizeof(__pyx_k_View_MemoryView), 0, 0, 1, 1}, {&__pyx_kp_s__2, __pyx_k__2, sizeof(__pyx_k__2), 0, 0, 1, 0}, {&__pyx_n_s_allocate_buffer, __pyx_k_allocate_buffer, sizeof(__pyx_k_allocate_buffer), 0, 0, 1, 1}, {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1}, {&__pyx_n_s_bandwidth_frequency, __pyx_k_bandwidth_frequency, sizeof(__pyx_k_bandwidth_frequency), 0, 0, 1, 1}, {&__pyx_n_s_base, __pyx_k_base, sizeof(__pyx_k_base), 0, 0, 1, 1}, {&__pyx_n_s_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 0, 1, 1}, {&__pyx_n_u_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 1, 0, 1}, {&__pyx_n_s_center_frequency, __pyx_k_center_frequency, sizeof(__pyx_k_center_frequency), 0, 0, 1, 1}, {&__pyx_n_u_cgau, __pyx_k_cgau, sizeof(__pyx_k_cgau), 0, 1, 0, 1}, {&__pyx_n_s_class, __pyx_k_class, sizeof(__pyx_k_class), 0, 0, 1, 1}, {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, {&__pyx_n_u_cmor, __pyx_k_cmor, sizeof(__pyx_k_cmor), 0, 1, 0, 1}, {&__pyx_kp_s_contiguous_and_direct, __pyx_k_contiguous_and_direct, sizeof(__pyx_k_contiguous_and_direct), 0, 0, 1, 0}, {&__pyx_kp_s_contiguous_and_indirect, __pyx_k_contiguous_and_indirect, sizeof(__pyx_k_contiguous_and_indirect), 0, 0, 1, 0}, {&__pyx_n_s_cwt_psi_single, __pyx_k_cwt_psi_single, sizeof(__pyx_k_cwt_psi_single), 0, 0, 1, 1}, {&__pyx_n_s_data, __pyx_k_data, sizeof(__pyx_k_data), 0, 0, 1, 1}, {&__pyx_n_s_defaults, __pyx_k_defaults, sizeof(__pyx_k_defaults), 0, 0, 1, 1}, {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1}, {&__pyx_n_s_dtype, __pyx_k_dtype, sizeof(__pyx_k_dtype), 0, 0, 1, 1}, {&__pyx_n_s_dtype_is_object, __pyx_k_dtype_is_object, sizeof(__pyx_k_dtype_is_object), 0, 0, 1, 1}, {&__pyx_n_s_encode, __pyx_k_encode, sizeof(__pyx_k_encode), 0, 0, 1, 1}, {&__pyx_n_s_enumerate, __pyx_k_enumerate, sizeof(__pyx_k_enumerate), 0, 0, 1, 1}, {&__pyx_n_s_error, __pyx_k_error, sizeof(__pyx_k_error), 0, 0, 1, 1}, {&__pyx_n_s_family_number, __pyx_k_family_number, sizeof(__pyx_k_family_number), 0, 0, 1, 1}, {&__pyx_n_u_fbsp, __pyx_k_fbsp, sizeof(__pyx_k_fbsp), 0, 1, 0, 1}, {&__pyx_n_s_fbsp_order, __pyx_k_fbsp_order, sizeof(__pyx_k_fbsp_order), 0, 0, 1, 1}, {&__pyx_n_s_flags, __pyx_k_flags, sizeof(__pyx_k_flags), 0, 0, 1, 1}, {&__pyx_n_s_float32, __pyx_k_float32, sizeof(__pyx_k_float32), 0, 0, 1, 1}, {&__pyx_n_s_float32_t, __pyx_k_float32_t, sizeof(__pyx_k_float32_t), 0, 0, 1, 1}, {&__pyx_n_s_float64, __pyx_k_float64, sizeof(__pyx_k_float64), 0, 0, 1, 1}, {&__pyx_n_s_float64_t, __pyx_k_float64_t, sizeof(__pyx_k_float64_t), 0, 0, 1, 1}, {&__pyx_n_s_format, __pyx_k_format, sizeof(__pyx_k_format), 0, 0, 1, 1}, {&__pyx_n_s_fortran, __pyx_k_fortran, sizeof(__pyx_k_fortran), 0, 0, 1, 1}, {&__pyx_n_u_fortran, __pyx_k_fortran, sizeof(__pyx_k_fortran), 0, 1, 0, 1}, {&__pyx_n_u_gaus, __pyx_k_gaus, sizeof(__pyx_k_gaus), 0, 1, 0, 1}, {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1}, {&__pyx_kp_s_got_differing_extents_in_dimensi, __pyx_k_got_differing_extents_in_dimensi, sizeof(__pyx_k_got_differing_extents_in_dimensi), 0, 0, 1, 0}, {&__pyx_n_s_id, __pyx_k_id, sizeof(__pyx_k_id), 0, 0, 1, 1}, {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, {&__pyx_n_s_itemsize, __pyx_k_itemsize, sizeof(__pyx_k_itemsize), 0, 0, 1, 1}, {&__pyx_kp_s_itemsize_0_for_cython_array, __pyx_k_itemsize_0_for_cython_array, sizeof(__pyx_k_itemsize_0_for_cython_array), 0, 0, 1, 0}, {&__pyx_n_s_kind, __pyx_k_kind, sizeof(__pyx_k_kind), 0, 0, 1, 1}, {&__pyx_n_s_kwargs, __pyx_k_kwargs, sizeof(__pyx_k_kwargs), 0, 0, 1, 1}, {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, {&__pyx_n_s_memview, __pyx_k_memview, sizeof(__pyx_k_memview), 0, 0, 1, 1}, {&__pyx_n_u_mexh, __pyx_k_mexh, sizeof(__pyx_k_mexh), 0, 1, 0, 1}, {&__pyx_n_s_mode, __pyx_k_mode, sizeof(__pyx_k_mode), 0, 0, 1, 1}, {&__pyx_n_u_morl, __pyx_k_morl, sizeof(__pyx_k_morl), 0, 1, 0, 1}, {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1}, {&__pyx_kp_u_ndarray_is_not_C_contiguous, __pyx_k_ndarray_is_not_C_contiguous, sizeof(__pyx_k_ndarray_is_not_C_contiguous), 0, 1, 0, 0}, {&__pyx_kp_u_ndarray_is_not_Fortran_contiguou, __pyx_k_ndarray_is_not_Fortran_contiguou, sizeof(__pyx_k_ndarray_is_not_Fortran_contiguou), 0, 1, 0, 0}, {&__pyx_n_s_ndim, __pyx_k_ndim, sizeof(__pyx_k_ndim), 0, 0, 1, 1}, {&__pyx_n_s_new, __pyx_k_new, sizeof(__pyx_k_new), 0, 0, 1, 1}, {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0}, {&__pyx_n_s_np, __pyx_k_np, sizeof(__pyx_k_np), 0, 0, 1, 1}, {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1}, {&__pyx_kp_u_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 1, 0, 0}, {&__pyx_kp_u_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 1, 0, 0}, {&__pyx_n_s_obj, __pyx_k_obj, sizeof(__pyx_k_obj), 0, 0, 1, 1}, {&__pyx_n_s_output_len, __pyx_k_output_len, sizeof(__pyx_k_output_len), 0, 0, 1, 1}, {&__pyx_n_s_pack, __pyx_k_pack, sizeof(__pyx_k_pack), 0, 0, 1, 1}, {&__pyx_n_s_pickle, __pyx_k_pickle, sizeof(__pyx_k_pickle), 0, 0, 1, 1}, {&__pyx_n_s_pywt__extensions__cwt, __pyx_k_pywt__extensions__cwt, sizeof(__pyx_k_pywt__extensions__cwt), 0, 0, 1, 1}, {&__pyx_kp_s_pywt__extensions__cwt_pyx, __pyx_k_pywt__extensions__cwt_pyx, sizeof(__pyx_k_pywt__extensions__cwt_pyx), 0, 0, 1, 0}, {&__pyx_n_s_pyx_PickleError, __pyx_k_pyx_PickleError, sizeof(__pyx_k_pyx_PickleError), 0, 0, 1, 1}, {&__pyx_n_s_pyx_checksum, __pyx_k_pyx_checksum, sizeof(__pyx_k_pyx_checksum), 0, 0, 1, 1}, {&__pyx_n_s_pyx_fuse_0cwt_psi_single, __pyx_k_pyx_fuse_0cwt_psi_single, sizeof(__pyx_k_pyx_fuse_0cwt_psi_single), 0, 0, 1, 1}, {&__pyx_n_s_pyx_fuse_1cwt_psi_single, __pyx_k_pyx_fuse_1cwt_psi_single, sizeof(__pyx_k_pyx_fuse_1cwt_psi_single), 0, 0, 1, 1}, {&__pyx_n_s_pyx_getbuffer, __pyx_k_pyx_getbuffer, sizeof(__pyx_k_pyx_getbuffer), 0, 0, 1, 1}, {&__pyx_n_s_pyx_result, __pyx_k_pyx_result, sizeof(__pyx_k_pyx_result), 0, 0, 1, 1}, {&__pyx_n_s_pyx_state, __pyx_k_pyx_state, sizeof(__pyx_k_pyx_state), 0, 0, 1, 1}, {&__pyx_n_s_pyx_type, __pyx_k_pyx_type, sizeof(__pyx_k_pyx_type), 0, 0, 1, 1}, {&__pyx_n_s_pyx_unpickle_Enum, __pyx_k_pyx_unpickle_Enum, sizeof(__pyx_k_pyx_unpickle_Enum), 0, 0, 1, 1}, {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, {&__pyx_n_s_s, __pyx_k_s, sizeof(__pyx_k_s), 0, 0, 1, 1}, {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, {&__pyx_n_u_shan, __pyx_k_shan, sizeof(__pyx_k_shan), 0, 1, 0, 1}, {&__pyx_n_s_shape, __pyx_k_shape, sizeof(__pyx_k_shape), 0, 0, 1, 1}, {&__pyx_n_s_short_family_name, __pyx_k_short_family_name, sizeof(__pyx_k_short_family_name), 0, 0, 1, 1}, {&__pyx_n_s_signatures, __pyx_k_signatures, sizeof(__pyx_k_signatures), 0, 0, 1, 1}, {&__pyx_n_s_size, __pyx_k_size, sizeof(__pyx_k_size), 0, 0, 1, 1}, {&__pyx_n_s_split, __pyx_k_split, sizeof(__pyx_k_split), 0, 0, 1, 1}, {&__pyx_n_s_start, __pyx_k_start, sizeof(__pyx_k_start), 0, 0, 1, 1}, {&__pyx_n_s_step, __pyx_k_step, sizeof(__pyx_k_step), 0, 0, 1, 1}, {&__pyx_n_s_stop, __pyx_k_stop, sizeof(__pyx_k_stop), 0, 0, 1, 1}, {&__pyx_kp_s_strided_and_direct, __pyx_k_strided_and_direct, sizeof(__pyx_k_strided_and_direct), 0, 0, 1, 0}, {&__pyx_kp_s_strided_and_direct_or_indirect, __pyx_k_strided_and_direct_or_indirect, sizeof(__pyx_k_strided_and_direct_or_indirect), 0, 0, 1, 0}, {&__pyx_kp_s_strided_and_indirect, __pyx_k_strided_and_indirect, sizeof(__pyx_k_strided_and_indirect), 0, 0, 1, 0}, {&__pyx_kp_s_stringsource, __pyx_k_stringsource, sizeof(__pyx_k_stringsource), 0, 0, 1, 0}, {&__pyx_n_s_strip, __pyx_k_strip, sizeof(__pyx_k_strip), 0, 0, 1, 1}, {&__pyx_n_s_struct, __pyx_k_struct, sizeof(__pyx_k_struct), 0, 0, 1, 1}, {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, {&__pyx_kp_s_unable_to_allocate_array_data, __pyx_k_unable_to_allocate_array_data, sizeof(__pyx_k_unable_to_allocate_array_data), 0, 0, 1, 0}, {&__pyx_kp_s_unable_to_allocate_shape_and_str, __pyx_k_unable_to_allocate_shape_and_str, sizeof(__pyx_k_unable_to_allocate_shape_and_str), 0, 0, 1, 0}, {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0}, {&__pyx_n_s_unpack, __pyx_k_unpack, sizeof(__pyx_k_unpack), 0, 0, 1, 1}, {&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1}, {&__pyx_n_s_wavelet, __pyx_k_wavelet, sizeof(__pyx_k_wavelet), 0, 0, 1, 1}, {&__pyx_n_s_zeros, __pyx_k_zeros, sizeof(__pyx_k_zeros), 0, 0, 1, 1}, {0, 0, 0, 0, 0, 0, 0} }; static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 13, __pyx_L1_error) __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 13, __pyx_L1_error) __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(0, 21, __pyx_L1_error) __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(1, 272, __pyx_L1_error) __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 1038, __pyx_L1_error) __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s_MemoryError); if (!__pyx_builtin_MemoryError) __PYX_ERR(2, 148, __pyx_L1_error) __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(2, 151, __pyx_L1_error) __pyx_builtin_Ellipsis = __Pyx_GetBuiltinName(__pyx_n_s_Ellipsis); if (!__pyx_builtin_Ellipsis) __PYX_ERR(2, 404, __pyx_L1_error) __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_n_s_id); if (!__pyx_builtin_id) __PYX_ERR(2, 613, __pyx_L1_error) __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) __PYX_ERR(2, 832, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; } static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); /* "pywt/_extensions/_cwt.pyx":13 * * * cpdef cwt_psi_single(data_t[::1] data, ContinuousWavelet wavelet, size_t output_len): # <<<<<<<<<<<<<< * cdef np.ndarray psi, psi_r, psi_i * cdef size_t data_size = data.size */ __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_No_matching_signature_found); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__3); __Pyx_GIVEREF(__pyx_tuple__3); __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_Function_call_with_ambiguous_arg); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__4); __Pyx_GIVEREF(__pyx_tuple__4); /* "pywt/_extensions/_cwt.pyx":21 * cdef int fbsp_order * if output_len < 1: * raise RuntimeError("Invalid output length.") # <<<<<<<<<<<<<< * * #if data_t is np.float64_t: */ __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_u_Invalid_output_length); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(0, 21, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__5); __Pyx_GIVEREF(__pyx_tuple__5); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":272 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) */ __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(1, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__6); __Pyx_GIVEREF(__pyx_tuple__6); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":276 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< * * info.buf = PyArray_DATA(self) */ __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(1, 276, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__7); __Pyx_GIVEREF(__pyx_tuple__7); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":306 * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" */ __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(1, 306, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__8); __Pyx_GIVEREF(__pyx_tuple__8); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":856 * * if (end - f) - (new_offset - offset[0]) < 15: * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") # <<<<<<<<<<<<<< * * if ((child.byteorder == c'>' and little_endian) or */ __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(1, 856, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__9); __Pyx_GIVEREF(__pyx_tuple__9); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":880 * t = child.type_num * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< * * # Until ticket #99 is fixed, use integers to avoid warnings */ __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(1, 880, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__10); __Pyx_GIVEREF(__pyx_tuple__10); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1038 * _import_array() * except Exception: * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< * * cdef inline int import_umath() except -1: */ __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_u_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(1, 1038, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__11); __Pyx_GIVEREF(__pyx_tuple__11); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1044 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< * * cdef inline int import_ufunc() except -1: */ __pyx_tuple__12 = PyTuple_Pack(1, __pyx_kp_u_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(1, 1044, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__12); __Pyx_GIVEREF(__pyx_tuple__12); /* "View.MemoryView":133 * * if not self.ndim: * raise ValueError("Empty shape tuple for cython.array") # <<<<<<<<<<<<<< * * if itemsize <= 0: */ __pyx_tuple__13 = PyTuple_Pack(1, __pyx_kp_s_Empty_shape_tuple_for_cython_arr); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(2, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__13); __Pyx_GIVEREF(__pyx_tuple__13); /* "View.MemoryView":136 * * if itemsize <= 0: * raise ValueError("itemsize <= 0 for cython.array") # <<<<<<<<<<<<<< * * if not isinstance(format, bytes): */ __pyx_tuple__14 = PyTuple_Pack(1, __pyx_kp_s_itemsize_0_for_cython_array); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(2, 136, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__14); __Pyx_GIVEREF(__pyx_tuple__14); /* "View.MemoryView":148 * * if not self._shape: * raise MemoryError("unable to allocate shape and strides.") # <<<<<<<<<<<<<< * * */ __pyx_tuple__15 = PyTuple_Pack(1, __pyx_kp_s_unable_to_allocate_shape_and_str); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(2, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__15); __Pyx_GIVEREF(__pyx_tuple__15); /* "View.MemoryView":176 * self.data = malloc(self.len) * if not self.data: * raise MemoryError("unable to allocate array data.") # <<<<<<<<<<<<<< * * if self.dtype_is_object: */ __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_s_unable_to_allocate_array_data); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(2, 176, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__16); __Pyx_GIVEREF(__pyx_tuple__16); /* "View.MemoryView":192 * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): * raise ValueError("Can only create a buffer that is contiguous in memory.") # <<<<<<<<<<<<<< * info.buf = self.data * info.len = self.len */ __pyx_tuple__17 = PyTuple_Pack(1, __pyx_kp_s_Can_only_create_a_buffer_that_is); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(2, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__17); __Pyx_GIVEREF(__pyx_tuple__17); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(2, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__18); __Pyx_GIVEREF(__pyx_tuple__18); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ __pyx_tuple__19 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(2, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__19); __Pyx_GIVEREF(__pyx_tuple__19); /* "View.MemoryView":418 * def __setitem__(memoryview self, object index, object value): * if self.view.readonly: * raise TypeError("Cannot assign to read-only memoryview") # <<<<<<<<<<<<<< * * have_slices, index = _unellipsify(index, self.view.ndim) */ __pyx_tuple__20 = PyTuple_Pack(1, __pyx_kp_s_Cannot_assign_to_read_only_memor); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(2, 418, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__20); __Pyx_GIVEREF(__pyx_tuple__20); /* "View.MemoryView":495 * result = struct.unpack(self.view.format, bytesitem) * except struct.error: * raise ValueError("Unable to convert item to object") # <<<<<<<<<<<<<< * else: * if len(self.view.format) == 1: */ __pyx_tuple__21 = PyTuple_Pack(1, __pyx_kp_s_Unable_to_convert_item_to_object); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(2, 495, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__21); __Pyx_GIVEREF(__pyx_tuple__21); /* "View.MemoryView":520 * def __getbuffer__(self, Py_buffer *info, int flags): * if flags & PyBUF_WRITABLE and self.view.readonly: * raise ValueError("Cannot create writable memory view from read-only memoryview") # <<<<<<<<<<<<<< * * if flags & PyBUF_ND: */ __pyx_tuple__22 = PyTuple_Pack(1, __pyx_kp_s_Cannot_create_writable_memory_vi); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(2, 520, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__22); __Pyx_GIVEREF(__pyx_tuple__22); /* "View.MemoryView":570 * if self.view.strides == NULL: * * raise ValueError("Buffer view does not expose strides") # <<<<<<<<<<<<<< * * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) */ __pyx_tuple__23 = PyTuple_Pack(1, __pyx_kp_s_Buffer_view_does_not_expose_stri); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(2, 570, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__23); __Pyx_GIVEREF(__pyx_tuple__23); /* "View.MemoryView":577 * def suboffsets(self): * if self.view.suboffsets == NULL: * return (-1,) * self.view.ndim # <<<<<<<<<<<<<< * * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]]) */ __pyx_tuple__24 = PyTuple_New(1); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(2, 577, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__24); __Pyx_INCREF(__pyx_int_neg_1); __Pyx_GIVEREF(__pyx_int_neg_1); PyTuple_SET_ITEM(__pyx_tuple__24, 0, __pyx_int_neg_1); __Pyx_GIVEREF(__pyx_tuple__24); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ __pyx_tuple__25 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(2, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__25); __Pyx_GIVEREF(__pyx_tuple__25); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ __pyx_tuple__26 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(2, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__26); __Pyx_GIVEREF(__pyx_tuple__26); /* "View.MemoryView":682 * if item is Ellipsis: * if not seen_ellipsis: * result.extend([slice(None)] * (ndim - len(tup) + 1)) # <<<<<<<<<<<<<< * seen_ellipsis = True * else: */ __pyx_slice__27 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__27)) __PYX_ERR(2, 682, __pyx_L1_error) __Pyx_GOTREF(__pyx_slice__27); __Pyx_GIVEREF(__pyx_slice__27); /* "View.MemoryView":703 * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: * raise ValueError("Indirect dimensions not supported") # <<<<<<<<<<<<<< * * */ __pyx_tuple__28 = PyTuple_Pack(1, __pyx_kp_s_Indirect_dimensions_not_supporte); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(2, 703, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__28); __Pyx_GIVEREF(__pyx_tuple__28); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ __pyx_tuple__29 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(2, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__29); __Pyx_GIVEREF(__pyx_tuple__29); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ __pyx_tuple__30 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(2, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__30); __Pyx_GIVEREF(__pyx_tuple__30); /* "pywt/_extensions/_cwt.pyx":13 * * * cpdef cwt_psi_single(data_t[::1] data, ContinuousWavelet wavelet, size_t output_len): # <<<<<<<<<<<<<< * cdef np.ndarray psi, psi_r, psi_i * cdef size_t data_size = data.size */ __pyx_tuple__31 = PyTuple_Pack(3, __pyx_n_s_data, __pyx_n_s_wavelet, __pyx_n_s_output_len); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__31); __Pyx_GIVEREF(__pyx_tuple__31); __pyx_codeobj__32 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__31, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pywt__extensions__cwt_pyx, __pyx_n_s_pyx_fuse_0cwt_psi_single, 13, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__32)) __PYX_ERR(0, 13, __pyx_L1_error) /* "View.MemoryView":286 * return self.name * * cdef generic = Enum("") # <<<<<<<<<<<<<< * cdef strided = Enum("") # default * cdef indirect = Enum("") */ __pyx_tuple__33 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct_or_indirect); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(2, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__33); __Pyx_GIVEREF(__pyx_tuple__33); /* "View.MemoryView":287 * * cdef generic = Enum("") * cdef strided = Enum("") # default # <<<<<<<<<<<<<< * cdef indirect = Enum("") * */ __pyx_tuple__34 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(2, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__34); __Pyx_GIVEREF(__pyx_tuple__34); /* "View.MemoryView":288 * cdef generic = Enum("") * cdef strided = Enum("") # default * cdef indirect = Enum("") # <<<<<<<<<<<<<< * * */ __pyx_tuple__35 = PyTuple_Pack(1, __pyx_kp_s_strided_and_indirect); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(2, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__35); __Pyx_GIVEREF(__pyx_tuple__35); /* "View.MemoryView":291 * * * cdef contiguous = Enum("") # <<<<<<<<<<<<<< * cdef indirect_contiguous = Enum("") * */ __pyx_tuple__36 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_direct); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(2, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__36); __Pyx_GIVEREF(__pyx_tuple__36); /* "View.MemoryView":292 * * cdef contiguous = Enum("") * cdef indirect_contiguous = Enum("") # <<<<<<<<<<<<<< * * */ __pyx_tuple__37 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_indirect); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(2, 292, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__37); __Pyx_GIVEREF(__pyx_tuple__37); /* "(tree fragment)":1 * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_PickleError * cdef object __pyx_result */ __pyx_tuple__38 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__38); __Pyx_GIVEREF(__pyx_tuple__38); __pyx_codeobj__39 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__38, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Enum, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__39)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_RefNannyFinishContext(); return -1; } static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error); __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_184977713 = PyInt_FromLong(184977713L); if (unlikely(!__pyx_int_184977713)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) __PYX_ERR(0, 1, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; } static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/ static int __Pyx_modinit_global_init_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0); /*--- Global init code ---*/ generic = Py_None; Py_INCREF(Py_None); strided = Py_None; Py_INCREF(Py_None); indirect = Py_None; Py_INCREF(Py_None); contiguous = Py_None; Py_INCREF(Py_None); indirect_contiguous = Py_None; Py_INCREF(Py_None); __Pyx_RefNannyFinishContext(); return 0; } static int __Pyx_modinit_variable_export_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0); /*--- Variable export code ---*/ __Pyx_RefNannyFinishContext(); return 0; } static int __Pyx_modinit_function_export_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); /*--- Function export code ---*/ if (__Pyx_ExportFunction("__pyx_fuse_0cwt_psi_single", (void (*)(void))__pyx_fuse_0__pyx_f_4pywt_11_extensions_4_cwt_cwt_psi_single, "PyObject *(__Pyx_memviewslice, struct ContinuousWaveletObject *, size_t, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error) if (__Pyx_ExportFunction("__pyx_fuse_1cwt_psi_single", (void (*)(void))__pyx_fuse_1__pyx_f_4pywt_11_extensions_4_cwt_cwt_psi_single, "PyObject *(__Pyx_memviewslice, struct ContinuousWaveletObject *, size_t, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_RefNannyFinishContext(); return -1; } static int __Pyx_modinit_type_init_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); /*--- Type init code ---*/ __pyx_vtabptr_array = &__pyx_vtable_array; __pyx_vtable_array.get_memview = (PyObject *(*)(struct __pyx_array_obj *))__pyx_array_get_memview; if (PyType_Ready(&__pyx_type___pyx_array) < 0) __PYX_ERR(2, 105, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type___pyx_array.tp_print = 0; #endif if (__Pyx_SetVtable(__pyx_type___pyx_array.tp_dict, __pyx_vtabptr_array) < 0) __PYX_ERR(2, 105, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_array) < 0) __PYX_ERR(2, 105, __pyx_L1_error) __pyx_array_type = &__pyx_type___pyx_array; if (PyType_Ready(&__pyx_type___pyx_MemviewEnum) < 0) __PYX_ERR(2, 279, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type___pyx_MemviewEnum.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type___pyx_MemviewEnum.tp_dictoffset && __pyx_type___pyx_MemviewEnum.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type___pyx_MemviewEnum.tp_getattro = __Pyx_PyObject_GenericGetAttr; } if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_MemviewEnum) < 0) __PYX_ERR(2, 279, __pyx_L1_error) __pyx_MemviewEnum_type = &__pyx_type___pyx_MemviewEnum; __pyx_vtabptr_memoryview = &__pyx_vtable_memoryview; __pyx_vtable_memoryview.get_item_pointer = (char *(*)(struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_get_item_pointer; __pyx_vtable_memoryview.is_slice = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_is_slice; __pyx_vtable_memoryview.setitem_slice_assignment = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *, PyObject *))__pyx_memoryview_setitem_slice_assignment; __pyx_vtable_memoryview.setitem_slice_assign_scalar = (PyObject *(*)(struct __pyx_memoryview_obj *, struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_setitem_slice_assign_scalar; __pyx_vtable_memoryview.setitem_indexed = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *, PyObject *))__pyx_memoryview_setitem_indexed; __pyx_vtable_memoryview.convert_item_to_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *))__pyx_memoryview_convert_item_to_object; __pyx_vtable_memoryview.assign_item_from_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *, PyObject *))__pyx_memoryview_assign_item_from_object; if (PyType_Ready(&__pyx_type___pyx_memoryview) < 0) __PYX_ERR(2, 330, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type___pyx_memoryview.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type___pyx_memoryview.tp_dictoffset && __pyx_type___pyx_memoryview.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type___pyx_memoryview.tp_getattro = __Pyx_PyObject_GenericGetAttr; } if (__Pyx_SetVtable(__pyx_type___pyx_memoryview.tp_dict, __pyx_vtabptr_memoryview) < 0) __PYX_ERR(2, 330, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_memoryview) < 0) __PYX_ERR(2, 330, __pyx_L1_error) __pyx_memoryview_type = &__pyx_type___pyx_memoryview; __pyx_vtabptr__memoryviewslice = &__pyx_vtable__memoryviewslice; __pyx_vtable__memoryviewslice.__pyx_base = *__pyx_vtabptr_memoryview; __pyx_vtable__memoryviewslice.__pyx_base.convert_item_to_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *))__pyx_memoryviewslice_convert_item_to_object; __pyx_vtable__memoryviewslice.__pyx_base.assign_item_from_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *, PyObject *))__pyx_memoryviewslice_assign_item_from_object; __pyx_type___pyx_memoryviewslice.tp_base = __pyx_memoryview_type; if (PyType_Ready(&__pyx_type___pyx_memoryviewslice) < 0) __PYX_ERR(2, 965, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type___pyx_memoryviewslice.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type___pyx_memoryviewslice.tp_dictoffset && __pyx_type___pyx_memoryviewslice.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type___pyx_memoryviewslice.tp_getattro = __Pyx_PyObject_GenericGetAttr; } if (__Pyx_SetVtable(__pyx_type___pyx_memoryviewslice.tp_dict, __pyx_vtabptr__memoryviewslice) < 0) __PYX_ERR(2, 965, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_memoryviewslice) < 0) __PYX_ERR(2, 965, __pyx_L1_error) __pyx_memoryviewslice_type = &__pyx_type___pyx_memoryviewslice; __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_RefNannyFinishContext(); return -1; } static int __Pyx_modinit_type_import_code(void) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); /*--- Type import code ---*/ __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type", #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 sizeof(PyTypeObject), #else sizeof(PyHeapTypeObject), #endif __Pyx_ImportType_CheckSize_Warn); if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(3, 9, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore); if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(1, 206, __pyx_L1_error) __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Warn); if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(1, 229, __pyx_L1_error) __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Warn); if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(1, 233, __pyx_L1_error) __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore); if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(1, 242, __pyx_L1_error) __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Warn); if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(1, 918, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyImport_ImportModule("pywt._extensions._pywt"); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 23, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet = __Pyx_ImportType(__pyx_t_1, "pywt._extensions._pywt", "Wavelet", sizeof(struct WaveletObject), __Pyx_ImportType_CheckSize_Warn); if (!__pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet) __PYX_ERR(4, 23, __pyx_L1_error) __pyx_ptype_4pywt_11_extensions_5_pywt_ContinuousWavelet = __Pyx_ImportType(__pyx_t_1, "pywt._extensions._pywt", "ContinuousWavelet", sizeof(struct ContinuousWaveletObject), __Pyx_ImportType_CheckSize_Warn); if (!__pyx_ptype_4pywt_11_extensions_5_pywt_ContinuousWavelet) __PYX_ERR(4, 29, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); return -1; } static int __Pyx_modinit_variable_import_code(void) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0); /*--- Variable import code ---*/ __pyx_t_1 = PyImport_ImportModule("pywt._extensions._pywt"); if (!__pyx_t_1) __PYX_ERR(0, 1, __pyx_L1_error) if (__Pyx_ImportVoidPtr(__pyx_t_1, "have_c99_complex", (void **)&__pyx_vp_4pywt_11_extensions_5_pywt_have_c99_complex, "int") < 0) __PYX_ERR(0, 1, __pyx_L1_error) Py_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); return -1; } static int __Pyx_modinit_function_import_code(void) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); /*--- Function import code ---*/ __pyx_t_1 = PyImport_ImportModule("pywt._extensions._pywt"); if (!__pyx_t_1) __PYX_ERR(0, 1, __pyx_L1_error) if (__Pyx_ImportFunction(__pyx_t_1, "_check_dtype", (void (**)(void))&__pyx_f_4pywt_11_extensions_5_pywt__check_dtype, "PyArray_Descr *(PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error) Py_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); return -1; } #if PY_MAJOR_VERSION < 3 #ifdef CYTHON_NO_PYINIT_EXPORT #define __Pyx_PyMODINIT_FUNC void #else #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC #endif #else #ifdef CYTHON_NO_PYINIT_EXPORT #define __Pyx_PyMODINIT_FUNC PyObject * #else #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC #endif #endif #if PY_MAJOR_VERSION < 3 __Pyx_PyMODINIT_FUNC init_cwt(void) CYTHON_SMALL_CODE; /*proto*/ __Pyx_PyMODINIT_FUNC init_cwt(void) #else __Pyx_PyMODINIT_FUNC PyInit__cwt(void) CYTHON_SMALL_CODE; /*proto*/ __Pyx_PyMODINIT_FUNC PyInit__cwt(void) #if CYTHON_PEP489_MULTI_PHASE_INIT { return PyModuleDef_Init(&__pyx_moduledef); } static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) { #if PY_VERSION_HEX >= 0x030700A1 static PY_INT64_T main_interpreter_id = -1; PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp); if (main_interpreter_id == -1) { main_interpreter_id = current_id; return (unlikely(current_id == -1)) ? -1 : 0; } else if (unlikely(main_interpreter_id != current_id)) #else static PyInterpreterState *main_interpreter = NULL; PyInterpreterState *current_interpreter = PyThreadState_Get()->interp; if (!main_interpreter) { main_interpreter = current_interpreter; } else if (unlikely(main_interpreter != current_interpreter)) #endif { PyErr_SetString( PyExc_ImportError, "Interpreter change detected - this module can only be loaded into one interpreter per process."); return -1; } return 0; } static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) { PyObject *value = PyObject_GetAttrString(spec, from_name); int result = 0; if (likely(value)) { if (allow_none || value != Py_None) { result = PyDict_SetItemString(moddict, to_name, value); } Py_DECREF(value); } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) { PyErr_Clear(); } else { result = -1; } return result; } static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) { PyObject *module = NULL, *moddict, *modname; if (__Pyx_check_single_interpreter()) return NULL; if (__pyx_m) return __Pyx_NewRef(__pyx_m); modname = PyObject_GetAttrString(spec, "name"); if (unlikely(!modname)) goto bad; module = PyModule_NewObject(modname); Py_DECREF(modname); if (unlikely(!module)) goto bad; moddict = PyModule_GetDict(module); if (unlikely(!moddict)) goto bad; if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad; if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad; if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad; if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad; return module; bad: Py_XDECREF(module); return NULL; } static CYTHON_SMALL_CODE int __pyx_pymod_exec__cwt(PyObject *__pyx_pyinit_module) #endif #endif { PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; static PyThread_type_lock __pyx_t_4[8]; __Pyx_RefNannyDeclarations #if CYTHON_PEP489_MULTI_PHASE_INIT if (__pyx_m) { if (__pyx_m == __pyx_pyinit_module) return 0; PyErr_SetString(PyExc_RuntimeError, "Module '_cwt' has already been imported. Re-initialisation is not supported."); return -1; } #elif PY_MAJOR_VERSION >= 3 if (__pyx_m) return __Pyx_NewRef(__pyx_m); #endif #if CYTHON_REFNANNY __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); if (!__Pyx_RefNanny) { PyErr_Clear(); __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); if (!__Pyx_RefNanny) Py_FatalError("failed to import 'refnanny' module"); } #endif __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit__cwt(void)", 0); if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #ifdef __Pxy_PyFrame_Initialize_Offsets __Pxy_PyFrame_Initialize_Offsets(); #endif __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error) #ifdef __Pyx_CyFunction_USED if (__pyx_CyFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_FusedFunction_USED if (__pyx_FusedFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_Coroutine_USED if (__pyx_Coroutine_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_Generator_USED if (__pyx_Generator_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_AsyncGen_USED if (__pyx_AsyncGen_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_StopAsyncIteration_USED if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif /*--- Library function declarations ---*/ /*--- Threads initialization code ---*/ #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS #ifdef WITH_THREAD /* Python build with threading support? */ PyEval_InitThreads(); #endif #endif /*--- Module creation code ---*/ #if CYTHON_PEP489_MULTI_PHASE_INIT __pyx_m = __pyx_pyinit_module; Py_INCREF(__pyx_m); #else #if PY_MAJOR_VERSION < 3 __pyx_m = Py_InitModule4("_cwt", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); #else __pyx_m = PyModule_Create(&__pyx_moduledef); #endif if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error) #endif __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error) Py_INCREF(__pyx_d); __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error) Py_INCREF(__pyx_b); __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error) Py_INCREF(__pyx_cython_runtime); if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error); /*--- Initialize various global constants etc. ---*/ if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif if (__pyx_module_is_main_pywt___extensions___cwt) { if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name_2, __pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error) } #if PY_MAJOR_VERSION >= 3 { PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error) if (!PyDict_GetItemString(modules, "pywt._extensions._cwt")) { if (unlikely(PyDict_SetItemString(modules, "pywt._extensions._cwt", __pyx_m) < 0)) __PYX_ERR(0, 1, __pyx_L1_error) } } #endif /*--- Builtin init code ---*/ if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; /*--- Constants init code ---*/ if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; /*--- Global type/function init code ---*/ (void)__Pyx_modinit_global_init_code(); (void)__Pyx_modinit_variable_export_code(); if (unlikely(__Pyx_modinit_function_export_code() != 0)) goto __pyx_L1_error; if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; if (unlikely(__Pyx_modinit_variable_import_code() != 0)) goto __pyx_L1_error; if (unlikely(__Pyx_modinit_function_import_code() != 0)) goto __pyx_L1_error; /*--- Execution code ---*/ #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif /* "pywt/_extensions/_cwt.pyx":8 * * cimport numpy as np * import numpy as np # <<<<<<<<<<<<<< * * */ __pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_1) < 0) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_cwt.pyx":13 * * * cpdef cwt_psi_single(data_t[::1] data, ContinuousWavelet wavelet, size_t output_len): # <<<<<<<<<<<<<< * cdef np.ndarray psi, psi_r, psi_i * cdef size_t data_size = data.size */ __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0__pyx_mdef_4pywt_11_extensions_4_cwt_3__pyx_fuse_0cwt_psi_single, 0, __pyx_n_s_pyx_fuse_0cwt_psi_single, NULL, __pyx_n_s_pywt__extensions__cwt, __pyx_d, ((PyObject *)__pyx_codeobj__32)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_empty_tuple); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_float32_t, __pyx_t_2) < 0) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1__pyx_mdef_4pywt_11_extensions_4_cwt_5__pyx_fuse_1cwt_psi_single, 0, __pyx_n_s_pyx_fuse_1cwt_psi_single, NULL, __pyx_n_s_pywt__extensions__cwt, __pyx_d, ((PyObject *)__pyx_codeobj__32)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_empty_tuple); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_float64_t, __pyx_t_2) < 0) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_FusedFunction_NewEx(&__pyx_mdef_4pywt_11_extensions_4_cwt_1cwt_psi_single, 0, __pyx_n_s_cwt_psi_single, NULL, __pyx_n_s_pywt__extensions__cwt, __pyx_d, ((PyObject *)__pyx_codeobj__32)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_empty_tuple); ((__pyx_FusedFunctionObject *) __pyx_t_2)->__signatures__ = __pyx_t_1; __Pyx_GIVEREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_cwt_psi_single, __pyx_t_2) < 0) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_cwt.pyx":1 * #cython: boundscheck=False, wraparound=False # <<<<<<<<<<<<<< * from . cimport common * from . cimport c_wt */ __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_3) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":209 * info.obj = self * * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") # <<<<<<<<<<<<<< * * def __dealloc__(array self): */ __pyx_t_3 = __pyx_capsule_create(((void *)(&__pyx_array_getbuffer)), ((char *)"getbuffer(obj, view, flags)")); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem((PyObject *)__pyx_array_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_3) < 0) __PYX_ERR(2, 209, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; PyType_Modified(__pyx_array_type); /* "View.MemoryView":286 * return self.name * * cdef generic = Enum("") # <<<<<<<<<<<<<< * cdef strided = Enum("") # default * cdef indirect = Enum("") */ __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__33, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XGOTREF(generic); __Pyx_DECREF_SET(generic, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":287 * * cdef generic = Enum("") * cdef strided = Enum("") # default # <<<<<<<<<<<<<< * cdef indirect = Enum("") * */ __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__34, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XGOTREF(strided); __Pyx_DECREF_SET(strided, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":288 * cdef generic = Enum("") * cdef strided = Enum("") # default * cdef indirect = Enum("") # <<<<<<<<<<<<<< * * */ __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XGOTREF(indirect); __Pyx_DECREF_SET(indirect, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":291 * * * cdef contiguous = Enum("") # <<<<<<<<<<<<<< * cdef indirect_contiguous = Enum("") * */ __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__36, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XGOTREF(contiguous); __Pyx_DECREF_SET(contiguous, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":292 * * cdef contiguous = Enum("") * cdef indirect_contiguous = Enum("") # <<<<<<<<<<<<<< * * */ __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__37, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XGOTREF(indirect_contiguous); __Pyx_DECREF_SET(indirect_contiguous, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":316 * * DEF THREAD_LOCKS_PREALLOCATED = 8 * cdef int __pyx_memoryview_thread_locks_used = 0 # <<<<<<<<<<<<<< * cdef PyThread_type_lock[THREAD_LOCKS_PREALLOCATED] __pyx_memoryview_thread_locks = [ * PyThread_allocate_lock(), */ __pyx_memoryview_thread_locks_used = 0; /* "View.MemoryView":317 * DEF THREAD_LOCKS_PREALLOCATED = 8 * cdef int __pyx_memoryview_thread_locks_used = 0 * cdef PyThread_type_lock[THREAD_LOCKS_PREALLOCATED] __pyx_memoryview_thread_locks = [ # <<<<<<<<<<<<<< * PyThread_allocate_lock(), * PyThread_allocate_lock(), */ __pyx_t_4[0] = PyThread_allocate_lock(); __pyx_t_4[1] = PyThread_allocate_lock(); __pyx_t_4[2] = PyThread_allocate_lock(); __pyx_t_4[3] = PyThread_allocate_lock(); __pyx_t_4[4] = PyThread_allocate_lock(); __pyx_t_4[5] = PyThread_allocate_lock(); __pyx_t_4[6] = PyThread_allocate_lock(); __pyx_t_4[7] = PyThread_allocate_lock(); memcpy(&(__pyx_memoryview_thread_locks[0]), __pyx_t_4, sizeof(__pyx_memoryview_thread_locks[0]) * (8)); /* "View.MemoryView":549 * info.obj = self * * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") # <<<<<<<<<<<<<< * * */ __pyx_t_3 = __pyx_capsule_create(((void *)(&__pyx_memoryview_getbuffer)), ((char *)"getbuffer(obj, view, flags)")); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem((PyObject *)__pyx_memoryview_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_3) < 0) __PYX_ERR(2, 549, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; PyType_Modified(__pyx_memoryview_type); /* "View.MemoryView":995 * return self.from_object * * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") # <<<<<<<<<<<<<< * * */ __pyx_t_3 = __pyx_capsule_create(((void *)(&__pyx_memoryview_getbuffer)), ((char *)"getbuffer(obj, view, flags)")); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem((PyObject *)__pyx_memoryviewslice_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_3) < 0) __PYX_ERR(2, 995, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; PyType_Modified(__pyx_memoryviewslice_type); /* "(tree fragment)":1 * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_PickleError * cdef object __pyx_result */ __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_15View_dot_MemoryView_1__pyx_unpickle_Enum, NULL, __pyx_n_s_View_MemoryView); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Enum, __pyx_t_3) < 0) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "(tree fragment)":11 * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) * return __pyx_result * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< * __pyx_result.name = __pyx_state[0] * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): */ /*--- Wrapped vars code ---*/ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); if (__pyx_m) { if (__pyx_d) { __Pyx_AddTraceback("init pywt._extensions._cwt", __pyx_clineno, __pyx_lineno, __pyx_filename); } Py_CLEAR(__pyx_m); } else if (!PyErr_Occurred()) { PyErr_SetString(PyExc_ImportError, "init pywt._extensions._cwt"); } __pyx_L0:; __Pyx_RefNannyFinishContext(); #if CYTHON_PEP489_MULTI_PHASE_INIT return (__pyx_m != NULL) ? 0 : -1; #elif PY_MAJOR_VERSION >= 3 return __pyx_m; #else return; #endif } /* --- Runtime support code --- */ /* Refnanny */ #if CYTHON_REFNANNY static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { PyObject *m = NULL, *p = NULL; void *r = NULL; m = PyImport_ImportModule(modname); if (!m) goto end; p = PyObject_GetAttrString(m, "RefNannyAPI"); if (!p) goto end; r = PyLong_AsVoidPtr(p); end: Py_XDECREF(p); Py_XDECREF(m); return (__Pyx_RefNannyAPIStruct *)r; } #endif /* PyObjectGetAttrStr */ #if CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) { PyTypeObject* tp = Py_TYPE(obj); if (likely(tp->tp_getattro)) return tp->tp_getattro(obj, attr_name); #if PY_MAJOR_VERSION < 3 if (likely(tp->tp_getattr)) return tp->tp_getattr(obj, PyString_AS_STRING(attr_name)); #endif return PyObject_GetAttr(obj, attr_name); } #endif /* GetBuiltinName */ static PyObject *__Pyx_GetBuiltinName(PyObject *name) { PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name); if (unlikely(!result)) { PyErr_Format(PyExc_NameError, #if PY_MAJOR_VERSION >= 3 "name '%U' is not defined", name); #else "name '%.200s' is not defined", PyString_AS_STRING(name)); #endif } return result; } /* RaiseArgTupleInvalid */ static void __Pyx_RaiseArgtupleInvalid( const char* func_name, int exact, Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found) { Py_ssize_t num_expected; const char *more_or_less; if (num_found < num_min) { num_expected = num_min; more_or_less = "at least"; } else { num_expected = num_max; more_or_less = "at most"; } if (exact) { more_or_less = "exactly"; } PyErr_Format(PyExc_TypeError, "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)", func_name, more_or_less, num_expected, (num_expected == 1) ? "" : "s", num_found); } /* RaiseDoubleKeywords */ static void __Pyx_RaiseDoubleKeywordsError( const char* func_name, PyObject* kw_name) { PyErr_Format(PyExc_TypeError, #if PY_MAJOR_VERSION >= 3 "%s() got multiple values for keyword argument '%U'", func_name, kw_name); #else "%s() got multiple values for keyword argument '%s'", func_name, PyString_AsString(kw_name)); #endif } /* ParseKeywords */ static int __Pyx_ParseOptionalKeywords( PyObject *kwds, PyObject **argnames[], PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, const char* function_name) { PyObject *key = 0, *value = 0; Py_ssize_t pos = 0; PyObject*** name; PyObject*** first_kw_arg = argnames + num_pos_args; while (PyDict_Next(kwds, &pos, &key, &value)) { name = first_kw_arg; while (*name && (**name != key)) name++; if (*name) { values[name-argnames] = value; continue; } name = first_kw_arg; #if PY_MAJOR_VERSION < 3 if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { while (*name) { if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) && _PyString_Eq(**name, key)) { values[name-argnames] = value; break; } name++; } if (*name) continue; else { PyObject*** argname = argnames; while (argname != first_kw_arg) { if ((**argname == key) || ( (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key)) && _PyString_Eq(**argname, key))) { goto arg_passed_twice; } argname++; } } } else #endif if (likely(PyUnicode_Check(key))) { while (*name) { int cmp = (**name == key) ? 0 : #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : #endif PyUnicode_Compare(**name, key); if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; if (cmp == 0) { values[name-argnames] = value; break; } name++; } if (*name) continue; else { PyObject*** argname = argnames; while (argname != first_kw_arg) { int cmp = (**argname == key) ? 0 : #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : #endif PyUnicode_Compare(**argname, key); if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; if (cmp == 0) goto arg_passed_twice; argname++; } } } else goto invalid_keyword_type; if (kwds2) { if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; } else { goto invalid_keyword; } } return 0; arg_passed_twice: __Pyx_RaiseDoubleKeywordsError(function_name, key); goto bad; invalid_keyword_type: PyErr_Format(PyExc_TypeError, "%.200s() keywords must be strings", function_name); goto bad; invalid_keyword: PyErr_Format(PyExc_TypeError, #if PY_MAJOR_VERSION < 3 "%.200s() got an unexpected keyword argument '%.200s'", function_name, PyString_AsString(key)); #else "%s() got an unexpected keyword argument '%U'", function_name, key); #endif bad: return -1; } /* DictGetItem */ #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) { PyObject *value; value = PyDict_GetItemWithError(d, key); if (unlikely(!value)) { if (!PyErr_Occurred()) { if (unlikely(PyTuple_Check(key))) { PyObject* args = PyTuple_Pack(1, key); if (likely(args)) { PyErr_SetObject(PyExc_KeyError, args); Py_DECREF(args); } } else { PyErr_SetObject(PyExc_KeyError, key); } } return NULL; } Py_INCREF(value); return value; } #endif /* PyCFunctionFastCall */ #if CYTHON_FAST_PYCCALL static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) { PyCFunctionObject *func = (PyCFunctionObject*)func_obj; PyCFunction meth = PyCFunction_GET_FUNCTION(func); PyObject *self = PyCFunction_GET_SELF(func); int flags = PyCFunction_GET_FLAGS(func); assert(PyCFunction_Check(func)); assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))); assert(nargs >= 0); assert(nargs == 0 || args != NULL); /* _PyCFunction_FastCallDict() must not be called with an exception set, because it may clear it (directly or indirectly) and so the caller loses its exception */ assert(!PyErr_Occurred()); if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) { return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL); } else { return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs); } } #endif /* PyFunctionFastCall */ #if CYTHON_FAST_PYCALL static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, PyObject *globals) { PyFrameObject *f; PyThreadState *tstate = __Pyx_PyThreadState_Current; PyObject **fastlocals; Py_ssize_t i; PyObject *result; assert(globals != NULL); /* XXX Perhaps we should create a specialized PyFrame_New() that doesn't take locals, but does take builtins without sanity checking them. */ assert(tstate != NULL); f = PyFrame_New(tstate, co, globals, NULL); if (f == NULL) { return NULL; } fastlocals = __Pyx_PyFrame_GetLocalsplus(f); for (i = 0; i < na; i++) { Py_INCREF(*args); fastlocals[i] = *args++; } result = PyEval_EvalFrameEx(f,0); ++tstate->recursion_depth; Py_DECREF(f); --tstate->recursion_depth; return result; } #if 1 || PY_VERSION_HEX < 0x030600B1 static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) { PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func); PyObject *globals = PyFunction_GET_GLOBALS(func); PyObject *argdefs = PyFunction_GET_DEFAULTS(func); PyObject *closure; #if PY_MAJOR_VERSION >= 3 PyObject *kwdefs; #endif PyObject *kwtuple, **k; PyObject **d; Py_ssize_t nd; Py_ssize_t nk; PyObject *result; assert(kwargs == NULL || PyDict_Check(kwargs)); nk = kwargs ? PyDict_Size(kwargs) : 0; if (Py_EnterRecursiveCall((char*)" while calling a Python object")) { return NULL; } if ( #if PY_MAJOR_VERSION >= 3 co->co_kwonlyargcount == 0 && #endif likely(kwargs == NULL || nk == 0) && co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) { if (argdefs == NULL && co->co_argcount == nargs) { result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals); goto done; } else if (nargs == 0 && argdefs != NULL && co->co_argcount == Py_SIZE(argdefs)) { /* function called with no arguments, but all parameters have a default value: use default values as arguments .*/ args = &PyTuple_GET_ITEM(argdefs, 0); result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals); goto done; } } if (kwargs != NULL) { Py_ssize_t pos, i; kwtuple = PyTuple_New(2 * nk); if (kwtuple == NULL) { result = NULL; goto done; } k = &PyTuple_GET_ITEM(kwtuple, 0); pos = i = 0; while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) { Py_INCREF(k[i]); Py_INCREF(k[i+1]); i += 2; } nk = i / 2; } else { kwtuple = NULL; k = NULL; } closure = PyFunction_GET_CLOSURE(func); #if PY_MAJOR_VERSION >= 3 kwdefs = PyFunction_GET_KW_DEFAULTS(func); #endif if (argdefs != NULL) { d = &PyTuple_GET_ITEM(argdefs, 0); nd = Py_SIZE(argdefs); } else { d = NULL; nd = 0; } #if PY_MAJOR_VERSION >= 3 result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, args, (int)nargs, k, (int)nk, d, (int)nd, kwdefs, closure); #else result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, args, (int)nargs, k, (int)nk, d, (int)nd, closure); #endif Py_XDECREF(kwtuple); done: Py_LeaveRecursiveCall(); return result; } #endif #endif /* PyObjectCall */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { PyObject *result; ternaryfunc call = func->ob_type->tp_call; if (unlikely(!call)) return PyObject_Call(func, arg, kw); if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) return NULL; result = (*call)(func, arg, kw); Py_LeaveRecursiveCall(); if (unlikely(!result) && unlikely(!PyErr_Occurred())) { PyErr_SetString( PyExc_SystemError, "NULL result without error in PyObject_Call"); } return result; } #endif /* PyObjectCallMethO */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { PyObject *self, *result; PyCFunction cfunc; cfunc = PyCFunction_GET_FUNCTION(func); self = PyCFunction_GET_SELF(func); if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) return NULL; result = cfunc(self, arg); Py_LeaveRecursiveCall(); if (unlikely(!result) && unlikely(!PyErr_Occurred())) { PyErr_SetString( PyExc_SystemError, "NULL result without error in PyObject_Call"); } return result; } #endif /* PyObjectCallOneArg */ #if CYTHON_COMPILING_IN_CPYTHON static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { PyObject *result; PyObject *args = PyTuple_New(1); if (unlikely(!args)) return NULL; Py_INCREF(arg); PyTuple_SET_ITEM(args, 0, arg); result = __Pyx_PyObject_Call(func, args, NULL); Py_DECREF(args); return result; } static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { #if CYTHON_FAST_PYCALL if (PyFunction_Check(func)) { return __Pyx_PyFunction_FastCall(func, &arg, 1); } #endif if (likely(PyCFunction_Check(func))) { if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { return __Pyx_PyObject_CallMethO(func, arg); #if CYTHON_FAST_PYCCALL } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { return __Pyx_PyCFunction_FastCall(func, &arg, 1); #endif } } return __Pyx__PyObject_CallOneArg(func, arg); } #else static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { PyObject *result; PyObject *args = PyTuple_Pack(1, arg); if (unlikely(!args)) return NULL; result = __Pyx_PyObject_Call(func, args, NULL); Py_DECREF(args); return result; } #endif /* PyErrFetchRestore */ #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; tmp_type = tstate->curexc_type; tmp_value = tstate->curexc_value; tmp_tb = tstate->curexc_traceback; tstate->curexc_type = type; tstate->curexc_value = value; tstate->curexc_traceback = tb; Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); } static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { *type = tstate->curexc_type; *value = tstate->curexc_value; *tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; } #endif /* RaiseException */ #if PY_MAJOR_VERSION < 3 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, CYTHON_UNUSED PyObject *cause) { __Pyx_PyThreadState_declare Py_XINCREF(type); if (!value || value == Py_None) value = NULL; else Py_INCREF(value); if (!tb || tb == Py_None) tb = NULL; else { Py_INCREF(tb); if (!PyTraceBack_Check(tb)) { PyErr_SetString(PyExc_TypeError, "raise: arg 3 must be a traceback or None"); goto raise_error; } } if (PyType_Check(type)) { #if CYTHON_COMPILING_IN_PYPY if (!value) { Py_INCREF(Py_None); value = Py_None; } #endif PyErr_NormalizeException(&type, &value, &tb); } else { if (value) { PyErr_SetString(PyExc_TypeError, "instance exception may not have a separate value"); goto raise_error; } value = type; type = (PyObject*) Py_TYPE(type); Py_INCREF(type); if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { PyErr_SetString(PyExc_TypeError, "raise: exception class must be a subclass of BaseException"); goto raise_error; } } __Pyx_PyThreadState_assign __Pyx_ErrRestore(type, value, tb); return; raise_error: Py_XDECREF(value); Py_XDECREF(type); Py_XDECREF(tb); return; } #else static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { PyObject* owned_instance = NULL; if (tb == Py_None) { tb = 0; } else if (tb && !PyTraceBack_Check(tb)) { PyErr_SetString(PyExc_TypeError, "raise: arg 3 must be a traceback or None"); goto bad; } if (value == Py_None) value = 0; if (PyExceptionInstance_Check(type)) { if (value) { PyErr_SetString(PyExc_TypeError, "instance exception may not have a separate value"); goto bad; } value = type; type = (PyObject*) Py_TYPE(value); } else if (PyExceptionClass_Check(type)) { PyObject *instance_class = NULL; if (value && PyExceptionInstance_Check(value)) { instance_class = (PyObject*) Py_TYPE(value); if (instance_class != type) { int is_subclass = PyObject_IsSubclass(instance_class, type); if (!is_subclass) { instance_class = NULL; } else if (unlikely(is_subclass == -1)) { goto bad; } else { type = instance_class; } } } if (!instance_class) { PyObject *args; if (!value) args = PyTuple_New(0); else if (PyTuple_Check(value)) { Py_INCREF(value); args = value; } else args = PyTuple_Pack(1, value); if (!args) goto bad; owned_instance = PyObject_Call(type, args, NULL); Py_DECREF(args); if (!owned_instance) goto bad; value = owned_instance; if (!PyExceptionInstance_Check(value)) { PyErr_Format(PyExc_TypeError, "calling %R should have returned an instance of " "BaseException, not %R", type, Py_TYPE(value)); goto bad; } } } else { PyErr_SetString(PyExc_TypeError, "raise: exception class must be a subclass of BaseException"); goto bad; } if (cause) { PyObject *fixed_cause; if (cause == Py_None) { fixed_cause = NULL; } else if (PyExceptionClass_Check(cause)) { fixed_cause = PyObject_CallObject(cause, NULL); if (fixed_cause == NULL) goto bad; } else if (PyExceptionInstance_Check(cause)) { fixed_cause = cause; Py_INCREF(fixed_cause); } else { PyErr_SetString(PyExc_TypeError, "exception causes must derive from " "BaseException"); goto bad; } PyException_SetCause(value, fixed_cause); } PyErr_SetObject(type, value); if (tb) { #if CYTHON_COMPILING_IN_PYPY PyObject *tmp_type, *tmp_value, *tmp_tb; PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb); Py_INCREF(tb); PyErr_Restore(tmp_type, tmp_value, tb); Py_XDECREF(tmp_tb); #else PyThreadState *tstate = __Pyx_PyThreadState_Current; PyObject* tmp_tb = tstate->curexc_traceback; if (tb != tmp_tb) { Py_INCREF(tb); tstate->curexc_traceback = tb; Py_XDECREF(tmp_tb); } #endif } bad: Py_XDECREF(owned_instance); return; } #endif /* UnicodeAsUCS4 */ static CYTHON_INLINE Py_UCS4 __Pyx_PyUnicode_AsPy_UCS4(PyObject* x) { Py_ssize_t length; #if CYTHON_PEP393_ENABLED length = PyUnicode_GET_LENGTH(x); if (likely(length == 1)) { return PyUnicode_READ_CHAR(x, 0); } #else length = PyUnicode_GET_SIZE(x); if (likely(length == 1)) { return PyUnicode_AS_UNICODE(x)[0]; } #if Py_UNICODE_SIZE == 2 else if (PyUnicode_GET_SIZE(x) == 2) { Py_UCS4 high_val = PyUnicode_AS_UNICODE(x)[0]; if (high_val >= 0xD800 && high_val <= 0xDBFF) { Py_UCS4 low_val = PyUnicode_AS_UNICODE(x)[1]; if (low_val >= 0xDC00 && low_val <= 0xDFFF) { return 0x10000 + (((high_val & ((1<<10)-1)) << 10) | (low_val & ((1<<10)-1))); } } } #endif #endif PyErr_Format(PyExc_ValueError, "only single character unicode strings can be converted to Py_UCS4, " "got length %" CYTHON_FORMAT_SSIZE_T "d", length); return (Py_UCS4)-1; } /* object_ord */ static long __Pyx__PyObject_Ord(PyObject* c) { Py_ssize_t size; if (PyBytes_Check(c)) { size = PyBytes_GET_SIZE(c); if (likely(size == 1)) { return (unsigned char) PyBytes_AS_STRING(c)[0]; } #if PY_MAJOR_VERSION < 3 } else if (PyUnicode_Check(c)) { return (long)__Pyx_PyUnicode_AsPy_UCS4(c); #endif #if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)) } else if (PyByteArray_Check(c)) { size = PyByteArray_GET_SIZE(c); if (likely(size == 1)) { return (unsigned char) PyByteArray_AS_STRING(c)[0]; } #endif } else { PyErr_Format(PyExc_TypeError, "ord() expected string of length 1, but %.200s found", c->ob_type->tp_name); return (long)(Py_UCS4)-1; } PyErr_Format(PyExc_TypeError, "ord() expected a character, but string of length %zd found", size); return (long)(Py_UCS4)-1; } /* SetItemInt */ static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v) { int r; if (!j) return -1; r = PyObject_SetItem(o, j, v); Py_DECREF(j); return r; } static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, int is_list, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS if (is_list || PyList_CheckExact(o)) { Py_ssize_t n = (!wraparound) ? i : ((likely(i >= 0)) ? i : i + PyList_GET_SIZE(o)); if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o)))) { PyObject* old = PyList_GET_ITEM(o, n); Py_INCREF(v); PyList_SET_ITEM(o, n, v); Py_DECREF(old); return 1; } } else { PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence; if (likely(m && m->sq_ass_item)) { if (wraparound && unlikely(i < 0) && likely(m->sq_length)) { Py_ssize_t l = m->sq_length(o); if (likely(l >= 0)) { i += l; } else { if (!PyErr_ExceptionMatches(PyExc_OverflowError)) return -1; PyErr_Clear(); } } return m->sq_ass_item(o, i, v); } } #else #if CYTHON_COMPILING_IN_PYPY if (is_list || (PySequence_Check(o) && !PyDict_Check(o))) #else if (is_list || PySequence_Check(o)) #endif { return PySequence_SetItem(o, i, v); } #endif return __Pyx_SetItemInt_Generic(o, PyInt_FromSsize_t(i), v); } /* IterFinish */ static CYTHON_INLINE int __Pyx_IterFinish(void) { #if CYTHON_FAST_THREAD_STATE PyThreadState *tstate = __Pyx_PyThreadState_Current; PyObject* exc_type = tstate->curexc_type; if (unlikely(exc_type)) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) { PyObject *exc_value, *exc_tb; exc_value = tstate->curexc_value; exc_tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; Py_DECREF(exc_type); Py_XDECREF(exc_value); Py_XDECREF(exc_tb); return 0; } else { return -1; } } return 0; #else if (unlikely(PyErr_Occurred())) { if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) { PyErr_Clear(); return 0; } else { return -1; } } return 0; #endif } /* PyObjectCallNoArg */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { #if CYTHON_FAST_PYCALL if (PyFunction_Check(func)) { return __Pyx_PyFunction_FastCall(func, NULL, 0); } #endif #ifdef __Pyx_CyFunction_USED if (likely(PyCFunction_Check(func) || __Pyx_CyFunction_Check(func))) #else if (likely(PyCFunction_Check(func))) #endif { if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) { return __Pyx_PyObject_CallMethO(func, NULL); } } return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL); } #endif /* PyObjectGetMethod */ static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) { PyObject *attr; #if CYTHON_UNPACK_METHODS && CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_PYTYPE_LOOKUP PyTypeObject *tp = Py_TYPE(obj); PyObject *descr; descrgetfunc f = NULL; PyObject **dictptr, *dict; int meth_found = 0; assert (*method == NULL); if (unlikely(tp->tp_getattro != PyObject_GenericGetAttr)) { attr = __Pyx_PyObject_GetAttrStr(obj, name); goto try_unpack; } if (unlikely(tp->tp_dict == NULL) && unlikely(PyType_Ready(tp) < 0)) { return 0; } descr = _PyType_Lookup(tp, name); if (likely(descr != NULL)) { Py_INCREF(descr); #if PY_MAJOR_VERSION >= 3 #ifdef __Pyx_CyFunction_USED if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr))) #else if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type))) #endif #else #ifdef __Pyx_CyFunction_USED if (likely(PyFunction_Check(descr) || __Pyx_CyFunction_Check(descr))) #else if (likely(PyFunction_Check(descr))) #endif #endif { meth_found = 1; } else { f = Py_TYPE(descr)->tp_descr_get; if (f != NULL && PyDescr_IsData(descr)) { attr = f(descr, obj, (PyObject *)Py_TYPE(obj)); Py_DECREF(descr); goto try_unpack; } } } dictptr = _PyObject_GetDictPtr(obj); if (dictptr != NULL && (dict = *dictptr) != NULL) { Py_INCREF(dict); attr = __Pyx_PyDict_GetItemStr(dict, name); if (attr != NULL) { Py_INCREF(attr); Py_DECREF(dict); Py_XDECREF(descr); goto try_unpack; } Py_DECREF(dict); } if (meth_found) { *method = descr; return 1; } if (f != NULL) { attr = f(descr, obj, (PyObject *)Py_TYPE(obj)); Py_DECREF(descr); goto try_unpack; } if (descr != NULL) { *method = descr; return 0; } PyErr_Format(PyExc_AttributeError, #if PY_MAJOR_VERSION >= 3 "'%.50s' object has no attribute '%U'", tp->tp_name, name); #else "'%.50s' object has no attribute '%.400s'", tp->tp_name, PyString_AS_STRING(name)); #endif return 0; #else attr = __Pyx_PyObject_GetAttrStr(obj, name); goto try_unpack; #endif try_unpack: #if CYTHON_UNPACK_METHODS if (likely(attr) && PyMethod_Check(attr) && likely(PyMethod_GET_SELF(attr) == obj)) { PyObject *function = PyMethod_GET_FUNCTION(attr); Py_INCREF(function); Py_DECREF(attr); *method = function; return 1; } #endif *method = attr; return 0; } /* PyObjectCallMethod0 */ static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name) { PyObject *method = NULL, *result = NULL; int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method); if (likely(is_method)) { result = __Pyx_PyObject_CallOneArg(method, obj); Py_DECREF(method); return result; } if (unlikely(!method)) goto bad; result = __Pyx_PyObject_CallNoArg(method); Py_DECREF(method); bad: return result; } /* RaiseNeedMoreValuesToUnpack */ static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { PyErr_Format(PyExc_ValueError, "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", index, (index == 1) ? "" : "s"); } /* RaiseTooManyValuesToUnpack */ static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { PyErr_Format(PyExc_ValueError, "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); } /* UnpackItemEndCheck */ static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) { if (unlikely(retval)) { Py_DECREF(retval); __Pyx_RaiseTooManyValuesError(expected); return -1; } else { return __Pyx_IterFinish(); } return 0; } /* RaiseNoneIterError */ static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); } /* UnpackTupleError */ static void __Pyx_UnpackTupleError(PyObject *t, Py_ssize_t index) { if (t == Py_None) { __Pyx_RaiseNoneNotIterableError(); } else if (PyTuple_GET_SIZE(t) < index) { __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(t)); } else { __Pyx_RaiseTooManyValuesError(index); } } /* UnpackTuple2 */ static CYTHON_INLINE int __Pyx_unpack_tuple2_exact( PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2, int decref_tuple) { PyObject *value1 = NULL, *value2 = NULL; #if CYTHON_COMPILING_IN_PYPY value1 = PySequence_ITEM(tuple, 0); if (unlikely(!value1)) goto bad; value2 = PySequence_ITEM(tuple, 1); if (unlikely(!value2)) goto bad; #else value1 = PyTuple_GET_ITEM(tuple, 0); Py_INCREF(value1); value2 = PyTuple_GET_ITEM(tuple, 1); Py_INCREF(value2); #endif if (decref_tuple) { Py_DECREF(tuple); } *pvalue1 = value1; *pvalue2 = value2; return 0; #if CYTHON_COMPILING_IN_PYPY bad: Py_XDECREF(value1); Py_XDECREF(value2); if (decref_tuple) { Py_XDECREF(tuple); } return -1; #endif } static int __Pyx_unpack_tuple2_generic(PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2, int has_known_size, int decref_tuple) { Py_ssize_t index; PyObject *value1 = NULL, *value2 = NULL, *iter = NULL; iternextfunc iternext; iter = PyObject_GetIter(tuple); if (unlikely(!iter)) goto bad; if (decref_tuple) { Py_DECREF(tuple); tuple = NULL; } iternext = Py_TYPE(iter)->tp_iternext; value1 = iternext(iter); if (unlikely(!value1)) { index = 0; goto unpacking_failed; } value2 = iternext(iter); if (unlikely(!value2)) { index = 1; goto unpacking_failed; } if (!has_known_size && unlikely(__Pyx_IternextUnpackEndCheck(iternext(iter), 2))) goto bad; Py_DECREF(iter); *pvalue1 = value1; *pvalue2 = value2; return 0; unpacking_failed: if (!has_known_size && __Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); bad: Py_XDECREF(iter); Py_XDECREF(value1); Py_XDECREF(value2); if (decref_tuple) { Py_XDECREF(tuple); } return -1; } /* dict_iter */ static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* iterable, int is_dict, PyObject* method_name, Py_ssize_t* p_orig_length, int* p_source_is_dict) { is_dict = is_dict || likely(PyDict_CheckExact(iterable)); *p_source_is_dict = is_dict; if (is_dict) { #if !CYTHON_COMPILING_IN_PYPY *p_orig_length = PyDict_Size(iterable); Py_INCREF(iterable); return iterable; #elif PY_MAJOR_VERSION >= 3 static PyObject *py_items = NULL, *py_keys = NULL, *py_values = NULL; PyObject **pp = NULL; if (method_name) { const char *name = PyUnicode_AsUTF8(method_name); if (strcmp(name, "iteritems") == 0) pp = &py_items; else if (strcmp(name, "iterkeys") == 0) pp = &py_keys; else if (strcmp(name, "itervalues") == 0) pp = &py_values; if (pp) { if (!*pp) { *pp = PyUnicode_FromString(name + 4); if (!*pp) return NULL; } method_name = *pp; } } #endif } *p_orig_length = 0; if (method_name) { PyObject* iter; iterable = __Pyx_PyObject_CallMethod0(iterable, method_name); if (!iterable) return NULL; #if !CYTHON_COMPILING_IN_PYPY if (PyTuple_CheckExact(iterable) || PyList_CheckExact(iterable)) return iterable; #endif iter = PyObject_GetIter(iterable); Py_DECREF(iterable); return iter; } return PyObject_GetIter(iterable); } static CYTHON_INLINE int __Pyx_dict_iter_next( PyObject* iter_obj, CYTHON_NCP_UNUSED Py_ssize_t orig_length, CYTHON_NCP_UNUSED Py_ssize_t* ppos, PyObject** pkey, PyObject** pvalue, PyObject** pitem, int source_is_dict) { PyObject* next_item; #if !CYTHON_COMPILING_IN_PYPY if (source_is_dict) { PyObject *key, *value; if (unlikely(orig_length != PyDict_Size(iter_obj))) { PyErr_SetString(PyExc_RuntimeError, "dictionary changed size during iteration"); return -1; } if (unlikely(!PyDict_Next(iter_obj, ppos, &key, &value))) { return 0; } if (pitem) { PyObject* tuple = PyTuple_New(2); if (unlikely(!tuple)) { return -1; } Py_INCREF(key); Py_INCREF(value); PyTuple_SET_ITEM(tuple, 0, key); PyTuple_SET_ITEM(tuple, 1, value); *pitem = tuple; } else { if (pkey) { Py_INCREF(key); *pkey = key; } if (pvalue) { Py_INCREF(value); *pvalue = value; } } return 1; } else if (PyTuple_CheckExact(iter_obj)) { Py_ssize_t pos = *ppos; if (unlikely(pos >= PyTuple_GET_SIZE(iter_obj))) return 0; *ppos = pos + 1; next_item = PyTuple_GET_ITEM(iter_obj, pos); Py_INCREF(next_item); } else if (PyList_CheckExact(iter_obj)) { Py_ssize_t pos = *ppos; if (unlikely(pos >= PyList_GET_SIZE(iter_obj))) return 0; *ppos = pos + 1; next_item = PyList_GET_ITEM(iter_obj, pos); Py_INCREF(next_item); } else #endif { next_item = PyIter_Next(iter_obj); if (unlikely(!next_item)) { return __Pyx_IterFinish(); } } if (pitem) { *pitem = next_item; } else if (pkey && pvalue) { if (__Pyx_unpack_tuple2(next_item, pkey, pvalue, source_is_dict, source_is_dict, 1)) return -1; } else if (pkey) { *pkey = next_item; } else { *pvalue = next_item; } return 1; } /* PyObjectCall2Args */ static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) { PyObject *args, *result = NULL; #if CYTHON_FAST_PYCALL if (PyFunction_Check(function)) { PyObject *args[2] = {arg1, arg2}; return __Pyx_PyFunction_FastCall(function, args, 2); } #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(function)) { PyObject *args[2] = {arg1, arg2}; return __Pyx_PyCFunction_FastCall(function, args, 2); } #endif args = PyTuple_New(2); if (unlikely(!args)) goto done; Py_INCREF(arg1); PyTuple_SET_ITEM(args, 0, arg1); Py_INCREF(arg2); PyTuple_SET_ITEM(args, 1, arg2); Py_INCREF(function); result = __Pyx_PyObject_Call(function, args, NULL); Py_DECREF(args); Py_DECREF(function); done: return result; } /* GetItemInt */ static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) { PyObject *r; if (!j) return NULL; r = PyObject_GetItem(o, j); Py_DECREF(j); return r; } static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS Py_ssize_t wrapped_i = i; if (wraparound & unlikely(i < 0)) { wrapped_i += PyList_GET_SIZE(o); } if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) { PyObject *r = PyList_GET_ITEM(o, wrapped_i); Py_INCREF(r); return r; } return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); #else return PySequence_GetItem(o, i); #endif } static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS Py_ssize_t wrapped_i = i; if (wraparound & unlikely(i < 0)) { wrapped_i += PyTuple_GET_SIZE(o); } if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) { PyObject *r = PyTuple_GET_ITEM(o, wrapped_i); Py_INCREF(r); return r; } return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); #else return PySequence_GetItem(o, i); #endif } static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS if (is_list || PyList_CheckExact(o)) { Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o); if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) { PyObject *r = PyList_GET_ITEM(o, n); Py_INCREF(r); return r; } } else if (PyTuple_CheckExact(o)) { Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o); if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) { PyObject *r = PyTuple_GET_ITEM(o, n); Py_INCREF(r); return r; } } else { PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence; if (likely(m && m->sq_item)) { if (wraparound && unlikely(i < 0) && likely(m->sq_length)) { Py_ssize_t l = m->sq_length(o); if (likely(l >= 0)) { i += l; } else { if (!PyErr_ExceptionMatches(PyExc_OverflowError)) return NULL; PyErr_Clear(); } } return m->sq_item(o, i); } } #else if (is_list || PySequence_Check(o)) { return PySequence_GetItem(o, i); } #endif return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); } /* BytesEquals */ static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) { #if CYTHON_COMPILING_IN_PYPY return PyObject_RichCompareBool(s1, s2, equals); #else if (s1 == s2) { return (equals == Py_EQ); } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) { const char *ps1, *ps2; Py_ssize_t length = PyBytes_GET_SIZE(s1); if (length != PyBytes_GET_SIZE(s2)) return (equals == Py_NE); ps1 = PyBytes_AS_STRING(s1); ps2 = PyBytes_AS_STRING(s2); if (ps1[0] != ps2[0]) { return (equals == Py_NE); } else if (length == 1) { return (equals == Py_EQ); } else { int result; #if CYTHON_USE_UNICODE_INTERNALS Py_hash_t hash1, hash2; hash1 = ((PyBytesObject*)s1)->ob_shash; hash2 = ((PyBytesObject*)s2)->ob_shash; if (hash1 != hash2 && hash1 != -1 && hash2 != -1) { return (equals == Py_NE); } #endif result = memcmp(ps1, ps2, (size_t)length); return (equals == Py_EQ) ? (result == 0) : (result != 0); } } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) { return (equals == Py_NE); } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) { return (equals == Py_NE); } else { int result; PyObject* py_result = PyObject_RichCompare(s1, s2, equals); if (!py_result) return -1; result = __Pyx_PyObject_IsTrue(py_result); Py_DECREF(py_result); return result; } #endif } /* UnicodeEquals */ static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) { #if CYTHON_COMPILING_IN_PYPY return PyObject_RichCompareBool(s1, s2, equals); #else #if PY_MAJOR_VERSION < 3 PyObject* owned_ref = NULL; #endif int s1_is_unicode, s2_is_unicode; if (s1 == s2) { goto return_eq; } s1_is_unicode = PyUnicode_CheckExact(s1); s2_is_unicode = PyUnicode_CheckExact(s2); #if PY_MAJOR_VERSION < 3 if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) { owned_ref = PyUnicode_FromObject(s2); if (unlikely(!owned_ref)) return -1; s2 = owned_ref; s2_is_unicode = 1; } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) { owned_ref = PyUnicode_FromObject(s1); if (unlikely(!owned_ref)) return -1; s1 = owned_ref; s1_is_unicode = 1; } else if (((!s2_is_unicode) & (!s1_is_unicode))) { return __Pyx_PyBytes_Equals(s1, s2, equals); } #endif if (s1_is_unicode & s2_is_unicode) { Py_ssize_t length; int kind; void *data1, *data2; if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0)) return -1; length = __Pyx_PyUnicode_GET_LENGTH(s1); if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) { goto return_ne; } #if CYTHON_USE_UNICODE_INTERNALS { Py_hash_t hash1, hash2; #if CYTHON_PEP393_ENABLED hash1 = ((PyASCIIObject*)s1)->hash; hash2 = ((PyASCIIObject*)s2)->hash; #else hash1 = ((PyUnicodeObject*)s1)->hash; hash2 = ((PyUnicodeObject*)s2)->hash; #endif if (hash1 != hash2 && hash1 != -1 && hash2 != -1) { goto return_ne; } } #endif kind = __Pyx_PyUnicode_KIND(s1); if (kind != __Pyx_PyUnicode_KIND(s2)) { goto return_ne; } data1 = __Pyx_PyUnicode_DATA(s1); data2 = __Pyx_PyUnicode_DATA(s2); if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) { goto return_ne; } else if (length == 1) { goto return_eq; } else { int result = memcmp(data1, data2, (size_t)(length * kind)); #if PY_MAJOR_VERSION < 3 Py_XDECREF(owned_ref); #endif return (equals == Py_EQ) ? (result == 0) : (result != 0); } } else if ((s1 == Py_None) & s2_is_unicode) { goto return_ne; } else if ((s2 == Py_None) & s1_is_unicode) { goto return_ne; } else { int result; PyObject* py_result = PyObject_RichCompare(s1, s2, equals); #if PY_MAJOR_VERSION < 3 Py_XDECREF(owned_ref); #endif if (!py_result) return -1; result = __Pyx_PyObject_IsTrue(py_result); Py_DECREF(py_result); return result; } return_eq: #if PY_MAJOR_VERSION < 3 Py_XDECREF(owned_ref); #endif return (equals == Py_EQ); return_ne: #if PY_MAJOR_VERSION < 3 Py_XDECREF(owned_ref); #endif return (equals == Py_NE); #endif } /* PyDictVersioning */ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) { PyObject *dict = Py_TYPE(obj)->tp_dict; return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0; } static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) { PyObject **dictptr = NULL; Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset; if (offset) { #if CYTHON_COMPILING_IN_CPYTHON dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj); #else dictptr = _PyObject_GetDictPtr(obj); #endif } return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0; } static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) { PyObject *dict = Py_TYPE(obj)->tp_dict; if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict))) return 0; return obj_dict_version == __Pyx_get_object_dict_version(obj); } #endif /* GetModuleGlobalName */ #if CYTHON_USE_DICT_VERSIONS static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value) #else static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name) #endif { PyObject *result; #if !CYTHON_AVOID_BORROWED_REFS #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash); __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) if (likely(result)) { return __Pyx_NewRef(result); } else if (unlikely(PyErr_Occurred())) { return NULL; } #else result = PyDict_GetItem(__pyx_d, name); __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) if (likely(result)) { return __Pyx_NewRef(result); } #endif #else result = PyObject_GetItem(__pyx_d, name); __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) if (likely(result)) { return __Pyx_NewRef(result); } PyErr_Clear(); #endif return __Pyx_GetBuiltinName(name); } /* ExtTypeTest */ static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { if (unlikely(!type)) { PyErr_SetString(PyExc_SystemError, "Missing type object"); return 0; } if (likely(__Pyx_TypeCheck(obj, type))) return 1; PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s", Py_TYPE(obj)->tp_name, type->tp_name); return 0; } /* ArgTypeTest */ static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact) { if (unlikely(!type)) { PyErr_SetString(PyExc_SystemError, "Missing type object"); return 0; } else if (exact) { #if PY_MAJOR_VERSION == 2 if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1; #endif } else { if (likely(__Pyx_TypeCheck(obj, type))) return 1; } PyErr_Format(PyExc_TypeError, "Argument '%.200s' has incorrect type (expected %.200s, got %.200s)", name, type->tp_name, Py_TYPE(obj)->tp_name); return 0; } /* None */ static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) { PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname); } /* MemviewSliceInit */ static int __Pyx_init_memviewslice(struct __pyx_memoryview_obj *memview, int ndim, __Pyx_memviewslice *memviewslice, int memview_is_new_reference) { __Pyx_RefNannyDeclarations int i, retval=-1; Py_buffer *buf = &memview->view; __Pyx_RefNannySetupContext("init_memviewslice", 0); if (memviewslice->memview || memviewslice->data) { PyErr_SetString(PyExc_ValueError, "memviewslice is already initialized!"); goto fail; } if (buf->strides) { for (i = 0; i < ndim; i++) { memviewslice->strides[i] = buf->strides[i]; } } else { Py_ssize_t stride = buf->itemsize; for (i = ndim - 1; i >= 0; i--) { memviewslice->strides[i] = stride; stride *= buf->shape[i]; } } for (i = 0; i < ndim; i++) { memviewslice->shape[i] = buf->shape[i]; if (buf->suboffsets) { memviewslice->suboffsets[i] = buf->suboffsets[i]; } else { memviewslice->suboffsets[i] = -1; } } memviewslice->memview = memview; memviewslice->data = (char *)buf->buf; if (__pyx_add_acquisition_count(memview) == 0 && !memview_is_new_reference) { Py_INCREF(memview); } retval = 0; goto no_fail; fail: memviewslice->memview = 0; memviewslice->data = 0; retval = -1; no_fail: __Pyx_RefNannyFinishContext(); return retval; } #ifndef Py_NO_RETURN #define Py_NO_RETURN #endif static void __pyx_fatalerror(const char *fmt, ...) Py_NO_RETURN { va_list vargs; char msg[200]; #ifdef HAVE_STDARG_PROTOTYPES va_start(vargs, fmt); #else va_start(vargs); #endif vsnprintf(msg, 200, fmt, vargs); va_end(vargs); Py_FatalError(msg); } static CYTHON_INLINE int __pyx_add_acquisition_count_locked(__pyx_atomic_int *acquisition_count, PyThread_type_lock lock) { int result; PyThread_acquire_lock(lock, 1); result = (*acquisition_count)++; PyThread_release_lock(lock); return result; } static CYTHON_INLINE int __pyx_sub_acquisition_count_locked(__pyx_atomic_int *acquisition_count, PyThread_type_lock lock) { int result; PyThread_acquire_lock(lock, 1); result = (*acquisition_count)--; PyThread_release_lock(lock); return result; } static CYTHON_INLINE void __Pyx_INC_MEMVIEW(__Pyx_memviewslice *memslice, int have_gil, int lineno) { int first_time; struct __pyx_memoryview_obj *memview = memslice->memview; if (!memview || (PyObject *) memview == Py_None) return; if (__pyx_get_slice_count(memview) < 0) __pyx_fatalerror("Acquisition count is %d (line %d)", __pyx_get_slice_count(memview), lineno); first_time = __pyx_add_acquisition_count(memview) == 0; if (first_time) { if (have_gil) { Py_INCREF((PyObject *) memview); } else { PyGILState_STATE _gilstate = PyGILState_Ensure(); Py_INCREF((PyObject *) memview); PyGILState_Release(_gilstate); } } } static CYTHON_INLINE void __Pyx_XDEC_MEMVIEW(__Pyx_memviewslice *memslice, int have_gil, int lineno) { int last_time; struct __pyx_memoryview_obj *memview = memslice->memview; if (!memview ) { return; } else if ((PyObject *) memview == Py_None) { memslice->memview = NULL; return; } if (__pyx_get_slice_count(memview) <= 0) __pyx_fatalerror("Acquisition count is %d (line %d)", __pyx_get_slice_count(memview), lineno); last_time = __pyx_sub_acquisition_count(memview) == 1; memslice->data = NULL; if (last_time) { if (have_gil) { Py_CLEAR(memslice->memview); } else { PyGILState_STATE _gilstate = PyGILState_Ensure(); Py_CLEAR(memslice->memview); PyGILState_Release(_gilstate); } } else { memslice->memview = NULL; } } /* GetTopmostException */ #if CYTHON_USE_EXC_INFO_STACK static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate) { _PyErr_StackItem *exc_info = tstate->exc_info; while ((exc_info->exc_type == NULL || exc_info->exc_type == Py_None) && exc_info->previous_item != NULL) { exc_info = exc_info->previous_item; } return exc_info; } #endif /* SaveResetException */ #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { #if CYTHON_USE_EXC_INFO_STACK _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate); *type = exc_info->exc_type; *value = exc_info->exc_value; *tb = exc_info->exc_traceback; #else *type = tstate->exc_type; *value = tstate->exc_value; *tb = tstate->exc_traceback; #endif Py_XINCREF(*type); Py_XINCREF(*value); Py_XINCREF(*tb); } static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; #if CYTHON_USE_EXC_INFO_STACK _PyErr_StackItem *exc_info = tstate->exc_info; tmp_type = exc_info->exc_type; tmp_value = exc_info->exc_value; tmp_tb = exc_info->exc_traceback; exc_info->exc_type = type; exc_info->exc_value = value; exc_info->exc_traceback = tb; #else tmp_type = tstate->exc_type; tmp_value = tstate->exc_value; tmp_tb = tstate->exc_traceback; tstate->exc_type = type; tstate->exc_value = value; tstate->exc_traceback = tb; #endif Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); } #endif /* PyErrExceptionMatches */ #if CYTHON_FAST_THREAD_STATE static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { Py_ssize_t i, n; n = PyTuple_GET_SIZE(tuple); #if PY_MAJOR_VERSION >= 3 for (i=0; icurexc_type; if (exc_type == err) return 1; if (unlikely(!exc_type)) return 0; if (unlikely(PyTuple_Check(err))) return __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err); return __Pyx_PyErr_GivenExceptionMatches(exc_type, err); } #endif /* GetException */ #if CYTHON_FAST_THREAD_STATE static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) #else static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) #endif { PyObject *local_type, *local_value, *local_tb; #if CYTHON_FAST_THREAD_STATE PyObject *tmp_type, *tmp_value, *tmp_tb; local_type = tstate->curexc_type; local_value = tstate->curexc_value; local_tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; #else PyErr_Fetch(&local_type, &local_value, &local_tb); #endif PyErr_NormalizeException(&local_type, &local_value, &local_tb); #if CYTHON_FAST_THREAD_STATE if (unlikely(tstate->curexc_type)) #else if (unlikely(PyErr_Occurred())) #endif goto bad; #if PY_MAJOR_VERSION >= 3 if (local_tb) { if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0)) goto bad; } #endif Py_XINCREF(local_tb); Py_XINCREF(local_type); Py_XINCREF(local_value); *type = local_type; *value = local_value; *tb = local_tb; #if CYTHON_FAST_THREAD_STATE #if CYTHON_USE_EXC_INFO_STACK { _PyErr_StackItem *exc_info = tstate->exc_info; tmp_type = exc_info->exc_type; tmp_value = exc_info->exc_value; tmp_tb = exc_info->exc_traceback; exc_info->exc_type = local_type; exc_info->exc_value = local_value; exc_info->exc_traceback = local_tb; } #else tmp_type = tstate->exc_type; tmp_value = tstate->exc_value; tmp_tb = tstate->exc_traceback; tstate->exc_type = local_type; tstate->exc_value = local_value; tstate->exc_traceback = local_tb; #endif Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); #else PyErr_SetExcInfo(local_type, local_value, local_tb); #endif return 0; bad: *type = 0; *value = 0; *tb = 0; Py_XDECREF(local_type); Py_XDECREF(local_value); Py_XDECREF(local_tb); return -1; } /* None */ static CYTHON_INLINE Py_ssize_t __Pyx_div_Py_ssize_t(Py_ssize_t a, Py_ssize_t b) { Py_ssize_t q = a / b; Py_ssize_t r = a - q*b; q -= ((r != 0) & ((r ^ b) < 0)); return q; } /* GetAttr */ static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) { #if CYTHON_USE_TYPE_SLOTS #if PY_MAJOR_VERSION >= 3 if (likely(PyUnicode_Check(n))) #else if (likely(PyString_Check(n))) #endif return __Pyx_PyObject_GetAttrStr(o, n); #endif return PyObject_GetAttr(o, n); } /* ObjectGetItem */ #if CYTHON_USE_TYPE_SLOTS static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject* index) { PyObject *runerr; Py_ssize_t key_value; PySequenceMethods *m = Py_TYPE(obj)->tp_as_sequence; if (unlikely(!(m && m->sq_item))) { PyErr_Format(PyExc_TypeError, "'%.200s' object is not subscriptable", Py_TYPE(obj)->tp_name); return NULL; } key_value = __Pyx_PyIndex_AsSsize_t(index); if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) { return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1); } if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) { PyErr_Clear(); PyErr_Format(PyExc_IndexError, "cannot fit '%.200s' into an index-sized integer", Py_TYPE(index)->tp_name); } return NULL; } static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key) { PyMappingMethods *m = Py_TYPE(obj)->tp_as_mapping; if (likely(m && m->mp_subscript)) { return m->mp_subscript(obj, key); } return __Pyx_PyObject_GetIndex(obj, key); } #endif /* decode_c_string */ static CYTHON_INLINE PyObject* __Pyx_decode_c_string( const char* cstring, Py_ssize_t start, Py_ssize_t stop, const char* encoding, const char* errors, PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)) { Py_ssize_t length; if (unlikely((start < 0) | (stop < 0))) { size_t slen = strlen(cstring); if (unlikely(slen > (size_t) PY_SSIZE_T_MAX)) { PyErr_SetString(PyExc_OverflowError, "c-string too long to convert to Python"); return NULL; } length = (Py_ssize_t) slen; if (start < 0) { start += length; if (start < 0) start = 0; } if (stop < 0) stop += length; } length = stop - start; if (unlikely(length <= 0)) return PyUnicode_FromUnicode(NULL, 0); cstring += start; if (decode_func) { return decode_func(cstring, length, errors); } else { return PyUnicode_Decode(cstring, length, encoding, errors); } } /* GetAttr3 */ static PyObject *__Pyx_GetAttr3Default(PyObject *d) { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) return NULL; __Pyx_PyErr_Clear(); Py_INCREF(d); return d; } static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *o, PyObject *n, PyObject *d) { PyObject *r = __Pyx_GetAttr(o, n); return (likely(r)) ? r : __Pyx_GetAttr3Default(d); } /* SwapException */ #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; #if CYTHON_USE_EXC_INFO_STACK _PyErr_StackItem *exc_info = tstate->exc_info; tmp_type = exc_info->exc_type; tmp_value = exc_info->exc_value; tmp_tb = exc_info->exc_traceback; exc_info->exc_type = *type; exc_info->exc_value = *value; exc_info->exc_traceback = *tb; #else tmp_type = tstate->exc_type; tmp_value = tstate->exc_value; tmp_tb = tstate->exc_traceback; tstate->exc_type = *type; tstate->exc_value = *value; tstate->exc_traceback = *tb; #endif *type = tmp_type; *value = tmp_value; *tb = tmp_tb; } #else static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb); PyErr_SetExcInfo(*type, *value, *tb); *type = tmp_type; *value = tmp_value; *tb = tmp_tb; } #endif /* Import */ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { PyObject *empty_list = 0; PyObject *module = 0; PyObject *global_dict = 0; PyObject *empty_dict = 0; PyObject *list; #if PY_MAJOR_VERSION < 3 PyObject *py_import; py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import); if (!py_import) goto bad; #endif if (from_list) list = from_list; else { empty_list = PyList_New(0); if (!empty_list) goto bad; list = empty_list; } global_dict = PyModule_GetDict(__pyx_m); if (!global_dict) goto bad; empty_dict = PyDict_New(); if (!empty_dict) goto bad; { #if PY_MAJOR_VERSION >= 3 if (level == -1) { if (strchr(__Pyx_MODULE_NAME, '.')) { module = PyImport_ImportModuleLevelObject( name, global_dict, empty_dict, list, 1); if (!module) { if (!PyErr_ExceptionMatches(PyExc_ImportError)) goto bad; PyErr_Clear(); } } level = 0; } #endif if (!module) { #if PY_MAJOR_VERSION < 3 PyObject *py_level = PyInt_FromLong(level); if (!py_level) goto bad; module = PyObject_CallFunctionObjArgs(py_import, name, global_dict, empty_dict, list, py_level, (PyObject *)NULL); Py_DECREF(py_level); #else module = PyImport_ImportModuleLevelObject( name, global_dict, empty_dict, list, level); #endif } } bad: #if PY_MAJOR_VERSION < 3 Py_XDECREF(py_import); #endif Py_XDECREF(empty_list); Py_XDECREF(empty_dict); return module; } /* FastTypeChecks */ #if CYTHON_COMPILING_IN_CPYTHON static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { while (a) { a = a->tp_base; if (a == b) return 1; } return b == &PyBaseObject_Type; } static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) { PyObject *mro; if (a == b) return 1; mro = a->tp_mro; if (likely(mro)) { Py_ssize_t i, n; n = PyTuple_GET_SIZE(mro); for (i = 0; i < n; i++) { if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b) return 1; } return 0; } return __Pyx_InBases(a, b); } #if PY_MAJOR_VERSION == 2 static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) { PyObject *exception, *value, *tb; int res; __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ErrFetch(&exception, &value, &tb); res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0; if (unlikely(res == -1)) { PyErr_WriteUnraisable(err); res = 0; } if (!res) { res = PyObject_IsSubclass(err, exc_type2); if (unlikely(res == -1)) { PyErr_WriteUnraisable(err); res = 0; } } __Pyx_ErrRestore(exception, value, tb); return res; } #else static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) { int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0; if (!res) { res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2); } return res; } #endif static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { Py_ssize_t i, n; assert(PyExceptionClass_Check(exc_type)); n = PyTuple_GET_SIZE(tuple); #if PY_MAJOR_VERSION >= 3 for (i=0; i= 0 || (x^b) >= 0)) return PyInt_FromLong(x); return PyLong_Type.tp_as_number->nb_add(op1, op2); } #endif #if CYTHON_USE_PYLONG_INTERNALS if (likely(PyLong_CheckExact(op1))) { const long b = intval; long a, x; #ifdef HAVE_LONG_LONG const PY_LONG_LONG llb = intval; PY_LONG_LONG lla, llx; #endif const digit* digits = ((PyLongObject*)op1)->ob_digit; const Py_ssize_t size = Py_SIZE(op1); if (likely(__Pyx_sst_abs(size) <= 1)) { a = likely(size) ? digits[0] : 0; if (size == -1) a = -a; } else { switch (size) { case -2: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case 2: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case -3: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case 3: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case -4: if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case 4: if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; default: return PyLong_Type.tp_as_number->nb_add(op1, op2); } } x = a + b; return PyLong_FromLong(x); #ifdef HAVE_LONG_LONG long_long: llx = lla + llb; return PyLong_FromLongLong(llx); #endif } #endif if (PyFloat_CheckExact(op1)) { const long b = intval; double a = PyFloat_AS_DOUBLE(op1); double result; PyFPE_START_PROTECT("add", return NULL) result = ((double)a) + (double)b; PyFPE_END_PROTECT(result) return PyFloat_FromDouble(result); } return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2); } #endif /* None */ static CYTHON_INLINE long __Pyx_div_long(long a, long b) { long q = a / b; long r = a - q*b; q -= ((r != 0) & ((r ^ b) < 0)); return q; } /* WriteUnraisableException */ static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno, CYTHON_UNUSED int lineno, CYTHON_UNUSED const char *filename, int full_traceback, CYTHON_UNUSED int nogil) { PyObject *old_exc, *old_val, *old_tb; PyObject *ctx; __Pyx_PyThreadState_declare #ifdef WITH_THREAD PyGILState_STATE state; if (nogil) state = PyGILState_Ensure(); #ifdef _MSC_VER else state = (PyGILState_STATE)-1; #endif #endif __Pyx_PyThreadState_assign __Pyx_ErrFetch(&old_exc, &old_val, &old_tb); if (full_traceback) { Py_XINCREF(old_exc); Py_XINCREF(old_val); Py_XINCREF(old_tb); __Pyx_ErrRestore(old_exc, old_val, old_tb); PyErr_PrintEx(1); } #if PY_MAJOR_VERSION < 3 ctx = PyString_FromString(name); #else ctx = PyUnicode_FromString(name); #endif __Pyx_ErrRestore(old_exc, old_val, old_tb); if (!ctx) { PyErr_WriteUnraisable(Py_None); } else { PyErr_WriteUnraisable(ctx); Py_DECREF(ctx); } #ifdef WITH_THREAD if (nogil) PyGILState_Release(state); #endif } /* ImportFrom */ static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) { PyObject* value = __Pyx_PyObject_GetAttrStr(module, name); if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) { PyErr_Format(PyExc_ImportError, #if PY_MAJOR_VERSION < 3 "cannot import name %.230s", PyString_AS_STRING(name)); #else "cannot import name %S", name); #endif } return value; } /* HasAttr */ static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) { PyObject *r; if (unlikely(!__Pyx_PyBaseString_Check(n))) { PyErr_SetString(PyExc_TypeError, "hasattr(): attribute name must be string"); return -1; } r = __Pyx_GetAttr(o, n); if (unlikely(!r)) { PyErr_Clear(); return 0; } else { Py_DECREF(r); return 1; } } /* PyObject_GenericGetAttrNoDict */ #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) { PyErr_Format(PyExc_AttributeError, #if PY_MAJOR_VERSION >= 3 "'%.50s' object has no attribute '%U'", tp->tp_name, attr_name); #else "'%.50s' object has no attribute '%.400s'", tp->tp_name, PyString_AS_STRING(attr_name)); #endif return NULL; } static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) { PyObject *descr; PyTypeObject *tp = Py_TYPE(obj); if (unlikely(!PyString_Check(attr_name))) { return PyObject_GenericGetAttr(obj, attr_name); } assert(!tp->tp_dictoffset); descr = _PyType_Lookup(tp, attr_name); if (unlikely(!descr)) { return __Pyx_RaiseGenericGetAttributeError(tp, attr_name); } Py_INCREF(descr); #if PY_MAJOR_VERSION < 3 if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS))) #endif { descrgetfunc f = Py_TYPE(descr)->tp_descr_get; if (unlikely(f)) { PyObject *res = f(descr, obj, (PyObject *)tp); Py_DECREF(descr); return res; } } return descr; } #endif /* PyObject_GenericGetAttr */ #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) { if (unlikely(Py_TYPE(obj)->tp_dictoffset)) { return PyObject_GenericGetAttr(obj, attr_name); } return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name); } #endif /* SetVTable */ static int __Pyx_SetVtable(PyObject *dict, void *vtable) { #if PY_VERSION_HEX >= 0x02070000 PyObject *ob = PyCapsule_New(vtable, 0, 0); #else PyObject *ob = PyCObject_FromVoidPtr(vtable, 0); #endif if (!ob) goto bad; if (PyDict_SetItem(dict, __pyx_n_s_pyx_vtable, ob) < 0) goto bad; Py_DECREF(ob); return 0; bad: Py_XDECREF(ob); return -1; } /* SetupReduce */ static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { int ret; PyObject *name_attr; name_attr = __Pyx_PyObject_GetAttrStr(meth, __pyx_n_s_name_2); if (likely(name_attr)) { ret = PyObject_RichCompareBool(name_attr, name, Py_EQ); } else { ret = -1; } if (unlikely(ret < 0)) { PyErr_Clear(); ret = 0; } Py_XDECREF(name_attr); return ret; } static int __Pyx_setup_reduce(PyObject* type_obj) { int ret = 0; PyObject *object_reduce = NULL; PyObject *object_reduce_ex = NULL; PyObject *reduce = NULL; PyObject *reduce_ex = NULL; PyObject *reduce_cython = NULL; PyObject *setstate = NULL; PyObject *setstate_cython = NULL; #if CYTHON_USE_PYTYPE_LOOKUP if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD; #else if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD; #endif #if CYTHON_USE_PYTYPE_LOOKUP object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; #else object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; #endif reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto BAD; if (reduce_ex == object_reduce_ex) { #if CYTHON_USE_PYTYPE_LOOKUP object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; #else object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; #endif reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD; if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD; ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD; ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD; setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); if (!setstate) PyErr_Clear(); if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD; ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD; ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD; } PyType_Modified((PyTypeObject*)type_obj); } } goto GOOD; BAD: if (!PyErr_Occurred()) PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); ret = -1; GOOD: #if !CYTHON_USE_PYTYPE_LOOKUP Py_XDECREF(object_reduce); Py_XDECREF(object_reduce_ex); #endif Py_XDECREF(reduce); Py_XDECREF(reduce_ex); Py_XDECREF(reduce_cython); Py_XDECREF(setstate); Py_XDECREF(setstate_cython); return ret; } /* TypeImport */ #ifndef __PYX_HAVE_RT_ImportType #define __PYX_HAVE_RT_ImportType static PyTypeObject *__Pyx_ImportType(PyObject *module, const char *module_name, const char *class_name, size_t size, enum __Pyx_ImportType_CheckSize check_size) { PyObject *result = 0; char warning[200]; Py_ssize_t basicsize; #ifdef Py_LIMITED_API PyObject *py_basicsize; #endif result = PyObject_GetAttrString(module, class_name); if (!result) goto bad; if (!PyType_Check(result)) { PyErr_Format(PyExc_TypeError, "%.200s.%.200s is not a type object", module_name, class_name); goto bad; } #ifndef Py_LIMITED_API basicsize = ((PyTypeObject *)result)->tp_basicsize; #else py_basicsize = PyObject_GetAttrString(result, "__basicsize__"); if (!py_basicsize) goto bad; basicsize = PyLong_AsSsize_t(py_basicsize); Py_DECREF(py_basicsize); py_basicsize = 0; if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred()) goto bad; #endif if ((size_t)basicsize < size) { PyErr_Format(PyExc_ValueError, "%.200s.%.200s size changed, may indicate binary incompatibility. " "Expected %zd from C header, got %zd from PyObject", module_name, class_name, size, basicsize); goto bad; } if (check_size == __Pyx_ImportType_CheckSize_Error && (size_t)basicsize != size) { PyErr_Format(PyExc_ValueError, "%.200s.%.200s size changed, may indicate binary incompatibility. " "Expected %zd from C header, got %zd from PyObject", module_name, class_name, size, basicsize); goto bad; } else if (check_size == __Pyx_ImportType_CheckSize_Warn && (size_t)basicsize > size) { PyOS_snprintf(warning, sizeof(warning), "%s.%s size changed, may indicate binary incompatibility. " "Expected %zd from C header, got %zd from PyObject", module_name, class_name, size, basicsize); if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad; } return (PyTypeObject *)result; bad: Py_XDECREF(result); return NULL; } #endif /* FetchCommonType */ static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) { PyObject* fake_module; PyTypeObject* cached_type = NULL; fake_module = PyImport_AddModule((char*) "_cython_" CYTHON_ABI); if (!fake_module) return NULL; Py_INCREF(fake_module); cached_type = (PyTypeObject*) PyObject_GetAttrString(fake_module, type->tp_name); if (cached_type) { if (!PyType_Check((PyObject*)cached_type)) { PyErr_Format(PyExc_TypeError, "Shared Cython type %.200s is not a type object", type->tp_name); goto bad; } if (cached_type->tp_basicsize != type->tp_basicsize) { PyErr_Format(PyExc_TypeError, "Shared Cython type %.200s has the wrong size, try recompiling", type->tp_name); goto bad; } } else { if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad; PyErr_Clear(); if (PyType_Ready(type) < 0) goto bad; if (PyObject_SetAttrString(fake_module, type->tp_name, (PyObject*) type) < 0) goto bad; Py_INCREF(type); cached_type = type; } done: Py_DECREF(fake_module); return cached_type; bad: Py_XDECREF(cached_type); cached_type = NULL; goto done; } /* CythonFunction */ #include static PyObject * __Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *closure) { if (unlikely(op->func_doc == NULL)) { if (op->func.m_ml->ml_doc) { #if PY_MAJOR_VERSION >= 3 op->func_doc = PyUnicode_FromString(op->func.m_ml->ml_doc); #else op->func_doc = PyString_FromString(op->func.m_ml->ml_doc); #endif if (unlikely(op->func_doc == NULL)) return NULL; } else { Py_INCREF(Py_None); return Py_None; } } Py_INCREF(op->func_doc); return op->func_doc; } static int __Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context) { PyObject *tmp = op->func_doc; if (value == NULL) { value = Py_None; } Py_INCREF(value); op->func_doc = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { if (unlikely(op->func_name == NULL)) { #if PY_MAJOR_VERSION >= 3 op->func_name = PyUnicode_InternFromString(op->func.m_ml->ml_name); #else op->func_name = PyString_InternFromString(op->func.m_ml->ml_name); #endif if (unlikely(op->func_name == NULL)) return NULL; } Py_INCREF(op->func_name); return op->func_name; } static int __Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context) { PyObject *tmp; #if PY_MAJOR_VERSION >= 3 if (unlikely(value == NULL || !PyUnicode_Check(value))) #else if (unlikely(value == NULL || !PyString_Check(value))) #endif { PyErr_SetString(PyExc_TypeError, "__name__ must be set to a string object"); return -1; } tmp = op->func_name; Py_INCREF(value); op->func_name = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { Py_INCREF(op->func_qualname); return op->func_qualname; } static int __Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context) { PyObject *tmp; #if PY_MAJOR_VERSION >= 3 if (unlikely(value == NULL || !PyUnicode_Check(value))) #else if (unlikely(value == NULL || !PyString_Check(value))) #endif { PyErr_SetString(PyExc_TypeError, "__qualname__ must be set to a string object"); return -1; } tmp = op->func_qualname; Py_INCREF(value); op->func_qualname = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_self(__pyx_CyFunctionObject *m, CYTHON_UNUSED void *closure) { PyObject *self; self = m->func_closure; if (self == NULL) self = Py_None; Py_INCREF(self); return self; } static PyObject * __Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { if (unlikely(op->func_dict == NULL)) { op->func_dict = PyDict_New(); if (unlikely(op->func_dict == NULL)) return NULL; } Py_INCREF(op->func_dict); return op->func_dict; } static int __Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context) { PyObject *tmp; if (unlikely(value == NULL)) { PyErr_SetString(PyExc_TypeError, "function's dictionary may not be deleted"); return -1; } if (unlikely(!PyDict_Check(value))) { PyErr_SetString(PyExc_TypeError, "setting function's dictionary to a non-dict"); return -1; } tmp = op->func_dict; Py_INCREF(value); op->func_dict = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { Py_INCREF(op->func_globals); return op->func_globals; } static PyObject * __Pyx_CyFunction_get_closure(CYTHON_UNUSED __pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { Py_INCREF(Py_None); return Py_None; } static PyObject * __Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { PyObject* result = (op->func_code) ? op->func_code : Py_None; Py_INCREF(result); return result; } static int __Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) { int result = 0; PyObject *res = op->defaults_getter((PyObject *) op); if (unlikely(!res)) return -1; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS op->defaults_tuple = PyTuple_GET_ITEM(res, 0); Py_INCREF(op->defaults_tuple); op->defaults_kwdict = PyTuple_GET_ITEM(res, 1); Py_INCREF(op->defaults_kwdict); #else op->defaults_tuple = PySequence_ITEM(res, 0); if (unlikely(!op->defaults_tuple)) result = -1; else { op->defaults_kwdict = PySequence_ITEM(res, 1); if (unlikely(!op->defaults_kwdict)) result = -1; } #endif Py_DECREF(res); return result; } static int __Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) { PyObject* tmp; if (!value) { value = Py_None; } else if (value != Py_None && !PyTuple_Check(value)) { PyErr_SetString(PyExc_TypeError, "__defaults__ must be set to a tuple object"); return -1; } Py_INCREF(value); tmp = op->defaults_tuple; op->defaults_tuple = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { PyObject* result = op->defaults_tuple; if (unlikely(!result)) { if (op->defaults_getter) { if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL; result = op->defaults_tuple; } else { result = Py_None; } } Py_INCREF(result); return result; } static int __Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) { PyObject* tmp; if (!value) { value = Py_None; } else if (value != Py_None && !PyDict_Check(value)) { PyErr_SetString(PyExc_TypeError, "__kwdefaults__ must be set to a dict object"); return -1; } Py_INCREF(value); tmp = op->defaults_kwdict; op->defaults_kwdict = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { PyObject* result = op->defaults_kwdict; if (unlikely(!result)) { if (op->defaults_getter) { if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL; result = op->defaults_kwdict; } else { result = Py_None; } } Py_INCREF(result); return result; } static int __Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) { PyObject* tmp; if (!value || value == Py_None) { value = NULL; } else if (!PyDict_Check(value)) { PyErr_SetString(PyExc_TypeError, "__annotations__ must be set to a dict object"); return -1; } Py_XINCREF(value); tmp = op->func_annotations; op->func_annotations = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { PyObject* result = op->func_annotations; if (unlikely(!result)) { result = PyDict_New(); if (unlikely(!result)) return NULL; op->func_annotations = result; } Py_INCREF(result); return result; } static PyGetSetDef __pyx_CyFunction_getsets[] = { {(char *) "func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0}, {(char *) "__doc__", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0}, {(char *) "func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0}, {(char *) "__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0}, {(char *) "__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0}, {(char *) "__self__", (getter)__Pyx_CyFunction_get_self, 0, 0, 0}, {(char *) "func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0}, {(char *) "__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0}, {(char *) "func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0}, {(char *) "__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0}, {(char *) "func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0}, {(char *) "__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0}, {(char *) "func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0}, {(char *) "__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0}, {(char *) "func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0}, {(char *) "__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0}, {(char *) "__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0}, {(char *) "__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0}, {0, 0, 0, 0, 0} }; static PyMemberDef __pyx_CyFunction_members[] = { {(char *) "__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), PY_WRITE_RESTRICTED, 0}, {0, 0, 0, 0, 0} }; static PyObject * __Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, CYTHON_UNUSED PyObject *args) { #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(m->func.m_ml->ml_name); #else return PyString_FromString(m->func.m_ml->ml_name); #endif } static PyMethodDef __pyx_CyFunction_methods[] = { {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0}, {0, 0, 0, 0} }; #if PY_VERSION_HEX < 0x030500A0 #define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist) #else #define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func.m_weakreflist) #endif static PyObject *__Pyx_CyFunction_New(PyTypeObject *type, PyMethodDef *ml, int flags, PyObject* qualname, PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) { __pyx_CyFunctionObject *op = PyObject_GC_New(__pyx_CyFunctionObject, type); if (op == NULL) return NULL; op->flags = flags; __Pyx_CyFunction_weakreflist(op) = NULL; op->func.m_ml = ml; op->func.m_self = (PyObject *) op; Py_XINCREF(closure); op->func_closure = closure; Py_XINCREF(module); op->func.m_module = module; op->func_dict = NULL; op->func_name = NULL; Py_INCREF(qualname); op->func_qualname = qualname; op->func_doc = NULL; op->func_classobj = NULL; op->func_globals = globals; Py_INCREF(op->func_globals); Py_XINCREF(code); op->func_code = code; op->defaults_pyobjects = 0; op->defaults = NULL; op->defaults_tuple = NULL; op->defaults_kwdict = NULL; op->defaults_getter = NULL; op->func_annotations = NULL; PyObject_GC_Track(op); return (PyObject *) op; } static int __Pyx_CyFunction_clear(__pyx_CyFunctionObject *m) { Py_CLEAR(m->func_closure); Py_CLEAR(m->func.m_module); Py_CLEAR(m->func_dict); Py_CLEAR(m->func_name); Py_CLEAR(m->func_qualname); Py_CLEAR(m->func_doc); Py_CLEAR(m->func_globals); Py_CLEAR(m->func_code); Py_CLEAR(m->func_classobj); Py_CLEAR(m->defaults_tuple); Py_CLEAR(m->defaults_kwdict); Py_CLEAR(m->func_annotations); if (m->defaults) { PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m); int i; for (i = 0; i < m->defaults_pyobjects; i++) Py_XDECREF(pydefaults[i]); PyObject_Free(m->defaults); m->defaults = NULL; } return 0; } static void __Pyx__CyFunction_dealloc(__pyx_CyFunctionObject *m) { if (__Pyx_CyFunction_weakreflist(m) != NULL) PyObject_ClearWeakRefs((PyObject *) m); __Pyx_CyFunction_clear(m); PyObject_GC_Del(m); } static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m) { PyObject_GC_UnTrack(m); __Pyx__CyFunction_dealloc(m); } static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg) { Py_VISIT(m->func_closure); Py_VISIT(m->func.m_module); Py_VISIT(m->func_dict); Py_VISIT(m->func_name); Py_VISIT(m->func_qualname); Py_VISIT(m->func_doc); Py_VISIT(m->func_globals); Py_VISIT(m->func_code); Py_VISIT(m->func_classobj); Py_VISIT(m->defaults_tuple); Py_VISIT(m->defaults_kwdict); if (m->defaults) { PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m); int i; for (i = 0; i < m->defaults_pyobjects; i++) Py_VISIT(pydefaults[i]); } return 0; } static PyObject *__Pyx_CyFunction_descr_get(PyObject *func, PyObject *obj, PyObject *type) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; if (m->flags & __Pyx_CYFUNCTION_STATICMETHOD) { Py_INCREF(func); return func; } if (m->flags & __Pyx_CYFUNCTION_CLASSMETHOD) { if (type == NULL) type = (PyObject *)(Py_TYPE(obj)); return __Pyx_PyMethod_New(func, type, (PyObject *)(Py_TYPE(type))); } if (obj == Py_None) obj = NULL; return __Pyx_PyMethod_New(func, obj, type); } static PyObject* __Pyx_CyFunction_repr(__pyx_CyFunctionObject *op) { #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromFormat("", op->func_qualname, (void *)op); #else return PyString_FromFormat("", PyString_AsString(op->func_qualname), (void *)op); #endif } static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) { PyCFunctionObject* f = (PyCFunctionObject*)func; PyCFunction meth = f->m_ml->ml_meth; Py_ssize_t size; switch (f->m_ml->ml_flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) { case METH_VARARGS: if (likely(kw == NULL || PyDict_Size(kw) == 0)) return (*meth)(self, arg); break; case METH_VARARGS | METH_KEYWORDS: return (*(PyCFunctionWithKeywords)(void*)meth)(self, arg, kw); case METH_NOARGS: if (likely(kw == NULL || PyDict_Size(kw) == 0)) { size = PyTuple_GET_SIZE(arg); if (likely(size == 0)) return (*meth)(self, NULL); PyErr_Format(PyExc_TypeError, "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)", f->m_ml->ml_name, size); return NULL; } break; case METH_O: if (likely(kw == NULL || PyDict_Size(kw) == 0)) { size = PyTuple_GET_SIZE(arg); if (likely(size == 1)) { PyObject *result, *arg0; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS arg0 = PyTuple_GET_ITEM(arg, 0); #else arg0 = PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL; #endif result = (*meth)(self, arg0); #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS) Py_DECREF(arg0); #endif return result; } PyErr_Format(PyExc_TypeError, "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)", f->m_ml->ml_name, size); return NULL; } break; default: PyErr_SetString(PyExc_SystemError, "Bad call flags in " "__Pyx_CyFunction_Call. METH_OLDARGS is no " "longer supported!"); return NULL; } PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments", f->m_ml->ml_name); return NULL; } static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) { return __Pyx_CyFunction_CallMethod(func, ((PyCFunctionObject*)func)->m_self, arg, kw); } static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) { PyObject *result; __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func; if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) { Py_ssize_t argc; PyObject *new_args; PyObject *self; argc = PyTuple_GET_SIZE(args); new_args = PyTuple_GetSlice(args, 1, argc); if (unlikely(!new_args)) return NULL; self = PyTuple_GetItem(args, 0); if (unlikely(!self)) { Py_DECREF(new_args); return NULL; } result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw); Py_DECREF(new_args); } else { result = __Pyx_CyFunction_Call(func, args, kw); } return result; } static PyTypeObject __pyx_CyFunctionType_type = { PyVarObject_HEAD_INIT(0, 0) "cython_function_or_method", sizeof(__pyx_CyFunctionObject), 0, (destructor) __Pyx_CyFunction_dealloc, 0, 0, 0, #if PY_MAJOR_VERSION < 3 0, #else 0, #endif (reprfunc) __Pyx_CyFunction_repr, 0, 0, 0, 0, __Pyx_CyFunction_CallAsMethod, 0, 0, 0, 0, Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, 0, (traverseproc) __Pyx_CyFunction_traverse, (inquiry) __Pyx_CyFunction_clear, 0, #if PY_VERSION_HEX < 0x030500A0 offsetof(__pyx_CyFunctionObject, func_weakreflist), #else offsetof(PyCFunctionObject, m_weakreflist), #endif 0, 0, __pyx_CyFunction_methods, __pyx_CyFunction_members, __pyx_CyFunction_getsets, 0, 0, __Pyx_CyFunction_descr_get, 0, offsetof(__pyx_CyFunctionObject, func_dict), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, #if PY_VERSION_HEX >= 0x030400a1 0, #endif #if PY_VERSION_HEX >= 0x030800b1 0, #endif }; static int __pyx_CyFunction_init(void) { __pyx_CyFunctionType = __Pyx_FetchCommonType(&__pyx_CyFunctionType_type); if (unlikely(__pyx_CyFunctionType == NULL)) { return -1; } return 0; } static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *func, size_t size, int pyobjects) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->defaults = PyObject_Malloc(size); if (unlikely(!m->defaults)) return PyErr_NoMemory(); memset(m->defaults, 0, size); m->defaults_pyobjects = pyobjects; return m->defaults; } static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->defaults_tuple = tuple; Py_INCREF(tuple); } static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->defaults_kwdict = dict; Py_INCREF(dict); } static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->func_annotations = dict; Py_INCREF(dict); } /* FusedFunction */ static PyObject * __pyx_FusedFunction_New(PyTypeObject *type, PyMethodDef *ml, int flags, PyObject *qualname, PyObject *self, PyObject *module, PyObject *globals, PyObject *code) { __pyx_FusedFunctionObject *fusedfunc = (__pyx_FusedFunctionObject *) __Pyx_CyFunction_New(type, ml, flags, qualname, self, module, globals, code); if (!fusedfunc) return NULL; fusedfunc->__signatures__ = NULL; fusedfunc->type = NULL; fusedfunc->self = NULL; return (PyObject *) fusedfunc; } static void __pyx_FusedFunction_dealloc(__pyx_FusedFunctionObject *self) { PyObject_GC_UnTrack(self); Py_CLEAR(self->self); Py_CLEAR(self->type); Py_CLEAR(self->__signatures__); __Pyx__CyFunction_dealloc((__pyx_CyFunctionObject *) self); } static int __pyx_FusedFunction_traverse(__pyx_FusedFunctionObject *self, visitproc visit, void *arg) { Py_VISIT(self->self); Py_VISIT(self->type); Py_VISIT(self->__signatures__); return __Pyx_CyFunction_traverse((__pyx_CyFunctionObject *) self, visit, arg); } static int __pyx_FusedFunction_clear(__pyx_FusedFunctionObject *self) { Py_CLEAR(self->self); Py_CLEAR(self->type); Py_CLEAR(self->__signatures__); return __Pyx_CyFunction_clear((__pyx_CyFunctionObject *) self); } static PyObject * __pyx_FusedFunction_descr_get(PyObject *self, PyObject *obj, PyObject *type) { __pyx_FusedFunctionObject *func, *meth; func = (__pyx_FusedFunctionObject *) self; if (func->self || func->func.flags & __Pyx_CYFUNCTION_STATICMETHOD) { Py_INCREF(self); return self; } if (obj == Py_None) obj = NULL; meth = (__pyx_FusedFunctionObject *) __pyx_FusedFunction_NewEx( ((PyCFunctionObject *) func)->m_ml, ((__pyx_CyFunctionObject *) func)->flags, ((__pyx_CyFunctionObject *) func)->func_qualname, ((__pyx_CyFunctionObject *) func)->func_closure, ((PyCFunctionObject *) func)->m_module, ((__pyx_CyFunctionObject *) func)->func_globals, ((__pyx_CyFunctionObject *) func)->func_code); if (!meth) return NULL; Py_XINCREF(func->func.func_classobj); meth->func.func_classobj = func->func.func_classobj; Py_XINCREF(func->__signatures__); meth->__signatures__ = func->__signatures__; Py_XINCREF(type); meth->type = type; Py_XINCREF(func->func.defaults_tuple); meth->func.defaults_tuple = func->func.defaults_tuple; if (func->func.flags & __Pyx_CYFUNCTION_CLASSMETHOD) obj = type; Py_XINCREF(obj); meth->self = obj; return (PyObject *) meth; } static PyObject * _obj_to_str(PyObject *obj) { if (PyType_Check(obj)) return PyObject_GetAttr(obj, __pyx_n_s_name_2); else return PyObject_Str(obj); } static PyObject * __pyx_FusedFunction_getitem(__pyx_FusedFunctionObject *self, PyObject *idx) { PyObject *signature = NULL; PyObject *unbound_result_func; PyObject *result_func = NULL; if (self->__signatures__ == NULL) { PyErr_SetString(PyExc_TypeError, "Function is not fused"); return NULL; } if (PyTuple_Check(idx)) { PyObject *list = PyList_New(0); Py_ssize_t n = PyTuple_GET_SIZE(idx); PyObject *string = NULL; PyObject *sep = NULL; int i; if (!list) return NULL; for (i = 0; i < n; i++) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS PyObject *item = PyTuple_GET_ITEM(idx, i); #else PyObject *item = PySequence_ITEM(idx, i); #endif string = _obj_to_str(item); #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS) Py_DECREF(item); #endif if (!string || PyList_Append(list, string) < 0) goto __pyx_err; Py_DECREF(string); } sep = PyUnicode_FromString("|"); if (sep) signature = PyUnicode_Join(sep, list); __pyx_err: ; Py_DECREF(list); Py_XDECREF(sep); } else { signature = _obj_to_str(idx); } if (!signature) return NULL; unbound_result_func = PyObject_GetItem(self->__signatures__, signature); if (unbound_result_func) { if (self->self || self->type) { __pyx_FusedFunctionObject *unbound = (__pyx_FusedFunctionObject *) unbound_result_func; Py_CLEAR(unbound->func.func_classobj); Py_XINCREF(self->func.func_classobj); unbound->func.func_classobj = self->func.func_classobj; result_func = __pyx_FusedFunction_descr_get(unbound_result_func, self->self, self->type); } else { result_func = unbound_result_func; Py_INCREF(result_func); } } Py_DECREF(signature); Py_XDECREF(unbound_result_func); return result_func; } static PyObject * __pyx_FusedFunction_callfunction(PyObject *func, PyObject *args, PyObject *kw) { __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func; int static_specialized = (cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD && !((__pyx_FusedFunctionObject *) func)->__signatures__); if (cyfunc->flags & __Pyx_CYFUNCTION_CCLASS && !static_specialized) { return __Pyx_CyFunction_CallAsMethod(func, args, kw); } else { return __Pyx_CyFunction_Call(func, args, kw); } } static PyObject * __pyx_FusedFunction_call(PyObject *func, PyObject *args, PyObject *kw) { __pyx_FusedFunctionObject *binding_func = (__pyx_FusedFunctionObject *) func; Py_ssize_t argc = PyTuple_GET_SIZE(args); PyObject *new_args = NULL; __pyx_FusedFunctionObject *new_func = NULL; PyObject *result = NULL; PyObject *self = NULL; int is_staticmethod = binding_func->func.flags & __Pyx_CYFUNCTION_STATICMETHOD; int is_classmethod = binding_func->func.flags & __Pyx_CYFUNCTION_CLASSMETHOD; if (binding_func->self) { Py_ssize_t i; new_args = PyTuple_New(argc + 1); if (!new_args) return NULL; self = binding_func->self; #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS) Py_INCREF(self); #endif Py_INCREF(self); PyTuple_SET_ITEM(new_args, 0, self); for (i = 0; i < argc; i++) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS PyObject *item = PyTuple_GET_ITEM(args, i); Py_INCREF(item); #else PyObject *item = PySequence_ITEM(args, i); if (unlikely(!item)) goto bad; #endif PyTuple_SET_ITEM(new_args, i + 1, item); } args = new_args; } else if (binding_func->type) { if (argc < 1) { PyErr_SetString(PyExc_TypeError, "Need at least one argument, 0 given."); return NULL; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS self = PyTuple_GET_ITEM(args, 0); #else self = PySequence_ITEM(args, 0); if (unlikely(!self)) return NULL; #endif } if (self && !is_classmethod && !is_staticmethod) { int is_instance = PyObject_IsInstance(self, binding_func->type); if (unlikely(!is_instance)) { PyErr_Format(PyExc_TypeError, "First argument should be of type %.200s, got %.200s.", ((PyTypeObject *) binding_func->type)->tp_name, self->ob_type->tp_name); goto bad; } else if (unlikely(is_instance == -1)) { goto bad; } } #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS) Py_XDECREF(self); self = NULL; #endif if (binding_func->__signatures__) { PyObject *tup; if (is_staticmethod && binding_func->func.flags & __Pyx_CYFUNCTION_CCLASS) { tup = PyTuple_Pack(3, args, kw == NULL ? Py_None : kw, binding_func->func.defaults_tuple); if (unlikely(!tup)) goto bad; new_func = (__pyx_FusedFunctionObject *) __Pyx_CyFunction_CallMethod( func, binding_func->__signatures__, tup, NULL); } else { tup = PyTuple_Pack(4, binding_func->__signatures__, args, kw == NULL ? Py_None : kw, binding_func->func.defaults_tuple); if (unlikely(!tup)) goto bad; new_func = (__pyx_FusedFunctionObject *) __pyx_FusedFunction_callfunction(func, tup, NULL); } Py_DECREF(tup); if (unlikely(!new_func)) goto bad; Py_XINCREF(binding_func->func.func_classobj); Py_CLEAR(new_func->func.func_classobj); new_func->func.func_classobj = binding_func->func.func_classobj; func = (PyObject *) new_func; } result = __pyx_FusedFunction_callfunction(func, args, kw); bad: #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS) Py_XDECREF(self); #endif Py_XDECREF(new_args); Py_XDECREF((PyObject *) new_func); return result; } static PyMemberDef __pyx_FusedFunction_members[] = { {(char *) "__signatures__", T_OBJECT, offsetof(__pyx_FusedFunctionObject, __signatures__), READONLY, 0}, {0, 0, 0, 0, 0}, }; static PyMappingMethods __pyx_FusedFunction_mapping_methods = { 0, (binaryfunc) __pyx_FusedFunction_getitem, 0, }; static PyTypeObject __pyx_FusedFunctionType_type = { PyVarObject_HEAD_INIT(0, 0) "fused_cython_function", sizeof(__pyx_FusedFunctionObject), 0, (destructor) __pyx_FusedFunction_dealloc, 0, 0, 0, #if PY_MAJOR_VERSION < 3 0, #else 0, #endif 0, 0, 0, &__pyx_FusedFunction_mapping_methods, 0, (ternaryfunc) __pyx_FusedFunction_call, 0, 0, 0, 0, Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE, 0, (traverseproc) __pyx_FusedFunction_traverse, (inquiry) __pyx_FusedFunction_clear, 0, 0, 0, 0, 0, __pyx_FusedFunction_members, __pyx_CyFunction_getsets, &__pyx_CyFunctionType_type, 0, __pyx_FusedFunction_descr_get, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, #if PY_VERSION_HEX >= 0x030400a1 0, #endif #if PY_VERSION_HEX >= 0x030800b1 0, #endif }; static int __pyx_FusedFunction_init(void) { __pyx_FusedFunctionType = __Pyx_FetchCommonType(&__pyx_FusedFunctionType_type); if (__pyx_FusedFunctionType == NULL) { return -1; } return 0; } /* CLineInTraceback */ #ifndef CYTHON_CLINE_IN_TRACEBACK static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { PyObject *use_cline; PyObject *ptype, *pvalue, *ptraceback; #if CYTHON_COMPILING_IN_CPYTHON PyObject **cython_runtime_dict; #endif if (unlikely(!__pyx_cython_runtime)) { return c_line; } __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); #if CYTHON_COMPILING_IN_CPYTHON cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime); if (likely(cython_runtime_dict)) { __PYX_PY_DICT_LOOKUP_IF_MODIFIED( use_cline, *cython_runtime_dict, __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback)) } else #endif { PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback); if (use_cline_obj) { use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True; Py_DECREF(use_cline_obj); } else { PyErr_Clear(); use_cline = NULL; } } if (!use_cline) { c_line = 0; PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); } else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { c_line = 0; } __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); return c_line; } #endif /* CodeObjectCache */ static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { int start = 0, mid = 0, end = count - 1; if (end >= 0 && code_line > entries[end].code_line) { return count; } while (start < end) { mid = start + (end - start) / 2; if (code_line < entries[mid].code_line) { end = mid; } else if (code_line > entries[mid].code_line) { start = mid + 1; } else { return mid; } } if (code_line <= entries[mid].code_line) { return mid; } else { return mid + 1; } } static PyCodeObject *__pyx_find_code_object(int code_line) { PyCodeObject* code_object; int pos; if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) { return NULL; } pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) { return NULL; } code_object = __pyx_code_cache.entries[pos].code_object; Py_INCREF(code_object); return code_object; } static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { int pos, i; __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; if (unlikely(!code_line)) { return; } if (unlikely(!entries)) { entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); if (likely(entries)) { __pyx_code_cache.entries = entries; __pyx_code_cache.max_count = 64; __pyx_code_cache.count = 1; entries[0].code_line = code_line; entries[0].code_object = code_object; Py_INCREF(code_object); } return; } pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) { PyCodeObject* tmp = entries[pos].code_object; entries[pos].code_object = code_object; Py_DECREF(tmp); return; } if (__pyx_code_cache.count == __pyx_code_cache.max_count) { int new_max = __pyx_code_cache.max_count + 64; entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); if (unlikely(!entries)) { return; } __pyx_code_cache.entries = entries; __pyx_code_cache.max_count = new_max; } for (i=__pyx_code_cache.count; i>pos; i--) { entries[i] = entries[i-1]; } entries[pos].code_line = code_line; entries[pos].code_object = code_object; __pyx_code_cache.count++; Py_INCREF(code_object); } /* AddTraceback */ #include "compile.h" #include "frameobject.h" #include "traceback.h" static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( const char *funcname, int c_line, int py_line, const char *filename) { PyCodeObject *py_code = 0; PyObject *py_srcfile = 0; PyObject *py_funcname = 0; #if PY_MAJOR_VERSION < 3 py_srcfile = PyString_FromString(filename); #else py_srcfile = PyUnicode_FromString(filename); #endif if (!py_srcfile) goto bad; if (c_line) { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); #else py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); #endif } else { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromString(funcname); #else py_funcname = PyUnicode_FromString(funcname); #endif } if (!py_funcname) goto bad; py_code = __Pyx_PyCode_New( 0, 0, 0, 0, 0, __pyx_empty_bytes, /*PyObject *code,*/ __pyx_empty_tuple, /*PyObject *consts,*/ __pyx_empty_tuple, /*PyObject *names,*/ __pyx_empty_tuple, /*PyObject *varnames,*/ __pyx_empty_tuple, /*PyObject *freevars,*/ __pyx_empty_tuple, /*PyObject *cellvars,*/ py_srcfile, /*PyObject *filename,*/ py_funcname, /*PyObject *name,*/ py_line, __pyx_empty_bytes /*PyObject *lnotab*/ ); Py_DECREF(py_srcfile); Py_DECREF(py_funcname); return py_code; bad: Py_XDECREF(py_srcfile); Py_XDECREF(py_funcname); return NULL; } static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename) { PyCodeObject *py_code = 0; PyFrameObject *py_frame = 0; PyThreadState *tstate = __Pyx_PyThreadState_Current; if (c_line) { c_line = __Pyx_CLineForTraceback(tstate, c_line); } py_code = __pyx_find_code_object(c_line ? -c_line : py_line); if (!py_code) { py_code = __Pyx_CreateCodeObjectForTraceback( funcname, c_line, py_line, filename); if (!py_code) goto bad; __pyx_insert_code_object(c_line ? -c_line : py_line, py_code); } py_frame = PyFrame_New( tstate, /*PyThreadState *tstate,*/ py_code, /*PyCodeObject *code,*/ __pyx_d, /*PyObject *globals,*/ 0 /*PyObject *locals*/ ); if (!py_frame) goto bad; __Pyx_PyFrame_SetLineNumber(py_frame, py_line); PyTraceBack_Here(py_frame); bad: Py_XDECREF(py_code); Py_XDECREF(py_frame); } #if PY_MAJOR_VERSION < 3 static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags) { if (PyObject_CheckBuffer(obj)) return PyObject_GetBuffer(obj, view, flags); if (__Pyx_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) return __pyx_pw_5numpy_7ndarray_1__getbuffer__(obj, view, flags); if (__Pyx_TypeCheck(obj, __pyx_array_type)) return __pyx_array_getbuffer(obj, view, flags); if (__Pyx_TypeCheck(obj, __pyx_memoryview_type)) return __pyx_memoryview_getbuffer(obj, view, flags); PyErr_Format(PyExc_TypeError, "'%.200s' does not have the buffer interface", Py_TYPE(obj)->tp_name); return -1; } static void __Pyx_ReleaseBuffer(Py_buffer *view) { PyObject *obj = view->obj; if (!obj) return; if (PyObject_CheckBuffer(obj)) { PyBuffer_Release(view); return; } if ((0)) {} else if (__Pyx_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) __pyx_pw_5numpy_7ndarray_3__releasebuffer__(obj, view); view->obj = NULL; Py_DECREF(obj); } #endif /* MemviewSliceIsContig */ static int __pyx_memviewslice_is_contig(const __Pyx_memviewslice mvs, char order, int ndim) { int i, index, step, start; Py_ssize_t itemsize = mvs.memview->view.itemsize; if (order == 'F') { step = 1; start = 0; } else { step = -1; start = ndim - 1; } for (i = 0; i < ndim; i++) { index = start + step * i; if (mvs.suboffsets[index] >= 0 || mvs.strides[index] != itemsize) return 0; itemsize *= mvs.shape[index]; } return 1; } /* OverlappingSlices */ static void __pyx_get_array_memory_extents(__Pyx_memviewslice *slice, void **out_start, void **out_end, int ndim, size_t itemsize) { char *start, *end; int i; start = end = slice->data; for (i = 0; i < ndim; i++) { Py_ssize_t stride = slice->strides[i]; Py_ssize_t extent = slice->shape[i]; if (extent == 0) { *out_start = *out_end = start; return; } else { if (stride > 0) end += stride * (extent - 1); else start += stride * (extent - 1); } } *out_start = start; *out_end = end + itemsize; } static int __pyx_slices_overlap(__Pyx_memviewslice *slice1, __Pyx_memviewslice *slice2, int ndim, size_t itemsize) { void *start1, *end1, *start2, *end2; __pyx_get_array_memory_extents(slice1, &start1, &end1, ndim, itemsize); __pyx_get_array_memory_extents(slice2, &start2, &end2, ndim, itemsize); return (start1 < end2) && (start2 < end1); } /* Capsule */ static CYTHON_INLINE PyObject * __pyx_capsule_create(void *p, CYTHON_UNUSED const char *sig) { PyObject *cobj; #if PY_VERSION_HEX >= 0x02070000 cobj = PyCapsule_New(p, sig, NULL); #else cobj = PyCObject_FromVoidPtr(p, NULL); #endif return cobj; } /* IsLittleEndian */ static CYTHON_INLINE int __Pyx_Is_Little_Endian(void) { union { uint32_t u32; uint8_t u8[4]; } S; S.u32 = 0x01020304; return S.u8[0] == 4; } /* BufferFormatCheck */ static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx, __Pyx_BufFmt_StackElem* stack, __Pyx_TypeInfo* type) { stack[0].field = &ctx->root; stack[0].parent_offset = 0; ctx->root.type = type; ctx->root.name = "buffer dtype"; ctx->root.offset = 0; ctx->head = stack; ctx->head->field = &ctx->root; ctx->fmt_offset = 0; ctx->head->parent_offset = 0; ctx->new_packmode = '@'; ctx->enc_packmode = '@'; ctx->new_count = 1; ctx->enc_count = 0; ctx->enc_type = 0; ctx->is_complex = 0; ctx->is_valid_array = 0; ctx->struct_alignment = 0; while (type->typegroup == 'S') { ++ctx->head; ctx->head->field = type->fields; ctx->head->parent_offset = 0; type = type->fields->type; } } static int __Pyx_BufFmt_ParseNumber(const char** ts) { int count; const char* t = *ts; if (*t < '0' || *t > '9') { return -1; } else { count = *t++ - '0'; while (*t >= '0' && *t <= '9') { count *= 10; count += *t++ - '0'; } } *ts = t; return count; } static int __Pyx_BufFmt_ExpectNumber(const char **ts) { int number = __Pyx_BufFmt_ParseNumber(ts); if (number == -1) PyErr_Format(PyExc_ValueError,\ "Does not understand character buffer dtype format string ('%c')", **ts); return number; } static void __Pyx_BufFmt_RaiseUnexpectedChar(char ch) { PyErr_Format(PyExc_ValueError, "Unexpected format string character: '%c'", ch); } static const char* __Pyx_BufFmt_DescribeTypeChar(char ch, int is_complex) { switch (ch) { case 'c': return "'char'"; case 'b': return "'signed char'"; case 'B': return "'unsigned char'"; case 'h': return "'short'"; case 'H': return "'unsigned short'"; case 'i': return "'int'"; case 'I': return "'unsigned int'"; case 'l': return "'long'"; case 'L': return "'unsigned long'"; case 'q': return "'long long'"; case 'Q': return "'unsigned long long'"; case 'f': return (is_complex ? "'complex float'" : "'float'"); case 'd': return (is_complex ? "'complex double'" : "'double'"); case 'g': return (is_complex ? "'complex long double'" : "'long double'"); case 'T': return "a struct"; case 'O': return "Python object"; case 'P': return "a pointer"; case 's': case 'p': return "a string"; case 0: return "end"; default: return "unparseable format string"; } } static size_t __Pyx_BufFmt_TypeCharToStandardSize(char ch, int is_complex) { switch (ch) { case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; case 'h': case 'H': return 2; case 'i': case 'I': case 'l': case 'L': return 4; case 'q': case 'Q': return 8; case 'f': return (is_complex ? 8 : 4); case 'd': return (is_complex ? 16 : 8); case 'g': { PyErr_SetString(PyExc_ValueError, "Python does not define a standard format string size for long double ('g').."); return 0; } case 'O': case 'P': return sizeof(void*); default: __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } static size_t __Pyx_BufFmt_TypeCharToNativeSize(char ch, int is_complex) { switch (ch) { case 'c': case 'b': case 'B': case 's': case 'p': return 1; case 'h': case 'H': return sizeof(short); case 'i': case 'I': return sizeof(int); case 'l': case 'L': return sizeof(long); #ifdef HAVE_LONG_LONG case 'q': case 'Q': return sizeof(PY_LONG_LONG); #endif case 'f': return sizeof(float) * (is_complex ? 2 : 1); case 'd': return sizeof(double) * (is_complex ? 2 : 1); case 'g': return sizeof(long double) * (is_complex ? 2 : 1); case 'O': case 'P': return sizeof(void*); default: { __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } } typedef struct { char c; short x; } __Pyx_st_short; typedef struct { char c; int x; } __Pyx_st_int; typedef struct { char c; long x; } __Pyx_st_long; typedef struct { char c; float x; } __Pyx_st_float; typedef struct { char c; double x; } __Pyx_st_double; typedef struct { char c; long double x; } __Pyx_st_longdouble; typedef struct { char c; void *x; } __Pyx_st_void_p; #ifdef HAVE_LONG_LONG typedef struct { char c; PY_LONG_LONG x; } __Pyx_st_longlong; #endif static size_t __Pyx_BufFmt_TypeCharToAlignment(char ch, CYTHON_UNUSED int is_complex) { switch (ch) { case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; case 'h': case 'H': return sizeof(__Pyx_st_short) - sizeof(short); case 'i': case 'I': return sizeof(__Pyx_st_int) - sizeof(int); case 'l': case 'L': return sizeof(__Pyx_st_long) - sizeof(long); #ifdef HAVE_LONG_LONG case 'q': case 'Q': return sizeof(__Pyx_st_longlong) - sizeof(PY_LONG_LONG); #endif case 'f': return sizeof(__Pyx_st_float) - sizeof(float); case 'd': return sizeof(__Pyx_st_double) - sizeof(double); case 'g': return sizeof(__Pyx_st_longdouble) - sizeof(long double); case 'P': case 'O': return sizeof(__Pyx_st_void_p) - sizeof(void*); default: __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } /* These are for computing the padding at the end of the struct to align on the first member of the struct. This will probably the same as above, but we don't have any guarantees. */ typedef struct { short x; char c; } __Pyx_pad_short; typedef struct { int x; char c; } __Pyx_pad_int; typedef struct { long x; char c; } __Pyx_pad_long; typedef struct { float x; char c; } __Pyx_pad_float; typedef struct { double x; char c; } __Pyx_pad_double; typedef struct { long double x; char c; } __Pyx_pad_longdouble; typedef struct { void *x; char c; } __Pyx_pad_void_p; #ifdef HAVE_LONG_LONG typedef struct { PY_LONG_LONG x; char c; } __Pyx_pad_longlong; #endif static size_t __Pyx_BufFmt_TypeCharToPadding(char ch, CYTHON_UNUSED int is_complex) { switch (ch) { case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; case 'h': case 'H': return sizeof(__Pyx_pad_short) - sizeof(short); case 'i': case 'I': return sizeof(__Pyx_pad_int) - sizeof(int); case 'l': case 'L': return sizeof(__Pyx_pad_long) - sizeof(long); #ifdef HAVE_LONG_LONG case 'q': case 'Q': return sizeof(__Pyx_pad_longlong) - sizeof(PY_LONG_LONG); #endif case 'f': return sizeof(__Pyx_pad_float) - sizeof(float); case 'd': return sizeof(__Pyx_pad_double) - sizeof(double); case 'g': return sizeof(__Pyx_pad_longdouble) - sizeof(long double); case 'P': case 'O': return sizeof(__Pyx_pad_void_p) - sizeof(void*); default: __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } static char __Pyx_BufFmt_TypeCharToGroup(char ch, int is_complex) { switch (ch) { case 'c': return 'H'; case 'b': case 'h': case 'i': case 'l': case 'q': case 's': case 'p': return 'I'; case 'B': case 'H': case 'I': case 'L': case 'Q': return 'U'; case 'f': case 'd': case 'g': return (is_complex ? 'C' : 'R'); case 'O': return 'O'; case 'P': return 'P'; default: { __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } } static void __Pyx_BufFmt_RaiseExpected(__Pyx_BufFmt_Context* ctx) { if (ctx->head == NULL || ctx->head->field == &ctx->root) { const char* expected; const char* quote; if (ctx->head == NULL) { expected = "end"; quote = ""; } else { expected = ctx->head->field->type->name; quote = "'"; } PyErr_Format(PyExc_ValueError, "Buffer dtype mismatch, expected %s%s%s but got %s", quote, expected, quote, __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex)); } else { __Pyx_StructField* field = ctx->head->field; __Pyx_StructField* parent = (ctx->head - 1)->field; PyErr_Format(PyExc_ValueError, "Buffer dtype mismatch, expected '%s' but got %s in '%s.%s'", field->type->name, __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex), parent->type->name, field->name); } } static int __Pyx_BufFmt_ProcessTypeChunk(__Pyx_BufFmt_Context* ctx) { char group; size_t size, offset, arraysize = 1; if (ctx->enc_type == 0) return 0; if (ctx->head->field->type->arraysize[0]) { int i, ndim = 0; if (ctx->enc_type == 's' || ctx->enc_type == 'p') { ctx->is_valid_array = ctx->head->field->type->ndim == 1; ndim = 1; if (ctx->enc_count != ctx->head->field->type->arraysize[0]) { PyErr_Format(PyExc_ValueError, "Expected a dimension of size %zu, got %zu", ctx->head->field->type->arraysize[0], ctx->enc_count); return -1; } } if (!ctx->is_valid_array) { PyErr_Format(PyExc_ValueError, "Expected %d dimensions, got %d", ctx->head->field->type->ndim, ndim); return -1; } for (i = 0; i < ctx->head->field->type->ndim; i++) { arraysize *= ctx->head->field->type->arraysize[i]; } ctx->is_valid_array = 0; ctx->enc_count = 1; } group = __Pyx_BufFmt_TypeCharToGroup(ctx->enc_type, ctx->is_complex); do { __Pyx_StructField* field = ctx->head->field; __Pyx_TypeInfo* type = field->type; if (ctx->enc_packmode == '@' || ctx->enc_packmode == '^') { size = __Pyx_BufFmt_TypeCharToNativeSize(ctx->enc_type, ctx->is_complex); } else { size = __Pyx_BufFmt_TypeCharToStandardSize(ctx->enc_type, ctx->is_complex); } if (ctx->enc_packmode == '@') { size_t align_at = __Pyx_BufFmt_TypeCharToAlignment(ctx->enc_type, ctx->is_complex); size_t align_mod_offset; if (align_at == 0) return -1; align_mod_offset = ctx->fmt_offset % align_at; if (align_mod_offset > 0) ctx->fmt_offset += align_at - align_mod_offset; if (ctx->struct_alignment == 0) ctx->struct_alignment = __Pyx_BufFmt_TypeCharToPadding(ctx->enc_type, ctx->is_complex); } if (type->size != size || type->typegroup != group) { if (type->typegroup == 'C' && type->fields != NULL) { size_t parent_offset = ctx->head->parent_offset + field->offset; ++ctx->head; ctx->head->field = type->fields; ctx->head->parent_offset = parent_offset; continue; } if ((type->typegroup == 'H' || group == 'H') && type->size == size) { } else { __Pyx_BufFmt_RaiseExpected(ctx); return -1; } } offset = ctx->head->parent_offset + field->offset; if (ctx->fmt_offset != offset) { PyErr_Format(PyExc_ValueError, "Buffer dtype mismatch; next field is at offset %" CYTHON_FORMAT_SSIZE_T "d but %" CYTHON_FORMAT_SSIZE_T "d expected", (Py_ssize_t)ctx->fmt_offset, (Py_ssize_t)offset); return -1; } ctx->fmt_offset += size; if (arraysize) ctx->fmt_offset += (arraysize - 1) * size; --ctx->enc_count; while (1) { if (field == &ctx->root) { ctx->head = NULL; if (ctx->enc_count != 0) { __Pyx_BufFmt_RaiseExpected(ctx); return -1; } break; } ctx->head->field = ++field; if (field->type == NULL) { --ctx->head; field = ctx->head->field; continue; } else if (field->type->typegroup == 'S') { size_t parent_offset = ctx->head->parent_offset + field->offset; if (field->type->fields->type == NULL) continue; field = field->type->fields; ++ctx->head; ctx->head->field = field; ctx->head->parent_offset = parent_offset; break; } else { break; } } } while (ctx->enc_count); ctx->enc_type = 0; ctx->is_complex = 0; return 0; } static PyObject * __pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp) { const char *ts = *tsp; int i = 0, number; int ndim = ctx->head->field->type->ndim; ; ++ts; if (ctx->new_count != 1) { PyErr_SetString(PyExc_ValueError, "Cannot handle repeated arrays in format string"); return NULL; } if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; while (*ts && *ts != ')') { switch (*ts) { case ' ': case '\f': case '\r': case '\n': case '\t': case '\v': continue; default: break; } number = __Pyx_BufFmt_ExpectNumber(&ts); if (number == -1) return NULL; if (i < ndim && (size_t) number != ctx->head->field->type->arraysize[i]) return PyErr_Format(PyExc_ValueError, "Expected a dimension of size %zu, got %d", ctx->head->field->type->arraysize[i], number); if (*ts != ',' && *ts != ')') return PyErr_Format(PyExc_ValueError, "Expected a comma in format string, got '%c'", *ts); if (*ts == ',') ts++; i++; } if (i != ndim) return PyErr_Format(PyExc_ValueError, "Expected %d dimension(s), got %d", ctx->head->field->type->ndim, i); if (!*ts) { PyErr_SetString(PyExc_ValueError, "Unexpected end of format string, expected ')'"); return NULL; } ctx->is_valid_array = 1; ctx->new_count = 1; *tsp = ++ts; return Py_None; } static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts) { int got_Z = 0; while (1) { switch(*ts) { case 0: if (ctx->enc_type != 0 && ctx->head == NULL) { __Pyx_BufFmt_RaiseExpected(ctx); return NULL; } if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; if (ctx->head != NULL) { __Pyx_BufFmt_RaiseExpected(ctx); return NULL; } return ts; case ' ': case '\r': case '\n': ++ts; break; case '<': if (!__Pyx_Is_Little_Endian()) { PyErr_SetString(PyExc_ValueError, "Little-endian buffer not supported on big-endian compiler"); return NULL; } ctx->new_packmode = '='; ++ts; break; case '>': case '!': if (__Pyx_Is_Little_Endian()) { PyErr_SetString(PyExc_ValueError, "Big-endian buffer not supported on little-endian compiler"); return NULL; } ctx->new_packmode = '='; ++ts; break; case '=': case '@': case '^': ctx->new_packmode = *ts++; break; case 'T': { const char* ts_after_sub; size_t i, struct_count = ctx->new_count; size_t struct_alignment = ctx->struct_alignment; ctx->new_count = 1; ++ts; if (*ts != '{') { PyErr_SetString(PyExc_ValueError, "Buffer acquisition: Expected '{' after 'T'"); return NULL; } if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; ctx->enc_type = 0; ctx->enc_count = 0; ctx->struct_alignment = 0; ++ts; ts_after_sub = ts; for (i = 0; i != struct_count; ++i) { ts_after_sub = __Pyx_BufFmt_CheckString(ctx, ts); if (!ts_after_sub) return NULL; } ts = ts_after_sub; if (struct_alignment) ctx->struct_alignment = struct_alignment; } break; case '}': { size_t alignment = ctx->struct_alignment; ++ts; if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; ctx->enc_type = 0; if (alignment && ctx->fmt_offset % alignment) { ctx->fmt_offset += alignment - (ctx->fmt_offset % alignment); } } return ts; case 'x': if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; ctx->fmt_offset += ctx->new_count; ctx->new_count = 1; ctx->enc_count = 0; ctx->enc_type = 0; ctx->enc_packmode = ctx->new_packmode; ++ts; break; case 'Z': got_Z = 1; ++ts; if (*ts != 'f' && *ts != 'd' && *ts != 'g') { __Pyx_BufFmt_RaiseUnexpectedChar('Z'); return NULL; } CYTHON_FALLTHROUGH; case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I': case 'l': case 'L': case 'q': case 'Q': case 'f': case 'd': case 'g': case 'O': case 'p': if (ctx->enc_type == *ts && got_Z == ctx->is_complex && ctx->enc_packmode == ctx->new_packmode) { ctx->enc_count += ctx->new_count; ctx->new_count = 1; got_Z = 0; ++ts; break; } CYTHON_FALLTHROUGH; case 's': if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; ctx->enc_count = ctx->new_count; ctx->enc_packmode = ctx->new_packmode; ctx->enc_type = *ts; ctx->is_complex = got_Z; ++ts; ctx->new_count = 1; got_Z = 0; break; case ':': ++ts; while(*ts != ':') ++ts; ++ts; break; case '(': if (!__pyx_buffmt_parse_array(ctx, &ts)) return NULL; break; default: { int number = __Pyx_BufFmt_ExpectNumber(&ts); if (number == -1) return NULL; ctx->new_count = (size_t)number; } } } } /* TypeInfoCompare */ static int __pyx_typeinfo_cmp(__Pyx_TypeInfo *a, __Pyx_TypeInfo *b) { int i; if (!a || !b) return 0; if (a == b) return 1; if (a->size != b->size || a->typegroup != b->typegroup || a->is_unsigned != b->is_unsigned || a->ndim != b->ndim) { if (a->typegroup == 'H' || b->typegroup == 'H') { return a->size == b->size; } else { return 0; } } if (a->ndim) { for (i = 0; i < a->ndim; i++) if (a->arraysize[i] != b->arraysize[i]) return 0; } if (a->typegroup == 'S') { if (a->flags != b->flags) return 0; if (a->fields || b->fields) { if (!(a->fields && b->fields)) return 0; for (i = 0; a->fields[i].type && b->fields[i].type; i++) { __Pyx_StructField *field_a = a->fields + i; __Pyx_StructField *field_b = b->fields + i; if (field_a->offset != field_b->offset || !__pyx_typeinfo_cmp(field_a->type, field_b->type)) return 0; } return !a->fields[i].type && !b->fields[i].type; } } return 1; } /* MemviewSliceValidateAndInit */ static int __pyx_check_strides(Py_buffer *buf, int dim, int ndim, int spec) { if (buf->shape[dim] <= 1) return 1; if (buf->strides) { if (spec & __Pyx_MEMVIEW_CONTIG) { if (spec & (__Pyx_MEMVIEW_PTR|__Pyx_MEMVIEW_FULL)) { if (buf->strides[dim] != sizeof(void *)) { PyErr_Format(PyExc_ValueError, "Buffer is not indirectly contiguous " "in dimension %d.", dim); goto fail; } } else if (buf->strides[dim] != buf->itemsize) { PyErr_SetString(PyExc_ValueError, "Buffer and memoryview are not contiguous " "in the same dimension."); goto fail; } } if (spec & __Pyx_MEMVIEW_FOLLOW) { Py_ssize_t stride = buf->strides[dim]; if (stride < 0) stride = -stride; if (stride < buf->itemsize) { PyErr_SetString(PyExc_ValueError, "Buffer and memoryview are not contiguous " "in the same dimension."); goto fail; } } } else { if (spec & __Pyx_MEMVIEW_CONTIG && dim != ndim - 1) { PyErr_Format(PyExc_ValueError, "C-contiguous buffer is not contiguous in " "dimension %d", dim); goto fail; } else if (spec & (__Pyx_MEMVIEW_PTR)) { PyErr_Format(PyExc_ValueError, "C-contiguous buffer is not indirect in " "dimension %d", dim); goto fail; } else if (buf->suboffsets) { PyErr_SetString(PyExc_ValueError, "Buffer exposes suboffsets but no strides"); goto fail; } } return 1; fail: return 0; } static int __pyx_check_suboffsets(Py_buffer *buf, int dim, CYTHON_UNUSED int ndim, int spec) { if (spec & __Pyx_MEMVIEW_DIRECT) { if (buf->suboffsets && buf->suboffsets[dim] >= 0) { PyErr_Format(PyExc_ValueError, "Buffer not compatible with direct access " "in dimension %d.", dim); goto fail; } } if (spec & __Pyx_MEMVIEW_PTR) { if (!buf->suboffsets || (buf->suboffsets[dim] < 0)) { PyErr_Format(PyExc_ValueError, "Buffer is not indirectly accessible " "in dimension %d.", dim); goto fail; } } return 1; fail: return 0; } static int __pyx_verify_contig(Py_buffer *buf, int ndim, int c_or_f_flag) { int i; if (c_or_f_flag & __Pyx_IS_F_CONTIG) { Py_ssize_t stride = 1; for (i = 0; i < ndim; i++) { if (stride * buf->itemsize != buf->strides[i] && buf->shape[i] > 1) { PyErr_SetString(PyExc_ValueError, "Buffer not fortran contiguous."); goto fail; } stride = stride * buf->shape[i]; } } else if (c_or_f_flag & __Pyx_IS_C_CONTIG) { Py_ssize_t stride = 1; for (i = ndim - 1; i >- 1; i--) { if (stride * buf->itemsize != buf->strides[i] && buf->shape[i] > 1) { PyErr_SetString(PyExc_ValueError, "Buffer not C contiguous."); goto fail; } stride = stride * buf->shape[i]; } } return 1; fail: return 0; } static int __Pyx_ValidateAndInit_memviewslice( int *axes_specs, int c_or_f_flag, int buf_flags, int ndim, __Pyx_TypeInfo *dtype, __Pyx_BufFmt_StackElem stack[], __Pyx_memviewslice *memviewslice, PyObject *original_obj) { struct __pyx_memoryview_obj *memview, *new_memview; __Pyx_RefNannyDeclarations Py_buffer *buf; int i, spec = 0, retval = -1; __Pyx_BufFmt_Context ctx; int from_memoryview = __pyx_memoryview_check(original_obj); __Pyx_RefNannySetupContext("ValidateAndInit_memviewslice", 0); if (from_memoryview && __pyx_typeinfo_cmp(dtype, ((struct __pyx_memoryview_obj *) original_obj)->typeinfo)) { memview = (struct __pyx_memoryview_obj *) original_obj; new_memview = NULL; } else { memview = (struct __pyx_memoryview_obj *) __pyx_memoryview_new( original_obj, buf_flags, 0, dtype); new_memview = memview; if (unlikely(!memview)) goto fail; } buf = &memview->view; if (buf->ndim != ndim) { PyErr_Format(PyExc_ValueError, "Buffer has wrong number of dimensions (expected %d, got %d)", ndim, buf->ndim); goto fail; } if (new_memview) { __Pyx_BufFmt_Init(&ctx, stack, dtype); if (!__Pyx_BufFmt_CheckString(&ctx, buf->format)) goto fail; } if ((unsigned) buf->itemsize != dtype->size) { PyErr_Format(PyExc_ValueError, "Item size of buffer (%" CYTHON_FORMAT_SSIZE_T "u byte%s) " "does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "u byte%s)", buf->itemsize, (buf->itemsize > 1) ? "s" : "", dtype->name, dtype->size, (dtype->size > 1) ? "s" : ""); goto fail; } for (i = 0; i < ndim; i++) { spec = axes_specs[i]; if (!__pyx_check_strides(buf, i, ndim, spec)) goto fail; if (!__pyx_check_suboffsets(buf, i, ndim, spec)) goto fail; } if (buf->strides && !__pyx_verify_contig(buf, ndim, c_or_f_flag)) goto fail; if (unlikely(__Pyx_init_memviewslice(memview, ndim, memviewslice, new_memview != NULL) == -1)) { goto fail; } retval = 0; goto no_fail; fail: Py_XDECREF(new_memview); retval = -1; no_fail: __Pyx_RefNannyFinishContext(); return retval; } /* ObjectToMemviewSlice */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(PyObject *obj, int writable_flag) { __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_BufFmt_StackElem stack[1]; int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) }; int retcode; if (obj == Py_None) { result.memview = (struct __pyx_memoryview_obj *) Py_None; return result; } retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG, (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 1, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, stack, &result, obj); if (unlikely(retcode == -1)) goto __pyx_fail; return result; __pyx_fail: result.memview = NULL; result.data = NULL; return result; } /* ObjectToMemviewSlice */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(PyObject *obj, int writable_flag) { __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_BufFmt_StackElem stack[1]; int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) }; int retcode; if (obj == Py_None) { result.memview = (struct __pyx_memoryview_obj *) Py_None; return result; } retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG, (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 1, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, stack, &result, obj); if (unlikely(retcode == -1)) goto __pyx_fail; return result; __pyx_fail: result.memview = NULL; result.data = NULL; return result; } /* CIntFromPyVerify */ #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) #define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) #define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\ {\ func_type value = func_value;\ if (sizeof(target_type) < sizeof(func_type)) {\ if (unlikely(value != (func_type) (target_type) value)) {\ func_type zero = 0;\ if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\ return (target_type) -1;\ if (is_unsigned && unlikely(value < zero))\ goto raise_neg_overflow;\ else\ goto raise_overflow;\ }\ }\ return (target_type) value;\ } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(long) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(long) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(long) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(long), little, !is_unsigned); } } /* MemviewDtypeToObject */ static CYTHON_INLINE PyObject *__pyx_memview_get_nn___pyx_t_5numpy_float32_t(const char *itemp) { return (PyObject *) PyFloat_FromDouble(*(__pyx_t_5numpy_float32_t *) itemp); } static CYTHON_INLINE int __pyx_memview_set_nn___pyx_t_5numpy_float32_t(const char *itemp, PyObject *obj) { __pyx_t_5numpy_float32_t value = __pyx_PyFloat_AsFloat(obj); if ((value == ((npy_float32)-1)) && PyErr_Occurred()) return 0; *(__pyx_t_5numpy_float32_t *) itemp = value; return 1; } /* MemviewDtypeToObject */ static CYTHON_INLINE PyObject *__pyx_memview_get_nn___pyx_t_5numpy_float64_t(const char *itemp) { return (PyObject *) PyFloat_FromDouble(*(__pyx_t_5numpy_float64_t *) itemp); } static CYTHON_INLINE int __pyx_memview_set_nn___pyx_t_5numpy_float64_t(const char *itemp, PyObject *obj) { __pyx_t_5numpy_float64_t value = __pyx_PyFloat_AsDouble(obj); if ((value == ((npy_float64)-1)) && PyErr_Occurred()) return 0; *(__pyx_t_5numpy_float64_t *) itemp = value; return 1; } /* Declarations */ #if CYTHON_CCOMPLEX #ifdef __cplusplus static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { return ::std::complex< float >(x, y); } #else static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { return x + y*(__pyx_t_float_complex)_Complex_I; } #endif #else static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { __pyx_t_float_complex z; z.real = x; z.imag = y; return z; } #endif /* Arithmetic */ #if CYTHON_CCOMPLEX #else static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { return (a.real == b.real) && (a.imag == b.imag); } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; z.real = a.real + b.real; z.imag = a.imag + b.imag; return z; } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; z.real = a.real - b.real; z.imag = a.imag - b.imag; return z; } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; z.real = a.real * b.real - a.imag * b.imag; z.imag = a.real * b.imag + a.imag * b.real; return z; } #if 1 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { if (b.imag == 0) { return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real); } else if (fabsf(b.real) >= fabsf(b.imag)) { if (b.real == 0 && b.imag == 0) { return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.imag); } else { float r = b.imag / b.real; float s = (float)(1.0) / (b.real + b.imag * r); return __pyx_t_float_complex_from_parts( (a.real + a.imag * r) * s, (a.imag - a.real * r) * s); } } else { float r = b.real / b.imag; float s = (float)(1.0) / (b.imag + b.real * r); return __pyx_t_float_complex_from_parts( (a.real * r + a.imag) * s, (a.imag * r - a.real) * s); } } #else static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { if (b.imag == 0) { return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real); } else { float denom = b.real * b.real + b.imag * b.imag; return __pyx_t_float_complex_from_parts( (a.real * b.real + a.imag * b.imag) / denom, (a.imag * b.real - a.real * b.imag) / denom); } } #endif static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex a) { __pyx_t_float_complex z; z.real = -a.real; z.imag = -a.imag; return z; } static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex a) { return (a.real == 0) && (a.imag == 0); } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex a) { __pyx_t_float_complex z; z.real = a.real; z.imag = -a.imag; return z; } #if 1 static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex z) { #if !defined(HAVE_HYPOT) || defined(_MSC_VER) return sqrtf(z.real*z.real + z.imag*z.imag); #else return hypotf(z.real, z.imag); #endif } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; float r, lnr, theta, z_r, z_theta; if (b.imag == 0 && b.real == (int)b.real) { if (b.real < 0) { float denom = a.real * a.real + a.imag * a.imag; a.real = a.real / denom; a.imag = -a.imag / denom; b.real = -b.real; } switch ((int)b.real) { case 0: z.real = 1; z.imag = 0; return z; case 1: return a; case 2: z = __Pyx_c_prod_float(a, a); return __Pyx_c_prod_float(a, a); case 3: z = __Pyx_c_prod_float(a, a); return __Pyx_c_prod_float(z, a); case 4: z = __Pyx_c_prod_float(a, a); return __Pyx_c_prod_float(z, z); } } if (a.imag == 0) { if (a.real == 0) { return a; } else if (b.imag == 0) { z.real = powf(a.real, b.real); z.imag = 0; return z; } else if (a.real > 0) { r = a.real; theta = 0; } else { r = -a.real; theta = atan2f(0.0, -1.0); } } else { r = __Pyx_c_abs_float(a); theta = atan2f(a.imag, a.real); } lnr = logf(r); z_r = expf(lnr * b.real - theta * b.imag); z_theta = theta * b.real + lnr * b.imag; z.real = z_r * cosf(z_theta); z.imag = z_r * sinf(z_theta); return z; } #endif #endif /* Declarations */ #if CYTHON_CCOMPLEX #ifdef __cplusplus static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) { return ::std::complex< double >(x, y); } #else static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) { return x + y*(__pyx_t_double_complex)_Complex_I; } #endif #else static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) { __pyx_t_double_complex z; z.real = x; z.imag = y; return z; } #endif /* Arithmetic */ #if CYTHON_CCOMPLEX #else static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { return (a.real == b.real) && (a.imag == b.imag); } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; z.real = a.real + b.real; z.imag = a.imag + b.imag; return z; } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; z.real = a.real - b.real; z.imag = a.imag - b.imag; return z; } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; z.real = a.real * b.real - a.imag * b.imag; z.imag = a.real * b.imag + a.imag * b.real; return z; } #if 1 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { if (b.imag == 0) { return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real); } else if (fabs(b.real) >= fabs(b.imag)) { if (b.real == 0 && b.imag == 0) { return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.imag); } else { double r = b.imag / b.real; double s = (double)(1.0) / (b.real + b.imag * r); return __pyx_t_double_complex_from_parts( (a.real + a.imag * r) * s, (a.imag - a.real * r) * s); } } else { double r = b.real / b.imag; double s = (double)(1.0) / (b.imag + b.real * r); return __pyx_t_double_complex_from_parts( (a.real * r + a.imag) * s, (a.imag * r - a.real) * s); } } #else static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { if (b.imag == 0) { return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real); } else { double denom = b.real * b.real + b.imag * b.imag; return __pyx_t_double_complex_from_parts( (a.real * b.real + a.imag * b.imag) / denom, (a.imag * b.real - a.real * b.imag) / denom); } } #endif static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex a) { __pyx_t_double_complex z; z.real = -a.real; z.imag = -a.imag; return z; } static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex a) { return (a.real == 0) && (a.imag == 0); } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex a) { __pyx_t_double_complex z; z.real = a.real; z.imag = -a.imag; return z; } #if 1 static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex z) { #if !defined(HAVE_HYPOT) || defined(_MSC_VER) return sqrt(z.real*z.real + z.imag*z.imag); #else return hypot(z.real, z.imag); #endif } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; double r, lnr, theta, z_r, z_theta; if (b.imag == 0 && b.real == (int)b.real) { if (b.real < 0) { double denom = a.real * a.real + a.imag * a.imag; a.real = a.real / denom; a.imag = -a.imag / denom; b.real = -b.real; } switch ((int)b.real) { case 0: z.real = 1; z.imag = 0; return z; case 1: return a; case 2: z = __Pyx_c_prod_double(a, a); return __Pyx_c_prod_double(a, a); case 3: z = __Pyx_c_prod_double(a, a); return __Pyx_c_prod_double(z, a); case 4: z = __Pyx_c_prod_double(a, a); return __Pyx_c_prod_double(z, z); } } if (a.imag == 0) { if (a.real == 0) { return a; } else if (b.imag == 0) { z.real = pow(a.real, b.real); z.imag = 0; return z; } else if (a.real > 0) { r = a.real; theta = 0; } else { r = -a.real; theta = atan2(0.0, -1.0); } } else { r = __Pyx_c_abs_double(a); theta = atan2(a.imag, a.real); } lnr = log(r); z_r = exp(lnr * b.real - theta * b.imag); z_theta = theta * b.real + lnr * b.imag; z.real = z_r * cos(z_theta); z.imag = z_r * sin(z_theta); return z; } #endif #endif /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(int) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(int) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(int) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(int), little, !is_unsigned); } } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { const enum NPY_TYPES neg_one = (enum NPY_TYPES) ((enum NPY_TYPES) 0 - (enum NPY_TYPES) 1), const_zero = (enum NPY_TYPES) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(enum NPY_TYPES) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(enum NPY_TYPES) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(enum NPY_TYPES) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(enum NPY_TYPES), little, !is_unsigned); } } /* MemviewSliceCopyTemplate */ static __Pyx_memviewslice __pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs, const char *mode, int ndim, size_t sizeof_dtype, int contig_flag, int dtype_is_object) { __Pyx_RefNannyDeclarations int i; __Pyx_memviewslice new_mvs = { 0, 0, { 0 }, { 0 }, { 0 } }; struct __pyx_memoryview_obj *from_memview = from_mvs->memview; Py_buffer *buf = &from_memview->view; PyObject *shape_tuple = NULL; PyObject *temp_int = NULL; struct __pyx_array_obj *array_obj = NULL; struct __pyx_memoryview_obj *memview_obj = NULL; __Pyx_RefNannySetupContext("__pyx_memoryview_copy_new_contig", 0); for (i = 0; i < ndim; i++) { if (from_mvs->suboffsets[i] >= 0) { PyErr_Format(PyExc_ValueError, "Cannot copy memoryview slice with " "indirect dimensions (axis %d)", i); goto fail; } } shape_tuple = PyTuple_New(ndim); if (unlikely(!shape_tuple)) { goto fail; } __Pyx_GOTREF(shape_tuple); for(i = 0; i < ndim; i++) { temp_int = PyInt_FromSsize_t(from_mvs->shape[i]); if(unlikely(!temp_int)) { goto fail; } else { PyTuple_SET_ITEM(shape_tuple, i, temp_int); temp_int = NULL; } } array_obj = __pyx_array_new(shape_tuple, sizeof_dtype, buf->format, (char *) mode, NULL); if (unlikely(!array_obj)) { goto fail; } __Pyx_GOTREF(array_obj); memview_obj = (struct __pyx_memoryview_obj *) __pyx_memoryview_new( (PyObject *) array_obj, contig_flag, dtype_is_object, from_mvs->memview->typeinfo); if (unlikely(!memview_obj)) goto fail; if (unlikely(__Pyx_init_memviewslice(memview_obj, ndim, &new_mvs, 1) < 0)) goto fail; if (unlikely(__pyx_memoryview_copy_contents(*from_mvs, new_mvs, ndim, ndim, dtype_is_object) < 0)) goto fail; goto no_fail; fail: __Pyx_XDECREF(new_mvs.memview); new_mvs.memview = NULL; new_mvs.data = NULL; no_fail: __Pyx_XDECREF(shape_tuple); __Pyx_XDECREF(temp_int); __Pyx_XDECREF(array_obj); __Pyx_RefNannyFinishContext(); return new_mvs; } /* CIntFromPy */ static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *x) { const size_t neg_one = (size_t) ((size_t) 0 - (size_t) 1), const_zero = (size_t) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(size_t) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(size_t, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (size_t) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (size_t) 0; case 1: __PYX_VERIFY_RETURN_INT(size_t, digit, digits[0]) case 2: if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) >= 2 * PyLong_SHIFT) { return (size_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } } break; case 3: if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) >= 3 * PyLong_SHIFT) { return (size_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } } break; case 4: if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) >= 4 * PyLong_SHIFT) { return (size_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (size_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(size_t) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(size_t) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (size_t) 0; case -1: __PYX_VERIFY_RETURN_INT(size_t, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(size_t, digit, +digits[0]) case -2: if (8 * sizeof(size_t) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { return (size_t) (((size_t)-1)*(((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; case 2: if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { return (size_t) ((((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; case -3: if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { return (size_t) (((size_t)-1)*(((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; case 3: if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { return (size_t) ((((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; case -4: if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) { return (size_t) (((size_t)-1)*(((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; case 4: if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) { return (size_t) ((((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; } #endif if (sizeof(size_t) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(size_t, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(size_t) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(size_t, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else size_t val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (size_t) -1; } } else { size_t val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (size_t) -1; val = __Pyx_PyInt_As_size_t(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to size_t"); return (size_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to size_t"); return (size_t) -1; } /* CIntFromPy */ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(int) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (int) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (int) 0; case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) case 2: if (8 * sizeof(int) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); } } break; case 3: if (8 * sizeof(int) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); } } break; case 4: if (8 * sizeof(int) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (int) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(int) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (int) 0; case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) case -2: if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case 2: if (8 * sizeof(int) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case -3: if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case 3: if (8 * sizeof(int) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case -4: if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case 4: if (8 * sizeof(int) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; } #endif if (sizeof(int) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else int val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (int) -1; } } else { int val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (int) -1; val = __Pyx_PyInt_As_int(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to int"); return (int) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to int"); return (int) -1; } /* BytesContains */ static CYTHON_INLINE int __Pyx_BytesContains(PyObject* bytes, char character) { const Py_ssize_t length = PyBytes_GET_SIZE(bytes); char* char_start = PyBytes_AS_STRING(bytes); return memchr(char_start, (unsigned char)character, (size_t)length) != NULL; } /* ImportNumPyArray */ static PyObject* __Pyx__ImportNumPyArray(void) { PyObject *numpy_module, *ndarray_object = NULL; numpy_module = __Pyx_Import(__pyx_n_s_numpy, NULL, 0); if (likely(numpy_module)) { ndarray_object = PyObject_GetAttrString(numpy_module, "ndarray"); Py_DECREF(numpy_module); } if (unlikely(!ndarray_object)) { PyErr_Clear(); } if (unlikely(!ndarray_object || !PyObject_TypeCheck(ndarray_object, &PyType_Type))) { Py_XDECREF(ndarray_object); Py_INCREF(Py_None); ndarray_object = Py_None; } return ndarray_object; } static CYTHON_INLINE PyObject* __Pyx_ImportNumPyArrayTypeIfAvailable(void) { if (unlikely(!__pyx_numpy_ndarray)) { __pyx_numpy_ndarray = __Pyx__ImportNumPyArray(); } Py_INCREF(__pyx_numpy_ndarray); return __pyx_numpy_ndarray; } /* CIntFromPy */ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(long) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (long) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (long) 0; case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) case 2: if (8 * sizeof(long) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); } } break; case 3: if (8 * sizeof(long) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); } } break; case 4: if (8 * sizeof(long) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (long) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(long) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (long) 0; case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) case -2: if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case 2: if (8 * sizeof(long) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case -3: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case 3: if (8 * sizeof(long) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case -4: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case 4: if (8 * sizeof(long) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; } #endif if (sizeof(long) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else long val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (long) -1; } } else { long val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (long) -1; val = __Pyx_PyInt_As_long(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to long"); return (long) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to long"); return (long) -1; } /* CIntFromPy */ static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *x) { const char neg_one = (char) ((char) 0 - (char) 1), const_zero = (char) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(char) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(char, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (char) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (char) 0; case 1: __PYX_VERIFY_RETURN_INT(char, digit, digits[0]) case 2: if (8 * sizeof(char) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) >= 2 * PyLong_SHIFT) { return (char) (((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0])); } } break; case 3: if (8 * sizeof(char) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) >= 3 * PyLong_SHIFT) { return (char) (((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])); } } break; case 4: if (8 * sizeof(char) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) >= 4 * PyLong_SHIFT) { return (char) (((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (char) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(char) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(char, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(char) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(char, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (char) 0; case -1: __PYX_VERIFY_RETURN_INT(char, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(char, digit, +digits[0]) case -2: if (8 * sizeof(char) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) { return (char) (((char)-1)*(((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; case 2: if (8 * sizeof(char) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) { return (char) ((((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; case -3: if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) { return (char) (((char)-1)*(((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; case 3: if (8 * sizeof(char) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) { return (char) ((((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; case -4: if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 4 * PyLong_SHIFT) { return (char) (((char)-1)*(((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; case 4: if (8 * sizeof(char) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 4 * PyLong_SHIFT) { return (char) ((((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; } #endif if (sizeof(char) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(char, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(char) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(char, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else char val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (char) -1; } } else { char val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (char) -1; val = __Pyx_PyInt_As_char(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to char"); return (char) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to char"); return (char) -1; } /* CheckBinaryVersion */ static int __Pyx_check_binary_version(void) { char ctversion[4], rtversion[4]; PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion()); if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) { char message[200]; PyOS_snprintf(message, sizeof(message), "compiletime version %s of module '%.100s' " "does not match runtime version %s", ctversion, __Pyx_MODULE_NAME, rtversion); return PyErr_WarnEx(NULL, message, 1); } return 0; } /* FunctionExport */ static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *sig) { PyObject *d = 0; PyObject *cobj = 0; union { void (*fp)(void); void *p; } tmp; d = PyObject_GetAttrString(__pyx_m, (char *)"__pyx_capi__"); if (!d) { PyErr_Clear(); d = PyDict_New(); if (!d) goto bad; Py_INCREF(d); if (PyModule_AddObject(__pyx_m, (char *)"__pyx_capi__", d) < 0) goto bad; } tmp.fp = f; #if PY_VERSION_HEX >= 0x02070000 cobj = PyCapsule_New(tmp.p, sig, 0); #else cobj = PyCObject_FromVoidPtrAndDesc(tmp.p, (void *)sig, 0); #endif if (!cobj) goto bad; if (PyDict_SetItemString(d, name, cobj) < 0) goto bad; Py_DECREF(cobj); Py_DECREF(d); return 0; bad: Py_XDECREF(cobj); Py_XDECREF(d); return -1; } /* VoidPtrImport */ #ifndef __PYX_HAVE_RT_ImportVoidPtr #define __PYX_HAVE_RT_ImportVoidPtr static int __Pyx_ImportVoidPtr(PyObject *module, const char *name, void **p, const char *sig) { PyObject *d = 0; PyObject *cobj = 0; d = PyObject_GetAttrString(module, (char *)"__pyx_capi__"); if (!d) goto bad; cobj = PyDict_GetItemString(d, name); if (!cobj) { PyErr_Format(PyExc_ImportError, "%.200s does not export expected C variable %.200s", PyModule_GetName(module), name); goto bad; } #if PY_VERSION_HEX >= 0x02070000 if (!PyCapsule_IsValid(cobj, sig)) { PyErr_Format(PyExc_TypeError, "C variable %.200s.%.200s has wrong signature (expected %.500s, got %.500s)", PyModule_GetName(module), name, sig, PyCapsule_GetName(cobj)); goto bad; } *p = PyCapsule_GetPointer(cobj, sig); #else {const char *desc, *s1, *s2; desc = (const char *)PyCObject_GetDesc(cobj); if (!desc) goto bad; s1 = desc; s2 = sig; while (*s1 != '\0' && *s1 == *s2) { s1++; s2++; } if (*s1 != *s2) { PyErr_Format(PyExc_TypeError, "C variable %.200s.%.200s has wrong signature (expected %.500s, got %.500s)", PyModule_GetName(module), name, sig, desc); goto bad; } *p = PyCObject_AsVoidPtr(cobj);} #endif if (!(*p)) goto bad; Py_DECREF(d); return 0; bad: Py_XDECREF(d); return -1; } #endif /* FunctionImport */ #ifndef __PYX_HAVE_RT_ImportFunction #define __PYX_HAVE_RT_ImportFunction static int __Pyx_ImportFunction(PyObject *module, const char *funcname, void (**f)(void), const char *sig) { PyObject *d = 0; PyObject *cobj = 0; union { void (*fp)(void); void *p; } tmp; d = PyObject_GetAttrString(module, (char *)"__pyx_capi__"); if (!d) goto bad; cobj = PyDict_GetItemString(d, funcname); if (!cobj) { PyErr_Format(PyExc_ImportError, "%.200s does not export expected C function %.200s", PyModule_GetName(module), funcname); goto bad; } #if PY_VERSION_HEX >= 0x02070000 if (!PyCapsule_IsValid(cobj, sig)) { PyErr_Format(PyExc_TypeError, "C function %.200s.%.200s has wrong signature (expected %.500s, got %.500s)", PyModule_GetName(module), funcname, sig, PyCapsule_GetName(cobj)); goto bad; } tmp.p = PyCapsule_GetPointer(cobj, sig); #else {const char *desc, *s1, *s2; desc = (const char *)PyCObject_GetDesc(cobj); if (!desc) goto bad; s1 = desc; s2 = sig; while (*s1 != '\0' && *s1 == *s2) { s1++; s2++; } if (*s1 != *s2) { PyErr_Format(PyExc_TypeError, "C function %.200s.%.200s has wrong signature (expected %.500s, got %.500s)", PyModule_GetName(module), funcname, sig, desc); goto bad; } tmp.p = PyCObject_AsVoidPtr(cobj);} #endif *f = tmp.fp; if (!(*f)) goto bad; Py_DECREF(d); return 0; bad: Py_XDECREF(d); return -1; } #endif /* InitStrings */ static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { while (t->p) { #if PY_MAJOR_VERSION < 3 if (t->is_unicode) { *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); } else if (t->intern) { *t->p = PyString_InternFromString(t->s); } else { *t->p = PyString_FromStringAndSize(t->s, t->n - 1); } #else if (t->is_unicode | t->is_str) { if (t->intern) { *t->p = PyUnicode_InternFromString(t->s); } else if (t->encoding) { *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL); } else { *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1); } } else { *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1); } #endif if (!*t->p) return -1; if (PyObject_Hash(*t->p) == -1) return -1; ++t; } return 0; } static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) { return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str)); } static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) { Py_ssize_t ignore; return __Pyx_PyObject_AsStringAndSize(o, &ignore); } #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT #if !CYTHON_PEP393_ENABLED static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { char* defenc_c; PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL); if (!defenc) return NULL; defenc_c = PyBytes_AS_STRING(defenc); #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII { char* end = defenc_c + PyBytes_GET_SIZE(defenc); char* c; for (c = defenc_c; c < end; c++) { if ((unsigned char) (*c) >= 128) { PyUnicode_AsASCIIString(o); return NULL; } } } #endif *length = PyBytes_GET_SIZE(defenc); return defenc_c; } #else static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL; #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII if (likely(PyUnicode_IS_ASCII(o))) { *length = PyUnicode_GET_LENGTH(o); return PyUnicode_AsUTF8(o); } else { PyUnicode_AsASCIIString(o); return NULL; } #else return PyUnicode_AsUTF8AndSize(o, length); #endif } #endif #endif static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) { #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT if ( #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII __Pyx_sys_getdefaultencoding_not_ascii && #endif PyUnicode_Check(o)) { return __Pyx_PyUnicode_AsStringAndSize(o, length); } else #endif #if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)) if (PyByteArray_Check(o)) { *length = PyByteArray_GET_SIZE(o); return PyByteArray_AS_STRING(o); } else #endif { char* result; int r = PyBytes_AsStringAndSize(o, &result, length); if (unlikely(r < 0)) { return NULL; } else { return result; } } } static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { int is_true = x == Py_True; if (is_true | (x == Py_False) | (x == Py_None)) return is_true; else return PyObject_IsTrue(x); } static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) { int retval; if (unlikely(!x)) return -1; retval = __Pyx_PyObject_IsTrue(x); Py_DECREF(x); return retval; } static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) { #if PY_MAJOR_VERSION >= 3 if (PyLong_Check(result)) { if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, "__int__ returned non-int (type %.200s). " "The ability to return an instance of a strict subclass of int " "is deprecated, and may be removed in a future version of Python.", Py_TYPE(result)->tp_name)) { Py_DECREF(result); return NULL; } return result; } #endif PyErr_Format(PyExc_TypeError, "__%.4s__ returned non-%.4s (type %.200s)", type_name, type_name, Py_TYPE(result)->tp_name); Py_DECREF(result); return NULL; } static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) { #if CYTHON_USE_TYPE_SLOTS PyNumberMethods *m; #endif const char *name = NULL; PyObject *res = NULL; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x) || PyLong_Check(x))) #else if (likely(PyLong_Check(x))) #endif return __Pyx_NewRef(x); #if CYTHON_USE_TYPE_SLOTS m = Py_TYPE(x)->tp_as_number; #if PY_MAJOR_VERSION < 3 if (m && m->nb_int) { name = "int"; res = m->nb_int(x); } else if (m && m->nb_long) { name = "long"; res = m->nb_long(x); } #else if (likely(m && m->nb_int)) { name = "int"; res = m->nb_int(x); } #endif #else if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) { res = PyNumber_Int(x); } #endif if (likely(res)) { #if PY_MAJOR_VERSION < 3 if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) { #else if (unlikely(!PyLong_CheckExact(res))) { #endif return __Pyx_PyNumber_IntOrLongWrongResultType(res, name); } } else if (!PyErr_Occurred()) { PyErr_SetString(PyExc_TypeError, "an integer is required"); } return res; } static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { Py_ssize_t ival; PyObject *x; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_CheckExact(b))) { if (sizeof(Py_ssize_t) >= sizeof(long)) return PyInt_AS_LONG(b); else return PyInt_AsSsize_t(b); } #endif if (likely(PyLong_CheckExact(b))) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)b)->ob_digit; const Py_ssize_t size = Py_SIZE(b); if (likely(__Pyx_sst_abs(size) <= 1)) { ival = likely(size) ? digits[0] : 0; if (size == -1) ival = -ival; return ival; } else { switch (size) { case 2: if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case -2: if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case 3: if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case -3: if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case 4: if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case -4: if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; } } #endif return PyLong_AsSsize_t(b); } x = PyNumber_Index(b); if (!x) return -1; ival = PyInt_AsSsize_t(x); Py_DECREF(x); return ival; } static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); } static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { return PyInt_FromSize_t(ival); } #endif /* Py_PYTHON_H */ PyWavelets-1.1.1/pywt/_extensions/_cwt.pxd0000664000175000017500000000025413373763732021310 0ustar lee8rxlee8rx00000000000000from ._pywt cimport ContinuousWavelet, data_t cimport numpy as np import numpy as np cpdef cwt_psi_single(data_t[::1] data, ContinuousWavelet wavelet, size_t output_len) PyWavelets-1.1.1/pywt/_extensions/_cwt.pyx0000664000175000017500000001344313453134055021326 0ustar lee8rxlee8rx00000000000000#cython: boundscheck=False, wraparound=False from . cimport common from . cimport c_wt from .common cimport pywt_index_t, MODE from ._pywt cimport _check_dtype cimport numpy as np import numpy as np cpdef cwt_psi_single(data_t[::1] data, ContinuousWavelet wavelet, size_t output_len): cdef np.ndarray psi, psi_r, psi_i cdef size_t data_size = data.size cdef int family_number = 0 cdef double bandwidth_frequency cdef double center_frequency cdef int fbsp_order if output_len < 1: raise RuntimeError("Invalid output length.") #if data_t is np.float64_t: # TODO: Don't think these have to be 0-initialized # TODO: Check other methods of allocating (e.g. Cython/CPython arrays) if data_t is np.float64_t: if wavelet.short_family_name == "gaus": psi = np.zeros(output_len, np.float64) family_number = wavelet.family_number with nogil: c_wt.double_gaus(&data[0], psi.data, data_size, family_number) return psi elif wavelet.short_family_name == "mexh": psi = np.zeros(output_len, np.float64) with nogil: c_wt.double_mexh(&data[0], psi.data, data_size) return psi elif wavelet.short_family_name == "morl": psi = np.zeros(output_len, np.float64) with nogil: c_wt.double_morl(&data[0], psi.data, data_size) return psi elif wavelet.short_family_name == "cgau": psi_r = np.zeros(output_len, np.float64) psi_i = np.zeros(output_len, np.float64) family_number = wavelet.family_number with nogil: c_wt.double_cgau(&data[0], psi_r.data, psi_i.data, data_size, family_number) return (psi_r, psi_i) elif wavelet.short_family_name == "shan": psi_r = np.zeros(output_len, np.float64) psi_i = np.zeros(output_len, np.float64) bandwidth_frequency = wavelet.bandwidth_frequency center_frequency = wavelet.center_frequency with nogil: c_wt.double_shan(&data[0], psi_r.data, psi_i.data, data_size, bandwidth_frequency, center_frequency) return (psi_r, psi_i) elif wavelet.short_family_name == "fbsp": psi_r = np.zeros(output_len, np.float64) psi_i = np.zeros(output_len, np.float64) fbsp_order = wavelet.fbsp_order bandwidth_frequency = wavelet.bandwidth_frequency center_frequency = wavelet.center_frequency with nogil: c_wt.double_fbsp(&data[0], psi_r.data, psi_i.data, data_size, fbsp_order, bandwidth_frequency, center_frequency) return (psi_r, psi_i) elif wavelet.short_family_name == "cmor": psi_r = np.zeros(output_len, np.float64) psi_i = np.zeros(output_len, np.float64) bandwidth_frequency = wavelet.bandwidth_frequency center_frequency = wavelet.center_frequency with nogil: c_wt.double_cmor(&data[0], psi_r.data, psi_i.data, data_size, bandwidth_frequency, center_frequency) return (psi_r, psi_i) elif data_t is np.float32_t: if wavelet.short_family_name == "gaus": psi = np.zeros(output_len, np.float32) family_number = wavelet.family_number with nogil: c_wt.float_gaus(&data[0], psi.data, data_size, family_number) return psi elif wavelet.short_family_name == "mexh": psi = np.zeros(output_len, np.float32) with nogil: c_wt.float_mexh(&data[0], psi.data, data_size) return psi elif wavelet.short_family_name == "morl": psi = np.zeros(output_len, np.float32) with nogil: c_wt.float_morl(&data[0], psi.data, data_size) return psi elif wavelet.short_family_name == "cgau": psi_r = np.zeros(output_len, np.float32) psi_i = np.zeros(output_len, np.float32) family_number = wavelet.family_number with nogil: c_wt.float_cgau(&data[0], psi_r.data, psi_i.data, data_size, family_number) return (psi_r, psi_i) elif wavelet.short_family_name == "shan": psi_r = np.zeros(output_len, np.float32) psi_i = np.zeros(output_len, np.float32) bandwidth_frequency = wavelet.bandwidth_frequency center_frequency = wavelet.center_frequency with nogil: c_wt.float_shan(&data[0], psi_r.data, psi_i.data, data_size, bandwidth_frequency, center_frequency) return (psi_r, psi_i) elif wavelet.short_family_name == "fbsp": psi_r = np.zeros(output_len, np.float32) psi_i = np.zeros(output_len, np.float32) fbsp_order = wavelet.fbsp_order bandwidth_frequency = wavelet.bandwidth_frequency center_frequency = wavelet.center_frequency with nogil: c_wt.float_fbsp(&data[0], psi_r.data, psi_i.data, data_size, fbsp_order, bandwidth_frequency, center_frequency) return (psi_r, psi_i) elif wavelet.short_family_name == "cmor": psi_r = np.zeros(output_len, np.float32) psi_i = np.zeros(output_len, np.float32) bandwidth_frequency = wavelet.bandwidth_frequency center_frequency = wavelet.center_frequency with nogil: c_wt.float_cmor(&data[0], psi_r.data, psi_i.data, data_size, bandwidth_frequency, center_frequency) return (psi_r, psi_i) PyWavelets-1.1.1/pywt/_extensions/_dwt.c0000644000175000017500000615232713552543066020750 0ustar lee8rxlee8rx00000000000000/* Generated by Cython 0.29.13 */ /* BEGIN: Cython Metadata { "distutils": { "define_macros": [ [ "PY_EXTENSION", null ], [ "HAVE_C99_COMPLEX", null ], [ "CYTHON_CCOMPLEX", 1 ] ], "depends": [ "/home/lee8rx/miniconda3/envs/pyir/lib/python3.7/site-packages/numpy/core/include/numpy/arrayobject.h", "/home/lee8rx/miniconda3/envs/pyir/lib/python3.7/site-packages/numpy/core/include/numpy/ufuncobject.h", "pywt/_extensions/c/common.c", "pywt/_extensions/c/common.h", "pywt/_extensions/c/convolution.c", "pywt/_extensions/c/convolution.h", "pywt/_extensions/c/convolution.template.c", "pywt/_extensions/c/convolution.template.h", "pywt/_extensions/c/cwt.c", "pywt/_extensions/c/cwt.h", "pywt/_extensions/c/cwt.template.c", "pywt/_extensions/c/cwt.template.h", "pywt/_extensions/c/templating.h", "pywt/_extensions/c/wavelets.c", "pywt/_extensions/c/wavelets.h", "pywt/_extensions/c/wavelets_coeffs.h", "pywt/_extensions/c/wavelets_coeffs.template.h", "pywt/_extensions/c/wt.c", "pywt/_extensions/c/wt.h", "pywt/_extensions/c/wt.template.c", "pywt/_extensions/c/wt.template.h" ], "include_dirs": [ "./pywt/_extensions", "pywt/_extensions/c", "/home/lee8rx/miniconda3/envs/pyir/lib/python3.7/site-packages/numpy/core/include" ], "libraries": [ "c_wt" ], "name": "pywt._extensions._dwt", "sources": [ "pywt/_extensions/_dwt.pyx" ] }, "module_name": "pywt._extensions._dwt" } END: Cython Metadata */ #define PY_SSIZE_T_CLEAN #include "Python.h" #ifndef Py_PYTHON_H #error Python headers needed to compile C extensions, please install development version of Python. #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000) #error Cython requires Python 2.6+ or Python 3.3+. #else #define CYTHON_ABI "0_29_13" #define CYTHON_HEX_VERSION 0x001D0DF0 #define CYTHON_FUTURE_DIVISION 1 #include #ifndef offsetof #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) #endif #if !defined(WIN32) && !defined(MS_WINDOWS) #ifndef __stdcall #define __stdcall #endif #ifndef __cdecl #define __cdecl #endif #ifndef __fastcall #define __fastcall #endif #endif #ifndef DL_IMPORT #define DL_IMPORT(t) t #endif #ifndef DL_EXPORT #define DL_EXPORT(t) t #endif #define __PYX_COMMA , #ifndef HAVE_LONG_LONG #if PY_VERSION_HEX >= 0x02070000 #define HAVE_LONG_LONG #endif #endif #ifndef PY_LONG_LONG #define PY_LONG_LONG LONG_LONG #endif #ifndef Py_HUGE_VAL #define Py_HUGE_VAL HUGE_VAL #endif #ifdef PYPY_VERSION #define CYTHON_COMPILING_IN_PYPY 1 #define CYTHON_COMPILING_IN_PYSTON 0 #define CYTHON_COMPILING_IN_CPYTHON 0 #undef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 0 #undef CYTHON_USE_PYTYPE_LOOKUP #define CYTHON_USE_PYTYPE_LOOKUP 0 #if PY_VERSION_HEX < 0x03050000 #undef CYTHON_USE_ASYNC_SLOTS #define CYTHON_USE_ASYNC_SLOTS 0 #elif !defined(CYTHON_USE_ASYNC_SLOTS) #define CYTHON_USE_ASYNC_SLOTS 1 #endif #undef CYTHON_USE_PYLIST_INTERNALS #define CYTHON_USE_PYLIST_INTERNALS 0 #undef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 0 #undef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #undef CYTHON_USE_PYLONG_INTERNALS #define CYTHON_USE_PYLONG_INTERNALS 0 #undef CYTHON_AVOID_BORROWED_REFS #define CYTHON_AVOID_BORROWED_REFS 1 #undef CYTHON_ASSUME_SAFE_MACROS #define CYTHON_ASSUME_SAFE_MACROS 0 #undef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 0 #undef CYTHON_FAST_THREAD_STATE #define CYTHON_FAST_THREAD_STATE 0 #undef CYTHON_FAST_PYCALL #define CYTHON_FAST_PYCALL 0 #undef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT 0 #undef CYTHON_USE_TP_FINALIZE #define CYTHON_USE_TP_FINALIZE 0 #undef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 #elif defined(PYSTON_VERSION) #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_PYSTON 1 #define CYTHON_COMPILING_IN_CPYTHON 0 #ifndef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 1 #endif #undef CYTHON_USE_PYTYPE_LOOKUP #define CYTHON_USE_PYTYPE_LOOKUP 0 #undef CYTHON_USE_ASYNC_SLOTS #define CYTHON_USE_ASYNC_SLOTS 0 #undef CYTHON_USE_PYLIST_INTERNALS #define CYTHON_USE_PYLIST_INTERNALS 0 #ifndef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 1 #endif #undef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #undef CYTHON_USE_PYLONG_INTERNALS #define CYTHON_USE_PYLONG_INTERNALS 0 #ifndef CYTHON_AVOID_BORROWED_REFS #define CYTHON_AVOID_BORROWED_REFS 0 #endif #ifndef CYTHON_ASSUME_SAFE_MACROS #define CYTHON_ASSUME_SAFE_MACROS 1 #endif #ifndef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 1 #endif #undef CYTHON_FAST_THREAD_STATE #define CYTHON_FAST_THREAD_STATE 0 #undef CYTHON_FAST_PYCALL #define CYTHON_FAST_PYCALL 0 #undef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT 0 #undef CYTHON_USE_TP_FINALIZE #define CYTHON_USE_TP_FINALIZE 0 #undef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 #else #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_PYSTON 0 #define CYTHON_COMPILING_IN_CPYTHON 1 #ifndef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 1 #endif #if PY_VERSION_HEX < 0x02070000 #undef CYTHON_USE_PYTYPE_LOOKUP #define CYTHON_USE_PYTYPE_LOOKUP 0 #elif !defined(CYTHON_USE_PYTYPE_LOOKUP) #define CYTHON_USE_PYTYPE_LOOKUP 1 #endif #if PY_MAJOR_VERSION < 3 #undef CYTHON_USE_ASYNC_SLOTS #define CYTHON_USE_ASYNC_SLOTS 0 #elif !defined(CYTHON_USE_ASYNC_SLOTS) #define CYTHON_USE_ASYNC_SLOTS 1 #endif #if PY_VERSION_HEX < 0x02070000 #undef CYTHON_USE_PYLONG_INTERNALS #define CYTHON_USE_PYLONG_INTERNALS 0 #elif !defined(CYTHON_USE_PYLONG_INTERNALS) #define CYTHON_USE_PYLONG_INTERNALS 1 #endif #ifndef CYTHON_USE_PYLIST_INTERNALS #define CYTHON_USE_PYLIST_INTERNALS 1 #endif #ifndef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 1 #endif #if PY_VERSION_HEX < 0x030300F0 #undef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #elif !defined(CYTHON_USE_UNICODE_WRITER) #define CYTHON_USE_UNICODE_WRITER 1 #endif #ifndef CYTHON_AVOID_BORROWED_REFS #define CYTHON_AVOID_BORROWED_REFS 0 #endif #ifndef CYTHON_ASSUME_SAFE_MACROS #define CYTHON_ASSUME_SAFE_MACROS 1 #endif #ifndef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 1 #endif #ifndef CYTHON_FAST_THREAD_STATE #define CYTHON_FAST_THREAD_STATE 1 #endif #ifndef CYTHON_FAST_PYCALL #define CYTHON_FAST_PYCALL 1 #endif #ifndef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000) #endif #ifndef CYTHON_USE_TP_FINALIZE #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1) #endif #ifndef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1) #endif #ifndef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3) #endif #endif #if !defined(CYTHON_FAST_PYCCALL) #define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) #endif #if CYTHON_USE_PYLONG_INTERNALS #include "longintrepr.h" #undef SHIFT #undef BASE #undef MASK #ifdef SIZEOF_VOID_P enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) }; #endif #endif #ifndef __has_attribute #define __has_attribute(x) 0 #endif #ifndef __has_cpp_attribute #define __has_cpp_attribute(x) 0 #endif #ifndef CYTHON_RESTRICT #if defined(__GNUC__) #define CYTHON_RESTRICT __restrict__ #elif defined(_MSC_VER) && _MSC_VER >= 1400 #define CYTHON_RESTRICT __restrict #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define CYTHON_RESTRICT restrict #else #define CYTHON_RESTRICT #endif #endif #ifndef CYTHON_UNUSED # if defined(__GNUC__) # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) # define CYTHON_UNUSED __attribute__ ((__unused__)) # else # define CYTHON_UNUSED # endif # elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) # define CYTHON_UNUSED __attribute__ ((__unused__)) # else # define CYTHON_UNUSED # endif #endif #ifndef CYTHON_MAYBE_UNUSED_VAR # if defined(__cplusplus) template void CYTHON_MAYBE_UNUSED_VAR( const T& ) { } # else # define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x) # endif #endif #ifndef CYTHON_NCP_UNUSED # if CYTHON_COMPILING_IN_CPYTHON # define CYTHON_NCP_UNUSED # else # define CYTHON_NCP_UNUSED CYTHON_UNUSED # endif #endif #define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None) #ifdef _MSC_VER #ifndef _MSC_STDINT_H_ #if _MSC_VER < 1300 typedef unsigned char uint8_t; typedef unsigned int uint32_t; #else typedef unsigned __int8 uint8_t; typedef unsigned __int32 uint32_t; #endif #endif #else #include #endif #ifndef CYTHON_FALLTHROUGH #if defined(__cplusplus) && __cplusplus >= 201103L #if __has_cpp_attribute(fallthrough) #define CYTHON_FALLTHROUGH [[fallthrough]] #elif __has_cpp_attribute(clang::fallthrough) #define CYTHON_FALLTHROUGH [[clang::fallthrough]] #elif __has_cpp_attribute(gnu::fallthrough) #define CYTHON_FALLTHROUGH [[gnu::fallthrough]] #endif #endif #ifndef CYTHON_FALLTHROUGH #if __has_attribute(fallthrough) #define CYTHON_FALLTHROUGH __attribute__((fallthrough)) #else #define CYTHON_FALLTHROUGH #endif #endif #if defined(__clang__ ) && defined(__apple_build_version__) #if __apple_build_version__ < 7000000 #undef CYTHON_FALLTHROUGH #define CYTHON_FALLTHROUGH #endif #endif #endif #ifndef CYTHON_INLINE #if defined(__clang__) #define CYTHON_INLINE __inline__ __attribute__ ((__unused__)) #elif defined(__GNUC__) #define CYTHON_INLINE __inline__ #elif defined(_MSC_VER) #define CYTHON_INLINE __inline #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define CYTHON_INLINE inline #else #define CYTHON_INLINE #endif #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag) #define Py_OptimizeFlag 0 #endif #define __PYX_BUILD_PY_SSIZE_T "n" #define CYTHON_FORMAT_SSIZE_T "z" #if PY_MAJOR_VERSION < 3 #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #define __Pyx_DefaultClassType PyClass_Type #else #define __Pyx_BUILTIN_MODULE_NAME "builtins" #if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2 #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #else #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #endif #define __Pyx_DefaultClassType PyType_Type #endif #ifndef Py_TPFLAGS_CHECKTYPES #define Py_TPFLAGS_CHECKTYPES 0 #endif #ifndef Py_TPFLAGS_HAVE_INDEX #define Py_TPFLAGS_HAVE_INDEX 0 #endif #ifndef Py_TPFLAGS_HAVE_NEWBUFFER #define Py_TPFLAGS_HAVE_NEWBUFFER 0 #endif #ifndef Py_TPFLAGS_HAVE_FINALIZE #define Py_TPFLAGS_HAVE_FINALIZE 0 #endif #ifndef METH_STACKLESS #define METH_STACKLESS 0 #endif #if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL) #ifndef METH_FASTCALL #define METH_FASTCALL 0x80 #endif typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs); typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames); #else #define __Pyx_PyCFunctionFast _PyCFunctionFast #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords #endif #if CYTHON_FAST_PYCCALL #define __Pyx_PyFastCFunction_Check(func)\ ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))))) #else #define __Pyx_PyFastCFunction_Check(func) 0 #endif #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc) #define PyObject_Malloc(s) PyMem_Malloc(s) #define PyObject_Free(p) PyMem_Free(p) #define PyObject_Realloc(p) PyMem_Realloc(p) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030400A1 #define PyMem_RawMalloc(n) PyMem_Malloc(n) #define PyMem_RawRealloc(p, n) PyMem_Realloc(p, n) #define PyMem_RawFree(p) PyMem_Free(p) #endif #if CYTHON_COMPILING_IN_PYSTON #define __Pyx_PyCode_HasFreeVars(co) PyCode_HasFreeVars(co) #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno) #else #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno) #endif #if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000 #define __Pyx_PyThreadState_Current PyThreadState_GET() #elif PY_VERSION_HEX >= 0x03060000 #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet() #elif PY_VERSION_HEX >= 0x03000000 #define __Pyx_PyThreadState_Current PyThreadState_GET() #else #define __Pyx_PyThreadState_Current _PyThreadState_Current #endif #if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT) #include "pythread.h" #define Py_tss_NEEDS_INIT 0 typedef int Py_tss_t; static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) { *key = PyThread_create_key(); return 0; } static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) { Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t)); *key = Py_tss_NEEDS_INIT; return key; } static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) { PyObject_Free(key); } static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) { return *key != Py_tss_NEEDS_INIT; } static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) { PyThread_delete_key(*key); *key = Py_tss_NEEDS_INIT; } static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) { return PyThread_set_key_value(*key, value); } static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { return PyThread_get_key_value(*key); } #endif #if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized) #define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n)) #else #define __Pyx_PyDict_NewPresized(n) PyDict_New() #endif #if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) #else #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS #define __Pyx_PyDict_GetItemStr(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash) #else #define __Pyx_PyDict_GetItemStr(dict, name) PyDict_GetItem(dict, name) #endif #if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) #define CYTHON_PEP393_ENABLED 1 #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ 0 : _PyUnicode_Ready((PyObject *)(op))) #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u) #define __Pyx_PyUnicode_KIND(u) PyUnicode_KIND(u) #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) #else #define CYTHON_PEP393_ENABLED 0 #define PyUnicode_1BYTE_KIND 1 #define PyUnicode_2BYTE_KIND 2 #define PyUnicode_4BYTE_KIND 4 #define __Pyx_PyUnicode_READY(op) (0) #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u) #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111) #define __Pyx_PyUnicode_KIND(u) (sizeof(Py_UNICODE)) #define __Pyx_PyUnicode_DATA(u) ((void*)PyUnicode_AS_UNICODE(u)) #define __Pyx_PyUnicode_READ(k, d, i) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i])) #define __Pyx_PyUnicode_WRITE(k, d, i, ch) (((void)(k)), ((Py_UNICODE*)d)[i] = ch) #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_SIZE(u)) #endif #if CYTHON_COMPILING_IN_PYPY #define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b) #define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b) #else #define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b) #define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\ PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b)) #endif #if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains) #define PyUnicode_Contains(u, s) PySequence_Contains(u, s) #endif #if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check) #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type) #endif #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format) #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) #endif #define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) #define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyString_Format(a, b) PyUnicode_Format(a, b) #else #define __Pyx_PyString_Format(a, b) PyString_Format(a, b) #endif #if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII) #define PyObject_ASCII(o) PyObject_Repr(o) #endif #if PY_MAJOR_VERSION >= 3 #define PyBaseString_Type PyUnicode_Type #define PyStringObject PyUnicodeObject #define PyString_Type PyUnicode_Type #define PyString_Check PyUnicode_Check #define PyString_CheckExact PyUnicode_CheckExact #define PyObject_Unicode PyObject_Str #endif #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) #else #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj)) #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj)) #endif #ifndef PySet_CheckExact #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) #endif #if CYTHON_ASSUME_SAFE_MACROS #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) #else #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq) #endif #if PY_MAJOR_VERSION >= 3 #define PyIntObject PyLongObject #define PyInt_Type PyLong_Type #define PyInt_Check(op) PyLong_Check(op) #define PyInt_CheckExact(op) PyLong_CheckExact(op) #define PyInt_FromString PyLong_FromString #define PyInt_FromUnicode PyLong_FromUnicode #define PyInt_FromLong PyLong_FromLong #define PyInt_FromSize_t PyLong_FromSize_t #define PyInt_FromSsize_t PyLong_FromSsize_t #define PyInt_AsLong PyLong_AsLong #define PyInt_AS_LONG PyLong_AS_LONG #define PyInt_AsSsize_t PyLong_AsSsize_t #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask #define PyNumber_Int PyNumber_Long #endif #if PY_MAJOR_VERSION >= 3 #define PyBoolObject PyLongObject #endif #if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY #ifndef PyUnicode_InternFromString #define PyUnicode_InternFromString(s) PyUnicode_FromString(s) #endif #endif #if PY_VERSION_HEX < 0x030200A4 typedef long Py_hash_t; #define __Pyx_PyInt_FromHash_t PyInt_FromLong #define __Pyx_PyInt_AsHash_t PyInt_AsLong #else #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t #endif #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) #else #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) #endif #if CYTHON_USE_ASYNC_SLOTS #if PY_VERSION_HEX >= 0x030500B1 #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async) #else #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved)) #endif #else #define __Pyx_PyType_AsAsync(obj) NULL #endif #ifndef __Pyx_PyAsyncMethodsStruct typedef struct { unaryfunc am_await; unaryfunc am_aiter; unaryfunc am_anext; } __Pyx_PyAsyncMethodsStruct; #endif #if defined(WIN32) || defined(MS_WINDOWS) #define _USE_MATH_DEFINES #endif #include #ifdef NAN #define __PYX_NAN() ((float) NAN) #else static CYTHON_INLINE float __PYX_NAN() { float value; memset(&value, 0xFF, sizeof(value)); return value; } #endif #if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL) #define __Pyx_truncl trunc #else #define __Pyx_truncl truncl #endif #define __PYX_ERR(f_index, lineno, Ln_error) \ { \ __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ } #ifndef __PYX_EXTERN_C #ifdef __cplusplus #define __PYX_EXTERN_C extern "C" #else #define __PYX_EXTERN_C extern #endif #endif #define __PYX_HAVE__pywt___extensions___dwt #define __PYX_HAVE_API__pywt___extensions___dwt /* Early includes */ #include "c/common.h" #include "c/wavelets.h" #include #include #include "numpy/arrayobject.h" #include "numpy/ufuncobject.h" #include "c/wt.h" #include "c/cwt.h" #include "pythread.h" #include #include "pystate.h" #ifdef _OPENMP #include #endif /* _OPENMP */ #if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS) #define CYTHON_WITHOUT_ASSERTIONS #endif typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding; const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; #define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0 #define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0 #define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8) #define __PYX_DEFAULT_STRING_ENCODING "" #define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString #define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize #define __Pyx_uchar_cast(c) ((unsigned char)c) #define __Pyx_long_cast(x) ((long)x) #define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\ (sizeof(type) < sizeof(Py_ssize_t)) ||\ (sizeof(type) > sizeof(Py_ssize_t) &&\ likely(v < (type)PY_SSIZE_T_MAX ||\ v == (type)PY_SSIZE_T_MAX) &&\ (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\ v == (type)PY_SSIZE_T_MIN))) ||\ (sizeof(type) == sizeof(Py_ssize_t) &&\ (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\ v == (type)PY_SSIZE_T_MAX))) ) static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) { return (size_t) i < (size_t) limit; } #if defined (__cplusplus) && __cplusplus >= 201103L #include #define __Pyx_sst_abs(value) std::abs(value) #elif SIZEOF_INT >= SIZEOF_SIZE_T #define __Pyx_sst_abs(value) abs(value) #elif SIZEOF_LONG >= SIZEOF_SIZE_T #define __Pyx_sst_abs(value) labs(value) #elif defined (_MSC_VER) #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value)) #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define __Pyx_sst_abs(value) llabs(value) #elif defined (__GNUC__) #define __Pyx_sst_abs(value) __builtin_llabs(value) #else #define __Pyx_sst_abs(value) ((value<0) ? -value : value) #endif static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*); static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length); #define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s)) #define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l) #define __Pyx_PyBytes_FromString PyBytes_FromString #define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*); #if PY_MAJOR_VERSION < 3 #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize #else #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize #endif #define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AS_STRING(s)) #define __Pyx_PyObject_AsWritableString(s) ((char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsWritableSString(s) ((signed char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsSString(s) ((const signed char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsUString(s) ((const unsigned char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s) #define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s) #define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s) #define __Pyx_PyStr_FromCString(s) __Pyx_PyStr_FromString((const char*)s) #define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s) static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) { const Py_UNICODE *u_end = u; while (*u_end++) ; return (size_t)(u_end - u - 1); } #define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u)) #define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode #define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode #define __Pyx_NewRef(obj) (Py_INCREF(obj), obj) #define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None) static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b); static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*); static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); #define __Pyx_PySequence_Tuple(obj)\ (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj)) static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); #if CYTHON_ASSUME_SAFE_MACROS #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) #else #define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) #endif #define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x)) #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x)) #else #define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x)) #endif #define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x)) #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII static int __Pyx_sys_getdefaultencoding_not_ascii; static int __Pyx_init_sys_getdefaultencoding_params(void) { PyObject* sys; PyObject* default_encoding = NULL; PyObject* ascii_chars_u = NULL; PyObject* ascii_chars_b = NULL; const char* default_encoding_c; sys = PyImport_ImportModule("sys"); if (!sys) goto bad; default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL); Py_DECREF(sys); if (!default_encoding) goto bad; default_encoding_c = PyBytes_AsString(default_encoding); if (!default_encoding_c) goto bad; if (strcmp(default_encoding_c, "ascii") == 0) { __Pyx_sys_getdefaultencoding_not_ascii = 0; } else { char ascii_chars[128]; int c; for (c = 0; c < 128; c++) { ascii_chars[c] = c; } __Pyx_sys_getdefaultencoding_not_ascii = 1; ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL); if (!ascii_chars_u) goto bad; ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL); if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) { PyErr_Format( PyExc_ValueError, "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.", default_encoding_c); goto bad; } Py_DECREF(ascii_chars_u); Py_DECREF(ascii_chars_b); } Py_DECREF(default_encoding); return 0; bad: Py_XDECREF(default_encoding); Py_XDECREF(ascii_chars_u); Py_XDECREF(ascii_chars_b); return -1; } #endif #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL) #else #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL) #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT static char* __PYX_DEFAULT_STRING_ENCODING; static int __Pyx_init_sys_getdefaultencoding_params(void) { PyObject* sys; PyObject* default_encoding = NULL; char* default_encoding_c; sys = PyImport_ImportModule("sys"); if (!sys) goto bad; default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL); Py_DECREF(sys); if (!default_encoding) goto bad; default_encoding_c = PyBytes_AsString(default_encoding); if (!default_encoding_c) goto bad; __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1); if (!__PYX_DEFAULT_STRING_ENCODING) goto bad; strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c); Py_DECREF(default_encoding); return 0; bad: Py_XDECREF(default_encoding); return -1; } #endif #endif /* Test for GCC > 2.95 */ #if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))) #define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) #else /* !__GNUC__ or GCC < 2.95 */ #define likely(x) (x) #define unlikely(x) (x) #endif /* __GNUC__ */ static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; } static PyObject *__pyx_m = NULL; static PyObject *__pyx_d; static PyObject *__pyx_b; static PyObject *__pyx_cython_runtime = NULL; static PyObject *__pyx_empty_tuple; static PyObject *__pyx_empty_bytes; static PyObject *__pyx_empty_unicode; static int __pyx_lineno; static int __pyx_clineno = 0; static const char * __pyx_cfilenm= __FILE__; static const char *__pyx_filename; /* Header.proto */ #if !defined(CYTHON_CCOMPLEX) #if defined(__cplusplus) #define CYTHON_CCOMPLEX 1 #elif defined(_Complex_I) #define CYTHON_CCOMPLEX 1 #else #define CYTHON_CCOMPLEX 0 #endif #endif #if CYTHON_CCOMPLEX #ifdef __cplusplus #include #else #include #endif #endif #if CYTHON_CCOMPLEX && !defined(__cplusplus) && defined(__sun__) && defined(__GNUC__) #undef _Complex_I #define _Complex_I 1.0fj #endif static const char *__pyx_f[] = { "pywt/_extensions/_dwt.pyx", "__init__.pxd", "stringsource", "type.pxd", "pywt/_extensions/_pywt.pxd", }; /* NoFastGil.proto */ #define __Pyx_PyGILState_Ensure PyGILState_Ensure #define __Pyx_PyGILState_Release PyGILState_Release #define __Pyx_FastGIL_Remember() #define __Pyx_FastGIL_Forget() #define __Pyx_FastGilFuncInit() /* MemviewSliceStruct.proto */ struct __pyx_memoryview_obj; typedef struct { struct __pyx_memoryview_obj *memview; char *data; Py_ssize_t shape[8]; Py_ssize_t strides[8]; Py_ssize_t suboffsets[8]; } __Pyx_memviewslice; #define __Pyx_MemoryView_Len(m) (m.shape[0]) /* Atomics.proto */ #include #ifndef CYTHON_ATOMICS #define CYTHON_ATOMICS 1 #endif #define __pyx_atomic_int_type int #if CYTHON_ATOMICS && __GNUC__ >= 4 && (__GNUC_MINOR__ > 1 ||\ (__GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL >= 2)) &&\ !defined(__i386__) #define __pyx_atomic_incr_aligned(value, lock) __sync_fetch_and_add(value, 1) #define __pyx_atomic_decr_aligned(value, lock) __sync_fetch_and_sub(value, 1) #ifdef __PYX_DEBUG_ATOMICS #warning "Using GNU atomics" #endif #elif CYTHON_ATOMICS && defined(_MSC_VER) && 0 #include #undef __pyx_atomic_int_type #define __pyx_atomic_int_type LONG #define __pyx_atomic_incr_aligned(value, lock) InterlockedIncrement(value) #define __pyx_atomic_decr_aligned(value, lock) InterlockedDecrement(value) #ifdef __PYX_DEBUG_ATOMICS #pragma message ("Using MSVC atomics") #endif #elif CYTHON_ATOMICS && (defined(__ICC) || defined(__INTEL_COMPILER)) && 0 #define __pyx_atomic_incr_aligned(value, lock) _InterlockedIncrement(value) #define __pyx_atomic_decr_aligned(value, lock) _InterlockedDecrement(value) #ifdef __PYX_DEBUG_ATOMICS #warning "Using Intel atomics" #endif #else #undef CYTHON_ATOMICS #define CYTHON_ATOMICS 0 #ifdef __PYX_DEBUG_ATOMICS #warning "Not using atomics" #endif #endif typedef volatile __pyx_atomic_int_type __pyx_atomic_int; #if CYTHON_ATOMICS #define __pyx_add_acquisition_count(memview)\ __pyx_atomic_incr_aligned(__pyx_get_slice_count_pointer(memview), memview->lock) #define __pyx_sub_acquisition_count(memview)\ __pyx_atomic_decr_aligned(__pyx_get_slice_count_pointer(memview), memview->lock) #else #define __pyx_add_acquisition_count(memview)\ __pyx_add_acquisition_count_locked(__pyx_get_slice_count_pointer(memview), memview->lock) #define __pyx_sub_acquisition_count(memview)\ __pyx_sub_acquisition_count_locked(__pyx_get_slice_count_pointer(memview), memview->lock) #endif /* ForceInitThreads.proto */ #ifndef __PYX_FORCE_INIT_THREADS #define __PYX_FORCE_INIT_THREADS 0 #endif /* BufferFormatStructs.proto */ #define IS_UNSIGNED(type) (((type) -1) > 0) struct __Pyx_StructField_; #define __PYX_BUF_FLAGS_PACKED_STRUCT (1 << 0) typedef struct { const char* name; struct __Pyx_StructField_* fields; size_t size; size_t arraysize[8]; int ndim; char typegroup; char is_unsigned; int flags; } __Pyx_TypeInfo; typedef struct __Pyx_StructField_ { __Pyx_TypeInfo* type; const char* name; size_t offset; } __Pyx_StructField; typedef struct { __Pyx_StructField* field; size_t parent_offset; } __Pyx_BufFmt_StackElem; typedef struct { __Pyx_StructField root; __Pyx_BufFmt_StackElem* head; size_t fmt_offset; size_t new_count, enc_count; size_t struct_alignment; int is_complex; char enc_type; char new_packmode; char enc_packmode; char is_valid_array; } __Pyx_BufFmt_Context; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":776 * # in Cython to enable them only on the right systems. * * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<< * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t */ typedef npy_int8 __pyx_t_5numpy_int8_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":777 * * ctypedef npy_int8 int8_t * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< * ctypedef npy_int32 int32_t * ctypedef npy_int64 int64_t */ typedef npy_int16 __pyx_t_5numpy_int16_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":778 * ctypedef npy_int8 int8_t * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<< * ctypedef npy_int64 int64_t * #ctypedef npy_int96 int96_t */ typedef npy_int32 __pyx_t_5numpy_int32_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":779 * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<< * #ctypedef npy_int96 int96_t * #ctypedef npy_int128 int128_t */ typedef npy_int64 __pyx_t_5numpy_int64_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":783 * #ctypedef npy_int128 int128_t * * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t */ typedef npy_uint8 __pyx_t_5numpy_uint8_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":784 * * ctypedef npy_uint8 uint8_t * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< * ctypedef npy_uint32 uint32_t * ctypedef npy_uint64 uint64_t */ typedef npy_uint16 __pyx_t_5numpy_uint16_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":785 * ctypedef npy_uint8 uint8_t * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<< * ctypedef npy_uint64 uint64_t * #ctypedef npy_uint96 uint96_t */ typedef npy_uint32 __pyx_t_5numpy_uint32_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":786 * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<< * #ctypedef npy_uint96 uint96_t * #ctypedef npy_uint128 uint128_t */ typedef npy_uint64 __pyx_t_5numpy_uint64_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":790 * #ctypedef npy_uint128 uint128_t * * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< * ctypedef npy_float64 float64_t * #ctypedef npy_float80 float80_t */ typedef npy_float32 __pyx_t_5numpy_float32_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":791 * * ctypedef npy_float32 float32_t * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< * #ctypedef npy_float80 float80_t * #ctypedef npy_float128 float128_t */ typedef npy_float64 __pyx_t_5numpy_float64_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":800 * # The int types are mapped a bit surprising -- * # numpy.int corresponds to 'l' and numpy.long to 'q' * ctypedef npy_long int_t # <<<<<<<<<<<<<< * ctypedef npy_longlong long_t * ctypedef npy_longlong longlong_t */ typedef npy_long __pyx_t_5numpy_int_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":801 * # numpy.int corresponds to 'l' and numpy.long to 'q' * ctypedef npy_long int_t * ctypedef npy_longlong long_t # <<<<<<<<<<<<<< * ctypedef npy_longlong longlong_t * */ typedef npy_longlong __pyx_t_5numpy_long_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":802 * ctypedef npy_long int_t * ctypedef npy_longlong long_t * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<< * * ctypedef npy_ulong uint_t */ typedef npy_longlong __pyx_t_5numpy_longlong_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":804 * ctypedef npy_longlong longlong_t * * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< * ctypedef npy_ulonglong ulong_t * ctypedef npy_ulonglong ulonglong_t */ typedef npy_ulong __pyx_t_5numpy_uint_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":805 * * ctypedef npy_ulong uint_t * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< * ctypedef npy_ulonglong ulonglong_t * */ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":806 * ctypedef npy_ulong uint_t * ctypedef npy_ulonglong ulong_t * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<< * * ctypedef npy_intp intp_t */ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":808 * ctypedef npy_ulonglong ulonglong_t * * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< * ctypedef npy_uintp uintp_t * */ typedef npy_intp __pyx_t_5numpy_intp_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":809 * * ctypedef npy_intp intp_t * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< * * ctypedef npy_double float_t */ typedef npy_uintp __pyx_t_5numpy_uintp_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":811 * ctypedef npy_uintp uintp_t * * ctypedef npy_double float_t # <<<<<<<<<<<<<< * ctypedef npy_double double_t * ctypedef npy_longdouble longdouble_t */ typedef npy_double __pyx_t_5numpy_float_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":812 * * ctypedef npy_double float_t * ctypedef npy_double double_t # <<<<<<<<<<<<<< * ctypedef npy_longdouble longdouble_t * */ typedef npy_double __pyx_t_5numpy_double_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":813 * ctypedef npy_double float_t * ctypedef npy_double double_t * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<< * * ctypedef npy_cfloat cfloat_t */ typedef npy_longdouble __pyx_t_5numpy_longdouble_t; /* "_pywt.pxd":5 * include "config.pxi" * * ctypedef Py_ssize_t pywt_index_t # <<<<<<<<<<<<<< * * ctypedef fused data_t: */ typedef Py_ssize_t __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t; /* Declarations.proto */ #if CYTHON_CCOMPLEX #ifdef __cplusplus typedef ::std::complex< float > __pyx_t_float_complex; #else typedef float _Complex __pyx_t_float_complex; #endif #else typedef struct { float real, imag; } __pyx_t_float_complex; #endif static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float, float); /* Declarations.proto */ #if CYTHON_CCOMPLEX #ifdef __cplusplus typedef ::std::complex< double > __pyx_t_double_complex; #else typedef double _Complex __pyx_t_double_complex; #endif #else typedef struct { double real, imag; } __pyx_t_double_complex; #endif static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double, double); /*--- Type declarations ---*/ struct WaveletObject; struct ContinuousWaveletObject; struct __pyx_array_obj; struct __pyx_MemviewEnum_obj; struct __pyx_memoryview_obj; struct __pyx_memoryviewslice_obj; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":815 * ctypedef npy_longdouble longdouble_t * * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< * ctypedef npy_cdouble cdouble_t * ctypedef npy_clongdouble clongdouble_t */ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":816 * * ctypedef npy_cfloat cfloat_t * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< * ctypedef npy_clongdouble clongdouble_t * */ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":817 * ctypedef npy_cfloat cfloat_t * ctypedef npy_cdouble cdouble_t * ctypedef npy_clongdouble clongdouble_t # <<<<<<<<<<<<<< * * ctypedef npy_cdouble complex_t */ typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":819 * ctypedef npy_clongdouble clongdouble_t * * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew1(a): */ typedef npy_cdouble __pyx_t_5numpy_complex_t; struct __pyx_opt_args_4pywt_11_extensions_4_dwt_dwt_axis; struct __pyx_opt_args_4pywt_11_extensions_4_dwt_idwt_axis; /* "pywt/_extensions/_dwt.pyx":81 * * * cpdef dwt_axis(np.ndarray data, Wavelet wavelet, MODE mode, unsigned int axis=0): # <<<<<<<<<<<<<< * # memory-views do not support n-dimensional arrays, use np.ndarray instead * cdef common.ArrayInfo data_info, output_info */ struct __pyx_opt_args_4pywt_11_extensions_4_dwt_dwt_axis { int __pyx_n; unsigned int axis; }; /* "pywt/_extensions/_dwt.pyx":238 * * * cpdef idwt_axis(np.ndarray coefs_a, np.ndarray coefs_d, # <<<<<<<<<<<<<< * Wavelet wavelet, MODE mode, unsigned int axis=0): * cdef common.ArrayInfo a_info, d_info, output_info */ struct __pyx_opt_args_4pywt_11_extensions_4_dwt_idwt_axis { int __pyx_n; unsigned int axis; }; /* "_pywt.pxd":23 * have_c99_complex = 0 * * cdef public class Wavelet [type WaveletType, object WaveletObject]: # <<<<<<<<<<<<<< * cdef wavelet.DiscreteWavelet* w * */ struct WaveletObject { PyObject_HEAD DiscreteWavelet *w; PyObject *name; PyObject *number; }; __PYX_EXTERN_C DL_EXPORT(PyTypeObject) WaveletType; /* "_pywt.pxd":29 * cdef readonly number * * cdef public class ContinuousWavelet [type ContinuousWaveletType, object ContinuousWaveletObject]: # <<<<<<<<<<<<<< * cdef wavelet.ContinuousWavelet* w * */ struct ContinuousWaveletObject { PyObject_HEAD ContinuousWavelet *w; PyObject *name; PyObject *number; PyObject *dt; }; __PYX_EXTERN_C DL_EXPORT(PyTypeObject) ContinuousWaveletType; /* "View.MemoryView":105 * * @cname("__pyx_array") * cdef class array: # <<<<<<<<<<<<<< * * cdef: */ struct __pyx_array_obj { PyObject_HEAD struct __pyx_vtabstruct_array *__pyx_vtab; char *data; Py_ssize_t len; char *format; int ndim; Py_ssize_t *_shape; Py_ssize_t *_strides; Py_ssize_t itemsize; PyObject *mode; PyObject *_format; void (*callback_free_data)(void *); int free_data; int dtype_is_object; }; /* "View.MemoryView":279 * * @cname('__pyx_MemviewEnum') * cdef class Enum(object): # <<<<<<<<<<<<<< * cdef object name * def __init__(self, name): */ struct __pyx_MemviewEnum_obj { PyObject_HEAD PyObject *name; }; /* "View.MemoryView":330 * * @cname('__pyx_memoryview') * cdef class memoryview(object): # <<<<<<<<<<<<<< * * cdef object obj */ struct __pyx_memoryview_obj { PyObject_HEAD struct __pyx_vtabstruct_memoryview *__pyx_vtab; PyObject *obj; PyObject *_size; PyObject *_array_interface; PyThread_type_lock lock; __pyx_atomic_int acquisition_count[2]; __pyx_atomic_int *acquisition_count_aligned_p; Py_buffer view; int flags; int dtype_is_object; __Pyx_TypeInfo *typeinfo; }; /* "View.MemoryView":965 * * @cname('__pyx_memoryviewslice') * cdef class _memoryviewslice(memoryview): # <<<<<<<<<<<<<< * "Internal class for passing memoryview slices to Python" * */ struct __pyx_memoryviewslice_obj { struct __pyx_memoryview_obj __pyx_base; __Pyx_memviewslice from_slice; PyObject *from_object; PyObject *(*to_object_func)(char *); int (*to_dtype_func)(char *, PyObject *); }; /* "View.MemoryView":105 * * @cname("__pyx_array") * cdef class array: # <<<<<<<<<<<<<< * * cdef: */ struct __pyx_vtabstruct_array { PyObject *(*get_memview)(struct __pyx_array_obj *); }; static struct __pyx_vtabstruct_array *__pyx_vtabptr_array; /* "View.MemoryView":330 * * @cname('__pyx_memoryview') * cdef class memoryview(object): # <<<<<<<<<<<<<< * * cdef object obj */ struct __pyx_vtabstruct_memoryview { char *(*get_item_pointer)(struct __pyx_memoryview_obj *, PyObject *); PyObject *(*is_slice)(struct __pyx_memoryview_obj *, PyObject *); PyObject *(*setitem_slice_assignment)(struct __pyx_memoryview_obj *, PyObject *, PyObject *); PyObject *(*setitem_slice_assign_scalar)(struct __pyx_memoryview_obj *, struct __pyx_memoryview_obj *, PyObject *); PyObject *(*setitem_indexed)(struct __pyx_memoryview_obj *, PyObject *, PyObject *); PyObject *(*convert_item_to_object)(struct __pyx_memoryview_obj *, char *); PyObject *(*assign_item_from_object)(struct __pyx_memoryview_obj *, char *, PyObject *); }; static struct __pyx_vtabstruct_memoryview *__pyx_vtabptr_memoryview; /* "View.MemoryView":965 * * @cname('__pyx_memoryviewslice') * cdef class _memoryviewslice(memoryview): # <<<<<<<<<<<<<< * "Internal class for passing memoryview slices to Python" * */ struct __pyx_vtabstruct__memoryviewslice { struct __pyx_vtabstruct_memoryview __pyx_base; }; static struct __pyx_vtabstruct__memoryviewslice *__pyx_vtabptr__memoryviewslice; /* --- Runtime support code (head) --- */ /* Refnanny.proto */ #ifndef CYTHON_REFNANNY #define CYTHON_REFNANNY 0 #endif #if CYTHON_REFNANNY typedef struct { void (*INCREF)(void*, PyObject*, int); void (*DECREF)(void*, PyObject*, int); void (*GOTREF)(void*, PyObject*, int); void (*GIVEREF)(void*, PyObject*, int); void* (*SetupContext)(const char*, int, const char*); void (*FinishContext)(void**); } __Pyx_RefNannyAPIStruct; static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; #ifdef WITH_THREAD #define __Pyx_RefNannySetupContext(name, acquire_gil)\ if (acquire_gil) {\ PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ PyGILState_Release(__pyx_gilstate_save);\ } else {\ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ } #else #define __Pyx_RefNannySetupContext(name, acquire_gil)\ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) #endif #define __Pyx_RefNannyFinishContext()\ __Pyx_RefNanny->FinishContext(&__pyx_refnanny) #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0) #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0) #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0) #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0) #else #define __Pyx_RefNannyDeclarations #define __Pyx_RefNannySetupContext(name, acquire_gil) #define __Pyx_RefNannyFinishContext() #define __Pyx_INCREF(r) Py_INCREF(r) #define __Pyx_DECREF(r) Py_DECREF(r) #define __Pyx_GOTREF(r) #define __Pyx_GIVEREF(r) #define __Pyx_XINCREF(r) Py_XINCREF(r) #define __Pyx_XDECREF(r) Py_XDECREF(r) #define __Pyx_XGOTREF(r) #define __Pyx_XGIVEREF(r) #endif #define __Pyx_XDECREF_SET(r, v) do {\ PyObject *tmp = (PyObject *) r;\ r = v; __Pyx_XDECREF(tmp);\ } while (0) #define __Pyx_DECREF_SET(r, v) do {\ PyObject *tmp = (PyObject *) r;\ r = v; __Pyx_DECREF(tmp);\ } while (0) #define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) #define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) /* PyObjectGetAttrStr.proto */ #if CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name); #else #define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) #endif /* GetBuiltinName.proto */ static PyObject *__Pyx_GetBuiltinName(PyObject *name); /* RaiseArgTupleInvalid.proto */ static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /* RaiseDoubleKeywords.proto */ static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); /* ParseKeywords.proto */ static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\ PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\ const char* function_name); /* PyObjectCall.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); #else #define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw) #endif /* PyThreadStateGet.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; #define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current; #define __Pyx_PyErr_Occurred() __pyx_tstate->curexc_type #else #define __Pyx_PyThreadState_declare #define __Pyx_PyThreadState_assign #define __Pyx_PyErr_Occurred() PyErr_Occurred() #endif /* PyErrFetchRestore.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL) #define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb) #define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb) #define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb) #define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL)) #else #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) #endif #else #define __Pyx_PyErr_Clear() PyErr_Clear() #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) #define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb) #define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb) #define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb) #define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb) #define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb) #define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb) #endif /* RaiseException.proto */ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); /* PyDictContains.proto */ static CYTHON_INLINE int __Pyx_PyDict_ContainsTF(PyObject* item, PyObject* dict, int eq) { int result = PyDict_Contains(dict, item); return unlikely(result < 0) ? result : (result == (eq == Py_EQ)); } /* DictGetItem.proto */ #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key); #define __Pyx_PyObject_Dict_GetItem(obj, name)\ (likely(PyDict_CheckExact(obj)) ?\ __Pyx_PyDict_GetItem(obj, name) : PyObject_GetItem(obj, name)) #else #define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key) #define __Pyx_PyObject_Dict_GetItem(obj, name) PyObject_GetItem(obj, name) #endif /* PyCFunctionFastCall.proto */ #if CYTHON_FAST_PYCCALL static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs); #else #define __Pyx_PyCFunction_FastCall(func, args, nargs) (assert(0), NULL) #endif /* PyFunctionFastCall.proto */ #if CYTHON_FAST_PYCALL #define __Pyx_PyFunction_FastCall(func, args, nargs)\ __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) #if 1 || PY_VERSION_HEX < 0x030600B1 static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs); #else #define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) #endif #define __Pyx_BUILD_ASSERT_EXPR(cond)\ (sizeof(char [1 - 2*!(cond)]) - 1) #ifndef Py_MEMBER_SIZE #define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) #endif static size_t __pyx_pyframe_localsplus_offset = 0; #include "frameobject.h" #define __Pxy_PyFrame_Initialize_Offsets()\ ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) #define __Pyx_PyFrame_GetLocalsplus(frame)\ (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) #endif /* PyObjectCallMethO.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); #endif /* PyObjectCallOneArg.proto */ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); /* UnicodeAsUCS4.proto */ static CYTHON_INLINE Py_UCS4 __Pyx_PyUnicode_AsPy_UCS4(PyObject*); /* object_ord.proto */ #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyObject_Ord(c)\ (likely(PyUnicode_Check(c)) ? (long)__Pyx_PyUnicode_AsPy_UCS4(c) : __Pyx__PyObject_Ord(c)) #else #define __Pyx_PyObject_Ord(c) __Pyx__PyObject_Ord(c) #endif static long __Pyx__PyObject_Ord(PyObject* c); /* SetItemInt.proto */ #define __Pyx_SetItemInt(o, i, v, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_SetItemInt_Fast(o, (Py_ssize_t)i, v, is_list, wraparound, boundscheck) :\ (is_list ? (PyErr_SetString(PyExc_IndexError, "list assignment index out of range"), -1) :\ __Pyx_SetItemInt_Generic(o, to_py_func(i), v))) static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v); static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, int is_list, int wraparound, int boundscheck); /* IterFinish.proto */ static CYTHON_INLINE int __Pyx_IterFinish(void); /* PyObjectCallNoArg.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func); #else #define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL) #endif /* PyObjectGetMethod.proto */ static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method); /* PyObjectCallMethod0.proto */ static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name); /* RaiseNeedMoreValuesToUnpack.proto */ static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index); /* RaiseTooManyValuesToUnpack.proto */ static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected); /* UnpackItemEndCheck.proto */ static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected); /* RaiseNoneIterError.proto */ static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void); /* UnpackTupleError.proto */ static void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index); /* UnpackTuple2.proto */ #define __Pyx_unpack_tuple2(tuple, value1, value2, is_tuple, has_known_size, decref_tuple)\ (likely(is_tuple || PyTuple_Check(tuple)) ?\ (likely(has_known_size || PyTuple_GET_SIZE(tuple) == 2) ?\ __Pyx_unpack_tuple2_exact(tuple, value1, value2, decref_tuple) :\ (__Pyx_UnpackTupleError(tuple, 2), -1)) :\ __Pyx_unpack_tuple2_generic(tuple, value1, value2, has_known_size, decref_tuple)) static CYTHON_INLINE int __Pyx_unpack_tuple2_exact( PyObject* tuple, PyObject** value1, PyObject** value2, int decref_tuple); static int __Pyx_unpack_tuple2_generic( PyObject* tuple, PyObject** value1, PyObject** value2, int has_known_size, int decref_tuple); /* dict_iter.proto */ static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* dict, int is_dict, PyObject* method_name, Py_ssize_t* p_orig_length, int* p_is_dict); static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* dict_or_iter, Py_ssize_t orig_length, Py_ssize_t* ppos, PyObject** pkey, PyObject** pvalue, PyObject** pitem, int is_dict); /* PyObjectCall2Args.proto */ static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2); /* GetItemInt.proto */ #define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\ (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\ __Pyx_GetItemInt_Generic(o, to_py_func(i)))) #define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL)) static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, int wraparound, int boundscheck); #define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL)) static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, int wraparound, int boundscheck); static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j); static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list, int wraparound, int boundscheck); /* ListAppend.proto */ #if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) { PyListObject* L = (PyListObject*) list; Py_ssize_t len = Py_SIZE(list); if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) { Py_INCREF(x); PyList_SET_ITEM(list, len, x); Py_SIZE(list) = len+1; return 0; } return PyList_Append(list, x); } #else #define __Pyx_PyList_Append(L,x) PyList_Append(L,x) #endif /* PyDictVersioning.proto */ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS #define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1) #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\ (version_var) = __PYX_GET_DICT_VERSION(dict);\ (cache_var) = (value); #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\ static PY_UINT64_T __pyx_dict_version = 0;\ static PyObject *__pyx_dict_cached_value = NULL;\ if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\ (VAR) = __pyx_dict_cached_value;\ } else {\ (VAR) = __pyx_dict_cached_value = (LOOKUP);\ __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\ }\ } static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj); static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj); static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version); #else #define __PYX_GET_DICT_VERSION(dict) (0) #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var) #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP); #endif /* GetModuleGlobalName.proto */ #if CYTHON_USE_DICT_VERSIONS #define __Pyx_GetModuleGlobalName(var, name) {\ static PY_UINT64_T __pyx_dict_version = 0;\ static PyObject *__pyx_dict_cached_value = NULL;\ (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\ (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\ __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ } #define __Pyx_GetModuleGlobalNameUncached(var, name) {\ PY_UINT64_T __pyx_dict_version;\ PyObject *__pyx_dict_cached_value;\ (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ } static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value); #else #define __Pyx_GetModuleGlobalName(var, name) (var) = __Pyx__GetModuleGlobalName(name) #define __Pyx_GetModuleGlobalNameUncached(var, name) (var) = __Pyx__GetModuleGlobalName(name) static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name); #endif /* ExtTypeTest.proto */ static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); /* ArgTypeTest.proto */ #define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\ ((likely((Py_TYPE(obj) == type) | (none_allowed && (obj == Py_None)))) ? 1 :\ __Pyx__ArgTypeTest(obj, type, name, exact)) static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact); /* None.proto */ static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname); /* MemviewSliceInit.proto */ #define __Pyx_BUF_MAX_NDIMS %(BUF_MAX_NDIMS)d #define __Pyx_MEMVIEW_DIRECT 1 #define __Pyx_MEMVIEW_PTR 2 #define __Pyx_MEMVIEW_FULL 4 #define __Pyx_MEMVIEW_CONTIG 8 #define __Pyx_MEMVIEW_STRIDED 16 #define __Pyx_MEMVIEW_FOLLOW 32 #define __Pyx_IS_C_CONTIG 1 #define __Pyx_IS_F_CONTIG 2 static int __Pyx_init_memviewslice( struct __pyx_memoryview_obj *memview, int ndim, __Pyx_memviewslice *memviewslice, int memview_is_new_reference); static CYTHON_INLINE int __pyx_add_acquisition_count_locked( __pyx_atomic_int *acquisition_count, PyThread_type_lock lock); static CYTHON_INLINE int __pyx_sub_acquisition_count_locked( __pyx_atomic_int *acquisition_count, PyThread_type_lock lock); #define __pyx_get_slice_count_pointer(memview) (memview->acquisition_count_aligned_p) #define __pyx_get_slice_count(memview) (*__pyx_get_slice_count_pointer(memview)) #define __PYX_INC_MEMVIEW(slice, have_gil) __Pyx_INC_MEMVIEW(slice, have_gil, __LINE__) #define __PYX_XDEC_MEMVIEW(slice, have_gil) __Pyx_XDEC_MEMVIEW(slice, have_gil, __LINE__) static CYTHON_INLINE void __Pyx_INC_MEMVIEW(__Pyx_memviewslice *, int, int); static CYTHON_INLINE void __Pyx_XDEC_MEMVIEW(__Pyx_memviewslice *, int, int); /* GetTopmostException.proto */ #if CYTHON_USE_EXC_INFO_STACK static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate); #endif /* SaveResetException.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); #else #define __Pyx_ExceptionSave(type, value, tb) PyErr_GetExcInfo(type, value, tb) #define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb) #endif /* PyErrExceptionMatches.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err) static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err); #else #define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err) #endif /* GetException.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb) static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #else static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); #endif /* IncludeStringH.proto */ #include /* BytesEquals.proto */ static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals); /* UnicodeEquals.proto */ static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals); /* StrEquals.proto */ #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyString_Equals __Pyx_PyUnicode_Equals #else #define __Pyx_PyString_Equals __Pyx_PyBytes_Equals #endif /* None.proto */ static CYTHON_INLINE Py_ssize_t __Pyx_div_Py_ssize_t(Py_ssize_t, Py_ssize_t); /* UnaryNegOverflows.proto */ #define UNARY_NEG_WOULD_OVERFLOW(x)\ (((x) < 0) & ((unsigned long)(x) == 0-(unsigned long)(x))) static CYTHON_UNUSED int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *); /*proto*/ /* GetAttr.proto */ static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *); /* ObjectGetItem.proto */ #if CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key); #else #define __Pyx_PyObject_GetItem(obj, key) PyObject_GetItem(obj, key) #endif /* decode_c_string_utf16.proto */ static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16(const char *s, Py_ssize_t size, const char *errors) { int byteorder = 0; return PyUnicode_DecodeUTF16(s, size, errors, &byteorder); } static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16LE(const char *s, Py_ssize_t size, const char *errors) { int byteorder = -1; return PyUnicode_DecodeUTF16(s, size, errors, &byteorder); } static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16BE(const char *s, Py_ssize_t size, const char *errors) { int byteorder = 1; return PyUnicode_DecodeUTF16(s, size, errors, &byteorder); } /* decode_c_string.proto */ static CYTHON_INLINE PyObject* __Pyx_decode_c_string( const char* cstring, Py_ssize_t start, Py_ssize_t stop, const char* encoding, const char* errors, PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)); /* GetAttr3.proto */ static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *); /* SwapException.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_ExceptionSwap(type, value, tb) __Pyx__ExceptionSwap(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #else static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb); #endif /* Import.proto */ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); /* FastTypeChecks.proto */ #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b); static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type); static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2); #else #define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) #define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type) #define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2)) #endif #define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) static CYTHON_UNUSED int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ /* ListCompAppend.proto */ #if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) { PyListObject* L = (PyListObject*) list; Py_ssize_t len = Py_SIZE(list); if (likely(L->allocated > len)) { Py_INCREF(x); PyList_SET_ITEM(list, len, x); Py_SIZE(list) = len+1; return 0; } return PyList_Append(list, x); } #else #define __Pyx_ListComp_Append(L,x) PyList_Append(L,x) #endif /* PyIntBinop.proto */ #if !CYTHON_COMPILING_IN_PYPY static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check); #else #define __Pyx_PyInt_AddObjC(op1, op2, intval, inplace, zerodivision_check)\ (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2)) #endif /* ListExtend.proto */ static CYTHON_INLINE int __Pyx_PyList_Extend(PyObject* L, PyObject* v) { #if CYTHON_COMPILING_IN_CPYTHON PyObject* none = _PyList_Extend((PyListObject*)L, v); if (unlikely(!none)) return -1; Py_DECREF(none); return 0; #else return PyList_SetSlice(L, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, v); #endif } /* None.proto */ static CYTHON_INLINE long __Pyx_div_long(long, long); /* WriteUnraisableException.proto */ static void __Pyx_WriteUnraisable(const char *name, int clineno, int lineno, const char *filename, int full_traceback, int nogil); /* ImportFrom.proto */ static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name); /* HasAttr.proto */ static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *); /* StringJoin.proto */ #if PY_MAJOR_VERSION < 3 #define __Pyx_PyString_Join __Pyx_PyBytes_Join #define __Pyx_PyBaseString_Join(s, v) (PyUnicode_CheckExact(s) ? PyUnicode_Join(s, v) : __Pyx_PyBytes_Join(s, v)) #else #define __Pyx_PyString_Join PyUnicode_Join #define __Pyx_PyBaseString_Join PyUnicode_Join #endif #if CYTHON_COMPILING_IN_CPYTHON #if PY_MAJOR_VERSION < 3 #define __Pyx_PyBytes_Join _PyString_Join #else #define __Pyx_PyBytes_Join _PyBytes_Join #endif #else static CYTHON_INLINE PyObject* __Pyx_PyBytes_Join(PyObject* sep, PyObject* values); #endif /* PyObject_Unicode.proto */ #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyObject_Unicode(obj)\ (likely(PyUnicode_CheckExact(obj)) ? __Pyx_NewRef(obj) : PyObject_Str(obj)) #else #define __Pyx_PyObject_Unicode(obj)\ (likely(PyUnicode_CheckExact(obj)) ? __Pyx_NewRef(obj) : PyObject_Unicode(obj)) #endif /* PyObject_GenericGetAttrNoDict.proto */ #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name); #else #define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr #endif /* PyObject_GenericGetAttr.proto */ #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name); #else #define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr #endif /* SetVTable.proto */ static int __Pyx_SetVtable(PyObject *dict, void *vtable); /* SetupReduce.proto */ static int __Pyx_setup_reduce(PyObject* type_obj); /* TypeImport.proto */ #ifndef __PYX_HAVE_RT_ImportType_proto #define __PYX_HAVE_RT_ImportType_proto enum __Pyx_ImportType_CheckSize { __Pyx_ImportType_CheckSize_Error = 0, __Pyx_ImportType_CheckSize_Warn = 1, __Pyx_ImportType_CheckSize_Ignore = 2 }; static PyTypeObject *__Pyx_ImportType(PyObject* module, const char *module_name, const char *class_name, size_t size, enum __Pyx_ImportType_CheckSize check_size); #endif /* FetchCommonType.proto */ static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type); /* CythonFunction.proto */ #define __Pyx_CyFunction_USED 1 #define __Pyx_CYFUNCTION_STATICMETHOD 0x01 #define __Pyx_CYFUNCTION_CLASSMETHOD 0x02 #define __Pyx_CYFUNCTION_CCLASS 0x04 #define __Pyx_CyFunction_GetClosure(f)\ (((__pyx_CyFunctionObject *) (f))->func_closure) #define __Pyx_CyFunction_GetClassObj(f)\ (((__pyx_CyFunctionObject *) (f))->func_classobj) #define __Pyx_CyFunction_Defaults(type, f)\ ((type *)(((__pyx_CyFunctionObject *) (f))->defaults)) #define __Pyx_CyFunction_SetDefaultsGetter(f, g)\ ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g) typedef struct { PyCFunctionObject func; #if PY_VERSION_HEX < 0x030500A0 PyObject *func_weakreflist; #endif PyObject *func_dict; PyObject *func_name; PyObject *func_qualname; PyObject *func_doc; PyObject *func_globals; PyObject *func_code; PyObject *func_closure; PyObject *func_classobj; void *defaults; int defaults_pyobjects; int flags; PyObject *defaults_tuple; PyObject *defaults_kwdict; PyObject *(*defaults_getter)(PyObject *); PyObject *func_annotations; } __pyx_CyFunctionObject; static PyTypeObject *__pyx_CyFunctionType = 0; #define __Pyx_CyFunction_Check(obj) (__Pyx_TypeCheck(obj, __pyx_CyFunctionType)) #define __Pyx_CyFunction_NewEx(ml, flags, qualname, self, module, globals, code)\ __Pyx_CyFunction_New(__pyx_CyFunctionType, ml, flags, qualname, self, module, globals, code) static PyObject *__Pyx_CyFunction_New(PyTypeObject *, PyMethodDef *ml, int flags, PyObject* qualname, PyObject *self, PyObject *module, PyObject *globals, PyObject* code); static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *m, size_t size, int pyobjects); static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m, PyObject *tuple); static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m, PyObject *dict); static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m, PyObject *dict); static int __pyx_CyFunction_init(void); /* FusedFunction.proto */ typedef struct { __pyx_CyFunctionObject func; PyObject *__signatures__; PyObject *type; PyObject *self; } __pyx_FusedFunctionObject; #define __pyx_FusedFunction_NewEx(ml, flags, qualname, self, module, globals, code)\ __pyx_FusedFunction_New(__pyx_FusedFunctionType, ml, flags, qualname, self, module, globals, code) static PyObject *__pyx_FusedFunction_New(PyTypeObject *type, PyMethodDef *ml, int flags, PyObject *qualname, PyObject *self, PyObject *module, PyObject *globals, PyObject *code); static int __pyx_FusedFunction_clear(__pyx_FusedFunctionObject *self); static PyTypeObject *__pyx_FusedFunctionType = NULL; static int __pyx_FusedFunction_init(void); #define __Pyx_FusedFunction_USED /* CLineInTraceback.proto */ #ifdef CYTHON_CLINE_IN_TRACEBACK #define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0) #else static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line); #endif /* CodeObjectCache.proto */ typedef struct { PyCodeObject* code_object; int code_line; } __Pyx_CodeObjectCacheEntry; struct __Pyx_CodeObjectCache { int count; int max_count; __Pyx_CodeObjectCacheEntry* entries; }; static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL}; static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); static PyCodeObject *__pyx_find_code_object(int code_line); static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); /* AddTraceback.proto */ static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename); #if PY_MAJOR_VERSION < 3 static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags); static void __Pyx_ReleaseBuffer(Py_buffer *view); #else #define __Pyx_GetBuffer PyObject_GetBuffer #define __Pyx_ReleaseBuffer PyBuffer_Release #endif /* BufferStructDeclare.proto */ typedef struct { Py_ssize_t shape, strides, suboffsets; } __Pyx_Buf_DimInfo; typedef struct { size_t refcount; Py_buffer pybuffer; } __Pyx_Buffer; typedef struct { __Pyx_Buffer *rcbuffer; char *data; __Pyx_Buf_DimInfo diminfo[8]; } __Pyx_LocalBuf_ND; /* MemviewSliceIsContig.proto */ static int __pyx_memviewslice_is_contig(const __Pyx_memviewslice mvs, char order, int ndim); /* OverlappingSlices.proto */ static int __pyx_slices_overlap(__Pyx_memviewslice *slice1, __Pyx_memviewslice *slice2, int ndim, size_t itemsize); /* Capsule.proto */ static CYTHON_INLINE PyObject *__pyx_capsule_create(void *p, const char *sig); /* IsLittleEndian.proto */ static CYTHON_INLINE int __Pyx_Is_Little_Endian(void); /* BufferFormatCheck.proto */ static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts); static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx, __Pyx_BufFmt_StackElem* stack, __Pyx_TypeInfo* type); /* TypeInfoCompare.proto */ static int __pyx_typeinfo_cmp(__Pyx_TypeInfo *a, __Pyx_TypeInfo *b); /* MemviewSliceValidateAndInit.proto */ static int __Pyx_ValidateAndInit_memviewslice( int *axes_specs, int c_or_f_flag, int buf_flags, int ndim, __Pyx_TypeInfo *dtype, __Pyx_BufFmt_StackElem stack[], __Pyx_memviewslice *memviewslice, PyObject *original_obj); /* ObjectToMemviewSlice.proto */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(PyObject *, int writable_flag); /* ObjectToMemviewSlice.proto */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(PyObject *, int writable_flag); /* ObjectToMemviewSlice.proto */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_float_complex(PyObject *, int writable_flag); /* ObjectToMemviewSlice.proto */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_double_complex(PyObject *, int writable_flag); /* RealImag.proto */ #if CYTHON_CCOMPLEX #ifdef __cplusplus #define __Pyx_CREAL(z) ((z).real()) #define __Pyx_CIMAG(z) ((z).imag()) #else #define __Pyx_CREAL(z) (__real__(z)) #define __Pyx_CIMAG(z) (__imag__(z)) #endif #else #define __Pyx_CREAL(z) ((z).real) #define __Pyx_CIMAG(z) ((z).imag) #endif #if defined(__cplusplus) && CYTHON_CCOMPLEX\ && (defined(_WIN32) || defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 5 || __GNUC__ == 4 && __GNUC_MINOR__ >= 4 )) || __cplusplus >= 201103) #define __Pyx_SET_CREAL(z,x) ((z).real(x)) #define __Pyx_SET_CIMAG(z,y) ((z).imag(y)) #else #define __Pyx_SET_CREAL(z,x) __Pyx_CREAL(z) = (x) #define __Pyx_SET_CIMAG(z,y) __Pyx_CIMAG(z) = (y) #endif /* Arithmetic.proto */ #if CYTHON_CCOMPLEX #define __Pyx_c_eq_float(a, b) ((a)==(b)) #define __Pyx_c_sum_float(a, b) ((a)+(b)) #define __Pyx_c_diff_float(a, b) ((a)-(b)) #define __Pyx_c_prod_float(a, b) ((a)*(b)) #define __Pyx_c_quot_float(a, b) ((a)/(b)) #define __Pyx_c_neg_float(a) (-(a)) #ifdef __cplusplus #define __Pyx_c_is_zero_float(z) ((z)==(float)0) #define __Pyx_c_conj_float(z) (::std::conj(z)) #if 1 #define __Pyx_c_abs_float(z) (::std::abs(z)) #define __Pyx_c_pow_float(a, b) (::std::pow(a, b)) #endif #else #define __Pyx_c_is_zero_float(z) ((z)==0) #define __Pyx_c_conj_float(z) (conjf(z)) #if 1 #define __Pyx_c_abs_float(z) (cabsf(z)) #define __Pyx_c_pow_float(a, b) (cpowf(a, b)) #endif #endif #else static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex); static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex); #if 1 static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex, __pyx_t_float_complex); #endif #endif /* Arithmetic.proto */ #if CYTHON_CCOMPLEX #define __Pyx_c_eq_double(a, b) ((a)==(b)) #define __Pyx_c_sum_double(a, b) ((a)+(b)) #define __Pyx_c_diff_double(a, b) ((a)-(b)) #define __Pyx_c_prod_double(a, b) ((a)*(b)) #define __Pyx_c_quot_double(a, b) ((a)/(b)) #define __Pyx_c_neg_double(a) (-(a)) #ifdef __cplusplus #define __Pyx_c_is_zero_double(z) ((z)==(double)0) #define __Pyx_c_conj_double(z) (::std::conj(z)) #if 1 #define __Pyx_c_abs_double(z) (::std::abs(z)) #define __Pyx_c_pow_double(a, b) (::std::pow(a, b)) #endif #else #define __Pyx_c_is_zero_double(z) ((z)==0) #define __Pyx_c_conj_double(z) (conj(z)) #if 1 #define __Pyx_c_abs_double(z) (cabs(z)) #define __Pyx_c_pow_double(a, b) (cpow(a, b)) #endif #endif #else static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex); static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex); #if 1 static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex, __pyx_t_double_complex); #endif #endif /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_char(unsigned char value); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); /* MemviewDtypeToObject.proto */ static CYTHON_INLINE PyObject *__pyx_memview_get_nn___pyx_t_5numpy_float32_t(const char *itemp); static CYTHON_INLINE int __pyx_memview_set_nn___pyx_t_5numpy_float32_t(const char *itemp, PyObject *obj); /* MemviewDtypeToObject.proto */ static CYTHON_INLINE PyObject *__pyx_memview_get_nn___pyx_t_5numpy_float64_t(const char *itemp); static CYTHON_INLINE int __pyx_memview_set_nn___pyx_t_5numpy_float64_t(const char *itemp, PyObject *obj); /* ToPy.proto */ #define __pyx_PyComplex_FromComplex(z)\ PyComplex_FromDoubles((double)__Pyx_CREAL(z),\ (double)__Pyx_CIMAG(z)) /* FromPy.proto */ static __pyx_t_float_complex __Pyx_PyComplex_As___pyx_t_float_complex(PyObject*); /* MemviewDtypeToObject.proto */ static CYTHON_INLINE PyObject *__pyx_memview_get___pyx_t_float_complex(const char *itemp); static CYTHON_INLINE int __pyx_memview_set___pyx_t_float_complex(const char *itemp, PyObject *obj); /* FromPy.proto */ static __pyx_t_double_complex __Pyx_PyComplex_As___pyx_t_double_complex(PyObject*); /* MemviewDtypeToObject.proto */ static CYTHON_INLINE PyObject *__pyx_memview_get___pyx_t_double_complex(const char *itemp); static CYTHON_INLINE int __pyx_memview_set___pyx_t_double_complex(const char *itemp, PyObject *obj); /* MemviewDtypeToObject.proto */ static CYTHON_INLINE PyObject *__pyx_memview_get_size_t(const char *itemp); static CYTHON_INLINE int __pyx_memview_set_size_t(const char *itemp, PyObject *obj); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value); /* MemviewSliceCopyTemplate.proto */ static __Pyx_memviewslice __pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs, const char *mode, int ndim, size_t sizeof_dtype, int contig_flag, int dtype_is_object); /* CIntFromPy.proto */ static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE MODE __Pyx_PyInt_As_MODE(PyObject *); /* TypeInfoToFormat.proto */ struct __pyx_typeinfo_string { char string[3]; }; static struct __pyx_typeinfo_string __Pyx_TypeInfoToFormat(__Pyx_TypeInfo *type); /* CIntFromPy.proto */ static CYTHON_INLINE unsigned int __Pyx_PyInt_As_unsigned_int(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); /* BytesContains.proto */ static CYTHON_INLINE int __Pyx_BytesContains(PyObject* bytes, char character); /* ImportNumPyArray.proto */ static PyObject *__pyx_numpy_ndarray = NULL; static PyObject* __Pyx_ImportNumPyArrayTypeIfAvailable(void); /* CopyContentsUtility.proto */ #define __pyx_memoryview_copy_slice_dc_size_t_c(slice)\ __pyx_memoryview_copy_new_contig(&slice, "c", 1,\ sizeof(size_t), (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT),\ 0) /* CIntFromPy.proto */ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *); /* ObjectToMemviewSlice.proto */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_size_t(PyObject *, int writable_flag); /* CheckBinaryVersion.proto */ static int __Pyx_check_binary_version(void); /* FunctionExport.proto */ static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *sig); /* VoidPtrImport.proto */ static int __Pyx_ImportVoidPtr(PyObject *module, const char *name, void **p, const char *sig); /* FunctionImport.proto */ static int __Pyx_ImportFunction(PyObject *module, const char *funcname, void (**f)(void), const char *sig); /* InitStrings.proto */ static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *__pyx_v_self); /* proto*/ static char *__pyx_memoryview_get_item_pointer(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index); /* proto*/ static PyObject *__pyx_memoryview_is_slice(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj); /* proto*/ static PyObject *__pyx_memoryview_setitem_slice_assignment(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_dst, PyObject *__pyx_v_src); /* proto*/ static PyObject *__pyx_memoryview_setitem_slice_assign_scalar(struct __pyx_memoryview_obj *__pyx_v_self, struct __pyx_memoryview_obj *__pyx_v_dst, PyObject *__pyx_v_value); /* proto*/ static PyObject *__pyx_memoryview_setitem_indexed(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /* proto*/ static PyObject *__pyx_memoryview_convert_item_to_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp); /* proto*/ static PyObject *__pyx_memoryview_assign_item_from_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value); /* proto*/ static PyObject *__pyx_memoryviewslice_convert_item_to_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp); /* proto*/ static PyObject *__pyx_memoryviewslice_assign_item_from_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value); /* proto*/ /* Module declarations from 'pywt._extensions' */ /* Module declarations from 'pywt._extensions.common' */ /* Module declarations from 'pywt._extensions.wavelet' */ /* Module declarations from 'cpython.buffer' */ /* Module declarations from 'libc.string' */ /* Module declarations from 'libc.stdio' */ /* Module declarations from '__builtin__' */ /* Module declarations from 'cpython.type' */ static PyTypeObject *__pyx_ptype_7cpython_4type_type = 0; /* Module declarations from 'cpython' */ /* Module declarations from 'cpython.object' */ /* Module declarations from 'cpython.ref' */ /* Module declarations from 'cpython.mem' */ /* Module declarations from 'numpy' */ /* Module declarations from 'numpy' */ static PyTypeObject *__pyx_ptype_5numpy_dtype = 0; static PyTypeObject *__pyx_ptype_5numpy_flatiter = 0; static PyTypeObject *__pyx_ptype_5numpy_broadcast = 0; static PyTypeObject *__pyx_ptype_5numpy_ndarray = 0; static PyTypeObject *__pyx_ptype_5numpy_ufunc = 0; static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *, char *, char *, int *); /*proto*/ /* Module declarations from 'pywt._extensions._pywt' */ static PyTypeObject *__pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet = 0; static PyTypeObject *__pyx_ptype_4pywt_11_extensions_5_pywt_ContinuousWavelet = 0; static int *__pyx_vp_4pywt_11_extensions_5_pywt_have_c99_complex = 0; #define __pyx_v_4pywt_11_extensions_5_pywt_have_c99_complex (*__pyx_vp_4pywt_11_extensions_5_pywt_have_c99_complex) static PyArray_Descr *(*__pyx_f_4pywt_11_extensions_5_pywt__check_dtype)(PyObject *, int __pyx_skip_dispatch); /*proto*/ /* Module declarations from 'pywt._extensions.c_wt' */ /* Module declarations from 'pywt._extensions._dwt' */ static PyTypeObject *__pyx_array_type = 0; static PyTypeObject *__pyx_MemviewEnum_type = 0; static PyTypeObject *__pyx_memoryview_type = 0; static PyTypeObject *__pyx_memoryviewslice_type = 0; static PyObject *generic = 0; static PyObject *strided = 0; static PyObject *indirect = 0; static PyObject *contiguous = 0; static PyObject *indirect_contiguous = 0; static int __pyx_memoryview_thread_locks_used; static PyThread_type_lock __pyx_memoryview_thread_locks[8]; static PyObject *__pyx_f_4pywt_11_extensions_4_dwt_dwt_max_level(size_t, size_t, int __pyx_skip_dispatch); /*proto*/ static PyObject *__pyx_f_4pywt_11_extensions_4_dwt_dwt_coeff_len(size_t, size_t, MODE, int __pyx_skip_dispatch); /*proto*/ static PyObject *__pyx_f_4pywt_11_extensions_4_dwt_dwt_axis(PyArrayObject *, struct WaveletObject *, MODE, int __pyx_skip_dispatch, struct __pyx_opt_args_4pywt_11_extensions_4_dwt_dwt_axis *__pyx_optional_args); /*proto*/ static PyObject *__pyx_f_4pywt_11_extensions_4_dwt_idwt_single(PyArrayObject *, PyArrayObject *, struct WaveletObject *, MODE, int __pyx_skip_dispatch); /*proto*/ static PyObject *__pyx_f_4pywt_11_extensions_4_dwt_idwt_axis(PyArrayObject *, PyArrayObject *, struct WaveletObject *, MODE, int __pyx_skip_dispatch, struct __pyx_opt_args_4pywt_11_extensions_4_dwt_idwt_axis *__pyx_optional_args); /*proto*/ static PyObject *__pyx_fuse_0__pyx_f_4pywt_11_extensions_4_dwt_upcoef(int, __Pyx_memviewslice, struct WaveletObject *, int, size_t, int __pyx_skip_dispatch); /*proto*/ static PyObject *__pyx_fuse_1__pyx_f_4pywt_11_extensions_4_dwt_upcoef(int, __Pyx_memviewslice, struct WaveletObject *, int, size_t, int __pyx_skip_dispatch); /*proto*/ static PyObject *__pyx_fuse_2__pyx_f_4pywt_11_extensions_4_dwt_upcoef(int, __Pyx_memviewslice, struct WaveletObject *, int, size_t, int __pyx_skip_dispatch); /*proto*/ static PyObject *__pyx_fuse_3__pyx_f_4pywt_11_extensions_4_dwt_upcoef(int, __Pyx_memviewslice, struct WaveletObject *, int, size_t, int __pyx_skip_dispatch); /*proto*/ static PyObject *__pyx_fuse_0__pyx_f_4pywt_11_extensions_4_dwt_dwt_single(__Pyx_memviewslice, struct WaveletObject *, MODE, int __pyx_skip_dispatch); /*proto*/ static PyObject *__pyx_fuse_1__pyx_f_4pywt_11_extensions_4_dwt_dwt_single(__Pyx_memviewslice, struct WaveletObject *, MODE, int __pyx_skip_dispatch); /*proto*/ static PyObject *__pyx_fuse_2__pyx_f_4pywt_11_extensions_4_dwt_dwt_single(__Pyx_memviewslice, struct WaveletObject *, MODE, int __pyx_skip_dispatch); /*proto*/ static PyObject *__pyx_fuse_3__pyx_f_4pywt_11_extensions_4_dwt_dwt_single(__Pyx_memviewslice, struct WaveletObject *, MODE, int __pyx_skip_dispatch); /*proto*/ static PyObject *__pyx_fuse_0__pyx_f_4pywt_11_extensions_4_dwt_downcoef(int, __Pyx_memviewslice, struct WaveletObject *, MODE, int, int __pyx_skip_dispatch); /*proto*/ static PyObject *__pyx_fuse_1__pyx_f_4pywt_11_extensions_4_dwt_downcoef(int, __Pyx_memviewslice, struct WaveletObject *, MODE, int, int __pyx_skip_dispatch); /*proto*/ static PyObject *__pyx_fuse_2__pyx_f_4pywt_11_extensions_4_dwt_downcoef(int, __Pyx_memviewslice, struct WaveletObject *, MODE, int, int __pyx_skip_dispatch); /*proto*/ static PyObject *__pyx_fuse_3__pyx_f_4pywt_11_extensions_4_dwt_downcoef(int, __Pyx_memviewslice, struct WaveletObject *, MODE, int, int __pyx_skip_dispatch); /*proto*/ static struct __pyx_array_obj *__pyx_array_new(PyObject *, Py_ssize_t, char *, char *, char *); /*proto*/ static void *__pyx_align_pointer(void *, size_t); /*proto*/ static PyObject *__pyx_memoryview_new(PyObject *, int, int, __Pyx_TypeInfo *); /*proto*/ static CYTHON_INLINE int __pyx_memoryview_check(PyObject *); /*proto*/ static PyObject *_unellipsify(PyObject *, int); /*proto*/ static PyObject *assert_direct_dimensions(Py_ssize_t *, int); /*proto*/ static struct __pyx_memoryview_obj *__pyx_memview_slice(struct __pyx_memoryview_obj *, PyObject *); /*proto*/ static int __pyx_memoryview_slice_memviewslice(__Pyx_memviewslice *, Py_ssize_t, Py_ssize_t, Py_ssize_t, int, int, int *, Py_ssize_t, Py_ssize_t, Py_ssize_t, int, int, int, int); /*proto*/ static char *__pyx_pybuffer_index(Py_buffer *, char *, Py_ssize_t, Py_ssize_t); /*proto*/ static int __pyx_memslice_transpose(__Pyx_memviewslice *); /*proto*/ static PyObject *__pyx_memoryview_fromslice(__Pyx_memviewslice, int, PyObject *(*)(char *), int (*)(char *, PyObject *), int); /*proto*/ static __Pyx_memviewslice *__pyx_memoryview_get_slice_from_memoryview(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/ static void __pyx_memoryview_slice_copy(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/ static PyObject *__pyx_memoryview_copy_object(struct __pyx_memoryview_obj *); /*proto*/ static PyObject *__pyx_memoryview_copy_object_from_slice(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/ static Py_ssize_t abs_py_ssize_t(Py_ssize_t); /*proto*/ static char __pyx_get_best_slice_order(__Pyx_memviewslice *, int); /*proto*/ static void _copy_strided_to_strided(char *, Py_ssize_t *, char *, Py_ssize_t *, Py_ssize_t *, Py_ssize_t *, int, size_t); /*proto*/ static void copy_strided_to_strided(__Pyx_memviewslice *, __Pyx_memviewslice *, int, size_t); /*proto*/ static Py_ssize_t __pyx_memoryview_slice_get_size(__Pyx_memviewslice *, int); /*proto*/ static Py_ssize_t __pyx_fill_contig_strides_array(Py_ssize_t *, Py_ssize_t *, Py_ssize_t, int, char); /*proto*/ static void *__pyx_memoryview_copy_data_to_temp(__Pyx_memviewslice *, __Pyx_memviewslice *, char, int); /*proto*/ static int __pyx_memoryview_err_extents(int, Py_ssize_t, Py_ssize_t); /*proto*/ static int __pyx_memoryview_err_dim(PyObject *, char *, int); /*proto*/ static int __pyx_memoryview_err(PyObject *, char *); /*proto*/ static int __pyx_memoryview_copy_contents(__Pyx_memviewslice, __Pyx_memviewslice, int, int, int); /*proto*/ static void __pyx_memoryview_broadcast_leading(__Pyx_memviewslice *, int, int); /*proto*/ static void __pyx_memoryview_refcount_copying(__Pyx_memviewslice *, int, int, int); /*proto*/ static void __pyx_memoryview_refcount_objects_in_slice_with_gil(char *, Py_ssize_t *, Py_ssize_t *, int, int); /*proto*/ static void __pyx_memoryview_refcount_objects_in_slice(char *, Py_ssize_t *, Py_ssize_t *, int, int); /*proto*/ static void __pyx_memoryview_slice_assign_scalar(__Pyx_memviewslice *, int, size_t, void *, int); /*proto*/ static void __pyx_memoryview__slice_assign_scalar(char *, Py_ssize_t *, Py_ssize_t *, int, size_t, void *); /*proto*/ static PyObject *__pyx_unpickle_Enum__set_state(struct __pyx_MemviewEnum_obj *, PyObject *); /*proto*/ static PyObject *__pyx_format_from_typeinfo(__Pyx_TypeInfo *); /*proto*/ static __Pyx_TypeInfo __Pyx_TypeInfo_size_t = { "size_t", NULL, sizeof(size_t), { 0 }, 0, IS_UNSIGNED(size_t) ? 'U' : 'I', IS_UNSIGNED(size_t), 0 }; static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t = { "float32_t", NULL, sizeof(__pyx_t_5numpy_float32_t), { 0 }, 0, 'R', 0, 0 }; static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t = { "float64_t", NULL, sizeof(__pyx_t_5numpy_float64_t), { 0 }, 0, 'R', 0, 0 }; static __Pyx_TypeInfo __Pyx_TypeInfo___pyx_t_float_complex = { "float complex", NULL, sizeof(__pyx_t_float_complex), { 0 }, 0, 'C', 0, 0 }; static __Pyx_TypeInfo __Pyx_TypeInfo___pyx_t_double_complex = { "double complex", NULL, sizeof(__pyx_t_double_complex), { 0 }, 0, 'C', 0, 0 }; #define __Pyx_MODULE_NAME "pywt._extensions._dwt" extern int __pyx_module_is_main_pywt___extensions___dwt; int __pyx_module_is_main_pywt___extensions___dwt = 0; /* Implementation of 'pywt._extensions._dwt' */ static PyObject *__pyx_builtin_ValueError; static PyObject *__pyx_builtin_TypeError; static PyObject *__pyx_builtin_range; static PyObject *__pyx_builtin_RuntimeError; static PyObject *__pyx_builtin_ImportError; static PyObject *__pyx_builtin_MemoryError; static PyObject *__pyx_builtin_enumerate; static PyObject *__pyx_builtin_Ellipsis; static PyObject *__pyx_builtin_id; static PyObject *__pyx_builtin_IndexError; static const char __pyx_k_O[] = "O"; static const char __pyx_k_T[] = "T{"; static const char __pyx_k_c[] = "c"; static const char __pyx_k_s[] = "s"; static const char __pyx_k__3[] = "()"; static const char __pyx_k__4[] = "|"; static const char __pyx_k_cA[] = "cA"; static const char __pyx_k_cD[] = "cD"; static const char __pyx_k_id[] = "id"; static const char __pyx_k_np[] = "np"; static const char __pyx_k__44[] = "^"; static const char __pyx_k__45[] = ""; static const char __pyx_k__46[] = ":"; static const char __pyx_k__47[] = "}"; static const char __pyx_k__48[] = ","; static const char __pyx_k_new[] = "__new__"; static const char __pyx_k_obj[] = "obj"; static const char __pyx_k_s_2[] = "(%s)"; static const char __pyx_k_args[] = "args"; static const char __pyx_k_axis[] = "axis"; static const char __pyx_k_base[] = "base"; static const char __pyx_k_copy[] = "copy"; static const char __pyx_k_data[] = "data"; static const char __pyx_k_dict[] = "__dict__"; static const char __pyx_k_join[] = "join"; static const char __pyx_k_kind[] = "kind"; static const char __pyx_k_main[] = "__main__"; static const char __pyx_k_mode[] = "mode"; static const char __pyx_k_name[] = "name"; static const char __pyx_k_ndim[] = "ndim"; static const char __pyx_k_pack[] = "pack"; static const char __pyx_k_size[] = "size"; static const char __pyx_k_step[] = "step"; static const char __pyx_k_stop[] = "stop"; static const char __pyx_k_take[] = "take"; static const char __pyx_k_test[] = "__test__"; static const char __pyx_k_ASCII[] = "ASCII"; static const char __pyx_k_class[] = "__class__"; static const char __pyx_k_dtype[] = "dtype"; static const char __pyx_k_empty[] = "empty"; static const char __pyx_k_error[] = "error"; static const char __pyx_k_flags[] = "flags"; static const char __pyx_k_level[] = "level"; static const char __pyx_k_numpy[] = "numpy"; static const char __pyx_k_range[] = "range"; static const char __pyx_k_shape[] = "shape"; static const char __pyx_k_split[] = "split"; static const char __pyx_k_start[] = "start"; static const char __pyx_k_strip[] = "strip"; static const char __pyx_k_zeros[] = "zeros"; static const char __pyx_k_astype[] = "astype"; static const char __pyx_k_coeffs[] = "coeffs"; static const char __pyx_k_encode[] = "encode"; static const char __pyx_k_format[] = "format"; static const char __pyx_k_import[] = "__import__"; static const char __pyx_k_kwargs[] = "kwargs"; static const char __pyx_k_name_2[] = "__name__"; static const char __pyx_k_pickle[] = "pickle"; static const char __pyx_k_reduce[] = "__reduce__"; static const char __pyx_k_struct[] = "struct"; static const char __pyx_k_unpack[] = "unpack"; static const char __pyx_k_upcoef[] = "upcoef"; static const char __pyx_k_update[] = "update"; static const char __pyx_k_coefs_a[] = "coefs_a"; static const char __pyx_k_coefs_d[] = "coefs_d"; static const char __pyx_k_dec_len[] = "dec_len"; static const char __pyx_k_float32[] = "float32"; static const char __pyx_k_float64[] = "float64"; static const char __pyx_k_fortran[] = "fortran"; static const char __pyx_k_memview[] = "memview"; static const char __pyx_k_rec_len[] = "rec_len"; static const char __pyx_k_wavelet[] = "wavelet"; static const char __pyx_k_Ellipsis[] = "Ellipsis"; static const char __pyx_k_data_len[] = "data_len"; static const char __pyx_k_defaults[] = "defaults"; static const char __pyx_k_do_dec_a[] = "do_dec_a"; static const char __pyx_k_do_rec_a[] = "do_rec_a"; static const char __pyx_k_downcoef[] = "downcoef"; static const char __pyx_k_getstate[] = "__getstate__"; static const char __pyx_k_itemsize[] = "itemsize"; static const char __pyx_k_pyx_type[] = "__pyx_type"; static const char __pyx_k_setstate[] = "__setstate__"; static const char __pyx_k_TypeError[] = "TypeError"; static const char __pyx_k_complex64[] = "complex64"; static const char __pyx_k_enumerate[] = "enumerate"; static const char __pyx_k_float32_t[] = "float32_t"; static const char __pyx_k_float64_t[] = "float64_t"; static const char __pyx_k_pyx_state[] = "__pyx_state"; static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; static const char __pyx_k_IndexError[] = "IndexError"; static const char __pyx_k_ValueError[] = "ValueError"; static const char __pyx_k_complex128[] = "complex128"; static const char __pyx_k_dwt_single[] = "dwt_single"; static const char __pyx_k_filter_len[] = "filter_len"; static const char __pyx_k_pyx_result[] = "__pyx_result"; static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; static const char __pyx_k_signatures[] = "signatures"; static const char __pyx_k_ImportError[] = "ImportError"; static const char __pyx_k_MemoryError[] = "MemoryError"; static const char __pyx_k_PickleError[] = "PickleError"; static const char __pyx_k_C_dwt_failed[] = "C dwt failed."; static const char __pyx_k_RuntimeError[] = "RuntimeError"; static const char __pyx_k_pyx_checksum[] = "__pyx_checksum"; static const char __pyx_k_stringsource[] = "stringsource"; static const char __pyx_k_C_idwt_failed[] = "C idwt failed."; static const char __pyx_k_float_complex[] = "float complex"; static const char __pyx_k_pyx_getbuffer[] = "__pyx_getbuffer"; static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; static const char __pyx_k_C_dec_a_failed[] = "C dec_a failed."; static const char __pyx_k_C_dec_d_failed[] = "C dec_d failed."; static const char __pyx_k_C_rec_a_failed[] = "C rec_a failed."; static const char __pyx_k_C_rec_d_failed[] = "C rec_d failed."; static const char __pyx_k_double_complex[] = "double complex"; static const char __pyx_k_View_MemoryView[] = "View.MemoryView"; static const char __pyx_k_allocate_buffer[] = "allocate_buffer"; static const char __pyx_k_dtype_is_object[] = "dtype_is_object"; static const char __pyx_k_pyx_PickleError[] = "__pyx_PickleError"; static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; static const char __pyx_k_pyx_fuse_0upcoef[] = "__pyx_fuse_0upcoef"; static const char __pyx_k_pyx_fuse_1upcoef[] = "__pyx_fuse_1upcoef"; static const char __pyx_k_pyx_fuse_2upcoef[] = "__pyx_fuse_2upcoef"; static const char __pyx_k_pyx_fuse_3upcoef[] = "__pyx_fuse_3upcoef"; static const char __pyx_k_pyx_unpickle_Enum[] = "__pyx_unpickle_Enum"; static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; static const char __pyx_k_pyx_fuse_0downcoef[] = "__pyx_fuse_0downcoef"; static const char __pyx_k_pyx_fuse_1downcoef[] = "__pyx_fuse_1downcoef"; static const char __pyx_k_pyx_fuse_2downcoef[] = "__pyx_fuse_2downcoef"; static const char __pyx_k_pyx_fuse_3downcoef[] = "__pyx_fuse_3downcoef"; static const char __pyx_k_strided_and_direct[] = ""; static const char __pyx_k_pyx_fuse_0dwt_single[] = "__pyx_fuse_0dwt_single"; static const char __pyx_k_pyx_fuse_1dwt_single[] = "__pyx_fuse_1dwt_single"; static const char __pyx_k_pyx_fuse_2dwt_single[] = "__pyx_fuse_2dwt_single"; static const char __pyx_k_pyx_fuse_3dwt_single[] = "__pyx_fuse_3dwt_single"; static const char __pyx_k_strided_and_indirect[] = ""; static const char __pyx_k_Invalid_output_length[] = "Invalid output length."; static const char __pyx_k_contiguous_and_direct[] = ""; static const char __pyx_k_pywt__extensions__dwt[] = "pywt._extensions._dwt"; static const char __pyx_k_MemoryView_of_r_object[] = ""; static const char __pyx_k_MemoryView_of_r_at_0x_x[] = ""; static const char __pyx_k_contiguous_and_indirect[] = ""; static const char __pyx_k_Cannot_index_with_type_s[] = "Cannot index with type '%s'"; static const char __pyx_k_Invalid_shape_in_axis_d_d[] = "Invalid shape in axis %d: %d."; static const char __pyx_k_pywt__extensions__dwt_pyx[] = "pywt/_extensions/_dwt.pyx"; static const char __pyx_k_C_wavelet_transform_failed[] = "C wavelet transform failed"; static const char __pyx_k_No_matching_signature_found[] = "No matching signature found"; static const char __pyx_k_itemsize_0_for_cython_array[] = "itemsize <= 0 for cython.array"; static const char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous"; static const char __pyx_k_unable_to_allocate_array_data[] = "unable to allocate array data."; static const char __pyx_k_strided_and_direct_or_indirect[] = ""; static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import"; static const char __pyx_k_unknown_dtype_code_in_numpy_pxd[] = "unknown dtype code in numpy.pxd (%d)"; static const char __pyx_k_Array_must_be_floating_point_not[] = "Array must be floating point, not {}"; static const char __pyx_k_Buffer_view_does_not_expose_stri[] = "Buffer view does not expose strides"; static const char __pyx_k_C_inverse_wavelet_transform_fail[] = "C inverse wavelet transform failed"; static const char __pyx_k_Can_only_create_a_buffer_that_is[] = "Can only create a buffer that is contiguous in memory."; static const char __pyx_k_Cannot_assign_to_read_only_memor[] = "Cannot assign to read-only memoryview"; static const char __pyx_k_Cannot_create_writable_memory_vi[] = "Cannot create writable memory view from read-only memoryview"; static const char __pyx_k_Coefficients_arrays_must_have_th[] = "Coefficients arrays must have the same size."; static const char __pyx_k_Empty_shape_tuple_for_cython_arr[] = "Empty shape tuple for cython.array"; static const char __pyx_k_Expected_at_least_d_argument_s_g[] = "Expected at least %d argument%s, got %d"; static const char __pyx_k_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd"; static const char __pyx_k_Function_call_with_ambiguous_arg[] = "Function call with ambiguous argument types"; static const char __pyx_k_Incompatible_checksums_s_vs_0xb0[] = "Incompatible checksums (%s vs 0xb068931 = (name))"; static const char __pyx_k_Indirect_dimensions_not_supporte[] = "Indirect dimensions not supported"; static const char __pyx_k_Invalid_coefficient_arrays_lengt[] = "Invalid coefficient arrays length for specified wavelet. Wavelet and mode must be the same as used for decomposition."; static const char __pyx_k_Invalid_mode_expected_c_or_fortr[] = "Invalid mode, expected 'c' or 'fortran', got %s"; static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported"; static const char __pyx_k_Out_of_bounds_on_buffer_access_a[] = "Out of bounds on buffer access (axis %d)"; static const char __pyx_k_Unable_to_convert_item_to_object[] = "Unable to convert item to object"; static const char __pyx_k_Value_of_data_len_must_be_greate[] = "Value of data_len must be greater than zero."; static const char __pyx_k_Value_of_filter_len_must_be_grea[] = "Value of filter_len must be greater than zero."; static const char __pyx_k_Value_of_level_must_be_greater_t[] = "Value of level must be greater than 0."; static const char __pyx_k_got_differing_extents_in_dimensi[] = "got differing extents in dimension %d (got %d and %d)"; static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous"; static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__"; static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import"; static const char __pyx_k_unable_to_allocate_shape_and_str[] = "unable to allocate shape and strides."; static const char __pyx_k_Coefficients_arrays_must_have_th_2[] = "Coefficients arrays must have the same dtype."; static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; static PyObject *__pyx_n_s_ASCII; static PyObject *__pyx_kp_u_Array_must_be_floating_point_not; static PyObject *__pyx_kp_s_Buffer_view_does_not_expose_stri; static PyObject *__pyx_kp_u_C_dec_a_failed; static PyObject *__pyx_kp_u_C_dec_d_failed; static PyObject *__pyx_kp_u_C_dwt_failed; static PyObject *__pyx_kp_u_C_idwt_failed; static PyObject *__pyx_kp_u_C_inverse_wavelet_transform_fail; static PyObject *__pyx_kp_u_C_rec_a_failed; static PyObject *__pyx_kp_u_C_rec_d_failed; static PyObject *__pyx_kp_u_C_wavelet_transform_failed; static PyObject *__pyx_kp_s_Can_only_create_a_buffer_that_is; static PyObject *__pyx_kp_s_Cannot_assign_to_read_only_memor; static PyObject *__pyx_kp_s_Cannot_create_writable_memory_vi; static PyObject *__pyx_kp_s_Cannot_index_with_type_s; static PyObject *__pyx_kp_u_Coefficients_arrays_must_have_th; static PyObject *__pyx_kp_u_Coefficients_arrays_must_have_th_2; static PyObject *__pyx_n_s_Ellipsis; static PyObject *__pyx_kp_s_Empty_shape_tuple_for_cython_arr; static PyObject *__pyx_kp_s_Expected_at_least_d_argument_s_g; static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; static PyObject *__pyx_kp_s_Function_call_with_ambiguous_arg; static PyObject *__pyx_n_s_ImportError; static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xb0; static PyObject *__pyx_n_s_IndexError; static PyObject *__pyx_kp_s_Indirect_dimensions_not_supporte; static PyObject *__pyx_kp_u_Invalid_coefficient_arrays_lengt; static PyObject *__pyx_kp_s_Invalid_mode_expected_c_or_fortr; static PyObject *__pyx_kp_u_Invalid_output_length; static PyObject *__pyx_kp_s_Invalid_shape_in_axis_d_d; static PyObject *__pyx_n_s_MemoryError; static PyObject *__pyx_kp_s_MemoryView_of_r_at_0x_x; static PyObject *__pyx_kp_s_MemoryView_of_r_object; static PyObject *__pyx_kp_s_No_matching_signature_found; static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; static PyObject *__pyx_n_b_O; static PyObject *__pyx_kp_s_Out_of_bounds_on_buffer_access_a; static PyObject *__pyx_n_s_PickleError; static PyObject *__pyx_n_s_RuntimeError; static PyObject *__pyx_kp_b_T; static PyObject *__pyx_n_s_TypeError; static PyObject *__pyx_kp_s_Unable_to_convert_item_to_object; static PyObject *__pyx_n_s_ValueError; static PyObject *__pyx_kp_u_Value_of_data_len_must_be_greate; static PyObject *__pyx_kp_u_Value_of_filter_len_must_be_grea; static PyObject *__pyx_kp_u_Value_of_level_must_be_greater_t; static PyObject *__pyx_n_s_View_MemoryView; static PyObject *__pyx_kp_s__3; static PyObject *__pyx_kp_s__4; static PyObject *__pyx_kp_b__44; static PyObject *__pyx_kp_b__45; static PyObject *__pyx_kp_b__46; static PyObject *__pyx_kp_b__47; static PyObject *__pyx_kp_u__48; static PyObject *__pyx_n_s_allocate_buffer; static PyObject *__pyx_n_s_args; static PyObject *__pyx_n_s_astype; static PyObject *__pyx_n_s_axis; static PyObject *__pyx_n_s_base; static PyObject *__pyx_n_s_c; static PyObject *__pyx_n_u_c; static PyObject *__pyx_n_s_cA; static PyObject *__pyx_n_s_cD; static PyObject *__pyx_n_s_class; static PyObject *__pyx_n_s_cline_in_traceback; static PyObject *__pyx_n_s_coeffs; static PyObject *__pyx_n_s_coefs_a; static PyObject *__pyx_n_s_coefs_d; static PyObject *__pyx_n_s_complex128; static PyObject *__pyx_n_s_complex64; static PyObject *__pyx_kp_s_contiguous_and_direct; static PyObject *__pyx_kp_s_contiguous_and_indirect; static PyObject *__pyx_n_s_copy; static PyObject *__pyx_n_s_data; static PyObject *__pyx_n_s_data_len; static PyObject *__pyx_n_s_dec_len; static PyObject *__pyx_n_s_defaults; static PyObject *__pyx_n_s_dict; static PyObject *__pyx_n_s_do_dec_a; static PyObject *__pyx_n_s_do_rec_a; static PyObject *__pyx_kp_s_double_complex; static PyObject *__pyx_n_s_downcoef; static PyObject *__pyx_n_s_dtype; static PyObject *__pyx_n_s_dtype_is_object; static PyObject *__pyx_n_s_dwt_single; static PyObject *__pyx_n_s_empty; static PyObject *__pyx_n_s_encode; static PyObject *__pyx_n_s_enumerate; static PyObject *__pyx_n_s_error; static PyObject *__pyx_n_s_filter_len; static PyObject *__pyx_n_s_flags; static PyObject *__pyx_n_s_float32; static PyObject *__pyx_n_s_float32_t; static PyObject *__pyx_n_s_float64; static PyObject *__pyx_n_s_float64_t; static PyObject *__pyx_kp_s_float_complex; static PyObject *__pyx_n_s_format; static PyObject *__pyx_n_s_fortran; static PyObject *__pyx_n_u_fortran; static PyObject *__pyx_n_s_getstate; static PyObject *__pyx_kp_s_got_differing_extents_in_dimensi; static PyObject *__pyx_n_s_id; static PyObject *__pyx_n_s_import; static PyObject *__pyx_n_s_itemsize; static PyObject *__pyx_kp_s_itemsize_0_for_cython_array; static PyObject *__pyx_n_s_join; static PyObject *__pyx_n_s_kind; static PyObject *__pyx_n_s_kwargs; static PyObject *__pyx_n_s_level; static PyObject *__pyx_n_s_main; static PyObject *__pyx_n_s_memview; static PyObject *__pyx_n_s_mode; static PyObject *__pyx_n_s_name; static PyObject *__pyx_n_s_name_2; static PyObject *__pyx_kp_u_ndarray_is_not_C_contiguous; static PyObject *__pyx_kp_u_ndarray_is_not_Fortran_contiguou; static PyObject *__pyx_n_s_ndim; static PyObject *__pyx_n_s_new; static PyObject *__pyx_kp_s_no_default___reduce___due_to_non; static PyObject *__pyx_n_s_np; static PyObject *__pyx_n_s_numpy; static PyObject *__pyx_kp_u_numpy_core_multiarray_failed_to; static PyObject *__pyx_kp_u_numpy_core_umath_failed_to_impor; static PyObject *__pyx_n_s_obj; static PyObject *__pyx_n_s_pack; static PyObject *__pyx_n_s_pickle; static PyObject *__pyx_n_s_pywt__extensions__dwt; static PyObject *__pyx_kp_s_pywt__extensions__dwt_pyx; static PyObject *__pyx_n_s_pyx_PickleError; static PyObject *__pyx_n_s_pyx_checksum; static PyObject *__pyx_n_s_pyx_fuse_0downcoef; static PyObject *__pyx_n_s_pyx_fuse_0dwt_single; static PyObject *__pyx_n_s_pyx_fuse_0upcoef; static PyObject *__pyx_n_s_pyx_fuse_1downcoef; static PyObject *__pyx_n_s_pyx_fuse_1dwt_single; static PyObject *__pyx_n_s_pyx_fuse_1upcoef; static PyObject *__pyx_n_s_pyx_fuse_2downcoef; static PyObject *__pyx_n_s_pyx_fuse_2dwt_single; static PyObject *__pyx_n_s_pyx_fuse_2upcoef; static PyObject *__pyx_n_s_pyx_fuse_3downcoef; static PyObject *__pyx_n_s_pyx_fuse_3dwt_single; static PyObject *__pyx_n_s_pyx_fuse_3upcoef; static PyObject *__pyx_n_s_pyx_getbuffer; static PyObject *__pyx_n_s_pyx_result; static PyObject *__pyx_n_s_pyx_state; static PyObject *__pyx_n_s_pyx_type; static PyObject *__pyx_n_s_pyx_unpickle_Enum; static PyObject *__pyx_n_s_pyx_vtable; static PyObject *__pyx_n_s_range; static PyObject *__pyx_n_s_rec_len; static PyObject *__pyx_n_s_reduce; static PyObject *__pyx_n_s_reduce_cython; static PyObject *__pyx_n_s_reduce_ex; static PyObject *__pyx_n_s_s; static PyObject *__pyx_kp_u_s_2; static PyObject *__pyx_n_s_setstate; static PyObject *__pyx_n_s_setstate_cython; static PyObject *__pyx_n_s_shape; static PyObject *__pyx_n_s_signatures; static PyObject *__pyx_n_s_size; static PyObject *__pyx_n_s_split; static PyObject *__pyx_n_s_start; static PyObject *__pyx_n_s_step; static PyObject *__pyx_n_s_stop; static PyObject *__pyx_kp_s_strided_and_direct; static PyObject *__pyx_kp_s_strided_and_direct_or_indirect; static PyObject *__pyx_kp_s_strided_and_indirect; static PyObject *__pyx_kp_s_stringsource; static PyObject *__pyx_n_s_strip; static PyObject *__pyx_n_s_struct; static PyObject *__pyx_n_s_take; static PyObject *__pyx_n_s_test; static PyObject *__pyx_kp_s_unable_to_allocate_array_data; static PyObject *__pyx_kp_s_unable_to_allocate_shape_and_str; static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; static PyObject *__pyx_n_s_unpack; static PyObject *__pyx_n_s_upcoef; static PyObject *__pyx_n_s_update; static PyObject *__pyx_n_s_wavelet; static PyObject *__pyx_n_s_zeros; static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_dwt_max_level(CYTHON_UNUSED PyObject *__pyx_self, size_t __pyx_v_data_len, size_t __pyx_v_filter_len); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_2dwt_coeff_len(CYTHON_UNUSED PyObject *__pyx_self, size_t __pyx_v_data_len, size_t __pyx_v_filter_len, MODE __pyx_v_mode); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_4dwt_single(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_16__pyx_fuse_0dwt_single(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_18__pyx_fuse_1dwt_single(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_20__pyx_fuse_2dwt_single(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_22__pyx_fuse_3dwt_single(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_6dwt_axis(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_data, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode, unsigned int __pyx_v_axis); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_8idwt_single(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_cA, PyArrayObject *__pyx_v_cD, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_10idwt_axis(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_coefs_a, PyArrayObject *__pyx_v_coefs_d, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode, unsigned int __pyx_v_axis); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_12upcoef(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_26__pyx_fuse_0upcoef(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_do_rec_a, __Pyx_memviewslice __pyx_v_coeffs, struct WaveletObject *__pyx_v_wavelet, int __pyx_v_level, size_t __pyx_v_take); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_28__pyx_fuse_1upcoef(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_do_rec_a, __Pyx_memviewslice __pyx_v_coeffs, struct WaveletObject *__pyx_v_wavelet, int __pyx_v_level, size_t __pyx_v_take); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_30__pyx_fuse_2upcoef(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_do_rec_a, __Pyx_memviewslice __pyx_v_coeffs, struct WaveletObject *__pyx_v_wavelet, int __pyx_v_level, size_t __pyx_v_take); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_32__pyx_fuse_3upcoef(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_do_rec_a, __Pyx_memviewslice __pyx_v_coeffs, struct WaveletObject *__pyx_v_wavelet, int __pyx_v_level, size_t __pyx_v_take); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_14downcoef(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_36__pyx_fuse_0downcoef(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_do_dec_a, __Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode, int __pyx_v_level); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_38__pyx_fuse_1downcoef(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_do_dec_a, __Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode, int __pyx_v_level); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_40__pyx_fuse_2downcoef(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_do_dec_a, __Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode, int __pyx_v_level); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_42__pyx_fuse_3downcoef(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_do_dec_a, __Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode, int __pyx_v_level); /* proto */ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info); /* proto */ static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, PyObject *__pyx_v_format, PyObject *__pyx_v_mode, int __pyx_v_allocate_buffer); /* proto */ static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(struct __pyx_array_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */ static void __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(struct __pyx_array_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_5array_7memview___get__(struct __pyx_array_obj *__pyx_v_self); /* proto */ static Py_ssize_t __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(struct __pyx_array_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_attr); /* proto */ static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item); /* proto */ static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value); /* proto */ static PyObject *__pyx_pf___pyx_array___reduce_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf___pyx_array_2__setstate_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static int __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v_name); /* proto */ static PyObject *__pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(struct __pyx_MemviewEnum_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf___pyx_MemviewEnum___reduce_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf___pyx_MemviewEnum_2__setstate_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */ static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_v_flags, int __pyx_v_dtype_is_object); /* proto */ static void __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index); /* proto */ static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /* proto */ static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(struct __pyx_memoryview_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static Py_ssize_t __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf___pyx_memoryview___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf___pyx_memoryview_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static void __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf___pyx_memoryviewslice___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf___pyx_memoryviewslice_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_tp_new_array(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_Enum(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_memoryview(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new__memoryviewslice(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_int_0; static PyObject *__pyx_int_1; static PyObject *__pyx_int_3; static PyObject *__pyx_int_5; static PyObject *__pyx_int_184977713; static PyObject *__pyx_int_neg_1; static PyObject *__pyx_tuple_; static PyObject *__pyx_tuple__2; static PyObject *__pyx_tuple__5; static PyObject *__pyx_tuple__6; static PyObject *__pyx_tuple__7; static PyObject *__pyx_tuple__8; static PyObject *__pyx_tuple__9; static PyObject *__pyx_slice__40; static PyObject *__pyx_tuple__10; static PyObject *__pyx_tuple__11; static PyObject *__pyx_tuple__12; static PyObject *__pyx_tuple__13; static PyObject *__pyx_tuple__14; static PyObject *__pyx_tuple__15; static PyObject *__pyx_tuple__16; static PyObject *__pyx_tuple__17; static PyObject *__pyx_tuple__18; static PyObject *__pyx_tuple__19; static PyObject *__pyx_tuple__20; static PyObject *__pyx_tuple__21; static PyObject *__pyx_tuple__22; static PyObject *__pyx_tuple__23; static PyObject *__pyx_tuple__24; static PyObject *__pyx_tuple__25; static PyObject *__pyx_tuple__26; static PyObject *__pyx_tuple__27; static PyObject *__pyx_tuple__28; static PyObject *__pyx_tuple__29; static PyObject *__pyx_tuple__30; static PyObject *__pyx_tuple__31; static PyObject *__pyx_tuple__32; static PyObject *__pyx_tuple__33; static PyObject *__pyx_tuple__34; static PyObject *__pyx_tuple__35; static PyObject *__pyx_tuple__36; static PyObject *__pyx_tuple__37; static PyObject *__pyx_tuple__38; static PyObject *__pyx_tuple__39; static PyObject *__pyx_tuple__41; static PyObject *__pyx_tuple__42; static PyObject *__pyx_tuple__43; static PyObject *__pyx_tuple__49; static PyObject *__pyx_tuple__51; static PyObject *__pyx_tuple__53; static PyObject *__pyx_tuple__55; static PyObject *__pyx_tuple__56; static PyObject *__pyx_tuple__57; static PyObject *__pyx_tuple__58; static PyObject *__pyx_tuple__59; static PyObject *__pyx_tuple__60; static PyObject *__pyx_codeobj__50; static PyObject *__pyx_codeobj__52; static PyObject *__pyx_codeobj__54; static PyObject *__pyx_codeobj__61; /* Late includes */ /* "pywt/_extensions/_dwt.pyx":13 * * * cpdef dwt_max_level(size_t data_len, size_t filter_len): # <<<<<<<<<<<<<< * return common.dwt_max_level(data_len, filter_len) * */ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_1dwt_max_level(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_f_4pywt_11_extensions_4_dwt_dwt_max_level(size_t __pyx_v_data_len, size_t __pyx_v_filter_len, CYTHON_UNUSED int __pyx_skip_dispatch) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("dwt_max_level", 0); /* "pywt/_extensions/_dwt.pyx":14 * * cpdef dwt_max_level(size_t data_len, size_t filter_len): * return common.dwt_max_level(data_len, filter_len) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_unsigned_char(dwt_max_level(__pyx_v_data_len, __pyx_v_filter_len)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pywt/_extensions/_dwt.pyx":13 * * * cpdef dwt_max_level(size_t data_len, size_t filter_len): # <<<<<<<<<<<<<< * return common.dwt_max_level(data_len, filter_len) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._dwt.dwt_max_level", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_1dwt_max_level(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_1dwt_max_level(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { size_t __pyx_v_data_len; size_t __pyx_v_filter_len; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("dwt_max_level (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_data_len,&__pyx_n_s_filter_len,0}; PyObject* values[2] = {0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data_len)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_filter_len)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("dwt_max_level", 1, 2, 2, 1); __PYX_ERR(0, 13, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "dwt_max_level") < 0)) __PYX_ERR(0, 13, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); } __pyx_v_data_len = __Pyx_PyInt_As_size_t(values[0]); if (unlikely((__pyx_v_data_len == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 13, __pyx_L3_error) __pyx_v_filter_len = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_filter_len == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 13, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("dwt_max_level", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 13, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._dwt.dwt_max_level", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_4_dwt_dwt_max_level(__pyx_self, __pyx_v_data_len, __pyx_v_filter_len); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_dwt_max_level(CYTHON_UNUSED PyObject *__pyx_self, size_t __pyx_v_data_len, size_t __pyx_v_filter_len) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("dwt_max_level", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_f_4pywt_11_extensions_4_dwt_dwt_max_level(__pyx_v_data_len, __pyx_v_filter_len, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._dwt.dwt_max_level", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_dwt.pyx":17 * * * cpdef dwt_coeff_len(size_t data_len, size_t filter_len, MODE mode): # <<<<<<<<<<<<<< * if data_len < 1: * raise ValueError("Value of data_len must be greater than zero.") */ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_3dwt_coeff_len(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_f_4pywt_11_extensions_4_dwt_dwt_coeff_len(size_t __pyx_v_data_len, size_t __pyx_v_filter_len, MODE __pyx_v_mode, CYTHON_UNUSED int __pyx_skip_dispatch) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("dwt_coeff_len", 0); /* "pywt/_extensions/_dwt.pyx":18 * * cpdef dwt_coeff_len(size_t data_len, size_t filter_len, MODE mode): * if data_len < 1: # <<<<<<<<<<<<<< * raise ValueError("Value of data_len must be greater than zero.") * if filter_len < 1: */ __pyx_t_1 = ((__pyx_v_data_len < 1) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":19 * cpdef dwt_coeff_len(size_t data_len, size_t filter_len, MODE mode): * if data_len < 1: * raise ValueError("Value of data_len must be greater than zero.") # <<<<<<<<<<<<<< * if filter_len < 1: * raise ValueError("Value of filter_len must be greater than zero.") */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple_, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 19, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":18 * * cpdef dwt_coeff_len(size_t data_len, size_t filter_len, MODE mode): * if data_len < 1: # <<<<<<<<<<<<<< * raise ValueError("Value of data_len must be greater than zero.") * if filter_len < 1: */ } /* "pywt/_extensions/_dwt.pyx":20 * if data_len < 1: * raise ValueError("Value of data_len must be greater than zero.") * if filter_len < 1: # <<<<<<<<<<<<<< * raise ValueError("Value of filter_len must be greater than zero.") * */ __pyx_t_1 = ((__pyx_v_filter_len < 1) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":21 * raise ValueError("Value of data_len must be greater than zero.") * if filter_len < 1: * raise ValueError("Value of filter_len must be greater than zero.") # <<<<<<<<<<<<<< * * return common.dwt_buffer_length(data_len, filter_len, mode) */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 21, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 21, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":20 * if data_len < 1: * raise ValueError("Value of data_len must be greater than zero.") * if filter_len < 1: # <<<<<<<<<<<<<< * raise ValueError("Value of filter_len must be greater than zero.") * */ } /* "pywt/_extensions/_dwt.pyx":23 * raise ValueError("Value of filter_len must be greater than zero.") * * return common.dwt_buffer_length(data_len, filter_len, mode) # <<<<<<<<<<<<<< * * cpdef dwt_single(cdata_t[::1] data, Wavelet wavelet, MODE mode): */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyInt_FromSize_t(dwt_buffer_length(__pyx_v_data_len, __pyx_v_filter_len, __pyx_v_mode)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 23, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "pywt/_extensions/_dwt.pyx":17 * * * cpdef dwt_coeff_len(size_t data_len, size_t filter_len, MODE mode): # <<<<<<<<<<<<<< * if data_len < 1: * raise ValueError("Value of data_len must be greater than zero.") */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pywt._extensions._dwt.dwt_coeff_len", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_3dwt_coeff_len(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_3dwt_coeff_len(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { size_t __pyx_v_data_len; size_t __pyx_v_filter_len; MODE __pyx_v_mode; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("dwt_coeff_len (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_data_len,&__pyx_n_s_filter_len,&__pyx_n_s_mode,0}; PyObject* values[3] = {0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data_len)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_filter_len)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("dwt_coeff_len", 1, 3, 3, 1); __PYX_ERR(0, 17, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("dwt_coeff_len", 1, 3, 3, 2); __PYX_ERR(0, 17, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "dwt_coeff_len") < 0)) __PYX_ERR(0, 17, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); } __pyx_v_data_len = __Pyx_PyInt_As_size_t(values[0]); if (unlikely((__pyx_v_data_len == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 17, __pyx_L3_error) __pyx_v_filter_len = __Pyx_PyInt_As_size_t(values[1]); if (unlikely((__pyx_v_filter_len == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 17, __pyx_L3_error) __pyx_v_mode = ((MODE)__Pyx_PyInt_As_MODE(values[2])); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 17, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("dwt_coeff_len", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 17, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._dwt.dwt_coeff_len", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_4_dwt_2dwt_coeff_len(__pyx_self, __pyx_v_data_len, __pyx_v_filter_len, __pyx_v_mode); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_2dwt_coeff_len(CYTHON_UNUSED PyObject *__pyx_self, size_t __pyx_v_data_len, size_t __pyx_v_filter_len, MODE __pyx_v_mode) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("dwt_coeff_len", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_f_4pywt_11_extensions_4_dwt_dwt_coeff_len(__pyx_v_data_len, __pyx_v_filter_len, __pyx_v_mode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._dwt.dwt_coeff_len", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_dwt.pyx":25 * return common.dwt_buffer_length(data_len, filter_len, mode) * * cpdef dwt_single(cdata_t[::1] data, Wavelet wavelet, MODE mode): # <<<<<<<<<<<<<< * cdef size_t output_len = dwt_coeff_len(data.size, wavelet.dec_len, mode) * cdef np.ndarray cA, cD */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_5dwt_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_4pywt_11_extensions_4_dwt_5dwt_single = {"dwt_single", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_4_dwt_5dwt_single, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_5dwt_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_signatures = 0; PyObject *__pyx_v_args = 0; PyObject *__pyx_v_kwargs = 0; CYTHON_UNUSED PyObject *__pyx_v_defaults = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0}; PyObject* values[4] = {0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 25, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(0, 25, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(0, 25, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 25, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); } __pyx_v_signatures = values[0]; __pyx_v_args = values[1]; __pyx_v_kwargs = values[2]; __pyx_v_defaults = values[3]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 25, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._dwt.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_4_dwt_4dwt_single(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_4dwt_single(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) { PyObject *__pyx_v_dest_sig = NULL; Py_ssize_t __pyx_v_i; PyTypeObject *__pyx_v_ndarray = 0; __Pyx_memviewslice __pyx_v_memslice; Py_ssize_t __pyx_v_itemsize; CYTHON_UNUSED int __pyx_v_dtype_signed; char __pyx_v_kind; PyObject *__pyx_v_arg = NULL; PyObject *__pyx_v_dtype = NULL; PyObject *__pyx_v_arg_base = NULL; PyObject *__pyx_v_candidates = NULL; PyObject *__pyx_v_sig = NULL; int __pyx_v_match_found; PyObject *__pyx_v_src_sig = NULL; PyObject *__pyx_v_dst_type = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; Py_ssize_t __pyx_t_5; PyObject *__pyx_t_6 = NULL; long __pyx_t_7; __Pyx_memviewslice __pyx_t_8; Py_ssize_t __pyx_t_9; int __pyx_t_10; int __pyx_t_11; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; Py_ssize_t __pyx_t_15; Py_ssize_t __pyx_t_16; Py_ssize_t __pyx_t_17; int __pyx_t_18; __Pyx_RefNannySetupContext("dwt_single", 0); __Pyx_INCREF(__pyx_v_kwargs); __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyList_SET_ITEM(__pyx_t_1, 0, Py_None); __pyx_v_dest_sig = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__pyx_v_kwargs != Py_None); __pyx_t_4 = (__pyx_t_3 != 0); if (__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L4_bool_binop_done; } __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 25, __pyx_L1_error) __pyx_t_3 = ((!__pyx_t_4) != 0); __pyx_t_2 = __pyx_t_3; __pyx_L4_bool_binop_done:; if (__pyx_t_2) { __Pyx_INCREF(Py_None); __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None); } __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_itemsize = -1L; if (unlikely(__pyx_v_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 25, __pyx_L1_error) } __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 25, __pyx_L1_error) __pyx_t_2 = ((0 < __pyx_t_5) != 0); if (__pyx_t_2) { if (unlikely(__pyx_v_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 25, __pyx_L1_error) } __pyx_t_1 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 0); __Pyx_INCREF(__pyx_t_1); __pyx_v_arg = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L6; } __pyx_t_3 = (__pyx_v_kwargs != Py_None); __pyx_t_4 = (__pyx_t_3 != 0); if (__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L7_bool_binop_done; } if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(0, 25, __pyx_L1_error) } __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_data, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 25, __pyx_L1_error) __pyx_t_3 = (__pyx_t_4 != 0); __pyx_t_2 = __pyx_t_3; __pyx_L7_bool_binop_done:; if (__pyx_t_2) { if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 25, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_arg = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L6; } /*else*/ { if (unlikely(__pyx_v_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 25, __pyx_L1_error) } __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 25, __pyx_L1_error) __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_3); __Pyx_INCREF(__pyx_n_s_s); __Pyx_GIVEREF(__pyx_n_s_s); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(0, 25, __pyx_L1_error) } __pyx_L6:; while (1) { __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None)); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_v_dtype = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L12; } __pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_v_arg_base = __pyx_t_6; __pyx_t_6 = 0; __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_v_dtype = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L13; } /*else*/ { __Pyx_INCREF(Py_None); __pyx_v_dtype = Py_None; } __pyx_L13:; goto __pyx_L12; } /*else*/ { __Pyx_INCREF(Py_None); __pyx_v_dtype = Py_None; } __pyx_L12:; __pyx_v_itemsize = -1L; __pyx_t_2 = (__pyx_v_dtype != Py_None); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_itemsize = __pyx_t_5; __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_kind = __pyx_t_7; __pyx_v_dtype_signed = (__pyx_v_kind == 'i'); switch (__pyx_v_kind) { case 'i': case 'u': break; case 'f': __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0); if (__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L16_bool_binop_done; } __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L16_bool_binop_done:; if (__pyx_t_3) { if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 25, __pyx_L1_error) goto __pyx_L10_break; } __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0); if (__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L19_bool_binop_done; } __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L19_bool_binop_done:; if (__pyx_t_3) { if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 25, __pyx_L1_error) goto __pyx_L10_break; } break; case 'c': __pyx_t_2 = (((sizeof(__pyx_t_float_complex)) == __pyx_v_itemsize) != 0); if (__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L22_bool_binop_done; } __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L22_bool_binop_done:; if (__pyx_t_3) { if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_float_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 25, __pyx_L1_error) goto __pyx_L10_break; } __pyx_t_2 = (((sizeof(__pyx_t_double_complex)) == __pyx_v_itemsize) != 0); if (__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L25_bool_binop_done; } __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L25_bool_binop_done:; if (__pyx_t_3) { if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 25, __pyx_L1_error) goto __pyx_L10_break; } break; case 'O': break; default: break; } } } __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0); if (!__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L28_bool_binop_done; } __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L28_bool_binop_done:; if (__pyx_t_3) { __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(__pyx_v_arg, 0); __pyx_v_memslice = __pyx_t_8; __pyx_t_3 = (__pyx_v_memslice.memview != 0); if (__pyx_t_3) { __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 25, __pyx_L1_error) goto __pyx_L10_break; } /*else*/ { PyErr_Clear(); } } __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0); if (!__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L32_bool_binop_done; } __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L32_bool_binop_done:; if (__pyx_t_3) { __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0); __pyx_v_memslice = __pyx_t_8; __pyx_t_3 = (__pyx_v_memslice.memview != 0); if (__pyx_t_3) { __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 25, __pyx_L1_error) goto __pyx_L10_break; } /*else*/ { PyErr_Clear(); } } __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0); if (!__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L36_bool_binop_done; } __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_float_complex))) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L36_bool_binop_done:; if (__pyx_t_3) { __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_float_complex(__pyx_v_arg, 0); __pyx_v_memslice = __pyx_t_8; __pyx_t_3 = (__pyx_v_memslice.memview != 0); if (__pyx_t_3) { __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_float_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 25, __pyx_L1_error) goto __pyx_L10_break; } /*else*/ { PyErr_Clear(); } } __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0); if (!__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L40_bool_binop_done; } __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_double_complex))) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L40_bool_binop_done:; if (__pyx_t_3) { __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_double_complex(__pyx_v_arg, 0); __pyx_v_memslice = __pyx_t_8; __pyx_t_3 = (__pyx_v_memslice.memview != 0); if (__pyx_t_3) { __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 25, __pyx_L1_error) goto __pyx_L10_break; } /*else*/ { PyErr_Clear(); } } if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 25, __pyx_L1_error) goto __pyx_L10_break; } __pyx_L10_break:; __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_v_candidates = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0; __pyx_t_5 = 0; if (unlikely(__pyx_v_signatures == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(0, 25, __pyx_L1_error) } __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = __pyx_t_1; __pyx_t_1 = 0; while (1) { __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_9, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_10); if (unlikely(__pyx_t_11 == 0)) break; if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1); __pyx_t_1 = 0; __pyx_v_match_found = 0; __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); } } __pyx_t_12 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__3); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); } } __pyx_t_1 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_12, __pyx_kp_s__4) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__4); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_15 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 25, __pyx_L1_error) __pyx_t_16 = __pyx_t_15; for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) { __pyx_v_i = __pyx_t_17; __pyx_t_1 = PyList_GET_ITEM(__pyx_v_dest_sig, __pyx_v_i); __Pyx_INCREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__pyx_v_dst_type != Py_None); __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_13 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (__pyx_t_2) { __pyx_v_match_found = 1; goto __pyx_L48; } /*else*/ { __pyx_v_match_found = 0; goto __pyx_L46_break; } __pyx_L48:; } } __pyx_L46_break:; __pyx_t_2 = (__pyx_v_match_found != 0); if (__pyx_t_2) { __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 25, __pyx_L1_error) } } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_candidates) != 0); __pyx_t_3 = ((!__pyx_t_2) != 0); if (__pyx_t_3) { __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(0, 25, __pyx_L1_error) } __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 25, __pyx_L1_error) __pyx_t_3 = ((__pyx_t_9 > 1) != 0); if (__pyx_t_3) { __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(0, 25, __pyx_L1_error) } /*else*/ { __Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_signatures == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 25, __pyx_L1_error) } __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), PyList_GET_ITEM(__pyx_v_candidates, 0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0; } /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_12); __Pyx_XDECREF(__pyx_t_13); __Pyx_XDECREF(__pyx_t_14); __Pyx_AddTraceback("pywt._extensions._dwt.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_dest_sig); __Pyx_XDECREF(__pyx_v_ndarray); __Pyx_XDECREF(__pyx_v_arg); __Pyx_XDECREF(__pyx_v_dtype); __Pyx_XDECREF(__pyx_v_arg_base); __Pyx_XDECREF(__pyx_v_candidates); __Pyx_XDECREF(__pyx_v_sig); __Pyx_XDECREF(__pyx_v_src_sig); __Pyx_XDECREF(__pyx_v_dst_type); __Pyx_XDECREF(__pyx_v_kwargs); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_17__pyx_fuse_0dwt_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_5dwt_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_fuse_0__pyx_f_4pywt_11_extensions_4_dwt_dwt_single(__Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode, CYTHON_UNUSED int __pyx_skip_dispatch) { size_t __pyx_v_output_len; PyArrayObject *__pyx_v_cA = 0; PyArrayObject *__pyx_v_cD = 0; int __pyx_v_retval_a; int __pyx_v_retval_d; size_t __pyx_v_data_size; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; size_t __pyx_t_4; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; int __pyx_t_9; PyObject *__pyx_t_10 = NULL; Py_ssize_t __pyx_t_11; Py_ssize_t __pyx_t_12; int __pyx_t_13; __Pyx_RefNannySetupContext("__pyx_fuse_0dwt_single", 0); /* "pywt/_extensions/_dwt.pyx":26 * * cpdef dwt_single(cdata_t[::1] data, Wavelet wavelet, MODE mode): * cdef size_t output_len = dwt_coeff_len(data.size, wavelet.dec_len, mode) # <<<<<<<<<<<<<< * cdef np.ndarray cA, cD * cdef int retval_a, retval_d */ __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_3 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_dec_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_f_4pywt_11_extensions_4_dwt_dwt_coeff_len(__pyx_t_3, __pyx_t_4, __pyx_v_mode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_output_len = __pyx_t_4; /* "pywt/_extensions/_dwt.pyx":29 * cdef np.ndarray cA, cD * cdef int retval_a, retval_d * cdef size_t data_size = data.size # <<<<<<<<<<<<<< * if output_len < 1: * raise RuntimeError("Invalid output length.") */ __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_data_size = __pyx_t_4; /* "pywt/_extensions/_dwt.pyx":30 * cdef int retval_a, retval_d * cdef size_t data_size = data.size * if output_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ __pyx_t_5 = ((__pyx_v_output_len < 1) != 0); if (unlikely(__pyx_t_5)) { /* "pywt/_extensions/_dwt.pyx":31 * cdef size_t data_size = data.size * if output_len < 1: * raise RuntimeError("Invalid output length.") # <<<<<<<<<<<<<< * * if cdata_t is np.float64_t: */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 31, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 31, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":30 * cdef int retval_a, retval_d * cdef size_t data_size = data.size * if output_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ } /* "pywt/_extensions/_dwt.pyx":46 * raise RuntimeError("C dwt failed.") * elif cdata_t is np.float32_t: * cA = np.zeros(output_len, np.float32) # <<<<<<<<<<<<<< * cD = np.zeros(output_len, np.float32) * with nogil: */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_float32); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_9 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_2, __pyx_t_8}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_2, __pyx_t_8}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif { __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_8); __pyx_t_2 = 0; __pyx_t_8 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 46, __pyx_L1_error) __pyx_v_cA = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_dwt.pyx":47 * elif cdata_t is np.float32_t: * cA = np.zeros(output_len, np.float32) * cD = np.zeros(output_len, np.float32) # <<<<<<<<<<<<<< * with nogil: * retval_a = c_wt.float_dec_a(&data[0], data_size, wavelet.w, */ __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_float32); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); __pyx_t_9 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_6, __pyx_t_2}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_6, __pyx_t_2}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif { __pyx_t_7 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8); __pyx_t_8 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_9, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_9, __pyx_t_2); __pyx_t_6 = 0; __pyx_t_2 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 47, __pyx_L1_error) __pyx_v_cD = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_dwt.pyx":48 * cA = np.zeros(output_len, np.float32) * cD = np.zeros(output_len, np.float32) * with nogil: # <<<<<<<<<<<<<< * retval_a = c_wt.float_dec_a(&data[0], data_size, wavelet.w, * cA.data, output_len, mode) */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":49 * cD = np.zeros(output_len, np.float32) * with nogil: * retval_a = c_wt.float_dec_a(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * cA.data, output_len, mode) * retval_d = c_wt.float_dec_d(&data[0], data_size, wavelet.w, */ __pyx_t_11 = 0; /* "pywt/_extensions/_dwt.pyx":50 * with nogil: * retval_a = c_wt.float_dec_a(&data[0], data_size, wavelet.w, * cA.data, output_len, mode) # <<<<<<<<<<<<<< * retval_d = c_wt.float_dec_d(&data[0], data_size, wavelet.w, * cD.data, output_len, mode) */ __pyx_v_retval_a = float_dec_a((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_data.data) + __pyx_t_11)) )))), __pyx_v_data_size, __pyx_v_wavelet->w, ((float *)__pyx_v_cA->data), __pyx_v_output_len, __pyx_v_mode); /* "pywt/_extensions/_dwt.pyx":51 * retval_a = c_wt.float_dec_a(&data[0], data_size, wavelet.w, * cA.data, output_len, mode) * retval_d = c_wt.float_dec_d(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * cD.data, output_len, mode) * if ( retval_a < 0 or retval_d < 0): */ __pyx_t_12 = 0; /* "pywt/_extensions/_dwt.pyx":52 * cA.data, output_len, mode) * retval_d = c_wt.float_dec_d(&data[0], data_size, wavelet.w, * cD.data, output_len, mode) # <<<<<<<<<<<<<< * if ( retval_a < 0 or retval_d < 0): * raise RuntimeError("C dwt failed.") */ __pyx_v_retval_d = float_dec_d((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_data.data) + __pyx_t_12)) )))), __pyx_v_data_size, __pyx_v_wavelet->w, ((float *)__pyx_v_cD->data), __pyx_v_output_len, __pyx_v_mode); } /* "pywt/_extensions/_dwt.pyx":48 * cA = np.zeros(output_len, np.float32) * cD = np.zeros(output_len, np.float32) * with nogil: # <<<<<<<<<<<<<< * retval_a = c_wt.float_dec_a(&data[0], data_size, wavelet.w, * cA.data, output_len, mode) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L6; } __pyx_L6:; } } /* "pywt/_extensions/_dwt.pyx":53 * retval_d = c_wt.float_dec_d(&data[0], data_size, wavelet.w, * cD.data, output_len, mode) * if ( retval_a < 0 or retval_d < 0): # <<<<<<<<<<<<<< * raise RuntimeError("C dwt failed.") * */ __pyx_t_13 = ((__pyx_v_retval_a < 0) != 0); if (!__pyx_t_13) { } else { __pyx_t_5 = __pyx_t_13; goto __pyx_L8_bool_binop_done; } __pyx_t_13 = ((__pyx_v_retval_d < 0) != 0); __pyx_t_5 = __pyx_t_13; __pyx_L8_bool_binop_done:; if (unlikely(__pyx_t_5)) { /* "pywt/_extensions/_dwt.pyx":54 * cD.data, output_len, mode) * if ( retval_a < 0 or retval_d < 0): * raise RuntimeError("C dwt failed.") # <<<<<<<<<<<<<< * * IF HAVE_C99_CPLX: */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 54, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 54, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":53 * retval_d = c_wt.float_dec_d(&data[0], data_size, wavelet.w, * cD.data, output_len, mode) * if ( retval_a < 0 or retval_d < 0): # <<<<<<<<<<<<<< * raise RuntimeError("C dwt failed.") * */ } /* "pywt/_extensions/_dwt.pyx":78 * raise RuntimeError("C dwt failed.") * * return (cA, cD) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_cA)); __Pyx_GIVEREF(((PyObject *)__pyx_v_cA)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_cA)); __Pyx_INCREF(((PyObject *)__pyx_v_cD)); __Pyx_GIVEREF(((PyObject *)__pyx_v_cD)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_cD)); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pywt/_extensions/_dwt.pyx":25 * return common.dwt_buffer_length(data_len, filter_len, mode) * * cpdef dwt_single(cdata_t[::1] data, Wavelet wavelet, MODE mode): # <<<<<<<<<<<<<< * cdef size_t output_len = dwt_coeff_len(data.size, wavelet.dec_len, mode) * cdef np.ndarray cA, cD */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("pywt._extensions._dwt.dwt_single", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_cA); __Pyx_XDECREF((PyObject *)__pyx_v_cD); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_17__pyx_fuse_0dwt_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_0__pyx_mdef_4pywt_11_extensions_4_dwt_17__pyx_fuse_0dwt_single = {"__pyx_fuse_0dwt_single", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_4_dwt_17__pyx_fuse_0dwt_single, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_17__pyx_fuse_0dwt_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } }; struct WaveletObject *__pyx_v_wavelet = 0; MODE __pyx_v_mode; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_0dwt_single (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_data,&__pyx_n_s_wavelet,&__pyx_n_s_mode,0}; PyObject* values[3] = {0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wavelet)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0dwt_single", 1, 3, 3, 1); __PYX_ERR(0, 25, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0dwt_single", 1, 3, 3, 2); __PYX_ERR(0, 25, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0dwt_single") < 0)) __PYX_ERR(0, 25, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); } __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 25, __pyx_L3_error) __pyx_v_wavelet = ((struct WaveletObject *)values[1]); __pyx_v_mode = ((MODE)__Pyx_PyInt_As_MODE(values[2])); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 25, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0dwt_single", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 25, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._dwt.__pyx_fuse_0dwt_single", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_wavelet), __pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet, 1, "wavelet", 0))) __PYX_ERR(0, 25, __pyx_L1_error) __pyx_r = __pyx_pf_4pywt_11_extensions_4_dwt_16__pyx_fuse_0dwt_single(__pyx_self, __pyx_v_data, __pyx_v_wavelet, __pyx_v_mode); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_16__pyx_fuse_0dwt_single(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__pyx_fuse_0dwt_single", 0); __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_data.memview)) { __Pyx_RaiseUnboundLocalError("data"); __PYX_ERR(0, 25, __pyx_L1_error) } __pyx_t_1 = __pyx_fuse_0__pyx_f_4pywt_11_extensions_4_dwt_dwt_single(__pyx_v_data, __pyx_v_wavelet, __pyx_v_mode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._dwt.__pyx_fuse_0dwt_single", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_19__pyx_fuse_1dwt_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_5dwt_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_fuse_1__pyx_f_4pywt_11_extensions_4_dwt_dwt_single(__Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode, CYTHON_UNUSED int __pyx_skip_dispatch) { size_t __pyx_v_output_len; PyArrayObject *__pyx_v_cA = 0; PyArrayObject *__pyx_v_cD = 0; int __pyx_v_retval_a; int __pyx_v_retval_d; size_t __pyx_v_data_size; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; size_t __pyx_t_4; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; int __pyx_t_9; PyObject *__pyx_t_10 = NULL; Py_ssize_t __pyx_t_11; Py_ssize_t __pyx_t_12; int __pyx_t_13; __Pyx_RefNannySetupContext("__pyx_fuse_1dwt_single", 0); /* "pywt/_extensions/_dwt.pyx":26 * * cpdef dwt_single(cdata_t[::1] data, Wavelet wavelet, MODE mode): * cdef size_t output_len = dwt_coeff_len(data.size, wavelet.dec_len, mode) # <<<<<<<<<<<<<< * cdef np.ndarray cA, cD * cdef int retval_a, retval_d */ __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_3 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_dec_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_f_4pywt_11_extensions_4_dwt_dwt_coeff_len(__pyx_t_3, __pyx_t_4, __pyx_v_mode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_output_len = __pyx_t_4; /* "pywt/_extensions/_dwt.pyx":29 * cdef np.ndarray cA, cD * cdef int retval_a, retval_d * cdef size_t data_size = data.size # <<<<<<<<<<<<<< * if output_len < 1: * raise RuntimeError("Invalid output length.") */ __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_data_size = __pyx_t_4; /* "pywt/_extensions/_dwt.pyx":30 * cdef int retval_a, retval_d * cdef size_t data_size = data.size * if output_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ __pyx_t_5 = ((__pyx_v_output_len < 1) != 0); if (unlikely(__pyx_t_5)) { /* "pywt/_extensions/_dwt.pyx":31 * cdef size_t data_size = data.size * if output_len < 1: * raise RuntimeError("Invalid output length.") # <<<<<<<<<<<<<< * * if cdata_t is np.float64_t: */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 31, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 31, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":30 * cdef int retval_a, retval_d * cdef size_t data_size = data.size * if output_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ } /* "pywt/_extensions/_dwt.pyx":36 * # TODO: Don't think these have to be 0-initialized * # TODO: Check other methods of allocating (e.g. Cython/CPython arrays) * cA = np.zeros(output_len, np.float64) # <<<<<<<<<<<<<< * cD = np.zeros(output_len, np.float64) * with nogil: */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_float64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_9 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_2, __pyx_t_8}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_2, __pyx_t_8}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif { __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_8); __pyx_t_2 = 0; __pyx_t_8 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 36, __pyx_L1_error) __pyx_v_cA = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_dwt.pyx":37 * # TODO: Check other methods of allocating (e.g. Cython/CPython arrays) * cA = np.zeros(output_len, np.float64) * cD = np.zeros(output_len, np.float64) # <<<<<<<<<<<<<< * with nogil: * retval_a = c_wt.double_dec_a(&data[0], data_size, wavelet.w, */ __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_float64); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); __pyx_t_9 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_6, __pyx_t_2}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_6, __pyx_t_2}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif { __pyx_t_7 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8); __pyx_t_8 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_9, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_9, __pyx_t_2); __pyx_t_6 = 0; __pyx_t_2 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 37, __pyx_L1_error) __pyx_v_cD = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_dwt.pyx":38 * cA = np.zeros(output_len, np.float64) * cD = np.zeros(output_len, np.float64) * with nogil: # <<<<<<<<<<<<<< * retval_a = c_wt.double_dec_a(&data[0], data_size, wavelet.w, * cA.data, output_len, mode) */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":39 * cD = np.zeros(output_len, np.float64) * with nogil: * retval_a = c_wt.double_dec_a(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * cA.data, output_len, mode) * retval_d = c_wt.double_dec_d(&data[0], data_size, wavelet.w, */ __pyx_t_11 = 0; /* "pywt/_extensions/_dwt.pyx":40 * with nogil: * retval_a = c_wt.double_dec_a(&data[0], data_size, wavelet.w, * cA.data, output_len, mode) # <<<<<<<<<<<<<< * retval_d = c_wt.double_dec_d(&data[0], data_size, wavelet.w, * cD.data, output_len, mode) */ __pyx_v_retval_a = double_dec_a((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_data.data) + __pyx_t_11)) )))), __pyx_v_data_size, __pyx_v_wavelet->w, ((double *)__pyx_v_cA->data), __pyx_v_output_len, __pyx_v_mode); /* "pywt/_extensions/_dwt.pyx":41 * retval_a = c_wt.double_dec_a(&data[0], data_size, wavelet.w, * cA.data, output_len, mode) * retval_d = c_wt.double_dec_d(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * cD.data, output_len, mode) * if ( retval_a < 0 or retval_d < 0): */ __pyx_t_12 = 0; /* "pywt/_extensions/_dwt.pyx":42 * cA.data, output_len, mode) * retval_d = c_wt.double_dec_d(&data[0], data_size, wavelet.w, * cD.data, output_len, mode) # <<<<<<<<<<<<<< * if ( retval_a < 0 or retval_d < 0): * raise RuntimeError("C dwt failed.") */ __pyx_v_retval_d = double_dec_d((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_data.data) + __pyx_t_12)) )))), __pyx_v_data_size, __pyx_v_wavelet->w, ((double *)__pyx_v_cD->data), __pyx_v_output_len, __pyx_v_mode); } /* "pywt/_extensions/_dwt.pyx":38 * cA = np.zeros(output_len, np.float64) * cD = np.zeros(output_len, np.float64) * with nogil: # <<<<<<<<<<<<<< * retval_a = c_wt.double_dec_a(&data[0], data_size, wavelet.w, * cA.data, output_len, mode) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L6; } __pyx_L6:; } } /* "pywt/_extensions/_dwt.pyx":43 * retval_d = c_wt.double_dec_d(&data[0], data_size, wavelet.w, * cD.data, output_len, mode) * if ( retval_a < 0 or retval_d < 0): # <<<<<<<<<<<<<< * raise RuntimeError("C dwt failed.") * elif cdata_t is np.float32_t: */ __pyx_t_13 = ((__pyx_v_retval_a < 0) != 0); if (!__pyx_t_13) { } else { __pyx_t_5 = __pyx_t_13; goto __pyx_L8_bool_binop_done; } __pyx_t_13 = ((__pyx_v_retval_d < 0) != 0); __pyx_t_5 = __pyx_t_13; __pyx_L8_bool_binop_done:; if (unlikely(__pyx_t_5)) { /* "pywt/_extensions/_dwt.pyx":44 * cD.data, output_len, mode) * if ( retval_a < 0 or retval_d < 0): * raise RuntimeError("C dwt failed.") # <<<<<<<<<<<<<< * elif cdata_t is np.float32_t: * cA = np.zeros(output_len, np.float32) */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 44, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 44, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":43 * retval_d = c_wt.double_dec_d(&data[0], data_size, wavelet.w, * cD.data, output_len, mode) * if ( retval_a < 0 or retval_d < 0): # <<<<<<<<<<<<<< * raise RuntimeError("C dwt failed.") * elif cdata_t is np.float32_t: */ } /* "pywt/_extensions/_dwt.pyx":78 * raise RuntimeError("C dwt failed.") * * return (cA, cD) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_cA)); __Pyx_GIVEREF(((PyObject *)__pyx_v_cA)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_cA)); __Pyx_INCREF(((PyObject *)__pyx_v_cD)); __Pyx_GIVEREF(((PyObject *)__pyx_v_cD)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_cD)); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pywt/_extensions/_dwt.pyx":25 * return common.dwt_buffer_length(data_len, filter_len, mode) * * cpdef dwt_single(cdata_t[::1] data, Wavelet wavelet, MODE mode): # <<<<<<<<<<<<<< * cdef size_t output_len = dwt_coeff_len(data.size, wavelet.dec_len, mode) * cdef np.ndarray cA, cD */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("pywt._extensions._dwt.dwt_single", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_cA); __Pyx_XDECREF((PyObject *)__pyx_v_cD); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_19__pyx_fuse_1dwt_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_1__pyx_mdef_4pywt_11_extensions_4_dwt_19__pyx_fuse_1dwt_single = {"__pyx_fuse_1dwt_single", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_4_dwt_19__pyx_fuse_1dwt_single, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_19__pyx_fuse_1dwt_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } }; struct WaveletObject *__pyx_v_wavelet = 0; MODE __pyx_v_mode; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_1dwt_single (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_data,&__pyx_n_s_wavelet,&__pyx_n_s_mode,0}; PyObject* values[3] = {0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wavelet)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1dwt_single", 1, 3, 3, 1); __PYX_ERR(0, 25, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1dwt_single", 1, 3, 3, 2); __PYX_ERR(0, 25, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1dwt_single") < 0)) __PYX_ERR(0, 25, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); } __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 25, __pyx_L3_error) __pyx_v_wavelet = ((struct WaveletObject *)values[1]); __pyx_v_mode = ((MODE)__Pyx_PyInt_As_MODE(values[2])); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 25, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1dwt_single", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 25, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._dwt.__pyx_fuse_1dwt_single", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_wavelet), __pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet, 1, "wavelet", 0))) __PYX_ERR(0, 25, __pyx_L1_error) __pyx_r = __pyx_pf_4pywt_11_extensions_4_dwt_18__pyx_fuse_1dwt_single(__pyx_self, __pyx_v_data, __pyx_v_wavelet, __pyx_v_mode); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_18__pyx_fuse_1dwt_single(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__pyx_fuse_1dwt_single", 0); __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_data.memview)) { __Pyx_RaiseUnboundLocalError("data"); __PYX_ERR(0, 25, __pyx_L1_error) } __pyx_t_1 = __pyx_fuse_1__pyx_f_4pywt_11_extensions_4_dwt_dwt_single(__pyx_v_data, __pyx_v_wavelet, __pyx_v_mode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._dwt.__pyx_fuse_1dwt_single", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_21__pyx_fuse_2dwt_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_5dwt_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_fuse_2__pyx_f_4pywt_11_extensions_4_dwt_dwt_single(__Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode, CYTHON_UNUSED int __pyx_skip_dispatch) { size_t __pyx_v_output_len; PyArrayObject *__pyx_v_cA = 0; PyArrayObject *__pyx_v_cD = 0; int __pyx_v_retval_a; int __pyx_v_retval_d; size_t __pyx_v_data_size; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; size_t __pyx_t_4; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; int __pyx_t_9; PyObject *__pyx_t_10 = NULL; Py_ssize_t __pyx_t_11; Py_ssize_t __pyx_t_12; int __pyx_t_13; __Pyx_RefNannySetupContext("__pyx_fuse_2dwt_single", 0); /* "pywt/_extensions/_dwt.pyx":26 * * cpdef dwt_single(cdata_t[::1] data, Wavelet wavelet, MODE mode): * cdef size_t output_len = dwt_coeff_len(data.size, wavelet.dec_len, mode) # <<<<<<<<<<<<<< * cdef np.ndarray cA, cD * cdef int retval_a, retval_d */ __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_float_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_float_complex, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_3 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_dec_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_f_4pywt_11_extensions_4_dwt_dwt_coeff_len(__pyx_t_3, __pyx_t_4, __pyx_v_mode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_output_len = __pyx_t_4; /* "pywt/_extensions/_dwt.pyx":29 * cdef np.ndarray cA, cD * cdef int retval_a, retval_d * cdef size_t data_size = data.size # <<<<<<<<<<<<<< * if output_len < 1: * raise RuntimeError("Invalid output length.") */ __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_float_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_float_complex, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_data_size = __pyx_t_4; /* "pywt/_extensions/_dwt.pyx":30 * cdef int retval_a, retval_d * cdef size_t data_size = data.size * if output_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ __pyx_t_5 = ((__pyx_v_output_len < 1) != 0); if (unlikely(__pyx_t_5)) { /* "pywt/_extensions/_dwt.pyx":31 * cdef size_t data_size = data.size * if output_len < 1: * raise RuntimeError("Invalid output length.") # <<<<<<<<<<<<<< * * if cdata_t is np.float64_t: */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 31, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 31, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":30 * cdef int retval_a, retval_d * cdef size_t data_size = data.size * if output_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ } /* "pywt/_extensions/_dwt.pyx":68 * raise RuntimeError("C dwt failed.") * elif cdata_t is np.complex64_t: * cA = np.zeros(output_len, np.complex64) # <<<<<<<<<<<<<< * cD = np.zeros(output_len, np.complex64) * with nogil: */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_complex64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_9 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_2, __pyx_t_8}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_2, __pyx_t_8}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif { __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_8); __pyx_t_2 = 0; __pyx_t_8 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 68, __pyx_L1_error) __pyx_v_cA = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_dwt.pyx":69 * elif cdata_t is np.complex64_t: * cA = np.zeros(output_len, np.complex64) * cD = np.zeros(output_len, np.complex64) # <<<<<<<<<<<<<< * with nogil: * retval_a = c_wt.float_complex_dec_a(&data[0], data_size, wavelet.w, */ __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_complex64); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); __pyx_t_9 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_6, __pyx_t_2}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_6, __pyx_t_2}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif { __pyx_t_7 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8); __pyx_t_8 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_9, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_9, __pyx_t_2); __pyx_t_6 = 0; __pyx_t_2 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 69, __pyx_L1_error) __pyx_v_cD = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_dwt.pyx":70 * cA = np.zeros(output_len, np.complex64) * cD = np.zeros(output_len, np.complex64) * with nogil: # <<<<<<<<<<<<<< * retval_a = c_wt.float_complex_dec_a(&data[0], data_size, wavelet.w, * cA.data, output_len, mode) */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":71 * cD = np.zeros(output_len, np.complex64) * with nogil: * retval_a = c_wt.float_complex_dec_a(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * cA.data, output_len, mode) * retval_d = c_wt.float_complex_dec_d(&data[0], data_size, wavelet.w, */ __pyx_t_11 = 0; /* "pywt/_extensions/_dwt.pyx":72 * with nogil: * retval_a = c_wt.float_complex_dec_a(&data[0], data_size, wavelet.w, * cA.data, output_len, mode) # <<<<<<<<<<<<<< * retval_d = c_wt.float_complex_dec_d(&data[0], data_size, wavelet.w, * cD.data, output_len, mode) */ __pyx_v_retval_a = float_complex_dec_a((&(*((__pyx_t_float_complex *) ( /* dim=0 */ ((char *) (((__pyx_t_float_complex *) __pyx_v_data.data) + __pyx_t_11)) )))), __pyx_v_data_size, __pyx_v_wavelet->w, ((__pyx_t_float_complex *)__pyx_v_cA->data), __pyx_v_output_len, __pyx_v_mode); /* "pywt/_extensions/_dwt.pyx":73 * retval_a = c_wt.float_complex_dec_a(&data[0], data_size, wavelet.w, * cA.data, output_len, mode) * retval_d = c_wt.float_complex_dec_d(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * cD.data, output_len, mode) * if ( retval_a < 0 or retval_d < 0): */ __pyx_t_12 = 0; /* "pywt/_extensions/_dwt.pyx":74 * cA.data, output_len, mode) * retval_d = c_wt.float_complex_dec_d(&data[0], data_size, wavelet.w, * cD.data, output_len, mode) # <<<<<<<<<<<<<< * if ( retval_a < 0 or retval_d < 0): * raise RuntimeError("C dwt failed.") */ __pyx_v_retval_d = float_complex_dec_d((&(*((__pyx_t_float_complex *) ( /* dim=0 */ ((char *) (((__pyx_t_float_complex *) __pyx_v_data.data) + __pyx_t_12)) )))), __pyx_v_data_size, __pyx_v_wavelet->w, ((__pyx_t_float_complex *)__pyx_v_cD->data), __pyx_v_output_len, __pyx_v_mode); } /* "pywt/_extensions/_dwt.pyx":70 * cA = np.zeros(output_len, np.complex64) * cD = np.zeros(output_len, np.complex64) * with nogil: # <<<<<<<<<<<<<< * retval_a = c_wt.float_complex_dec_a(&data[0], data_size, wavelet.w, * cA.data, output_len, mode) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L6; } __pyx_L6:; } } /* "pywt/_extensions/_dwt.pyx":75 * retval_d = c_wt.float_complex_dec_d(&data[0], data_size, wavelet.w, * cD.data, output_len, mode) * if ( retval_a < 0 or retval_d < 0): # <<<<<<<<<<<<<< * raise RuntimeError("C dwt failed.") * */ __pyx_t_13 = ((__pyx_v_retval_a < 0) != 0); if (!__pyx_t_13) { } else { __pyx_t_5 = __pyx_t_13; goto __pyx_L8_bool_binop_done; } __pyx_t_13 = ((__pyx_v_retval_d < 0) != 0); __pyx_t_5 = __pyx_t_13; __pyx_L8_bool_binop_done:; if (unlikely(__pyx_t_5)) { /* "pywt/_extensions/_dwt.pyx":76 * cD.data, output_len, mode) * if ( retval_a < 0 or retval_d < 0): * raise RuntimeError("C dwt failed.") # <<<<<<<<<<<<<< * * return (cA, cD) */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 76, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":75 * retval_d = c_wt.float_complex_dec_d(&data[0], data_size, wavelet.w, * cD.data, output_len, mode) * if ( retval_a < 0 or retval_d < 0): # <<<<<<<<<<<<<< * raise RuntimeError("C dwt failed.") * */ } /* "pywt/_extensions/_dwt.pyx":78 * raise RuntimeError("C dwt failed.") * * return (cA, cD) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_cA)); __Pyx_GIVEREF(((PyObject *)__pyx_v_cA)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_cA)); __Pyx_INCREF(((PyObject *)__pyx_v_cD)); __Pyx_GIVEREF(((PyObject *)__pyx_v_cD)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_cD)); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pywt/_extensions/_dwt.pyx":25 * return common.dwt_buffer_length(data_len, filter_len, mode) * * cpdef dwt_single(cdata_t[::1] data, Wavelet wavelet, MODE mode): # <<<<<<<<<<<<<< * cdef size_t output_len = dwt_coeff_len(data.size, wavelet.dec_len, mode) * cdef np.ndarray cA, cD */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("pywt._extensions._dwt.dwt_single", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_cA); __Pyx_XDECREF((PyObject *)__pyx_v_cD); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_21__pyx_fuse_2dwt_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_2__pyx_mdef_4pywt_11_extensions_4_dwt_21__pyx_fuse_2dwt_single = {"__pyx_fuse_2dwt_single", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_4_dwt_21__pyx_fuse_2dwt_single, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_21__pyx_fuse_2dwt_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } }; struct WaveletObject *__pyx_v_wavelet = 0; MODE __pyx_v_mode; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_2dwt_single (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_data,&__pyx_n_s_wavelet,&__pyx_n_s_mode,0}; PyObject* values[3] = {0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wavelet)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_2dwt_single", 1, 3, 3, 1); __PYX_ERR(0, 25, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_2dwt_single", 1, 3, 3, 2); __PYX_ERR(0, 25, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_2dwt_single") < 0)) __PYX_ERR(0, 25, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); } __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_float_complex(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 25, __pyx_L3_error) __pyx_v_wavelet = ((struct WaveletObject *)values[1]); __pyx_v_mode = ((MODE)__Pyx_PyInt_As_MODE(values[2])); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 25, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__pyx_fuse_2dwt_single", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 25, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._dwt.__pyx_fuse_2dwt_single", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_wavelet), __pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet, 1, "wavelet", 0))) __PYX_ERR(0, 25, __pyx_L1_error) __pyx_r = __pyx_pf_4pywt_11_extensions_4_dwt_20__pyx_fuse_2dwt_single(__pyx_self, __pyx_v_data, __pyx_v_wavelet, __pyx_v_mode); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_20__pyx_fuse_2dwt_single(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__pyx_fuse_2dwt_single", 0); __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_data.memview)) { __Pyx_RaiseUnboundLocalError("data"); __PYX_ERR(0, 25, __pyx_L1_error) } __pyx_t_1 = __pyx_fuse_2__pyx_f_4pywt_11_extensions_4_dwt_dwt_single(__pyx_v_data, __pyx_v_wavelet, __pyx_v_mode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._dwt.__pyx_fuse_2dwt_single", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_23__pyx_fuse_3dwt_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_5dwt_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_fuse_3__pyx_f_4pywt_11_extensions_4_dwt_dwt_single(__Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode, CYTHON_UNUSED int __pyx_skip_dispatch) { size_t __pyx_v_output_len; PyArrayObject *__pyx_v_cA = 0; PyArrayObject *__pyx_v_cD = 0; int __pyx_v_retval_a; int __pyx_v_retval_d; size_t __pyx_v_data_size; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; size_t __pyx_t_3; size_t __pyx_t_4; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; int __pyx_t_9; PyObject *__pyx_t_10 = NULL; Py_ssize_t __pyx_t_11; Py_ssize_t __pyx_t_12; int __pyx_t_13; __Pyx_RefNannySetupContext("__pyx_fuse_3dwt_single", 0); /* "pywt/_extensions/_dwt.pyx":26 * * cpdef dwt_single(cdata_t[::1] data, Wavelet wavelet, MODE mode): * cdef size_t output_len = dwt_coeff_len(data.size, wavelet.dec_len, mode) # <<<<<<<<<<<<<< * cdef np.ndarray cA, cD * cdef int retval_a, retval_d */ __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_double_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_double_complex, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_3 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_dec_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_f_4pywt_11_extensions_4_dwt_dwt_coeff_len(__pyx_t_3, __pyx_t_4, __pyx_v_mode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 26, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_output_len = __pyx_t_4; /* "pywt/_extensions/_dwt.pyx":29 * cdef np.ndarray cA, cD * cdef int retval_a, retval_d * cdef size_t data_size = data.size # <<<<<<<<<<<<<< * if output_len < 1: * raise RuntimeError("Invalid output length.") */ __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_double_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_double_complex, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_data_size = __pyx_t_4; /* "pywt/_extensions/_dwt.pyx":30 * cdef int retval_a, retval_d * cdef size_t data_size = data.size * if output_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ __pyx_t_5 = ((__pyx_v_output_len < 1) != 0); if (unlikely(__pyx_t_5)) { /* "pywt/_extensions/_dwt.pyx":31 * cdef size_t data_size = data.size * if output_len < 1: * raise RuntimeError("Invalid output length.") # <<<<<<<<<<<<<< * * if cdata_t is np.float64_t: */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 31, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 31, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":30 * cdef int retval_a, retval_d * cdef size_t data_size = data.size * if output_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ } /* "pywt/_extensions/_dwt.pyx":58 * IF HAVE_C99_CPLX: * if cdata_t is np.complex128_t: * cA = np.zeros(output_len, np.complex128) # <<<<<<<<<<<<<< * cD = np.zeros(output_len, np.complex128) * with nogil: */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 58, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 58, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 58, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 58, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_complex128); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 58, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_9 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_2, __pyx_t_8}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 58, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_2, __pyx_t_8}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 58, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif { __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 58, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_8); __pyx_t_2 = 0; __pyx_t_8 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 58, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 58, __pyx_L1_error) __pyx_v_cA = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_dwt.pyx":59 * if cdata_t is np.complex128_t: * cA = np.zeros(output_len, np.complex128) * cD = np.zeros(output_len, np.complex128) # <<<<<<<<<<<<<< * with nogil: * retval_a = c_wt.double_complex_dec_a(&data[0], data_size, wavelet.w, */ __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 59, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 59, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 59, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 59, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_complex128); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 59, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); __pyx_t_9 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_6, __pyx_t_2}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 59, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_6, __pyx_t_2}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 59, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif { __pyx_t_7 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 59, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8); __pyx_t_8 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_9, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_9, __pyx_t_2); __pyx_t_6 = 0; __pyx_t_2 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 59, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 59, __pyx_L1_error) __pyx_v_cD = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_dwt.pyx":60 * cA = np.zeros(output_len, np.complex128) * cD = np.zeros(output_len, np.complex128) * with nogil: # <<<<<<<<<<<<<< * retval_a = c_wt.double_complex_dec_a(&data[0], data_size, wavelet.w, * cA.data, output_len, mode) */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":61 * cD = np.zeros(output_len, np.complex128) * with nogil: * retval_a = c_wt.double_complex_dec_a(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * cA.data, output_len, mode) * retval_d = c_wt.double_complex_dec_d(&data[0], data_size, wavelet.w, */ __pyx_t_11 = 0; /* "pywt/_extensions/_dwt.pyx":62 * with nogil: * retval_a = c_wt.double_complex_dec_a(&data[0], data_size, wavelet.w, * cA.data, output_len, mode) # <<<<<<<<<<<<<< * retval_d = c_wt.double_complex_dec_d(&data[0], data_size, wavelet.w, * cD.data, output_len, mode) */ __pyx_v_retval_a = double_complex_dec_a((&(*((__pyx_t_double_complex *) ( /* dim=0 */ ((char *) (((__pyx_t_double_complex *) __pyx_v_data.data) + __pyx_t_11)) )))), __pyx_v_data_size, __pyx_v_wavelet->w, ((__pyx_t_double_complex *)__pyx_v_cA->data), __pyx_v_output_len, __pyx_v_mode); /* "pywt/_extensions/_dwt.pyx":63 * retval_a = c_wt.double_complex_dec_a(&data[0], data_size, wavelet.w, * cA.data, output_len, mode) * retval_d = c_wt.double_complex_dec_d(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * cD.data, output_len, mode) * if ( retval_a < 0 or retval_d < 0): */ __pyx_t_12 = 0; /* "pywt/_extensions/_dwt.pyx":64 * cA.data, output_len, mode) * retval_d = c_wt.double_complex_dec_d(&data[0], data_size, wavelet.w, * cD.data, output_len, mode) # <<<<<<<<<<<<<< * if ( retval_a < 0 or retval_d < 0): * raise RuntimeError("C dwt failed.") */ __pyx_v_retval_d = double_complex_dec_d((&(*((__pyx_t_double_complex *) ( /* dim=0 */ ((char *) (((__pyx_t_double_complex *) __pyx_v_data.data) + __pyx_t_12)) )))), __pyx_v_data_size, __pyx_v_wavelet->w, ((__pyx_t_double_complex *)__pyx_v_cD->data), __pyx_v_output_len, __pyx_v_mode); } /* "pywt/_extensions/_dwt.pyx":60 * cA = np.zeros(output_len, np.complex128) * cD = np.zeros(output_len, np.complex128) * with nogil: # <<<<<<<<<<<<<< * retval_a = c_wt.double_complex_dec_a(&data[0], data_size, wavelet.w, * cA.data, output_len, mode) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L6; } __pyx_L6:; } } /* "pywt/_extensions/_dwt.pyx":65 * retval_d = c_wt.double_complex_dec_d(&data[0], data_size, wavelet.w, * cD.data, output_len, mode) * if ( retval_a < 0 or retval_d < 0): # <<<<<<<<<<<<<< * raise RuntimeError("C dwt failed.") * elif cdata_t is np.complex64_t: */ __pyx_t_13 = ((__pyx_v_retval_a < 0) != 0); if (!__pyx_t_13) { } else { __pyx_t_5 = __pyx_t_13; goto __pyx_L8_bool_binop_done; } __pyx_t_13 = ((__pyx_v_retval_d < 0) != 0); __pyx_t_5 = __pyx_t_13; __pyx_L8_bool_binop_done:; if (unlikely(__pyx_t_5)) { /* "pywt/_extensions/_dwt.pyx":66 * cD.data, output_len, mode) * if ( retval_a < 0 or retval_d < 0): * raise RuntimeError("C dwt failed.") # <<<<<<<<<<<<<< * elif cdata_t is np.complex64_t: * cA = np.zeros(output_len, np.complex64) */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 66, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 66, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":65 * retval_d = c_wt.double_complex_dec_d(&data[0], data_size, wavelet.w, * cD.data, output_len, mode) * if ( retval_a < 0 or retval_d < 0): # <<<<<<<<<<<<<< * raise RuntimeError("C dwt failed.") * elif cdata_t is np.complex64_t: */ } /* "pywt/_extensions/_dwt.pyx":78 * raise RuntimeError("C dwt failed.") * * return (cA, cD) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_cA)); __Pyx_GIVEREF(((PyObject *)__pyx_v_cA)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_cA)); __Pyx_INCREF(((PyObject *)__pyx_v_cD)); __Pyx_GIVEREF(((PyObject *)__pyx_v_cD)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_cD)); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pywt/_extensions/_dwt.pyx":25 * return common.dwt_buffer_length(data_len, filter_len, mode) * * cpdef dwt_single(cdata_t[::1] data, Wavelet wavelet, MODE mode): # <<<<<<<<<<<<<< * cdef size_t output_len = dwt_coeff_len(data.size, wavelet.dec_len, mode) * cdef np.ndarray cA, cD */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("pywt._extensions._dwt.dwt_single", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_cA); __Pyx_XDECREF((PyObject *)__pyx_v_cD); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_23__pyx_fuse_3dwt_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_3__pyx_mdef_4pywt_11_extensions_4_dwt_23__pyx_fuse_3dwt_single = {"__pyx_fuse_3dwt_single", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_4_dwt_23__pyx_fuse_3dwt_single, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_23__pyx_fuse_3dwt_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } }; struct WaveletObject *__pyx_v_wavelet = 0; MODE __pyx_v_mode; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_3dwt_single (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_data,&__pyx_n_s_wavelet,&__pyx_n_s_mode,0}; PyObject* values[3] = {0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wavelet)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_3dwt_single", 1, 3, 3, 1); __PYX_ERR(0, 25, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_3dwt_single", 1, 3, 3, 2); __PYX_ERR(0, 25, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_3dwt_single") < 0)) __PYX_ERR(0, 25, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); } __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_double_complex(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 25, __pyx_L3_error) __pyx_v_wavelet = ((struct WaveletObject *)values[1]); __pyx_v_mode = ((MODE)__Pyx_PyInt_As_MODE(values[2])); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 25, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__pyx_fuse_3dwt_single", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 25, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._dwt.__pyx_fuse_3dwt_single", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_wavelet), __pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet, 1, "wavelet", 0))) __PYX_ERR(0, 25, __pyx_L1_error) __pyx_r = __pyx_pf_4pywt_11_extensions_4_dwt_22__pyx_fuse_3dwt_single(__pyx_self, __pyx_v_data, __pyx_v_wavelet, __pyx_v_mode); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_22__pyx_fuse_3dwt_single(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__pyx_fuse_3dwt_single", 0); __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_data.memview)) { __Pyx_RaiseUnboundLocalError("data"); __PYX_ERR(0, 25, __pyx_L1_error) } __pyx_t_1 = __pyx_fuse_3__pyx_f_4pywt_11_extensions_4_dwt_dwt_single(__pyx_v_data, __pyx_v_wavelet, __pyx_v_mode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._dwt.__pyx_fuse_3dwt_single", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_dwt.pyx":81 * * * cpdef dwt_axis(np.ndarray data, Wavelet wavelet, MODE mode, unsigned int axis=0): # <<<<<<<<<<<<<< * # memory-views do not support n-dimensional arrays, use np.ndarray instead * cdef common.ArrayInfo data_info, output_info */ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_7dwt_axis(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_f_4pywt_11_extensions_4_dwt_dwt_axis(PyArrayObject *__pyx_v_data, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_4pywt_11_extensions_4_dwt_dwt_axis *__pyx_optional_args) { unsigned int __pyx_v_axis = ((unsigned int)0); ArrayInfo __pyx_v_data_info; ArrayInfo __pyx_v_output_info; PyArrayObject *__pyx_v_cD = 0; PyArrayObject *__pyx_v_cA = 0; __Pyx_memviewslice __pyx_v_input_shape = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_output_shape = { 0, 0, { 0 }, { 0 }, { 0 } }; int __pyx_v_retval; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; size_t *__pyx_t_5; struct __pyx_array_obj *__pyx_t_6 = NULL; __Pyx_memviewslice __pyx_t_7 = { 0, 0, { 0 }, { 0 }, { 0 } }; size_t __pyx_t_8; size_t __pyx_t_9; PyObject *__pyx_t_10 = NULL; int __pyx_t_11; PyObject *__pyx_t_12 = NULL; int __pyx_t_13; __Pyx_RefNannySetupContext("dwt_axis", 0); if (__pyx_optional_args) { if (__pyx_optional_args->__pyx_n > 0) { __pyx_v_axis = __pyx_optional_args->axis; } } __Pyx_INCREF((PyObject *)__pyx_v_data); /* "pywt/_extensions/_dwt.pyx":87 * # Explicit input_shape necessary to prevent memory leak * cdef size_t[::1] input_shape, output_shape * cdef int retval = -5 # <<<<<<<<<<<<<< * * data = data.astype(_check_dtype(data), copy=False) */ __pyx_v_retval = -5; /* "pywt/_extensions/_dwt.pyx":89 * cdef int retval = -5 * * data = data.astype(_check_dtype(data), copy=False) # <<<<<<<<<<<<<< * * input_shape = data.shape */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_data), __pyx_n_s_astype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 89, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = ((PyObject *)__pyx_f_4pywt_11_extensions_5_pywt__check_dtype(((PyObject *)__pyx_v_data), 0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 89, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 89, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 89, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_copy, Py_False) < 0) __PYX_ERR(0, 89, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 89, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 89, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_data, ((PyArrayObject *)__pyx_t_4)); __pyx_t_4 = 0; /* "pywt/_extensions/_dwt.pyx":91 * data = data.astype(_check_dtype(data), copy=False) * * input_shape = data.shape # <<<<<<<<<<<<<< * output_shape = input_shape.copy() * output_shape[axis] = dwt_coeff_len(data.shape[axis], wavelet.dec_len, mode) */ __pyx_t_5 = ((size_t *)__pyx_v_data->dimensions); if (!__pyx_t_5) { PyErr_SetString(PyExc_ValueError,"Cannot create cython.array from NULL pointer"); __PYX_ERR(0, 91, __pyx_L1_error) } __pyx_t_2 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_size_t); __pyx_t_4 = Py_BuildValue((char*) "(" __PYX_BUILD_PY_SSIZE_T ")", ((Py_ssize_t)__pyx_v_data->nd)); if (unlikely(!__pyx_t_2 || !__pyx_t_4 || !PyBytes_AsString(__pyx_t_2))) __PYX_ERR(0, 91, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __pyx_array_new(__pyx_t_4, sizeof(size_t), PyBytes_AS_STRING(__pyx_t_2), (char *) "c", (char *) __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 91, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_dc_size_t(((PyObject *)__pyx_t_6), PyBUF_WRITABLE); if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 91, __pyx_L1_error) __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; __pyx_v_input_shape = __pyx_t_7; __pyx_t_7.memview = NULL; __pyx_t_7.data = NULL; /* "pywt/_extensions/_dwt.pyx":92 * * input_shape = data.shape * output_shape = input_shape.copy() # <<<<<<<<<<<<<< * output_shape[axis] = dwt_coeff_len(data.shape[axis], wavelet.dec_len, mode) * */ __pyx_t_7 = __pyx_memoryview_copy_slice_dc_size_t_c(__pyx_v_input_shape); if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 92, __pyx_L1_error) __pyx_v_output_shape = __pyx_t_7; __pyx_t_7.memview = NULL; __pyx_t_7.data = NULL; /* "pywt/_extensions/_dwt.pyx":93 * input_shape = data.shape * output_shape = input_shape.copy() * output_shape[axis] = dwt_coeff_len(data.shape[axis], wavelet.dec_len, mode) # <<<<<<<<<<<<<< * * cA = np.empty(output_shape, data.dtype) */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_dec_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 93, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_8 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 93, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_f_4pywt_11_extensions_4_dwt_dwt_coeff_len((__pyx_v_data->dimensions[__pyx_v_axis]), __pyx_t_8, __pyx_v_mode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 93, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_8 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 93, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_9 = __pyx_v_axis; *((size_t *) ( /* dim=0 */ ((char *) (((size_t *) __pyx_v_output_shape.data) + __pyx_t_9)) )) = __pyx_t_8; /* "pywt/_extensions/_dwt.pyx":95 * output_shape[axis] = dwt_coeff_len(data.shape[axis], wavelet.dec_len, mode) * * cA = np.empty(output_shape, data.dtype) # <<<<<<<<<<<<<< * cD = np.empty(output_shape, data.dtype) * */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 95, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 95, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_output_shape, 1, (PyObject *(*)(char *)) __pyx_memview_get_size_t, (int (*)(char *, PyObject *)) __pyx_memview_set_size_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 95, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_data), __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 95, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = NULL; __pyx_t_11 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_11 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_t_4, __pyx_t_1}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 95, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_t_4, __pyx_t_1}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 95, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { __pyx_t_12 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 95, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (__pyx_t_10) { __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_10); __pyx_t_10 = NULL; } __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_11, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_11, __pyx_t_1); __pyx_t_4 = 0; __pyx_t_1 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_12, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 95, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 95, __pyx_L1_error) __pyx_v_cA = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_dwt.pyx":96 * * cA = np.empty(output_shape, data.dtype) * cD = np.empty(output_shape, data.dtype) # <<<<<<<<<<<<<< * * data_info.ndim = data.ndim */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_empty); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_output_shape, 1, (PyObject *(*)(char *)) __pyx_memview_get_size_t, (int (*)(char *, PyObject *)) __pyx_memview_set_size_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_data), __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = NULL; __pyx_t_11 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); __pyx_t_11 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_12)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_3, __pyx_t_1}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_3, __pyx_t_1}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { __pyx_t_10 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_11, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_11, __pyx_t_1); __pyx_t_3 = 0; __pyx_t_1 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 96, __pyx_L1_error) __pyx_v_cD = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_dwt.pyx":98 * cD = np.empty(output_shape, data.dtype) * * data_info.ndim = data.ndim # <<<<<<<<<<<<<< * data_info.strides = data.strides * data_info.shape = data.shape */ __pyx_t_11 = __pyx_v_data->nd; __pyx_v_data_info.ndim = __pyx_t_11; /* "pywt/_extensions/_dwt.pyx":99 * * data_info.ndim = data.ndim * data_info.strides = data.strides # <<<<<<<<<<<<<< * data_info.shape = data.shape * */ __pyx_v_data_info.strides = ((pywt_index_t *)__pyx_v_data->strides); /* "pywt/_extensions/_dwt.pyx":100 * data_info.ndim = data.ndim * data_info.strides = data.strides * data_info.shape = data.shape # <<<<<<<<<<<<<< * * output_info.ndim = cA.ndim */ __pyx_v_data_info.shape = ((size_t *)__pyx_v_data->dimensions); /* "pywt/_extensions/_dwt.pyx":102 * data_info.shape = data.shape * * output_info.ndim = cA.ndim # <<<<<<<<<<<<<< * output_info.strides = cA.strides * output_info.shape = cA.shape */ __pyx_t_11 = __pyx_v_cA->nd; __pyx_v_output_info.ndim = __pyx_t_11; /* "pywt/_extensions/_dwt.pyx":103 * * output_info.ndim = cA.ndim * output_info.strides = cA.strides # <<<<<<<<<<<<<< * output_info.shape = cA.shape * */ __pyx_v_output_info.strides = ((pywt_index_t *)__pyx_v_cA->strides); /* "pywt/_extensions/_dwt.pyx":104 * output_info.ndim = cA.ndim * output_info.strides = cA.strides * output_info.shape = cA.shape # <<<<<<<<<<<<<< * * if data.dtype == np.float64: */ __pyx_v_output_info.shape = ((size_t *)__pyx_v_cA->dimensions); /* "pywt/_extensions/_dwt.pyx":106 * output_info.shape = cA.shape * * if data.dtype == np.float64: # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.double_downcoef_axis( data.data, data_info, */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_data), __pyx_n_s_dtype); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_float64); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyObject_RichCompare(__pyx_t_2, __pyx_t_10, Py_EQ); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 106, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 106, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (__pyx_t_13) { /* "pywt/_extensions/_dwt.pyx":107 * * if data.dtype == np.float64: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_downcoef_axis( data.data, data_info, * cA.data, output_info, */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":108 * if data.dtype == np.float64: * with nogil: * retval = c_wt.double_downcoef_axis( data.data, data_info, # <<<<<<<<<<<<<< * cA.data, output_info, * wavelet.w, axis, common.COEF_APPROX, mode, */ __pyx_v_retval = double_downcoef_axis(((double *)__pyx_v_data->data), __pyx_v_data_info, ((double *)__pyx_v_cA->data), __pyx_v_output_info, __pyx_v_wavelet->w, __pyx_v_axis, COEF_APPROX, __pyx_v_mode, 0, DWT_TRANSFORM); } /* "pywt/_extensions/_dwt.pyx":107 * * if data.dtype == np.float64: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_downcoef_axis( data.data, data_info, * cA.data, output_info, */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L6; } __pyx_L6:; } } /* "pywt/_extensions/_dwt.pyx":112 * wavelet.w, axis, common.COEF_APPROX, mode, * 0, common.DWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError("C wavelet transform failed") * with nogil: */ __pyx_t_13 = (__pyx_v_retval != 0); if (unlikely(__pyx_t_13)) { /* "pywt/_extensions/_dwt.pyx":113 * 0, common.DWT_TRANSFORM) * if retval: * raise RuntimeError("C wavelet transform failed") # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.double_downcoef_axis( data.data, data_info, */ __pyx_t_12 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_Raise(__pyx_t_12, 0, 0, 0); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __PYX_ERR(0, 113, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":112 * wavelet.w, axis, common.COEF_APPROX, mode, * 0, common.DWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError("C wavelet transform failed") * with nogil: */ } /* "pywt/_extensions/_dwt.pyx":114 * if retval: * raise RuntimeError("C wavelet transform failed") * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_downcoef_axis( data.data, data_info, * cD.data, output_info, */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":115 * raise RuntimeError("C wavelet transform failed") * with nogil: * retval = c_wt.double_downcoef_axis( data.data, data_info, # <<<<<<<<<<<<<< * cD.data, output_info, * wavelet.w, axis, common.COEF_DETAIL, mode, */ __pyx_v_retval = double_downcoef_axis(((double *)__pyx_v_data->data), __pyx_v_data_info, ((double *)__pyx_v_cD->data), __pyx_v_output_info, __pyx_v_wavelet->w, __pyx_v_axis, COEF_DETAIL, __pyx_v_mode, 0, DWT_TRANSFORM); } /* "pywt/_extensions/_dwt.pyx":114 * if retval: * raise RuntimeError("C wavelet transform failed") * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_downcoef_axis( data.data, data_info, * cD.data, output_info, */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L10; } __pyx_L10:; } } /* "pywt/_extensions/_dwt.pyx":119 * wavelet.w, axis, common.COEF_DETAIL, mode, * 0, common.DWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError("C wavelet transform failed") * elif data.dtype == np.float32: */ __pyx_t_13 = (__pyx_v_retval != 0); if (unlikely(__pyx_t_13)) { /* "pywt/_extensions/_dwt.pyx":120 * 0, common.DWT_TRANSFORM) * if retval: * raise RuntimeError("C wavelet transform failed") # <<<<<<<<<<<<<< * elif data.dtype == np.float32: * with nogil: */ __pyx_t_12 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_Raise(__pyx_t_12, 0, 0, 0); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __PYX_ERR(0, 120, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":119 * wavelet.w, axis, common.COEF_DETAIL, mode, * 0, common.DWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError("C wavelet transform failed") * elif data.dtype == np.float32: */ } /* "pywt/_extensions/_dwt.pyx":106 * output_info.shape = cA.shape * * if data.dtype == np.float64: # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.double_downcoef_axis( data.data, data_info, */ goto __pyx_L3; } /* "pywt/_extensions/_dwt.pyx":121 * if retval: * raise RuntimeError("C wavelet transform failed") * elif data.dtype == np.float32: # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.float_downcoef_axis( data.data, data_info, */ __pyx_t_12 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_data), __pyx_n_s_dtype); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_float32); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyObject_RichCompare(__pyx_t_12, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (__pyx_t_13) { /* "pywt/_extensions/_dwt.pyx":122 * raise RuntimeError("C wavelet transform failed") * elif data.dtype == np.float32: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_downcoef_axis( data.data, data_info, * cA.data, output_info, */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":123 * elif data.dtype == np.float32: * with nogil: * retval = c_wt.float_downcoef_axis( data.data, data_info, # <<<<<<<<<<<<<< * cA.data, output_info, * wavelet.w, axis, common.COEF_APPROX, mode, */ __pyx_v_retval = float_downcoef_axis(((float *)__pyx_v_data->data), __pyx_v_data_info, ((float *)__pyx_v_cA->data), __pyx_v_output_info, __pyx_v_wavelet->w, __pyx_v_axis, COEF_APPROX, __pyx_v_mode, 0, DWT_TRANSFORM); } /* "pywt/_extensions/_dwt.pyx":122 * raise RuntimeError("C wavelet transform failed") * elif data.dtype == np.float32: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_downcoef_axis( data.data, data_info, * cA.data, output_info, */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L14; } __pyx_L14:; } } /* "pywt/_extensions/_dwt.pyx":127 * wavelet.w, axis, common.COEF_APPROX, mode, * 0, common.DWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError("C wavelet transform failed") * with nogil: */ __pyx_t_13 = (__pyx_v_retval != 0); if (unlikely(__pyx_t_13)) { /* "pywt/_extensions/_dwt.pyx":128 * 0, common.DWT_TRANSFORM) * if retval: * raise RuntimeError("C wavelet transform failed") # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.float_downcoef_axis( data.data, data_info, */ __pyx_t_10 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_Raise(__pyx_t_10, 0, 0, 0); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __PYX_ERR(0, 128, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":127 * wavelet.w, axis, common.COEF_APPROX, mode, * 0, common.DWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError("C wavelet transform failed") * with nogil: */ } /* "pywt/_extensions/_dwt.pyx":129 * if retval: * raise RuntimeError("C wavelet transform failed") * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_downcoef_axis( data.data, data_info, * cD.data, output_info, */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":130 * raise RuntimeError("C wavelet transform failed") * with nogil: * retval = c_wt.float_downcoef_axis( data.data, data_info, # <<<<<<<<<<<<<< * cD.data, output_info, * wavelet.w, axis, common.COEF_DETAIL, mode, */ __pyx_v_retval = float_downcoef_axis(((float *)__pyx_v_data->data), __pyx_v_data_info, ((float *)__pyx_v_cD->data), __pyx_v_output_info, __pyx_v_wavelet->w, __pyx_v_axis, COEF_DETAIL, __pyx_v_mode, 0, DWT_TRANSFORM); } /* "pywt/_extensions/_dwt.pyx":129 * if retval: * raise RuntimeError("C wavelet transform failed") * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_downcoef_axis( data.data, data_info, * cD.data, output_info, */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L18; } __pyx_L18:; } } /* "pywt/_extensions/_dwt.pyx":134 * wavelet.w, axis, common.COEF_DETAIL, mode, * 0, common.DWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError("C wavelet transform failed") * IF HAVE_C99_CPLX: */ __pyx_t_13 = (__pyx_v_retval != 0); if (unlikely(__pyx_t_13)) { /* "pywt/_extensions/_dwt.pyx":135 * 0, common.DWT_TRANSFORM) * if retval: * raise RuntimeError("C wavelet transform failed") # <<<<<<<<<<<<<< * IF HAVE_C99_CPLX: * if data.dtype == np.complex64: */ __pyx_t_10 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_Raise(__pyx_t_10, 0, 0, 0); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __PYX_ERR(0, 135, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":134 * wavelet.w, axis, common.COEF_DETAIL, mode, * 0, common.DWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError("C wavelet transform failed") * IF HAVE_C99_CPLX: */ } /* "pywt/_extensions/_dwt.pyx":121 * if retval: * raise RuntimeError("C wavelet transform failed") * elif data.dtype == np.float32: # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.float_downcoef_axis( data.data, data_info, */ } __pyx_L3:; /* "pywt/_extensions/_dwt.pyx":137 * raise RuntimeError("C wavelet transform failed") * IF HAVE_C99_CPLX: * if data.dtype == np.complex64: # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.float_complex_downcoef_axis( data.data, data_info, */ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_data), __pyx_n_s_dtype); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_complex64); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_RichCompare(__pyx_t_10, __pyx_t_12, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_13) { /* "pywt/_extensions/_dwt.pyx":138 * IF HAVE_C99_CPLX: * if data.dtype == np.complex64: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_complex_downcoef_axis( data.data, data_info, * cA.data, output_info, */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":139 * if data.dtype == np.complex64: * with nogil: * retval = c_wt.float_complex_downcoef_axis( data.data, data_info, # <<<<<<<<<<<<<< * cA.data, output_info, * wavelet.w, axis, common.COEF_APPROX, mode, */ __pyx_v_retval = float_complex_downcoef_axis(((__pyx_t_float_complex *)__pyx_v_data->data), __pyx_v_data_info, ((__pyx_t_float_complex *)__pyx_v_cA->data), __pyx_v_output_info, __pyx_v_wavelet->w, __pyx_v_axis, COEF_APPROX, __pyx_v_mode, 0, DWT_TRANSFORM); } /* "pywt/_extensions/_dwt.pyx":138 * IF HAVE_C99_CPLX: * if data.dtype == np.complex64: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_complex_downcoef_axis( data.data, data_info, * cA.data, output_info, */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L23; } __pyx_L23:; } } /* "pywt/_extensions/_dwt.pyx":143 * wavelet.w, axis, common.COEF_APPROX, mode, * 0, common.DWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError("C wavelet transform failed") * with nogil: */ __pyx_t_13 = (__pyx_v_retval != 0); if (unlikely(__pyx_t_13)) { /* "pywt/_extensions/_dwt.pyx":144 * 0, common.DWT_TRANSFORM) * if retval: * raise RuntimeError("C wavelet transform failed") # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.float_complex_downcoef_axis( data.data, data_info, */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 144, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":143 * wavelet.w, axis, common.COEF_APPROX, mode, * 0, common.DWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError("C wavelet transform failed") * with nogil: */ } /* "pywt/_extensions/_dwt.pyx":145 * if retval: * raise RuntimeError("C wavelet transform failed") * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_complex_downcoef_axis( data.data, data_info, * cD.data, output_info, */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":146 * raise RuntimeError("C wavelet transform failed") * with nogil: * retval = c_wt.float_complex_downcoef_axis( data.data, data_info, # <<<<<<<<<<<<<< * cD.data, output_info, * wavelet.w, axis, common.COEF_DETAIL, mode, */ __pyx_v_retval = float_complex_downcoef_axis(((__pyx_t_float_complex *)__pyx_v_data->data), __pyx_v_data_info, ((__pyx_t_float_complex *)__pyx_v_cD->data), __pyx_v_output_info, __pyx_v_wavelet->w, __pyx_v_axis, COEF_DETAIL, __pyx_v_mode, 0, DWT_TRANSFORM); } /* "pywt/_extensions/_dwt.pyx":145 * if retval: * raise RuntimeError("C wavelet transform failed") * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_complex_downcoef_axis( data.data, data_info, * cD.data, output_info, */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L27; } __pyx_L27:; } } /* "pywt/_extensions/_dwt.pyx":150 * wavelet.w, axis, common.COEF_DETAIL, mode, * 0, common.DWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError("C wavelet transform failed") * elif data.dtype == np.complex128: */ __pyx_t_13 = (__pyx_v_retval != 0); if (unlikely(__pyx_t_13)) { /* "pywt/_extensions/_dwt.pyx":151 * 0, common.DWT_TRANSFORM) * if retval: * raise RuntimeError("C wavelet transform failed") # <<<<<<<<<<<<<< * elif data.dtype == np.complex128: * with nogil: */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 151, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":150 * wavelet.w, axis, common.COEF_DETAIL, mode, * 0, common.DWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError("C wavelet transform failed") * elif data.dtype == np.complex128: */ } /* "pywt/_extensions/_dwt.pyx":137 * raise RuntimeError("C wavelet transform failed") * IF HAVE_C99_CPLX: * if data.dtype == np.complex64: # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.float_complex_downcoef_axis( data.data, data_info, */ goto __pyx_L20; } /* "pywt/_extensions/_dwt.pyx":152 * if retval: * raise RuntimeError("C wavelet transform failed") * elif data.dtype == np.complex128: # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.double_complex_downcoef_axis( data.data, data_info, */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_data), __pyx_n_s_dtype); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_complex128); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyObject_RichCompare(__pyx_t_2, __pyx_t_10, Py_EQ); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 152, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 152, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (__pyx_t_13) { /* "pywt/_extensions/_dwt.pyx":153 * raise RuntimeError("C wavelet transform failed") * elif data.dtype == np.complex128: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_complex_downcoef_axis( data.data, data_info, * cA.data, output_info, */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":154 * elif data.dtype == np.complex128: * with nogil: * retval = c_wt.double_complex_downcoef_axis( data.data, data_info, # <<<<<<<<<<<<<< * cA.data, output_info, * wavelet.w, axis, common.COEF_APPROX, mode, */ __pyx_v_retval = double_complex_downcoef_axis(((__pyx_t_double_complex *)__pyx_v_data->data), __pyx_v_data_info, ((__pyx_t_double_complex *)__pyx_v_cA->data), __pyx_v_output_info, __pyx_v_wavelet->w, __pyx_v_axis, COEF_APPROX, __pyx_v_mode, 0, DWT_TRANSFORM); } /* "pywt/_extensions/_dwt.pyx":153 * raise RuntimeError("C wavelet transform failed") * elif data.dtype == np.complex128: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_complex_downcoef_axis( data.data, data_info, * cA.data, output_info, */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L31; } __pyx_L31:; } } /* "pywt/_extensions/_dwt.pyx":158 * wavelet.w, axis, common.COEF_APPROX, mode, * 0, common.DWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError("C wavelet transform failed") * with nogil: */ __pyx_t_13 = (__pyx_v_retval != 0); if (unlikely(__pyx_t_13)) { /* "pywt/_extensions/_dwt.pyx":159 * 0, common.DWT_TRANSFORM) * if retval: * raise RuntimeError("C wavelet transform failed") # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.double_complex_downcoef_axis( data.data, data_info, */ __pyx_t_12 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_Raise(__pyx_t_12, 0, 0, 0); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __PYX_ERR(0, 159, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":158 * wavelet.w, axis, common.COEF_APPROX, mode, * 0, common.DWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError("C wavelet transform failed") * with nogil: */ } /* "pywt/_extensions/_dwt.pyx":160 * if retval: * raise RuntimeError("C wavelet transform failed") * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_complex_downcoef_axis( data.data, data_info, * cD.data, output_info, */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":161 * raise RuntimeError("C wavelet transform failed") * with nogil: * retval = c_wt.double_complex_downcoef_axis( data.data, data_info, # <<<<<<<<<<<<<< * cD.data, output_info, * wavelet.w, axis, common.COEF_DETAIL, mode, */ __pyx_v_retval = double_complex_downcoef_axis(((__pyx_t_double_complex *)__pyx_v_data->data), __pyx_v_data_info, ((__pyx_t_double_complex *)__pyx_v_cD->data), __pyx_v_output_info, __pyx_v_wavelet->w, __pyx_v_axis, COEF_DETAIL, __pyx_v_mode, 0, DWT_TRANSFORM); } /* "pywt/_extensions/_dwt.pyx":160 * if retval: * raise RuntimeError("C wavelet transform failed") * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_complex_downcoef_axis( data.data, data_info, * cD.data, output_info, */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L35; } __pyx_L35:; } } /* "pywt/_extensions/_dwt.pyx":165 * wavelet.w, axis, common.COEF_DETAIL, mode, * 0, common.DWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError("C wavelet transform failed") * */ __pyx_t_13 = (__pyx_v_retval != 0); if (unlikely(__pyx_t_13)) { /* "pywt/_extensions/_dwt.pyx":166 * 0, common.DWT_TRANSFORM) * if retval: * raise RuntimeError("C wavelet transform failed") # <<<<<<<<<<<<<< * * if retval == -5: */ __pyx_t_12 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_Raise(__pyx_t_12, 0, 0, 0); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __PYX_ERR(0, 166, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":165 * wavelet.w, axis, common.COEF_DETAIL, mode, * 0, common.DWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError("C wavelet transform failed") * */ } /* "pywt/_extensions/_dwt.pyx":152 * if retval: * raise RuntimeError("C wavelet transform failed") * elif data.dtype == np.complex128: # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.double_complex_downcoef_axis( data.data, data_info, */ } __pyx_L20:; /* "pywt/_extensions/_dwt.pyx":168 * raise RuntimeError("C wavelet transform failed") * * if retval == -5: # <<<<<<<<<<<<<< * raise TypeError("Array must be floating point, not {}" * .format(data.dtype)) */ __pyx_t_13 = ((__pyx_v_retval == -5L) != 0); if (unlikely(__pyx_t_13)) { /* "pywt/_extensions/_dwt.pyx":170 * if retval == -5: * raise TypeError("Array must be floating point, not {}" * .format(data.dtype)) # <<<<<<<<<<<<<< * return (cA, cD) * */ __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Array_must_be_floating_point_not, __pyx_n_s_format); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_data), __pyx_n_s_dtype); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_12 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_1, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_2); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; /* "pywt/_extensions/_dwt.pyx":169 * * if retval == -5: * raise TypeError("Array must be floating point, not {}" # <<<<<<<<<<<<<< * .format(data.dtype)) * return (cA, cD) */ __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_12); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_Raise(__pyx_t_10, 0, 0, 0); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __PYX_ERR(0, 169, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":168 * raise RuntimeError("C wavelet transform failed") * * if retval == -5: # <<<<<<<<<<<<<< * raise TypeError("Array must be floating point, not {}" * .format(data.dtype)) */ } /* "pywt/_extensions/_dwt.pyx":171 * raise TypeError("Array must be floating point, not {}" * .format(data.dtype)) * return (cA, cD) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_INCREF(((PyObject *)__pyx_v_cA)); __Pyx_GIVEREF(((PyObject *)__pyx_v_cA)); PyTuple_SET_ITEM(__pyx_t_10, 0, ((PyObject *)__pyx_v_cA)); __Pyx_INCREF(((PyObject *)__pyx_v_cD)); __Pyx_GIVEREF(((PyObject *)__pyx_v_cD)); PyTuple_SET_ITEM(__pyx_t_10, 1, ((PyObject *)__pyx_v_cD)); __pyx_r = __pyx_t_10; __pyx_t_10 = 0; goto __pyx_L0; /* "pywt/_extensions/_dwt.pyx":81 * * * cpdef dwt_axis(np.ndarray data, Wavelet wavelet, MODE mode, unsigned int axis=0): # <<<<<<<<<<<<<< * # memory-views do not support n-dimensional arrays, use np.ndarray instead * cdef common.ArrayInfo data_info, output_info */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(((PyObject *)__pyx_t_6)); __PYX_XDEC_MEMVIEW(&__pyx_t_7, 1); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_12); __Pyx_AddTraceback("pywt._extensions._dwt.dwt_axis", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_cD); __Pyx_XDECREF((PyObject *)__pyx_v_cA); __PYX_XDEC_MEMVIEW(&__pyx_v_input_shape, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_output_shape, 1); __Pyx_XDECREF((PyObject *)__pyx_v_data); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_7dwt_axis(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_7dwt_axis(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyArrayObject *__pyx_v_data = 0; struct WaveletObject *__pyx_v_wavelet = 0; MODE __pyx_v_mode; unsigned int __pyx_v_axis; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("dwt_axis (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_data,&__pyx_n_s_wavelet,&__pyx_n_s_mode,&__pyx_n_s_axis,0}; PyObject* values[4] = {0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wavelet)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("dwt_axis", 0, 3, 4, 1); __PYX_ERR(0, 81, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("dwt_axis", 0, 3, 4, 2); __PYX_ERR(0, 81, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_axis); if (value) { values[3] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "dwt_axis") < 0)) __PYX_ERR(0, 81, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_data = ((PyArrayObject *)values[0]); __pyx_v_wavelet = ((struct WaveletObject *)values[1]); __pyx_v_mode = ((MODE)__Pyx_PyInt_As_MODE(values[2])); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 81, __pyx_L3_error) if (values[3]) { __pyx_v_axis = __Pyx_PyInt_As_unsigned_int(values[3]); if (unlikely((__pyx_v_axis == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 81, __pyx_L3_error) } else { __pyx_v_axis = ((unsigned int)0); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("dwt_axis", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 81, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._dwt.dwt_axis", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_data), __pyx_ptype_5numpy_ndarray, 1, "data", 0))) __PYX_ERR(0, 81, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_wavelet), __pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet, 1, "wavelet", 0))) __PYX_ERR(0, 81, __pyx_L1_error) __pyx_r = __pyx_pf_4pywt_11_extensions_4_dwt_6dwt_axis(__pyx_self, __pyx_v_data, __pyx_v_wavelet, __pyx_v_mode, __pyx_v_axis); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_6dwt_axis(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_data, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode, unsigned int __pyx_v_axis) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; struct __pyx_opt_args_4pywt_11_extensions_4_dwt_dwt_axis __pyx_t_2; __Pyx_RefNannySetupContext("dwt_axis", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_2.__pyx_n = 1; __pyx_t_2.axis = __pyx_v_axis; __pyx_t_1 = __pyx_f_4pywt_11_extensions_4_dwt_dwt_axis(__pyx_v_data, __pyx_v_wavelet, __pyx_v_mode, 0, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._dwt.dwt_axis", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_dwt.pyx":174 * * * cpdef idwt_single(np.ndarray cA, np.ndarray cD, Wavelet wavelet, MODE mode): # <<<<<<<<<<<<<< * cdef size_t input_len, rec_len * cdef int retval */ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_9idwt_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_f_4pywt_11_extensions_4_dwt_idwt_single(PyArrayObject *__pyx_v_cA, PyArrayObject *__pyx_v_cD, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode, CYTHON_UNUSED int __pyx_skip_dispatch) { size_t __pyx_v_input_len; size_t __pyx_v_rec_len; int __pyx_v_retval; PyArrayObject *__pyx_v_rec = 0; PyObject *__pyx_v_msg = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; size_t __pyx_t_5; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; __Pyx_RefNannySetupContext("idwt_single", 0); /* "pywt/_extensions/_dwt.pyx":180 * * # check for size difference between arrays * if cA.size != cD.size: # <<<<<<<<<<<<<< * raise ValueError("Coefficients arrays must have the same size.") * else: */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_cA), __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_cD), __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 180, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 180, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__pyx_t_4)) { /* "pywt/_extensions/_dwt.pyx":181 * # check for size difference between arrays * if cA.size != cD.size: * raise ValueError("Coefficients arrays must have the same size.") # <<<<<<<<<<<<<< * else: * input_len = cA.size */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 181, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":180 * * # check for size difference between arrays * if cA.size != cD.size: # <<<<<<<<<<<<<< * raise ValueError("Coefficients arrays must have the same size.") * else: */ } /* "pywt/_extensions/_dwt.pyx":183 * raise ValueError("Coefficients arrays must have the same size.") * else: * input_len = cA.size # <<<<<<<<<<<<<< * * if cA.dtype != cD.dtype: */ /*else*/ { __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_cA), __pyx_n_s_size); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyInt_As_size_t(__pyx_t_3); if (unlikely((__pyx_t_5 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 183, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_input_len = __pyx_t_5; } /* "pywt/_extensions/_dwt.pyx":185 * input_len = cA.size * * if cA.dtype != cD.dtype: # <<<<<<<<<<<<<< * raise ValueError("Coefficients arrays must have the same dtype.") * */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_cA), __pyx_n_s_dtype); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_cD), __pyx_n_s_dtype); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyObject_RichCompare(__pyx_t_3, __pyx_t_2, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 185, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 185, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(__pyx_t_4)) { /* "pywt/_extensions/_dwt.pyx":186 * * if cA.dtype != cD.dtype: * raise ValueError("Coefficients arrays must have the same dtype.") # <<<<<<<<<<<<<< * * # find reconstruction buffer length */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 186, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":185 * input_len = cA.size * * if cA.dtype != cD.dtype: # <<<<<<<<<<<<<< * raise ValueError("Coefficients arrays must have the same dtype.") * */ } /* "pywt/_extensions/_dwt.pyx":189 * * # find reconstruction buffer length * rec_len = common.idwt_buffer_length(input_len, wavelet.rec_len, mode) # <<<<<<<<<<<<<< * if rec_len < 1: * msg = ("Invalid coefficient arrays length for specified wavelet. " */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_rec_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 189, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_rec_len = idwt_buffer_length(__pyx_v_input_len, __pyx_t_5, __pyx_v_mode); /* "pywt/_extensions/_dwt.pyx":190 * # find reconstruction buffer length * rec_len = common.idwt_buffer_length(input_len, wavelet.rec_len, mode) * if rec_len < 1: # <<<<<<<<<<<<<< * msg = ("Invalid coefficient arrays length for specified wavelet. " * "Wavelet and mode must be the same as used for decomposition.") */ __pyx_t_4 = ((__pyx_v_rec_len < 1) != 0); if (unlikely(__pyx_t_4)) { /* "pywt/_extensions/_dwt.pyx":191 * rec_len = common.idwt_buffer_length(input_len, wavelet.rec_len, mode) * if rec_len < 1: * msg = ("Invalid coefficient arrays length for specified wavelet. " # <<<<<<<<<<<<<< * "Wavelet and mode must be the same as used for decomposition.") * raise ValueError(msg) */ __Pyx_INCREF(__pyx_kp_u_Invalid_coefficient_arrays_lengt); __pyx_v_msg = __pyx_kp_u_Invalid_coefficient_arrays_lengt; /* "pywt/_extensions/_dwt.pyx":193 * msg = ("Invalid coefficient arrays length for specified wavelet. " * "Wavelet and mode must be the same as used for decomposition.") * raise ValueError(msg) # <<<<<<<<<<<<<< * * # call idwt func. one of cA/cD can be None, then only */ __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_v_msg); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 193, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":190 * # find reconstruction buffer length * rec_len = common.idwt_buffer_length(input_len, wavelet.rec_len, mode) * if rec_len < 1: # <<<<<<<<<<<<<< * msg = ("Invalid coefficient arrays length for specified wavelet. " * "Wavelet and mode must be the same as used for decomposition.") */ } /* "pywt/_extensions/_dwt.pyx":197 * # call idwt func. one of cA/cD can be None, then only * # reconstruction of non-null part will be performed * if cA.dtype == np.float64: # <<<<<<<<<<<<<< * rec = np.zeros(rec_len, dtype=np.float64) * with nogil: */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_cA), __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_float64); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 197, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_4) { /* "pywt/_extensions/_dwt.pyx":198 * # reconstruction of non-null part will be performed * if cA.dtype == np.float64: * rec = np.zeros(rec_len, dtype=np.float64) # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.double_idwt(cA.data, input_len, */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_rec_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_float64); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_7) < 0) __PYX_ERR(0, 198, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 198, __pyx_L1_error) __pyx_v_rec = ((PyArrayObject *)__pyx_t_7); __pyx_t_7 = 0; /* "pywt/_extensions/_dwt.pyx":199 * if cA.dtype == np.float64: * rec = np.zeros(rec_len, dtype=np.float64) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_idwt(cA.data, input_len, * cD.data, input_len, */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":200 * rec = np.zeros(rec_len, dtype=np.float64) * with nogil: * retval = c_wt.double_idwt(cA.data, input_len, # <<<<<<<<<<<<<< * cD.data, input_len, * rec.data, rec_len, */ __pyx_v_retval = double_idwt(((double *)__pyx_v_cA->data), __pyx_v_input_len, ((double *)__pyx_v_cD->data), __pyx_v_input_len, ((double *)__pyx_v_rec->data), __pyx_v_rec_len, __pyx_v_wavelet->w, __pyx_v_mode); } /* "pywt/_extensions/_dwt.pyx":199 * if cA.dtype == np.float64: * rec = np.zeros(rec_len, dtype=np.float64) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_idwt(cA.data, input_len, * cD.data, input_len, */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L9; } __pyx_L9:; } } /* "pywt/_extensions/_dwt.pyx":204 * rec.data, rec_len, * wavelet.w, mode) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C idwt failed.") * elif cA.dtype == np.float32: */ __pyx_t_4 = ((__pyx_v_retval < 0) != 0); if (unlikely(__pyx_t_4)) { /* "pywt/_extensions/_dwt.pyx":205 * wavelet.w, mode) * if retval < 0: * raise RuntimeError("C idwt failed.") # <<<<<<<<<<<<<< * elif cA.dtype == np.float32: * rec = np.zeros(rec_len, dtype=np.float32) */ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __PYX_ERR(0, 205, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":204 * rec.data, rec_len, * wavelet.w, mode) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C idwt failed.") * elif cA.dtype == np.float32: */ } /* "pywt/_extensions/_dwt.pyx":197 * # call idwt func. one of cA/cD can be None, then only * # reconstruction of non-null part will be performed * if cA.dtype == np.float64: # <<<<<<<<<<<<<< * rec = np.zeros(rec_len, dtype=np.float64) * with nogil: */ goto __pyx_L6; } /* "pywt/_extensions/_dwt.pyx":206 * if retval < 0: * raise RuntimeError("C idwt failed.") * elif cA.dtype == np.float32: # <<<<<<<<<<<<<< * rec = np.zeros(rec_len, dtype=np.float32) * with nogil: */ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_cA), __pyx_n_s_dtype); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_float32); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_RichCompare(__pyx_t_7, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 206, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 206, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_4) { /* "pywt/_extensions/_dwt.pyx":207 * raise RuntimeError("C idwt failed.") * elif cA.dtype == np.float32: * rec = np.zeros(rec_len, dtype=np.float32) # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.float_idwt(cA.data, input_len, */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_rec_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_float32); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 207, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 207, __pyx_L1_error) __pyx_v_rec = ((PyArrayObject *)__pyx_t_6); __pyx_t_6 = 0; /* "pywt/_extensions/_dwt.pyx":208 * elif cA.dtype == np.float32: * rec = np.zeros(rec_len, dtype=np.float32) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_idwt(cA.data, input_len, * cD.data, input_len, */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":209 * rec = np.zeros(rec_len, dtype=np.float32) * with nogil: * retval = c_wt.float_idwt(cA.data, input_len, # <<<<<<<<<<<<<< * cD.data, input_len, * rec.data, rec_len, */ __pyx_v_retval = float_idwt(((float *)__pyx_v_cA->data), __pyx_v_input_len, ((float *)__pyx_v_cD->data), __pyx_v_input_len, ((float *)__pyx_v_rec->data), __pyx_v_rec_len, __pyx_v_wavelet->w, __pyx_v_mode); } /* "pywt/_extensions/_dwt.pyx":208 * elif cA.dtype == np.float32: * rec = np.zeros(rec_len, dtype=np.float32) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_idwt(cA.data, input_len, * cD.data, input_len, */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L13; } __pyx_L13:; } } /* "pywt/_extensions/_dwt.pyx":213 * rec.data, rec_len, * wavelet.w, mode) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C idwt failed.") * IF HAVE_C99_CPLX: */ __pyx_t_4 = ((__pyx_v_retval < 0) != 0); if (unlikely(__pyx_t_4)) { /* "pywt/_extensions/_dwt.pyx":214 * wavelet.w, mode) * if retval < 0: * raise RuntimeError("C idwt failed.") # <<<<<<<<<<<<<< * IF HAVE_C99_CPLX: * if cA.dtype == np.complex128: */ __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(0, 214, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":213 * rec.data, rec_len, * wavelet.w, mode) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C idwt failed.") * IF HAVE_C99_CPLX: */ } /* "pywt/_extensions/_dwt.pyx":206 * if retval < 0: * raise RuntimeError("C idwt failed.") * elif cA.dtype == np.float32: # <<<<<<<<<<<<<< * rec = np.zeros(rec_len, dtype=np.float32) * with nogil: */ } __pyx_L6:; /* "pywt/_extensions/_dwt.pyx":216 * raise RuntimeError("C idwt failed.") * IF HAVE_C99_CPLX: * if cA.dtype == np.complex128: # <<<<<<<<<<<<<< * rec = np.zeros(rec_len, dtype=np.complex128) * with nogil: */ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_cA), __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_complex128); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_RichCompare(__pyx_t_6, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 216, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 216, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_4) { /* "pywt/_extensions/_dwt.pyx":217 * IF HAVE_C99_CPLX: * if cA.dtype == np.complex128: * rec = np.zeros(rec_len, dtype=np.complex128) # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.double_complex_idwt(cA.data, input_len, */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_rec_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_complex128); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_3) < 0) __PYX_ERR(0, 217, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 217, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_rec, ((PyArrayObject *)__pyx_t_3)); __pyx_t_3 = 0; /* "pywt/_extensions/_dwt.pyx":218 * if cA.dtype == np.complex128: * rec = np.zeros(rec_len, dtype=np.complex128) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_complex_idwt(cA.data, input_len, * cD.data, input_len, */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":219 * rec = np.zeros(rec_len, dtype=np.complex128) * with nogil: * retval = c_wt.double_complex_idwt(cA.data, input_len, # <<<<<<<<<<<<<< * cD.data, input_len, * rec.data, rec_len, */ __pyx_v_retval = double_complex_idwt(((__pyx_t_double_complex *)__pyx_v_cA->data), __pyx_v_input_len, ((__pyx_t_double_complex *)__pyx_v_cD->data), __pyx_v_input_len, ((__pyx_t_double_complex *)__pyx_v_rec->data), __pyx_v_rec_len, __pyx_v_wavelet->w, __pyx_v_mode); } /* "pywt/_extensions/_dwt.pyx":218 * if cA.dtype == np.complex128: * rec = np.zeros(rec_len, dtype=np.complex128) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_complex_idwt(cA.data, input_len, * cD.data, input_len, */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L18; } __pyx_L18:; } } /* "pywt/_extensions/_dwt.pyx":223 * rec.data, rec_len, * wavelet.w, mode) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C idwt failed.") * elif cA.dtype == np.complex64: */ __pyx_t_4 = ((__pyx_v_retval < 0) != 0); if (unlikely(__pyx_t_4)) { /* "pywt/_extensions/_dwt.pyx":224 * wavelet.w, mode) * if retval < 0: * raise RuntimeError("C idwt failed.") # <<<<<<<<<<<<<< * elif cA.dtype == np.complex64: * rec = np.zeros(rec_len, dtype=np.complex64) */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 224, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":223 * rec.data, rec_len, * wavelet.w, mode) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C idwt failed.") * elif cA.dtype == np.complex64: */ } /* "pywt/_extensions/_dwt.pyx":216 * raise RuntimeError("C idwt failed.") * IF HAVE_C99_CPLX: * if cA.dtype == np.complex128: # <<<<<<<<<<<<<< * rec = np.zeros(rec_len, dtype=np.complex128) * with nogil: */ goto __pyx_L15; } /* "pywt/_extensions/_dwt.pyx":225 * if retval < 0: * raise RuntimeError("C idwt failed.") * elif cA.dtype == np.complex64: # <<<<<<<<<<<<<< * rec = np.zeros(rec_len, dtype=np.complex64) * with nogil: */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_cA), __pyx_n_s_dtype); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_complex64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyObject_RichCompare(__pyx_t_3, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_4) { /* "pywt/_extensions/_dwt.pyx":226 * raise RuntimeError("C idwt failed.") * elif cA.dtype == np.complex64: * rec = np.zeros(rec_len, dtype=np.complex64) # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.float_complex_idwt(cA.data, input_len, */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_rec_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_complex64); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_1) < 0) __PYX_ERR(0, 226, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 226, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_rec, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; /* "pywt/_extensions/_dwt.pyx":227 * elif cA.dtype == np.complex64: * rec = np.zeros(rec_len, dtype=np.complex64) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_complex_idwt(cA.data, input_len, * cD.data, input_len, */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":228 * rec = np.zeros(rec_len, dtype=np.complex64) * with nogil: * retval = c_wt.float_complex_idwt(cA.data, input_len, # <<<<<<<<<<<<<< * cD.data, input_len, * rec.data, rec_len, */ __pyx_v_retval = float_complex_idwt(((__pyx_t_float_complex *)__pyx_v_cA->data), __pyx_v_input_len, ((__pyx_t_float_complex *)__pyx_v_cD->data), __pyx_v_input_len, ((__pyx_t_float_complex *)__pyx_v_rec->data), __pyx_v_rec_len, __pyx_v_wavelet->w, __pyx_v_mode); } /* "pywt/_extensions/_dwt.pyx":227 * elif cA.dtype == np.complex64: * rec = np.zeros(rec_len, dtype=np.complex64) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_complex_idwt(cA.data, input_len, * cD.data, input_len, */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L22; } __pyx_L22:; } } /* "pywt/_extensions/_dwt.pyx":232 * rec.data, rec_len, * wavelet.w, mode) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C idwt failed.") * */ __pyx_t_4 = ((__pyx_v_retval < 0) != 0); if (unlikely(__pyx_t_4)) { /* "pywt/_extensions/_dwt.pyx":233 * wavelet.w, mode) * if retval < 0: * raise RuntimeError("C idwt failed.") # <<<<<<<<<<<<<< * * return rec */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 233, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":232 * rec.data, rec_len, * wavelet.w, mode) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C idwt failed.") * */ } /* "pywt/_extensions/_dwt.pyx":225 * if retval < 0: * raise RuntimeError("C idwt failed.") * elif cA.dtype == np.complex64: # <<<<<<<<<<<<<< * rec = np.zeros(rec_len, dtype=np.complex64) * with nogil: */ } __pyx_L15:; /* "pywt/_extensions/_dwt.pyx":235 * raise RuntimeError("C idwt failed.") * * return rec # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_rec)) { __Pyx_RaiseUnboundLocalError("rec"); __PYX_ERR(0, 235, __pyx_L1_error) } __Pyx_INCREF(((PyObject *)__pyx_v_rec)); __pyx_r = ((PyObject *)__pyx_v_rec); goto __pyx_L0; /* "pywt/_extensions/_dwt.pyx":174 * * * cpdef idwt_single(np.ndarray cA, np.ndarray cD, Wavelet wavelet, MODE mode): # <<<<<<<<<<<<<< * cdef size_t input_len, rec_len * cdef int retval */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("pywt._extensions._dwt.idwt_single", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_rec); __Pyx_XDECREF(__pyx_v_msg); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_9idwt_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_9idwt_single(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyArrayObject *__pyx_v_cA = 0; PyArrayObject *__pyx_v_cD = 0; struct WaveletObject *__pyx_v_wavelet = 0; MODE __pyx_v_mode; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("idwt_single (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_cA,&__pyx_n_s_cD,&__pyx_n_s_wavelet,&__pyx_n_s_mode,0}; PyObject* values[4] = {0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cA)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cD)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("idwt_single", 1, 4, 4, 1); __PYX_ERR(0, 174, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wavelet)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("idwt_single", 1, 4, 4, 2); __PYX_ERR(0, 174, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("idwt_single", 1, 4, 4, 3); __PYX_ERR(0, 174, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "idwt_single") < 0)) __PYX_ERR(0, 174, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); } __pyx_v_cA = ((PyArrayObject *)values[0]); __pyx_v_cD = ((PyArrayObject *)values[1]); __pyx_v_wavelet = ((struct WaveletObject *)values[2]); __pyx_v_mode = ((MODE)__Pyx_PyInt_As_MODE(values[3])); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 174, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("idwt_single", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 174, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._dwt.idwt_single", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cA), __pyx_ptype_5numpy_ndarray, 1, "cA", 0))) __PYX_ERR(0, 174, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cD), __pyx_ptype_5numpy_ndarray, 1, "cD", 0))) __PYX_ERR(0, 174, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_wavelet), __pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet, 1, "wavelet", 0))) __PYX_ERR(0, 174, __pyx_L1_error) __pyx_r = __pyx_pf_4pywt_11_extensions_4_dwt_8idwt_single(__pyx_self, __pyx_v_cA, __pyx_v_cD, __pyx_v_wavelet, __pyx_v_mode); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_8idwt_single(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_cA, PyArrayObject *__pyx_v_cD, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("idwt_single", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_f_4pywt_11_extensions_4_dwt_idwt_single(__pyx_v_cA, __pyx_v_cD, __pyx_v_wavelet, __pyx_v_mode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._dwt.idwt_single", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_dwt.pyx":238 * * * cpdef idwt_axis(np.ndarray coefs_a, np.ndarray coefs_d, # <<<<<<<<<<<<<< * Wavelet wavelet, MODE mode, unsigned int axis=0): * cdef common.ArrayInfo a_info, d_info, output_info */ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_11idwt_axis(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_f_4pywt_11_extensions_4_dwt_idwt_axis(PyArrayObject *__pyx_v_coefs_a, PyArrayObject *__pyx_v_coefs_d, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_4pywt_11_extensions_4_dwt_idwt_axis *__pyx_optional_args) { unsigned int __pyx_v_axis = ((unsigned int)0); ArrayInfo __pyx_v_a_info; ArrayInfo __pyx_v_d_info; ArrayInfo __pyx_v_output_info; ArrayInfo *__pyx_v_a_info_p; ArrayInfo *__pyx_v_d_info_p; PyArrayObject *__pyx_v_output = 0; PyArray_Descr *__pyx_v_output_dtype = 0; void *__pyx_v_data_a; void *__pyx_v_data_d; __Pyx_memviewslice __pyx_v_input_shape = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_output_shape = { 0, 0, { 0 }, { 0 }, { 0 } }; int __pyx_v_retval; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; size_t *__pyx_t_9; struct __pyx_array_obj *__pyx_t_10 = NULL; __Pyx_memviewslice __pyx_t_11 = { 0, 0, { 0 }, { 0 }, { 0 } }; size_t __pyx_t_12; size_t __pyx_t_13; size_t __pyx_t_14; PyObject *__pyx_t_15 = NULL; __Pyx_RefNannySetupContext("idwt_axis", 0); if (__pyx_optional_args) { if (__pyx_optional_args->__pyx_n > 0) { __pyx_v_axis = __pyx_optional_args->axis; } } __Pyx_INCREF((PyObject *)__pyx_v_coefs_a); __Pyx_INCREF((PyObject *)__pyx_v_coefs_d); /* "pywt/_extensions/_dwt.pyx":241 * Wavelet wavelet, MODE mode, unsigned int axis=0): * cdef common.ArrayInfo a_info, d_info, output_info * cdef common.ArrayInfo *a_info_p = NULL # <<<<<<<<<<<<<< * cdef common.ArrayInfo *d_info_p = NULL * cdef np.ndarray output */ __pyx_v_a_info_p = NULL; /* "pywt/_extensions/_dwt.pyx":242 * cdef common.ArrayInfo a_info, d_info, output_info * cdef common.ArrayInfo *a_info_p = NULL * cdef common.ArrayInfo *d_info_p = NULL # <<<<<<<<<<<<<< * cdef np.ndarray output * cdef np.dtype output_dtype */ __pyx_v_d_info_p = NULL; /* "pywt/_extensions/_dwt.pyx":245 * cdef np.ndarray output * cdef np.dtype output_dtype * cdef void *data_a = NULL # <<<<<<<<<<<<<< * cdef void *data_d = NULL * # Explicit input_shape necessary to prevent memory leak */ __pyx_v_data_a = NULL; /* "pywt/_extensions/_dwt.pyx":246 * cdef np.dtype output_dtype * cdef void *data_a = NULL * cdef void *data_d = NULL # <<<<<<<<<<<<<< * # Explicit input_shape necessary to prevent memory leak * cdef size_t[::1] input_shape, output_shape */ __pyx_v_data_d = NULL; /* "pywt/_extensions/_dwt.pyx":249 * # Explicit input_shape necessary to prevent memory leak * cdef size_t[::1] input_shape, output_shape * cdef int retval = -5 # <<<<<<<<<<<<<< * * if coefs_a is not None: */ __pyx_v_retval = -5; /* "pywt/_extensions/_dwt.pyx":251 * cdef int retval = -5 * * if coefs_a is not None: # <<<<<<<<<<<<<< * if coefs_d is not None and coefs_d.dtype.itemsize > coefs_a.dtype.itemsize: * coefs_a = coefs_a.astype(_check_dtype(coefs_d), copy=False) */ __pyx_t_1 = (((PyObject *)__pyx_v_coefs_a) != Py_None); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "pywt/_extensions/_dwt.pyx":252 * * if coefs_a is not None: * if coefs_d is not None and coefs_d.dtype.itemsize > coefs_a.dtype.itemsize: # <<<<<<<<<<<<<< * coefs_a = coefs_a.astype(_check_dtype(coefs_d), copy=False) * else: */ __pyx_t_1 = (((PyObject *)__pyx_v_coefs_d) != Py_None); __pyx_t_3 = (__pyx_t_1 != 0); if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L5_bool_binop_done; } __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_coefs_d), __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_coefs_a), __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyObject_RichCompare(__pyx_t_5, __pyx_t_6, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 252, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 252, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = __pyx_t_3; __pyx_L5_bool_binop_done:; if (__pyx_t_2) { /* "pywt/_extensions/_dwt.pyx":253 * if coefs_a is not None: * if coefs_d is not None and coefs_d.dtype.itemsize > coefs_a.dtype.itemsize: * coefs_a = coefs_a.astype(_check_dtype(coefs_d), copy=False) # <<<<<<<<<<<<<< * else: * coefs_a = coefs_a.astype(_check_dtype(coefs_a), copy=False) */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_coefs_a), __pyx_n_s_astype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = ((PyObject *)__pyx_f_4pywt_11_extensions_5_pywt__check_dtype(((PyObject *)__pyx_v_coefs_d), 0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_copy, Py_False) < 0) __PYX_ERR(0, 253, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 253, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_coefs_a, ((PyArrayObject *)__pyx_t_7)); __pyx_t_7 = 0; /* "pywt/_extensions/_dwt.pyx":252 * * if coefs_a is not None: * if coefs_d is not None and coefs_d.dtype.itemsize > coefs_a.dtype.itemsize: # <<<<<<<<<<<<<< * coefs_a = coefs_a.astype(_check_dtype(coefs_d), copy=False) * else: */ goto __pyx_L4; } /* "pywt/_extensions/_dwt.pyx":255 * coefs_a = coefs_a.astype(_check_dtype(coefs_d), copy=False) * else: * coefs_a = coefs_a.astype(_check_dtype(coefs_a), copy=False) # <<<<<<<<<<<<<< * a_info.ndim = coefs_a.ndim * a_info.strides = coefs_a.strides */ /*else*/ { __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_coefs_a), __pyx_n_s_astype); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = ((PyObject *)__pyx_f_4pywt_11_extensions_5_pywt__check_dtype(((PyObject *)__pyx_v_coefs_a), 0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_copy, Py_False) < 0) __PYX_ERR(0, 255, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 255, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_coefs_a, ((PyArrayObject *)__pyx_t_4)); __pyx_t_4 = 0; } __pyx_L4:; /* "pywt/_extensions/_dwt.pyx":256 * else: * coefs_a = coefs_a.astype(_check_dtype(coefs_a), copy=False) * a_info.ndim = coefs_a.ndim # <<<<<<<<<<<<<< * a_info.strides = coefs_a.strides * a_info.shape = coefs_a.shape */ __pyx_t_8 = __pyx_v_coefs_a->nd; __pyx_v_a_info.ndim = __pyx_t_8; /* "pywt/_extensions/_dwt.pyx":257 * coefs_a = coefs_a.astype(_check_dtype(coefs_a), copy=False) * a_info.ndim = coefs_a.ndim * a_info.strides = coefs_a.strides # <<<<<<<<<<<<<< * a_info.shape = coefs_a.shape * a_info_p = &a_info */ __pyx_v_a_info.strides = ((pywt_index_t *)__pyx_v_coefs_a->strides); /* "pywt/_extensions/_dwt.pyx":258 * a_info.ndim = coefs_a.ndim * a_info.strides = coefs_a.strides * a_info.shape = coefs_a.shape # <<<<<<<<<<<<<< * a_info_p = &a_info * data_a = coefs_a.data */ __pyx_v_a_info.shape = ((size_t *)__pyx_v_coefs_a->dimensions); /* "pywt/_extensions/_dwt.pyx":259 * a_info.strides = coefs_a.strides * a_info.shape = coefs_a.shape * a_info_p = &a_info # <<<<<<<<<<<<<< * data_a = coefs_a.data * if coefs_d is not None: */ __pyx_v_a_info_p = (&__pyx_v_a_info); /* "pywt/_extensions/_dwt.pyx":260 * a_info.shape = coefs_a.shape * a_info_p = &a_info * data_a = coefs_a.data # <<<<<<<<<<<<<< * if coefs_d is not None: * if coefs_a is not None and coefs_a.dtype.itemsize > coefs_d.dtype.itemsize: */ __pyx_v_data_a = ((void *)__pyx_v_coefs_a->data); /* "pywt/_extensions/_dwt.pyx":251 * cdef int retval = -5 * * if coefs_a is not None: # <<<<<<<<<<<<<< * if coefs_d is not None and coefs_d.dtype.itemsize > coefs_a.dtype.itemsize: * coefs_a = coefs_a.astype(_check_dtype(coefs_d), copy=False) */ } /* "pywt/_extensions/_dwt.pyx":261 * a_info_p = &a_info * data_a = coefs_a.data * if coefs_d is not None: # <<<<<<<<<<<<<< * if coefs_a is not None and coefs_a.dtype.itemsize > coefs_d.dtype.itemsize: * coefs_d = coefs_d.astype(_check_dtype(coefs_a), copy=False) */ __pyx_t_2 = (((PyObject *)__pyx_v_coefs_d) != Py_None); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* "pywt/_extensions/_dwt.pyx":262 * data_a = coefs_a.data * if coefs_d is not None: * if coefs_a is not None and coefs_a.dtype.itemsize > coefs_d.dtype.itemsize: # <<<<<<<<<<<<<< * coefs_d = coefs_d.astype(_check_dtype(coefs_a), copy=False) * else: */ __pyx_t_2 = (((PyObject *)__pyx_v_coefs_a) != Py_None); __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { } else { __pyx_t_3 = __pyx_t_1; goto __pyx_L9_bool_binop_done; } __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_coefs_a), __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_coefs_d), __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyObject_RichCompare(__pyx_t_6, __pyx_t_5, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 262, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = __pyx_t_1; __pyx_L9_bool_binop_done:; if (__pyx_t_3) { /* "pywt/_extensions/_dwt.pyx":263 * if coefs_d is not None: * if coefs_a is not None and coefs_a.dtype.itemsize > coefs_d.dtype.itemsize: * coefs_d = coefs_d.astype(_check_dtype(coefs_a), copy=False) # <<<<<<<<<<<<<< * else: * coefs_d = coefs_d.astype(_check_dtype(coefs_d), copy=False) */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_coefs_d), __pyx_n_s_astype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = ((PyObject *)__pyx_f_4pywt_11_extensions_5_pywt__check_dtype(((PyObject *)__pyx_v_coefs_a), 0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_copy, Py_False) < 0) __PYX_ERR(0, 263, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 263, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_coefs_d, ((PyArrayObject *)__pyx_t_7)); __pyx_t_7 = 0; /* "pywt/_extensions/_dwt.pyx":262 * data_a = coefs_a.data * if coefs_d is not None: * if coefs_a is not None and coefs_a.dtype.itemsize > coefs_d.dtype.itemsize: # <<<<<<<<<<<<<< * coefs_d = coefs_d.astype(_check_dtype(coefs_a), copy=False) * else: */ goto __pyx_L8; } /* "pywt/_extensions/_dwt.pyx":265 * coefs_d = coefs_d.astype(_check_dtype(coefs_a), copy=False) * else: * coefs_d = coefs_d.astype(_check_dtype(coefs_d), copy=False) # <<<<<<<<<<<<<< * d_info.ndim = coefs_d.ndim * d_info.strides = coefs_d.strides */ /*else*/ { __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_coefs_d), __pyx_n_s_astype); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = ((PyObject *)__pyx_f_4pywt_11_extensions_5_pywt__check_dtype(((PyObject *)__pyx_v_coefs_d), 0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_copy, Py_False) < 0) __PYX_ERR(0, 265, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 265, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_coefs_d, ((PyArrayObject *)__pyx_t_4)); __pyx_t_4 = 0; } __pyx_L8:; /* "pywt/_extensions/_dwt.pyx":266 * else: * coefs_d = coefs_d.astype(_check_dtype(coefs_d), copy=False) * d_info.ndim = coefs_d.ndim # <<<<<<<<<<<<<< * d_info.strides = coefs_d.strides * d_info.shape = coefs_d.shape */ __pyx_t_8 = __pyx_v_coefs_d->nd; __pyx_v_d_info.ndim = __pyx_t_8; /* "pywt/_extensions/_dwt.pyx":267 * coefs_d = coefs_d.astype(_check_dtype(coefs_d), copy=False) * d_info.ndim = coefs_d.ndim * d_info.strides = coefs_d.strides # <<<<<<<<<<<<<< * d_info.shape = coefs_d.shape * d_info_p = &d_info */ __pyx_v_d_info.strides = ((pywt_index_t *)__pyx_v_coefs_d->strides); /* "pywt/_extensions/_dwt.pyx":268 * d_info.ndim = coefs_d.ndim * d_info.strides = coefs_d.strides * d_info.shape = coefs_d.shape # <<<<<<<<<<<<<< * d_info_p = &d_info * data_d = coefs_d.data */ __pyx_v_d_info.shape = ((size_t *)__pyx_v_coefs_d->dimensions); /* "pywt/_extensions/_dwt.pyx":269 * d_info.strides = coefs_d.strides * d_info.shape = coefs_d.shape * d_info_p = &d_info # <<<<<<<<<<<<<< * data_d = coefs_d.data * */ __pyx_v_d_info_p = (&__pyx_v_d_info); /* "pywt/_extensions/_dwt.pyx":270 * d_info.shape = coefs_d.shape * d_info_p = &d_info * data_d = coefs_d.data # <<<<<<<<<<<<<< * * if coefs_a is not None: */ __pyx_v_data_d = ((void *)__pyx_v_coefs_d->data); /* "pywt/_extensions/_dwt.pyx":261 * a_info_p = &a_info * data_a = coefs_a.data * if coefs_d is not None: # <<<<<<<<<<<<<< * if coefs_a is not None and coefs_a.dtype.itemsize > coefs_d.dtype.itemsize: * coefs_d = coefs_d.astype(_check_dtype(coefs_a), copy=False) */ } /* "pywt/_extensions/_dwt.pyx":272 * data_d = coefs_d.data * * if coefs_a is not None: # <<<<<<<<<<<<<< * input_shape = coefs_a.shape * output_dtype = coefs_a.dtype */ __pyx_t_3 = (((PyObject *)__pyx_v_coefs_a) != Py_None); __pyx_t_1 = (__pyx_t_3 != 0); if (__pyx_t_1) { /* "pywt/_extensions/_dwt.pyx":273 * * if coefs_a is not None: * input_shape = coefs_a.shape # <<<<<<<<<<<<<< * output_dtype = coefs_a.dtype * elif coefs_d is not None: */ __pyx_t_9 = ((size_t *)__pyx_v_coefs_a->dimensions); if (!__pyx_t_9) { PyErr_SetString(PyExc_ValueError,"Cannot create cython.array from NULL pointer"); __PYX_ERR(0, 273, __pyx_L1_error) } __pyx_t_5 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_size_t); __pyx_t_4 = Py_BuildValue((char*) "(" __PYX_BUILD_PY_SSIZE_T ")", ((Py_ssize_t)__pyx_v_coefs_a->nd)); if (unlikely(!__pyx_t_5 || !__pyx_t_4 || !PyBytes_AsString(__pyx_t_5))) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __pyx_array_new(__pyx_t_4, sizeof(size_t), PyBytes_AS_STRING(__pyx_t_5), (char *) "c", (char *) __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dc_size_t(((PyObject *)__pyx_t_10), PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0; __pyx_v_input_shape = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL; /* "pywt/_extensions/_dwt.pyx":274 * if coefs_a is not None: * input_shape = coefs_a.shape * output_dtype = coefs_a.dtype # <<<<<<<<<<<<<< * elif coefs_d is not None: * input_shape = coefs_d.shape */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_coefs_a), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(0, 274, __pyx_L1_error) __pyx_v_output_dtype = ((PyArray_Descr *)__pyx_t_5); __pyx_t_5 = 0; /* "pywt/_extensions/_dwt.pyx":272 * data_d = coefs_d.data * * if coefs_a is not None: # <<<<<<<<<<<<<< * input_shape = coefs_a.shape * output_dtype = coefs_a.dtype */ goto __pyx_L11; } /* "pywt/_extensions/_dwt.pyx":275 * input_shape = coefs_a.shape * output_dtype = coefs_a.dtype * elif coefs_d is not None: # <<<<<<<<<<<<<< * input_shape = coefs_d.shape * output_dtype = coefs_d.dtype */ __pyx_t_1 = (((PyObject *)__pyx_v_coefs_d) != Py_None); __pyx_t_3 = (__pyx_t_1 != 0); if (__pyx_t_3) { /* "pywt/_extensions/_dwt.pyx":276 * output_dtype = coefs_a.dtype * elif coefs_d is not None: * input_shape = coefs_d.shape # <<<<<<<<<<<<<< * output_dtype = coefs_d.dtype * else: */ __pyx_t_9 = ((size_t *)__pyx_v_coefs_d->dimensions); if (!__pyx_t_9) { PyErr_SetString(PyExc_ValueError,"Cannot create cython.array from NULL pointer"); __PYX_ERR(0, 276, __pyx_L1_error) } __pyx_t_4 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_size_t); __pyx_t_5 = Py_BuildValue((char*) "(" __PYX_BUILD_PY_SSIZE_T ")", ((Py_ssize_t)__pyx_v_coefs_d->nd)); if (unlikely(!__pyx_t_4 || !__pyx_t_5 || !PyBytes_AsString(__pyx_t_4))) __PYX_ERR(0, 276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_5); __pyx_t_10 = __pyx_array_new(__pyx_t_5, sizeof(size_t), PyBytes_AS_STRING(__pyx_t_4), (char *) "c", (char *) __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dc_size_t(((PyObject *)__pyx_t_10), PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 276, __pyx_L1_error) __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0; __pyx_v_input_shape = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL; /* "pywt/_extensions/_dwt.pyx":277 * elif coefs_d is not None: * input_shape = coefs_d.shape * output_dtype = coefs_d.dtype # <<<<<<<<<<<<<< * else: * return None */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_coefs_d), __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(0, 277, __pyx_L1_error) __pyx_v_output_dtype = ((PyArray_Descr *)__pyx_t_4); __pyx_t_4 = 0; /* "pywt/_extensions/_dwt.pyx":275 * input_shape = coefs_a.shape * output_dtype = coefs_a.dtype * elif coefs_d is not None: # <<<<<<<<<<<<<< * input_shape = coefs_d.shape * output_dtype = coefs_d.dtype */ goto __pyx_L11; } /* "pywt/_extensions/_dwt.pyx":279 * output_dtype = coefs_d.dtype * else: * return None # <<<<<<<<<<<<<< * * output_shape = input_shape.copy() */ /*else*/ { __Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; } __pyx_L11:; /* "pywt/_extensions/_dwt.pyx":281 * return None * * output_shape = input_shape.copy() # <<<<<<<<<<<<<< * output_shape[axis] = common.idwt_buffer_length(input_shape[axis], * wavelet.rec_len, mode) */ __pyx_t_11 = __pyx_memoryview_copy_slice_dc_size_t_c(__pyx_v_input_shape); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 281, __pyx_L1_error) __pyx_v_output_shape = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL; /* "pywt/_extensions/_dwt.pyx":282 * * output_shape = input_shape.copy() * output_shape[axis] = common.idwt_buffer_length(input_shape[axis], # <<<<<<<<<<<<<< * wavelet.rec_len, mode) * output = np.empty(output_shape, output_dtype) */ __pyx_t_12 = __pyx_v_axis; /* "pywt/_extensions/_dwt.pyx":283 * output_shape = input_shape.copy() * output_shape[axis] = common.idwt_buffer_length(input_shape[axis], * wavelet.rec_len, mode) # <<<<<<<<<<<<<< * output = np.empty(output_shape, output_dtype) * */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_rec_len); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_13 = __Pyx_PyInt_As_size_t(__pyx_t_4); if (unlikely((__pyx_t_13 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 283, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "pywt/_extensions/_dwt.pyx":282 * * output_shape = input_shape.copy() * output_shape[axis] = common.idwt_buffer_length(input_shape[axis], # <<<<<<<<<<<<<< * wavelet.rec_len, mode) * output = np.empty(output_shape, output_dtype) */ __pyx_t_14 = __pyx_v_axis; *((size_t *) ( /* dim=0 */ ((char *) (((size_t *) __pyx_v_output_shape.data) + __pyx_t_14)) )) = idwt_buffer_length((*((size_t *) ( /* dim=0 */ ((char *) (((size_t *) __pyx_v_input_shape.data) + __pyx_t_12)) ))), __pyx_t_13, __pyx_v_mode); /* "pywt/_extensions/_dwt.pyx":284 * output_shape[axis] = common.idwt_buffer_length(input_shape[axis], * wavelet.rec_len, mode) * output = np.empty(output_shape, output_dtype) # <<<<<<<<<<<<<< * * output_info.ndim = output.ndim */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_v_output_shape, 1, (PyObject *(*)(char *)) __pyx_memview_get_size_t, (int (*)(char *, PyObject *)) __pyx_memview_set_size_t, 0);; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_5, ((PyObject *)__pyx_v_output_dtype)}; __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 284, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_5, ((PyObject *)__pyx_v_output_dtype)}; __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 284, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { __pyx_t_15 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_5); __Pyx_INCREF(((PyObject *)__pyx_v_output_dtype)); __Pyx_GIVEREF(((PyObject *)__pyx_v_output_dtype)); PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, ((PyObject *)__pyx_v_output_dtype)); __pyx_t_5 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 284, __pyx_L1_error) __pyx_v_output = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; /* "pywt/_extensions/_dwt.pyx":286 * output = np.empty(output_shape, output_dtype) * * output_info.ndim = output.ndim # <<<<<<<<<<<<<< * output_info.strides = output.strides * output_info.shape = output.shape */ __pyx_t_8 = __pyx_v_output->nd; __pyx_v_output_info.ndim = __pyx_t_8; /* "pywt/_extensions/_dwt.pyx":287 * * output_info.ndim = output.ndim * output_info.strides = output.strides # <<<<<<<<<<<<<< * output_info.shape = output.shape * */ __pyx_v_output_info.strides = ((pywt_index_t *)__pyx_v_output->strides); /* "pywt/_extensions/_dwt.pyx":288 * output_info.ndim = output.ndim * output_info.strides = output.strides * output_info.shape = output.shape # <<<<<<<<<<<<<< * * if output.dtype == np.float64: */ __pyx_v_output_info.shape = ((size_t *)__pyx_v_output->dimensions); /* "pywt/_extensions/_dwt.pyx":290 * output_info.shape = output.shape * * if output.dtype == np.float64: # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.double_idwt_axis( data_a, a_info_p, */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_output), __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_float64); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyObject_RichCompare(__pyx_t_4, __pyx_t_15, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 290, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 290, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_3) { /* "pywt/_extensions/_dwt.pyx":291 * * if output.dtype == np.float64: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_idwt_axis( data_a, a_info_p, * data_d, d_info_p, */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":292 * if output.dtype == np.float64: * with nogil: * retval = c_wt.double_idwt_axis( data_a, a_info_p, # <<<<<<<<<<<<<< * data_d, d_info_p, * output.data, output_info, */ __pyx_v_retval = double_idwt_axis(((double *)__pyx_v_data_a), __pyx_v_a_info_p, ((double *)__pyx_v_data_d), __pyx_v_d_info_p, ((double *)__pyx_v_output->data), __pyx_v_output_info, __pyx_v_wavelet->w, __pyx_v_axis, __pyx_v_mode); } /* "pywt/_extensions/_dwt.pyx":291 * * if output.dtype == np.float64: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_idwt_axis( data_a, a_info_p, * data_d, d_info_p, */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L15; } __pyx_L15:; } } /* "pywt/_extensions/_dwt.pyx":296 * output.data, output_info, * wavelet.w, axis, mode) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError("C inverse wavelet transform failed") * elif output.dtype == np.float32: */ __pyx_t_3 = (__pyx_v_retval != 0); if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_dwt.pyx":297 * wavelet.w, axis, mode) * if retval: * raise RuntimeError("C inverse wavelet transform failed") # <<<<<<<<<<<<<< * elif output.dtype == np.float32: * with nogil: */ __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(0, 297, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":296 * output.data, output_info, * wavelet.w, axis, mode) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError("C inverse wavelet transform failed") * elif output.dtype == np.float32: */ } /* "pywt/_extensions/_dwt.pyx":290 * output_info.shape = output.shape * * if output.dtype == np.float64: # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.double_idwt_axis( data_a, a_info_p, */ goto __pyx_L12; } /* "pywt/_extensions/_dwt.pyx":298 * if retval: * raise RuntimeError("C inverse wavelet transform failed") * elif output.dtype == np.float32: # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.float_idwt_axis( data_a, a_info_p, */ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_output), __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_float32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = PyObject_RichCompare(__pyx_t_6, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_15); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_15); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (__pyx_t_3) { /* "pywt/_extensions/_dwt.pyx":299 * raise RuntimeError("C inverse wavelet transform failed") * elif output.dtype == np.float32: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_idwt_axis( data_a, a_info_p, * data_d, d_info_p, */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":300 * elif output.dtype == np.float32: * with nogil: * retval = c_wt.float_idwt_axis( data_a, a_info_p, # <<<<<<<<<<<<<< * data_d, d_info_p, * output.data, output_info, */ __pyx_v_retval = float_idwt_axis(((float *)__pyx_v_data_a), __pyx_v_a_info_p, ((float *)__pyx_v_data_d), __pyx_v_d_info_p, ((float *)__pyx_v_output->data), __pyx_v_output_info, __pyx_v_wavelet->w, __pyx_v_axis, __pyx_v_mode); } /* "pywt/_extensions/_dwt.pyx":299 * raise RuntimeError("C inverse wavelet transform failed") * elif output.dtype == np.float32: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_idwt_axis( data_a, a_info_p, * data_d, d_info_p, */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L19; } __pyx_L19:; } } /* "pywt/_extensions/_dwt.pyx":304 * output.data, output_info, * wavelet.w, axis, mode) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError("C inverse wavelet transform failed") * IF HAVE_C99_CPLX: */ __pyx_t_3 = (__pyx_v_retval != 0); if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_dwt.pyx":305 * wavelet.w, axis, mode) * if retval: * raise RuntimeError("C inverse wavelet transform failed") # <<<<<<<<<<<<<< * IF HAVE_C99_CPLX: * if output.dtype == np.complex128: */ __pyx_t_15 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_Raise(__pyx_t_15, 0, 0, 0); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __PYX_ERR(0, 305, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":304 * output.data, output_info, * wavelet.w, axis, mode) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError("C inverse wavelet transform failed") * IF HAVE_C99_CPLX: */ } /* "pywt/_extensions/_dwt.pyx":298 * if retval: * raise RuntimeError("C inverse wavelet transform failed") * elif output.dtype == np.float32: # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.float_idwt_axis( data_a, a_info_p, */ } __pyx_L12:; /* "pywt/_extensions/_dwt.pyx":307 * raise RuntimeError("C inverse wavelet transform failed") * IF HAVE_C99_CPLX: * if output.dtype == np.complex128: # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.double_complex_idwt_axis( data_a, a_info_p, */ __pyx_t_15 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_output), __pyx_n_s_dtype); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_complex128); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyObject_RichCompare(__pyx_t_15, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 307, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 307, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_3) { /* "pywt/_extensions/_dwt.pyx":308 * IF HAVE_C99_CPLX: * if output.dtype == np.complex128: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_complex_idwt_axis( data_a, a_info_p, * data_d, d_info_p, */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":309 * if output.dtype == np.complex128: * with nogil: * retval = c_wt.double_complex_idwt_axis( data_a, a_info_p, # <<<<<<<<<<<<<< * data_d, d_info_p, * output.data, output_info, */ __pyx_v_retval = double_complex_idwt_axis(((__pyx_t_double_complex *)__pyx_v_data_a), __pyx_v_a_info_p, ((__pyx_t_double_complex *)__pyx_v_data_d), __pyx_v_d_info_p, ((__pyx_t_double_complex *)__pyx_v_output->data), __pyx_v_output_info, __pyx_v_wavelet->w, __pyx_v_axis, __pyx_v_mode); } /* "pywt/_extensions/_dwt.pyx":308 * IF HAVE_C99_CPLX: * if output.dtype == np.complex128: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_complex_idwt_axis( data_a, a_info_p, * data_d, d_info_p, */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L24; } __pyx_L24:; } } /* "pywt/_extensions/_dwt.pyx":313 * output.data, output_info, * wavelet.w, axis, mode) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError("C inverse wavelet transform failed") * elif output.dtype == np.complex64: */ __pyx_t_3 = (__pyx_v_retval != 0); if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_dwt.pyx":314 * wavelet.w, axis, mode) * if retval: * raise RuntimeError("C inverse wavelet transform failed") # <<<<<<<<<<<<<< * elif output.dtype == np.complex64: * with nogil: */ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(0, 314, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":313 * output.data, output_info, * wavelet.w, axis, mode) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError("C inverse wavelet transform failed") * elif output.dtype == np.complex64: */ } /* "pywt/_extensions/_dwt.pyx":307 * raise RuntimeError("C inverse wavelet transform failed") * IF HAVE_C99_CPLX: * if output.dtype == np.complex128: # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.double_complex_idwt_axis( data_a, a_info_p, */ goto __pyx_L21; } /* "pywt/_extensions/_dwt.pyx":315 * if retval: * raise RuntimeError("C inverse wavelet transform failed") * elif output.dtype == np.complex64: # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.float_complex_idwt_axis( data_a, a_info_p, */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_output), __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_complex64); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyObject_RichCompare(__pyx_t_4, __pyx_t_15, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 315, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 315, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_3) { /* "pywt/_extensions/_dwt.pyx":316 * raise RuntimeError("C inverse wavelet transform failed") * elif output.dtype == np.complex64: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_complex_idwt_axis( data_a, a_info_p, * data_d, d_info_p, */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":317 * elif output.dtype == np.complex64: * with nogil: * retval = c_wt.float_complex_idwt_axis( data_a, a_info_p, # <<<<<<<<<<<<<< * data_d, d_info_p, * output.data, output_info, */ __pyx_v_retval = float_complex_idwt_axis(((__pyx_t_float_complex *)__pyx_v_data_a), __pyx_v_a_info_p, ((__pyx_t_float_complex *)__pyx_v_data_d), __pyx_v_d_info_p, ((__pyx_t_float_complex *)__pyx_v_output->data), __pyx_v_output_info, __pyx_v_wavelet->w, __pyx_v_axis, __pyx_v_mode); } /* "pywt/_extensions/_dwt.pyx":316 * raise RuntimeError("C inverse wavelet transform failed") * elif output.dtype == np.complex64: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_complex_idwt_axis( data_a, a_info_p, * data_d, d_info_p, */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L28; } __pyx_L28:; } } /* "pywt/_extensions/_dwt.pyx":321 * output.data, output_info, * wavelet.w, axis, mode) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError("C inverse wavelet transform failed") * */ __pyx_t_3 = (__pyx_v_retval != 0); if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_dwt.pyx":322 * wavelet.w, axis, mode) * if retval: * raise RuntimeError("C inverse wavelet transform failed") # <<<<<<<<<<<<<< * * if retval == -5: */ __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(0, 322, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":321 * output.data, output_info, * wavelet.w, axis, mode) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError("C inverse wavelet transform failed") * */ } /* "pywt/_extensions/_dwt.pyx":315 * if retval: * raise RuntimeError("C inverse wavelet transform failed") * elif output.dtype == np.complex64: # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.float_complex_idwt_axis( data_a, a_info_p, */ } __pyx_L21:; /* "pywt/_extensions/_dwt.pyx":324 * raise RuntimeError("C inverse wavelet transform failed") * * if retval == -5: # <<<<<<<<<<<<<< * raise TypeError("Array must be floating point, not {}" * .format(output.dtype)) */ __pyx_t_3 = ((__pyx_v_retval == -5L) != 0); if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_dwt.pyx":326 * if retval == -5: * raise TypeError("Array must be floating point, not {}" * .format(output.dtype)) # <<<<<<<<<<<<<< * * return output */ __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Array_must_be_floating_point_not, __pyx_n_s_format); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_output), __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_15))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); } } __pyx_t_6 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; /* "pywt/_extensions/_dwt.pyx":325 * * if retval == -5: * raise TypeError("Array must be floating point, not {}" # <<<<<<<<<<<<<< * .format(output.dtype)) * */ __pyx_t_15 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_Raise(__pyx_t_15, 0, 0, 0); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __PYX_ERR(0, 325, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":324 * raise RuntimeError("C inverse wavelet transform failed") * * if retval == -5: # <<<<<<<<<<<<<< * raise TypeError("Array must be floating point, not {}" * .format(output.dtype)) */ } /* "pywt/_extensions/_dwt.pyx":328 * .format(output.dtype)) * * return output # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_output)); __pyx_r = ((PyObject *)__pyx_v_output); goto __pyx_L0; /* "pywt/_extensions/_dwt.pyx":238 * * * cpdef idwt_axis(np.ndarray coefs_a, np.ndarray coefs_d, # <<<<<<<<<<<<<< * Wavelet wavelet, MODE mode, unsigned int axis=0): * cdef common.ArrayInfo a_info, d_info, output_info */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(((PyObject *)__pyx_t_10)); __PYX_XDEC_MEMVIEW(&__pyx_t_11, 1); __Pyx_XDECREF(__pyx_t_15); __Pyx_AddTraceback("pywt._extensions._dwt.idwt_axis", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_output); __Pyx_XDECREF((PyObject *)__pyx_v_output_dtype); __PYX_XDEC_MEMVIEW(&__pyx_v_input_shape, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_output_shape, 1); __Pyx_XDECREF((PyObject *)__pyx_v_coefs_a); __Pyx_XDECREF((PyObject *)__pyx_v_coefs_d); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_11idwt_axis(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_11idwt_axis(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyArrayObject *__pyx_v_coefs_a = 0; PyArrayObject *__pyx_v_coefs_d = 0; struct WaveletObject *__pyx_v_wavelet = 0; MODE __pyx_v_mode; unsigned int __pyx_v_axis; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("idwt_axis (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_coefs_a,&__pyx_n_s_coefs_d,&__pyx_n_s_wavelet,&__pyx_n_s_mode,&__pyx_n_s_axis,0}; PyObject* values[5] = {0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coefs_a)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coefs_d)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("idwt_axis", 0, 4, 5, 1); __PYX_ERR(0, 238, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wavelet)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("idwt_axis", 0, 4, 5, 2); __PYX_ERR(0, 238, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("idwt_axis", 0, 4, 5, 3); __PYX_ERR(0, 238, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_axis); if (value) { values[4] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "idwt_axis") < 0)) __PYX_ERR(0, 238, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_coefs_a = ((PyArrayObject *)values[0]); __pyx_v_coefs_d = ((PyArrayObject *)values[1]); __pyx_v_wavelet = ((struct WaveletObject *)values[2]); __pyx_v_mode = ((MODE)__Pyx_PyInt_As_MODE(values[3])); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 239, __pyx_L3_error) if (values[4]) { __pyx_v_axis = __Pyx_PyInt_As_unsigned_int(values[4]); if (unlikely((__pyx_v_axis == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 239, __pyx_L3_error) } else { __pyx_v_axis = ((unsigned int)0); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("idwt_axis", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 238, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._dwt.idwt_axis", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_coefs_a), __pyx_ptype_5numpy_ndarray, 1, "coefs_a", 0))) __PYX_ERR(0, 238, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_coefs_d), __pyx_ptype_5numpy_ndarray, 1, "coefs_d", 0))) __PYX_ERR(0, 238, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_wavelet), __pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet, 1, "wavelet", 0))) __PYX_ERR(0, 239, __pyx_L1_error) __pyx_r = __pyx_pf_4pywt_11_extensions_4_dwt_10idwt_axis(__pyx_self, __pyx_v_coefs_a, __pyx_v_coefs_d, __pyx_v_wavelet, __pyx_v_mode, __pyx_v_axis); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_10idwt_axis(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_coefs_a, PyArrayObject *__pyx_v_coefs_d, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode, unsigned int __pyx_v_axis) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; struct __pyx_opt_args_4pywt_11_extensions_4_dwt_idwt_axis __pyx_t_2; __Pyx_RefNannySetupContext("idwt_axis", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_2.__pyx_n = 1; __pyx_t_2.axis = __pyx_v_axis; __pyx_t_1 = __pyx_f_4pywt_11_extensions_4_dwt_idwt_axis(__pyx_v_coefs_a, __pyx_v_coefs_d, __pyx_v_wavelet, __pyx_v_mode, 0, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 238, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._dwt.idwt_axis", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_dwt.pyx":331 * * * cpdef upcoef(bint do_rec_a, cdata_t[::1] coeffs, Wavelet wavelet, int level, # <<<<<<<<<<<<<< * size_t take): * cdef cdata_t[::1] rec */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_13upcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_4pywt_11_extensions_4_dwt_13upcoef = {"upcoef", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_4_dwt_13upcoef, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_13upcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_signatures = 0; PyObject *__pyx_v_args = 0; PyObject *__pyx_v_kwargs = 0; CYTHON_UNUSED PyObject *__pyx_v_defaults = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0}; PyObject* values[4] = {0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 331, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(0, 331, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(0, 331, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 331, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); } __pyx_v_signatures = values[0]; __pyx_v_args = values[1]; __pyx_v_kwargs = values[2]; __pyx_v_defaults = values[3]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 331, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._dwt.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_4_dwt_12upcoef(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_12upcoef(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) { PyObject *__pyx_v_dest_sig = NULL; Py_ssize_t __pyx_v_i; PyTypeObject *__pyx_v_ndarray = 0; __Pyx_memviewslice __pyx_v_memslice; Py_ssize_t __pyx_v_itemsize; CYTHON_UNUSED int __pyx_v_dtype_signed; char __pyx_v_kind; PyObject *__pyx_v_arg = NULL; PyObject *__pyx_v_dtype = NULL; PyObject *__pyx_v_arg_base = NULL; PyObject *__pyx_v_candidates = NULL; PyObject *__pyx_v_sig = NULL; int __pyx_v_match_found; PyObject *__pyx_v_src_sig = NULL; PyObject *__pyx_v_dst_type = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; Py_ssize_t __pyx_t_5; PyObject *__pyx_t_6 = NULL; long __pyx_t_7; __Pyx_memviewslice __pyx_t_8; Py_ssize_t __pyx_t_9; int __pyx_t_10; int __pyx_t_11; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; Py_ssize_t __pyx_t_15; Py_ssize_t __pyx_t_16; Py_ssize_t __pyx_t_17; int __pyx_t_18; __Pyx_RefNannySetupContext("upcoef", 0); __Pyx_INCREF(__pyx_v_kwargs); __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyList_SET_ITEM(__pyx_t_1, 0, Py_None); __pyx_v_dest_sig = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__pyx_v_kwargs != Py_None); __pyx_t_4 = (__pyx_t_3 != 0); if (__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L4_bool_binop_done; } __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 331, __pyx_L1_error) __pyx_t_3 = ((!__pyx_t_4) != 0); __pyx_t_2 = __pyx_t_3; __pyx_L4_bool_binop_done:; if (__pyx_t_2) { __Pyx_INCREF(Py_None); __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None); } __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_itemsize = -1L; if (unlikely(__pyx_v_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 331, __pyx_L1_error) } __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 331, __pyx_L1_error) __pyx_t_2 = ((1 < __pyx_t_5) != 0); if (__pyx_t_2) { if (unlikely(__pyx_v_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 331, __pyx_L1_error) } __pyx_t_1 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 1); __Pyx_INCREF(__pyx_t_1); __pyx_v_arg = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L6; } __pyx_t_3 = (__pyx_v_kwargs != Py_None); __pyx_t_4 = (__pyx_t_3 != 0); if (__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L7_bool_binop_done; } if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(0, 331, __pyx_L1_error) } __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_coeffs, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 331, __pyx_L1_error) __pyx_t_3 = (__pyx_t_4 != 0); __pyx_t_2 = __pyx_t_3; __pyx_L7_bool_binop_done:; if (__pyx_t_2) { if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 331, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_coeffs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_arg = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L6; } /*else*/ { if (unlikely(__pyx_v_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 331, __pyx_L1_error) } __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 331, __pyx_L1_error) __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_int_5); __Pyx_GIVEREF(__pyx_int_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_5); __Pyx_INCREF(__pyx_n_s_s); __Pyx_GIVEREF(__pyx_n_s_s); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(0, 331, __pyx_L1_error) } __pyx_L6:; while (1) { __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None)); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_v_dtype = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L12; } __pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_v_arg_base = __pyx_t_6; __pyx_t_6 = 0; __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_v_dtype = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L13; } /*else*/ { __Pyx_INCREF(Py_None); __pyx_v_dtype = Py_None; } __pyx_L13:; goto __pyx_L12; } /*else*/ { __Pyx_INCREF(Py_None); __pyx_v_dtype = Py_None; } __pyx_L12:; __pyx_v_itemsize = -1L; __pyx_t_2 = (__pyx_v_dtype != Py_None); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_itemsize = __pyx_t_5; __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_kind = __pyx_t_7; __pyx_v_dtype_signed = (__pyx_v_kind == 'i'); switch (__pyx_v_kind) { case 'i': case 'u': break; case 'f': __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0); if (__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L16_bool_binop_done; } __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L16_bool_binop_done:; if (__pyx_t_3) { if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 331, __pyx_L1_error) goto __pyx_L10_break; } __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0); if (__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L19_bool_binop_done; } __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L19_bool_binop_done:; if (__pyx_t_3) { if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 331, __pyx_L1_error) goto __pyx_L10_break; } break; case 'c': __pyx_t_2 = (((sizeof(__pyx_t_float_complex)) == __pyx_v_itemsize) != 0); if (__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L22_bool_binop_done; } __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L22_bool_binop_done:; if (__pyx_t_3) { if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_float_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 331, __pyx_L1_error) goto __pyx_L10_break; } __pyx_t_2 = (((sizeof(__pyx_t_double_complex)) == __pyx_v_itemsize) != 0); if (__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L25_bool_binop_done; } __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L25_bool_binop_done:; if (__pyx_t_3) { if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 331, __pyx_L1_error) goto __pyx_L10_break; } break; case 'O': break; default: break; } } } __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0); if (!__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L28_bool_binop_done; } __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L28_bool_binop_done:; if (__pyx_t_3) { __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(__pyx_v_arg, 0); __pyx_v_memslice = __pyx_t_8; __pyx_t_3 = (__pyx_v_memslice.memview != 0); if (__pyx_t_3) { __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 331, __pyx_L1_error) goto __pyx_L10_break; } /*else*/ { PyErr_Clear(); } } __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0); if (!__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L32_bool_binop_done; } __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L32_bool_binop_done:; if (__pyx_t_3) { __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0); __pyx_v_memslice = __pyx_t_8; __pyx_t_3 = (__pyx_v_memslice.memview != 0); if (__pyx_t_3) { __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 331, __pyx_L1_error) goto __pyx_L10_break; } /*else*/ { PyErr_Clear(); } } __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0); if (!__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L36_bool_binop_done; } __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_float_complex))) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L36_bool_binop_done:; if (__pyx_t_3) { __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_float_complex(__pyx_v_arg, 0); __pyx_v_memslice = __pyx_t_8; __pyx_t_3 = (__pyx_v_memslice.memview != 0); if (__pyx_t_3) { __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_float_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 331, __pyx_L1_error) goto __pyx_L10_break; } /*else*/ { PyErr_Clear(); } } __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0); if (!__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L40_bool_binop_done; } __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_double_complex))) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L40_bool_binop_done:; if (__pyx_t_3) { __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_double_complex(__pyx_v_arg, 0); __pyx_v_memslice = __pyx_t_8; __pyx_t_3 = (__pyx_v_memslice.memview != 0); if (__pyx_t_3) { __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 331, __pyx_L1_error) goto __pyx_L10_break; } /*else*/ { PyErr_Clear(); } } if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 331, __pyx_L1_error) goto __pyx_L10_break; } __pyx_L10_break:; __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_v_candidates = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0; __pyx_t_5 = 0; if (unlikely(__pyx_v_signatures == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(0, 331, __pyx_L1_error) } __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = __pyx_t_1; __pyx_t_1 = 0; while (1) { __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_9, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_10); if (unlikely(__pyx_t_11 == 0)) break; if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1); __pyx_t_1 = 0; __pyx_v_match_found = 0; __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); } } __pyx_t_12 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__3); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); } } __pyx_t_1 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_12, __pyx_kp_s__4) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__4); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_15 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 331, __pyx_L1_error) __pyx_t_16 = __pyx_t_15; for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) { __pyx_v_i = __pyx_t_17; __pyx_t_1 = PyList_GET_ITEM(__pyx_v_dest_sig, __pyx_v_i); __Pyx_INCREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__pyx_v_dst_type != Py_None); __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_13 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (__pyx_t_2) { __pyx_v_match_found = 1; goto __pyx_L48; } /*else*/ { __pyx_v_match_found = 0; goto __pyx_L46_break; } __pyx_L48:; } } __pyx_L46_break:; __pyx_t_2 = (__pyx_v_match_found != 0); if (__pyx_t_2) { __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 331, __pyx_L1_error) } } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_candidates) != 0); __pyx_t_3 = ((!__pyx_t_2) != 0); if (__pyx_t_3) { __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(0, 331, __pyx_L1_error) } __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 331, __pyx_L1_error) __pyx_t_3 = ((__pyx_t_9 > 1) != 0); if (__pyx_t_3) { __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(0, 331, __pyx_L1_error) } /*else*/ { __Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_signatures == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 331, __pyx_L1_error) } __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), PyList_GET_ITEM(__pyx_v_candidates, 0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0; } /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_12); __Pyx_XDECREF(__pyx_t_13); __Pyx_XDECREF(__pyx_t_14); __Pyx_AddTraceback("pywt._extensions._dwt.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_dest_sig); __Pyx_XDECREF(__pyx_v_ndarray); __Pyx_XDECREF(__pyx_v_arg); __Pyx_XDECREF(__pyx_v_dtype); __Pyx_XDECREF(__pyx_v_arg_base); __Pyx_XDECREF(__pyx_v_candidates); __Pyx_XDECREF(__pyx_v_sig); __Pyx_XDECREF(__pyx_v_src_sig); __Pyx_XDECREF(__pyx_v_dst_type); __Pyx_XDECREF(__pyx_v_kwargs); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_27__pyx_fuse_0upcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_13upcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_fuse_0__pyx_f_4pywt_11_extensions_4_dwt_upcoef(int __pyx_v_do_rec_a, __Pyx_memviewslice __pyx_v_coeffs, struct WaveletObject *__pyx_v_wavelet, int __pyx_v_level, size_t __pyx_v_take, CYTHON_UNUSED int __pyx_skip_dispatch) { __Pyx_memviewslice __pyx_v_rec = { 0, 0, { 0 }, { 0 }, { 0 } }; int __pyx_v_i; int __pyx_v_retval; size_t __pyx_v_rec_len; size_t __pyx_v_left_bound; size_t __pyx_v_right_bound; size_t __pyx_v_coeffs_size; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_t_3; int __pyx_t_4; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; size_t __pyx_t_7; size_t __pyx_t_8; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; __Pyx_memviewslice __pyx_t_12 = { 0, 0, { 0 }, { 0 }, { 0 } }; int __pyx_t_13; Py_ssize_t __pyx_t_14; Py_ssize_t __pyx_t_15; Py_ssize_t __pyx_t_16; Py_ssize_t __pyx_t_17; __Pyx_RefNannySetupContext("__pyx_fuse_0upcoef", 0); __PYX_INC_MEMVIEW(&__pyx_v_coeffs, 1); /* "pywt/_extensions/_dwt.pyx":337 * cdef size_t rec_len, left_bound, right_bound, coeffs_size * * rec_len = 0 # <<<<<<<<<<<<<< * * if level < 1: */ __pyx_v_rec_len = 0; /* "pywt/_extensions/_dwt.pyx":339 * rec_len = 0 * * if level < 1: # <<<<<<<<<<<<<< * raise ValueError("Value of level must be greater than 0.") * */ __pyx_t_1 = ((__pyx_v_level < 1) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":340 * * if level < 1: * raise ValueError("Value of level must be greater than 0.") # <<<<<<<<<<<<<< * * for i in range(level): */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 340, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":339 * rec_len = 0 * * if level < 1: # <<<<<<<<<<<<<< * raise ValueError("Value of level must be greater than 0.") * */ } /* "pywt/_extensions/_dwt.pyx":342 * raise ValueError("Value of level must be greater than 0.") * * for i in range(level): # <<<<<<<<<<<<<< * coeffs_size = coeffs.size * # output len */ __pyx_t_3 = __pyx_v_level; __pyx_t_4 = __pyx_t_3; for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_v_i = __pyx_t_5; /* "pywt/_extensions/_dwt.pyx":343 * * for i in range(level): * coeffs_size = coeffs.size # <<<<<<<<<<<<<< * # output len * rec_len = common.reconstruction_buffer_length(coeffs.size, wavelet.dec_len) */ __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_coeffs, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = __Pyx_PyInt_As_size_t(__pyx_t_6); if (unlikely((__pyx_t_7 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_coeffs_size = __pyx_t_7; /* "pywt/_extensions/_dwt.pyx":345 * coeffs_size = coeffs.size * # output len * rec_len = common.reconstruction_buffer_length(coeffs.size, wavelet.dec_len) # <<<<<<<<<<<<<< * if rec_len < 1: * raise RuntimeError("Invalid output length.") */ __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_coeffs, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_7 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_dec_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_8 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_rec_len = reconstruction_buffer_length(__pyx_t_7, __pyx_t_8); /* "pywt/_extensions/_dwt.pyx":346 * # output len * rec_len = common.reconstruction_buffer_length(coeffs.size, wavelet.dec_len) * if rec_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ __pyx_t_1 = ((__pyx_v_rec_len < 1) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":347 * rec_len = common.reconstruction_buffer_length(coeffs.size, wavelet.dec_len) * if rec_len < 1: * raise RuntimeError("Invalid output length.") # <<<<<<<<<<<<<< * * # To mirror multi-level wavelet reconstruction behaviour, when detail */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 347, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":346 * # output len * rec_len = common.reconstruction_buffer_length(coeffs.size, wavelet.dec_len) * if rec_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ } /* "pywt/_extensions/_dwt.pyx":368 * raise RuntimeError("C rec_d failed.") * elif cdata_t is np.float32_t: * rec = np.zeros(rec_len, dtype=np.float32) # <<<<<<<<<<<<<< * if do_rec_a or i > 0: * with nogil: */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_rec_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_float32); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_11) < 0) __PYX_ERR(0, 368, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 368, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_12 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_11, PyBUF_WRITABLE); if (unlikely(!__pyx_t_12.memview)) __PYX_ERR(0, 368, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_XDEC_MEMVIEW(&__pyx_v_rec, 1); __pyx_v_rec = __pyx_t_12; __pyx_t_12.memview = NULL; __pyx_t_12.data = NULL; /* "pywt/_extensions/_dwt.pyx":369 * elif cdata_t is np.float32_t: * rec = np.zeros(rec_len, dtype=np.float32) * if do_rec_a or i > 0: # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.float_rec_a(&coeffs[0], coeffs_size, wavelet.w, */ __pyx_t_13 = (__pyx_v_do_rec_a != 0); if (!__pyx_t_13) { } else { __pyx_t_1 = __pyx_t_13; goto __pyx_L8_bool_binop_done; } __pyx_t_13 = ((__pyx_v_i > 0) != 0); __pyx_t_1 = __pyx_t_13; __pyx_L8_bool_binop_done:; if (__pyx_t_1) { /* "pywt/_extensions/_dwt.pyx":370 * rec = np.zeros(rec_len, dtype=np.float32) * if do_rec_a or i > 0: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_rec_a(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":371 * if do_rec_a or i > 0: * with nogil: * retval = c_wt.float_rec_a(&coeffs[0], coeffs_size, wavelet.w, # <<<<<<<<<<<<<< * &rec[0], rec_len) * if retval < 0: */ __pyx_t_14 = 0; /* "pywt/_extensions/_dwt.pyx":372 * with nogil: * retval = c_wt.float_rec_a(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) # <<<<<<<<<<<<<< * if retval < 0: * raise RuntimeError("C rec_a failed.") */ __pyx_t_15 = 0; /* "pywt/_extensions/_dwt.pyx":371 * if do_rec_a or i > 0: * with nogil: * retval = c_wt.float_rec_a(&coeffs[0], coeffs_size, wavelet.w, # <<<<<<<<<<<<<< * &rec[0], rec_len) * if retval < 0: */ __pyx_v_retval = float_rec_a((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_coeffs.data) + __pyx_t_14)) )))), __pyx_v_coeffs_size, __pyx_v_wavelet->w, (&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_rec.data) + __pyx_t_15)) )))), __pyx_v_rec_len); } /* "pywt/_extensions/_dwt.pyx":370 * rec = np.zeros(rec_len, dtype=np.float32) * if do_rec_a or i > 0: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_rec_a(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L14; } __pyx_L14:; } } /* "pywt/_extensions/_dwt.pyx":373 * retval = c_wt.float_rec_a(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C rec_a failed.") * else: */ __pyx_t_1 = ((__pyx_v_retval < 0) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":374 * &rec[0], rec_len) * if retval < 0: * raise RuntimeError("C rec_a failed.") # <<<<<<<<<<<<<< * else: * with nogil: */ __pyx_t_11 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_Raise(__pyx_t_11, 0, 0, 0); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_ERR(0, 374, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":373 * retval = c_wt.float_rec_a(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C rec_a failed.") * else: */ } /* "pywt/_extensions/_dwt.pyx":369 * elif cdata_t is np.float32_t: * rec = np.zeros(rec_len, dtype=np.float32) * if do_rec_a or i > 0: # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.float_rec_a(&coeffs[0], coeffs_size, wavelet.w, */ goto __pyx_L7; } /* "pywt/_extensions/_dwt.pyx":376 * raise RuntimeError("C rec_a failed.") * else: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_rec_d(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) */ /*else*/ { { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":377 * else: * with nogil: * retval = c_wt.float_rec_d(&coeffs[0], coeffs_size, wavelet.w, # <<<<<<<<<<<<<< * &rec[0], rec_len) * if retval < 0: */ __pyx_t_16 = 0; /* "pywt/_extensions/_dwt.pyx":378 * with nogil: * retval = c_wt.float_rec_d(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) # <<<<<<<<<<<<<< * if retval < 0: * raise RuntimeError("C rec_d failed.") */ __pyx_t_17 = 0; /* "pywt/_extensions/_dwt.pyx":377 * else: * with nogil: * retval = c_wt.float_rec_d(&coeffs[0], coeffs_size, wavelet.w, # <<<<<<<<<<<<<< * &rec[0], rec_len) * if retval < 0: */ __pyx_v_retval = float_rec_d((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_coeffs.data) + __pyx_t_16)) )))), __pyx_v_coeffs_size, __pyx_v_wavelet->w, (&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_rec.data) + __pyx_t_17)) )))), __pyx_v_rec_len); } /* "pywt/_extensions/_dwt.pyx":376 * raise RuntimeError("C rec_a failed.") * else: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_rec_d(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L20; } __pyx_L20:; } } /* "pywt/_extensions/_dwt.pyx":379 * retval = c_wt.float_rec_d(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C rec_d failed.") * IF HAVE_C99_CPLX: */ __pyx_t_1 = ((__pyx_v_retval < 0) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":380 * &rec[0], rec_len) * if retval < 0: * raise RuntimeError("C rec_d failed.") # <<<<<<<<<<<<<< * IF HAVE_C99_CPLX: * if cdata_t is np.complex128_t: */ __pyx_t_11 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_Raise(__pyx_t_11, 0, 0, 0); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_ERR(0, 380, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":379 * retval = c_wt.float_rec_d(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C rec_d failed.") * IF HAVE_C99_CPLX: */ } } __pyx_L7:; /* "pywt/_extensions/_dwt.pyx":411 * raise RuntimeError("C rec_d failed.") * # TODO: this algorithm needs some explaining * coeffs = rec # <<<<<<<<<<<<<< * * if take > 0 and take < rec_len: */ __PYX_XDEC_MEMVIEW(&__pyx_v_coeffs, 1); __PYX_INC_MEMVIEW(&__pyx_v_rec, 0); __pyx_v_coeffs = __pyx_v_rec; } /* "pywt/_extensions/_dwt.pyx":413 * coeffs = rec * * if take > 0 and take < rec_len: # <<<<<<<<<<<<<< * left_bound = right_bound = (rec_len-take) // 2 * if (rec_len-take) % 2: */ __pyx_t_13 = ((__pyx_v_take > 0) != 0); if (__pyx_t_13) { } else { __pyx_t_1 = __pyx_t_13; goto __pyx_L23_bool_binop_done; } __pyx_t_13 = ((__pyx_v_take < __pyx_v_rec_len) != 0); __pyx_t_1 = __pyx_t_13; __pyx_L23_bool_binop_done:; if (__pyx_t_1) { /* "pywt/_extensions/_dwt.pyx":414 * * if take > 0 and take < rec_len: * left_bound = right_bound = (rec_len-take) // 2 # <<<<<<<<<<<<<< * if (rec_len-take) % 2: * # right_bound must never be zero for indexing to work */ __pyx_t_8 = ((__pyx_v_rec_len - __pyx_v_take) / 2); __pyx_v_left_bound = __pyx_t_8; __pyx_v_right_bound = __pyx_t_8; /* "pywt/_extensions/_dwt.pyx":415 * if take > 0 and take < rec_len: * left_bound = right_bound = (rec_len-take) // 2 * if (rec_len-take) % 2: # <<<<<<<<<<<<<< * # right_bound must never be zero for indexing to work * right_bound = right_bound + 1 */ __pyx_t_1 = (((__pyx_v_rec_len - __pyx_v_take) % 2) != 0); if (__pyx_t_1) { /* "pywt/_extensions/_dwt.pyx":417 * if (rec_len-take) % 2: * # right_bound must never be zero for indexing to work * right_bound = right_bound + 1 # <<<<<<<<<<<<<< * * return rec[left_bound:-right_bound] */ __pyx_v_right_bound = (__pyx_v_right_bound + 1); /* "pywt/_extensions/_dwt.pyx":415 * if take > 0 and take < rec_len: * left_bound = right_bound = (rec_len-take) // 2 * if (rec_len-take) % 2: # <<<<<<<<<<<<<< * # right_bound must never be zero for indexing to work * right_bound = right_bound + 1 */ } /* "pywt/_extensions/_dwt.pyx":419 * right_bound = right_bound + 1 * * return rec[left_bound:-right_bound] # <<<<<<<<<<<<<< * * return rec */ __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_rec.memview)) { __Pyx_RaiseUnboundLocalError("rec"); __PYX_ERR(0, 419, __pyx_L1_error) } __pyx_t_12.data = __pyx_v_rec.data; __pyx_t_12.memview = __pyx_v_rec.memview; __PYX_INC_MEMVIEW(&__pyx_t_12, 0); __pyx_t_3 = -1; if (unlikely(__pyx_memoryview_slice_memviewslice( &__pyx_t_12, __pyx_v_rec.shape[0], __pyx_v_rec.strides[0], __pyx_v_rec.suboffsets[0], 0, 0, &__pyx_t_3, __pyx_v_left_bound, (-__pyx_v_right_bound), 0, 1, 1, 0, 1) < 0)) { __PYX_ERR(0, 419, __pyx_L1_error) } __pyx_t_11 = __pyx_memoryview_fromslice(__pyx_t_12, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __PYX_XDEC_MEMVIEW(&__pyx_t_12, 1); __pyx_t_12.memview = NULL; __pyx_t_12.data = NULL; __pyx_r = __pyx_t_11; __pyx_t_11 = 0; goto __pyx_L0; /* "pywt/_extensions/_dwt.pyx":413 * coeffs = rec * * if take > 0 and take < rec_len: # <<<<<<<<<<<<<< * left_bound = right_bound = (rec_len-take) // 2 * if (rec_len-take) % 2: */ } /* "pywt/_extensions/_dwt.pyx":421 * return rec[left_bound:-right_bound] * * return rec # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_rec.memview)) { __Pyx_RaiseUnboundLocalError("rec"); __PYX_ERR(0, 421, __pyx_L1_error) } __pyx_t_11 = __pyx_memoryview_fromslice(__pyx_v_rec, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 421, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_r = __pyx_t_11; __pyx_t_11 = 0; goto __pyx_L0; /* "pywt/_extensions/_dwt.pyx":331 * * * cpdef upcoef(bint do_rec_a, cdata_t[::1] coeffs, Wavelet wavelet, int level, # <<<<<<<<<<<<<< * size_t take): * cdef cdata_t[::1] rec */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __PYX_XDEC_MEMVIEW(&__pyx_t_12, 1); __Pyx_AddTraceback("pywt._extensions._dwt.upcoef", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_rec, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_coeffs, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_27__pyx_fuse_0upcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_0__pyx_mdef_4pywt_11_extensions_4_dwt_27__pyx_fuse_0upcoef = {"__pyx_fuse_0upcoef", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_4_dwt_27__pyx_fuse_0upcoef, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_27__pyx_fuse_0upcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { int __pyx_v_do_rec_a; __Pyx_memviewslice __pyx_v_coeffs = { 0, 0, { 0 }, { 0 }, { 0 } }; struct WaveletObject *__pyx_v_wavelet = 0; int __pyx_v_level; size_t __pyx_v_take; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_0upcoef (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_do_rec_a,&__pyx_n_s_coeffs,&__pyx_n_s_wavelet,&__pyx_n_s_level,&__pyx_n_s_take,0}; PyObject* values[5] = {0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_do_rec_a)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coeffs)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0upcoef", 1, 5, 5, 1); __PYX_ERR(0, 331, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wavelet)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0upcoef", 1, 5, 5, 2); __PYX_ERR(0, 331, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0upcoef", 1, 5, 5, 3); __PYX_ERR(0, 331, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_take)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0upcoef", 1, 5, 5, 4); __PYX_ERR(0, 331, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0upcoef") < 0)) __PYX_ERR(0, 331, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); } __pyx_v_do_rec_a = __Pyx_PyObject_IsTrue(values[0]); if (unlikely((__pyx_v_do_rec_a == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 331, __pyx_L3_error) __pyx_v_coeffs = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_coeffs.memview)) __PYX_ERR(0, 331, __pyx_L3_error) __pyx_v_wavelet = ((struct WaveletObject *)values[2]); __pyx_v_level = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_level == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 331, __pyx_L3_error) __pyx_v_take = __Pyx_PyInt_As_size_t(values[4]); if (unlikely((__pyx_v_take == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 332, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0upcoef", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 331, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._dwt.__pyx_fuse_0upcoef", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_wavelet), __pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet, 1, "wavelet", 0))) __PYX_ERR(0, 331, __pyx_L1_error) __pyx_r = __pyx_pf_4pywt_11_extensions_4_dwt_26__pyx_fuse_0upcoef(__pyx_self, __pyx_v_do_rec_a, __pyx_v_coeffs, __pyx_v_wavelet, __pyx_v_level, __pyx_v_take); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_26__pyx_fuse_0upcoef(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_do_rec_a, __Pyx_memviewslice __pyx_v_coeffs, struct WaveletObject *__pyx_v_wavelet, int __pyx_v_level, size_t __pyx_v_take) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__pyx_fuse_0upcoef", 0); __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_coeffs.memview)) { __Pyx_RaiseUnboundLocalError("coeffs"); __PYX_ERR(0, 331, __pyx_L1_error) } __pyx_t_1 = __pyx_fuse_0__pyx_f_4pywt_11_extensions_4_dwt_upcoef(__pyx_v_do_rec_a, __pyx_v_coeffs, __pyx_v_wavelet, __pyx_v_level, __pyx_v_take, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._dwt.__pyx_fuse_0upcoef", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_coeffs, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_29__pyx_fuse_1upcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_13upcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_fuse_1__pyx_f_4pywt_11_extensions_4_dwt_upcoef(int __pyx_v_do_rec_a, __Pyx_memviewslice __pyx_v_coeffs, struct WaveletObject *__pyx_v_wavelet, int __pyx_v_level, size_t __pyx_v_take, CYTHON_UNUSED int __pyx_skip_dispatch) { __Pyx_memviewslice __pyx_v_rec = { 0, 0, { 0 }, { 0 }, { 0 } }; int __pyx_v_i; int __pyx_v_retval; size_t __pyx_v_rec_len; size_t __pyx_v_left_bound; size_t __pyx_v_right_bound; size_t __pyx_v_coeffs_size; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_t_3; int __pyx_t_4; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; size_t __pyx_t_7; size_t __pyx_t_8; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; __Pyx_memviewslice __pyx_t_12 = { 0, 0, { 0 }, { 0 }, { 0 } }; int __pyx_t_13; Py_ssize_t __pyx_t_14; Py_ssize_t __pyx_t_15; Py_ssize_t __pyx_t_16; Py_ssize_t __pyx_t_17; __Pyx_RefNannySetupContext("__pyx_fuse_1upcoef", 0); __PYX_INC_MEMVIEW(&__pyx_v_coeffs, 1); /* "pywt/_extensions/_dwt.pyx":337 * cdef size_t rec_len, left_bound, right_bound, coeffs_size * * rec_len = 0 # <<<<<<<<<<<<<< * * if level < 1: */ __pyx_v_rec_len = 0; /* "pywt/_extensions/_dwt.pyx":339 * rec_len = 0 * * if level < 1: # <<<<<<<<<<<<<< * raise ValueError("Value of level must be greater than 0.") * */ __pyx_t_1 = ((__pyx_v_level < 1) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":340 * * if level < 1: * raise ValueError("Value of level must be greater than 0.") # <<<<<<<<<<<<<< * * for i in range(level): */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 340, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":339 * rec_len = 0 * * if level < 1: # <<<<<<<<<<<<<< * raise ValueError("Value of level must be greater than 0.") * */ } /* "pywt/_extensions/_dwt.pyx":342 * raise ValueError("Value of level must be greater than 0.") * * for i in range(level): # <<<<<<<<<<<<<< * coeffs_size = coeffs.size * # output len */ __pyx_t_3 = __pyx_v_level; __pyx_t_4 = __pyx_t_3; for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_v_i = __pyx_t_5; /* "pywt/_extensions/_dwt.pyx":343 * * for i in range(level): * coeffs_size = coeffs.size # <<<<<<<<<<<<<< * # output len * rec_len = common.reconstruction_buffer_length(coeffs.size, wavelet.dec_len) */ __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_coeffs, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = __Pyx_PyInt_As_size_t(__pyx_t_6); if (unlikely((__pyx_t_7 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_coeffs_size = __pyx_t_7; /* "pywt/_extensions/_dwt.pyx":345 * coeffs_size = coeffs.size * # output len * rec_len = common.reconstruction_buffer_length(coeffs.size, wavelet.dec_len) # <<<<<<<<<<<<<< * if rec_len < 1: * raise RuntimeError("Invalid output length.") */ __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_coeffs, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_7 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_dec_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_8 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_rec_len = reconstruction_buffer_length(__pyx_t_7, __pyx_t_8); /* "pywt/_extensions/_dwt.pyx":346 * # output len * rec_len = common.reconstruction_buffer_length(coeffs.size, wavelet.dec_len) * if rec_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ __pyx_t_1 = ((__pyx_v_rec_len < 1) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":347 * rec_len = common.reconstruction_buffer_length(coeffs.size, wavelet.dec_len) * if rec_len < 1: * raise RuntimeError("Invalid output length.") # <<<<<<<<<<<<<< * * # To mirror multi-level wavelet reconstruction behaviour, when detail */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 347, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":346 * # output len * rec_len = common.reconstruction_buffer_length(coeffs.size, wavelet.dec_len) * if rec_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ } /* "pywt/_extensions/_dwt.pyx":354 * # level. Subsequent levels apply the reconstruction filter. * if cdata_t is np.float64_t: * rec = np.zeros(rec_len, dtype=np.float64) # <<<<<<<<<<<<<< * if do_rec_a or i > 0: * with nogil: */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_rec_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_float64); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_11) < 0) __PYX_ERR(0, 354, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 354, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_12 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_11, PyBUF_WRITABLE); if (unlikely(!__pyx_t_12.memview)) __PYX_ERR(0, 354, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_XDEC_MEMVIEW(&__pyx_v_rec, 1); __pyx_v_rec = __pyx_t_12; __pyx_t_12.memview = NULL; __pyx_t_12.data = NULL; /* "pywt/_extensions/_dwt.pyx":355 * if cdata_t is np.float64_t: * rec = np.zeros(rec_len, dtype=np.float64) * if do_rec_a or i > 0: # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.double_rec_a(&coeffs[0], coeffs_size, wavelet.w, */ __pyx_t_13 = (__pyx_v_do_rec_a != 0); if (!__pyx_t_13) { } else { __pyx_t_1 = __pyx_t_13; goto __pyx_L8_bool_binop_done; } __pyx_t_13 = ((__pyx_v_i > 0) != 0); __pyx_t_1 = __pyx_t_13; __pyx_L8_bool_binop_done:; if (__pyx_t_1) { /* "pywt/_extensions/_dwt.pyx":356 * rec = np.zeros(rec_len, dtype=np.float64) * if do_rec_a or i > 0: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_rec_a(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":357 * if do_rec_a or i > 0: * with nogil: * retval = c_wt.double_rec_a(&coeffs[0], coeffs_size, wavelet.w, # <<<<<<<<<<<<<< * &rec[0], rec_len) * if retval < 0: */ __pyx_t_14 = 0; /* "pywt/_extensions/_dwt.pyx":358 * with nogil: * retval = c_wt.double_rec_a(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) # <<<<<<<<<<<<<< * if retval < 0: * raise RuntimeError("C rec_a failed.") */ __pyx_t_15 = 0; /* "pywt/_extensions/_dwt.pyx":357 * if do_rec_a or i > 0: * with nogil: * retval = c_wt.double_rec_a(&coeffs[0], coeffs_size, wavelet.w, # <<<<<<<<<<<<<< * &rec[0], rec_len) * if retval < 0: */ __pyx_v_retval = double_rec_a((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_coeffs.data) + __pyx_t_14)) )))), __pyx_v_coeffs_size, __pyx_v_wavelet->w, (&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_rec.data) + __pyx_t_15)) )))), __pyx_v_rec_len); } /* "pywt/_extensions/_dwt.pyx":356 * rec = np.zeros(rec_len, dtype=np.float64) * if do_rec_a or i > 0: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_rec_a(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L14; } __pyx_L14:; } } /* "pywt/_extensions/_dwt.pyx":359 * retval = c_wt.double_rec_a(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C rec_a failed.") * else: */ __pyx_t_1 = ((__pyx_v_retval < 0) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":360 * &rec[0], rec_len) * if retval < 0: * raise RuntimeError("C rec_a failed.") # <<<<<<<<<<<<<< * else: * with nogil: */ __pyx_t_11 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 360, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_Raise(__pyx_t_11, 0, 0, 0); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_ERR(0, 360, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":359 * retval = c_wt.double_rec_a(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C rec_a failed.") * else: */ } /* "pywt/_extensions/_dwt.pyx":355 * if cdata_t is np.float64_t: * rec = np.zeros(rec_len, dtype=np.float64) * if do_rec_a or i > 0: # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.double_rec_a(&coeffs[0], coeffs_size, wavelet.w, */ goto __pyx_L7; } /* "pywt/_extensions/_dwt.pyx":362 * raise RuntimeError("C rec_a failed.") * else: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_rec_d(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) */ /*else*/ { { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":363 * else: * with nogil: * retval = c_wt.double_rec_d(&coeffs[0], coeffs_size, wavelet.w, # <<<<<<<<<<<<<< * &rec[0], rec_len) * if retval < 0: */ __pyx_t_16 = 0; /* "pywt/_extensions/_dwt.pyx":364 * with nogil: * retval = c_wt.double_rec_d(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) # <<<<<<<<<<<<<< * if retval < 0: * raise RuntimeError("C rec_d failed.") */ __pyx_t_17 = 0; /* "pywt/_extensions/_dwt.pyx":363 * else: * with nogil: * retval = c_wt.double_rec_d(&coeffs[0], coeffs_size, wavelet.w, # <<<<<<<<<<<<<< * &rec[0], rec_len) * if retval < 0: */ __pyx_v_retval = double_rec_d((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_coeffs.data) + __pyx_t_16)) )))), __pyx_v_coeffs_size, __pyx_v_wavelet->w, (&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_rec.data) + __pyx_t_17)) )))), __pyx_v_rec_len); } /* "pywt/_extensions/_dwt.pyx":362 * raise RuntimeError("C rec_a failed.") * else: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_rec_d(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L20; } __pyx_L20:; } } /* "pywt/_extensions/_dwt.pyx":365 * retval = c_wt.double_rec_d(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C rec_d failed.") * elif cdata_t is np.float32_t: */ __pyx_t_1 = ((__pyx_v_retval < 0) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":366 * &rec[0], rec_len) * if retval < 0: * raise RuntimeError("C rec_d failed.") # <<<<<<<<<<<<<< * elif cdata_t is np.float32_t: * rec = np.zeros(rec_len, dtype=np.float32) */ __pyx_t_11 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_Raise(__pyx_t_11, 0, 0, 0); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_ERR(0, 366, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":365 * retval = c_wt.double_rec_d(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C rec_d failed.") * elif cdata_t is np.float32_t: */ } } __pyx_L7:; /* "pywt/_extensions/_dwt.pyx":411 * raise RuntimeError("C rec_d failed.") * # TODO: this algorithm needs some explaining * coeffs = rec # <<<<<<<<<<<<<< * * if take > 0 and take < rec_len: */ __PYX_XDEC_MEMVIEW(&__pyx_v_coeffs, 1); __PYX_INC_MEMVIEW(&__pyx_v_rec, 0); __pyx_v_coeffs = __pyx_v_rec; } /* "pywt/_extensions/_dwt.pyx":413 * coeffs = rec * * if take > 0 and take < rec_len: # <<<<<<<<<<<<<< * left_bound = right_bound = (rec_len-take) // 2 * if (rec_len-take) % 2: */ __pyx_t_13 = ((__pyx_v_take > 0) != 0); if (__pyx_t_13) { } else { __pyx_t_1 = __pyx_t_13; goto __pyx_L23_bool_binop_done; } __pyx_t_13 = ((__pyx_v_take < __pyx_v_rec_len) != 0); __pyx_t_1 = __pyx_t_13; __pyx_L23_bool_binop_done:; if (__pyx_t_1) { /* "pywt/_extensions/_dwt.pyx":414 * * if take > 0 and take < rec_len: * left_bound = right_bound = (rec_len-take) // 2 # <<<<<<<<<<<<<< * if (rec_len-take) % 2: * # right_bound must never be zero for indexing to work */ __pyx_t_8 = ((__pyx_v_rec_len - __pyx_v_take) / 2); __pyx_v_left_bound = __pyx_t_8; __pyx_v_right_bound = __pyx_t_8; /* "pywt/_extensions/_dwt.pyx":415 * if take > 0 and take < rec_len: * left_bound = right_bound = (rec_len-take) // 2 * if (rec_len-take) % 2: # <<<<<<<<<<<<<< * # right_bound must never be zero for indexing to work * right_bound = right_bound + 1 */ __pyx_t_1 = (((__pyx_v_rec_len - __pyx_v_take) % 2) != 0); if (__pyx_t_1) { /* "pywt/_extensions/_dwt.pyx":417 * if (rec_len-take) % 2: * # right_bound must never be zero for indexing to work * right_bound = right_bound + 1 # <<<<<<<<<<<<<< * * return rec[left_bound:-right_bound] */ __pyx_v_right_bound = (__pyx_v_right_bound + 1); /* "pywt/_extensions/_dwt.pyx":415 * if take > 0 and take < rec_len: * left_bound = right_bound = (rec_len-take) // 2 * if (rec_len-take) % 2: # <<<<<<<<<<<<<< * # right_bound must never be zero for indexing to work * right_bound = right_bound + 1 */ } /* "pywt/_extensions/_dwt.pyx":419 * right_bound = right_bound + 1 * * return rec[left_bound:-right_bound] # <<<<<<<<<<<<<< * * return rec */ __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_rec.memview)) { __Pyx_RaiseUnboundLocalError("rec"); __PYX_ERR(0, 419, __pyx_L1_error) } __pyx_t_12.data = __pyx_v_rec.data; __pyx_t_12.memview = __pyx_v_rec.memview; __PYX_INC_MEMVIEW(&__pyx_t_12, 0); __pyx_t_3 = -1; if (unlikely(__pyx_memoryview_slice_memviewslice( &__pyx_t_12, __pyx_v_rec.shape[0], __pyx_v_rec.strides[0], __pyx_v_rec.suboffsets[0], 0, 0, &__pyx_t_3, __pyx_v_left_bound, (-__pyx_v_right_bound), 0, 1, 1, 0, 1) < 0)) { __PYX_ERR(0, 419, __pyx_L1_error) } __pyx_t_11 = __pyx_memoryview_fromslice(__pyx_t_12, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __PYX_XDEC_MEMVIEW(&__pyx_t_12, 1); __pyx_t_12.memview = NULL; __pyx_t_12.data = NULL; __pyx_r = __pyx_t_11; __pyx_t_11 = 0; goto __pyx_L0; /* "pywt/_extensions/_dwt.pyx":413 * coeffs = rec * * if take > 0 and take < rec_len: # <<<<<<<<<<<<<< * left_bound = right_bound = (rec_len-take) // 2 * if (rec_len-take) % 2: */ } /* "pywt/_extensions/_dwt.pyx":421 * return rec[left_bound:-right_bound] * * return rec # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_rec.memview)) { __Pyx_RaiseUnboundLocalError("rec"); __PYX_ERR(0, 421, __pyx_L1_error) } __pyx_t_11 = __pyx_memoryview_fromslice(__pyx_v_rec, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 421, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_r = __pyx_t_11; __pyx_t_11 = 0; goto __pyx_L0; /* "pywt/_extensions/_dwt.pyx":331 * * * cpdef upcoef(bint do_rec_a, cdata_t[::1] coeffs, Wavelet wavelet, int level, # <<<<<<<<<<<<<< * size_t take): * cdef cdata_t[::1] rec */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __PYX_XDEC_MEMVIEW(&__pyx_t_12, 1); __Pyx_AddTraceback("pywt._extensions._dwt.upcoef", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_rec, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_coeffs, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_29__pyx_fuse_1upcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_1__pyx_mdef_4pywt_11_extensions_4_dwt_29__pyx_fuse_1upcoef = {"__pyx_fuse_1upcoef", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_4_dwt_29__pyx_fuse_1upcoef, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_29__pyx_fuse_1upcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { int __pyx_v_do_rec_a; __Pyx_memviewslice __pyx_v_coeffs = { 0, 0, { 0 }, { 0 }, { 0 } }; struct WaveletObject *__pyx_v_wavelet = 0; int __pyx_v_level; size_t __pyx_v_take; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_1upcoef (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_do_rec_a,&__pyx_n_s_coeffs,&__pyx_n_s_wavelet,&__pyx_n_s_level,&__pyx_n_s_take,0}; PyObject* values[5] = {0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_do_rec_a)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coeffs)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1upcoef", 1, 5, 5, 1); __PYX_ERR(0, 331, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wavelet)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1upcoef", 1, 5, 5, 2); __PYX_ERR(0, 331, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1upcoef", 1, 5, 5, 3); __PYX_ERR(0, 331, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_take)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1upcoef", 1, 5, 5, 4); __PYX_ERR(0, 331, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1upcoef") < 0)) __PYX_ERR(0, 331, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); } __pyx_v_do_rec_a = __Pyx_PyObject_IsTrue(values[0]); if (unlikely((__pyx_v_do_rec_a == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 331, __pyx_L3_error) __pyx_v_coeffs = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_coeffs.memview)) __PYX_ERR(0, 331, __pyx_L3_error) __pyx_v_wavelet = ((struct WaveletObject *)values[2]); __pyx_v_level = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_level == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 331, __pyx_L3_error) __pyx_v_take = __Pyx_PyInt_As_size_t(values[4]); if (unlikely((__pyx_v_take == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 332, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1upcoef", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 331, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._dwt.__pyx_fuse_1upcoef", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_wavelet), __pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet, 1, "wavelet", 0))) __PYX_ERR(0, 331, __pyx_L1_error) __pyx_r = __pyx_pf_4pywt_11_extensions_4_dwt_28__pyx_fuse_1upcoef(__pyx_self, __pyx_v_do_rec_a, __pyx_v_coeffs, __pyx_v_wavelet, __pyx_v_level, __pyx_v_take); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_28__pyx_fuse_1upcoef(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_do_rec_a, __Pyx_memviewslice __pyx_v_coeffs, struct WaveletObject *__pyx_v_wavelet, int __pyx_v_level, size_t __pyx_v_take) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__pyx_fuse_1upcoef", 0); __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_coeffs.memview)) { __Pyx_RaiseUnboundLocalError("coeffs"); __PYX_ERR(0, 331, __pyx_L1_error) } __pyx_t_1 = __pyx_fuse_1__pyx_f_4pywt_11_extensions_4_dwt_upcoef(__pyx_v_do_rec_a, __pyx_v_coeffs, __pyx_v_wavelet, __pyx_v_level, __pyx_v_take, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._dwt.__pyx_fuse_1upcoef", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_coeffs, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_31__pyx_fuse_2upcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_13upcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_fuse_2__pyx_f_4pywt_11_extensions_4_dwt_upcoef(int __pyx_v_do_rec_a, __Pyx_memviewslice __pyx_v_coeffs, struct WaveletObject *__pyx_v_wavelet, int __pyx_v_level, size_t __pyx_v_take, CYTHON_UNUSED int __pyx_skip_dispatch) { __Pyx_memviewslice __pyx_v_rec = { 0, 0, { 0 }, { 0 }, { 0 } }; int __pyx_v_i; int __pyx_v_retval; size_t __pyx_v_rec_len; size_t __pyx_v_left_bound; size_t __pyx_v_right_bound; size_t __pyx_v_coeffs_size; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_t_3; int __pyx_t_4; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; size_t __pyx_t_7; size_t __pyx_t_8; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; __Pyx_memviewslice __pyx_t_12 = { 0, 0, { 0 }, { 0 }, { 0 } }; int __pyx_t_13; Py_ssize_t __pyx_t_14; Py_ssize_t __pyx_t_15; Py_ssize_t __pyx_t_16; Py_ssize_t __pyx_t_17; __Pyx_RefNannySetupContext("__pyx_fuse_2upcoef", 0); __PYX_INC_MEMVIEW(&__pyx_v_coeffs, 1); /* "pywt/_extensions/_dwt.pyx":337 * cdef size_t rec_len, left_bound, right_bound, coeffs_size * * rec_len = 0 # <<<<<<<<<<<<<< * * if level < 1: */ __pyx_v_rec_len = 0; /* "pywt/_extensions/_dwt.pyx":339 * rec_len = 0 * * if level < 1: # <<<<<<<<<<<<<< * raise ValueError("Value of level must be greater than 0.") * */ __pyx_t_1 = ((__pyx_v_level < 1) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":340 * * if level < 1: * raise ValueError("Value of level must be greater than 0.") # <<<<<<<<<<<<<< * * for i in range(level): */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 340, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":339 * rec_len = 0 * * if level < 1: # <<<<<<<<<<<<<< * raise ValueError("Value of level must be greater than 0.") * */ } /* "pywt/_extensions/_dwt.pyx":342 * raise ValueError("Value of level must be greater than 0.") * * for i in range(level): # <<<<<<<<<<<<<< * coeffs_size = coeffs.size * # output len */ __pyx_t_3 = __pyx_v_level; __pyx_t_4 = __pyx_t_3; for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_v_i = __pyx_t_5; /* "pywt/_extensions/_dwt.pyx":343 * * for i in range(level): * coeffs_size = coeffs.size # <<<<<<<<<<<<<< * # output len * rec_len = common.reconstruction_buffer_length(coeffs.size, wavelet.dec_len) */ __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_coeffs, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_float_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_float_complex, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = __Pyx_PyInt_As_size_t(__pyx_t_6); if (unlikely((__pyx_t_7 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_coeffs_size = __pyx_t_7; /* "pywt/_extensions/_dwt.pyx":345 * coeffs_size = coeffs.size * # output len * rec_len = common.reconstruction_buffer_length(coeffs.size, wavelet.dec_len) # <<<<<<<<<<<<<< * if rec_len < 1: * raise RuntimeError("Invalid output length.") */ __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_coeffs, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_float_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_float_complex, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_7 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_dec_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_8 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_rec_len = reconstruction_buffer_length(__pyx_t_7, __pyx_t_8); /* "pywt/_extensions/_dwt.pyx":346 * # output len * rec_len = common.reconstruction_buffer_length(coeffs.size, wavelet.dec_len) * if rec_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ __pyx_t_1 = ((__pyx_v_rec_len < 1) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":347 * rec_len = common.reconstruction_buffer_length(coeffs.size, wavelet.dec_len) * if rec_len < 1: * raise RuntimeError("Invalid output length.") # <<<<<<<<<<<<<< * * # To mirror multi-level wavelet reconstruction behaviour, when detail */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 347, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":346 * # output len * rec_len = common.reconstruction_buffer_length(coeffs.size, wavelet.dec_len) * if rec_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ } /* "pywt/_extensions/_dwt.pyx":397 * raise RuntimeError("C rec_d failed.") * elif cdata_t is np.complex64_t: * rec = np.zeros(rec_len, dtype=np.complex64) # <<<<<<<<<<<<<< * if do_rec_a or i > 0: * with nogil: */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_rec_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_complex64); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_11) < 0) __PYX_ERR(0, 397, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_12 = __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_float_complex(__pyx_t_11, PyBUF_WRITABLE); if (unlikely(!__pyx_t_12.memview)) __PYX_ERR(0, 397, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_XDEC_MEMVIEW(&__pyx_v_rec, 1); __pyx_v_rec = __pyx_t_12; __pyx_t_12.memview = NULL; __pyx_t_12.data = NULL; /* "pywt/_extensions/_dwt.pyx":398 * elif cdata_t is np.complex64_t: * rec = np.zeros(rec_len, dtype=np.complex64) * if do_rec_a or i > 0: # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.float_complex_rec_a(&coeffs[0], coeffs_size, wavelet.w, */ __pyx_t_13 = (__pyx_v_do_rec_a != 0); if (!__pyx_t_13) { } else { __pyx_t_1 = __pyx_t_13; goto __pyx_L8_bool_binop_done; } __pyx_t_13 = ((__pyx_v_i > 0) != 0); __pyx_t_1 = __pyx_t_13; __pyx_L8_bool_binop_done:; if (__pyx_t_1) { /* "pywt/_extensions/_dwt.pyx":399 * rec = np.zeros(rec_len, dtype=np.complex64) * if do_rec_a or i > 0: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_complex_rec_a(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":400 * if do_rec_a or i > 0: * with nogil: * retval = c_wt.float_complex_rec_a(&coeffs[0], coeffs_size, wavelet.w, # <<<<<<<<<<<<<< * &rec[0], rec_len) * if retval < 0: */ __pyx_t_14 = 0; /* "pywt/_extensions/_dwt.pyx":401 * with nogil: * retval = c_wt.float_complex_rec_a(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) # <<<<<<<<<<<<<< * if retval < 0: * raise RuntimeError("C rec_a failed.") */ __pyx_t_15 = 0; /* "pywt/_extensions/_dwt.pyx":400 * if do_rec_a or i > 0: * with nogil: * retval = c_wt.float_complex_rec_a(&coeffs[0], coeffs_size, wavelet.w, # <<<<<<<<<<<<<< * &rec[0], rec_len) * if retval < 0: */ __pyx_v_retval = float_complex_rec_a((&(*((__pyx_t_float_complex *) ( /* dim=0 */ ((char *) (((__pyx_t_float_complex *) __pyx_v_coeffs.data) + __pyx_t_14)) )))), __pyx_v_coeffs_size, __pyx_v_wavelet->w, (&(*((__pyx_t_float_complex *) ( /* dim=0 */ ((char *) (((__pyx_t_float_complex *) __pyx_v_rec.data) + __pyx_t_15)) )))), __pyx_v_rec_len); } /* "pywt/_extensions/_dwt.pyx":399 * rec = np.zeros(rec_len, dtype=np.complex64) * if do_rec_a or i > 0: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_complex_rec_a(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L14; } __pyx_L14:; } } /* "pywt/_extensions/_dwt.pyx":402 * retval = c_wt.float_complex_rec_a(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C rec_a failed.") * else: */ __pyx_t_1 = ((__pyx_v_retval < 0) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":403 * &rec[0], rec_len) * if retval < 0: * raise RuntimeError("C rec_a failed.") # <<<<<<<<<<<<<< * else: * with nogil: */ __pyx_t_11 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_Raise(__pyx_t_11, 0, 0, 0); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_ERR(0, 403, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":402 * retval = c_wt.float_complex_rec_a(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C rec_a failed.") * else: */ } /* "pywt/_extensions/_dwt.pyx":398 * elif cdata_t is np.complex64_t: * rec = np.zeros(rec_len, dtype=np.complex64) * if do_rec_a or i > 0: # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.float_complex_rec_a(&coeffs[0], coeffs_size, wavelet.w, */ goto __pyx_L7; } /* "pywt/_extensions/_dwt.pyx":405 * raise RuntimeError("C rec_a failed.") * else: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_complex_rec_d(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) */ /*else*/ { { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":406 * else: * with nogil: * retval = c_wt.float_complex_rec_d(&coeffs[0], coeffs_size, wavelet.w, # <<<<<<<<<<<<<< * &rec[0], rec_len) * if retval < 0: */ __pyx_t_16 = 0; /* "pywt/_extensions/_dwt.pyx":407 * with nogil: * retval = c_wt.float_complex_rec_d(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) # <<<<<<<<<<<<<< * if retval < 0: * raise RuntimeError("C rec_d failed.") */ __pyx_t_17 = 0; /* "pywt/_extensions/_dwt.pyx":406 * else: * with nogil: * retval = c_wt.float_complex_rec_d(&coeffs[0], coeffs_size, wavelet.w, # <<<<<<<<<<<<<< * &rec[0], rec_len) * if retval < 0: */ __pyx_v_retval = float_complex_rec_d((&(*((__pyx_t_float_complex *) ( /* dim=0 */ ((char *) (((__pyx_t_float_complex *) __pyx_v_coeffs.data) + __pyx_t_16)) )))), __pyx_v_coeffs_size, __pyx_v_wavelet->w, (&(*((__pyx_t_float_complex *) ( /* dim=0 */ ((char *) (((__pyx_t_float_complex *) __pyx_v_rec.data) + __pyx_t_17)) )))), __pyx_v_rec_len); } /* "pywt/_extensions/_dwt.pyx":405 * raise RuntimeError("C rec_a failed.") * else: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_complex_rec_d(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L20; } __pyx_L20:; } } /* "pywt/_extensions/_dwt.pyx":408 * retval = c_wt.float_complex_rec_d(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C rec_d failed.") * # TODO: this algorithm needs some explaining */ __pyx_t_1 = ((__pyx_v_retval < 0) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":409 * &rec[0], rec_len) * if retval < 0: * raise RuntimeError("C rec_d failed.") # <<<<<<<<<<<<<< * # TODO: this algorithm needs some explaining * coeffs = rec */ __pyx_t_11 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_Raise(__pyx_t_11, 0, 0, 0); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_ERR(0, 409, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":408 * retval = c_wt.float_complex_rec_d(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C rec_d failed.") * # TODO: this algorithm needs some explaining */ } } __pyx_L7:; /* "pywt/_extensions/_dwt.pyx":411 * raise RuntimeError("C rec_d failed.") * # TODO: this algorithm needs some explaining * coeffs = rec # <<<<<<<<<<<<<< * * if take > 0 and take < rec_len: */ __PYX_XDEC_MEMVIEW(&__pyx_v_coeffs, 1); __PYX_INC_MEMVIEW(&__pyx_v_rec, 0); __pyx_v_coeffs = __pyx_v_rec; } /* "pywt/_extensions/_dwt.pyx":413 * coeffs = rec * * if take > 0 and take < rec_len: # <<<<<<<<<<<<<< * left_bound = right_bound = (rec_len-take) // 2 * if (rec_len-take) % 2: */ __pyx_t_13 = ((__pyx_v_take > 0) != 0); if (__pyx_t_13) { } else { __pyx_t_1 = __pyx_t_13; goto __pyx_L23_bool_binop_done; } __pyx_t_13 = ((__pyx_v_take < __pyx_v_rec_len) != 0); __pyx_t_1 = __pyx_t_13; __pyx_L23_bool_binop_done:; if (__pyx_t_1) { /* "pywt/_extensions/_dwt.pyx":414 * * if take > 0 and take < rec_len: * left_bound = right_bound = (rec_len-take) // 2 # <<<<<<<<<<<<<< * if (rec_len-take) % 2: * # right_bound must never be zero for indexing to work */ __pyx_t_8 = ((__pyx_v_rec_len - __pyx_v_take) / 2); __pyx_v_left_bound = __pyx_t_8; __pyx_v_right_bound = __pyx_t_8; /* "pywt/_extensions/_dwt.pyx":415 * if take > 0 and take < rec_len: * left_bound = right_bound = (rec_len-take) // 2 * if (rec_len-take) % 2: # <<<<<<<<<<<<<< * # right_bound must never be zero for indexing to work * right_bound = right_bound + 1 */ __pyx_t_1 = (((__pyx_v_rec_len - __pyx_v_take) % 2) != 0); if (__pyx_t_1) { /* "pywt/_extensions/_dwt.pyx":417 * if (rec_len-take) % 2: * # right_bound must never be zero for indexing to work * right_bound = right_bound + 1 # <<<<<<<<<<<<<< * * return rec[left_bound:-right_bound] */ __pyx_v_right_bound = (__pyx_v_right_bound + 1); /* "pywt/_extensions/_dwt.pyx":415 * if take > 0 and take < rec_len: * left_bound = right_bound = (rec_len-take) // 2 * if (rec_len-take) % 2: # <<<<<<<<<<<<<< * # right_bound must never be zero for indexing to work * right_bound = right_bound + 1 */ } /* "pywt/_extensions/_dwt.pyx":419 * right_bound = right_bound + 1 * * return rec[left_bound:-right_bound] # <<<<<<<<<<<<<< * * return rec */ __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_rec.memview)) { __Pyx_RaiseUnboundLocalError("rec"); __PYX_ERR(0, 419, __pyx_L1_error) } __pyx_t_12.data = __pyx_v_rec.data; __pyx_t_12.memview = __pyx_v_rec.memview; __PYX_INC_MEMVIEW(&__pyx_t_12, 0); __pyx_t_3 = -1; if (unlikely(__pyx_memoryview_slice_memviewslice( &__pyx_t_12, __pyx_v_rec.shape[0], __pyx_v_rec.strides[0], __pyx_v_rec.suboffsets[0], 0, 0, &__pyx_t_3, __pyx_v_left_bound, (-__pyx_v_right_bound), 0, 1, 1, 0, 1) < 0)) { __PYX_ERR(0, 419, __pyx_L1_error) } __pyx_t_11 = __pyx_memoryview_fromslice(__pyx_t_12, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_float_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_float_complex, 0);; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __PYX_XDEC_MEMVIEW(&__pyx_t_12, 1); __pyx_t_12.memview = NULL; __pyx_t_12.data = NULL; __pyx_r = __pyx_t_11; __pyx_t_11 = 0; goto __pyx_L0; /* "pywt/_extensions/_dwt.pyx":413 * coeffs = rec * * if take > 0 and take < rec_len: # <<<<<<<<<<<<<< * left_bound = right_bound = (rec_len-take) // 2 * if (rec_len-take) % 2: */ } /* "pywt/_extensions/_dwt.pyx":421 * return rec[left_bound:-right_bound] * * return rec # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_rec.memview)) { __Pyx_RaiseUnboundLocalError("rec"); __PYX_ERR(0, 421, __pyx_L1_error) } __pyx_t_11 = __pyx_memoryview_fromslice(__pyx_v_rec, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_float_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_float_complex, 0);; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 421, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_r = __pyx_t_11; __pyx_t_11 = 0; goto __pyx_L0; /* "pywt/_extensions/_dwt.pyx":331 * * * cpdef upcoef(bint do_rec_a, cdata_t[::1] coeffs, Wavelet wavelet, int level, # <<<<<<<<<<<<<< * size_t take): * cdef cdata_t[::1] rec */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __PYX_XDEC_MEMVIEW(&__pyx_t_12, 1); __Pyx_AddTraceback("pywt._extensions._dwt.upcoef", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_rec, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_coeffs, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_31__pyx_fuse_2upcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_2__pyx_mdef_4pywt_11_extensions_4_dwt_31__pyx_fuse_2upcoef = {"__pyx_fuse_2upcoef", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_4_dwt_31__pyx_fuse_2upcoef, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_31__pyx_fuse_2upcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { int __pyx_v_do_rec_a; __Pyx_memviewslice __pyx_v_coeffs = { 0, 0, { 0 }, { 0 }, { 0 } }; struct WaveletObject *__pyx_v_wavelet = 0; int __pyx_v_level; size_t __pyx_v_take; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_2upcoef (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_do_rec_a,&__pyx_n_s_coeffs,&__pyx_n_s_wavelet,&__pyx_n_s_level,&__pyx_n_s_take,0}; PyObject* values[5] = {0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_do_rec_a)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coeffs)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_2upcoef", 1, 5, 5, 1); __PYX_ERR(0, 331, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wavelet)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_2upcoef", 1, 5, 5, 2); __PYX_ERR(0, 331, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_2upcoef", 1, 5, 5, 3); __PYX_ERR(0, 331, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_take)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_2upcoef", 1, 5, 5, 4); __PYX_ERR(0, 331, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_2upcoef") < 0)) __PYX_ERR(0, 331, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); } __pyx_v_do_rec_a = __Pyx_PyObject_IsTrue(values[0]); if (unlikely((__pyx_v_do_rec_a == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 331, __pyx_L3_error) __pyx_v_coeffs = __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_float_complex(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_coeffs.memview)) __PYX_ERR(0, 331, __pyx_L3_error) __pyx_v_wavelet = ((struct WaveletObject *)values[2]); __pyx_v_level = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_level == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 331, __pyx_L3_error) __pyx_v_take = __Pyx_PyInt_As_size_t(values[4]); if (unlikely((__pyx_v_take == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 332, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__pyx_fuse_2upcoef", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 331, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._dwt.__pyx_fuse_2upcoef", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_wavelet), __pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet, 1, "wavelet", 0))) __PYX_ERR(0, 331, __pyx_L1_error) __pyx_r = __pyx_pf_4pywt_11_extensions_4_dwt_30__pyx_fuse_2upcoef(__pyx_self, __pyx_v_do_rec_a, __pyx_v_coeffs, __pyx_v_wavelet, __pyx_v_level, __pyx_v_take); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_30__pyx_fuse_2upcoef(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_do_rec_a, __Pyx_memviewslice __pyx_v_coeffs, struct WaveletObject *__pyx_v_wavelet, int __pyx_v_level, size_t __pyx_v_take) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__pyx_fuse_2upcoef", 0); __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_coeffs.memview)) { __Pyx_RaiseUnboundLocalError("coeffs"); __PYX_ERR(0, 331, __pyx_L1_error) } __pyx_t_1 = __pyx_fuse_2__pyx_f_4pywt_11_extensions_4_dwt_upcoef(__pyx_v_do_rec_a, __pyx_v_coeffs, __pyx_v_wavelet, __pyx_v_level, __pyx_v_take, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._dwt.__pyx_fuse_2upcoef", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_coeffs, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_33__pyx_fuse_3upcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_13upcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_fuse_3__pyx_f_4pywt_11_extensions_4_dwt_upcoef(int __pyx_v_do_rec_a, __Pyx_memviewslice __pyx_v_coeffs, struct WaveletObject *__pyx_v_wavelet, int __pyx_v_level, size_t __pyx_v_take, CYTHON_UNUSED int __pyx_skip_dispatch) { __Pyx_memviewslice __pyx_v_rec = { 0, 0, { 0 }, { 0 }, { 0 } }; int __pyx_v_i; int __pyx_v_retval; size_t __pyx_v_rec_len; size_t __pyx_v_left_bound; size_t __pyx_v_right_bound; size_t __pyx_v_coeffs_size; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_t_3; int __pyx_t_4; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; size_t __pyx_t_7; size_t __pyx_t_8; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; __Pyx_memviewslice __pyx_t_12 = { 0, 0, { 0 }, { 0 }, { 0 } }; int __pyx_t_13; Py_ssize_t __pyx_t_14; Py_ssize_t __pyx_t_15; Py_ssize_t __pyx_t_16; Py_ssize_t __pyx_t_17; __Pyx_RefNannySetupContext("__pyx_fuse_3upcoef", 0); __PYX_INC_MEMVIEW(&__pyx_v_coeffs, 1); /* "pywt/_extensions/_dwt.pyx":337 * cdef size_t rec_len, left_bound, right_bound, coeffs_size * * rec_len = 0 # <<<<<<<<<<<<<< * * if level < 1: */ __pyx_v_rec_len = 0; /* "pywt/_extensions/_dwt.pyx":339 * rec_len = 0 * * if level < 1: # <<<<<<<<<<<<<< * raise ValueError("Value of level must be greater than 0.") * */ __pyx_t_1 = ((__pyx_v_level < 1) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":340 * * if level < 1: * raise ValueError("Value of level must be greater than 0.") # <<<<<<<<<<<<<< * * for i in range(level): */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 340, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":339 * rec_len = 0 * * if level < 1: # <<<<<<<<<<<<<< * raise ValueError("Value of level must be greater than 0.") * */ } /* "pywt/_extensions/_dwt.pyx":342 * raise ValueError("Value of level must be greater than 0.") * * for i in range(level): # <<<<<<<<<<<<<< * coeffs_size = coeffs.size * # output len */ __pyx_t_3 = __pyx_v_level; __pyx_t_4 = __pyx_t_3; for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_v_i = __pyx_t_5; /* "pywt/_extensions/_dwt.pyx":343 * * for i in range(level): * coeffs_size = coeffs.size # <<<<<<<<<<<<<< * # output len * rec_len = common.reconstruction_buffer_length(coeffs.size, wavelet.dec_len) */ __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_coeffs, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_double_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_double_complex, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = __Pyx_PyInt_As_size_t(__pyx_t_6); if (unlikely((__pyx_t_7 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_coeffs_size = __pyx_t_7; /* "pywt/_extensions/_dwt.pyx":345 * coeffs_size = coeffs.size * # output len * rec_len = common.reconstruction_buffer_length(coeffs.size, wavelet.dec_len) # <<<<<<<<<<<<<< * if rec_len < 1: * raise RuntimeError("Invalid output length.") */ __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_coeffs, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_double_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_double_complex, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_7 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_dec_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_8 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 345, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_rec_len = reconstruction_buffer_length(__pyx_t_7, __pyx_t_8); /* "pywt/_extensions/_dwt.pyx":346 * # output len * rec_len = common.reconstruction_buffer_length(coeffs.size, wavelet.dec_len) * if rec_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ __pyx_t_1 = ((__pyx_v_rec_len < 1) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":347 * rec_len = common.reconstruction_buffer_length(coeffs.size, wavelet.dec_len) * if rec_len < 1: * raise RuntimeError("Invalid output length.") # <<<<<<<<<<<<<< * * # To mirror multi-level wavelet reconstruction behaviour, when detail */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 347, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":346 * # output len * rec_len = common.reconstruction_buffer_length(coeffs.size, wavelet.dec_len) * if rec_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ } /* "pywt/_extensions/_dwt.pyx":383 * IF HAVE_C99_CPLX: * if cdata_t is np.complex128_t: * rec = np.zeros(rec_len, dtype=np.complex128) # <<<<<<<<<<<<<< * if do_rec_a or i > 0: * with nogil: */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_rec_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_complex128); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_11) < 0) __PYX_ERR(0, 383, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_12 = __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_double_complex(__pyx_t_11, PyBUF_WRITABLE); if (unlikely(!__pyx_t_12.memview)) __PYX_ERR(0, 383, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_XDEC_MEMVIEW(&__pyx_v_rec, 1); __pyx_v_rec = __pyx_t_12; __pyx_t_12.memview = NULL; __pyx_t_12.data = NULL; /* "pywt/_extensions/_dwt.pyx":384 * if cdata_t is np.complex128_t: * rec = np.zeros(rec_len, dtype=np.complex128) * if do_rec_a or i > 0: # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.double_complex_rec_a(&coeffs[0], coeffs_size, wavelet.w, */ __pyx_t_13 = (__pyx_v_do_rec_a != 0); if (!__pyx_t_13) { } else { __pyx_t_1 = __pyx_t_13; goto __pyx_L8_bool_binop_done; } __pyx_t_13 = ((__pyx_v_i > 0) != 0); __pyx_t_1 = __pyx_t_13; __pyx_L8_bool_binop_done:; if (__pyx_t_1) { /* "pywt/_extensions/_dwt.pyx":385 * rec = np.zeros(rec_len, dtype=np.complex128) * if do_rec_a or i > 0: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_complex_rec_a(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":386 * if do_rec_a or i > 0: * with nogil: * retval = c_wt.double_complex_rec_a(&coeffs[0], coeffs_size, wavelet.w, # <<<<<<<<<<<<<< * &rec[0], rec_len) * if retval < 0: */ __pyx_t_14 = 0; /* "pywt/_extensions/_dwt.pyx":387 * with nogil: * retval = c_wt.double_complex_rec_a(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) # <<<<<<<<<<<<<< * if retval < 0: * raise RuntimeError("C rec_a failed.") */ __pyx_t_15 = 0; /* "pywt/_extensions/_dwt.pyx":386 * if do_rec_a or i > 0: * with nogil: * retval = c_wt.double_complex_rec_a(&coeffs[0], coeffs_size, wavelet.w, # <<<<<<<<<<<<<< * &rec[0], rec_len) * if retval < 0: */ __pyx_v_retval = double_complex_rec_a((&(*((__pyx_t_double_complex *) ( /* dim=0 */ ((char *) (((__pyx_t_double_complex *) __pyx_v_coeffs.data) + __pyx_t_14)) )))), __pyx_v_coeffs_size, __pyx_v_wavelet->w, (&(*((__pyx_t_double_complex *) ( /* dim=0 */ ((char *) (((__pyx_t_double_complex *) __pyx_v_rec.data) + __pyx_t_15)) )))), __pyx_v_rec_len); } /* "pywt/_extensions/_dwt.pyx":385 * rec = np.zeros(rec_len, dtype=np.complex128) * if do_rec_a or i > 0: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_complex_rec_a(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L14; } __pyx_L14:; } } /* "pywt/_extensions/_dwt.pyx":388 * retval = c_wt.double_complex_rec_a(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C rec_a failed.") * else: */ __pyx_t_1 = ((__pyx_v_retval < 0) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":389 * &rec[0], rec_len) * if retval < 0: * raise RuntimeError("C rec_a failed.") # <<<<<<<<<<<<<< * else: * with nogil: */ __pyx_t_11 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_Raise(__pyx_t_11, 0, 0, 0); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_ERR(0, 389, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":388 * retval = c_wt.double_complex_rec_a(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C rec_a failed.") * else: */ } /* "pywt/_extensions/_dwt.pyx":384 * if cdata_t is np.complex128_t: * rec = np.zeros(rec_len, dtype=np.complex128) * if do_rec_a or i > 0: # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.double_complex_rec_a(&coeffs[0], coeffs_size, wavelet.w, */ goto __pyx_L7; } /* "pywt/_extensions/_dwt.pyx":391 * raise RuntimeError("C rec_a failed.") * else: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_complex_rec_d(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) */ /*else*/ { { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":392 * else: * with nogil: * retval = c_wt.double_complex_rec_d(&coeffs[0], coeffs_size, wavelet.w, # <<<<<<<<<<<<<< * &rec[0], rec_len) * if retval < 0: */ __pyx_t_16 = 0; /* "pywt/_extensions/_dwt.pyx":393 * with nogil: * retval = c_wt.double_complex_rec_d(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) # <<<<<<<<<<<<<< * if retval < 0: * raise RuntimeError("C rec_d failed.") */ __pyx_t_17 = 0; /* "pywt/_extensions/_dwt.pyx":392 * else: * with nogil: * retval = c_wt.double_complex_rec_d(&coeffs[0], coeffs_size, wavelet.w, # <<<<<<<<<<<<<< * &rec[0], rec_len) * if retval < 0: */ __pyx_v_retval = double_complex_rec_d((&(*((__pyx_t_double_complex *) ( /* dim=0 */ ((char *) (((__pyx_t_double_complex *) __pyx_v_coeffs.data) + __pyx_t_16)) )))), __pyx_v_coeffs_size, __pyx_v_wavelet->w, (&(*((__pyx_t_double_complex *) ( /* dim=0 */ ((char *) (((__pyx_t_double_complex *) __pyx_v_rec.data) + __pyx_t_17)) )))), __pyx_v_rec_len); } /* "pywt/_extensions/_dwt.pyx":391 * raise RuntimeError("C rec_a failed.") * else: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_complex_rec_d(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L20; } __pyx_L20:; } } /* "pywt/_extensions/_dwt.pyx":394 * retval = c_wt.double_complex_rec_d(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C rec_d failed.") * elif cdata_t is np.complex64_t: */ __pyx_t_1 = ((__pyx_v_retval < 0) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":395 * &rec[0], rec_len) * if retval < 0: * raise RuntimeError("C rec_d failed.") # <<<<<<<<<<<<<< * elif cdata_t is np.complex64_t: * rec = np.zeros(rec_len, dtype=np.complex64) */ __pyx_t_11 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_Raise(__pyx_t_11, 0, 0, 0); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_ERR(0, 395, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":394 * retval = c_wt.double_complex_rec_d(&coeffs[0], coeffs_size, wavelet.w, * &rec[0], rec_len) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C rec_d failed.") * elif cdata_t is np.complex64_t: */ } } __pyx_L7:; /* "pywt/_extensions/_dwt.pyx":411 * raise RuntimeError("C rec_d failed.") * # TODO: this algorithm needs some explaining * coeffs = rec # <<<<<<<<<<<<<< * * if take > 0 and take < rec_len: */ __PYX_XDEC_MEMVIEW(&__pyx_v_coeffs, 1); __PYX_INC_MEMVIEW(&__pyx_v_rec, 0); __pyx_v_coeffs = __pyx_v_rec; } /* "pywt/_extensions/_dwt.pyx":413 * coeffs = rec * * if take > 0 and take < rec_len: # <<<<<<<<<<<<<< * left_bound = right_bound = (rec_len-take) // 2 * if (rec_len-take) % 2: */ __pyx_t_13 = ((__pyx_v_take > 0) != 0); if (__pyx_t_13) { } else { __pyx_t_1 = __pyx_t_13; goto __pyx_L23_bool_binop_done; } __pyx_t_13 = ((__pyx_v_take < __pyx_v_rec_len) != 0); __pyx_t_1 = __pyx_t_13; __pyx_L23_bool_binop_done:; if (__pyx_t_1) { /* "pywt/_extensions/_dwt.pyx":414 * * if take > 0 and take < rec_len: * left_bound = right_bound = (rec_len-take) // 2 # <<<<<<<<<<<<<< * if (rec_len-take) % 2: * # right_bound must never be zero for indexing to work */ __pyx_t_8 = ((__pyx_v_rec_len - __pyx_v_take) / 2); __pyx_v_left_bound = __pyx_t_8; __pyx_v_right_bound = __pyx_t_8; /* "pywt/_extensions/_dwt.pyx":415 * if take > 0 and take < rec_len: * left_bound = right_bound = (rec_len-take) // 2 * if (rec_len-take) % 2: # <<<<<<<<<<<<<< * # right_bound must never be zero for indexing to work * right_bound = right_bound + 1 */ __pyx_t_1 = (((__pyx_v_rec_len - __pyx_v_take) % 2) != 0); if (__pyx_t_1) { /* "pywt/_extensions/_dwt.pyx":417 * if (rec_len-take) % 2: * # right_bound must never be zero for indexing to work * right_bound = right_bound + 1 # <<<<<<<<<<<<<< * * return rec[left_bound:-right_bound] */ __pyx_v_right_bound = (__pyx_v_right_bound + 1); /* "pywt/_extensions/_dwt.pyx":415 * if take > 0 and take < rec_len: * left_bound = right_bound = (rec_len-take) // 2 * if (rec_len-take) % 2: # <<<<<<<<<<<<<< * # right_bound must never be zero for indexing to work * right_bound = right_bound + 1 */ } /* "pywt/_extensions/_dwt.pyx":419 * right_bound = right_bound + 1 * * return rec[left_bound:-right_bound] # <<<<<<<<<<<<<< * * return rec */ __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_rec.memview)) { __Pyx_RaiseUnboundLocalError("rec"); __PYX_ERR(0, 419, __pyx_L1_error) } __pyx_t_12.data = __pyx_v_rec.data; __pyx_t_12.memview = __pyx_v_rec.memview; __PYX_INC_MEMVIEW(&__pyx_t_12, 0); __pyx_t_3 = -1; if (unlikely(__pyx_memoryview_slice_memviewslice( &__pyx_t_12, __pyx_v_rec.shape[0], __pyx_v_rec.strides[0], __pyx_v_rec.suboffsets[0], 0, 0, &__pyx_t_3, __pyx_v_left_bound, (-__pyx_v_right_bound), 0, 1, 1, 0, 1) < 0)) { __PYX_ERR(0, 419, __pyx_L1_error) } __pyx_t_11 = __pyx_memoryview_fromslice(__pyx_t_12, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_double_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_double_complex, 0);; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __PYX_XDEC_MEMVIEW(&__pyx_t_12, 1); __pyx_t_12.memview = NULL; __pyx_t_12.data = NULL; __pyx_r = __pyx_t_11; __pyx_t_11 = 0; goto __pyx_L0; /* "pywt/_extensions/_dwt.pyx":413 * coeffs = rec * * if take > 0 and take < rec_len: # <<<<<<<<<<<<<< * left_bound = right_bound = (rec_len-take) // 2 * if (rec_len-take) % 2: */ } /* "pywt/_extensions/_dwt.pyx":421 * return rec[left_bound:-right_bound] * * return rec # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_rec.memview)) { __Pyx_RaiseUnboundLocalError("rec"); __PYX_ERR(0, 421, __pyx_L1_error) } __pyx_t_11 = __pyx_memoryview_fromslice(__pyx_v_rec, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_double_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_double_complex, 0);; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 421, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_r = __pyx_t_11; __pyx_t_11 = 0; goto __pyx_L0; /* "pywt/_extensions/_dwt.pyx":331 * * * cpdef upcoef(bint do_rec_a, cdata_t[::1] coeffs, Wavelet wavelet, int level, # <<<<<<<<<<<<<< * size_t take): * cdef cdata_t[::1] rec */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __PYX_XDEC_MEMVIEW(&__pyx_t_12, 1); __Pyx_AddTraceback("pywt._extensions._dwt.upcoef", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_rec, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_coeffs, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_33__pyx_fuse_3upcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_3__pyx_mdef_4pywt_11_extensions_4_dwt_33__pyx_fuse_3upcoef = {"__pyx_fuse_3upcoef", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_4_dwt_33__pyx_fuse_3upcoef, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_33__pyx_fuse_3upcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { int __pyx_v_do_rec_a; __Pyx_memviewslice __pyx_v_coeffs = { 0, 0, { 0 }, { 0 }, { 0 } }; struct WaveletObject *__pyx_v_wavelet = 0; int __pyx_v_level; size_t __pyx_v_take; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_3upcoef (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_do_rec_a,&__pyx_n_s_coeffs,&__pyx_n_s_wavelet,&__pyx_n_s_level,&__pyx_n_s_take,0}; PyObject* values[5] = {0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_do_rec_a)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coeffs)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_3upcoef", 1, 5, 5, 1); __PYX_ERR(0, 331, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wavelet)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_3upcoef", 1, 5, 5, 2); __PYX_ERR(0, 331, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_3upcoef", 1, 5, 5, 3); __PYX_ERR(0, 331, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_take)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_3upcoef", 1, 5, 5, 4); __PYX_ERR(0, 331, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_3upcoef") < 0)) __PYX_ERR(0, 331, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); } __pyx_v_do_rec_a = __Pyx_PyObject_IsTrue(values[0]); if (unlikely((__pyx_v_do_rec_a == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 331, __pyx_L3_error) __pyx_v_coeffs = __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_double_complex(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_coeffs.memview)) __PYX_ERR(0, 331, __pyx_L3_error) __pyx_v_wavelet = ((struct WaveletObject *)values[2]); __pyx_v_level = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_level == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 331, __pyx_L3_error) __pyx_v_take = __Pyx_PyInt_As_size_t(values[4]); if (unlikely((__pyx_v_take == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 332, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__pyx_fuse_3upcoef", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 331, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._dwt.__pyx_fuse_3upcoef", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_wavelet), __pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet, 1, "wavelet", 0))) __PYX_ERR(0, 331, __pyx_L1_error) __pyx_r = __pyx_pf_4pywt_11_extensions_4_dwt_32__pyx_fuse_3upcoef(__pyx_self, __pyx_v_do_rec_a, __pyx_v_coeffs, __pyx_v_wavelet, __pyx_v_level, __pyx_v_take); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_32__pyx_fuse_3upcoef(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_do_rec_a, __Pyx_memviewslice __pyx_v_coeffs, struct WaveletObject *__pyx_v_wavelet, int __pyx_v_level, size_t __pyx_v_take) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__pyx_fuse_3upcoef", 0); __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_coeffs.memview)) { __Pyx_RaiseUnboundLocalError("coeffs"); __PYX_ERR(0, 331, __pyx_L1_error) } __pyx_t_1 = __pyx_fuse_3__pyx_f_4pywt_11_extensions_4_dwt_upcoef(__pyx_v_do_rec_a, __pyx_v_coeffs, __pyx_v_wavelet, __pyx_v_level, __pyx_v_take, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._dwt.__pyx_fuse_3upcoef", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_coeffs, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_dwt.pyx":424 * * * cpdef downcoef(bint do_dec_a, cdata_t[::1] data, Wavelet wavelet, MODE mode, int level): # <<<<<<<<<<<<<< * cdef cdata_t[::1] coeffs * cdef int i, retval */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_15downcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_4pywt_11_extensions_4_dwt_15downcoef = {"downcoef", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_4_dwt_15downcoef, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_15downcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_signatures = 0; PyObject *__pyx_v_args = 0; PyObject *__pyx_v_kwargs = 0; CYTHON_UNUSED PyObject *__pyx_v_defaults = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0}; PyObject* values[4] = {0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 424, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(0, 424, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(0, 424, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 424, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); } __pyx_v_signatures = values[0]; __pyx_v_args = values[1]; __pyx_v_kwargs = values[2]; __pyx_v_defaults = values[3]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 424, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._dwt.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_4_dwt_14downcoef(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_14downcoef(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) { PyObject *__pyx_v_dest_sig = NULL; Py_ssize_t __pyx_v_i; PyTypeObject *__pyx_v_ndarray = 0; __Pyx_memviewslice __pyx_v_memslice; Py_ssize_t __pyx_v_itemsize; CYTHON_UNUSED int __pyx_v_dtype_signed; char __pyx_v_kind; PyObject *__pyx_v_arg = NULL; PyObject *__pyx_v_dtype = NULL; PyObject *__pyx_v_arg_base = NULL; PyObject *__pyx_v_candidates = NULL; PyObject *__pyx_v_sig = NULL; int __pyx_v_match_found; PyObject *__pyx_v_src_sig = NULL; PyObject *__pyx_v_dst_type = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; Py_ssize_t __pyx_t_5; PyObject *__pyx_t_6 = NULL; long __pyx_t_7; __Pyx_memviewslice __pyx_t_8; Py_ssize_t __pyx_t_9; int __pyx_t_10; int __pyx_t_11; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; Py_ssize_t __pyx_t_15; Py_ssize_t __pyx_t_16; Py_ssize_t __pyx_t_17; int __pyx_t_18; __Pyx_RefNannySetupContext("downcoef", 0); __Pyx_INCREF(__pyx_v_kwargs); __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyList_SET_ITEM(__pyx_t_1, 0, Py_None); __pyx_v_dest_sig = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__pyx_v_kwargs != Py_None); __pyx_t_4 = (__pyx_t_3 != 0); if (__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L4_bool_binop_done; } __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 424, __pyx_L1_error) __pyx_t_3 = ((!__pyx_t_4) != 0); __pyx_t_2 = __pyx_t_3; __pyx_L4_bool_binop_done:; if (__pyx_t_2) { __Pyx_INCREF(Py_None); __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None); } __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_itemsize = -1L; if (unlikely(__pyx_v_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 424, __pyx_L1_error) } __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 424, __pyx_L1_error) __pyx_t_2 = ((1 < __pyx_t_5) != 0); if (__pyx_t_2) { if (unlikely(__pyx_v_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 424, __pyx_L1_error) } __pyx_t_1 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 1); __Pyx_INCREF(__pyx_t_1); __pyx_v_arg = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L6; } __pyx_t_3 = (__pyx_v_kwargs != Py_None); __pyx_t_4 = (__pyx_t_3 != 0); if (__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L7_bool_binop_done; } if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(0, 424, __pyx_L1_error) } __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_data, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 424, __pyx_L1_error) __pyx_t_3 = (__pyx_t_4 != 0); __pyx_t_2 = __pyx_t_3; __pyx_L7_bool_binop_done:; if (__pyx_t_2) { if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 424, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_arg = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L6; } /*else*/ { if (unlikely(__pyx_v_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 424, __pyx_L1_error) } __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 424, __pyx_L1_error) __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_int_5); __Pyx_GIVEREF(__pyx_int_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_5); __Pyx_INCREF(__pyx_n_s_s); __Pyx_GIVEREF(__pyx_n_s_s); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(0, 424, __pyx_L1_error) } __pyx_L6:; while (1) { __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None)); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_v_dtype = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L12; } __pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_v_arg_base = __pyx_t_6; __pyx_t_6 = 0; __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_v_dtype = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L13; } /*else*/ { __Pyx_INCREF(Py_None); __pyx_v_dtype = Py_None; } __pyx_L13:; goto __pyx_L12; } /*else*/ { __Pyx_INCREF(Py_None); __pyx_v_dtype = Py_None; } __pyx_L12:; __pyx_v_itemsize = -1L; __pyx_t_2 = (__pyx_v_dtype != Py_None); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_itemsize = __pyx_t_5; __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_kind = __pyx_t_7; __pyx_v_dtype_signed = (__pyx_v_kind == 'i'); switch (__pyx_v_kind) { case 'i': case 'u': break; case 'f': __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0); if (__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L16_bool_binop_done; } __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L16_bool_binop_done:; if (__pyx_t_3) { if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 424, __pyx_L1_error) goto __pyx_L10_break; } __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0); if (__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L19_bool_binop_done; } __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L19_bool_binop_done:; if (__pyx_t_3) { if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 424, __pyx_L1_error) goto __pyx_L10_break; } break; case 'c': __pyx_t_2 = (((sizeof(__pyx_t_float_complex)) == __pyx_v_itemsize) != 0); if (__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L22_bool_binop_done; } __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L22_bool_binop_done:; if (__pyx_t_3) { if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_float_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 424, __pyx_L1_error) goto __pyx_L10_break; } __pyx_t_2 = (((sizeof(__pyx_t_double_complex)) == __pyx_v_itemsize) != 0); if (__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L25_bool_binop_done; } __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L25_bool_binop_done:; if (__pyx_t_3) { if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 424, __pyx_L1_error) goto __pyx_L10_break; } break; case 'O': break; default: break; } } } __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0); if (!__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L28_bool_binop_done; } __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L28_bool_binop_done:; if (__pyx_t_3) { __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(__pyx_v_arg, 0); __pyx_v_memslice = __pyx_t_8; __pyx_t_3 = (__pyx_v_memslice.memview != 0); if (__pyx_t_3) { __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 424, __pyx_L1_error) goto __pyx_L10_break; } /*else*/ { PyErr_Clear(); } } __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0); if (!__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L32_bool_binop_done; } __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L32_bool_binop_done:; if (__pyx_t_3) { __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0); __pyx_v_memslice = __pyx_t_8; __pyx_t_3 = (__pyx_v_memslice.memview != 0); if (__pyx_t_3) { __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 424, __pyx_L1_error) goto __pyx_L10_break; } /*else*/ { PyErr_Clear(); } } __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0); if (!__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L36_bool_binop_done; } __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_float_complex))) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L36_bool_binop_done:; if (__pyx_t_3) { __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_float_complex(__pyx_v_arg, 0); __pyx_v_memslice = __pyx_t_8; __pyx_t_3 = (__pyx_v_memslice.memview != 0); if (__pyx_t_3) { __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_float_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 424, __pyx_L1_error) goto __pyx_L10_break; } /*else*/ { PyErr_Clear(); } } __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0); if (!__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L40_bool_binop_done; } __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_double_complex))) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L40_bool_binop_done:; if (__pyx_t_3) { __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_double_complex(__pyx_v_arg, 0); __pyx_v_memslice = __pyx_t_8; __pyx_t_3 = (__pyx_v_memslice.memview != 0); if (__pyx_t_3) { __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 424, __pyx_L1_error) goto __pyx_L10_break; } /*else*/ { PyErr_Clear(); } } if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 424, __pyx_L1_error) goto __pyx_L10_break; } __pyx_L10_break:; __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_v_candidates = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0; __pyx_t_5 = 0; if (unlikely(__pyx_v_signatures == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(0, 424, __pyx_L1_error) } __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = __pyx_t_1; __pyx_t_1 = 0; while (1) { __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_9, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_10); if (unlikely(__pyx_t_11 == 0)) break; if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1); __pyx_t_1 = 0; __pyx_v_match_found = 0; __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); } } __pyx_t_12 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__3); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); } } __pyx_t_1 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_12, __pyx_kp_s__4) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__4); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_15 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 424, __pyx_L1_error) __pyx_t_16 = __pyx_t_15; for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) { __pyx_v_i = __pyx_t_17; __pyx_t_1 = PyList_GET_ITEM(__pyx_v_dest_sig, __pyx_v_i); __Pyx_INCREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__pyx_v_dst_type != Py_None); __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_13 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (__pyx_t_2) { __pyx_v_match_found = 1; goto __pyx_L48; } /*else*/ { __pyx_v_match_found = 0; goto __pyx_L46_break; } __pyx_L48:; } } __pyx_L46_break:; __pyx_t_2 = (__pyx_v_match_found != 0); if (__pyx_t_2) { __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 424, __pyx_L1_error) } } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_candidates) != 0); __pyx_t_3 = ((!__pyx_t_2) != 0); if (__pyx_t_3) { __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(0, 424, __pyx_L1_error) } __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 424, __pyx_L1_error) __pyx_t_3 = ((__pyx_t_9 > 1) != 0); if (__pyx_t_3) { __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(0, 424, __pyx_L1_error) } /*else*/ { __Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_signatures == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 424, __pyx_L1_error) } __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), PyList_GET_ITEM(__pyx_v_candidates, 0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0; } /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_12); __Pyx_XDECREF(__pyx_t_13); __Pyx_XDECREF(__pyx_t_14); __Pyx_AddTraceback("pywt._extensions._dwt.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_dest_sig); __Pyx_XDECREF(__pyx_v_ndarray); __Pyx_XDECREF(__pyx_v_arg); __Pyx_XDECREF(__pyx_v_dtype); __Pyx_XDECREF(__pyx_v_arg_base); __Pyx_XDECREF(__pyx_v_candidates); __Pyx_XDECREF(__pyx_v_sig); __Pyx_XDECREF(__pyx_v_src_sig); __Pyx_XDECREF(__pyx_v_dst_type); __Pyx_XDECREF(__pyx_v_kwargs); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_37__pyx_fuse_0downcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_15downcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_fuse_0__pyx_f_4pywt_11_extensions_4_dwt_downcoef(int __pyx_v_do_dec_a, __Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode, int __pyx_v_level, CYTHON_UNUSED int __pyx_skip_dispatch) { __Pyx_memviewslice __pyx_v_coeffs = { 0, 0, { 0 }, { 0 }, { 0 } }; int __pyx_v_i; int __pyx_v_retval; size_t __pyx_v_output_len; size_t __pyx_v_data_size; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_t_3; int __pyx_t_4; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; size_t __pyx_t_7; size_t __pyx_t_8; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; __Pyx_memviewslice __pyx_t_12 = { 0, 0, { 0 }, { 0 }, { 0 } }; int __pyx_t_13; Py_ssize_t __pyx_t_14; Py_ssize_t __pyx_t_15; Py_ssize_t __pyx_t_16; Py_ssize_t __pyx_t_17; __Pyx_RefNannySetupContext("__pyx_fuse_0downcoef", 0); __PYX_INC_MEMVIEW(&__pyx_v_data, 1); /* "pywt/_extensions/_dwt.pyx":429 * cdef size_t output_len, data_size * * if level < 1: # <<<<<<<<<<<<<< * raise ValueError("Value of level must be greater than 0.") * */ __pyx_t_1 = ((__pyx_v_level < 1) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":430 * * if level < 1: * raise ValueError("Value of level must be greater than 0.") # <<<<<<<<<<<<<< * * for i in range(level): */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 430, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 430, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":429 * cdef size_t output_len, data_size * * if level < 1: # <<<<<<<<<<<<<< * raise ValueError("Value of level must be greater than 0.") * */ } /* "pywt/_extensions/_dwt.pyx":432 * raise ValueError("Value of level must be greater than 0.") * * for i in range(level): # <<<<<<<<<<<<<< * data_size = data.size * output_len = common.dwt_buffer_length(data.size, wavelet.dec_len, mode) */ __pyx_t_3 = __pyx_v_level; __pyx_t_4 = __pyx_t_3; for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_v_i = __pyx_t_5; /* "pywt/_extensions/_dwt.pyx":433 * * for i in range(level): * data_size = data.size # <<<<<<<<<<<<<< * output_len = common.dwt_buffer_length(data.size, wavelet.dec_len, mode) * if output_len < 1: */ __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = __Pyx_PyInt_As_size_t(__pyx_t_6); if (unlikely((__pyx_t_7 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 433, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_data_size = __pyx_t_7; /* "pywt/_extensions/_dwt.pyx":434 * for i in range(level): * data_size = data.size * output_len = common.dwt_buffer_length(data.size, wavelet.dec_len, mode) # <<<<<<<<<<<<<< * if output_len < 1: * raise RuntimeError("Invalid output length.") */ __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_7 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_dec_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_8 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_output_len = dwt_buffer_length(__pyx_t_7, __pyx_t_8, __pyx_v_mode); /* "pywt/_extensions/_dwt.pyx":435 * data_size = data.size * output_len = common.dwt_buffer_length(data.size, wavelet.dec_len, mode) * if output_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ __pyx_t_1 = ((__pyx_v_output_len < 1) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":436 * output_len = common.dwt_buffer_length(data.size, wavelet.dec_len, mode) * if output_len < 1: * raise RuntimeError("Invalid output length.") # <<<<<<<<<<<<<< * * # To mirror multi-level wavelet decomposition behaviour, when detail */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 436, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":435 * data_size = data.size * output_len = common.dwt_buffer_length(data.size, wavelet.dec_len, mode) * if output_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ } /* "pywt/_extensions/_dwt.pyx":458 * raise RuntimeError("C dec_d failed.") * elif cdata_t is np.float32_t: * coeffs = np.zeros(output_len, dtype=np.float32) # <<<<<<<<<<<<<< * if do_dec_a or (i < level - 1): * with nogil: */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_float32); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_11) < 0) __PYX_ERR(0, 458, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_12 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_11, PyBUF_WRITABLE); if (unlikely(!__pyx_t_12.memview)) __PYX_ERR(0, 458, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_XDEC_MEMVIEW(&__pyx_v_coeffs, 1); __pyx_v_coeffs = __pyx_t_12; __pyx_t_12.memview = NULL; __pyx_t_12.data = NULL; /* "pywt/_extensions/_dwt.pyx":459 * elif cdata_t is np.float32_t: * coeffs = np.zeros(output_len, dtype=np.float32) * if do_dec_a or (i < level - 1): # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.float_dec_a(&data[0], data_size, wavelet.w, */ __pyx_t_13 = (__pyx_v_do_dec_a != 0); if (!__pyx_t_13) { } else { __pyx_t_1 = __pyx_t_13; goto __pyx_L8_bool_binop_done; } __pyx_t_13 = ((__pyx_v_i < (__pyx_v_level - 1)) != 0); __pyx_t_1 = __pyx_t_13; __pyx_L8_bool_binop_done:; if (__pyx_t_1) { /* "pywt/_extensions/_dwt.pyx":460 * coeffs = np.zeros(output_len, dtype=np.float32) * if do_dec_a or (i < level - 1): * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_dec_a(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":461 * if do_dec_a or (i < level - 1): * with nogil: * retval = c_wt.float_dec_a(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &coeffs[0], output_len, mode) * if retval < 0: */ __pyx_t_14 = 0; /* "pywt/_extensions/_dwt.pyx":462 * with nogil: * retval = c_wt.float_dec_a(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) # <<<<<<<<<<<<<< * if retval < 0: * raise RuntimeError("C dec_a failed.") */ __pyx_t_15 = 0; /* "pywt/_extensions/_dwt.pyx":461 * if do_dec_a or (i < level - 1): * with nogil: * retval = c_wt.float_dec_a(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &coeffs[0], output_len, mode) * if retval < 0: */ __pyx_v_retval = float_dec_a((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_data.data) + __pyx_t_14)) )))), __pyx_v_data_size, __pyx_v_wavelet->w, (&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_coeffs.data) + __pyx_t_15)) )))), __pyx_v_output_len, __pyx_v_mode); } /* "pywt/_extensions/_dwt.pyx":460 * coeffs = np.zeros(output_len, dtype=np.float32) * if do_dec_a or (i < level - 1): * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_dec_a(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L14; } __pyx_L14:; } } /* "pywt/_extensions/_dwt.pyx":463 * retval = c_wt.float_dec_a(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C dec_a failed.") * else: */ __pyx_t_1 = ((__pyx_v_retval < 0) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":464 * &coeffs[0], output_len, mode) * if retval < 0: * raise RuntimeError("C dec_a failed.") # <<<<<<<<<<<<<< * else: * with nogil: */ __pyx_t_11 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_Raise(__pyx_t_11, 0, 0, 0); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_ERR(0, 464, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":463 * retval = c_wt.float_dec_a(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C dec_a failed.") * else: */ } /* "pywt/_extensions/_dwt.pyx":459 * elif cdata_t is np.float32_t: * coeffs = np.zeros(output_len, dtype=np.float32) * if do_dec_a or (i < level - 1): # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.float_dec_a(&data[0], data_size, wavelet.w, */ goto __pyx_L7; } /* "pywt/_extensions/_dwt.pyx":466 * raise RuntimeError("C dec_a failed.") * else: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_dec_d(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) */ /*else*/ { { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":467 * else: * with nogil: * retval = c_wt.float_dec_d(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &coeffs[0], output_len, mode) * if retval < 0: */ __pyx_t_16 = 0; /* "pywt/_extensions/_dwt.pyx":468 * with nogil: * retval = c_wt.float_dec_d(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) # <<<<<<<<<<<<<< * if retval < 0: * raise RuntimeError("C dec_d failed.") */ __pyx_t_17 = 0; /* "pywt/_extensions/_dwt.pyx":467 * else: * with nogil: * retval = c_wt.float_dec_d(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &coeffs[0], output_len, mode) * if retval < 0: */ __pyx_v_retval = float_dec_d((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_data.data) + __pyx_t_16)) )))), __pyx_v_data_size, __pyx_v_wavelet->w, (&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_coeffs.data) + __pyx_t_17)) )))), __pyx_v_output_len, __pyx_v_mode); } /* "pywt/_extensions/_dwt.pyx":466 * raise RuntimeError("C dec_a failed.") * else: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_dec_d(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L20; } __pyx_L20:; } } /* "pywt/_extensions/_dwt.pyx":469 * retval = c_wt.float_dec_d(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C dec_d failed.") * IF HAVE_C99_CPLX: */ __pyx_t_1 = ((__pyx_v_retval < 0) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":470 * &coeffs[0], output_len, mode) * if retval < 0: * raise RuntimeError("C dec_d failed.") # <<<<<<<<<<<<<< * IF HAVE_C99_CPLX: * if cdata_t is np.complex128_t: */ __pyx_t_11 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 470, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_Raise(__pyx_t_11, 0, 0, 0); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_ERR(0, 470, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":469 * retval = c_wt.float_dec_d(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C dec_d failed.") * IF HAVE_C99_CPLX: */ } } __pyx_L7:; /* "pywt/_extensions/_dwt.pyx":500 * if retval < 0: * raise RuntimeError("C dec_d failed.") * data = coeffs # <<<<<<<<<<<<<< * * return coeffs */ __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __PYX_INC_MEMVIEW(&__pyx_v_coeffs, 0); __pyx_v_data = __pyx_v_coeffs; } /* "pywt/_extensions/_dwt.pyx":502 * data = coeffs * * return coeffs # <<<<<<<<<<<<<< */ __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_coeffs.memview)) { __Pyx_RaiseUnboundLocalError("coeffs"); __PYX_ERR(0, 502, __pyx_L1_error) } __pyx_t_11 = __pyx_memoryview_fromslice(__pyx_v_coeffs, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_r = __pyx_t_11; __pyx_t_11 = 0; goto __pyx_L0; /* "pywt/_extensions/_dwt.pyx":424 * * * cpdef downcoef(bint do_dec_a, cdata_t[::1] data, Wavelet wavelet, MODE mode, int level): # <<<<<<<<<<<<<< * cdef cdata_t[::1] coeffs * cdef int i, retval */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __PYX_XDEC_MEMVIEW(&__pyx_t_12, 1); __Pyx_AddTraceback("pywt._extensions._dwt.downcoef", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_coeffs, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_37__pyx_fuse_0downcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_0__pyx_mdef_4pywt_11_extensions_4_dwt_37__pyx_fuse_0downcoef = {"__pyx_fuse_0downcoef", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_4_dwt_37__pyx_fuse_0downcoef, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_37__pyx_fuse_0downcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { int __pyx_v_do_dec_a; __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } }; struct WaveletObject *__pyx_v_wavelet = 0; MODE __pyx_v_mode; int __pyx_v_level; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_0downcoef (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_do_dec_a,&__pyx_n_s_data,&__pyx_n_s_wavelet,&__pyx_n_s_mode,&__pyx_n_s_level,0}; PyObject* values[5] = {0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_do_dec_a)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0downcoef", 1, 5, 5, 1); __PYX_ERR(0, 424, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wavelet)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0downcoef", 1, 5, 5, 2); __PYX_ERR(0, 424, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0downcoef", 1, 5, 5, 3); __PYX_ERR(0, 424, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0downcoef", 1, 5, 5, 4); __PYX_ERR(0, 424, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_0downcoef") < 0)) __PYX_ERR(0, 424, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); } __pyx_v_do_dec_a = __Pyx_PyObject_IsTrue(values[0]); if (unlikely((__pyx_v_do_dec_a == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 424, __pyx_L3_error) __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 424, __pyx_L3_error) __pyx_v_wavelet = ((struct WaveletObject *)values[2]); __pyx_v_mode = ((MODE)__Pyx_PyInt_As_MODE(values[3])); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 424, __pyx_L3_error) __pyx_v_level = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_level == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 424, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__pyx_fuse_0downcoef", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 424, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._dwt.__pyx_fuse_0downcoef", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_wavelet), __pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet, 1, "wavelet", 0))) __PYX_ERR(0, 424, __pyx_L1_error) __pyx_r = __pyx_pf_4pywt_11_extensions_4_dwt_36__pyx_fuse_0downcoef(__pyx_self, __pyx_v_do_dec_a, __pyx_v_data, __pyx_v_wavelet, __pyx_v_mode, __pyx_v_level); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_36__pyx_fuse_0downcoef(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_do_dec_a, __Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode, int __pyx_v_level) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__pyx_fuse_0downcoef", 0); __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_data.memview)) { __Pyx_RaiseUnboundLocalError("data"); __PYX_ERR(0, 424, __pyx_L1_error) } __pyx_t_1 = __pyx_fuse_0__pyx_f_4pywt_11_extensions_4_dwt_downcoef(__pyx_v_do_dec_a, __pyx_v_data, __pyx_v_wavelet, __pyx_v_mode, __pyx_v_level, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._dwt.__pyx_fuse_0downcoef", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_39__pyx_fuse_1downcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_15downcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_fuse_1__pyx_f_4pywt_11_extensions_4_dwt_downcoef(int __pyx_v_do_dec_a, __Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode, int __pyx_v_level, CYTHON_UNUSED int __pyx_skip_dispatch) { __Pyx_memviewslice __pyx_v_coeffs = { 0, 0, { 0 }, { 0 }, { 0 } }; int __pyx_v_i; int __pyx_v_retval; size_t __pyx_v_output_len; size_t __pyx_v_data_size; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_t_3; int __pyx_t_4; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; size_t __pyx_t_7; size_t __pyx_t_8; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; __Pyx_memviewslice __pyx_t_12 = { 0, 0, { 0 }, { 0 }, { 0 } }; int __pyx_t_13; Py_ssize_t __pyx_t_14; Py_ssize_t __pyx_t_15; Py_ssize_t __pyx_t_16; Py_ssize_t __pyx_t_17; __Pyx_RefNannySetupContext("__pyx_fuse_1downcoef", 0); __PYX_INC_MEMVIEW(&__pyx_v_data, 1); /* "pywt/_extensions/_dwt.pyx":429 * cdef size_t output_len, data_size * * if level < 1: # <<<<<<<<<<<<<< * raise ValueError("Value of level must be greater than 0.") * */ __pyx_t_1 = ((__pyx_v_level < 1) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":430 * * if level < 1: * raise ValueError("Value of level must be greater than 0.") # <<<<<<<<<<<<<< * * for i in range(level): */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 430, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 430, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":429 * cdef size_t output_len, data_size * * if level < 1: # <<<<<<<<<<<<<< * raise ValueError("Value of level must be greater than 0.") * */ } /* "pywt/_extensions/_dwt.pyx":432 * raise ValueError("Value of level must be greater than 0.") * * for i in range(level): # <<<<<<<<<<<<<< * data_size = data.size * output_len = common.dwt_buffer_length(data.size, wavelet.dec_len, mode) */ __pyx_t_3 = __pyx_v_level; __pyx_t_4 = __pyx_t_3; for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_v_i = __pyx_t_5; /* "pywt/_extensions/_dwt.pyx":433 * * for i in range(level): * data_size = data.size # <<<<<<<<<<<<<< * output_len = common.dwt_buffer_length(data.size, wavelet.dec_len, mode) * if output_len < 1: */ __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = __Pyx_PyInt_As_size_t(__pyx_t_6); if (unlikely((__pyx_t_7 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 433, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_data_size = __pyx_t_7; /* "pywt/_extensions/_dwt.pyx":434 * for i in range(level): * data_size = data.size * output_len = common.dwt_buffer_length(data.size, wavelet.dec_len, mode) # <<<<<<<<<<<<<< * if output_len < 1: * raise RuntimeError("Invalid output length.") */ __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_7 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_dec_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_8 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_output_len = dwt_buffer_length(__pyx_t_7, __pyx_t_8, __pyx_v_mode); /* "pywt/_extensions/_dwt.pyx":435 * data_size = data.size * output_len = common.dwt_buffer_length(data.size, wavelet.dec_len, mode) * if output_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ __pyx_t_1 = ((__pyx_v_output_len < 1) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":436 * output_len = common.dwt_buffer_length(data.size, wavelet.dec_len, mode) * if output_len < 1: * raise RuntimeError("Invalid output length.") # <<<<<<<<<<<<<< * * # To mirror multi-level wavelet decomposition behaviour, when detail */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 436, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":435 * data_size = data.size * output_len = common.dwt_buffer_length(data.size, wavelet.dec_len, mode) * if output_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ } /* "pywt/_extensions/_dwt.pyx":444 * # detail filter on the approximation coefficients of level n-1. * if cdata_t is np.float64_t: * coeffs = np.zeros(output_len, dtype=np.float64) # <<<<<<<<<<<<<< * if do_dec_a or (i < level - 1): * with nogil: */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_float64); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_11) < 0) __PYX_ERR(0, 444, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_12 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_11, PyBUF_WRITABLE); if (unlikely(!__pyx_t_12.memview)) __PYX_ERR(0, 444, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_XDEC_MEMVIEW(&__pyx_v_coeffs, 1); __pyx_v_coeffs = __pyx_t_12; __pyx_t_12.memview = NULL; __pyx_t_12.data = NULL; /* "pywt/_extensions/_dwt.pyx":445 * if cdata_t is np.float64_t: * coeffs = np.zeros(output_len, dtype=np.float64) * if do_dec_a or (i < level - 1): # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.double_dec_a(&data[0], data_size, wavelet.w, */ __pyx_t_13 = (__pyx_v_do_dec_a != 0); if (!__pyx_t_13) { } else { __pyx_t_1 = __pyx_t_13; goto __pyx_L8_bool_binop_done; } __pyx_t_13 = ((__pyx_v_i < (__pyx_v_level - 1)) != 0); __pyx_t_1 = __pyx_t_13; __pyx_L8_bool_binop_done:; if (__pyx_t_1) { /* "pywt/_extensions/_dwt.pyx":446 * coeffs = np.zeros(output_len, dtype=np.float64) * if do_dec_a or (i < level - 1): * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_dec_a(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":447 * if do_dec_a or (i < level - 1): * with nogil: * retval = c_wt.double_dec_a(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &coeffs[0], output_len, mode) * if retval < 0: */ __pyx_t_14 = 0; /* "pywt/_extensions/_dwt.pyx":448 * with nogil: * retval = c_wt.double_dec_a(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) # <<<<<<<<<<<<<< * if retval < 0: * raise RuntimeError("C dec_a failed.") */ __pyx_t_15 = 0; /* "pywt/_extensions/_dwt.pyx":447 * if do_dec_a or (i < level - 1): * with nogil: * retval = c_wt.double_dec_a(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &coeffs[0], output_len, mode) * if retval < 0: */ __pyx_v_retval = double_dec_a((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_data.data) + __pyx_t_14)) )))), __pyx_v_data_size, __pyx_v_wavelet->w, (&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_coeffs.data) + __pyx_t_15)) )))), __pyx_v_output_len, __pyx_v_mode); } /* "pywt/_extensions/_dwt.pyx":446 * coeffs = np.zeros(output_len, dtype=np.float64) * if do_dec_a or (i < level - 1): * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_dec_a(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L14; } __pyx_L14:; } } /* "pywt/_extensions/_dwt.pyx":449 * retval = c_wt.double_dec_a(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C dec_a failed.") * else: */ __pyx_t_1 = ((__pyx_v_retval < 0) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":450 * &coeffs[0], output_len, mode) * if retval < 0: * raise RuntimeError("C dec_a failed.") # <<<<<<<<<<<<<< * else: * with nogil: */ __pyx_t_11 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_Raise(__pyx_t_11, 0, 0, 0); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_ERR(0, 450, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":449 * retval = c_wt.double_dec_a(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C dec_a failed.") * else: */ } /* "pywt/_extensions/_dwt.pyx":445 * if cdata_t is np.float64_t: * coeffs = np.zeros(output_len, dtype=np.float64) * if do_dec_a or (i < level - 1): # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.double_dec_a(&data[0], data_size, wavelet.w, */ goto __pyx_L7; } /* "pywt/_extensions/_dwt.pyx":452 * raise RuntimeError("C dec_a failed.") * else: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_dec_d(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) */ /*else*/ { { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":453 * else: * with nogil: * retval = c_wt.double_dec_d(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &coeffs[0], output_len, mode) * if retval < 0: */ __pyx_t_16 = 0; /* "pywt/_extensions/_dwt.pyx":454 * with nogil: * retval = c_wt.double_dec_d(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) # <<<<<<<<<<<<<< * if retval < 0: * raise RuntimeError("C dec_d failed.") */ __pyx_t_17 = 0; /* "pywt/_extensions/_dwt.pyx":453 * else: * with nogil: * retval = c_wt.double_dec_d(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &coeffs[0], output_len, mode) * if retval < 0: */ __pyx_v_retval = double_dec_d((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_data.data) + __pyx_t_16)) )))), __pyx_v_data_size, __pyx_v_wavelet->w, (&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_coeffs.data) + __pyx_t_17)) )))), __pyx_v_output_len, __pyx_v_mode); } /* "pywt/_extensions/_dwt.pyx":452 * raise RuntimeError("C dec_a failed.") * else: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_dec_d(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L20; } __pyx_L20:; } } /* "pywt/_extensions/_dwt.pyx":455 * retval = c_wt.double_dec_d(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C dec_d failed.") * elif cdata_t is np.float32_t: */ __pyx_t_1 = ((__pyx_v_retval < 0) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":456 * &coeffs[0], output_len, mode) * if retval < 0: * raise RuntimeError("C dec_d failed.") # <<<<<<<<<<<<<< * elif cdata_t is np.float32_t: * coeffs = np.zeros(output_len, dtype=np.float32) */ __pyx_t_11 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_Raise(__pyx_t_11, 0, 0, 0); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_ERR(0, 456, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":455 * retval = c_wt.double_dec_d(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C dec_d failed.") * elif cdata_t is np.float32_t: */ } } __pyx_L7:; /* "pywt/_extensions/_dwt.pyx":500 * if retval < 0: * raise RuntimeError("C dec_d failed.") * data = coeffs # <<<<<<<<<<<<<< * * return coeffs */ __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __PYX_INC_MEMVIEW(&__pyx_v_coeffs, 0); __pyx_v_data = __pyx_v_coeffs; } /* "pywt/_extensions/_dwt.pyx":502 * data = coeffs * * return coeffs # <<<<<<<<<<<<<< */ __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_coeffs.memview)) { __Pyx_RaiseUnboundLocalError("coeffs"); __PYX_ERR(0, 502, __pyx_L1_error) } __pyx_t_11 = __pyx_memoryview_fromslice(__pyx_v_coeffs, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_r = __pyx_t_11; __pyx_t_11 = 0; goto __pyx_L0; /* "pywt/_extensions/_dwt.pyx":424 * * * cpdef downcoef(bint do_dec_a, cdata_t[::1] data, Wavelet wavelet, MODE mode, int level): # <<<<<<<<<<<<<< * cdef cdata_t[::1] coeffs * cdef int i, retval */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __PYX_XDEC_MEMVIEW(&__pyx_t_12, 1); __Pyx_AddTraceback("pywt._extensions._dwt.downcoef", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_coeffs, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_39__pyx_fuse_1downcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_1__pyx_mdef_4pywt_11_extensions_4_dwt_39__pyx_fuse_1downcoef = {"__pyx_fuse_1downcoef", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_4_dwt_39__pyx_fuse_1downcoef, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_39__pyx_fuse_1downcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { int __pyx_v_do_dec_a; __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } }; struct WaveletObject *__pyx_v_wavelet = 0; MODE __pyx_v_mode; int __pyx_v_level; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_1downcoef (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_do_dec_a,&__pyx_n_s_data,&__pyx_n_s_wavelet,&__pyx_n_s_mode,&__pyx_n_s_level,0}; PyObject* values[5] = {0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_do_dec_a)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1downcoef", 1, 5, 5, 1); __PYX_ERR(0, 424, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wavelet)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1downcoef", 1, 5, 5, 2); __PYX_ERR(0, 424, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1downcoef", 1, 5, 5, 3); __PYX_ERR(0, 424, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1downcoef", 1, 5, 5, 4); __PYX_ERR(0, 424, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_1downcoef") < 0)) __PYX_ERR(0, 424, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); } __pyx_v_do_dec_a = __Pyx_PyObject_IsTrue(values[0]); if (unlikely((__pyx_v_do_dec_a == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 424, __pyx_L3_error) __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 424, __pyx_L3_error) __pyx_v_wavelet = ((struct WaveletObject *)values[2]); __pyx_v_mode = ((MODE)__Pyx_PyInt_As_MODE(values[3])); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 424, __pyx_L3_error) __pyx_v_level = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_level == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 424, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__pyx_fuse_1downcoef", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 424, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._dwt.__pyx_fuse_1downcoef", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_wavelet), __pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet, 1, "wavelet", 0))) __PYX_ERR(0, 424, __pyx_L1_error) __pyx_r = __pyx_pf_4pywt_11_extensions_4_dwt_38__pyx_fuse_1downcoef(__pyx_self, __pyx_v_do_dec_a, __pyx_v_data, __pyx_v_wavelet, __pyx_v_mode, __pyx_v_level); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_38__pyx_fuse_1downcoef(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_do_dec_a, __Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode, int __pyx_v_level) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__pyx_fuse_1downcoef", 0); __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_data.memview)) { __Pyx_RaiseUnboundLocalError("data"); __PYX_ERR(0, 424, __pyx_L1_error) } __pyx_t_1 = __pyx_fuse_1__pyx_f_4pywt_11_extensions_4_dwt_downcoef(__pyx_v_do_dec_a, __pyx_v_data, __pyx_v_wavelet, __pyx_v_mode, __pyx_v_level, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._dwt.__pyx_fuse_1downcoef", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_41__pyx_fuse_2downcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_15downcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_fuse_2__pyx_f_4pywt_11_extensions_4_dwt_downcoef(int __pyx_v_do_dec_a, __Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode, int __pyx_v_level, CYTHON_UNUSED int __pyx_skip_dispatch) { __Pyx_memviewslice __pyx_v_coeffs = { 0, 0, { 0 }, { 0 }, { 0 } }; int __pyx_v_i; int __pyx_v_retval; size_t __pyx_v_output_len; size_t __pyx_v_data_size; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_t_3; int __pyx_t_4; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; size_t __pyx_t_7; size_t __pyx_t_8; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; __Pyx_memviewslice __pyx_t_12 = { 0, 0, { 0 }, { 0 }, { 0 } }; int __pyx_t_13; Py_ssize_t __pyx_t_14; Py_ssize_t __pyx_t_15; Py_ssize_t __pyx_t_16; Py_ssize_t __pyx_t_17; __Pyx_RefNannySetupContext("__pyx_fuse_2downcoef", 0); __PYX_INC_MEMVIEW(&__pyx_v_data, 1); /* "pywt/_extensions/_dwt.pyx":429 * cdef size_t output_len, data_size * * if level < 1: # <<<<<<<<<<<<<< * raise ValueError("Value of level must be greater than 0.") * */ __pyx_t_1 = ((__pyx_v_level < 1) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":430 * * if level < 1: * raise ValueError("Value of level must be greater than 0.") # <<<<<<<<<<<<<< * * for i in range(level): */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 430, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 430, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":429 * cdef size_t output_len, data_size * * if level < 1: # <<<<<<<<<<<<<< * raise ValueError("Value of level must be greater than 0.") * */ } /* "pywt/_extensions/_dwt.pyx":432 * raise ValueError("Value of level must be greater than 0.") * * for i in range(level): # <<<<<<<<<<<<<< * data_size = data.size * output_len = common.dwt_buffer_length(data.size, wavelet.dec_len, mode) */ __pyx_t_3 = __pyx_v_level; __pyx_t_4 = __pyx_t_3; for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_v_i = __pyx_t_5; /* "pywt/_extensions/_dwt.pyx":433 * * for i in range(level): * data_size = data.size # <<<<<<<<<<<<<< * output_len = common.dwt_buffer_length(data.size, wavelet.dec_len, mode) * if output_len < 1: */ __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_float_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_float_complex, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = __Pyx_PyInt_As_size_t(__pyx_t_6); if (unlikely((__pyx_t_7 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 433, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_data_size = __pyx_t_7; /* "pywt/_extensions/_dwt.pyx":434 * for i in range(level): * data_size = data.size * output_len = common.dwt_buffer_length(data.size, wavelet.dec_len, mode) # <<<<<<<<<<<<<< * if output_len < 1: * raise RuntimeError("Invalid output length.") */ __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_float_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_float_complex, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_7 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_dec_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_8 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_output_len = dwt_buffer_length(__pyx_t_7, __pyx_t_8, __pyx_v_mode); /* "pywt/_extensions/_dwt.pyx":435 * data_size = data.size * output_len = common.dwt_buffer_length(data.size, wavelet.dec_len, mode) * if output_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ __pyx_t_1 = ((__pyx_v_output_len < 1) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":436 * output_len = common.dwt_buffer_length(data.size, wavelet.dec_len, mode) * if output_len < 1: * raise RuntimeError("Invalid output length.") # <<<<<<<<<<<<<< * * # To mirror multi-level wavelet decomposition behaviour, when detail */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 436, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":435 * data_size = data.size * output_len = common.dwt_buffer_length(data.size, wavelet.dec_len, mode) * if output_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ } /* "pywt/_extensions/_dwt.pyx":487 * raise RuntimeError("C dec_d failed.") * elif cdata_t is np.complex64_t: * coeffs = np.zeros(output_len, dtype=np.complex64) # <<<<<<<<<<<<<< * if do_dec_a or (i < level - 1): * with nogil: */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_complex64); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_11) < 0) __PYX_ERR(0, 487, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 487, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_12 = __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_float_complex(__pyx_t_11, PyBUF_WRITABLE); if (unlikely(!__pyx_t_12.memview)) __PYX_ERR(0, 487, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_XDEC_MEMVIEW(&__pyx_v_coeffs, 1); __pyx_v_coeffs = __pyx_t_12; __pyx_t_12.memview = NULL; __pyx_t_12.data = NULL; /* "pywt/_extensions/_dwt.pyx":488 * elif cdata_t is np.complex64_t: * coeffs = np.zeros(output_len, dtype=np.complex64) * if do_dec_a or (i < level - 1): # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.float_complex_dec_a(&data[0], data_size, wavelet.w, */ __pyx_t_13 = (__pyx_v_do_dec_a != 0); if (!__pyx_t_13) { } else { __pyx_t_1 = __pyx_t_13; goto __pyx_L8_bool_binop_done; } __pyx_t_13 = ((__pyx_v_i < (__pyx_v_level - 1)) != 0); __pyx_t_1 = __pyx_t_13; __pyx_L8_bool_binop_done:; if (__pyx_t_1) { /* "pywt/_extensions/_dwt.pyx":489 * coeffs = np.zeros(output_len, dtype=np.complex64) * if do_dec_a or (i < level - 1): * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_complex_dec_a(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":490 * if do_dec_a or (i < level - 1): * with nogil: * retval = c_wt.float_complex_dec_a(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &coeffs[0], output_len, mode) * if retval < 0: */ __pyx_t_14 = 0; /* "pywt/_extensions/_dwt.pyx":491 * with nogil: * retval = c_wt.float_complex_dec_a(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) # <<<<<<<<<<<<<< * if retval < 0: * raise RuntimeError("C dec_a failed.") */ __pyx_t_15 = 0; /* "pywt/_extensions/_dwt.pyx":490 * if do_dec_a or (i < level - 1): * with nogil: * retval = c_wt.float_complex_dec_a(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &coeffs[0], output_len, mode) * if retval < 0: */ __pyx_v_retval = float_complex_dec_a((&(*((__pyx_t_float_complex *) ( /* dim=0 */ ((char *) (((__pyx_t_float_complex *) __pyx_v_data.data) + __pyx_t_14)) )))), __pyx_v_data_size, __pyx_v_wavelet->w, (&(*((__pyx_t_float_complex *) ( /* dim=0 */ ((char *) (((__pyx_t_float_complex *) __pyx_v_coeffs.data) + __pyx_t_15)) )))), __pyx_v_output_len, __pyx_v_mode); } /* "pywt/_extensions/_dwt.pyx":489 * coeffs = np.zeros(output_len, dtype=np.complex64) * if do_dec_a or (i < level - 1): * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_complex_dec_a(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L14; } __pyx_L14:; } } /* "pywt/_extensions/_dwt.pyx":492 * retval = c_wt.float_complex_dec_a(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C dec_a failed.") * else: */ __pyx_t_1 = ((__pyx_v_retval < 0) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":493 * &coeffs[0], output_len, mode) * if retval < 0: * raise RuntimeError("C dec_a failed.") # <<<<<<<<<<<<<< * else: * with nogil: */ __pyx_t_11 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_Raise(__pyx_t_11, 0, 0, 0); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_ERR(0, 493, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":492 * retval = c_wt.float_complex_dec_a(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C dec_a failed.") * else: */ } /* "pywt/_extensions/_dwt.pyx":488 * elif cdata_t is np.complex64_t: * coeffs = np.zeros(output_len, dtype=np.complex64) * if do_dec_a or (i < level - 1): # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.float_complex_dec_a(&data[0], data_size, wavelet.w, */ goto __pyx_L7; } /* "pywt/_extensions/_dwt.pyx":495 * raise RuntimeError("C dec_a failed.") * else: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_complex_dec_d(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) */ /*else*/ { { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":496 * else: * with nogil: * retval = c_wt.float_complex_dec_d(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &coeffs[0], output_len, mode) * if retval < 0: */ __pyx_t_16 = 0; /* "pywt/_extensions/_dwt.pyx":497 * with nogil: * retval = c_wt.float_complex_dec_d(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) # <<<<<<<<<<<<<< * if retval < 0: * raise RuntimeError("C dec_d failed.") */ __pyx_t_17 = 0; /* "pywt/_extensions/_dwt.pyx":496 * else: * with nogil: * retval = c_wt.float_complex_dec_d(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &coeffs[0], output_len, mode) * if retval < 0: */ __pyx_v_retval = float_complex_dec_d((&(*((__pyx_t_float_complex *) ( /* dim=0 */ ((char *) (((__pyx_t_float_complex *) __pyx_v_data.data) + __pyx_t_16)) )))), __pyx_v_data_size, __pyx_v_wavelet->w, (&(*((__pyx_t_float_complex *) ( /* dim=0 */ ((char *) (((__pyx_t_float_complex *) __pyx_v_coeffs.data) + __pyx_t_17)) )))), __pyx_v_output_len, __pyx_v_mode); } /* "pywt/_extensions/_dwt.pyx":495 * raise RuntimeError("C dec_a failed.") * else: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_complex_dec_d(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L20; } __pyx_L20:; } } /* "pywt/_extensions/_dwt.pyx":498 * retval = c_wt.float_complex_dec_d(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C dec_d failed.") * data = coeffs */ __pyx_t_1 = ((__pyx_v_retval < 0) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":499 * &coeffs[0], output_len, mode) * if retval < 0: * raise RuntimeError("C dec_d failed.") # <<<<<<<<<<<<<< * data = coeffs * */ __pyx_t_11 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_Raise(__pyx_t_11, 0, 0, 0); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_ERR(0, 499, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":498 * retval = c_wt.float_complex_dec_d(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C dec_d failed.") * data = coeffs */ } } __pyx_L7:; /* "pywt/_extensions/_dwt.pyx":500 * if retval < 0: * raise RuntimeError("C dec_d failed.") * data = coeffs # <<<<<<<<<<<<<< * * return coeffs */ __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __PYX_INC_MEMVIEW(&__pyx_v_coeffs, 0); __pyx_v_data = __pyx_v_coeffs; } /* "pywt/_extensions/_dwt.pyx":502 * data = coeffs * * return coeffs # <<<<<<<<<<<<<< */ __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_coeffs.memview)) { __Pyx_RaiseUnboundLocalError("coeffs"); __PYX_ERR(0, 502, __pyx_L1_error) } __pyx_t_11 = __pyx_memoryview_fromslice(__pyx_v_coeffs, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_float_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_float_complex, 0);; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_r = __pyx_t_11; __pyx_t_11 = 0; goto __pyx_L0; /* "pywt/_extensions/_dwt.pyx":424 * * * cpdef downcoef(bint do_dec_a, cdata_t[::1] data, Wavelet wavelet, MODE mode, int level): # <<<<<<<<<<<<<< * cdef cdata_t[::1] coeffs * cdef int i, retval */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __PYX_XDEC_MEMVIEW(&__pyx_t_12, 1); __Pyx_AddTraceback("pywt._extensions._dwt.downcoef", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_coeffs, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_41__pyx_fuse_2downcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_2__pyx_mdef_4pywt_11_extensions_4_dwt_41__pyx_fuse_2downcoef = {"__pyx_fuse_2downcoef", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_4_dwt_41__pyx_fuse_2downcoef, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_41__pyx_fuse_2downcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { int __pyx_v_do_dec_a; __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } }; struct WaveletObject *__pyx_v_wavelet = 0; MODE __pyx_v_mode; int __pyx_v_level; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_2downcoef (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_do_dec_a,&__pyx_n_s_data,&__pyx_n_s_wavelet,&__pyx_n_s_mode,&__pyx_n_s_level,0}; PyObject* values[5] = {0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_do_dec_a)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_2downcoef", 1, 5, 5, 1); __PYX_ERR(0, 424, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wavelet)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_2downcoef", 1, 5, 5, 2); __PYX_ERR(0, 424, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_2downcoef", 1, 5, 5, 3); __PYX_ERR(0, 424, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_2downcoef", 1, 5, 5, 4); __PYX_ERR(0, 424, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_2downcoef") < 0)) __PYX_ERR(0, 424, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); } __pyx_v_do_dec_a = __Pyx_PyObject_IsTrue(values[0]); if (unlikely((__pyx_v_do_dec_a == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 424, __pyx_L3_error) __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_float_complex(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 424, __pyx_L3_error) __pyx_v_wavelet = ((struct WaveletObject *)values[2]); __pyx_v_mode = ((MODE)__Pyx_PyInt_As_MODE(values[3])); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 424, __pyx_L3_error) __pyx_v_level = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_level == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 424, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__pyx_fuse_2downcoef", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 424, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._dwt.__pyx_fuse_2downcoef", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_wavelet), __pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet, 1, "wavelet", 0))) __PYX_ERR(0, 424, __pyx_L1_error) __pyx_r = __pyx_pf_4pywt_11_extensions_4_dwt_40__pyx_fuse_2downcoef(__pyx_self, __pyx_v_do_dec_a, __pyx_v_data, __pyx_v_wavelet, __pyx_v_mode, __pyx_v_level); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_40__pyx_fuse_2downcoef(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_do_dec_a, __Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode, int __pyx_v_level) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__pyx_fuse_2downcoef", 0); __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_data.memview)) { __Pyx_RaiseUnboundLocalError("data"); __PYX_ERR(0, 424, __pyx_L1_error) } __pyx_t_1 = __pyx_fuse_2__pyx_f_4pywt_11_extensions_4_dwt_downcoef(__pyx_v_do_dec_a, __pyx_v_data, __pyx_v_wavelet, __pyx_v_mode, __pyx_v_level, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._dwt.__pyx_fuse_2downcoef", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_43__pyx_fuse_3downcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_15downcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_fuse_3__pyx_f_4pywt_11_extensions_4_dwt_downcoef(int __pyx_v_do_dec_a, __Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode, int __pyx_v_level, CYTHON_UNUSED int __pyx_skip_dispatch) { __Pyx_memviewslice __pyx_v_coeffs = { 0, 0, { 0 }, { 0 }, { 0 } }; int __pyx_v_i; int __pyx_v_retval; size_t __pyx_v_output_len; size_t __pyx_v_data_size; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_t_3; int __pyx_t_4; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; size_t __pyx_t_7; size_t __pyx_t_8; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; __Pyx_memviewslice __pyx_t_12 = { 0, 0, { 0 }, { 0 }, { 0 } }; int __pyx_t_13; Py_ssize_t __pyx_t_14; Py_ssize_t __pyx_t_15; Py_ssize_t __pyx_t_16; Py_ssize_t __pyx_t_17; __Pyx_RefNannySetupContext("__pyx_fuse_3downcoef", 0); __PYX_INC_MEMVIEW(&__pyx_v_data, 1); /* "pywt/_extensions/_dwt.pyx":429 * cdef size_t output_len, data_size * * if level < 1: # <<<<<<<<<<<<<< * raise ValueError("Value of level must be greater than 0.") * */ __pyx_t_1 = ((__pyx_v_level < 1) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":430 * * if level < 1: * raise ValueError("Value of level must be greater than 0.") # <<<<<<<<<<<<<< * * for i in range(level): */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 430, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 430, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":429 * cdef size_t output_len, data_size * * if level < 1: # <<<<<<<<<<<<<< * raise ValueError("Value of level must be greater than 0.") * */ } /* "pywt/_extensions/_dwt.pyx":432 * raise ValueError("Value of level must be greater than 0.") * * for i in range(level): # <<<<<<<<<<<<<< * data_size = data.size * output_len = common.dwt_buffer_length(data.size, wavelet.dec_len, mode) */ __pyx_t_3 = __pyx_v_level; __pyx_t_4 = __pyx_t_3; for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_v_i = __pyx_t_5; /* "pywt/_extensions/_dwt.pyx":433 * * for i in range(level): * data_size = data.size # <<<<<<<<<<<<<< * output_len = common.dwt_buffer_length(data.size, wavelet.dec_len, mode) * if output_len < 1: */ __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_double_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_double_complex, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = __Pyx_PyInt_As_size_t(__pyx_t_6); if (unlikely((__pyx_t_7 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 433, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_data_size = __pyx_t_7; /* "pywt/_extensions/_dwt.pyx":434 * for i in range(level): * data_size = data.size * output_len = common.dwt_buffer_length(data.size, wavelet.dec_len, mode) # <<<<<<<<<<<<<< * if output_len < 1: * raise RuntimeError("Invalid output length.") */ __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_double_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_double_complex, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_7 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_wavelet), __pyx_n_s_dec_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_8 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 434, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_output_len = dwt_buffer_length(__pyx_t_7, __pyx_t_8, __pyx_v_mode); /* "pywt/_extensions/_dwt.pyx":435 * data_size = data.size * output_len = common.dwt_buffer_length(data.size, wavelet.dec_len, mode) * if output_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ __pyx_t_1 = ((__pyx_v_output_len < 1) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":436 * output_len = common.dwt_buffer_length(data.size, wavelet.dec_len, mode) * if output_len < 1: * raise RuntimeError("Invalid output length.") # <<<<<<<<<<<<<< * * # To mirror multi-level wavelet decomposition behaviour, when detail */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 436, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":435 * data_size = data.size * output_len = common.dwt_buffer_length(data.size, wavelet.dec_len, mode) * if output_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ } /* "pywt/_extensions/_dwt.pyx":473 * IF HAVE_C99_CPLX: * if cdata_t is np.complex128_t: * coeffs = np.zeros(output_len, dtype=np.complex128) # <<<<<<<<<<<<<< * if do_dec_a or (i < level - 1): * with nogil: */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_complex128); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_11) < 0) __PYX_ERR(0, 473, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_12 = __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_double_complex(__pyx_t_11, PyBUF_WRITABLE); if (unlikely(!__pyx_t_12.memview)) __PYX_ERR(0, 473, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_XDEC_MEMVIEW(&__pyx_v_coeffs, 1); __pyx_v_coeffs = __pyx_t_12; __pyx_t_12.memview = NULL; __pyx_t_12.data = NULL; /* "pywt/_extensions/_dwt.pyx":474 * if cdata_t is np.complex128_t: * coeffs = np.zeros(output_len, dtype=np.complex128) * if do_dec_a or (i < level - 1): # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.double_complex_dec_a(&data[0], data_size, wavelet.w, */ __pyx_t_13 = (__pyx_v_do_dec_a != 0); if (!__pyx_t_13) { } else { __pyx_t_1 = __pyx_t_13; goto __pyx_L8_bool_binop_done; } __pyx_t_13 = ((__pyx_v_i < (__pyx_v_level - 1)) != 0); __pyx_t_1 = __pyx_t_13; __pyx_L8_bool_binop_done:; if (__pyx_t_1) { /* "pywt/_extensions/_dwt.pyx":475 * coeffs = np.zeros(output_len, dtype=np.complex128) * if do_dec_a or (i < level - 1): * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_complex_dec_a(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":476 * if do_dec_a or (i < level - 1): * with nogil: * retval = c_wt.double_complex_dec_a(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &coeffs[0], output_len, mode) * if retval < 0: */ __pyx_t_14 = 0; /* "pywt/_extensions/_dwt.pyx":477 * with nogil: * retval = c_wt.double_complex_dec_a(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) # <<<<<<<<<<<<<< * if retval < 0: * raise RuntimeError("C dec_a failed.") */ __pyx_t_15 = 0; /* "pywt/_extensions/_dwt.pyx":476 * if do_dec_a or (i < level - 1): * with nogil: * retval = c_wt.double_complex_dec_a(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &coeffs[0], output_len, mode) * if retval < 0: */ __pyx_v_retval = double_complex_dec_a((&(*((__pyx_t_double_complex *) ( /* dim=0 */ ((char *) (((__pyx_t_double_complex *) __pyx_v_data.data) + __pyx_t_14)) )))), __pyx_v_data_size, __pyx_v_wavelet->w, (&(*((__pyx_t_double_complex *) ( /* dim=0 */ ((char *) (((__pyx_t_double_complex *) __pyx_v_coeffs.data) + __pyx_t_15)) )))), __pyx_v_output_len, __pyx_v_mode); } /* "pywt/_extensions/_dwt.pyx":475 * coeffs = np.zeros(output_len, dtype=np.complex128) * if do_dec_a or (i < level - 1): * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_complex_dec_a(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L14; } __pyx_L14:; } } /* "pywt/_extensions/_dwt.pyx":478 * retval = c_wt.double_complex_dec_a(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C dec_a failed.") * else: */ __pyx_t_1 = ((__pyx_v_retval < 0) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":479 * &coeffs[0], output_len, mode) * if retval < 0: * raise RuntimeError("C dec_a failed.") # <<<<<<<<<<<<<< * else: * with nogil: */ __pyx_t_11 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 479, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_Raise(__pyx_t_11, 0, 0, 0); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_ERR(0, 479, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":478 * retval = c_wt.double_complex_dec_a(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C dec_a failed.") * else: */ } /* "pywt/_extensions/_dwt.pyx":474 * if cdata_t is np.complex128_t: * coeffs = np.zeros(output_len, dtype=np.complex128) * if do_dec_a or (i < level - 1): # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.double_complex_dec_a(&data[0], data_size, wavelet.w, */ goto __pyx_L7; } /* "pywt/_extensions/_dwt.pyx":481 * raise RuntimeError("C dec_a failed.") * else: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_complex_dec_d(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) */ /*else*/ { { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_dwt.pyx":482 * else: * with nogil: * retval = c_wt.double_complex_dec_d(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &coeffs[0], output_len, mode) * if retval < 0: */ __pyx_t_16 = 0; /* "pywt/_extensions/_dwt.pyx":483 * with nogil: * retval = c_wt.double_complex_dec_d(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) # <<<<<<<<<<<<<< * if retval < 0: * raise RuntimeError("C dec_d failed.") */ __pyx_t_17 = 0; /* "pywt/_extensions/_dwt.pyx":482 * else: * with nogil: * retval = c_wt.double_complex_dec_d(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &coeffs[0], output_len, mode) * if retval < 0: */ __pyx_v_retval = double_complex_dec_d((&(*((__pyx_t_double_complex *) ( /* dim=0 */ ((char *) (((__pyx_t_double_complex *) __pyx_v_data.data) + __pyx_t_16)) )))), __pyx_v_data_size, __pyx_v_wavelet->w, (&(*((__pyx_t_double_complex *) ( /* dim=0 */ ((char *) (((__pyx_t_double_complex *) __pyx_v_coeffs.data) + __pyx_t_17)) )))), __pyx_v_output_len, __pyx_v_mode); } /* "pywt/_extensions/_dwt.pyx":481 * raise RuntimeError("C dec_a failed.") * else: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_complex_dec_d(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L20; } __pyx_L20:; } } /* "pywt/_extensions/_dwt.pyx":484 * retval = c_wt.double_complex_dec_d(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C dec_d failed.") * elif cdata_t is np.complex64_t: */ __pyx_t_1 = ((__pyx_v_retval < 0) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_dwt.pyx":485 * &coeffs[0], output_len, mode) * if retval < 0: * raise RuntimeError("C dec_d failed.") # <<<<<<<<<<<<<< * elif cdata_t is np.complex64_t: * coeffs = np.zeros(output_len, dtype=np.complex64) */ __pyx_t_11 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_Raise(__pyx_t_11, 0, 0, 0); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_ERR(0, 485, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":484 * retval = c_wt.double_complex_dec_d(&data[0], data_size, wavelet.w, * &coeffs[0], output_len, mode) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C dec_d failed.") * elif cdata_t is np.complex64_t: */ } } __pyx_L7:; /* "pywt/_extensions/_dwt.pyx":500 * if retval < 0: * raise RuntimeError("C dec_d failed.") * data = coeffs # <<<<<<<<<<<<<< * * return coeffs */ __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __PYX_INC_MEMVIEW(&__pyx_v_coeffs, 0); __pyx_v_data = __pyx_v_coeffs; } /* "pywt/_extensions/_dwt.pyx":502 * data = coeffs * * return coeffs # <<<<<<<<<<<<<< */ __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_coeffs.memview)) { __Pyx_RaiseUnboundLocalError("coeffs"); __PYX_ERR(0, 502, __pyx_L1_error) } __pyx_t_11 = __pyx_memoryview_fromslice(__pyx_v_coeffs, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_double_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_double_complex, 0);; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_r = __pyx_t_11; __pyx_t_11 = 0; goto __pyx_L0; /* "pywt/_extensions/_dwt.pyx":424 * * * cpdef downcoef(bint do_dec_a, cdata_t[::1] data, Wavelet wavelet, MODE mode, int level): # <<<<<<<<<<<<<< * cdef cdata_t[::1] coeffs * cdef int i, retval */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __PYX_XDEC_MEMVIEW(&__pyx_t_12, 1); __Pyx_AddTraceback("pywt._extensions._dwt.downcoef", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_coeffs, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_43__pyx_fuse_3downcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_3__pyx_mdef_4pywt_11_extensions_4_dwt_43__pyx_fuse_3downcoef = {"__pyx_fuse_3downcoef", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_4_dwt_43__pyx_fuse_3downcoef, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_4pywt_11_extensions_4_dwt_43__pyx_fuse_3downcoef(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { int __pyx_v_do_dec_a; __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } }; struct WaveletObject *__pyx_v_wavelet = 0; MODE __pyx_v_mode; int __pyx_v_level; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fuse_3downcoef (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_do_dec_a,&__pyx_n_s_data,&__pyx_n_s_wavelet,&__pyx_n_s_mode,&__pyx_n_s_level,0}; PyObject* values[5] = {0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_do_dec_a)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_3downcoef", 1, 5, 5, 1); __PYX_ERR(0, 424, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wavelet)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_3downcoef", 1, 5, 5, 2); __PYX_ERR(0, 424, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_3downcoef", 1, 5, 5, 3); __PYX_ERR(0, 424, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fuse_3downcoef", 1, 5, 5, 4); __PYX_ERR(0, 424, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fuse_3downcoef") < 0)) __PYX_ERR(0, 424, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); } __pyx_v_do_dec_a = __Pyx_PyObject_IsTrue(values[0]); if (unlikely((__pyx_v_do_dec_a == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 424, __pyx_L3_error) __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_double_complex(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 424, __pyx_L3_error) __pyx_v_wavelet = ((struct WaveletObject *)values[2]); __pyx_v_mode = ((MODE)__Pyx_PyInt_As_MODE(values[3])); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 424, __pyx_L3_error) __pyx_v_level = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_level == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 424, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__pyx_fuse_3downcoef", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 424, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._dwt.__pyx_fuse_3downcoef", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_wavelet), __pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet, 1, "wavelet", 0))) __PYX_ERR(0, 424, __pyx_L1_error) __pyx_r = __pyx_pf_4pywt_11_extensions_4_dwt_42__pyx_fuse_3downcoef(__pyx_self, __pyx_v_do_dec_a, __pyx_v_data, __pyx_v_wavelet, __pyx_v_mode, __pyx_v_level); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_dwt_42__pyx_fuse_3downcoef(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_do_dec_a, __Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, MODE __pyx_v_mode, int __pyx_v_level) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__pyx_fuse_3downcoef", 0); __Pyx_XDECREF(__pyx_r); if (unlikely(!__pyx_v_data.memview)) { __Pyx_RaiseUnboundLocalError("data"); __PYX_ERR(0, 424, __pyx_L1_error) } __pyx_t_1 = __pyx_fuse_3__pyx_f_4pywt_11_extensions_4_dwt_downcoef(__pyx_v_do_dec_a, __pyx_v_data, __pyx_v_wavelet, __pyx_v_mode, __pyx_v_level, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._dwt.__pyx_fuse_3downcoef", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":258 * # experimental exception made for __getbuffer__ and __releasebuffer__ * # -- the details of this may change. * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< * # This implementation of getbuffer is geared towards Cython * # requirements, and does not yet fulfill the PEP. */ /* Python wrapper */ static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); __pyx_r = __pyx_pf_5numpy_7ndarray___getbuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_v_i; int __pyx_v_ndim; int __pyx_v_endian_detector; int __pyx_v_little_endian; int __pyx_v_t; char *__pyx_v_f; PyArray_Descr *__pyx_v_descr = 0; int __pyx_v_offset; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_t_5; int __pyx_t_6; PyArray_Descr *__pyx_t_7; PyObject *__pyx_t_8 = NULL; char *__pyx_t_9; if (__pyx_v_info == NULL) { PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); return -1; } __Pyx_RefNannySetupContext("__getbuffer__", 0); __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); __Pyx_GIVEREF(__pyx_v_info->obj); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":265 * * cdef int i, ndim * cdef int endian_detector = 1 # <<<<<<<<<<<<<< * cdef bint little_endian = ((&endian_detector)[0] != 0) * */ __pyx_v_endian_detector = 1; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":266 * cdef int i, ndim * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< * * ndim = PyArray_NDIM(self) */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":268 * cdef bint little_endian = ((&endian_detector)[0] != 0) * * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<< * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) */ __pyx_v_ndim = PyArray_NDIM(__pyx_v_self); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":270 * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") */ __pyx_t_2 = (((__pyx_v_flags & PyBUF_C_CONTIGUOUS) == PyBUF_C_CONTIGUOUS) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L4_bool_binop_done; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":271 * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< * raise ValueError(u"ndarray is not C contiguous") * */ __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_C_CONTIGUOUS) != 0)) != 0); __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":270 * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") */ if (unlikely(__pyx_t_1)) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":272 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 272, __pyx_L1_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":270 * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":274 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") */ __pyx_t_2 = (((__pyx_v_flags & PyBUF_F_CONTIGUOUS) == PyBUF_F_CONTIGUOUS) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L7_bool_binop_done; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":275 * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< * raise ValueError(u"ndarray is not Fortran contiguous") * */ __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_F_CONTIGUOUS) != 0)) != 0); __pyx_t_1 = __pyx_t_2; __pyx_L7_bool_binop_done:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":274 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") */ if (unlikely(__pyx_t_1)) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":276 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< * * info.buf = PyArray_DATA(self) */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__20, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 276, __pyx_L1_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":274 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":278 * raise ValueError(u"ndarray is not Fortran contiguous") * * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< * info.ndim = ndim * if sizeof(npy_intp) != sizeof(Py_ssize_t): */ __pyx_v_info->buf = PyArray_DATA(__pyx_v_self); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":279 * * info.buf = PyArray_DATA(self) * info.ndim = ndim # <<<<<<<<<<<<<< * if sizeof(npy_intp) != sizeof(Py_ssize_t): * # Allocate new buffer for strides and shape info. */ __pyx_v_info->ndim = __pyx_v_ndim; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":280 * info.buf = PyArray_DATA(self) * info.ndim = ndim * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< * # Allocate new buffer for strides and shape info. * # This is allocated as one block, strides first. */ __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); if (__pyx_t_1) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":283 * # Allocate new buffer for strides and shape info. * # This is allocated as one block, strides first. * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim) # <<<<<<<<<<<<<< * info.shape = info.strides + ndim * for i in range(ndim): */ __pyx_v_info->strides = ((Py_ssize_t *)PyObject_Malloc((((sizeof(Py_ssize_t)) * 2) * ((size_t)__pyx_v_ndim)))); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":284 * # This is allocated as one block, strides first. * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim) * info.shape = info.strides + ndim # <<<<<<<<<<<<<< * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] */ __pyx_v_info->shape = (__pyx_v_info->strides + __pyx_v_ndim); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":285 * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim) * info.shape = info.strides + ndim * for i in range(ndim): # <<<<<<<<<<<<<< * info.strides[i] = PyArray_STRIDES(self)[i] * info.shape[i] = PyArray_DIMS(self)[i] */ __pyx_t_4 = __pyx_v_ndim; __pyx_t_5 = __pyx_t_4; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":286 * info.shape = info.strides + ndim * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] # <<<<<<<<<<<<<< * info.shape[i] = PyArray_DIMS(self)[i] * else: */ (__pyx_v_info->strides[__pyx_v_i]) = (PyArray_STRIDES(__pyx_v_self)[__pyx_v_i]); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":287 * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] * info.shape[i] = PyArray_DIMS(self)[i] # <<<<<<<<<<<<<< * else: * info.strides = PyArray_STRIDES(self) */ (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":280 * info.buf = PyArray_DATA(self) * info.ndim = ndim * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< * # Allocate new buffer for strides and shape info. * # This is allocated as one block, strides first. */ goto __pyx_L9; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":289 * info.shape[i] = PyArray_DIMS(self)[i] * else: * info.strides = PyArray_STRIDES(self) # <<<<<<<<<<<<<< * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL */ /*else*/ { __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":290 * else: * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) # <<<<<<<<<<<<<< * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) */ __pyx_v_info->shape = ((Py_ssize_t *)PyArray_DIMS(__pyx_v_self)); } __pyx_L9:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":291 * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL # <<<<<<<<<<<<<< * info.itemsize = PyArray_ITEMSIZE(self) * info.readonly = not PyArray_ISWRITEABLE(self) */ __pyx_v_info->suboffsets = NULL; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":292 * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) # <<<<<<<<<<<<<< * info.readonly = not PyArray_ISWRITEABLE(self) * */ __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":293 * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) * info.readonly = not PyArray_ISWRITEABLE(self) # <<<<<<<<<<<<<< * * cdef int t */ __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0)); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":296 * * cdef int t * cdef char* f = NULL # <<<<<<<<<<<<<< * cdef dtype descr = PyArray_DESCR(self) * cdef int offset */ __pyx_v_f = NULL; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":297 * cdef int t * cdef char* f = NULL * cdef dtype descr = PyArray_DESCR(self) # <<<<<<<<<<<<<< * cdef int offset * */ __pyx_t_7 = PyArray_DESCR(__pyx_v_self); __pyx_t_3 = ((PyObject *)__pyx_t_7); __Pyx_INCREF(__pyx_t_3); __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); __pyx_t_3 = 0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":300 * cdef int offset * * info.obj = self # <<<<<<<<<<<<<< * * if not PyDataType_HASFIELDS(descr): */ __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = ((PyObject *)__pyx_v_self); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":302 * info.obj = self * * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or */ __pyx_t_1 = ((!(PyDataType_HASFIELDS(__pyx_v_descr) != 0)) != 0); if (__pyx_t_1) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":303 * * if not PyDataType_HASFIELDS(descr): * t = descr.type_num # <<<<<<<<<<<<<< * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): */ __pyx_t_4 = __pyx_v_descr->type_num; __pyx_v_t = __pyx_t_4; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":304 * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ __pyx_t_2 = ((__pyx_v_descr->byteorder == '>') != 0); if (!__pyx_t_2) { goto __pyx_L15_next_or; } else { } __pyx_t_2 = (__pyx_v_little_endian != 0); if (!__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L14_bool_binop_done; } __pyx_L15_next_or:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":305 * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" */ __pyx_t_2 = ((__pyx_v_descr->byteorder == '<') != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L14_bool_binop_done; } __pyx_t_2 = ((!(__pyx_v_little_endian != 0)) != 0); __pyx_t_1 = __pyx_t_2; __pyx_L14_bool_binop_done:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":304 * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ if (unlikely(__pyx_t_1)) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":306 * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__21, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 306, __pyx_L1_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":304 * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":307 * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" # <<<<<<<<<<<<<< * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" */ switch (__pyx_v_t) { case NPY_BYTE: __pyx_v_f = ((char *)"b"); break; case NPY_UBYTE: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":308 * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" # <<<<<<<<<<<<<< * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" */ __pyx_v_f = ((char *)"B"); break; case NPY_SHORT: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":309 * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" # <<<<<<<<<<<<<< * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" */ __pyx_v_f = ((char *)"h"); break; case NPY_USHORT: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":310 * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" # <<<<<<<<<<<<<< * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" */ __pyx_v_f = ((char *)"H"); break; case NPY_INT: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":311 * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" # <<<<<<<<<<<<<< * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" */ __pyx_v_f = ((char *)"i"); break; case NPY_UINT: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":312 * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" # <<<<<<<<<<<<<< * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" */ __pyx_v_f = ((char *)"I"); break; case NPY_LONG: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":313 * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" # <<<<<<<<<<<<<< * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" */ __pyx_v_f = ((char *)"l"); break; case NPY_ULONG: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":314 * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" # <<<<<<<<<<<<<< * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" */ __pyx_v_f = ((char *)"L"); break; case NPY_LONGLONG: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":315 * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" # <<<<<<<<<<<<<< * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" */ __pyx_v_f = ((char *)"q"); break; case NPY_ULONGLONG: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":316 * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" # <<<<<<<<<<<<<< * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" */ __pyx_v_f = ((char *)"Q"); break; case NPY_FLOAT: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":317 * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" # <<<<<<<<<<<<<< * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" */ __pyx_v_f = ((char *)"f"); break; case NPY_DOUBLE: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":318 * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" # <<<<<<<<<<<<<< * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" */ __pyx_v_f = ((char *)"d"); break; case NPY_LONGDOUBLE: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":319 * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" # <<<<<<<<<<<<<< * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" */ __pyx_v_f = ((char *)"g"); break; case NPY_CFLOAT: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":320 * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" # <<<<<<<<<<<<<< * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" */ __pyx_v_f = ((char *)"Zf"); break; case NPY_CDOUBLE: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":321 * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" # <<<<<<<<<<<<<< * elif t == NPY_CLONGDOUBLE: f = "Zg" * elif t == NPY_OBJECT: f = "O" */ __pyx_v_f = ((char *)"Zd"); break; case NPY_CLONGDOUBLE: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":322 * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" # <<<<<<<<<<<<<< * elif t == NPY_OBJECT: f = "O" * else: */ __pyx_v_f = ((char *)"Zg"); break; case NPY_OBJECT: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":323 * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" * elif t == NPY_OBJECT: f = "O" # <<<<<<<<<<<<<< * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) */ __pyx_v_f = ((char *)"O"); break; default: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":325 * elif t == NPY_OBJECT: f = "O" * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< * info.format = f * return */ __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 325, __pyx_L1_error) break; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":326 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f # <<<<<<<<<<<<<< * return * else: */ __pyx_v_info->format = __pyx_v_f; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":327 * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f * return # <<<<<<<<<<<<<< * else: * info.format = PyObject_Malloc(_buffer_format_string_len) */ __pyx_r = 0; goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":302 * info.obj = self * * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":329 * return * else: * info.format = PyObject_Malloc(_buffer_format_string_len) # <<<<<<<<<<<<<< * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 */ /*else*/ { __pyx_v_info->format = ((char *)PyObject_Malloc(0xFF)); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":330 * else: * info.format = PyObject_Malloc(_buffer_format_string_len) * info.format[0] = c'^' # Native data types, manual alignment # <<<<<<<<<<<<<< * offset = 0 * f = _util_dtypestring(descr, info.format + 1, */ (__pyx_v_info->format[0]) = '^'; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":331 * info.format = PyObject_Malloc(_buffer_format_string_len) * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 # <<<<<<<<<<<<<< * f = _util_dtypestring(descr, info.format + 1, * info.format + _buffer_format_string_len, */ __pyx_v_offset = 0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":332 * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 * f = _util_dtypestring(descr, info.format + 1, # <<<<<<<<<<<<<< * info.format + _buffer_format_string_len, * &offset) */ __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_descr, (__pyx_v_info->format + 1), (__pyx_v_info->format + 0xFF), (&__pyx_v_offset)); if (unlikely(__pyx_t_9 == ((char *)NULL))) __PYX_ERR(1, 332, __pyx_L1_error) __pyx_v_f = __pyx_t_9; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":335 * info.format + _buffer_format_string_len, * &offset) * f[0] = c'\0' # Terminate format string # <<<<<<<<<<<<<< * * def __releasebuffer__(ndarray self, Py_buffer* info): */ (__pyx_v_f[0]) = '\x00'; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":258 * # experimental exception made for __getbuffer__ and __releasebuffer__ * # -- the details of this may change. * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< * # This implementation of getbuffer is geared towards Cython * # requirements, and does not yet fulfill the PEP. */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("numpy.ndarray.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; if (__pyx_v_info->obj != NULL) { __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; } goto __pyx_L2; __pyx_L0:; if (__pyx_v_info->obj == Py_None) { __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; } __pyx_L2:; __Pyx_XDECREF((PyObject *)__pyx_v_descr); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":337 * f[0] = c'\0' # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) */ /* Python wrapper */ static CYTHON_UNUSED void __pyx_pw_5numpy_7ndarray_3__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info); /*proto*/ static CYTHON_UNUSED void __pyx_pw_5numpy_7ndarray_3__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__releasebuffer__ (wrapper)", 0); __pyx_pf_5numpy_7ndarray_2__releasebuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info) { __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("__releasebuffer__", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":338 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): */ __pyx_t_1 = (PyArray_HASFIELDS(__pyx_v_self) != 0); if (__pyx_t_1) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":339 * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) # <<<<<<<<<<<<<< * if sizeof(npy_intp) != sizeof(Py_ssize_t): * PyObject_Free(info.strides) */ PyObject_Free(__pyx_v_info->format); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":338 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":340 * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< * PyObject_Free(info.strides) * # info.shape was stored after info.strides in the same block */ __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); if (__pyx_t_1) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":341 * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): * PyObject_Free(info.strides) # <<<<<<<<<<<<<< * # info.shape was stored after info.strides in the same block * */ PyObject_Free(__pyx_v_info->strides); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":340 * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< * PyObject_Free(info.strides) * # info.shape was stored after info.strides in the same block */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":337 * f[0] = c'\0' # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":821 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(1, a) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__pyx_v_a) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":822 * * cdef inline object PyArray_MultiIterNew1(a): * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew2(a, b): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":821 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(1, a) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew1", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":824 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(2, a, b) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyObject *__pyx_v_b) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":825 * * cdef inline object PyArray_MultiIterNew2(a, b): * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew3(a, b, c): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 825, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":824 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(2, a, b) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew2", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":827 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(3, a, b, c) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":828 * * cdef inline object PyArray_MultiIterNew3(a, b, c): * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":827 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(3, a, b, c) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew3", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":830 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(4, a, b, c, d) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":831 * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): * return PyArray_MultiIterNew(4, a, b, c, d) # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 831, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":830 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(4, a, b, c, d) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew4", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":833 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(5, a, b, c, d, e) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d, PyObject *__pyx_v_e) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":834 * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): * return PyArray_MultiIterNew(5, a, b, c, d, e) # <<<<<<<<<<<<<< * * cdef inline tuple PyDataType_SHAPE(dtype d): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":833 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(5, a, b, c, d, e) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew5", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":836 * return PyArray_MultiIterNew(5, a, b, c, d, e) * * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< * if PyDataType_HASSUBARRAY(d): * return d.subarray.shape */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__pyx_v_d) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":837 * * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< * return d.subarray.shape * else: */ __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0); if (__pyx_t_1) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":838 * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): * return d.subarray.shape # <<<<<<<<<<<<<< * else: * return () */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject*)__pyx_v_d->subarray->shape)); __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape); goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":837 * * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< * return d.subarray.shape * else: */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":840 * return d.subarray.shape * else: * return () # <<<<<<<<<<<<<< * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: */ /*else*/ { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_empty_tuple); __pyx_r = __pyx_empty_tuple; goto __pyx_L0; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":836 * return PyArray_MultiIterNew(5, a, b, c, d, e) * * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< * if PyDataType_HASSUBARRAY(d): * return d.subarray.shape */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":842 * return () * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< * # Recursive utility function used in __getbuffer__ to get format * # string. The new location in the format string is returned. */ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx_v_descr, char *__pyx_v_f, char *__pyx_v_end, int *__pyx_v_offset) { PyArray_Descr *__pyx_v_child = 0; int __pyx_v_endian_detector; int __pyx_v_little_endian; PyObject *__pyx_v_fields = 0; PyObject *__pyx_v_childname = NULL; PyObject *__pyx_v_new_offset = NULL; PyObject *__pyx_v_t = NULL; char *__pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_t_6; int __pyx_t_7; long __pyx_t_8; char *__pyx_t_9; __Pyx_RefNannySetupContext("_util_dtypestring", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":847 * * cdef dtype child * cdef int endian_detector = 1 # <<<<<<<<<<<<<< * cdef bint little_endian = ((&endian_detector)[0] != 0) * cdef tuple fields */ __pyx_v_endian_detector = 1; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":848 * cdef dtype child * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< * cdef tuple fields * */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":851 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< * fields = descr.fields[childname] * child, new_offset = fields */ if (unlikely(__pyx_v_descr->names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(1, 851, __pyx_L1_error) } __pyx_t_1 = __pyx_v_descr->names; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; for (;;) { if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 851, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 851, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); __pyx_t_3 = 0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":852 * * for childname in descr.names: * fields = descr.fields[childname] # <<<<<<<<<<<<<< * child, new_offset = fields * */ if (unlikely(__pyx_v_descr->fields == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(1, 852, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 852, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(1, 852, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":853 * for childname in descr.names: * fields = descr.fields[childname] * child, new_offset = fields # <<<<<<<<<<<<<< * * if (end - f) - (new_offset - offset[0]) < 15: */ if (likely(__pyx_v_fields != Py_None)) { PyObject* sequence = __pyx_v_fields; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(1, 853, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); #else __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 853, __pyx_L1_error) } if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(1, 853, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_child, ((PyArray_Descr *)__pyx_t_3)); __pyx_t_3 = 0; __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4); __pyx_t_4 = 0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":855 * child, new_offset = fields * * if (end - f) - (new_offset - offset[0]) < 15: # <<<<<<<<<<<<<< * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * */ __pyx_t_4 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 855, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0); if (unlikely(__pyx_t_6)) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":856 * * if (end - f) - (new_offset - offset[0]) < 15: * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") # <<<<<<<<<<<<<< * * if ((child.byteorder == c'>' and little_endian) or */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__22, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 856, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 856, __pyx_L1_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":855 * child, new_offset = fields * * if (end - f) - (new_offset - offset[0]) < 15: # <<<<<<<<<<<<<< * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":858 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ __pyx_t_7 = ((__pyx_v_child->byteorder == '>') != 0); if (!__pyx_t_7) { goto __pyx_L8_next_or; } else { } __pyx_t_7 = (__pyx_v_little_endian != 0); if (!__pyx_t_7) { } else { __pyx_t_6 = __pyx_t_7; goto __pyx_L7_bool_binop_done; } __pyx_L8_next_or:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":859 * * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< * raise ValueError(u"Non-native byte order not supported") * # One could encode it in the format string and have Cython */ __pyx_t_7 = ((__pyx_v_child->byteorder == '<') != 0); if (__pyx_t_7) { } else { __pyx_t_6 = __pyx_t_7; goto __pyx_L7_bool_binop_done; } __pyx_t_7 = ((!(__pyx_v_little_endian != 0)) != 0); __pyx_t_6 = __pyx_t_7; __pyx_L7_bool_binop_done:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":858 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ if (unlikely(__pyx_t_6)) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":860 * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< * # One could encode it in the format string and have Cython * # complain instead, BUT: < and > in format strings also imply */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__21, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 860, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 860, __pyx_L1_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":858 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":870 * * # Output padding bytes * while offset[0] < new_offset: # <<<<<<<<<<<<<< * f[0] = 120 # "x"; pad byte * f += 1 */ while (1) { __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 870, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_new_offset, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 870, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 870, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!__pyx_t_6) break; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":871 * # Output padding bytes * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< * f += 1 * offset[0] += 1 */ (__pyx_v_f[0]) = 0x78; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":872 * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte * f += 1 # <<<<<<<<<<<<<< * offset[0] += 1 * */ __pyx_v_f = (__pyx_v_f + 1); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":873 * f[0] = 120 # "x"; pad byte * f += 1 * offset[0] += 1 # <<<<<<<<<<<<<< * * offset[0] += child.itemsize */ __pyx_t_8 = 0; (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":875 * offset[0] += 1 * * offset[0] += child.itemsize # <<<<<<<<<<<<<< * * if not PyDataType_HASFIELDS(child): */ __pyx_t_8 = 0; (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":877 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< * t = child.type_num * if end - f < 5: */ __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); if (__pyx_t_6) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":878 * * if not PyDataType_HASFIELDS(child): * t = child.type_num # <<<<<<<<<<<<<< * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") */ __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 878, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); __pyx_t_4 = 0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":879 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< * raise RuntimeError(u"Format string allocated too short.") * */ __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); if (unlikely(__pyx_t_6)) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":880 * t = child.type_num * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< * * # Until ticket #99 is fixed, use integers to avoid warnings */ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__23, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 880, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 880, __pyx_L1_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":879 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< * raise RuntimeError(u"Format string allocated too short.") * */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":883 * * # Until ticket #99 is fixed, use integers to avoid warnings * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 883, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 883, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 98; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":884 * # Until ticket #99 is fixed, use integers to avoid warnings * if t == NPY_BYTE: f[0] = 98 #"b" * elif t == NPY_UBYTE: f[0] = 66 #"B" # <<<<<<<<<<<<<< * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 884, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 884, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 884, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 66; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":885 * if t == NPY_BYTE: f[0] = 98 #"b" * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<< * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 885, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 885, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 885, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x68; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":886 * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<< * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 886, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 886, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 886, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 72; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":887 * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<< * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 887, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 887, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x69; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":888 * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<< * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 888, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 888, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 73; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":889 * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<< * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 889, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 889, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x6C; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":890 * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<< * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 890, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 890, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 76; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":891 * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<< * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 891, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 891, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x71; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":892 * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<< * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 892, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 892, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 81; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":893 * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<< * elif t == NPY_DOUBLE: f[0] = 100 #"d" * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 893, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 893, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x66; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":894 * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<< * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 894, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 894, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x64; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":895 * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<< * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 895, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 895, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 895, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x67; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":896 * elif t == NPY_DOUBLE: f[0] = 100 #"d" * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf # <<<<<<<<<<<<<< * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 896, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 896, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; (__pyx_v_f[1]) = 0x66; __pyx_v_f = (__pyx_v_f + 1); goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":897 * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd # <<<<<<<<<<<<<< * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg * elif t == NPY_OBJECT: f[0] = 79 #"O" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 897, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 897, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; (__pyx_v_f[1]) = 0x64; __pyx_v_f = (__pyx_v_f + 1); goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":898 * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg # <<<<<<<<<<<<<< * elif t == NPY_OBJECT: f[0] = 79 #"O" * else: */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 898, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 898, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; (__pyx_v_f[1]) = 0x67; __pyx_v_f = (__pyx_v_f + 1); goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":899 * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg * elif t == NPY_OBJECT: f[0] = 79 #"O" # <<<<<<<<<<<<<< * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 899, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 899, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (likely(__pyx_t_6)) { (__pyx_v_f[0]) = 79; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":901 * elif t == NPY_OBJECT: f[0] = 79 #"O" * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< * f += 1 * else: */ /*else*/ { __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 901, __pyx_L1_error) } __pyx_L15:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":902 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * f += 1 # <<<<<<<<<<<<<< * else: * # Cython ignores struct boundary information ("T{...}"), */ __pyx_v_f = (__pyx_v_f + 1); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":877 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< * t = child.type_num * if end - f < 5: */ goto __pyx_L13; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":906 * # Cython ignores struct boundary information ("T{...}"), * # so don't output it * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< * return f * */ /*else*/ { __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_child, __pyx_v_f, __pyx_v_end, __pyx_v_offset); if (unlikely(__pyx_t_9 == ((char *)NULL))) __PYX_ERR(1, 906, __pyx_L1_error) __pyx_v_f = __pyx_t_9; } __pyx_L13:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":851 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< * fields = descr.fields[childname] * child, new_offset = fields */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":907 * # so don't output it * f = _util_dtypestring(child, f, end, offset) * return f # <<<<<<<<<<<<<< * * */ __pyx_r = __pyx_v_f; goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":842 * return () * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< * # Recursive utility function used in __getbuffer__ to get format * # string. The new location in the format string is returned. */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("numpy._util_dtypestring", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_child); __Pyx_XDECREF(__pyx_v_fields); __Pyx_XDECREF(__pyx_v_childname); __Pyx_XDECREF(__pyx_v_new_offset); __Pyx_XDECREF(__pyx_v_t); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1022 * int _import_umath() except -1 * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< * Py_INCREF(base) # important to do this before stealing the reference below! * PyArray_SetBaseObject(arr, base) */ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("set_array_base", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1023 * * cdef inline void set_array_base(ndarray arr, object base): * Py_INCREF(base) # important to do this before stealing the reference below! # <<<<<<<<<<<<<< * PyArray_SetBaseObject(arr, base) * */ Py_INCREF(__pyx_v_base); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1024 * cdef inline void set_array_base(ndarray arr, object base): * Py_INCREF(base) # important to do this before stealing the reference below! * PyArray_SetBaseObject(arr, base) # <<<<<<<<<<<<<< * * cdef inline object get_array_base(ndarray arr): */ (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base)); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1022 * int _import_umath() except -1 * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< * Py_INCREF(base) # important to do this before stealing the reference below! * PyArray_SetBaseObject(arr, base) */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1026 * PyArray_SetBaseObject(arr, base) * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< * base = PyArray_BASE(arr) * if base is NULL: */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) { PyObject *__pyx_v_base; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("get_array_base", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1027 * * cdef inline object get_array_base(ndarray arr): * base = PyArray_BASE(arr) # <<<<<<<<<<<<<< * if base is NULL: * return None */ __pyx_v_base = PyArray_BASE(__pyx_v_arr); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1028 * cdef inline object get_array_base(ndarray arr): * base = PyArray_BASE(arr) * if base is NULL: # <<<<<<<<<<<<<< * return None * return base */ __pyx_t_1 = ((__pyx_v_base == NULL) != 0); if (__pyx_t_1) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1029 * base = PyArray_BASE(arr) * if base is NULL: * return None # <<<<<<<<<<<<<< * return base * */ __Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1028 * cdef inline object get_array_base(ndarray arr): * base = PyArray_BASE(arr) * if base is NULL: # <<<<<<<<<<<<<< * return None * return base */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1030 * if base is NULL: * return None * return base # <<<<<<<<<<<<<< * * # Versions of the import_* functions which are more suitable for */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_base)); __pyx_r = ((PyObject *)__pyx_v_base); goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1026 * PyArray_SetBaseObject(arr, base) * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< * base = PyArray_BASE(arr) * if base is NULL: */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1034 * # Versions of the import_* functions which are more suitable for * # Cython code. * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< * try: * _import_array() */ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_array", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1035 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< * _import_array() * except Exception: */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1036 * cdef inline int import_array() except -1: * try: * _import_array() # <<<<<<<<<<<<<< * except Exception: * raise ImportError("numpy.core.multiarray failed to import") */ __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1036, __pyx_L3_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1035 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< * _import_array() * except Exception: */ } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L8_try_end; __pyx_L3_error:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1037 * try: * _import_array() * except Exception: # <<<<<<<<<<<<<< * raise ImportError("numpy.core.multiarray failed to import") * */ __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_4) { __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1037, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1038 * _import_array() * except Exception: * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< * * cdef inline int import_umath() except -1: */ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__24, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1038, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __PYX_ERR(1, 1038, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1035 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< * _import_array() * except Exception: */ __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L8_try_end:; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1034 * # Versions of the import_* functions which are more suitable for * # Cython code. * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< * try: * _import_array() */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1040 * raise ImportError("numpy.core.multiarray failed to import") * * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< * try: * _import_umath() */ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_umath", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1041 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< * _import_umath() * except Exception: */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1042 * cdef inline int import_umath() except -1: * try: * _import_umath() # <<<<<<<<<<<<<< * except Exception: * raise ImportError("numpy.core.umath failed to import") */ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1042, __pyx_L3_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1041 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< * _import_umath() * except Exception: */ } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L8_try_end; __pyx_L3_error:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1043 * try: * _import_umath() * except Exception: # <<<<<<<<<<<<<< * raise ImportError("numpy.core.umath failed to import") * */ __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_4) { __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1043, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1044 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< * * cdef inline int import_ufunc() except -1: */ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__25, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1044, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __PYX_ERR(1, 1044, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1041 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< * _import_umath() * except Exception: */ __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L8_try_end:; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1040 * raise ImportError("numpy.core.multiarray failed to import") * * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< * try: * _import_umath() */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1046 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< * try: * _import_umath() */ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_ufunc", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1047 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< * _import_umath() * except Exception: */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1048 * cdef inline int import_ufunc() except -1: * try: * _import_umath() # <<<<<<<<<<<<<< * except Exception: * raise ImportError("numpy.core.umath failed to import") */ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1048, __pyx_L3_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1047 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< * _import_umath() * except Exception: */ } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L8_try_end; __pyx_L3_error:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1049 * try: * _import_umath() * except Exception: # <<<<<<<<<<<<<< * raise ImportError("numpy.core.umath failed to import") */ __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_4) { __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1049, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1050 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< */ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__25, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1050, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __PYX_ERR(1, 1050, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1047 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< * _import_umath() * except Exception: */ __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L8_try_end:; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1046 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< * try: * _import_umath() */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":122 * cdef bint dtype_is_object * * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<< * mode="c", bint allocate_buffer=True): * */ /* Python wrapper */ static int __pyx_array___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_array___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_shape = 0; Py_ssize_t __pyx_v_itemsize; PyObject *__pyx_v_format = 0; PyObject *__pyx_v_mode = 0; int __pyx_v_allocate_buffer; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_shape,&__pyx_n_s_itemsize,&__pyx_n_s_format,&__pyx_n_s_mode,&__pyx_n_s_allocate_buffer,0}; PyObject* values[5] = {0,0,0,0,0}; values[3] = ((PyObject *)__pyx_n_s_c); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_shape)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_itemsize)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, 1); __PYX_ERR(2, 122, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_format)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, 2); __PYX_ERR(2, 122, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); if (value) { values[3] = value; kw_args--; } } CYTHON_FALLTHROUGH; case 4: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allocate_buffer); if (value) { values[4] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(2, 122, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_shape = ((PyObject*)values[0]); __pyx_v_itemsize = __Pyx_PyIndex_AsSsize_t(values[1]); if (unlikely((__pyx_v_itemsize == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 122, __pyx_L3_error) __pyx_v_format = values[2]; __pyx_v_mode = values[3]; if (values[4]) { __pyx_v_allocate_buffer = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allocate_buffer == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 123, __pyx_L3_error) } else { /* "View.MemoryView":123 * * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, * mode="c", bint allocate_buffer=True): # <<<<<<<<<<<<<< * * cdef int idx */ __pyx_v_allocate_buffer = ((int)1); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 122, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("View.MemoryView.array.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_shape), (&PyTuple_Type), 1, "shape", 1))) __PYX_ERR(2, 122, __pyx_L1_error) if (unlikely(((PyObject *)__pyx_v_format) == Py_None)) { PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "format"); __PYX_ERR(2, 122, __pyx_L1_error) } __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(((struct __pyx_array_obj *)__pyx_v_self), __pyx_v_shape, __pyx_v_itemsize, __pyx_v_format, __pyx_v_mode, __pyx_v_allocate_buffer); /* "View.MemoryView":122 * cdef bint dtype_is_object * * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<< * mode="c", bint allocate_buffer=True): * */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, PyObject *__pyx_v_format, PyObject *__pyx_v_mode, int __pyx_v_allocate_buffer) { int __pyx_v_idx; Py_ssize_t __pyx_v_i; Py_ssize_t __pyx_v_dim; PyObject **__pyx_v_p; char __pyx_v_order; int __pyx_r; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; char *__pyx_t_7; int __pyx_t_8; Py_ssize_t __pyx_t_9; PyObject *__pyx_t_10 = NULL; Py_ssize_t __pyx_t_11; __Pyx_RefNannySetupContext("__cinit__", 0); __Pyx_INCREF(__pyx_v_format); /* "View.MemoryView":129 * cdef PyObject **p * * self.ndim = len(shape) # <<<<<<<<<<<<<< * self.itemsize = itemsize * */ if (unlikely(__pyx_v_shape == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(2, 129, __pyx_L1_error) } __pyx_t_1 = PyTuple_GET_SIZE(__pyx_v_shape); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(2, 129, __pyx_L1_error) __pyx_v_self->ndim = ((int)__pyx_t_1); /* "View.MemoryView":130 * * self.ndim = len(shape) * self.itemsize = itemsize # <<<<<<<<<<<<<< * * if not self.ndim: */ __pyx_v_self->itemsize = __pyx_v_itemsize; /* "View.MemoryView":132 * self.itemsize = itemsize * * if not self.ndim: # <<<<<<<<<<<<<< * raise ValueError("Empty shape tuple for cython.array") * */ __pyx_t_2 = ((!(__pyx_v_self->ndim != 0)) != 0); if (unlikely(__pyx_t_2)) { /* "View.MemoryView":133 * * if not self.ndim: * raise ValueError("Empty shape tuple for cython.array") # <<<<<<<<<<<<<< * * if itemsize <= 0: */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__26, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 133, __pyx_L1_error) /* "View.MemoryView":132 * self.itemsize = itemsize * * if not self.ndim: # <<<<<<<<<<<<<< * raise ValueError("Empty shape tuple for cython.array") * */ } /* "View.MemoryView":135 * raise ValueError("Empty shape tuple for cython.array") * * if itemsize <= 0: # <<<<<<<<<<<<<< * raise ValueError("itemsize <= 0 for cython.array") * */ __pyx_t_2 = ((__pyx_v_itemsize <= 0) != 0); if (unlikely(__pyx_t_2)) { /* "View.MemoryView":136 * * if itemsize <= 0: * raise ValueError("itemsize <= 0 for cython.array") # <<<<<<<<<<<<<< * * if not isinstance(format, bytes): */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__27, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 136, __pyx_L1_error) /* "View.MemoryView":135 * raise ValueError("Empty shape tuple for cython.array") * * if itemsize <= 0: # <<<<<<<<<<<<<< * raise ValueError("itemsize <= 0 for cython.array") * */ } /* "View.MemoryView":138 * raise ValueError("itemsize <= 0 for cython.array") * * if not isinstance(format, bytes): # <<<<<<<<<<<<<< * format = format.encode('ASCII') * self._format = format # keep a reference to the byte string */ __pyx_t_2 = PyBytes_Check(__pyx_v_format); __pyx_t_4 = ((!(__pyx_t_2 != 0)) != 0); if (__pyx_t_4) { /* "View.MemoryView":139 * * if not isinstance(format, bytes): * format = format.encode('ASCII') # <<<<<<<<<<<<<< * self._format = format # keep a reference to the byte string * self.format = self._format */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_format, __pyx_n_s_encode); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_n_s_ASCII) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_n_s_ASCII); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF_SET(__pyx_v_format, __pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":138 * raise ValueError("itemsize <= 0 for cython.array") * * if not isinstance(format, bytes): # <<<<<<<<<<<<<< * format = format.encode('ASCII') * self._format = format # keep a reference to the byte string */ } /* "View.MemoryView":140 * if not isinstance(format, bytes): * format = format.encode('ASCII') * self._format = format # keep a reference to the byte string # <<<<<<<<<<<<<< * self.format = self._format * */ if (!(likely(PyBytes_CheckExact(__pyx_v_format))||((__pyx_v_format) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_v_format)->tp_name), 0))) __PYX_ERR(2, 140, __pyx_L1_error) __pyx_t_3 = __pyx_v_format; __Pyx_INCREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_self->_format); __Pyx_DECREF(__pyx_v_self->_format); __pyx_v_self->_format = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":141 * format = format.encode('ASCII') * self._format = format # keep a reference to the byte string * self.format = self._format # <<<<<<<<<<<<<< * * */ if (unlikely(__pyx_v_self->_format == Py_None)) { PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found"); __PYX_ERR(2, 141, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyBytes_AsWritableString(__pyx_v_self->_format); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) __PYX_ERR(2, 141, __pyx_L1_error) __pyx_v_self->format = __pyx_t_7; /* "View.MemoryView":144 * * * self._shape = PyObject_Malloc(sizeof(Py_ssize_t)*self.ndim*2) # <<<<<<<<<<<<<< * self._strides = self._shape + self.ndim * */ __pyx_v_self->_shape = ((Py_ssize_t *)PyObject_Malloc((((sizeof(Py_ssize_t)) * __pyx_v_self->ndim) * 2))); /* "View.MemoryView":145 * * self._shape = PyObject_Malloc(sizeof(Py_ssize_t)*self.ndim*2) * self._strides = self._shape + self.ndim # <<<<<<<<<<<<<< * * if not self._shape: */ __pyx_v_self->_strides = (__pyx_v_self->_shape + __pyx_v_self->ndim); /* "View.MemoryView":147 * self._strides = self._shape + self.ndim * * if not self._shape: # <<<<<<<<<<<<<< * raise MemoryError("unable to allocate shape and strides.") * */ __pyx_t_4 = ((!(__pyx_v_self->_shape != 0)) != 0); if (unlikely(__pyx_t_4)) { /* "View.MemoryView":148 * * if not self._shape: * raise MemoryError("unable to allocate shape and strides.") # <<<<<<<<<<<<<< * * */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__28, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 148, __pyx_L1_error) /* "View.MemoryView":147 * self._strides = self._shape + self.ndim * * if not self._shape: # <<<<<<<<<<<<<< * raise MemoryError("unable to allocate shape and strides.") * */ } /* "View.MemoryView":151 * * * for idx, dim in enumerate(shape): # <<<<<<<<<<<<<< * if dim <= 0: * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) */ __pyx_t_8 = 0; __pyx_t_3 = __pyx_v_shape; __Pyx_INCREF(__pyx_t_3); __pyx_t_1 = 0; for (;;) { if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_1); __Pyx_INCREF(__pyx_t_5); __pyx_t_1++; if (unlikely(0 < 0)) __PYX_ERR(2, 151, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_t_5); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 151, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_dim = __pyx_t_9; __pyx_v_idx = __pyx_t_8; __pyx_t_8 = (__pyx_t_8 + 1); /* "View.MemoryView":152 * * for idx, dim in enumerate(shape): * if dim <= 0: # <<<<<<<<<<<<<< * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) * self._shape[idx] = dim */ __pyx_t_4 = ((__pyx_v_dim <= 0) != 0); if (unlikely(__pyx_t_4)) { /* "View.MemoryView":153 * for idx, dim in enumerate(shape): * if dim <= 0: * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) # <<<<<<<<<<<<<< * self._shape[idx] = dim * */ __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_idx); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_dim); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_6); __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Invalid_shape_in_axis_d_d, __pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_6); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_Raise(__pyx_t_10, 0, 0, 0); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __PYX_ERR(2, 153, __pyx_L1_error) /* "View.MemoryView":152 * * for idx, dim in enumerate(shape): * if dim <= 0: # <<<<<<<<<<<<<< * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) * self._shape[idx] = dim */ } /* "View.MemoryView":154 * if dim <= 0: * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) * self._shape[idx] = dim # <<<<<<<<<<<<<< * * cdef char order */ (__pyx_v_self->_shape[__pyx_v_idx]) = __pyx_v_dim; /* "View.MemoryView":151 * * * for idx, dim in enumerate(shape): # <<<<<<<<<<<<<< * if dim <= 0: * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":157 * * cdef char order * if mode == 'fortran': # <<<<<<<<<<<<<< * order = b'F' * self.mode = u'fortran' */ __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_fortran, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(2, 157, __pyx_L1_error) if (__pyx_t_4) { /* "View.MemoryView":158 * cdef char order * if mode == 'fortran': * order = b'F' # <<<<<<<<<<<<<< * self.mode = u'fortran' * elif mode == 'c': */ __pyx_v_order = 'F'; /* "View.MemoryView":159 * if mode == 'fortran': * order = b'F' * self.mode = u'fortran' # <<<<<<<<<<<<<< * elif mode == 'c': * order = b'C' */ __Pyx_INCREF(__pyx_n_u_fortran); __Pyx_GIVEREF(__pyx_n_u_fortran); __Pyx_GOTREF(__pyx_v_self->mode); __Pyx_DECREF(__pyx_v_self->mode); __pyx_v_self->mode = __pyx_n_u_fortran; /* "View.MemoryView":157 * * cdef char order * if mode == 'fortran': # <<<<<<<<<<<<<< * order = b'F' * self.mode = u'fortran' */ goto __pyx_L10; } /* "View.MemoryView":160 * order = b'F' * self.mode = u'fortran' * elif mode == 'c': # <<<<<<<<<<<<<< * order = b'C' * self.mode = u'c' */ __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_c, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(2, 160, __pyx_L1_error) if (likely(__pyx_t_4)) { /* "View.MemoryView":161 * self.mode = u'fortran' * elif mode == 'c': * order = b'C' # <<<<<<<<<<<<<< * self.mode = u'c' * else: */ __pyx_v_order = 'C'; /* "View.MemoryView":162 * elif mode == 'c': * order = b'C' * self.mode = u'c' # <<<<<<<<<<<<<< * else: * raise ValueError("Invalid mode, expected 'c' or 'fortran', got %s" % mode) */ __Pyx_INCREF(__pyx_n_u_c); __Pyx_GIVEREF(__pyx_n_u_c); __Pyx_GOTREF(__pyx_v_self->mode); __Pyx_DECREF(__pyx_v_self->mode); __pyx_v_self->mode = __pyx_n_u_c; /* "View.MemoryView":160 * order = b'F' * self.mode = u'fortran' * elif mode == 'c': # <<<<<<<<<<<<<< * order = b'C' * self.mode = u'c' */ goto __pyx_L10; } /* "View.MemoryView":164 * self.mode = u'c' * else: * raise ValueError("Invalid mode, expected 'c' or 'fortran', got %s" % mode) # <<<<<<<<<<<<<< * * self.len = fill_contig_strides_array(self._shape, self._strides, */ /*else*/ { __pyx_t_3 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Invalid_mode_expected_c_or_fortr, __pyx_v_mode); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_10, 0, 0, 0); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __PYX_ERR(2, 164, __pyx_L1_error) } __pyx_L10:; /* "View.MemoryView":166 * raise ValueError("Invalid mode, expected 'c' or 'fortran', got %s" % mode) * * self.len = fill_contig_strides_array(self._shape, self._strides, # <<<<<<<<<<<<<< * itemsize, self.ndim, order) * */ __pyx_v_self->len = __pyx_fill_contig_strides_array(__pyx_v_self->_shape, __pyx_v_self->_strides, __pyx_v_itemsize, __pyx_v_self->ndim, __pyx_v_order); /* "View.MemoryView":169 * itemsize, self.ndim, order) * * self.free_data = allocate_buffer # <<<<<<<<<<<<<< * self.dtype_is_object = format == b'O' * if allocate_buffer: */ __pyx_v_self->free_data = __pyx_v_allocate_buffer; /* "View.MemoryView":170 * * self.free_data = allocate_buffer * self.dtype_is_object = format == b'O' # <<<<<<<<<<<<<< * if allocate_buffer: * */ __pyx_t_10 = PyObject_RichCompare(__pyx_v_format, __pyx_n_b_O, Py_EQ); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 170, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 170, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_v_self->dtype_is_object = __pyx_t_4; /* "View.MemoryView":171 * self.free_data = allocate_buffer * self.dtype_is_object = format == b'O' * if allocate_buffer: # <<<<<<<<<<<<<< * * */ __pyx_t_4 = (__pyx_v_allocate_buffer != 0); if (__pyx_t_4) { /* "View.MemoryView":174 * * * self.data = malloc(self.len) # <<<<<<<<<<<<<< * if not self.data: * raise MemoryError("unable to allocate array data.") */ __pyx_v_self->data = ((char *)malloc(__pyx_v_self->len)); /* "View.MemoryView":175 * * self.data = malloc(self.len) * if not self.data: # <<<<<<<<<<<<<< * raise MemoryError("unable to allocate array data.") * */ __pyx_t_4 = ((!(__pyx_v_self->data != 0)) != 0); if (unlikely(__pyx_t_4)) { /* "View.MemoryView":176 * self.data = malloc(self.len) * if not self.data: * raise MemoryError("unable to allocate array data.") # <<<<<<<<<<<<<< * * if self.dtype_is_object: */ __pyx_t_10 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__29, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_Raise(__pyx_t_10, 0, 0, 0); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __PYX_ERR(2, 176, __pyx_L1_error) /* "View.MemoryView":175 * * self.data = malloc(self.len) * if not self.data: # <<<<<<<<<<<<<< * raise MemoryError("unable to allocate array data.") * */ } /* "View.MemoryView":178 * raise MemoryError("unable to allocate array data.") * * if self.dtype_is_object: # <<<<<<<<<<<<<< * p = self.data * for i in range(self.len / itemsize): */ __pyx_t_4 = (__pyx_v_self->dtype_is_object != 0); if (__pyx_t_4) { /* "View.MemoryView":179 * * if self.dtype_is_object: * p = self.data # <<<<<<<<<<<<<< * for i in range(self.len / itemsize): * p[i] = Py_None */ __pyx_v_p = ((PyObject **)__pyx_v_self->data); /* "View.MemoryView":180 * if self.dtype_is_object: * p = self.data * for i in range(self.len / itemsize): # <<<<<<<<<<<<<< * p[i] = Py_None * Py_INCREF(Py_None) */ if (unlikely(__pyx_v_itemsize == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero"); __PYX_ERR(2, 180, __pyx_L1_error) } else if (sizeof(Py_ssize_t) == sizeof(long) && (!(((Py_ssize_t)-1) > 0)) && unlikely(__pyx_v_itemsize == (Py_ssize_t)-1) && unlikely(UNARY_NEG_WOULD_OVERFLOW(__pyx_v_self->len))) { PyErr_SetString(PyExc_OverflowError, "value too large to perform division"); __PYX_ERR(2, 180, __pyx_L1_error) } __pyx_t_1 = __Pyx_div_Py_ssize_t(__pyx_v_self->len, __pyx_v_itemsize); __pyx_t_9 = __pyx_t_1; for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_9; __pyx_t_11+=1) { __pyx_v_i = __pyx_t_11; /* "View.MemoryView":181 * p = self.data * for i in range(self.len / itemsize): * p[i] = Py_None # <<<<<<<<<<<<<< * Py_INCREF(Py_None) * */ (__pyx_v_p[__pyx_v_i]) = Py_None; /* "View.MemoryView":182 * for i in range(self.len / itemsize): * p[i] = Py_None * Py_INCREF(Py_None) # <<<<<<<<<<<<<< * * @cname('getbuffer') */ Py_INCREF(Py_None); } /* "View.MemoryView":178 * raise MemoryError("unable to allocate array data.") * * if self.dtype_is_object: # <<<<<<<<<<<<<< * p = self.data * for i in range(self.len / itemsize): */ } /* "View.MemoryView":171 * self.free_data = allocate_buffer * self.dtype_is_object = format == b'O' * if allocate_buffer: # <<<<<<<<<<<<<< * * */ } /* "View.MemoryView":122 * cdef bint dtype_is_object * * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<< * mode="c", bint allocate_buffer=True): * */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("View.MemoryView.array.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_format); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":185 * * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< * cdef int bufmode = -1 * if self.mode == u"c": */ /* Python wrapper */ static CYTHON_UNUSED int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ static CYTHON_UNUSED int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(((struct __pyx_array_obj *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(struct __pyx_array_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_v_bufmode; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; char *__pyx_t_4; Py_ssize_t __pyx_t_5; int __pyx_t_6; Py_ssize_t *__pyx_t_7; if (__pyx_v_info == NULL) { PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); return -1; } __Pyx_RefNannySetupContext("__getbuffer__", 0); __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); __Pyx_GIVEREF(__pyx_v_info->obj); /* "View.MemoryView":186 * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): * cdef int bufmode = -1 # <<<<<<<<<<<<<< * if self.mode == u"c": * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS */ __pyx_v_bufmode = -1; /* "View.MemoryView":187 * def __getbuffer__(self, Py_buffer *info, int flags): * cdef int bufmode = -1 * if self.mode == u"c": # <<<<<<<<<<<<<< * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * elif self.mode == u"fortran": */ __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_self->mode, __pyx_n_u_c, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 187, __pyx_L1_error) __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":188 * cdef int bufmode = -1 * if self.mode == u"c": * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS # <<<<<<<<<<<<<< * elif self.mode == u"fortran": * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS */ __pyx_v_bufmode = (PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS); /* "View.MemoryView":187 * def __getbuffer__(self, Py_buffer *info, int flags): * cdef int bufmode = -1 * if self.mode == u"c": # <<<<<<<<<<<<<< * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * elif self.mode == u"fortran": */ goto __pyx_L3; } /* "View.MemoryView":189 * if self.mode == u"c": * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * elif self.mode == u"fortran": # <<<<<<<<<<<<<< * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): */ __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_self->mode, __pyx_n_u_fortran, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 189, __pyx_L1_error) __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* "View.MemoryView":190 * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * elif self.mode == u"fortran": * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS # <<<<<<<<<<<<<< * if not (flags & bufmode): * raise ValueError("Can only create a buffer that is contiguous in memory.") */ __pyx_v_bufmode = (PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS); /* "View.MemoryView":189 * if self.mode == u"c": * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * elif self.mode == u"fortran": # <<<<<<<<<<<<<< * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): */ } __pyx_L3:; /* "View.MemoryView":191 * elif self.mode == u"fortran": * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): # <<<<<<<<<<<<<< * raise ValueError("Can only create a buffer that is contiguous in memory.") * info.buf = self.data */ __pyx_t_1 = ((!((__pyx_v_flags & __pyx_v_bufmode) != 0)) != 0); if (unlikely(__pyx_t_1)) { /* "View.MemoryView":192 * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): * raise ValueError("Can only create a buffer that is contiguous in memory.") # <<<<<<<<<<<<<< * info.buf = self.data * info.len = self.len */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__30, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 192, __pyx_L1_error) /* "View.MemoryView":191 * elif self.mode == u"fortran": * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): # <<<<<<<<<<<<<< * raise ValueError("Can only create a buffer that is contiguous in memory.") * info.buf = self.data */ } /* "View.MemoryView":193 * if not (flags & bufmode): * raise ValueError("Can only create a buffer that is contiguous in memory.") * info.buf = self.data # <<<<<<<<<<<<<< * info.len = self.len * info.ndim = self.ndim */ __pyx_t_4 = __pyx_v_self->data; __pyx_v_info->buf = __pyx_t_4; /* "View.MemoryView":194 * raise ValueError("Can only create a buffer that is contiguous in memory.") * info.buf = self.data * info.len = self.len # <<<<<<<<<<<<<< * info.ndim = self.ndim * info.shape = self._shape */ __pyx_t_5 = __pyx_v_self->len; __pyx_v_info->len = __pyx_t_5; /* "View.MemoryView":195 * info.buf = self.data * info.len = self.len * info.ndim = self.ndim # <<<<<<<<<<<<<< * info.shape = self._shape * info.strides = self._strides */ __pyx_t_6 = __pyx_v_self->ndim; __pyx_v_info->ndim = __pyx_t_6; /* "View.MemoryView":196 * info.len = self.len * info.ndim = self.ndim * info.shape = self._shape # <<<<<<<<<<<<<< * info.strides = self._strides * info.suboffsets = NULL */ __pyx_t_7 = __pyx_v_self->_shape; __pyx_v_info->shape = __pyx_t_7; /* "View.MemoryView":197 * info.ndim = self.ndim * info.shape = self._shape * info.strides = self._strides # <<<<<<<<<<<<<< * info.suboffsets = NULL * info.itemsize = self.itemsize */ __pyx_t_7 = __pyx_v_self->_strides; __pyx_v_info->strides = __pyx_t_7; /* "View.MemoryView":198 * info.shape = self._shape * info.strides = self._strides * info.suboffsets = NULL # <<<<<<<<<<<<<< * info.itemsize = self.itemsize * info.readonly = 0 */ __pyx_v_info->suboffsets = NULL; /* "View.MemoryView":199 * info.strides = self._strides * info.suboffsets = NULL * info.itemsize = self.itemsize # <<<<<<<<<<<<<< * info.readonly = 0 * */ __pyx_t_5 = __pyx_v_self->itemsize; __pyx_v_info->itemsize = __pyx_t_5; /* "View.MemoryView":200 * info.suboffsets = NULL * info.itemsize = self.itemsize * info.readonly = 0 # <<<<<<<<<<<<<< * * if flags & PyBUF_FORMAT: */ __pyx_v_info->readonly = 0; /* "View.MemoryView":202 * info.readonly = 0 * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * info.format = self.format * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0); if (__pyx_t_1) { /* "View.MemoryView":203 * * if flags & PyBUF_FORMAT: * info.format = self.format # <<<<<<<<<<<<<< * else: * info.format = NULL */ __pyx_t_4 = __pyx_v_self->format; __pyx_v_info->format = __pyx_t_4; /* "View.MemoryView":202 * info.readonly = 0 * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * info.format = self.format * else: */ goto __pyx_L5; } /* "View.MemoryView":205 * info.format = self.format * else: * info.format = NULL # <<<<<<<<<<<<<< * * info.obj = self */ /*else*/ { __pyx_v_info->format = NULL; } __pyx_L5:; /* "View.MemoryView":207 * info.format = NULL * * info.obj = self # <<<<<<<<<<<<<< * * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") */ __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = ((PyObject *)__pyx_v_self); /* "View.MemoryView":185 * * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< * cdef int bufmode = -1 * if self.mode == u"c": */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.array.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; if (__pyx_v_info->obj != NULL) { __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; } goto __pyx_L2; __pyx_L0:; if (__pyx_v_info->obj == Py_None) { __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; } __pyx_L2:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":211 * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") * * def __dealloc__(array self): # <<<<<<<<<<<<<< * if self.callback_free_data != NULL: * self.callback_free_data(self.data) */ /* Python wrapper */ static void __pyx_array___dealloc__(PyObject *__pyx_v_self); /*proto*/ static void __pyx_array___dealloc__(PyObject *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(((struct __pyx_array_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(struct __pyx_array_obj *__pyx_v_self) { __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("__dealloc__", 0); /* "View.MemoryView":212 * * def __dealloc__(array self): * if self.callback_free_data != NULL: # <<<<<<<<<<<<<< * self.callback_free_data(self.data) * elif self.free_data: */ __pyx_t_1 = ((__pyx_v_self->callback_free_data != NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":213 * def __dealloc__(array self): * if self.callback_free_data != NULL: * self.callback_free_data(self.data) # <<<<<<<<<<<<<< * elif self.free_data: * if self.dtype_is_object: */ __pyx_v_self->callback_free_data(__pyx_v_self->data); /* "View.MemoryView":212 * * def __dealloc__(array self): * if self.callback_free_data != NULL: # <<<<<<<<<<<<<< * self.callback_free_data(self.data) * elif self.free_data: */ goto __pyx_L3; } /* "View.MemoryView":214 * if self.callback_free_data != NULL: * self.callback_free_data(self.data) * elif self.free_data: # <<<<<<<<<<<<<< * if self.dtype_is_object: * refcount_objects_in_slice(self.data, self._shape, */ __pyx_t_1 = (__pyx_v_self->free_data != 0); if (__pyx_t_1) { /* "View.MemoryView":215 * self.callback_free_data(self.data) * elif self.free_data: * if self.dtype_is_object: # <<<<<<<<<<<<<< * refcount_objects_in_slice(self.data, self._shape, * self._strides, self.ndim, False) */ __pyx_t_1 = (__pyx_v_self->dtype_is_object != 0); if (__pyx_t_1) { /* "View.MemoryView":216 * elif self.free_data: * if self.dtype_is_object: * refcount_objects_in_slice(self.data, self._shape, # <<<<<<<<<<<<<< * self._strides, self.ndim, False) * free(self.data) */ __pyx_memoryview_refcount_objects_in_slice(__pyx_v_self->data, __pyx_v_self->_shape, __pyx_v_self->_strides, __pyx_v_self->ndim, 0); /* "View.MemoryView":215 * self.callback_free_data(self.data) * elif self.free_data: * if self.dtype_is_object: # <<<<<<<<<<<<<< * refcount_objects_in_slice(self.data, self._shape, * self._strides, self.ndim, False) */ } /* "View.MemoryView":218 * refcount_objects_in_slice(self.data, self._shape, * self._strides, self.ndim, False) * free(self.data) # <<<<<<<<<<<<<< * PyObject_Free(self._shape) * */ free(__pyx_v_self->data); /* "View.MemoryView":214 * if self.callback_free_data != NULL: * self.callback_free_data(self.data) * elif self.free_data: # <<<<<<<<<<<<<< * if self.dtype_is_object: * refcount_objects_in_slice(self.data, self._shape, */ } __pyx_L3:; /* "View.MemoryView":219 * self._strides, self.ndim, False) * free(self.data) * PyObject_Free(self._shape) # <<<<<<<<<<<<<< * * @property */ PyObject_Free(__pyx_v_self->_shape); /* "View.MemoryView":211 * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") * * def __dealloc__(array self): # <<<<<<<<<<<<<< * if self.callback_free_data != NULL: * self.callback_free_data(self.data) */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "View.MemoryView":222 * * @property * def memview(self): # <<<<<<<<<<<<<< * return self.get_memview() * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_5array_7memview___get__(((struct __pyx_array_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_5array_7memview___get__(struct __pyx_array_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":223 * @property * def memview(self): * return self.get_memview() # <<<<<<<<<<<<<< * * @cname('get_memview') */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((struct __pyx_vtabstruct_array *)__pyx_v_self->__pyx_vtab)->get_memview(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":222 * * @property * def memview(self): # <<<<<<<<<<<<<< * return self.get_memview() * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.array.memview.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":226 * * @cname('get_memview') * cdef get_memview(self): # <<<<<<<<<<<<<< * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE * return memoryview(self, flags, self.dtype_is_object) */ static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *__pyx_v_self) { int __pyx_v_flags; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("get_memview", 0); /* "View.MemoryView":227 * @cname('get_memview') * cdef get_memview(self): * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE # <<<<<<<<<<<<<< * return memoryview(self, flags, self.dtype_is_object) * */ __pyx_v_flags = ((PyBUF_ANY_CONTIGUOUS | PyBUF_FORMAT) | PyBUF_WRITABLE); /* "View.MemoryView":228 * cdef get_memview(self): * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE * return memoryview(self, flags, self.dtype_is_object) # <<<<<<<<<<<<<< * * def __len__(self): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":226 * * @cname('get_memview') * cdef get_memview(self): # <<<<<<<<<<<<<< * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE * return memoryview(self, flags, self.dtype_is_object) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.array.get_memview", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":230 * return memoryview(self, flags, self.dtype_is_object) * * def __len__(self): # <<<<<<<<<<<<<< * return self._shape[0] * */ /* Python wrapper */ static Py_ssize_t __pyx_array___len__(PyObject *__pyx_v_self); /*proto*/ static Py_ssize_t __pyx_array___len__(PyObject *__pyx_v_self) { Py_ssize_t __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__len__ (wrapper)", 0); __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(((struct __pyx_array_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static Py_ssize_t __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(struct __pyx_array_obj *__pyx_v_self) { Py_ssize_t __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__len__", 0); /* "View.MemoryView":231 * * def __len__(self): * return self._shape[0] # <<<<<<<<<<<<<< * * def __getattr__(self, attr): */ __pyx_r = (__pyx_v_self->_shape[0]); goto __pyx_L0; /* "View.MemoryView":230 * return memoryview(self, flags, self.dtype_is_object) * * def __len__(self): # <<<<<<<<<<<<<< * return self._shape[0] * */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":233 * return self._shape[0] * * def __getattr__(self, attr): # <<<<<<<<<<<<<< * return getattr(self.memview, attr) * */ /* Python wrapper */ static PyObject *__pyx_array___getattr__(PyObject *__pyx_v_self, PyObject *__pyx_v_attr); /*proto*/ static PyObject *__pyx_array___getattr__(PyObject *__pyx_v_self, PyObject *__pyx_v_attr) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getattr__ (wrapper)", 0); __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_attr)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_attr) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__getattr__", 0); /* "View.MemoryView":234 * * def __getattr__(self, attr): * return getattr(self.memview, attr) # <<<<<<<<<<<<<< * * def __getitem__(self, item): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_GetAttr(__pyx_t_1, __pyx_v_attr); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":233 * return self._shape[0] * * def __getattr__(self, attr): # <<<<<<<<<<<<<< * return getattr(self.memview, attr) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.array.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":236 * return getattr(self.memview, attr) * * def __getitem__(self, item): # <<<<<<<<<<<<<< * return self.memview[item] * */ /* Python wrapper */ static PyObject *__pyx_array___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item); /*proto*/ static PyObject *__pyx_array___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_item)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__getitem__", 0); /* "View.MemoryView":237 * * def __getitem__(self, item): * return self.memview[item] # <<<<<<<<<<<<<< * * def __setitem__(self, item, value): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_item); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":236 * return getattr(self.memview, attr) * * def __getitem__(self, item): # <<<<<<<<<<<<<< * return self.memview[item] * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.array.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":239 * return self.memview[item] * * def __setitem__(self, item, value): # <<<<<<<<<<<<<< * self.memview[item] = value * */ /* Python wrapper */ static int __pyx_array___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value); /*proto*/ static int __pyx_array___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0); __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_item), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__setitem__", 0); /* "View.MemoryView":240 * * def __setitem__(self, item, value): * self.memview[item] = value # <<<<<<<<<<<<<< * * */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_item, __pyx_v_value) < 0)) __PYX_ERR(2, 240, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "View.MemoryView":239 * return self.memview[item] * * def __setitem__(self, item, value): # <<<<<<<<<<<<<< * self.memview[item] = value * */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.array.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_array_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw___pyx_array_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_array___reduce_cython__(((struct __pyx_array_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_array___reduce_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__31, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(2, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.array.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_array_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw___pyx_array_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_array_2__setstate_cython__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_array_2__setstate_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__32, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(2, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.array.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":244 * * @cname("__pyx_array_new") * cdef array array_cwrapper(tuple shape, Py_ssize_t itemsize, char *format, # <<<<<<<<<<<<<< * char *mode, char *buf): * cdef array result */ static struct __pyx_array_obj *__pyx_array_new(PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, char *__pyx_v_format, char *__pyx_v_mode, char *__pyx_v_buf) { struct __pyx_array_obj *__pyx_v_result = 0; struct __pyx_array_obj *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("array_cwrapper", 0); /* "View.MemoryView":248 * cdef array result * * if buf == NULL: # <<<<<<<<<<<<<< * result = array(shape, itemsize, format, mode.decode('ASCII')) * else: */ __pyx_t_1 = ((__pyx_v_buf == NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":249 * * if buf == NULL: * result = array(shape, itemsize, format, mode.decode('ASCII')) # <<<<<<<<<<<<<< * else: * result = array(shape, itemsize, format, mode.decode('ASCII'), */ __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_itemsize); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_format); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_decode_c_string(__pyx_v_mode, 0, strlen(__pyx_v_mode), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_shape); __Pyx_GIVEREF(__pyx_v_shape); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_shape); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_array_type), __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_result = ((struct __pyx_array_obj *)__pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":248 * cdef array result * * if buf == NULL: # <<<<<<<<<<<<<< * result = array(shape, itemsize, format, mode.decode('ASCII')) * else: */ goto __pyx_L3; } /* "View.MemoryView":251 * result = array(shape, itemsize, format, mode.decode('ASCII')) * else: * result = array(shape, itemsize, format, mode.decode('ASCII'), # <<<<<<<<<<<<<< * allocate_buffer=False) * result.data = buf */ /*else*/ { __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_itemsize); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_format); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_mode, 0, strlen(__pyx_v_mode), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_shape); __Pyx_GIVEREF(__pyx_v_shape); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_shape); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_3); __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_3 = 0; /* "View.MemoryView":252 * else: * result = array(shape, itemsize, format, mode.decode('ASCII'), * allocate_buffer=False) # <<<<<<<<<<<<<< * result.data = buf * */ __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_allocate_buffer, Py_False) < 0) __PYX_ERR(2, 252, __pyx_L1_error) /* "View.MemoryView":251 * result = array(shape, itemsize, format, mode.decode('ASCII')) * else: * result = array(shape, itemsize, format, mode.decode('ASCII'), # <<<<<<<<<<<<<< * allocate_buffer=False) * result.data = buf */ __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_array_type), __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_result = ((struct __pyx_array_obj *)__pyx_t_5); __pyx_t_5 = 0; /* "View.MemoryView":253 * result = array(shape, itemsize, format, mode.decode('ASCII'), * allocate_buffer=False) * result.data = buf # <<<<<<<<<<<<<< * * return result */ __pyx_v_result->data = __pyx_v_buf; } __pyx_L3:; /* "View.MemoryView":255 * result.data = buf * * return result # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_result)); __pyx_r = __pyx_v_result; goto __pyx_L0; /* "View.MemoryView":244 * * @cname("__pyx_array_new") * cdef array array_cwrapper(tuple shape, Py_ssize_t itemsize, char *format, # <<<<<<<<<<<<<< * char *mode, char *buf): * cdef array result */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.array_cwrapper", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_result); __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":281 * cdef class Enum(object): * cdef object name * def __init__(self, name): # <<<<<<<<<<<<<< * self.name = name * def __repr__(self): */ /* Python wrapper */ static int __pyx_MemviewEnum___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_MemviewEnum___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_name = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0}; PyObject* values[1] = {0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(2, 281, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); } __pyx_v_name = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 281, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("View.MemoryView.Enum.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self), __pyx_v_name); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v_name) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); /* "View.MemoryView":282 * cdef object name * def __init__(self, name): * self.name = name # <<<<<<<<<<<<<< * def __repr__(self): * return self.name */ __Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); __Pyx_GOTREF(__pyx_v_self->name); __Pyx_DECREF(__pyx_v_self->name); __pyx_v_self->name = __pyx_v_name; /* "View.MemoryView":281 * cdef class Enum(object): * cdef object name * def __init__(self, name): # <<<<<<<<<<<<<< * self.name = name * def __repr__(self): */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":283 * def __init__(self, name): * self.name = name * def __repr__(self): # <<<<<<<<<<<<<< * return self.name * */ /* Python wrapper */ static PyObject *__pyx_MemviewEnum___repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_MemviewEnum___repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(struct __pyx_MemviewEnum_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__", 0); /* "View.MemoryView":284 * self.name = name * def __repr__(self): * return self.name # <<<<<<<<<<<<<< * * cdef generic = Enum("") */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->name); __pyx_r = __pyx_v_self->name; goto __pyx_L0; /* "View.MemoryView":283 * def __init__(self, name): * self.name = name * def __repr__(self): # <<<<<<<<<<<<<< * return self.name * */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * cdef tuple state * cdef object _dict */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_MemviewEnum_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw___pyx_MemviewEnum_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_MemviewEnum___reduce_cython__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_MemviewEnum___reduce_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self) { PyObject *__pyx_v_state = 0; PyObject *__pyx_v__dict = 0; int __pyx_v_use_setstate; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":5 * cdef object _dict * cdef bint use_setstate * state = (self.name,) # <<<<<<<<<<<<<< * _dict = getattr(self, '__dict__', None) * if _dict is not None: */ __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_self->name); __Pyx_GIVEREF(__pyx_v_self->name); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->name); __pyx_v_state = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "(tree fragment)":6 * cdef bint use_setstate * state = (self.name,) * _dict = getattr(self, '__dict__', None) # <<<<<<<<<<<<<< * if _dict is not None: * state += (_dict,) */ __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v__dict = __pyx_t_1; __pyx_t_1 = 0; /* "(tree fragment)":7 * state = (self.name,) * _dict = getattr(self, '__dict__', None) * if _dict is not None: # <<<<<<<<<<<<<< * state += (_dict,) * use_setstate = True */ __pyx_t_2 = (__pyx_v__dict != Py_None); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* "(tree fragment)":8 * _dict = getattr(self, '__dict__', None) * if _dict is not None: * state += (_dict,) # <<<<<<<<<<<<<< * use_setstate = True * else: */ __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v__dict); __Pyx_GIVEREF(__pyx_v__dict); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict); __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4)); __pyx_t_4 = 0; /* "(tree fragment)":9 * if _dict is not None: * state += (_dict,) * use_setstate = True # <<<<<<<<<<<<<< * else: * use_setstate = self.name is not None */ __pyx_v_use_setstate = 1; /* "(tree fragment)":7 * state = (self.name,) * _dict = getattr(self, '__dict__', None) * if _dict is not None: # <<<<<<<<<<<<<< * state += (_dict,) * use_setstate = True */ goto __pyx_L3; } /* "(tree fragment)":11 * use_setstate = True * else: * use_setstate = self.name is not None # <<<<<<<<<<<<<< * if use_setstate: * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state */ /*else*/ { __pyx_t_3 = (__pyx_v_self->name != Py_None); __pyx_v_use_setstate = __pyx_t_3; } __pyx_L3:; /* "(tree fragment)":12 * else: * use_setstate = self.name is not None * if use_setstate: # <<<<<<<<<<<<<< * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state * else: */ __pyx_t_3 = (__pyx_v_use_setstate != 0); if (__pyx_t_3) { /* "(tree fragment)":13 * use_setstate = self.name is not None * if use_setstate: * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state # <<<<<<<<<<<<<< * else: * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Enum); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_INCREF(__pyx_int_184977713); __Pyx_GIVEREF(__pyx_int_184977713); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_184977713); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None); __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1); __Pyx_INCREF(__pyx_v_state); __Pyx_GIVEREF(__pyx_v_state); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state); __pyx_t_4 = 0; __pyx_t_1 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0; /* "(tree fragment)":12 * else: * use_setstate = self.name is not None * if use_setstate: # <<<<<<<<<<<<<< * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state * else: */ } /* "(tree fragment)":15 * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state * else: * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * __pyx_unpickle_Enum__set_state(self, __pyx_state) */ /*else*/ { __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_Enum); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_INCREF(__pyx_int_184977713); __Pyx_GIVEREF(__pyx_int_184977713); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_184977713); __Pyx_INCREF(__pyx_v_state); __Pyx_GIVEREF(__pyx_v_state); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); __pyx_t_5 = 0; __pyx_t_1 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * cdef tuple state * cdef object _dict */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.Enum.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_state); __Pyx_XDECREF(__pyx_v__dict); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":16 * else: * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * __pyx_unpickle_Enum__set_state(self, __pyx_state) */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_MemviewEnum_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw___pyx_MemviewEnum_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_MemviewEnum_2__setstate_cython__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_MemviewEnum_2__setstate_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":17 * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) * def __setstate_cython__(self, __pyx_state): * __pyx_unpickle_Enum__set_state(self, __pyx_state) # <<<<<<<<<<<<<< */ if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(2, 17, __pyx_L1_error) __pyx_t_1 = __pyx_unpickle_Enum__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 17, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "(tree fragment)":16 * else: * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * __pyx_unpickle_Enum__set_state(self, __pyx_state) */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.Enum.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":298 * * @cname('__pyx_align_pointer') * cdef void *align_pointer(void *memory, size_t alignment) nogil: # <<<<<<<<<<<<<< * "Align pointer memory on a given boundary" * cdef Py_intptr_t aligned_p = memory */ static void *__pyx_align_pointer(void *__pyx_v_memory, size_t __pyx_v_alignment) { Py_intptr_t __pyx_v_aligned_p; size_t __pyx_v_offset; void *__pyx_r; int __pyx_t_1; /* "View.MemoryView":300 * cdef void *align_pointer(void *memory, size_t alignment) nogil: * "Align pointer memory on a given boundary" * cdef Py_intptr_t aligned_p = memory # <<<<<<<<<<<<<< * cdef size_t offset * */ __pyx_v_aligned_p = ((Py_intptr_t)__pyx_v_memory); /* "View.MemoryView":304 * * with cython.cdivision(True): * offset = aligned_p % alignment # <<<<<<<<<<<<<< * * if offset > 0: */ __pyx_v_offset = (__pyx_v_aligned_p % __pyx_v_alignment); /* "View.MemoryView":306 * offset = aligned_p % alignment * * if offset > 0: # <<<<<<<<<<<<<< * aligned_p += alignment - offset * */ __pyx_t_1 = ((__pyx_v_offset > 0) != 0); if (__pyx_t_1) { /* "View.MemoryView":307 * * if offset > 0: * aligned_p += alignment - offset # <<<<<<<<<<<<<< * * return aligned_p */ __pyx_v_aligned_p = (__pyx_v_aligned_p + (__pyx_v_alignment - __pyx_v_offset)); /* "View.MemoryView":306 * offset = aligned_p % alignment * * if offset > 0: # <<<<<<<<<<<<<< * aligned_p += alignment - offset * */ } /* "View.MemoryView":309 * aligned_p += alignment - offset * * return aligned_p # <<<<<<<<<<<<<< * * */ __pyx_r = ((void *)__pyx_v_aligned_p); goto __pyx_L0; /* "View.MemoryView":298 * * @cname('__pyx_align_pointer') * cdef void *align_pointer(void *memory, size_t alignment) nogil: # <<<<<<<<<<<<<< * "Align pointer memory on a given boundary" * cdef Py_intptr_t aligned_p = memory */ /* function exit code */ __pyx_L0:; return __pyx_r; } /* "View.MemoryView":345 * cdef __Pyx_TypeInfo *typeinfo * * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): # <<<<<<<<<<<<<< * self.obj = obj * self.flags = flags */ /* Python wrapper */ static int __pyx_memoryview___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_memoryview___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_obj = 0; int __pyx_v_flags; int __pyx_v_dtype_is_object; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_obj,&__pyx_n_s_flags,&__pyx_n_s_dtype_is_object,0}; PyObject* values[3] = {0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_obj)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, 1); __PYX_ERR(2, 345, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dtype_is_object); if (value) { values[2] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(2, 345, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_obj = values[0]; __pyx_v_flags = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_flags == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 345, __pyx_L3_error) if (values[2]) { __pyx_v_dtype_is_object = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_dtype_is_object == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 345, __pyx_L3_error) } else { __pyx_v_dtype_is_object = ((int)0); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 345, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("View.MemoryView.memoryview.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_obj, __pyx_v_flags, __pyx_v_dtype_is_object); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_v_flags, int __pyx_v_dtype_is_object) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; __Pyx_RefNannySetupContext("__cinit__", 0); /* "View.MemoryView":346 * * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): * self.obj = obj # <<<<<<<<<<<<<< * self.flags = flags * if type(self) is memoryview or obj is not None: */ __Pyx_INCREF(__pyx_v_obj); __Pyx_GIVEREF(__pyx_v_obj); __Pyx_GOTREF(__pyx_v_self->obj); __Pyx_DECREF(__pyx_v_self->obj); __pyx_v_self->obj = __pyx_v_obj; /* "View.MemoryView":347 * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): * self.obj = obj * self.flags = flags # <<<<<<<<<<<<<< * if type(self) is memoryview or obj is not None: * __Pyx_GetBuffer(obj, &self.view, flags) */ __pyx_v_self->flags = __pyx_v_flags; /* "View.MemoryView":348 * self.obj = obj * self.flags = flags * if type(self) is memoryview or obj is not None: # <<<<<<<<<<<<<< * __Pyx_GetBuffer(obj, &self.view, flags) * if self.view.obj == NULL: */ __pyx_t_2 = (((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))) == ((PyObject *)__pyx_memoryview_type)); __pyx_t_3 = (__pyx_t_2 != 0); if (!__pyx_t_3) { } else { __pyx_t_1 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = (__pyx_v_obj != Py_None); __pyx_t_2 = (__pyx_t_3 != 0); __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; if (__pyx_t_1) { /* "View.MemoryView":349 * self.flags = flags * if type(self) is memoryview or obj is not None: * __Pyx_GetBuffer(obj, &self.view, flags) # <<<<<<<<<<<<<< * if self.view.obj == NULL: * (<__pyx_buffer *> &self.view).obj = Py_None */ __pyx_t_4 = __Pyx_GetBuffer(__pyx_v_obj, (&__pyx_v_self->view), __pyx_v_flags); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 349, __pyx_L1_error) /* "View.MemoryView":350 * if type(self) is memoryview or obj is not None: * __Pyx_GetBuffer(obj, &self.view, flags) * if self.view.obj == NULL: # <<<<<<<<<<<<<< * (<__pyx_buffer *> &self.view).obj = Py_None * Py_INCREF(Py_None) */ __pyx_t_1 = ((((PyObject *)__pyx_v_self->view.obj) == NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":351 * __Pyx_GetBuffer(obj, &self.view, flags) * if self.view.obj == NULL: * (<__pyx_buffer *> &self.view).obj = Py_None # <<<<<<<<<<<<<< * Py_INCREF(Py_None) * */ ((Py_buffer *)(&__pyx_v_self->view))->obj = Py_None; /* "View.MemoryView":352 * if self.view.obj == NULL: * (<__pyx_buffer *> &self.view).obj = Py_None * Py_INCREF(Py_None) # <<<<<<<<<<<<<< * * global __pyx_memoryview_thread_locks_used */ Py_INCREF(Py_None); /* "View.MemoryView":350 * if type(self) is memoryview or obj is not None: * __Pyx_GetBuffer(obj, &self.view, flags) * if self.view.obj == NULL: # <<<<<<<<<<<<<< * (<__pyx_buffer *> &self.view).obj = Py_None * Py_INCREF(Py_None) */ } /* "View.MemoryView":348 * self.obj = obj * self.flags = flags * if type(self) is memoryview or obj is not None: # <<<<<<<<<<<<<< * __Pyx_GetBuffer(obj, &self.view, flags) * if self.view.obj == NULL: */ } /* "View.MemoryView":355 * * global __pyx_memoryview_thread_locks_used * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: # <<<<<<<<<<<<<< * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] * __pyx_memoryview_thread_locks_used += 1 */ __pyx_t_1 = ((__pyx_memoryview_thread_locks_used < 8) != 0); if (__pyx_t_1) { /* "View.MemoryView":356 * global __pyx_memoryview_thread_locks_used * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks_used += 1 * if self.lock is NULL: */ __pyx_v_self->lock = (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]); /* "View.MemoryView":357 * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] * __pyx_memoryview_thread_locks_used += 1 # <<<<<<<<<<<<<< * if self.lock is NULL: * self.lock = PyThread_allocate_lock() */ __pyx_memoryview_thread_locks_used = (__pyx_memoryview_thread_locks_used + 1); /* "View.MemoryView":355 * * global __pyx_memoryview_thread_locks_used * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: # <<<<<<<<<<<<<< * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] * __pyx_memoryview_thread_locks_used += 1 */ } /* "View.MemoryView":358 * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] * __pyx_memoryview_thread_locks_used += 1 * if self.lock is NULL: # <<<<<<<<<<<<<< * self.lock = PyThread_allocate_lock() * if self.lock is NULL: */ __pyx_t_1 = ((__pyx_v_self->lock == NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":359 * __pyx_memoryview_thread_locks_used += 1 * if self.lock is NULL: * self.lock = PyThread_allocate_lock() # <<<<<<<<<<<<<< * if self.lock is NULL: * raise MemoryError */ __pyx_v_self->lock = PyThread_allocate_lock(); /* "View.MemoryView":360 * if self.lock is NULL: * self.lock = PyThread_allocate_lock() * if self.lock is NULL: # <<<<<<<<<<<<<< * raise MemoryError * */ __pyx_t_1 = ((__pyx_v_self->lock == NULL) != 0); if (unlikely(__pyx_t_1)) { /* "View.MemoryView":361 * self.lock = PyThread_allocate_lock() * if self.lock is NULL: * raise MemoryError # <<<<<<<<<<<<<< * * if flags & PyBUF_FORMAT: */ PyErr_NoMemory(); __PYX_ERR(2, 361, __pyx_L1_error) /* "View.MemoryView":360 * if self.lock is NULL: * self.lock = PyThread_allocate_lock() * if self.lock is NULL: # <<<<<<<<<<<<<< * raise MemoryError * */ } /* "View.MemoryView":358 * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] * __pyx_memoryview_thread_locks_used += 1 * if self.lock is NULL: # <<<<<<<<<<<<<< * self.lock = PyThread_allocate_lock() * if self.lock is NULL: */ } /* "View.MemoryView":363 * raise MemoryError * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0); if (__pyx_t_1) { /* "View.MemoryView":364 * * if flags & PyBUF_FORMAT: * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') # <<<<<<<<<<<<<< * else: * self.dtype_is_object = dtype_is_object */ __pyx_t_2 = (((__pyx_v_self->view.format[0]) == 'O') != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L11_bool_binop_done; } __pyx_t_2 = (((__pyx_v_self->view.format[1]) == '\x00') != 0); __pyx_t_1 = __pyx_t_2; __pyx_L11_bool_binop_done:; __pyx_v_self->dtype_is_object = __pyx_t_1; /* "View.MemoryView":363 * raise MemoryError * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') * else: */ goto __pyx_L10; } /* "View.MemoryView":366 * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') * else: * self.dtype_is_object = dtype_is_object # <<<<<<<<<<<<<< * * self.acquisition_count_aligned_p = <__pyx_atomic_int *> align_pointer( */ /*else*/ { __pyx_v_self->dtype_is_object = __pyx_v_dtype_is_object; } __pyx_L10:; /* "View.MemoryView":368 * self.dtype_is_object = dtype_is_object * * self.acquisition_count_aligned_p = <__pyx_atomic_int *> align_pointer( # <<<<<<<<<<<<<< * &self.acquisition_count[0], sizeof(__pyx_atomic_int)) * self.typeinfo = NULL */ __pyx_v_self->acquisition_count_aligned_p = ((__pyx_atomic_int *)__pyx_align_pointer(((void *)(&(__pyx_v_self->acquisition_count[0]))), (sizeof(__pyx_atomic_int)))); /* "View.MemoryView":370 * self.acquisition_count_aligned_p = <__pyx_atomic_int *> align_pointer( * &self.acquisition_count[0], sizeof(__pyx_atomic_int)) * self.typeinfo = NULL # <<<<<<<<<<<<<< * * def __dealloc__(memoryview self): */ __pyx_v_self->typeinfo = NULL; /* "View.MemoryView":345 * cdef __Pyx_TypeInfo *typeinfo * * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): # <<<<<<<<<<<<<< * self.obj = obj * self.flags = flags */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("View.MemoryView.memoryview.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":372 * self.typeinfo = NULL * * def __dealloc__(memoryview self): # <<<<<<<<<<<<<< * if self.obj is not None: * __Pyx_ReleaseBuffer(&self.view) */ /* Python wrapper */ static void __pyx_memoryview___dealloc__(PyObject *__pyx_v_self); /*proto*/ static void __pyx_memoryview___dealloc__(PyObject *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(struct __pyx_memoryview_obj *__pyx_v_self) { int __pyx_v_i; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; int __pyx_t_5; PyThread_type_lock __pyx_t_6; PyThread_type_lock __pyx_t_7; __Pyx_RefNannySetupContext("__dealloc__", 0); /* "View.MemoryView":373 * * def __dealloc__(memoryview self): * if self.obj is not None: # <<<<<<<<<<<<<< * __Pyx_ReleaseBuffer(&self.view) * elif (<__pyx_buffer *> &self.view).obj == Py_None: */ __pyx_t_1 = (__pyx_v_self->obj != Py_None); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":374 * def __dealloc__(memoryview self): * if self.obj is not None: * __Pyx_ReleaseBuffer(&self.view) # <<<<<<<<<<<<<< * elif (<__pyx_buffer *> &self.view).obj == Py_None: * */ __Pyx_ReleaseBuffer((&__pyx_v_self->view)); /* "View.MemoryView":373 * * def __dealloc__(memoryview self): * if self.obj is not None: # <<<<<<<<<<<<<< * __Pyx_ReleaseBuffer(&self.view) * elif (<__pyx_buffer *> &self.view).obj == Py_None: */ goto __pyx_L3; } /* "View.MemoryView":375 * if self.obj is not None: * __Pyx_ReleaseBuffer(&self.view) * elif (<__pyx_buffer *> &self.view).obj == Py_None: # <<<<<<<<<<<<<< * * (<__pyx_buffer *> &self.view).obj = NULL */ __pyx_t_2 = ((((Py_buffer *)(&__pyx_v_self->view))->obj == Py_None) != 0); if (__pyx_t_2) { /* "View.MemoryView":377 * elif (<__pyx_buffer *> &self.view).obj == Py_None: * * (<__pyx_buffer *> &self.view).obj = NULL # <<<<<<<<<<<<<< * Py_DECREF(Py_None) * */ ((Py_buffer *)(&__pyx_v_self->view))->obj = NULL; /* "View.MemoryView":378 * * (<__pyx_buffer *> &self.view).obj = NULL * Py_DECREF(Py_None) # <<<<<<<<<<<<<< * * cdef int i */ Py_DECREF(Py_None); /* "View.MemoryView":375 * if self.obj is not None: * __Pyx_ReleaseBuffer(&self.view) * elif (<__pyx_buffer *> &self.view).obj == Py_None: # <<<<<<<<<<<<<< * * (<__pyx_buffer *> &self.view).obj = NULL */ } __pyx_L3:; /* "View.MemoryView":382 * cdef int i * global __pyx_memoryview_thread_locks_used * if self.lock != NULL: # <<<<<<<<<<<<<< * for i in range(__pyx_memoryview_thread_locks_used): * if __pyx_memoryview_thread_locks[i] is self.lock: */ __pyx_t_2 = ((__pyx_v_self->lock != NULL) != 0); if (__pyx_t_2) { /* "View.MemoryView":383 * global __pyx_memoryview_thread_locks_used * if self.lock != NULL: * for i in range(__pyx_memoryview_thread_locks_used): # <<<<<<<<<<<<<< * if __pyx_memoryview_thread_locks[i] is self.lock: * __pyx_memoryview_thread_locks_used -= 1 */ __pyx_t_3 = __pyx_memoryview_thread_locks_used; __pyx_t_4 = __pyx_t_3; for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_v_i = __pyx_t_5; /* "View.MemoryView":384 * if self.lock != NULL: * for i in range(__pyx_memoryview_thread_locks_used): * if __pyx_memoryview_thread_locks[i] is self.lock: # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks_used -= 1 * if i != __pyx_memoryview_thread_locks_used: */ __pyx_t_2 = (((__pyx_memoryview_thread_locks[__pyx_v_i]) == __pyx_v_self->lock) != 0); if (__pyx_t_2) { /* "View.MemoryView":385 * for i in range(__pyx_memoryview_thread_locks_used): * if __pyx_memoryview_thread_locks[i] is self.lock: * __pyx_memoryview_thread_locks_used -= 1 # <<<<<<<<<<<<<< * if i != __pyx_memoryview_thread_locks_used: * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( */ __pyx_memoryview_thread_locks_used = (__pyx_memoryview_thread_locks_used - 1); /* "View.MemoryView":386 * if __pyx_memoryview_thread_locks[i] is self.lock: * __pyx_memoryview_thread_locks_used -= 1 * if i != __pyx_memoryview_thread_locks_used: # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) */ __pyx_t_2 = ((__pyx_v_i != __pyx_memoryview_thread_locks_used) != 0); if (__pyx_t_2) { /* "View.MemoryView":388 * if i != __pyx_memoryview_thread_locks_used: * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) # <<<<<<<<<<<<<< * break * else: */ __pyx_t_6 = (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]); __pyx_t_7 = (__pyx_memoryview_thread_locks[__pyx_v_i]); /* "View.MemoryView":387 * __pyx_memoryview_thread_locks_used -= 1 * if i != __pyx_memoryview_thread_locks_used: * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) * break */ (__pyx_memoryview_thread_locks[__pyx_v_i]) = __pyx_t_6; (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]) = __pyx_t_7; /* "View.MemoryView":386 * if __pyx_memoryview_thread_locks[i] is self.lock: * __pyx_memoryview_thread_locks_used -= 1 * if i != __pyx_memoryview_thread_locks_used: # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) */ } /* "View.MemoryView":389 * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) * break # <<<<<<<<<<<<<< * else: * PyThread_free_lock(self.lock) */ goto __pyx_L6_break; /* "View.MemoryView":384 * if self.lock != NULL: * for i in range(__pyx_memoryview_thread_locks_used): * if __pyx_memoryview_thread_locks[i] is self.lock: # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks_used -= 1 * if i != __pyx_memoryview_thread_locks_used: */ } } /*else*/ { /* "View.MemoryView":391 * break * else: * PyThread_free_lock(self.lock) # <<<<<<<<<<<<<< * * cdef char *get_item_pointer(memoryview self, object index) except NULL: */ PyThread_free_lock(__pyx_v_self->lock); } __pyx_L6_break:; /* "View.MemoryView":382 * cdef int i * global __pyx_memoryview_thread_locks_used * if self.lock != NULL: # <<<<<<<<<<<<<< * for i in range(__pyx_memoryview_thread_locks_used): * if __pyx_memoryview_thread_locks[i] is self.lock: */ } /* "View.MemoryView":372 * self.typeinfo = NULL * * def __dealloc__(memoryview self): # <<<<<<<<<<<<<< * if self.obj is not None: * __Pyx_ReleaseBuffer(&self.view) */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "View.MemoryView":393 * PyThread_free_lock(self.lock) * * cdef char *get_item_pointer(memoryview self, object index) except NULL: # <<<<<<<<<<<<<< * cdef Py_ssize_t dim * cdef char *itemp = self.view.buf */ static char *__pyx_memoryview_get_item_pointer(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index) { Py_ssize_t __pyx_v_dim; char *__pyx_v_itemp; PyObject *__pyx_v_idx = NULL; char *__pyx_r; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; PyObject *__pyx_t_2 = NULL; Py_ssize_t __pyx_t_3; PyObject *(*__pyx_t_4)(PyObject *); PyObject *__pyx_t_5 = NULL; Py_ssize_t __pyx_t_6; char *__pyx_t_7; __Pyx_RefNannySetupContext("get_item_pointer", 0); /* "View.MemoryView":395 * cdef char *get_item_pointer(memoryview self, object index) except NULL: * cdef Py_ssize_t dim * cdef char *itemp = self.view.buf # <<<<<<<<<<<<<< * * for dim, idx in enumerate(index): */ __pyx_v_itemp = ((char *)__pyx_v_self->view.buf); /* "View.MemoryView":397 * cdef char *itemp = self.view.buf * * for dim, idx in enumerate(index): # <<<<<<<<<<<<<< * itemp = pybuffer_index(&self.view, itemp, idx, dim) * */ __pyx_t_1 = 0; if (likely(PyList_CheckExact(__pyx_v_index)) || PyTuple_CheckExact(__pyx_v_index)) { __pyx_t_2 = __pyx_v_index; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; __pyx_t_4 = NULL; } else { __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 397, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_4)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(2, 397, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } else { if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(2, 397, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } } else { __pyx_t_5 = __pyx_t_4(__pyx_t_2); if (unlikely(!__pyx_t_5)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 397, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_5); } __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_5); __pyx_t_5 = 0; __pyx_v_dim = __pyx_t_1; __pyx_t_1 = (__pyx_t_1 + 1); /* "View.MemoryView":398 * * for dim, idx in enumerate(index): * itemp = pybuffer_index(&self.view, itemp, idx, dim) # <<<<<<<<<<<<<< * * return itemp */ __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_idx); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 398, __pyx_L1_error) __pyx_t_7 = __pyx_pybuffer_index((&__pyx_v_self->view), __pyx_v_itemp, __pyx_t_6, __pyx_v_dim); if (unlikely(__pyx_t_7 == ((char *)NULL))) __PYX_ERR(2, 398, __pyx_L1_error) __pyx_v_itemp = __pyx_t_7; /* "View.MemoryView":397 * cdef char *itemp = self.view.buf * * for dim, idx in enumerate(index): # <<<<<<<<<<<<<< * itemp = pybuffer_index(&self.view, itemp, idx, dim) * */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":400 * itemp = pybuffer_index(&self.view, itemp, idx, dim) * * return itemp # <<<<<<<<<<<<<< * * */ __pyx_r = __pyx_v_itemp; goto __pyx_L0; /* "View.MemoryView":393 * PyThread_free_lock(self.lock) * * cdef char *get_item_pointer(memoryview self, object index) except NULL: # <<<<<<<<<<<<<< * cdef Py_ssize_t dim * cdef char *itemp = self.view.buf */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.memoryview.get_item_pointer", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_idx); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":403 * * * def __getitem__(memoryview self, object index): # <<<<<<<<<<<<<< * if index is Ellipsis: * return self */ /* Python wrapper */ static PyObject *__pyx_memoryview___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index); /*proto*/ static PyObject *__pyx_memoryview___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v_index)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index) { PyObject *__pyx_v_have_slices = NULL; PyObject *__pyx_v_indices = NULL; char *__pyx_v_itemp; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; char *__pyx_t_6; __Pyx_RefNannySetupContext("__getitem__", 0); /* "View.MemoryView":404 * * def __getitem__(memoryview self, object index): * if index is Ellipsis: # <<<<<<<<<<<<<< * return self * */ __pyx_t_1 = (__pyx_v_index == __pyx_builtin_Ellipsis); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":405 * def __getitem__(memoryview self, object index): * if index is Ellipsis: * return self # <<<<<<<<<<<<<< * * have_slices, indices = _unellipsify(index, self.view.ndim) */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; /* "View.MemoryView":404 * * def __getitem__(memoryview self, object index): * if index is Ellipsis: # <<<<<<<<<<<<<< * return self * */ } /* "View.MemoryView":407 * return self * * have_slices, indices = _unellipsify(index, self.view.ndim) # <<<<<<<<<<<<<< * * cdef char *itemp */ __pyx_t_3 = _unellipsify(__pyx_v_index, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (likely(__pyx_t_3 != Py_None)) { PyObject* sequence = __pyx_t_3; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(2, 407, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); #else __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 407, __pyx_L1_error) } __pyx_v_have_slices = __pyx_t_4; __pyx_t_4 = 0; __pyx_v_indices = __pyx_t_5; __pyx_t_5 = 0; /* "View.MemoryView":410 * * cdef char *itemp * if have_slices: # <<<<<<<<<<<<<< * return memview_slice(self, indices) * else: */ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_have_slices); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 410, __pyx_L1_error) if (__pyx_t_2) { /* "View.MemoryView":411 * cdef char *itemp * if have_slices: * return memview_slice(self, indices) # <<<<<<<<<<<<<< * else: * itemp = self.get_item_pointer(indices) */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = ((PyObject *)__pyx_memview_slice(__pyx_v_self, __pyx_v_indices)); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* "View.MemoryView":410 * * cdef char *itemp * if have_slices: # <<<<<<<<<<<<<< * return memview_slice(self, indices) * else: */ } /* "View.MemoryView":413 * return memview_slice(self, indices) * else: * itemp = self.get_item_pointer(indices) # <<<<<<<<<<<<<< * return self.convert_item_to_object(itemp) * */ /*else*/ { __pyx_t_6 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->get_item_pointer(__pyx_v_self, __pyx_v_indices); if (unlikely(__pyx_t_6 == ((char *)NULL))) __PYX_ERR(2, 413, __pyx_L1_error) __pyx_v_itemp = __pyx_t_6; /* "View.MemoryView":414 * else: * itemp = self.get_item_pointer(indices) * return self.convert_item_to_object(itemp) # <<<<<<<<<<<<<< * * def __setitem__(memoryview self, object index, object value): */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->convert_item_to_object(__pyx_v_self, __pyx_v_itemp); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; } /* "View.MemoryView":403 * * * def __getitem__(memoryview self, object index): # <<<<<<<<<<<<<< * if index is Ellipsis: * return self */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.memoryview.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_have_slices); __Pyx_XDECREF(__pyx_v_indices); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":416 * return self.convert_item_to_object(itemp) * * def __setitem__(memoryview self, object index, object value): # <<<<<<<<<<<<<< * if self.view.readonly: * raise TypeError("Cannot assign to read-only memoryview") */ /* Python wrapper */ static int __pyx_memoryview___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /*proto*/ static int __pyx_memoryview___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v_index), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { PyObject *__pyx_v_have_slices = NULL; PyObject *__pyx_v_obj = NULL; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; __Pyx_RefNannySetupContext("__setitem__", 0); __Pyx_INCREF(__pyx_v_index); /* "View.MemoryView":417 * * def __setitem__(memoryview self, object index, object value): * if self.view.readonly: # <<<<<<<<<<<<<< * raise TypeError("Cannot assign to read-only memoryview") * */ __pyx_t_1 = (__pyx_v_self->view.readonly != 0); if (unlikely(__pyx_t_1)) { /* "View.MemoryView":418 * def __setitem__(memoryview self, object index, object value): * if self.view.readonly: * raise TypeError("Cannot assign to read-only memoryview") # <<<<<<<<<<<<<< * * have_slices, index = _unellipsify(index, self.view.ndim) */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__33, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(2, 418, __pyx_L1_error) /* "View.MemoryView":417 * * def __setitem__(memoryview self, object index, object value): * if self.view.readonly: # <<<<<<<<<<<<<< * raise TypeError("Cannot assign to read-only memoryview") * */ } /* "View.MemoryView":420 * raise TypeError("Cannot assign to read-only memoryview") * * have_slices, index = _unellipsify(index, self.view.ndim) # <<<<<<<<<<<<<< * * if have_slices: */ __pyx_t_2 = _unellipsify(__pyx_v_index, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (likely(__pyx_t_2 != Py_None)) { PyObject* sequence = __pyx_t_2; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(2, 420, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); #else __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 420, __pyx_L1_error) } __pyx_v_have_slices = __pyx_t_3; __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_index, __pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":422 * have_slices, index = _unellipsify(index, self.view.ndim) * * if have_slices: # <<<<<<<<<<<<<< * obj = self.is_slice(value) * if obj: */ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_have_slices); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 422, __pyx_L1_error) if (__pyx_t_1) { /* "View.MemoryView":423 * * if have_slices: * obj = self.is_slice(value) # <<<<<<<<<<<<<< * if obj: * self.setitem_slice_assignment(self[index], obj) */ __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->is_slice(__pyx_v_self, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_obj = __pyx_t_2; __pyx_t_2 = 0; /* "View.MemoryView":424 * if have_slices: * obj = self.is_slice(value) * if obj: # <<<<<<<<<<<<<< * self.setitem_slice_assignment(self[index], obj) * else: */ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_obj); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 424, __pyx_L1_error) if (__pyx_t_1) { /* "View.MemoryView":425 * obj = self.is_slice(value) * if obj: * self.setitem_slice_assignment(self[index], obj) # <<<<<<<<<<<<<< * else: * self.setitem_slice_assign_scalar(self[index], value) */ __pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self), __pyx_v_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_slice_assignment(__pyx_v_self, __pyx_t_2, __pyx_v_obj); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":424 * if have_slices: * obj = self.is_slice(value) * if obj: # <<<<<<<<<<<<<< * self.setitem_slice_assignment(self[index], obj) * else: */ goto __pyx_L5; } /* "View.MemoryView":427 * self.setitem_slice_assignment(self[index], obj) * else: * self.setitem_slice_assign_scalar(self[index], value) # <<<<<<<<<<<<<< * else: * self.setitem_indexed(index, value) */ /*else*/ { __pyx_t_4 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self), __pyx_v_index); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_memoryview_type))))) __PYX_ERR(2, 427, __pyx_L1_error) __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_slice_assign_scalar(__pyx_v_self, ((struct __pyx_memoryview_obj *)__pyx_t_4), __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_L5:; /* "View.MemoryView":422 * have_slices, index = _unellipsify(index, self.view.ndim) * * if have_slices: # <<<<<<<<<<<<<< * obj = self.is_slice(value) * if obj: */ goto __pyx_L4; } /* "View.MemoryView":429 * self.setitem_slice_assign_scalar(self[index], value) * else: * self.setitem_indexed(index, value) # <<<<<<<<<<<<<< * * cdef is_slice(self, obj): */ /*else*/ { __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_indexed(__pyx_v_self, __pyx_v_index, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 429, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_L4:; /* "View.MemoryView":416 * return self.convert_item_to_object(itemp) * * def __setitem__(memoryview self, object index, object value): # <<<<<<<<<<<<<< * if self.view.readonly: * raise TypeError("Cannot assign to read-only memoryview") */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("View.MemoryView.memoryview.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_have_slices); __Pyx_XDECREF(__pyx_v_obj); __Pyx_XDECREF(__pyx_v_index); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":431 * self.setitem_indexed(index, value) * * cdef is_slice(self, obj): # <<<<<<<<<<<<<< * if not isinstance(obj, memoryview): * try: */ static PyObject *__pyx_memoryview_is_slice(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; int __pyx_t_9; __Pyx_RefNannySetupContext("is_slice", 0); __Pyx_INCREF(__pyx_v_obj); /* "View.MemoryView":432 * * cdef is_slice(self, obj): * if not isinstance(obj, memoryview): # <<<<<<<<<<<<<< * try: * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, */ __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_obj, __pyx_memoryview_type); __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":433 * cdef is_slice(self, obj): * if not isinstance(obj, memoryview): * try: # <<<<<<<<<<<<<< * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, * self.dtype_is_object) */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_5); /*try:*/ { /* "View.MemoryView":434 * if not isinstance(obj, memoryview): * try: * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, # <<<<<<<<<<<<<< * self.dtype_is_object) * except TypeError: */ __pyx_t_6 = __Pyx_PyInt_From_int(((__pyx_v_self->flags & (~PyBUF_WRITABLE)) | PyBUF_ANY_CONTIGUOUS)); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 434, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); /* "View.MemoryView":435 * try: * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, * self.dtype_is_object) # <<<<<<<<<<<<<< * except TypeError: * return None */ __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_self->dtype_is_object); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 435, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); /* "View.MemoryView":434 * if not isinstance(obj, memoryview): * try: * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, # <<<<<<<<<<<<<< * self.dtype_is_object) * except TypeError: */ __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 434, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_v_obj); __Pyx_GIVEREF(__pyx_v_obj); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_obj); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7); __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_8, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 434, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF_SET(__pyx_v_obj, __pyx_t_7); __pyx_t_7 = 0; /* "View.MemoryView":433 * cdef is_slice(self, obj): * if not isinstance(obj, memoryview): * try: # <<<<<<<<<<<<<< * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, * self.dtype_is_object) */ } __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; /* "View.MemoryView":436 * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, * self.dtype_is_object) * except TypeError: # <<<<<<<<<<<<<< * return None * */ __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError); if (__pyx_t_9) { __Pyx_AddTraceback("View.MemoryView.memoryview.is_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_6) < 0) __PYX_ERR(2, 436, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_6); /* "View.MemoryView":437 * self.dtype_is_object) * except TypeError: * return None # <<<<<<<<<<<<<< * * return obj */ __Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L7_except_return; } goto __pyx_L6_except_error; __pyx_L6_except_error:; /* "View.MemoryView":433 * cdef is_slice(self, obj): * if not isinstance(obj, memoryview): * try: # <<<<<<<<<<<<<< * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, * self.dtype_is_object) */ __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5); goto __pyx_L1_error; __pyx_L7_except_return:; __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5); goto __pyx_L0; __pyx_L9_try_end:; } /* "View.MemoryView":432 * * cdef is_slice(self, obj): * if not isinstance(obj, memoryview): # <<<<<<<<<<<<<< * try: * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, */ } /* "View.MemoryView":439 * return None * * return obj # <<<<<<<<<<<<<< * * cdef setitem_slice_assignment(self, dst, src): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_obj); __pyx_r = __pyx_v_obj; goto __pyx_L0; /* "View.MemoryView":431 * self.setitem_indexed(index, value) * * cdef is_slice(self, obj): # <<<<<<<<<<<<<< * if not isinstance(obj, memoryview): * try: */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("View.MemoryView.memoryview.is_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_obj); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":441 * return obj * * cdef setitem_slice_assignment(self, dst, src): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice dst_slice * cdef __Pyx_memviewslice src_slice */ static PyObject *__pyx_memoryview_setitem_slice_assignment(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_dst, PyObject *__pyx_v_src) { __Pyx_memviewslice __pyx_v_dst_slice; __Pyx_memviewslice __pyx_v_src_slice; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; __Pyx_RefNannySetupContext("setitem_slice_assignment", 0); /* "View.MemoryView":445 * cdef __Pyx_memviewslice src_slice * * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], # <<<<<<<<<<<<<< * get_slice_from_memview(dst, &dst_slice)[0], * src.ndim, dst.ndim, self.dtype_is_object) */ if (!(likely(((__pyx_v_src) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_src, __pyx_memoryview_type))))) __PYX_ERR(2, 445, __pyx_L1_error) /* "View.MemoryView":446 * * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], * get_slice_from_memview(dst, &dst_slice)[0], # <<<<<<<<<<<<<< * src.ndim, dst.ndim, self.dtype_is_object) * */ if (!(likely(((__pyx_v_dst) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_dst, __pyx_memoryview_type))))) __PYX_ERR(2, 446, __pyx_L1_error) /* "View.MemoryView":447 * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], * get_slice_from_memview(dst, &dst_slice)[0], * src.ndim, dst.ndim, self.dtype_is_object) # <<<<<<<<<<<<<< * * cdef setitem_slice_assign_scalar(self, memoryview dst, value): */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_src, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 447, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dst, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 447, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "View.MemoryView":445 * cdef __Pyx_memviewslice src_slice * * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], # <<<<<<<<<<<<<< * get_slice_from_memview(dst, &dst_slice)[0], * src.ndim, dst.ndim, self.dtype_is_object) */ __pyx_t_4 = __pyx_memoryview_copy_contents((__pyx_memoryview_get_slice_from_memoryview(((struct __pyx_memoryview_obj *)__pyx_v_src), (&__pyx_v_src_slice))[0]), (__pyx_memoryview_get_slice_from_memoryview(((struct __pyx_memoryview_obj *)__pyx_v_dst), (&__pyx_v_dst_slice))[0]), __pyx_t_2, __pyx_t_3, __pyx_v_self->dtype_is_object); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 445, __pyx_L1_error) /* "View.MemoryView":441 * return obj * * cdef setitem_slice_assignment(self, dst, src): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice dst_slice * cdef __Pyx_memviewslice src_slice */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_slice_assignment", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":449 * src.ndim, dst.ndim, self.dtype_is_object) * * cdef setitem_slice_assign_scalar(self, memoryview dst, value): # <<<<<<<<<<<<<< * cdef int array[128] * cdef void *tmp = NULL */ static PyObject *__pyx_memoryview_setitem_slice_assign_scalar(struct __pyx_memoryview_obj *__pyx_v_self, struct __pyx_memoryview_obj *__pyx_v_dst, PyObject *__pyx_v_value) { int __pyx_v_array[0x80]; void *__pyx_v_tmp; void *__pyx_v_item; __Pyx_memviewslice *__pyx_v_dst_slice; __Pyx_memviewslice __pyx_v_tmp_slice; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_t_3; int __pyx_t_4; char const *__pyx_t_5; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; __Pyx_RefNannySetupContext("setitem_slice_assign_scalar", 0); /* "View.MemoryView":451 * cdef setitem_slice_assign_scalar(self, memoryview dst, value): * cdef int array[128] * cdef void *tmp = NULL # <<<<<<<<<<<<<< * cdef void *item * */ __pyx_v_tmp = NULL; /* "View.MemoryView":456 * cdef __Pyx_memviewslice *dst_slice * cdef __Pyx_memviewslice tmp_slice * dst_slice = get_slice_from_memview(dst, &tmp_slice) # <<<<<<<<<<<<<< * * if self.view.itemsize > sizeof(array): */ __pyx_v_dst_slice = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_dst, (&__pyx_v_tmp_slice)); /* "View.MemoryView":458 * dst_slice = get_slice_from_memview(dst, &tmp_slice) * * if self.view.itemsize > sizeof(array): # <<<<<<<<<<<<<< * tmp = PyMem_Malloc(self.view.itemsize) * if tmp == NULL: */ __pyx_t_1 = ((((size_t)__pyx_v_self->view.itemsize) > (sizeof(__pyx_v_array))) != 0); if (__pyx_t_1) { /* "View.MemoryView":459 * * if self.view.itemsize > sizeof(array): * tmp = PyMem_Malloc(self.view.itemsize) # <<<<<<<<<<<<<< * if tmp == NULL: * raise MemoryError */ __pyx_v_tmp = PyMem_Malloc(__pyx_v_self->view.itemsize); /* "View.MemoryView":460 * if self.view.itemsize > sizeof(array): * tmp = PyMem_Malloc(self.view.itemsize) * if tmp == NULL: # <<<<<<<<<<<<<< * raise MemoryError * item = tmp */ __pyx_t_1 = ((__pyx_v_tmp == NULL) != 0); if (unlikely(__pyx_t_1)) { /* "View.MemoryView":461 * tmp = PyMem_Malloc(self.view.itemsize) * if tmp == NULL: * raise MemoryError # <<<<<<<<<<<<<< * item = tmp * else: */ PyErr_NoMemory(); __PYX_ERR(2, 461, __pyx_L1_error) /* "View.MemoryView":460 * if self.view.itemsize > sizeof(array): * tmp = PyMem_Malloc(self.view.itemsize) * if tmp == NULL: # <<<<<<<<<<<<<< * raise MemoryError * item = tmp */ } /* "View.MemoryView":462 * if tmp == NULL: * raise MemoryError * item = tmp # <<<<<<<<<<<<<< * else: * item = array */ __pyx_v_item = __pyx_v_tmp; /* "View.MemoryView":458 * dst_slice = get_slice_from_memview(dst, &tmp_slice) * * if self.view.itemsize > sizeof(array): # <<<<<<<<<<<<<< * tmp = PyMem_Malloc(self.view.itemsize) * if tmp == NULL: */ goto __pyx_L3; } /* "View.MemoryView":464 * item = tmp * else: * item = array # <<<<<<<<<<<<<< * * try: */ /*else*/ { __pyx_v_item = ((void *)__pyx_v_array); } __pyx_L3:; /* "View.MemoryView":466 * item = array * * try: # <<<<<<<<<<<<<< * if self.dtype_is_object: * ( item)[0] = value */ /*try:*/ { /* "View.MemoryView":467 * * try: * if self.dtype_is_object: # <<<<<<<<<<<<<< * ( item)[0] = value * else: */ __pyx_t_1 = (__pyx_v_self->dtype_is_object != 0); if (__pyx_t_1) { /* "View.MemoryView":468 * try: * if self.dtype_is_object: * ( item)[0] = value # <<<<<<<<<<<<<< * else: * self.assign_item_from_object( item, value) */ (((PyObject **)__pyx_v_item)[0]) = ((PyObject *)__pyx_v_value); /* "View.MemoryView":467 * * try: * if self.dtype_is_object: # <<<<<<<<<<<<<< * ( item)[0] = value * else: */ goto __pyx_L8; } /* "View.MemoryView":470 * ( item)[0] = value * else: * self.assign_item_from_object( item, value) # <<<<<<<<<<<<<< * * */ /*else*/ { __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->assign_item_from_object(__pyx_v_self, ((char *)__pyx_v_item), __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 470, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_L8:; /* "View.MemoryView":474 * * * if self.view.suboffsets != NULL: # <<<<<<<<<<<<<< * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, */ __pyx_t_1 = ((__pyx_v_self->view.suboffsets != NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":475 * * if self.view.suboffsets != NULL: * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) # <<<<<<<<<<<<<< * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, * item, self.dtype_is_object) */ __pyx_t_2 = assert_direct_dimensions(__pyx_v_self->view.suboffsets, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 475, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":474 * * * if self.view.suboffsets != NULL: # <<<<<<<<<<<<<< * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, */ } /* "View.MemoryView":476 * if self.view.suboffsets != NULL: * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, # <<<<<<<<<<<<<< * item, self.dtype_is_object) * finally: */ __pyx_memoryview_slice_assign_scalar(__pyx_v_dst_slice, __pyx_v_dst->view.ndim, __pyx_v_self->view.itemsize, __pyx_v_item, __pyx_v_self->dtype_is_object); } /* "View.MemoryView":479 * item, self.dtype_is_object) * finally: * PyMem_Free(tmp) # <<<<<<<<<<<<<< * * cdef setitem_indexed(self, index, value): */ /*finally:*/ { /*normal exit:*/{ PyMem_Free(__pyx_v_tmp); goto __pyx_L7; } __pyx_L6_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { PyMem_Free(__pyx_v_tmp); } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); } __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L7:; } /* "View.MemoryView":449 * src.ndim, dst.ndim, self.dtype_is_object) * * cdef setitem_slice_assign_scalar(self, memoryview dst, value): # <<<<<<<<<<<<<< * cdef int array[128] * cdef void *tmp = NULL */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_slice_assign_scalar", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":481 * PyMem_Free(tmp) * * cdef setitem_indexed(self, index, value): # <<<<<<<<<<<<<< * cdef char *itemp = self.get_item_pointer(index) * self.assign_item_from_object(itemp, value) */ static PyObject *__pyx_memoryview_setitem_indexed(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { char *__pyx_v_itemp; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations char *__pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("setitem_indexed", 0); /* "View.MemoryView":482 * * cdef setitem_indexed(self, index, value): * cdef char *itemp = self.get_item_pointer(index) # <<<<<<<<<<<<<< * self.assign_item_from_object(itemp, value) * */ __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->get_item_pointer(__pyx_v_self, __pyx_v_index); if (unlikely(__pyx_t_1 == ((char *)NULL))) __PYX_ERR(2, 482, __pyx_L1_error) __pyx_v_itemp = __pyx_t_1; /* "View.MemoryView":483 * cdef setitem_indexed(self, index, value): * cdef char *itemp = self.get_item_pointer(index) * self.assign_item_from_object(itemp, value) # <<<<<<<<<<<<<< * * cdef convert_item_to_object(self, char *itemp): */ __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->assign_item_from_object(__pyx_v_self, __pyx_v_itemp, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":481 * PyMem_Free(tmp) * * cdef setitem_indexed(self, index, value): # <<<<<<<<<<<<<< * cdef char *itemp = self.get_item_pointer(index) * self.assign_item_from_object(itemp, value) */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_indexed", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":485 * self.assign_item_from_object(itemp, value) * * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" */ static PyObject *__pyx_memoryview_convert_item_to_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp) { PyObject *__pyx_v_struct = NULL; PyObject *__pyx_v_bytesitem = 0; PyObject *__pyx_v_result = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; PyObject *__pyx_t_9 = NULL; size_t __pyx_t_10; int __pyx_t_11; __Pyx_RefNannySetupContext("convert_item_to_object", 0); /* "View.MemoryView":488 * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" * import struct # <<<<<<<<<<<<<< * cdef bytes bytesitem * */ __pyx_t_1 = __Pyx_Import(__pyx_n_s_struct, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 488, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_struct = __pyx_t_1; __pyx_t_1 = 0; /* "View.MemoryView":491 * cdef bytes bytesitem * * bytesitem = itemp[:self.view.itemsize] # <<<<<<<<<<<<<< * try: * result = struct.unpack(self.view.format, bytesitem) */ __pyx_t_1 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_itemp + 0, __pyx_v_self->view.itemsize - 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_bytesitem = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "View.MemoryView":492 * * bytesitem = itemp[:self.view.itemsize] * try: # <<<<<<<<<<<<<< * result = struct.unpack(self.view.format, bytesitem) * except struct.error: */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "View.MemoryView":493 * bytesitem = itemp[:self.view.itemsize] * try: * result = struct.unpack(self.view.format, bytesitem) # <<<<<<<<<<<<<< * except struct.error: * raise ValueError("Unable to convert item to object") */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_unpack); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 493, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 493, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_6, __pyx_v_bytesitem}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 493, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_6, __pyx_v_bytesitem}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 493, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif { __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 493, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_6); __Pyx_INCREF(__pyx_v_bytesitem); __Pyx_GIVEREF(__pyx_v_bytesitem); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_bytesitem); __pyx_t_6 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 493, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_result = __pyx_t_1; __pyx_t_1 = 0; /* "View.MemoryView":492 * * bytesitem = itemp[:self.view.itemsize] * try: # <<<<<<<<<<<<<< * result = struct.unpack(self.view.format, bytesitem) * except struct.error: */ } /* "View.MemoryView":497 * raise ValueError("Unable to convert item to object") * else: * if len(self.view.format) == 1: # <<<<<<<<<<<<<< * return result[0] * return result */ /*else:*/ { __pyx_t_10 = strlen(__pyx_v_self->view.format); __pyx_t_11 = ((__pyx_t_10 == 1) != 0); if (__pyx_t_11) { /* "View.MemoryView":498 * else: * if len(self.view.format) == 1: * return result[0] # <<<<<<<<<<<<<< * return result * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_result, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 498, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L6_except_return; /* "View.MemoryView":497 * raise ValueError("Unable to convert item to object") * else: * if len(self.view.format) == 1: # <<<<<<<<<<<<<< * return result[0] * return result */ } /* "View.MemoryView":499 * if len(self.view.format) == 1: * return result[0] * return result # <<<<<<<<<<<<<< * * cdef assign_item_from_object(self, char *itemp, object value): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_result); __pyx_r = __pyx_v_result; goto __pyx_L6_except_return; } __pyx_L3_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; /* "View.MemoryView":494 * try: * result = struct.unpack(self.view.format, bytesitem) * except struct.error: # <<<<<<<<<<<<<< * raise ValueError("Unable to convert item to object") * else: */ __Pyx_ErrFetch(&__pyx_t_1, &__pyx_t_5, &__pyx_t_9); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_error); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 494, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_8 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_1, __pyx_t_6); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_ErrRestore(__pyx_t_1, __pyx_t_5, __pyx_t_9); __pyx_t_1 = 0; __pyx_t_5 = 0; __pyx_t_9 = 0; if (__pyx_t_8) { __Pyx_AddTraceback("View.MemoryView.memoryview.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_5, &__pyx_t_1) < 0) __PYX_ERR(2, 494, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_1); /* "View.MemoryView":495 * result = struct.unpack(self.view.format, bytesitem) * except struct.error: * raise ValueError("Unable to convert item to object") # <<<<<<<<<<<<<< * else: * if len(self.view.format) == 1: */ __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__34, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 495, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(2, 495, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; /* "View.MemoryView":492 * * bytesitem = itemp[:self.view.itemsize] * try: # <<<<<<<<<<<<<< * result = struct.unpack(self.view.format, bytesitem) * except struct.error: */ __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L6_except_return:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L0; } /* "View.MemoryView":485 * self.assign_item_from_object(itemp, value) * * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("View.MemoryView.memoryview.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_struct); __Pyx_XDECREF(__pyx_v_bytesitem); __Pyx_XDECREF(__pyx_v_result); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":501 * return result * * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" */ static PyObject *__pyx_memoryview_assign_item_from_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value) { PyObject *__pyx_v_struct = NULL; char __pyx_v_c; PyObject *__pyx_v_bytesvalue = 0; Py_ssize_t __pyx_v_i; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_t_7; PyObject *__pyx_t_8 = NULL; Py_ssize_t __pyx_t_9; PyObject *__pyx_t_10 = NULL; char *__pyx_t_11; char *__pyx_t_12; char *__pyx_t_13; char *__pyx_t_14; __Pyx_RefNannySetupContext("assign_item_from_object", 0); /* "View.MemoryView":504 * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" * import struct # <<<<<<<<<<<<<< * cdef char c * cdef bytes bytesvalue */ __pyx_t_1 = __Pyx_Import(__pyx_n_s_struct, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 504, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_struct = __pyx_t_1; __pyx_t_1 = 0; /* "View.MemoryView":509 * cdef Py_ssize_t i * * if isinstance(value, tuple): # <<<<<<<<<<<<<< * bytesvalue = struct.pack(self.view.format, *value) * else: */ __pyx_t_2 = PyTuple_Check(__pyx_v_value); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* "View.MemoryView":510 * * if isinstance(value, tuple): * bytesvalue = struct.pack(self.view.format, *value) # <<<<<<<<<<<<<< * else: * bytesvalue = struct.pack(self.view.format, value) */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_pack); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_v_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyNumber_Add(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(2, 510, __pyx_L1_error) __pyx_v_bytesvalue = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":509 * cdef Py_ssize_t i * * if isinstance(value, tuple): # <<<<<<<<<<<<<< * bytesvalue = struct.pack(self.view.format, *value) * else: */ goto __pyx_L3; } /* "View.MemoryView":512 * bytesvalue = struct.pack(self.view.format, *value) * else: * bytesvalue = struct.pack(self.view.format, value) # <<<<<<<<<<<<<< * * for i, c in enumerate(bytesvalue): */ /*else*/ { __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_pack); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_7 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_1, __pyx_v_value}; __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 512, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_1, __pyx_v_value}; __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 512, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_1); __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_value); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(2, 512, __pyx_L1_error) __pyx_v_bytesvalue = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; } __pyx_L3:; /* "View.MemoryView":514 * bytesvalue = struct.pack(self.view.format, value) * * for i, c in enumerate(bytesvalue): # <<<<<<<<<<<<<< * itemp[i] = c * */ __pyx_t_9 = 0; if (unlikely(__pyx_v_bytesvalue == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' is not iterable"); __PYX_ERR(2, 514, __pyx_L1_error) } __Pyx_INCREF(__pyx_v_bytesvalue); __pyx_t_10 = __pyx_v_bytesvalue; __pyx_t_12 = PyBytes_AS_STRING(__pyx_t_10); __pyx_t_13 = (__pyx_t_12 + PyBytes_GET_SIZE(__pyx_t_10)); for (__pyx_t_14 = __pyx_t_12; __pyx_t_14 < __pyx_t_13; __pyx_t_14++) { __pyx_t_11 = __pyx_t_14; __pyx_v_c = (__pyx_t_11[0]); /* "View.MemoryView":515 * * for i, c in enumerate(bytesvalue): * itemp[i] = c # <<<<<<<<<<<<<< * * @cname('getbuffer') */ __pyx_v_i = __pyx_t_9; /* "View.MemoryView":514 * bytesvalue = struct.pack(self.view.format, value) * * for i, c in enumerate(bytesvalue): # <<<<<<<<<<<<<< * itemp[i] = c * */ __pyx_t_9 = (__pyx_t_9 + 1); /* "View.MemoryView":515 * * for i, c in enumerate(bytesvalue): * itemp[i] = c # <<<<<<<<<<<<<< * * @cname('getbuffer') */ (__pyx_v_itemp[__pyx_v_i]) = __pyx_v_c; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; /* "View.MemoryView":501 * return result * * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("View.MemoryView.memoryview.assign_item_from_object", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_struct); __Pyx_XDECREF(__pyx_v_bytesvalue); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":518 * * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< * if flags & PyBUF_WRITABLE and self.view.readonly: * raise ValueError("Cannot create writable memory view from read-only memoryview") */ /* Python wrapper */ static CYTHON_UNUSED int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ static CYTHON_UNUSED int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(struct __pyx_memoryview_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; Py_ssize_t *__pyx_t_4; char *__pyx_t_5; void *__pyx_t_6; int __pyx_t_7; Py_ssize_t __pyx_t_8; if (__pyx_v_info == NULL) { PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); return -1; } __Pyx_RefNannySetupContext("__getbuffer__", 0); __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); __Pyx_GIVEREF(__pyx_v_info->obj); /* "View.MemoryView":519 * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): * if flags & PyBUF_WRITABLE and self.view.readonly: # <<<<<<<<<<<<<< * raise ValueError("Cannot create writable memory view from read-only memoryview") * */ __pyx_t_2 = ((__pyx_v_flags & PyBUF_WRITABLE) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L4_bool_binop_done; } __pyx_t_2 = (__pyx_v_self->view.readonly != 0); __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; if (unlikely(__pyx_t_1)) { /* "View.MemoryView":520 * def __getbuffer__(self, Py_buffer *info, int flags): * if flags & PyBUF_WRITABLE and self.view.readonly: * raise ValueError("Cannot create writable memory view from read-only memoryview") # <<<<<<<<<<<<<< * * if flags & PyBUF_ND: */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 520, __pyx_L1_error) /* "View.MemoryView":519 * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): * if flags & PyBUF_WRITABLE and self.view.readonly: # <<<<<<<<<<<<<< * raise ValueError("Cannot create writable memory view from read-only memoryview") * */ } /* "View.MemoryView":522 * raise ValueError("Cannot create writable memory view from read-only memoryview") * * if flags & PyBUF_ND: # <<<<<<<<<<<<<< * info.shape = self.view.shape * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_ND) != 0); if (__pyx_t_1) { /* "View.MemoryView":523 * * if flags & PyBUF_ND: * info.shape = self.view.shape # <<<<<<<<<<<<<< * else: * info.shape = NULL */ __pyx_t_4 = __pyx_v_self->view.shape; __pyx_v_info->shape = __pyx_t_4; /* "View.MemoryView":522 * raise ValueError("Cannot create writable memory view from read-only memoryview") * * if flags & PyBUF_ND: # <<<<<<<<<<<<<< * info.shape = self.view.shape * else: */ goto __pyx_L6; } /* "View.MemoryView":525 * info.shape = self.view.shape * else: * info.shape = NULL # <<<<<<<<<<<<<< * * if flags & PyBUF_STRIDES: */ /*else*/ { __pyx_v_info->shape = NULL; } __pyx_L6:; /* "View.MemoryView":527 * info.shape = NULL * * if flags & PyBUF_STRIDES: # <<<<<<<<<<<<<< * info.strides = self.view.strides * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_STRIDES) != 0); if (__pyx_t_1) { /* "View.MemoryView":528 * * if flags & PyBUF_STRIDES: * info.strides = self.view.strides # <<<<<<<<<<<<<< * else: * info.strides = NULL */ __pyx_t_4 = __pyx_v_self->view.strides; __pyx_v_info->strides = __pyx_t_4; /* "View.MemoryView":527 * info.shape = NULL * * if flags & PyBUF_STRIDES: # <<<<<<<<<<<<<< * info.strides = self.view.strides * else: */ goto __pyx_L7; } /* "View.MemoryView":530 * info.strides = self.view.strides * else: * info.strides = NULL # <<<<<<<<<<<<<< * * if flags & PyBUF_INDIRECT: */ /*else*/ { __pyx_v_info->strides = NULL; } __pyx_L7:; /* "View.MemoryView":532 * info.strides = NULL * * if flags & PyBUF_INDIRECT: # <<<<<<<<<<<<<< * info.suboffsets = self.view.suboffsets * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_INDIRECT) != 0); if (__pyx_t_1) { /* "View.MemoryView":533 * * if flags & PyBUF_INDIRECT: * info.suboffsets = self.view.suboffsets # <<<<<<<<<<<<<< * else: * info.suboffsets = NULL */ __pyx_t_4 = __pyx_v_self->view.suboffsets; __pyx_v_info->suboffsets = __pyx_t_4; /* "View.MemoryView":532 * info.strides = NULL * * if flags & PyBUF_INDIRECT: # <<<<<<<<<<<<<< * info.suboffsets = self.view.suboffsets * else: */ goto __pyx_L8; } /* "View.MemoryView":535 * info.suboffsets = self.view.suboffsets * else: * info.suboffsets = NULL # <<<<<<<<<<<<<< * * if flags & PyBUF_FORMAT: */ /*else*/ { __pyx_v_info->suboffsets = NULL; } __pyx_L8:; /* "View.MemoryView":537 * info.suboffsets = NULL * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * info.format = self.view.format * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0); if (__pyx_t_1) { /* "View.MemoryView":538 * * if flags & PyBUF_FORMAT: * info.format = self.view.format # <<<<<<<<<<<<<< * else: * info.format = NULL */ __pyx_t_5 = __pyx_v_self->view.format; __pyx_v_info->format = __pyx_t_5; /* "View.MemoryView":537 * info.suboffsets = NULL * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * info.format = self.view.format * else: */ goto __pyx_L9; } /* "View.MemoryView":540 * info.format = self.view.format * else: * info.format = NULL # <<<<<<<<<<<<<< * * info.buf = self.view.buf */ /*else*/ { __pyx_v_info->format = NULL; } __pyx_L9:; /* "View.MemoryView":542 * info.format = NULL * * info.buf = self.view.buf # <<<<<<<<<<<<<< * info.ndim = self.view.ndim * info.itemsize = self.view.itemsize */ __pyx_t_6 = __pyx_v_self->view.buf; __pyx_v_info->buf = __pyx_t_6; /* "View.MemoryView":543 * * info.buf = self.view.buf * info.ndim = self.view.ndim # <<<<<<<<<<<<<< * info.itemsize = self.view.itemsize * info.len = self.view.len */ __pyx_t_7 = __pyx_v_self->view.ndim; __pyx_v_info->ndim = __pyx_t_7; /* "View.MemoryView":544 * info.buf = self.view.buf * info.ndim = self.view.ndim * info.itemsize = self.view.itemsize # <<<<<<<<<<<<<< * info.len = self.view.len * info.readonly = self.view.readonly */ __pyx_t_8 = __pyx_v_self->view.itemsize; __pyx_v_info->itemsize = __pyx_t_8; /* "View.MemoryView":545 * info.ndim = self.view.ndim * info.itemsize = self.view.itemsize * info.len = self.view.len # <<<<<<<<<<<<<< * info.readonly = self.view.readonly * info.obj = self */ __pyx_t_8 = __pyx_v_self->view.len; __pyx_v_info->len = __pyx_t_8; /* "View.MemoryView":546 * info.itemsize = self.view.itemsize * info.len = self.view.len * info.readonly = self.view.readonly # <<<<<<<<<<<<<< * info.obj = self * */ __pyx_t_1 = __pyx_v_self->view.readonly; __pyx_v_info->readonly = __pyx_t_1; /* "View.MemoryView":547 * info.len = self.view.len * info.readonly = self.view.readonly * info.obj = self # <<<<<<<<<<<<<< * * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") */ __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = ((PyObject *)__pyx_v_self); /* "View.MemoryView":518 * * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< * if flags & PyBUF_WRITABLE and self.view.readonly: * raise ValueError("Cannot create writable memory view from read-only memoryview") */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; if (__pyx_v_info->obj != NULL) { __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; } goto __pyx_L2; __pyx_L0:; if (__pyx_v_info->obj == Py_None) { __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; } __pyx_L2:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":553 * * @property * def T(self): # <<<<<<<<<<<<<< * cdef _memoryviewslice result = memoryview_copy(self) * transpose_memslice(&result.from_slice) */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(struct __pyx_memoryview_obj *__pyx_v_self) { struct __pyx_memoryviewslice_obj *__pyx_v_result = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":554 * @property * def T(self): * cdef _memoryviewslice result = memoryview_copy(self) # <<<<<<<<<<<<<< * transpose_memslice(&result.from_slice) * return result */ __pyx_t_1 = __pyx_memoryview_copy_object(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_memoryviewslice_type))))) __PYX_ERR(2, 554, __pyx_L1_error) __pyx_v_result = ((struct __pyx_memoryviewslice_obj *)__pyx_t_1); __pyx_t_1 = 0; /* "View.MemoryView":555 * def T(self): * cdef _memoryviewslice result = memoryview_copy(self) * transpose_memslice(&result.from_slice) # <<<<<<<<<<<<<< * return result * */ __pyx_t_2 = __pyx_memslice_transpose((&__pyx_v_result->from_slice)); if (unlikely(__pyx_t_2 == ((int)0))) __PYX_ERR(2, 555, __pyx_L1_error) /* "View.MemoryView":556 * cdef _memoryviewslice result = memoryview_copy(self) * transpose_memslice(&result.from_slice) * return result # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_result)); __pyx_r = ((PyObject *)__pyx_v_result); goto __pyx_L0; /* "View.MemoryView":553 * * @property * def T(self): # <<<<<<<<<<<<<< * cdef _memoryviewslice result = memoryview_copy(self) * transpose_memslice(&result.from_slice) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.T.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_result); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":559 * * @property * def base(self): # <<<<<<<<<<<<<< * return self.obj * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":560 * @property * def base(self): * return self.obj # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->obj); __pyx_r = __pyx_v_self->obj; goto __pyx_L0; /* "View.MemoryView":559 * * @property * def base(self): # <<<<<<<<<<<<<< * return self.obj * */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":563 * * @property * def shape(self): # <<<<<<<<<<<<<< * return tuple([length for length in self.view.shape[:self.view.ndim]]) * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(struct __pyx_memoryview_obj *__pyx_v_self) { Py_ssize_t __pyx_v_length; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t *__pyx_t_2; Py_ssize_t *__pyx_t_3; Py_ssize_t *__pyx_t_4; PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":564 * @property * def shape(self): * return tuple([length for length in self.view.shape[:self.view.ndim]]) # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = (__pyx_v_self->view.shape + __pyx_v_self->view.ndim); for (__pyx_t_4 = __pyx_v_self->view.shape; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) { __pyx_t_2 = __pyx_t_4; __pyx_v_length = (__pyx_t_2[0]); __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_length); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(2, 564, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_t_5 = PyList_AsTuple(((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0; /* "View.MemoryView":563 * * @property * def shape(self): # <<<<<<<<<<<<<< * return tuple([length for length in self.view.shape[:self.view.ndim]]) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.memoryview.shape.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":567 * * @property * def strides(self): # <<<<<<<<<<<<<< * if self.view.strides == NULL: * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(struct __pyx_memoryview_obj *__pyx_v_self) { Py_ssize_t __pyx_v_stride; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; Py_ssize_t *__pyx_t_3; Py_ssize_t *__pyx_t_4; Py_ssize_t *__pyx_t_5; PyObject *__pyx_t_6 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":568 * @property * def strides(self): * if self.view.strides == NULL: # <<<<<<<<<<<<<< * * raise ValueError("Buffer view does not expose strides") */ __pyx_t_1 = ((__pyx_v_self->view.strides == NULL) != 0); if (unlikely(__pyx_t_1)) { /* "View.MemoryView":570 * if self.view.strides == NULL: * * raise ValueError("Buffer view does not expose strides") # <<<<<<<<<<<<<< * * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__36, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(2, 570, __pyx_L1_error) /* "View.MemoryView":568 * @property * def strides(self): * if self.view.strides == NULL: # <<<<<<<<<<<<<< * * raise ValueError("Buffer view does not expose strides") */ } /* "View.MemoryView":572 * raise ValueError("Buffer view does not expose strides") * * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = (__pyx_v_self->view.strides + __pyx_v_self->view.ndim); for (__pyx_t_5 = __pyx_v_self->view.strides; __pyx_t_5 < __pyx_t_4; __pyx_t_5++) { __pyx_t_3 = __pyx_t_5; __pyx_v_stride = (__pyx_t_3[0]); __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_stride); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_6))) __PYX_ERR(2, 572, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __pyx_t_6 = PyList_AsTuple(((PyObject*)__pyx_t_2)); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0; /* "View.MemoryView":567 * * @property * def strides(self): # <<<<<<<<<<<<<< * if self.view.strides == NULL: * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("View.MemoryView.memoryview.strides.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":575 * * @property * def suboffsets(self): # <<<<<<<<<<<<<< * if self.view.suboffsets == NULL: * return (-1,) * self.view.ndim */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(struct __pyx_memoryview_obj *__pyx_v_self) { Py_ssize_t __pyx_v_suboffset; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; Py_ssize_t *__pyx_t_4; Py_ssize_t *__pyx_t_5; Py_ssize_t *__pyx_t_6; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":576 * @property * def suboffsets(self): * if self.view.suboffsets == NULL: # <<<<<<<<<<<<<< * return (-1,) * self.view.ndim * */ __pyx_t_1 = ((__pyx_v_self->view.suboffsets == NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":577 * def suboffsets(self): * if self.view.suboffsets == NULL: * return (-1,) * self.view.ndim # <<<<<<<<<<<<<< * * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]]) */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_Multiply(__pyx_tuple__37, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* "View.MemoryView":576 * @property * def suboffsets(self): * if self.view.suboffsets == NULL: # <<<<<<<<<<<<<< * return (-1,) * self.view.ndim * */ } /* "View.MemoryView":579 * return (-1,) * self.view.ndim * * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]]) # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = (__pyx_v_self->view.suboffsets + __pyx_v_self->view.ndim); for (__pyx_t_6 = __pyx_v_self->view.suboffsets; __pyx_t_6 < __pyx_t_5; __pyx_t_6++) { __pyx_t_4 = __pyx_t_6; __pyx_v_suboffset = (__pyx_t_4[0]); __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_suboffset); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_2))) __PYX_ERR(2, 579, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_t_2 = PyList_AsTuple(((PyObject*)__pyx_t_3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":575 * * @property * def suboffsets(self): # <<<<<<<<<<<<<< * if self.view.suboffsets == NULL: * return (-1,) * self.view.ndim */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview.suboffsets.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":582 * * @property * def ndim(self): # <<<<<<<<<<<<<< * return self.view.ndim * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":583 * @property * def ndim(self): * return self.view.ndim # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->view.ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":582 * * @property * def ndim(self): # <<<<<<<<<<<<<< * return self.view.ndim * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.ndim.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":586 * * @property * def itemsize(self): # <<<<<<<<<<<<<< * return self.view.itemsize * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":587 * @property * def itemsize(self): * return self.view.itemsize # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->view.itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":586 * * @property * def itemsize(self): # <<<<<<<<<<<<<< * return self.view.itemsize * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.itemsize.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":590 * * @property * def nbytes(self): # <<<<<<<<<<<<<< * return self.size * self.view.itemsize * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":591 * @property * def nbytes(self): * return self.size * self.view.itemsize # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_self->view.itemsize); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* "View.MemoryView":590 * * @property * def nbytes(self): # <<<<<<<<<<<<<< * return self.size * self.view.itemsize * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview.nbytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":594 * * @property * def size(self): # <<<<<<<<<<<<<< * if self._size is None: * result = 1 */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_v_result = NULL; PyObject *__pyx_v_length = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; Py_ssize_t *__pyx_t_3; Py_ssize_t *__pyx_t_4; Py_ssize_t *__pyx_t_5; PyObject *__pyx_t_6 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":595 * @property * def size(self): * if self._size is None: # <<<<<<<<<<<<<< * result = 1 * */ __pyx_t_1 = (__pyx_v_self->_size == Py_None); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":596 * def size(self): * if self._size is None: * result = 1 # <<<<<<<<<<<<<< * * for length in self.view.shape[:self.view.ndim]: */ __Pyx_INCREF(__pyx_int_1); __pyx_v_result = __pyx_int_1; /* "View.MemoryView":598 * result = 1 * * for length in self.view.shape[:self.view.ndim]: # <<<<<<<<<<<<<< * result *= length * */ __pyx_t_4 = (__pyx_v_self->view.shape + __pyx_v_self->view.ndim); for (__pyx_t_5 = __pyx_v_self->view.shape; __pyx_t_5 < __pyx_t_4; __pyx_t_5++) { __pyx_t_3 = __pyx_t_5; __pyx_t_6 = PyInt_FromSsize_t((__pyx_t_3[0])); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_XDECREF_SET(__pyx_v_length, __pyx_t_6); __pyx_t_6 = 0; /* "View.MemoryView":599 * * for length in self.view.shape[:self.view.ndim]: * result *= length # <<<<<<<<<<<<<< * * self._size = result */ __pyx_t_6 = PyNumber_InPlaceMultiply(__pyx_v_result, __pyx_v_length); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_6); __pyx_t_6 = 0; } /* "View.MemoryView":601 * result *= length * * self._size = result # <<<<<<<<<<<<<< * * return self._size */ __Pyx_INCREF(__pyx_v_result); __Pyx_GIVEREF(__pyx_v_result); __Pyx_GOTREF(__pyx_v_self->_size); __Pyx_DECREF(__pyx_v_self->_size); __pyx_v_self->_size = __pyx_v_result; /* "View.MemoryView":595 * @property * def size(self): * if self._size is None: # <<<<<<<<<<<<<< * result = 1 * */ } /* "View.MemoryView":603 * self._size = result * * return self._size # <<<<<<<<<<<<<< * * def __len__(self): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_size); __pyx_r = __pyx_v_self->_size; goto __pyx_L0; /* "View.MemoryView":594 * * @property * def size(self): # <<<<<<<<<<<<<< * if self._size is None: * result = 1 */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("View.MemoryView.memoryview.size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_result); __Pyx_XDECREF(__pyx_v_length); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":605 * return self._size * * def __len__(self): # <<<<<<<<<<<<<< * if self.view.ndim >= 1: * return self.view.shape[0] */ /* Python wrapper */ static Py_ssize_t __pyx_memoryview___len__(PyObject *__pyx_v_self); /*proto*/ static Py_ssize_t __pyx_memoryview___len__(PyObject *__pyx_v_self) { Py_ssize_t __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__len__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static Py_ssize_t __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(struct __pyx_memoryview_obj *__pyx_v_self) { Py_ssize_t __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("__len__", 0); /* "View.MemoryView":606 * * def __len__(self): * if self.view.ndim >= 1: # <<<<<<<<<<<<<< * return self.view.shape[0] * */ __pyx_t_1 = ((__pyx_v_self->view.ndim >= 1) != 0); if (__pyx_t_1) { /* "View.MemoryView":607 * def __len__(self): * if self.view.ndim >= 1: * return self.view.shape[0] # <<<<<<<<<<<<<< * * return 0 */ __pyx_r = (__pyx_v_self->view.shape[0]); goto __pyx_L0; /* "View.MemoryView":606 * * def __len__(self): * if self.view.ndim >= 1: # <<<<<<<<<<<<<< * return self.view.shape[0] * */ } /* "View.MemoryView":609 * return self.view.shape[0] * * return 0 # <<<<<<<<<<<<<< * * def __repr__(self): */ __pyx_r = 0; goto __pyx_L0; /* "View.MemoryView":605 * return self._size * * def __len__(self): # <<<<<<<<<<<<<< * if self.view.ndim >= 1: * return self.view.shape[0] */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":611 * return 0 * * def __repr__(self): # <<<<<<<<<<<<<< * return "" % (self.base.__class__.__name__, * id(self)) */ /* Python wrapper */ static PyObject *__pyx_memoryview___repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_memoryview___repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("__repr__", 0); /* "View.MemoryView":612 * * def __repr__(self): * return "" % (self.base.__class__.__name__, # <<<<<<<<<<<<<< * id(self)) * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":613 * def __repr__(self): * return "" % (self.base.__class__.__name__, * id(self)) # <<<<<<<<<<<<<< * * def __str__(self): */ __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 613, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); /* "View.MemoryView":612 * * def __repr__(self): * return "" % (self.base.__class__.__name__, # <<<<<<<<<<<<<< * id(self)) * */ __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_MemoryView_of_r_at_0x_x, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":611 * return 0 * * def __repr__(self): # <<<<<<<<<<<<<< * return "" % (self.base.__class__.__name__, * id(self)) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":615 * id(self)) * * def __str__(self): # <<<<<<<<<<<<<< * return "" % (self.base.__class__.__name__,) * */ /* Python wrapper */ static PyObject *__pyx_memoryview___str__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_memoryview___str__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__str__", 0); /* "View.MemoryView":616 * * def __str__(self): * return "" % (self.base.__class__.__name__,) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_MemoryView_of_r_object, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":615 * id(self)) * * def __str__(self): # <<<<<<<<<<<<<< * return "" % (self.base.__class__.__name__,) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.memoryview.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":619 * * * def is_c_contig(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp */ /* Python wrapper */ static PyObject *__pyx_memoryview_is_c_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_memoryview_is_c_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("is_c_contig (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(struct __pyx_memoryview_obj *__pyx_v_self) { __Pyx_memviewslice *__pyx_v_mslice; __Pyx_memviewslice __pyx_v_tmp; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("is_c_contig", 0); /* "View.MemoryView":622 * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp * mslice = get_slice_from_memview(self, &tmp) # <<<<<<<<<<<<<< * return slice_is_contig(mslice[0], 'C', self.view.ndim) * */ __pyx_v_mslice = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_self, (&__pyx_v_tmp)); /* "View.MemoryView":623 * cdef __Pyx_memviewslice tmp * mslice = get_slice_from_memview(self, &tmp) * return slice_is_contig(mslice[0], 'C', self.view.ndim) # <<<<<<<<<<<<<< * * def is_f_contig(self): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_memviewslice_is_contig((__pyx_v_mslice[0]), 'C', __pyx_v_self->view.ndim)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":619 * * * def is_c_contig(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.is_c_contig", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":625 * return slice_is_contig(mslice[0], 'C', self.view.ndim) * * def is_f_contig(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp */ /* Python wrapper */ static PyObject *__pyx_memoryview_is_f_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_memoryview_is_f_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("is_f_contig (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(struct __pyx_memoryview_obj *__pyx_v_self) { __Pyx_memviewslice *__pyx_v_mslice; __Pyx_memviewslice __pyx_v_tmp; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("is_f_contig", 0); /* "View.MemoryView":628 * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp * mslice = get_slice_from_memview(self, &tmp) # <<<<<<<<<<<<<< * return slice_is_contig(mslice[0], 'F', self.view.ndim) * */ __pyx_v_mslice = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_self, (&__pyx_v_tmp)); /* "View.MemoryView":629 * cdef __Pyx_memviewslice tmp * mslice = get_slice_from_memview(self, &tmp) * return slice_is_contig(mslice[0], 'F', self.view.ndim) # <<<<<<<<<<<<<< * * def copy(self): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_memviewslice_is_contig((__pyx_v_mslice[0]), 'F', __pyx_v_self->view.ndim)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":625 * return slice_is_contig(mslice[0], 'C', self.view.ndim) * * def is_f_contig(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.is_f_contig", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":631 * return slice_is_contig(mslice[0], 'F', self.view.ndim) * * def copy(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice mslice * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS */ /* Python wrapper */ static PyObject *__pyx_memoryview_copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_memoryview_copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("copy (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(struct __pyx_memoryview_obj *__pyx_v_self) { __Pyx_memviewslice __pyx_v_mslice; int __pyx_v_flags; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_memviewslice __pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("copy", 0); /* "View.MemoryView":633 * def copy(self): * cdef __Pyx_memviewslice mslice * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS # <<<<<<<<<<<<<< * * slice_copy(self, &mslice) */ __pyx_v_flags = (__pyx_v_self->flags & (~PyBUF_F_CONTIGUOUS)); /* "View.MemoryView":635 * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS * * slice_copy(self, &mslice) # <<<<<<<<<<<<<< * mslice = slice_copy_contig(&mslice, "c", self.view.ndim, * self.view.itemsize, */ __pyx_memoryview_slice_copy(__pyx_v_self, (&__pyx_v_mslice)); /* "View.MemoryView":636 * * slice_copy(self, &mslice) * mslice = slice_copy_contig(&mslice, "c", self.view.ndim, # <<<<<<<<<<<<<< * self.view.itemsize, * flags|PyBUF_C_CONTIGUOUS, */ __pyx_t_1 = __pyx_memoryview_copy_new_contig((&__pyx_v_mslice), ((char *)"c"), __pyx_v_self->view.ndim, __pyx_v_self->view.itemsize, (__pyx_v_flags | PyBUF_C_CONTIGUOUS), __pyx_v_self->dtype_is_object); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 636, __pyx_L1_error) __pyx_v_mslice = __pyx_t_1; /* "View.MemoryView":641 * self.dtype_is_object) * * return memoryview_copy_from_slice(self, &mslice) # <<<<<<<<<<<<<< * * def copy_fortran(self): */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __pyx_memoryview_copy_object_from_slice(__pyx_v_self, (&__pyx_v_mslice)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":631 * return slice_is_contig(mslice[0], 'F', self.view.ndim) * * def copy(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice mslice * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.memoryview.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":643 * return memoryview_copy_from_slice(self, &mslice) * * def copy_fortran(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice src, dst * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS */ /* Python wrapper */ static PyObject *__pyx_memoryview_copy_fortran(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_memoryview_copy_fortran(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("copy_fortran (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(struct __pyx_memoryview_obj *__pyx_v_self) { __Pyx_memviewslice __pyx_v_src; __Pyx_memviewslice __pyx_v_dst; int __pyx_v_flags; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_memviewslice __pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("copy_fortran", 0); /* "View.MemoryView":645 * def copy_fortran(self): * cdef __Pyx_memviewslice src, dst * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS # <<<<<<<<<<<<<< * * slice_copy(self, &src) */ __pyx_v_flags = (__pyx_v_self->flags & (~PyBUF_C_CONTIGUOUS)); /* "View.MemoryView":647 * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS * * slice_copy(self, &src) # <<<<<<<<<<<<<< * dst = slice_copy_contig(&src, "fortran", self.view.ndim, * self.view.itemsize, */ __pyx_memoryview_slice_copy(__pyx_v_self, (&__pyx_v_src)); /* "View.MemoryView":648 * * slice_copy(self, &src) * dst = slice_copy_contig(&src, "fortran", self.view.ndim, # <<<<<<<<<<<<<< * self.view.itemsize, * flags|PyBUF_F_CONTIGUOUS, */ __pyx_t_1 = __pyx_memoryview_copy_new_contig((&__pyx_v_src), ((char *)"fortran"), __pyx_v_self->view.ndim, __pyx_v_self->view.itemsize, (__pyx_v_flags | PyBUF_F_CONTIGUOUS), __pyx_v_self->dtype_is_object); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 648, __pyx_L1_error) __pyx_v_dst = __pyx_t_1; /* "View.MemoryView":653 * self.dtype_is_object) * * return memoryview_copy_from_slice(self, &dst) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __pyx_memoryview_copy_object_from_slice(__pyx_v_self, (&__pyx_v_dst)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":643 * return memoryview_copy_from_slice(self, &mslice) * * def copy_fortran(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice src, dst * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.memoryview.copy_fortran", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_memoryview_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw___pyx_memoryview_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_memoryview___reduce_cython__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_memoryview___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__38, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(2, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_memoryview_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw___pyx_memoryview_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_memoryview_2__setstate_cython__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_memoryview_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__39, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(2, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":657 * * @cname('__pyx_memoryview_new') * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): # <<<<<<<<<<<<<< * cdef memoryview result = memoryview(o, flags, dtype_is_object) * result.typeinfo = typeinfo */ static PyObject *__pyx_memoryview_new(PyObject *__pyx_v_o, int __pyx_v_flags, int __pyx_v_dtype_is_object, __Pyx_TypeInfo *__pyx_v_typeinfo) { struct __pyx_memoryview_obj *__pyx_v_result = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("memoryview_cwrapper", 0); /* "View.MemoryView":658 * @cname('__pyx_memoryview_new') * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): * cdef memoryview result = memoryview(o, flags, dtype_is_object) # <<<<<<<<<<<<<< * result.typeinfo = typeinfo * return result */ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_o); __Pyx_GIVEREF(__pyx_v_o); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_o); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_result = ((struct __pyx_memoryview_obj *)__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":659 * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): * cdef memoryview result = memoryview(o, flags, dtype_is_object) * result.typeinfo = typeinfo # <<<<<<<<<<<<<< * return result * */ __pyx_v_result->typeinfo = __pyx_v_typeinfo; /* "View.MemoryView":660 * cdef memoryview result = memoryview(o, flags, dtype_is_object) * result.typeinfo = typeinfo * return result # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_check') */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_result)); __pyx_r = ((PyObject *)__pyx_v_result); goto __pyx_L0; /* "View.MemoryView":657 * * @cname('__pyx_memoryview_new') * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): # <<<<<<<<<<<<<< * cdef memoryview result = memoryview(o, flags, dtype_is_object) * result.typeinfo = typeinfo */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview_cwrapper", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_result); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":663 * * @cname('__pyx_memoryview_check') * cdef inline bint memoryview_check(object o): # <<<<<<<<<<<<<< * return isinstance(o, memoryview) * */ static CYTHON_INLINE int __pyx_memoryview_check(PyObject *__pyx_v_o) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("memoryview_check", 0); /* "View.MemoryView":664 * @cname('__pyx_memoryview_check') * cdef inline bint memoryview_check(object o): * return isinstance(o, memoryview) # <<<<<<<<<<<<<< * * cdef tuple _unellipsify(object index, int ndim): */ __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_o, __pyx_memoryview_type); __pyx_r = __pyx_t_1; goto __pyx_L0; /* "View.MemoryView":663 * * @cname('__pyx_memoryview_check') * cdef inline bint memoryview_check(object o): # <<<<<<<<<<<<<< * return isinstance(o, memoryview) * */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":666 * return isinstance(o, memoryview) * * cdef tuple _unellipsify(object index, int ndim): # <<<<<<<<<<<<<< * """ * Replace all ellipses with full slices and fill incomplete indices with */ static PyObject *_unellipsify(PyObject *__pyx_v_index, int __pyx_v_ndim) { PyObject *__pyx_v_tup = NULL; PyObject *__pyx_v_result = NULL; int __pyx_v_have_slices; int __pyx_v_seen_ellipsis; CYTHON_UNUSED PyObject *__pyx_v_idx = NULL; PyObject *__pyx_v_item = NULL; Py_ssize_t __pyx_v_nslices; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; Py_ssize_t __pyx_t_5; PyObject *(*__pyx_t_6)(PyObject *); PyObject *__pyx_t_7 = NULL; Py_ssize_t __pyx_t_8; int __pyx_t_9; int __pyx_t_10; PyObject *__pyx_t_11 = NULL; __Pyx_RefNannySetupContext("_unellipsify", 0); /* "View.MemoryView":671 * full slices. * """ * if not isinstance(index, tuple): # <<<<<<<<<<<<<< * tup = (index,) * else: */ __pyx_t_1 = PyTuple_Check(__pyx_v_index); __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":672 * """ * if not isinstance(index, tuple): * tup = (index,) # <<<<<<<<<<<<<< * else: * tup = index */ __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_index); __Pyx_GIVEREF(__pyx_v_index); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_index); __pyx_v_tup = __pyx_t_3; __pyx_t_3 = 0; /* "View.MemoryView":671 * full slices. * """ * if not isinstance(index, tuple): # <<<<<<<<<<<<<< * tup = (index,) * else: */ goto __pyx_L3; } /* "View.MemoryView":674 * tup = (index,) * else: * tup = index # <<<<<<<<<<<<<< * * result = [] */ /*else*/ { __Pyx_INCREF(__pyx_v_index); __pyx_v_tup = __pyx_v_index; } __pyx_L3:; /* "View.MemoryView":676 * tup = index * * result = [] # <<<<<<<<<<<<<< * have_slices = False * seen_ellipsis = False */ __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_result = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":677 * * result = [] * have_slices = False # <<<<<<<<<<<<<< * seen_ellipsis = False * for idx, item in enumerate(tup): */ __pyx_v_have_slices = 0; /* "View.MemoryView":678 * result = [] * have_slices = False * seen_ellipsis = False # <<<<<<<<<<<<<< * for idx, item in enumerate(tup): * if item is Ellipsis: */ __pyx_v_seen_ellipsis = 0; /* "View.MemoryView":679 * have_slices = False * seen_ellipsis = False * for idx, item in enumerate(tup): # <<<<<<<<<<<<<< * if item is Ellipsis: * if not seen_ellipsis: */ __Pyx_INCREF(__pyx_int_0); __pyx_t_3 = __pyx_int_0; if (likely(PyList_CheckExact(__pyx_v_tup)) || PyTuple_CheckExact(__pyx_v_tup)) { __pyx_t_4 = __pyx_v_tup; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_tup); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 679, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(2, 679, __pyx_L1_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(2, 679, __pyx_L1_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif } } else { __pyx_t_7 = __pyx_t_6(__pyx_t_4); if (unlikely(!__pyx_t_7)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 679, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_7); } __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_7); __pyx_t_7 = 0; __Pyx_INCREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_3); __pyx_t_7 = __Pyx_PyInt_AddObjC(__pyx_t_3, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = __pyx_t_7; __pyx_t_7 = 0; /* "View.MemoryView":680 * seen_ellipsis = False * for idx, item in enumerate(tup): * if item is Ellipsis: # <<<<<<<<<<<<<< * if not seen_ellipsis: * result.extend([slice(None)] * (ndim - len(tup) + 1)) */ __pyx_t_2 = (__pyx_v_item == __pyx_builtin_Ellipsis); __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* "View.MemoryView":681 * for idx, item in enumerate(tup): * if item is Ellipsis: * if not seen_ellipsis: # <<<<<<<<<<<<<< * result.extend([slice(None)] * (ndim - len(tup) + 1)) * seen_ellipsis = True */ __pyx_t_1 = ((!(__pyx_v_seen_ellipsis != 0)) != 0); if (__pyx_t_1) { /* "View.MemoryView":682 * if item is Ellipsis: * if not seen_ellipsis: * result.extend([slice(None)] * (ndim - len(tup) + 1)) # <<<<<<<<<<<<<< * seen_ellipsis = True * else: */ __pyx_t_8 = PyObject_Length(__pyx_v_tup); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(2, 682, __pyx_L1_error) __pyx_t_7 = PyList_New(1 * ((((__pyx_v_ndim - __pyx_t_8) + 1)<0) ? 0:((__pyx_v_ndim - __pyx_t_8) + 1))); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); { Py_ssize_t __pyx_temp; for (__pyx_temp=0; __pyx_temp < ((__pyx_v_ndim - __pyx_t_8) + 1); __pyx_temp++) { __Pyx_INCREF(__pyx_slice__40); __Pyx_GIVEREF(__pyx_slice__40); PyList_SET_ITEM(__pyx_t_7, __pyx_temp, __pyx_slice__40); } } __pyx_t_9 = __Pyx_PyList_Extend(__pyx_v_result, __pyx_t_7); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 682, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "View.MemoryView":683 * if not seen_ellipsis: * result.extend([slice(None)] * (ndim - len(tup) + 1)) * seen_ellipsis = True # <<<<<<<<<<<<<< * else: * result.append(slice(None)) */ __pyx_v_seen_ellipsis = 1; /* "View.MemoryView":681 * for idx, item in enumerate(tup): * if item is Ellipsis: * if not seen_ellipsis: # <<<<<<<<<<<<<< * result.extend([slice(None)] * (ndim - len(tup) + 1)) * seen_ellipsis = True */ goto __pyx_L7; } /* "View.MemoryView":685 * seen_ellipsis = True * else: * result.append(slice(None)) # <<<<<<<<<<<<<< * have_slices = True * else: */ /*else*/ { __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_result, __pyx_slice__40); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 685, __pyx_L1_error) } __pyx_L7:; /* "View.MemoryView":686 * else: * result.append(slice(None)) * have_slices = True # <<<<<<<<<<<<<< * else: * if not isinstance(item, slice) and not PyIndex_Check(item): */ __pyx_v_have_slices = 1; /* "View.MemoryView":680 * seen_ellipsis = False * for idx, item in enumerate(tup): * if item is Ellipsis: # <<<<<<<<<<<<<< * if not seen_ellipsis: * result.extend([slice(None)] * (ndim - len(tup) + 1)) */ goto __pyx_L6; } /* "View.MemoryView":688 * have_slices = True * else: * if not isinstance(item, slice) and not PyIndex_Check(item): # <<<<<<<<<<<<<< * raise TypeError("Cannot index with type '%s'" % type(item)) * */ /*else*/ { __pyx_t_2 = PySlice_Check(__pyx_v_item); __pyx_t_10 = ((!(__pyx_t_2 != 0)) != 0); if (__pyx_t_10) { } else { __pyx_t_1 = __pyx_t_10; goto __pyx_L9_bool_binop_done; } __pyx_t_10 = ((!(PyIndex_Check(__pyx_v_item) != 0)) != 0); __pyx_t_1 = __pyx_t_10; __pyx_L9_bool_binop_done:; if (unlikely(__pyx_t_1)) { /* "View.MemoryView":689 * else: * if not isinstance(item, slice) and not PyIndex_Check(item): * raise TypeError("Cannot index with type '%s'" % type(item)) # <<<<<<<<<<<<<< * * have_slices = have_slices or isinstance(item, slice) */ __pyx_t_7 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Cannot_index_with_type_s, ((PyObject *)Py_TYPE(__pyx_v_item))); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_Raise(__pyx_t_11, 0, 0, 0); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_ERR(2, 689, __pyx_L1_error) /* "View.MemoryView":688 * have_slices = True * else: * if not isinstance(item, slice) and not PyIndex_Check(item): # <<<<<<<<<<<<<< * raise TypeError("Cannot index with type '%s'" % type(item)) * */ } /* "View.MemoryView":691 * raise TypeError("Cannot index with type '%s'" % type(item)) * * have_slices = have_slices or isinstance(item, slice) # <<<<<<<<<<<<<< * result.append(item) * */ __pyx_t_10 = (__pyx_v_have_slices != 0); if (!__pyx_t_10) { } else { __pyx_t_1 = __pyx_t_10; goto __pyx_L11_bool_binop_done; } __pyx_t_10 = PySlice_Check(__pyx_v_item); __pyx_t_2 = (__pyx_t_10 != 0); __pyx_t_1 = __pyx_t_2; __pyx_L11_bool_binop_done:; __pyx_v_have_slices = __pyx_t_1; /* "View.MemoryView":692 * * have_slices = have_slices or isinstance(item, slice) * result.append(item) # <<<<<<<<<<<<<< * * nslices = ndim - len(result) */ __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_result, __pyx_v_item); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 692, __pyx_L1_error) } __pyx_L6:; /* "View.MemoryView":679 * have_slices = False * seen_ellipsis = False * for idx, item in enumerate(tup): # <<<<<<<<<<<<<< * if item is Ellipsis: * if not seen_ellipsis: */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":694 * result.append(item) * * nslices = ndim - len(result) # <<<<<<<<<<<<<< * if nslices: * result.extend([slice(None)] * nslices) */ __pyx_t_5 = PyList_GET_SIZE(__pyx_v_result); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(2, 694, __pyx_L1_error) __pyx_v_nslices = (__pyx_v_ndim - __pyx_t_5); /* "View.MemoryView":695 * * nslices = ndim - len(result) * if nslices: # <<<<<<<<<<<<<< * result.extend([slice(None)] * nslices) * */ __pyx_t_1 = (__pyx_v_nslices != 0); if (__pyx_t_1) { /* "View.MemoryView":696 * nslices = ndim - len(result) * if nslices: * result.extend([slice(None)] * nslices) # <<<<<<<<<<<<<< * * return have_slices or nslices, tuple(result) */ __pyx_t_3 = PyList_New(1 * ((__pyx_v_nslices<0) ? 0:__pyx_v_nslices)); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { Py_ssize_t __pyx_temp; for (__pyx_temp=0; __pyx_temp < __pyx_v_nslices; __pyx_temp++) { __Pyx_INCREF(__pyx_slice__40); __Pyx_GIVEREF(__pyx_slice__40); PyList_SET_ITEM(__pyx_t_3, __pyx_temp, __pyx_slice__40); } } __pyx_t_9 = __Pyx_PyList_Extend(__pyx_v_result, __pyx_t_3); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 696, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":695 * * nslices = ndim - len(result) * if nslices: # <<<<<<<<<<<<<< * result.extend([slice(None)] * nslices) * */ } /* "View.MemoryView":698 * result.extend([slice(None)] * nslices) * * return have_slices or nslices, tuple(result) # <<<<<<<<<<<<<< * * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): */ __Pyx_XDECREF(__pyx_r); if (!__pyx_v_have_slices) { } else { __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_have_slices); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L14_bool_binop_done; } __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_nslices); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __pyx_t_4; __pyx_t_4 = 0; __pyx_L14_bool_binop_done:; __pyx_t_4 = PyList_AsTuple(__pyx_v_result); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_4); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_r = ((PyObject*)__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L0; /* "View.MemoryView":666 * return isinstance(o, memoryview) * * cdef tuple _unellipsify(object index, int ndim): # <<<<<<<<<<<<<< * """ * Replace all ellipses with full slices and fill incomplete indices with */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_11); __Pyx_AddTraceback("View.MemoryView._unellipsify", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_tup); __Pyx_XDECREF(__pyx_v_result); __Pyx_XDECREF(__pyx_v_idx); __Pyx_XDECREF(__pyx_v_item); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":700 * return have_slices or nslices, tuple(result) * * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): # <<<<<<<<<<<<<< * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: */ static PyObject *assert_direct_dimensions(Py_ssize_t *__pyx_v_suboffsets, int __pyx_v_ndim) { Py_ssize_t __pyx_v_suboffset; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations Py_ssize_t *__pyx_t_1; Py_ssize_t *__pyx_t_2; Py_ssize_t *__pyx_t_3; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("assert_direct_dimensions", 0); /* "View.MemoryView":701 * * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): * for suboffset in suboffsets[:ndim]: # <<<<<<<<<<<<<< * if suboffset >= 0: * raise ValueError("Indirect dimensions not supported") */ __pyx_t_2 = (__pyx_v_suboffsets + __pyx_v_ndim); for (__pyx_t_3 = __pyx_v_suboffsets; __pyx_t_3 < __pyx_t_2; __pyx_t_3++) { __pyx_t_1 = __pyx_t_3; __pyx_v_suboffset = (__pyx_t_1[0]); /* "View.MemoryView":702 * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: # <<<<<<<<<<<<<< * raise ValueError("Indirect dimensions not supported") * */ __pyx_t_4 = ((__pyx_v_suboffset >= 0) != 0); if (unlikely(__pyx_t_4)) { /* "View.MemoryView":703 * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: * raise ValueError("Indirect dimensions not supported") # <<<<<<<<<<<<<< * * */ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__41, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(2, 703, __pyx_L1_error) /* "View.MemoryView":702 * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: # <<<<<<<<<<<<<< * raise ValueError("Indirect dimensions not supported") * */ } } /* "View.MemoryView":700 * return have_slices or nslices, tuple(result) * * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): # <<<<<<<<<<<<<< * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.assert_direct_dimensions", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":710 * * @cname('__pyx_memview_slice') * cdef memoryview memview_slice(memoryview memview, object indices): # <<<<<<<<<<<<<< * cdef int new_ndim = 0, suboffset_dim = -1, dim * cdef bint negative_step */ static struct __pyx_memoryview_obj *__pyx_memview_slice(struct __pyx_memoryview_obj *__pyx_v_memview, PyObject *__pyx_v_indices) { int __pyx_v_new_ndim; int __pyx_v_suboffset_dim; int __pyx_v_dim; __Pyx_memviewslice __pyx_v_src; __Pyx_memviewslice __pyx_v_dst; __Pyx_memviewslice *__pyx_v_p_src; struct __pyx_memoryviewslice_obj *__pyx_v_memviewsliceobj = 0; __Pyx_memviewslice *__pyx_v_p_dst; int *__pyx_v_p_suboffset_dim; Py_ssize_t __pyx_v_start; Py_ssize_t __pyx_v_stop; Py_ssize_t __pyx_v_step; int __pyx_v_have_start; int __pyx_v_have_stop; int __pyx_v_have_step; PyObject *__pyx_v_index = NULL; struct __pyx_memoryview_obj *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; struct __pyx_memoryview_obj *__pyx_t_4; char *__pyx_t_5; int __pyx_t_6; Py_ssize_t __pyx_t_7; PyObject *(*__pyx_t_8)(PyObject *); PyObject *__pyx_t_9 = NULL; Py_ssize_t __pyx_t_10; int __pyx_t_11; Py_ssize_t __pyx_t_12; __Pyx_RefNannySetupContext("memview_slice", 0); /* "View.MemoryView":711 * @cname('__pyx_memview_slice') * cdef memoryview memview_slice(memoryview memview, object indices): * cdef int new_ndim = 0, suboffset_dim = -1, dim # <<<<<<<<<<<<<< * cdef bint negative_step * cdef __Pyx_memviewslice src, dst */ __pyx_v_new_ndim = 0; __pyx_v_suboffset_dim = -1; /* "View.MemoryView":718 * * * memset(&dst, 0, sizeof(dst)) # <<<<<<<<<<<<<< * * cdef _memoryviewslice memviewsliceobj */ (void)(memset((&__pyx_v_dst), 0, (sizeof(__pyx_v_dst)))); /* "View.MemoryView":722 * cdef _memoryviewslice memviewsliceobj * * assert memview.view.ndim > 0 # <<<<<<<<<<<<<< * * if isinstance(memview, _memoryviewslice): */ #ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_v_memview->view.ndim > 0) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(2, 722, __pyx_L1_error) } } #endif /* "View.MemoryView":724 * assert memview.view.ndim > 0 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * memviewsliceobj = memview * p_src = &memviewsliceobj.from_slice */ __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":725 * * if isinstance(memview, _memoryviewslice): * memviewsliceobj = memview # <<<<<<<<<<<<<< * p_src = &memviewsliceobj.from_slice * else: */ if (!(likely(((((PyObject *)__pyx_v_memview)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type))))) __PYX_ERR(2, 725, __pyx_L1_error) __pyx_t_3 = ((PyObject *)__pyx_v_memview); __Pyx_INCREF(__pyx_t_3); __pyx_v_memviewsliceobj = ((struct __pyx_memoryviewslice_obj *)__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":726 * if isinstance(memview, _memoryviewslice): * memviewsliceobj = memview * p_src = &memviewsliceobj.from_slice # <<<<<<<<<<<<<< * else: * slice_copy(memview, &src) */ __pyx_v_p_src = (&__pyx_v_memviewsliceobj->from_slice); /* "View.MemoryView":724 * assert memview.view.ndim > 0 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * memviewsliceobj = memview * p_src = &memviewsliceobj.from_slice */ goto __pyx_L3; } /* "View.MemoryView":728 * p_src = &memviewsliceobj.from_slice * else: * slice_copy(memview, &src) # <<<<<<<<<<<<<< * p_src = &src * */ /*else*/ { __pyx_memoryview_slice_copy(__pyx_v_memview, (&__pyx_v_src)); /* "View.MemoryView":729 * else: * slice_copy(memview, &src) * p_src = &src # <<<<<<<<<<<<<< * * */ __pyx_v_p_src = (&__pyx_v_src); } __pyx_L3:; /* "View.MemoryView":735 * * * dst.memview = p_src.memview # <<<<<<<<<<<<<< * dst.data = p_src.data * */ __pyx_t_4 = __pyx_v_p_src->memview; __pyx_v_dst.memview = __pyx_t_4; /* "View.MemoryView":736 * * dst.memview = p_src.memview * dst.data = p_src.data # <<<<<<<<<<<<<< * * */ __pyx_t_5 = __pyx_v_p_src->data; __pyx_v_dst.data = __pyx_t_5; /* "View.MemoryView":741 * * * cdef __Pyx_memviewslice *p_dst = &dst # <<<<<<<<<<<<<< * cdef int *p_suboffset_dim = &suboffset_dim * cdef Py_ssize_t start, stop, step */ __pyx_v_p_dst = (&__pyx_v_dst); /* "View.MemoryView":742 * * cdef __Pyx_memviewslice *p_dst = &dst * cdef int *p_suboffset_dim = &suboffset_dim # <<<<<<<<<<<<<< * cdef Py_ssize_t start, stop, step * cdef bint have_start, have_stop, have_step */ __pyx_v_p_suboffset_dim = (&__pyx_v_suboffset_dim); /* "View.MemoryView":746 * cdef bint have_start, have_stop, have_step * * for dim, index in enumerate(indices): # <<<<<<<<<<<<<< * if PyIndex_Check(index): * slice_memviewslice( */ __pyx_t_6 = 0; if (likely(PyList_CheckExact(__pyx_v_indices)) || PyTuple_CheckExact(__pyx_v_indices)) { __pyx_t_3 = __pyx_v_indices; __Pyx_INCREF(__pyx_t_3); __pyx_t_7 = 0; __pyx_t_8 = NULL; } else { __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_indices); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 746, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_8)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_9 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(2, 746, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif } else { if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(2, 746, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif } } else { __pyx_t_9 = __pyx_t_8(__pyx_t_3); if (unlikely(!__pyx_t_9)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 746, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_9); } __Pyx_XDECREF_SET(__pyx_v_index, __pyx_t_9); __pyx_t_9 = 0; __pyx_v_dim = __pyx_t_6; __pyx_t_6 = (__pyx_t_6 + 1); /* "View.MemoryView":747 * * for dim, index in enumerate(indices): * if PyIndex_Check(index): # <<<<<<<<<<<<<< * slice_memviewslice( * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], */ __pyx_t_2 = (PyIndex_Check(__pyx_v_index) != 0); if (__pyx_t_2) { /* "View.MemoryView":751 * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], * dim, new_ndim, p_suboffset_dim, * index, 0, 0, # start, stop, step # <<<<<<<<<<<<<< * 0, 0, 0, # have_{start,stop,step} * False) */ __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_v_index); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 751, __pyx_L1_error) /* "View.MemoryView":748 * for dim, index in enumerate(indices): * if PyIndex_Check(index): * slice_memviewslice( # <<<<<<<<<<<<<< * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], * dim, new_ndim, p_suboffset_dim, */ __pyx_t_11 = __pyx_memoryview_slice_memviewslice(__pyx_v_p_dst, (__pyx_v_p_src->shape[__pyx_v_dim]), (__pyx_v_p_src->strides[__pyx_v_dim]), (__pyx_v_p_src->suboffsets[__pyx_v_dim]), __pyx_v_dim, __pyx_v_new_ndim, __pyx_v_p_suboffset_dim, __pyx_t_10, 0, 0, 0, 0, 0, 0); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(2, 748, __pyx_L1_error) /* "View.MemoryView":747 * * for dim, index in enumerate(indices): * if PyIndex_Check(index): # <<<<<<<<<<<<<< * slice_memviewslice( * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], */ goto __pyx_L6; } /* "View.MemoryView":754 * 0, 0, 0, # have_{start,stop,step} * False) * elif index is None: # <<<<<<<<<<<<<< * p_dst.shape[new_ndim] = 1 * p_dst.strides[new_ndim] = 0 */ __pyx_t_2 = (__pyx_v_index == Py_None); __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* "View.MemoryView":755 * False) * elif index is None: * p_dst.shape[new_ndim] = 1 # <<<<<<<<<<<<<< * p_dst.strides[new_ndim] = 0 * p_dst.suboffsets[new_ndim] = -1 */ (__pyx_v_p_dst->shape[__pyx_v_new_ndim]) = 1; /* "View.MemoryView":756 * elif index is None: * p_dst.shape[new_ndim] = 1 * p_dst.strides[new_ndim] = 0 # <<<<<<<<<<<<<< * p_dst.suboffsets[new_ndim] = -1 * new_ndim += 1 */ (__pyx_v_p_dst->strides[__pyx_v_new_ndim]) = 0; /* "View.MemoryView":757 * p_dst.shape[new_ndim] = 1 * p_dst.strides[new_ndim] = 0 * p_dst.suboffsets[new_ndim] = -1 # <<<<<<<<<<<<<< * new_ndim += 1 * else: */ (__pyx_v_p_dst->suboffsets[__pyx_v_new_ndim]) = -1L; /* "View.MemoryView":758 * p_dst.strides[new_ndim] = 0 * p_dst.suboffsets[new_ndim] = -1 * new_ndim += 1 # <<<<<<<<<<<<<< * else: * start = index.start or 0 */ __pyx_v_new_ndim = (__pyx_v_new_ndim + 1); /* "View.MemoryView":754 * 0, 0, 0, # have_{start,stop,step} * False) * elif index is None: # <<<<<<<<<<<<<< * p_dst.shape[new_ndim] = 1 * p_dst.strides[new_ndim] = 0 */ goto __pyx_L6; } /* "View.MemoryView":760 * new_ndim += 1 * else: * start = index.start or 0 # <<<<<<<<<<<<<< * stop = index.stop or 0 * step = index.step or 0 */ /*else*/ { __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_start); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 760, __pyx_L1_error) if (!__pyx_t_1) { __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else { __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 760, __pyx_L1_error) __pyx_t_10 = __pyx_t_12; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L7_bool_binop_done; } __pyx_t_10 = 0; __pyx_L7_bool_binop_done:; __pyx_v_start = __pyx_t_10; /* "View.MemoryView":761 * else: * start = index.start or 0 * stop = index.stop or 0 # <<<<<<<<<<<<<< * step = index.step or 0 * */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_stop); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 761, __pyx_L1_error) if (!__pyx_t_1) { __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else { __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 761, __pyx_L1_error) __pyx_t_10 = __pyx_t_12; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L9_bool_binop_done; } __pyx_t_10 = 0; __pyx_L9_bool_binop_done:; __pyx_v_stop = __pyx_t_10; /* "View.MemoryView":762 * start = index.start or 0 * stop = index.stop or 0 * step = index.step or 0 # <<<<<<<<<<<<<< * * have_start = index.start is not None */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_step); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 762, __pyx_L1_error) if (!__pyx_t_1) { __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else { __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 762, __pyx_L1_error) __pyx_t_10 = __pyx_t_12; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L11_bool_binop_done; } __pyx_t_10 = 0; __pyx_L11_bool_binop_done:; __pyx_v_step = __pyx_t_10; /* "View.MemoryView":764 * step = index.step or 0 * * have_start = index.start is not None # <<<<<<<<<<<<<< * have_stop = index.stop is not None * have_step = index.step is not None */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_start); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = (__pyx_t_9 != Py_None); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_have_start = __pyx_t_1; /* "View.MemoryView":765 * * have_start = index.start is not None * have_stop = index.stop is not None # <<<<<<<<<<<<<< * have_step = index.step is not None * */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_stop); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 765, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = (__pyx_t_9 != Py_None); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_have_stop = __pyx_t_1; /* "View.MemoryView":766 * have_start = index.start is not None * have_stop = index.stop is not None * have_step = index.step is not None # <<<<<<<<<<<<<< * * slice_memviewslice( */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_step); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 766, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = (__pyx_t_9 != Py_None); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_have_step = __pyx_t_1; /* "View.MemoryView":768 * have_step = index.step is not None * * slice_memviewslice( # <<<<<<<<<<<<<< * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], * dim, new_ndim, p_suboffset_dim, */ __pyx_t_11 = __pyx_memoryview_slice_memviewslice(__pyx_v_p_dst, (__pyx_v_p_src->shape[__pyx_v_dim]), (__pyx_v_p_src->strides[__pyx_v_dim]), (__pyx_v_p_src->suboffsets[__pyx_v_dim]), __pyx_v_dim, __pyx_v_new_ndim, __pyx_v_p_suboffset_dim, __pyx_v_start, __pyx_v_stop, __pyx_v_step, __pyx_v_have_start, __pyx_v_have_stop, __pyx_v_have_step, 1); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(2, 768, __pyx_L1_error) /* "View.MemoryView":774 * have_start, have_stop, have_step, * True) * new_ndim += 1 # <<<<<<<<<<<<<< * * if isinstance(memview, _memoryviewslice): */ __pyx_v_new_ndim = (__pyx_v_new_ndim + 1); } __pyx_L6:; /* "View.MemoryView":746 * cdef bint have_start, have_stop, have_step * * for dim, index in enumerate(indices): # <<<<<<<<<<<<<< * if PyIndex_Check(index): * slice_memviewslice( */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":776 * new_ndim += 1 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * return memoryview_fromslice(dst, new_ndim, * memviewsliceobj.to_object_func, */ __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":777 * * if isinstance(memview, _memoryviewslice): * return memoryview_fromslice(dst, new_ndim, # <<<<<<<<<<<<<< * memviewsliceobj.to_object_func, * memviewsliceobj.to_dtype_func, */ __Pyx_XDECREF(((PyObject *)__pyx_r)); /* "View.MemoryView":778 * if isinstance(memview, _memoryviewslice): * return memoryview_fromslice(dst, new_ndim, * memviewsliceobj.to_object_func, # <<<<<<<<<<<<<< * memviewsliceobj.to_dtype_func, * memview.dtype_is_object) */ if (unlikely(!__pyx_v_memviewsliceobj)) { __Pyx_RaiseUnboundLocalError("memviewsliceobj"); __PYX_ERR(2, 778, __pyx_L1_error) } /* "View.MemoryView":779 * return memoryview_fromslice(dst, new_ndim, * memviewsliceobj.to_object_func, * memviewsliceobj.to_dtype_func, # <<<<<<<<<<<<<< * memview.dtype_is_object) * else: */ if (unlikely(!__pyx_v_memviewsliceobj)) { __Pyx_RaiseUnboundLocalError("memviewsliceobj"); __PYX_ERR(2, 779, __pyx_L1_error) } /* "View.MemoryView":777 * * if isinstance(memview, _memoryviewslice): * return memoryview_fromslice(dst, new_ndim, # <<<<<<<<<<<<<< * memviewsliceobj.to_object_func, * memviewsliceobj.to_dtype_func, */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_dst, __pyx_v_new_ndim, __pyx_v_memviewsliceobj->to_object_func, __pyx_v_memviewsliceobj->to_dtype_func, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 777, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_memoryview_type))))) __PYX_ERR(2, 777, __pyx_L1_error) __pyx_r = ((struct __pyx_memoryview_obj *)__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L0; /* "View.MemoryView":776 * new_ndim += 1 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * return memoryview_fromslice(dst, new_ndim, * memviewsliceobj.to_object_func, */ } /* "View.MemoryView":782 * memview.dtype_is_object) * else: * return memoryview_fromslice(dst, new_ndim, NULL, NULL, # <<<<<<<<<<<<<< * memview.dtype_is_object) * */ /*else*/ { __Pyx_XDECREF(((PyObject *)__pyx_r)); /* "View.MemoryView":783 * else: * return memoryview_fromslice(dst, new_ndim, NULL, NULL, * memview.dtype_is_object) # <<<<<<<<<<<<<< * * */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_dst, __pyx_v_new_ndim, NULL, NULL, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); /* "View.MemoryView":782 * memview.dtype_is_object) * else: * return memoryview_fromslice(dst, new_ndim, NULL, NULL, # <<<<<<<<<<<<<< * memview.dtype_is_object) * */ if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_memoryview_type))))) __PYX_ERR(2, 782, __pyx_L1_error) __pyx_r = ((struct __pyx_memoryview_obj *)__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L0; } /* "View.MemoryView":710 * * @cname('__pyx_memview_slice') * cdef memoryview memview_slice(memoryview memview, object indices): # <<<<<<<<<<<<<< * cdef int new_ndim = 0, suboffset_dim = -1, dim * cdef bint negative_step */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("View.MemoryView.memview_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_memviewsliceobj); __Pyx_XDECREF(__pyx_v_index); __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":807 * * @cname('__pyx_memoryview_slice_memviewslice') * cdef int slice_memviewslice( # <<<<<<<<<<<<<< * __Pyx_memviewslice *dst, * Py_ssize_t shape, Py_ssize_t stride, Py_ssize_t suboffset, */ static int __pyx_memoryview_slice_memviewslice(__Pyx_memviewslice *__pyx_v_dst, Py_ssize_t __pyx_v_shape, Py_ssize_t __pyx_v_stride, Py_ssize_t __pyx_v_suboffset, int __pyx_v_dim, int __pyx_v_new_ndim, int *__pyx_v_suboffset_dim, Py_ssize_t __pyx_v_start, Py_ssize_t __pyx_v_stop, Py_ssize_t __pyx_v_step, int __pyx_v_have_start, int __pyx_v_have_stop, int __pyx_v_have_step, int __pyx_v_is_slice) { Py_ssize_t __pyx_v_new_shape; int __pyx_v_negative_step; int __pyx_r; int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; /* "View.MemoryView":827 * cdef bint negative_step * * if not is_slice: # <<<<<<<<<<<<<< * * if start < 0: */ __pyx_t_1 = ((!(__pyx_v_is_slice != 0)) != 0); if (__pyx_t_1) { /* "View.MemoryView":829 * if not is_slice: * * if start < 0: # <<<<<<<<<<<<<< * start += shape * if not 0 <= start < shape: */ __pyx_t_1 = ((__pyx_v_start < 0) != 0); if (__pyx_t_1) { /* "View.MemoryView":830 * * if start < 0: * start += shape # <<<<<<<<<<<<<< * if not 0 <= start < shape: * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) */ __pyx_v_start = (__pyx_v_start + __pyx_v_shape); /* "View.MemoryView":829 * if not is_slice: * * if start < 0: # <<<<<<<<<<<<<< * start += shape * if not 0 <= start < shape: */ } /* "View.MemoryView":831 * if start < 0: * start += shape * if not 0 <= start < shape: # <<<<<<<<<<<<<< * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) * else: */ __pyx_t_1 = (0 <= __pyx_v_start); if (__pyx_t_1) { __pyx_t_1 = (__pyx_v_start < __pyx_v_shape); } __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":832 * start += shape * if not 0 <= start < shape: * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) # <<<<<<<<<<<<<< * else: * */ __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_IndexError, ((char *)"Index out of bounds (axis %d)"), __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 832, __pyx_L1_error) /* "View.MemoryView":831 * if start < 0: * start += shape * if not 0 <= start < shape: # <<<<<<<<<<<<<< * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) * else: */ } /* "View.MemoryView":827 * cdef bint negative_step * * if not is_slice: # <<<<<<<<<<<<<< * * if start < 0: */ goto __pyx_L3; } /* "View.MemoryView":835 * else: * * negative_step = have_step != 0 and step < 0 # <<<<<<<<<<<<<< * * if have_step and step == 0: */ /*else*/ { __pyx_t_1 = ((__pyx_v_have_step != 0) != 0); if (__pyx_t_1) { } else { __pyx_t_2 = __pyx_t_1; goto __pyx_L6_bool_binop_done; } __pyx_t_1 = ((__pyx_v_step < 0) != 0); __pyx_t_2 = __pyx_t_1; __pyx_L6_bool_binop_done:; __pyx_v_negative_step = __pyx_t_2; /* "View.MemoryView":837 * negative_step = have_step != 0 and step < 0 * * if have_step and step == 0: # <<<<<<<<<<<<<< * _err_dim(ValueError, "Step may not be zero (axis %d)", dim) * */ __pyx_t_1 = (__pyx_v_have_step != 0); if (__pyx_t_1) { } else { __pyx_t_2 = __pyx_t_1; goto __pyx_L9_bool_binop_done; } __pyx_t_1 = ((__pyx_v_step == 0) != 0); __pyx_t_2 = __pyx_t_1; __pyx_L9_bool_binop_done:; if (__pyx_t_2) { /* "View.MemoryView":838 * * if have_step and step == 0: * _err_dim(ValueError, "Step may not be zero (axis %d)", dim) # <<<<<<<<<<<<<< * * */ __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_ValueError, ((char *)"Step may not be zero (axis %d)"), __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 838, __pyx_L1_error) /* "View.MemoryView":837 * negative_step = have_step != 0 and step < 0 * * if have_step and step == 0: # <<<<<<<<<<<<<< * _err_dim(ValueError, "Step may not be zero (axis %d)", dim) * */ } /* "View.MemoryView":841 * * * if have_start: # <<<<<<<<<<<<<< * if start < 0: * start += shape */ __pyx_t_2 = (__pyx_v_have_start != 0); if (__pyx_t_2) { /* "View.MemoryView":842 * * if have_start: * if start < 0: # <<<<<<<<<<<<<< * start += shape * if start < 0: */ __pyx_t_2 = ((__pyx_v_start < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":843 * if have_start: * if start < 0: * start += shape # <<<<<<<<<<<<<< * if start < 0: * start = 0 */ __pyx_v_start = (__pyx_v_start + __pyx_v_shape); /* "View.MemoryView":844 * if start < 0: * start += shape * if start < 0: # <<<<<<<<<<<<<< * start = 0 * elif start >= shape: */ __pyx_t_2 = ((__pyx_v_start < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":845 * start += shape * if start < 0: * start = 0 # <<<<<<<<<<<<<< * elif start >= shape: * if negative_step: */ __pyx_v_start = 0; /* "View.MemoryView":844 * if start < 0: * start += shape * if start < 0: # <<<<<<<<<<<<<< * start = 0 * elif start >= shape: */ } /* "View.MemoryView":842 * * if have_start: * if start < 0: # <<<<<<<<<<<<<< * start += shape * if start < 0: */ goto __pyx_L12; } /* "View.MemoryView":846 * if start < 0: * start = 0 * elif start >= shape: # <<<<<<<<<<<<<< * if negative_step: * start = shape - 1 */ __pyx_t_2 = ((__pyx_v_start >= __pyx_v_shape) != 0); if (__pyx_t_2) { /* "View.MemoryView":847 * start = 0 * elif start >= shape: * if negative_step: # <<<<<<<<<<<<<< * start = shape - 1 * else: */ __pyx_t_2 = (__pyx_v_negative_step != 0); if (__pyx_t_2) { /* "View.MemoryView":848 * elif start >= shape: * if negative_step: * start = shape - 1 # <<<<<<<<<<<<<< * else: * start = shape */ __pyx_v_start = (__pyx_v_shape - 1); /* "View.MemoryView":847 * start = 0 * elif start >= shape: * if negative_step: # <<<<<<<<<<<<<< * start = shape - 1 * else: */ goto __pyx_L14; } /* "View.MemoryView":850 * start = shape - 1 * else: * start = shape # <<<<<<<<<<<<<< * else: * if negative_step: */ /*else*/ { __pyx_v_start = __pyx_v_shape; } __pyx_L14:; /* "View.MemoryView":846 * if start < 0: * start = 0 * elif start >= shape: # <<<<<<<<<<<<<< * if negative_step: * start = shape - 1 */ } __pyx_L12:; /* "View.MemoryView":841 * * * if have_start: # <<<<<<<<<<<<<< * if start < 0: * start += shape */ goto __pyx_L11; } /* "View.MemoryView":852 * start = shape * else: * if negative_step: # <<<<<<<<<<<<<< * start = shape - 1 * else: */ /*else*/ { __pyx_t_2 = (__pyx_v_negative_step != 0); if (__pyx_t_2) { /* "View.MemoryView":853 * else: * if negative_step: * start = shape - 1 # <<<<<<<<<<<<<< * else: * start = 0 */ __pyx_v_start = (__pyx_v_shape - 1); /* "View.MemoryView":852 * start = shape * else: * if negative_step: # <<<<<<<<<<<<<< * start = shape - 1 * else: */ goto __pyx_L15; } /* "View.MemoryView":855 * start = shape - 1 * else: * start = 0 # <<<<<<<<<<<<<< * * if have_stop: */ /*else*/ { __pyx_v_start = 0; } __pyx_L15:; } __pyx_L11:; /* "View.MemoryView":857 * start = 0 * * if have_stop: # <<<<<<<<<<<<<< * if stop < 0: * stop += shape */ __pyx_t_2 = (__pyx_v_have_stop != 0); if (__pyx_t_2) { /* "View.MemoryView":858 * * if have_stop: * if stop < 0: # <<<<<<<<<<<<<< * stop += shape * if stop < 0: */ __pyx_t_2 = ((__pyx_v_stop < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":859 * if have_stop: * if stop < 0: * stop += shape # <<<<<<<<<<<<<< * if stop < 0: * stop = 0 */ __pyx_v_stop = (__pyx_v_stop + __pyx_v_shape); /* "View.MemoryView":860 * if stop < 0: * stop += shape * if stop < 0: # <<<<<<<<<<<<<< * stop = 0 * elif stop > shape: */ __pyx_t_2 = ((__pyx_v_stop < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":861 * stop += shape * if stop < 0: * stop = 0 # <<<<<<<<<<<<<< * elif stop > shape: * stop = shape */ __pyx_v_stop = 0; /* "View.MemoryView":860 * if stop < 0: * stop += shape * if stop < 0: # <<<<<<<<<<<<<< * stop = 0 * elif stop > shape: */ } /* "View.MemoryView":858 * * if have_stop: * if stop < 0: # <<<<<<<<<<<<<< * stop += shape * if stop < 0: */ goto __pyx_L17; } /* "View.MemoryView":862 * if stop < 0: * stop = 0 * elif stop > shape: # <<<<<<<<<<<<<< * stop = shape * else: */ __pyx_t_2 = ((__pyx_v_stop > __pyx_v_shape) != 0); if (__pyx_t_2) { /* "View.MemoryView":863 * stop = 0 * elif stop > shape: * stop = shape # <<<<<<<<<<<<<< * else: * if negative_step: */ __pyx_v_stop = __pyx_v_shape; /* "View.MemoryView":862 * if stop < 0: * stop = 0 * elif stop > shape: # <<<<<<<<<<<<<< * stop = shape * else: */ } __pyx_L17:; /* "View.MemoryView":857 * start = 0 * * if have_stop: # <<<<<<<<<<<<<< * if stop < 0: * stop += shape */ goto __pyx_L16; } /* "View.MemoryView":865 * stop = shape * else: * if negative_step: # <<<<<<<<<<<<<< * stop = -1 * else: */ /*else*/ { __pyx_t_2 = (__pyx_v_negative_step != 0); if (__pyx_t_2) { /* "View.MemoryView":866 * else: * if negative_step: * stop = -1 # <<<<<<<<<<<<<< * else: * stop = shape */ __pyx_v_stop = -1L; /* "View.MemoryView":865 * stop = shape * else: * if negative_step: # <<<<<<<<<<<<<< * stop = -1 * else: */ goto __pyx_L19; } /* "View.MemoryView":868 * stop = -1 * else: * stop = shape # <<<<<<<<<<<<<< * * if not have_step: */ /*else*/ { __pyx_v_stop = __pyx_v_shape; } __pyx_L19:; } __pyx_L16:; /* "View.MemoryView":870 * stop = shape * * if not have_step: # <<<<<<<<<<<<<< * step = 1 * */ __pyx_t_2 = ((!(__pyx_v_have_step != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":871 * * if not have_step: * step = 1 # <<<<<<<<<<<<<< * * */ __pyx_v_step = 1; /* "View.MemoryView":870 * stop = shape * * if not have_step: # <<<<<<<<<<<<<< * step = 1 * */ } /* "View.MemoryView":875 * * with cython.cdivision(True): * new_shape = (stop - start) // step # <<<<<<<<<<<<<< * * if (stop - start) - step * new_shape: */ __pyx_v_new_shape = ((__pyx_v_stop - __pyx_v_start) / __pyx_v_step); /* "View.MemoryView":877 * new_shape = (stop - start) // step * * if (stop - start) - step * new_shape: # <<<<<<<<<<<<<< * new_shape += 1 * */ __pyx_t_2 = (((__pyx_v_stop - __pyx_v_start) - (__pyx_v_step * __pyx_v_new_shape)) != 0); if (__pyx_t_2) { /* "View.MemoryView":878 * * if (stop - start) - step * new_shape: * new_shape += 1 # <<<<<<<<<<<<<< * * if new_shape < 0: */ __pyx_v_new_shape = (__pyx_v_new_shape + 1); /* "View.MemoryView":877 * new_shape = (stop - start) // step * * if (stop - start) - step * new_shape: # <<<<<<<<<<<<<< * new_shape += 1 * */ } /* "View.MemoryView":880 * new_shape += 1 * * if new_shape < 0: # <<<<<<<<<<<<<< * new_shape = 0 * */ __pyx_t_2 = ((__pyx_v_new_shape < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":881 * * if new_shape < 0: * new_shape = 0 # <<<<<<<<<<<<<< * * */ __pyx_v_new_shape = 0; /* "View.MemoryView":880 * new_shape += 1 * * if new_shape < 0: # <<<<<<<<<<<<<< * new_shape = 0 * */ } /* "View.MemoryView":884 * * * dst.strides[new_ndim] = stride * step # <<<<<<<<<<<<<< * dst.shape[new_ndim] = new_shape * dst.suboffsets[new_ndim] = suboffset */ (__pyx_v_dst->strides[__pyx_v_new_ndim]) = (__pyx_v_stride * __pyx_v_step); /* "View.MemoryView":885 * * dst.strides[new_ndim] = stride * step * dst.shape[new_ndim] = new_shape # <<<<<<<<<<<<<< * dst.suboffsets[new_ndim] = suboffset * */ (__pyx_v_dst->shape[__pyx_v_new_ndim]) = __pyx_v_new_shape; /* "View.MemoryView":886 * dst.strides[new_ndim] = stride * step * dst.shape[new_ndim] = new_shape * dst.suboffsets[new_ndim] = suboffset # <<<<<<<<<<<<<< * * */ (__pyx_v_dst->suboffsets[__pyx_v_new_ndim]) = __pyx_v_suboffset; } __pyx_L3:; /* "View.MemoryView":889 * * * if suboffset_dim[0] < 0: # <<<<<<<<<<<<<< * dst.data += start * stride * else: */ __pyx_t_2 = (((__pyx_v_suboffset_dim[0]) < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":890 * * if suboffset_dim[0] < 0: * dst.data += start * stride # <<<<<<<<<<<<<< * else: * dst.suboffsets[suboffset_dim[0]] += start * stride */ __pyx_v_dst->data = (__pyx_v_dst->data + (__pyx_v_start * __pyx_v_stride)); /* "View.MemoryView":889 * * * if suboffset_dim[0] < 0: # <<<<<<<<<<<<<< * dst.data += start * stride * else: */ goto __pyx_L23; } /* "View.MemoryView":892 * dst.data += start * stride * else: * dst.suboffsets[suboffset_dim[0]] += start * stride # <<<<<<<<<<<<<< * * if suboffset >= 0: */ /*else*/ { __pyx_t_3 = (__pyx_v_suboffset_dim[0]); (__pyx_v_dst->suboffsets[__pyx_t_3]) = ((__pyx_v_dst->suboffsets[__pyx_t_3]) + (__pyx_v_start * __pyx_v_stride)); } __pyx_L23:; /* "View.MemoryView":894 * dst.suboffsets[suboffset_dim[0]] += start * stride * * if suboffset >= 0: # <<<<<<<<<<<<<< * if not is_slice: * if new_ndim == 0: */ __pyx_t_2 = ((__pyx_v_suboffset >= 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":895 * * if suboffset >= 0: * if not is_slice: # <<<<<<<<<<<<<< * if new_ndim == 0: * dst.data = ( dst.data)[0] + suboffset */ __pyx_t_2 = ((!(__pyx_v_is_slice != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":896 * if suboffset >= 0: * if not is_slice: * if new_ndim == 0: # <<<<<<<<<<<<<< * dst.data = ( dst.data)[0] + suboffset * else: */ __pyx_t_2 = ((__pyx_v_new_ndim == 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":897 * if not is_slice: * if new_ndim == 0: * dst.data = ( dst.data)[0] + suboffset # <<<<<<<<<<<<<< * else: * _err_dim(IndexError, "All dimensions preceding dimension %d " */ __pyx_v_dst->data = ((((char **)__pyx_v_dst->data)[0]) + __pyx_v_suboffset); /* "View.MemoryView":896 * if suboffset >= 0: * if not is_slice: * if new_ndim == 0: # <<<<<<<<<<<<<< * dst.data = ( dst.data)[0] + suboffset * else: */ goto __pyx_L26; } /* "View.MemoryView":899 * dst.data = ( dst.data)[0] + suboffset * else: * _err_dim(IndexError, "All dimensions preceding dimension %d " # <<<<<<<<<<<<<< * "must be indexed and not sliced", dim) * else: */ /*else*/ { /* "View.MemoryView":900 * else: * _err_dim(IndexError, "All dimensions preceding dimension %d " * "must be indexed and not sliced", dim) # <<<<<<<<<<<<<< * else: * suboffset_dim[0] = new_ndim */ __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_IndexError, ((char *)"All dimensions preceding dimension %d must be indexed and not sliced"), __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 899, __pyx_L1_error) } __pyx_L26:; /* "View.MemoryView":895 * * if suboffset >= 0: * if not is_slice: # <<<<<<<<<<<<<< * if new_ndim == 0: * dst.data = ( dst.data)[0] + suboffset */ goto __pyx_L25; } /* "View.MemoryView":902 * "must be indexed and not sliced", dim) * else: * suboffset_dim[0] = new_ndim # <<<<<<<<<<<<<< * * return 0 */ /*else*/ { (__pyx_v_suboffset_dim[0]) = __pyx_v_new_ndim; } __pyx_L25:; /* "View.MemoryView":894 * dst.suboffsets[suboffset_dim[0]] += start * stride * * if suboffset >= 0: # <<<<<<<<<<<<<< * if not is_slice: * if new_ndim == 0: */ } /* "View.MemoryView":904 * suboffset_dim[0] = new_ndim * * return 0 # <<<<<<<<<<<<<< * * */ __pyx_r = 0; goto __pyx_L0; /* "View.MemoryView":807 * * @cname('__pyx_memoryview_slice_memviewslice') * cdef int slice_memviewslice( # <<<<<<<<<<<<<< * __Pyx_memviewslice *dst, * Py_ssize_t shape, Py_ssize_t stride, Py_ssize_t suboffset, */ /* function exit code */ __pyx_L1_error:; { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_AddTraceback("View.MemoryView.slice_memviewslice", __pyx_clineno, __pyx_lineno, __pyx_filename); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif } __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "View.MemoryView":910 * * @cname('__pyx_pybuffer_index') * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, # <<<<<<<<<<<<<< * Py_ssize_t dim) except NULL: * cdef Py_ssize_t shape, stride, suboffset = -1 */ static char *__pyx_pybuffer_index(Py_buffer *__pyx_v_view, char *__pyx_v_bufp, Py_ssize_t __pyx_v_index, Py_ssize_t __pyx_v_dim) { Py_ssize_t __pyx_v_shape; Py_ssize_t __pyx_v_stride; Py_ssize_t __pyx_v_suboffset; Py_ssize_t __pyx_v_itemsize; char *__pyx_v_resultp; char *__pyx_r; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; __Pyx_RefNannySetupContext("pybuffer_index", 0); /* "View.MemoryView":912 * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, * Py_ssize_t dim) except NULL: * cdef Py_ssize_t shape, stride, suboffset = -1 # <<<<<<<<<<<<<< * cdef Py_ssize_t itemsize = view.itemsize * cdef char *resultp */ __pyx_v_suboffset = -1L; /* "View.MemoryView":913 * Py_ssize_t dim) except NULL: * cdef Py_ssize_t shape, stride, suboffset = -1 * cdef Py_ssize_t itemsize = view.itemsize # <<<<<<<<<<<<<< * cdef char *resultp * */ __pyx_t_1 = __pyx_v_view->itemsize; __pyx_v_itemsize = __pyx_t_1; /* "View.MemoryView":916 * cdef char *resultp * * if view.ndim == 0: # <<<<<<<<<<<<<< * shape = view.len / itemsize * stride = itemsize */ __pyx_t_2 = ((__pyx_v_view->ndim == 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":917 * * if view.ndim == 0: * shape = view.len / itemsize # <<<<<<<<<<<<<< * stride = itemsize * else: */ if (unlikely(__pyx_v_itemsize == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero"); __PYX_ERR(2, 917, __pyx_L1_error) } else if (sizeof(Py_ssize_t) == sizeof(long) && (!(((Py_ssize_t)-1) > 0)) && unlikely(__pyx_v_itemsize == (Py_ssize_t)-1) && unlikely(UNARY_NEG_WOULD_OVERFLOW(__pyx_v_view->len))) { PyErr_SetString(PyExc_OverflowError, "value too large to perform division"); __PYX_ERR(2, 917, __pyx_L1_error) } __pyx_v_shape = __Pyx_div_Py_ssize_t(__pyx_v_view->len, __pyx_v_itemsize); /* "View.MemoryView":918 * if view.ndim == 0: * shape = view.len / itemsize * stride = itemsize # <<<<<<<<<<<<<< * else: * shape = view.shape[dim] */ __pyx_v_stride = __pyx_v_itemsize; /* "View.MemoryView":916 * cdef char *resultp * * if view.ndim == 0: # <<<<<<<<<<<<<< * shape = view.len / itemsize * stride = itemsize */ goto __pyx_L3; } /* "View.MemoryView":920 * stride = itemsize * else: * shape = view.shape[dim] # <<<<<<<<<<<<<< * stride = view.strides[dim] * if view.suboffsets != NULL: */ /*else*/ { __pyx_v_shape = (__pyx_v_view->shape[__pyx_v_dim]); /* "View.MemoryView":921 * else: * shape = view.shape[dim] * stride = view.strides[dim] # <<<<<<<<<<<<<< * if view.suboffsets != NULL: * suboffset = view.suboffsets[dim] */ __pyx_v_stride = (__pyx_v_view->strides[__pyx_v_dim]); /* "View.MemoryView":922 * shape = view.shape[dim] * stride = view.strides[dim] * if view.suboffsets != NULL: # <<<<<<<<<<<<<< * suboffset = view.suboffsets[dim] * */ __pyx_t_2 = ((__pyx_v_view->suboffsets != NULL) != 0); if (__pyx_t_2) { /* "View.MemoryView":923 * stride = view.strides[dim] * if view.suboffsets != NULL: * suboffset = view.suboffsets[dim] # <<<<<<<<<<<<<< * * if index < 0: */ __pyx_v_suboffset = (__pyx_v_view->suboffsets[__pyx_v_dim]); /* "View.MemoryView":922 * shape = view.shape[dim] * stride = view.strides[dim] * if view.suboffsets != NULL: # <<<<<<<<<<<<<< * suboffset = view.suboffsets[dim] * */ } } __pyx_L3:; /* "View.MemoryView":925 * suboffset = view.suboffsets[dim] * * if index < 0: # <<<<<<<<<<<<<< * index += view.shape[dim] * if index < 0: */ __pyx_t_2 = ((__pyx_v_index < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":926 * * if index < 0: * index += view.shape[dim] # <<<<<<<<<<<<<< * if index < 0: * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) */ __pyx_v_index = (__pyx_v_index + (__pyx_v_view->shape[__pyx_v_dim])); /* "View.MemoryView":927 * if index < 0: * index += view.shape[dim] * if index < 0: # <<<<<<<<<<<<<< * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * */ __pyx_t_2 = ((__pyx_v_index < 0) != 0); if (unlikely(__pyx_t_2)) { /* "View.MemoryView":928 * index += view.shape[dim] * if index < 0: * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) # <<<<<<<<<<<<<< * * if index >= shape: */ __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_dim); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_IndexError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 928, __pyx_L1_error) /* "View.MemoryView":927 * if index < 0: * index += view.shape[dim] * if index < 0: # <<<<<<<<<<<<<< * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * */ } /* "View.MemoryView":925 * suboffset = view.suboffsets[dim] * * if index < 0: # <<<<<<<<<<<<<< * index += view.shape[dim] * if index < 0: */ } /* "View.MemoryView":930 * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * * if index >= shape: # <<<<<<<<<<<<<< * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * */ __pyx_t_2 = ((__pyx_v_index >= __pyx_v_shape) != 0); if (unlikely(__pyx_t_2)) { /* "View.MemoryView":931 * * if index >= shape: * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) # <<<<<<<<<<<<<< * * resultp = bufp + index * stride */ __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_dim); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_IndexError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 931, __pyx_L1_error) /* "View.MemoryView":930 * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * * if index >= shape: # <<<<<<<<<<<<<< * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * */ } /* "View.MemoryView":933 * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * * resultp = bufp + index * stride # <<<<<<<<<<<<<< * if suboffset >= 0: * resultp = ( resultp)[0] + suboffset */ __pyx_v_resultp = (__pyx_v_bufp + (__pyx_v_index * __pyx_v_stride)); /* "View.MemoryView":934 * * resultp = bufp + index * stride * if suboffset >= 0: # <<<<<<<<<<<<<< * resultp = ( resultp)[0] + suboffset * */ __pyx_t_2 = ((__pyx_v_suboffset >= 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":935 * resultp = bufp + index * stride * if suboffset >= 0: * resultp = ( resultp)[0] + suboffset # <<<<<<<<<<<<<< * * return resultp */ __pyx_v_resultp = ((((char **)__pyx_v_resultp)[0]) + __pyx_v_suboffset); /* "View.MemoryView":934 * * resultp = bufp + index * stride * if suboffset >= 0: # <<<<<<<<<<<<<< * resultp = ( resultp)[0] + suboffset * */ } /* "View.MemoryView":937 * resultp = ( resultp)[0] + suboffset * * return resultp # <<<<<<<<<<<<<< * * */ __pyx_r = __pyx_v_resultp; goto __pyx_L0; /* "View.MemoryView":910 * * @cname('__pyx_pybuffer_index') * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, # <<<<<<<<<<<<<< * Py_ssize_t dim) except NULL: * cdef Py_ssize_t shape, stride, suboffset = -1 */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("View.MemoryView.pybuffer_index", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":943 * * @cname('__pyx_memslice_transpose') * cdef int transpose_memslice(__Pyx_memviewslice *memslice) nogil except 0: # <<<<<<<<<<<<<< * cdef int ndim = memslice.memview.view.ndim * */ static int __pyx_memslice_transpose(__Pyx_memviewslice *__pyx_v_memslice) { int __pyx_v_ndim; Py_ssize_t *__pyx_v_shape; Py_ssize_t *__pyx_v_strides; int __pyx_v_i; int __pyx_v_j; int __pyx_r; int __pyx_t_1; Py_ssize_t *__pyx_t_2; long __pyx_t_3; long __pyx_t_4; Py_ssize_t __pyx_t_5; Py_ssize_t __pyx_t_6; int __pyx_t_7; int __pyx_t_8; int __pyx_t_9; /* "View.MemoryView":944 * @cname('__pyx_memslice_transpose') * cdef int transpose_memslice(__Pyx_memviewslice *memslice) nogil except 0: * cdef int ndim = memslice.memview.view.ndim # <<<<<<<<<<<<<< * * cdef Py_ssize_t *shape = memslice.shape */ __pyx_t_1 = __pyx_v_memslice->memview->view.ndim; __pyx_v_ndim = __pyx_t_1; /* "View.MemoryView":946 * cdef int ndim = memslice.memview.view.ndim * * cdef Py_ssize_t *shape = memslice.shape # <<<<<<<<<<<<<< * cdef Py_ssize_t *strides = memslice.strides * */ __pyx_t_2 = __pyx_v_memslice->shape; __pyx_v_shape = __pyx_t_2; /* "View.MemoryView":947 * * cdef Py_ssize_t *shape = memslice.shape * cdef Py_ssize_t *strides = memslice.strides # <<<<<<<<<<<<<< * * */ __pyx_t_2 = __pyx_v_memslice->strides; __pyx_v_strides = __pyx_t_2; /* "View.MemoryView":951 * * cdef int i, j * for i in range(ndim / 2): # <<<<<<<<<<<<<< * j = ndim - 1 - i * strides[i], strides[j] = strides[j], strides[i] */ __pyx_t_3 = __Pyx_div_long(__pyx_v_ndim, 2); __pyx_t_4 = __pyx_t_3; for (__pyx_t_1 = 0; __pyx_t_1 < __pyx_t_4; __pyx_t_1+=1) { __pyx_v_i = __pyx_t_1; /* "View.MemoryView":952 * cdef int i, j * for i in range(ndim / 2): * j = ndim - 1 - i # <<<<<<<<<<<<<< * strides[i], strides[j] = strides[j], strides[i] * shape[i], shape[j] = shape[j], shape[i] */ __pyx_v_j = ((__pyx_v_ndim - 1) - __pyx_v_i); /* "View.MemoryView":953 * for i in range(ndim / 2): * j = ndim - 1 - i * strides[i], strides[j] = strides[j], strides[i] # <<<<<<<<<<<<<< * shape[i], shape[j] = shape[j], shape[i] * */ __pyx_t_5 = (__pyx_v_strides[__pyx_v_j]); __pyx_t_6 = (__pyx_v_strides[__pyx_v_i]); (__pyx_v_strides[__pyx_v_i]) = __pyx_t_5; (__pyx_v_strides[__pyx_v_j]) = __pyx_t_6; /* "View.MemoryView":954 * j = ndim - 1 - i * strides[i], strides[j] = strides[j], strides[i] * shape[i], shape[j] = shape[j], shape[i] # <<<<<<<<<<<<<< * * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: */ __pyx_t_6 = (__pyx_v_shape[__pyx_v_j]); __pyx_t_5 = (__pyx_v_shape[__pyx_v_i]); (__pyx_v_shape[__pyx_v_i]) = __pyx_t_6; (__pyx_v_shape[__pyx_v_j]) = __pyx_t_5; /* "View.MemoryView":956 * shape[i], shape[j] = shape[j], shape[i] * * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: # <<<<<<<<<<<<<< * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") * */ __pyx_t_8 = (((__pyx_v_memslice->suboffsets[__pyx_v_i]) >= 0) != 0); if (!__pyx_t_8) { } else { __pyx_t_7 = __pyx_t_8; goto __pyx_L6_bool_binop_done; } __pyx_t_8 = (((__pyx_v_memslice->suboffsets[__pyx_v_j]) >= 0) != 0); __pyx_t_7 = __pyx_t_8; __pyx_L6_bool_binop_done:; if (__pyx_t_7) { /* "View.MemoryView":957 * * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") # <<<<<<<<<<<<<< * * return 1 */ __pyx_t_9 = __pyx_memoryview_err(__pyx_builtin_ValueError, ((char *)"Cannot transpose memoryview with indirect dimensions")); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 957, __pyx_L1_error) /* "View.MemoryView":956 * shape[i], shape[j] = shape[j], shape[i] * * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: # <<<<<<<<<<<<<< * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") * */ } } /* "View.MemoryView":959 * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") * * return 1 # <<<<<<<<<<<<<< * * */ __pyx_r = 1; goto __pyx_L0; /* "View.MemoryView":943 * * @cname('__pyx_memslice_transpose') * cdef int transpose_memslice(__Pyx_memviewslice *memslice) nogil except 0: # <<<<<<<<<<<<<< * cdef int ndim = memslice.memview.view.ndim * */ /* function exit code */ __pyx_L1_error:; { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_AddTraceback("View.MemoryView.transpose_memslice", __pyx_clineno, __pyx_lineno, __pyx_filename); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif } __pyx_r = 0; __pyx_L0:; return __pyx_r; } /* "View.MemoryView":976 * cdef int (*to_dtype_func)(char *, object) except 0 * * def __dealloc__(self): # <<<<<<<<<<<<<< * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) * */ /* Python wrapper */ static void __pyx_memoryviewslice___dealloc__(PyObject *__pyx_v_self); /*proto*/ static void __pyx_memoryviewslice___dealloc__(PyObject *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(struct __pyx_memoryviewslice_obj *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__", 0); /* "View.MemoryView":977 * * def __dealloc__(self): * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) # <<<<<<<<<<<<<< * * cdef convert_item_to_object(self, char *itemp): */ __PYX_XDEC_MEMVIEW((&__pyx_v_self->from_slice), 1); /* "View.MemoryView":976 * cdef int (*to_dtype_func)(char *, object) except 0 * * def __dealloc__(self): # <<<<<<<<<<<<<< * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) * */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "View.MemoryView":979 * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) * * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< * if self.to_object_func != NULL: * return self.to_object_func(itemp) */ static PyObject *__pyx_memoryviewslice_convert_item_to_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("convert_item_to_object", 0); /* "View.MemoryView":980 * * cdef convert_item_to_object(self, char *itemp): * if self.to_object_func != NULL: # <<<<<<<<<<<<<< * return self.to_object_func(itemp) * else: */ __pyx_t_1 = ((__pyx_v_self->to_object_func != NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":981 * cdef convert_item_to_object(self, char *itemp): * if self.to_object_func != NULL: * return self.to_object_func(itemp) # <<<<<<<<<<<<<< * else: * return memoryview.convert_item_to_object(self, itemp) */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __pyx_v_self->to_object_func(__pyx_v_itemp); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":980 * * cdef convert_item_to_object(self, char *itemp): * if self.to_object_func != NULL: # <<<<<<<<<<<<<< * return self.to_object_func(itemp) * else: */ } /* "View.MemoryView":983 * return self.to_object_func(itemp) * else: * return memoryview.convert_item_to_object(self, itemp) # <<<<<<<<<<<<<< * * cdef assign_item_from_object(self, char *itemp, object value): */ /*else*/ { __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __pyx_memoryview_convert_item_to_object(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_itemp); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; } /* "View.MemoryView":979 * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) * * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< * if self.to_object_func != NULL: * return self.to_object_func(itemp) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView._memoryviewslice.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":985 * return memoryview.convert_item_to_object(self, itemp) * * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< * if self.to_dtype_func != NULL: * self.to_dtype_func(itemp, value) */ static PyObject *__pyx_memoryviewslice_assign_item_from_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("assign_item_from_object", 0); /* "View.MemoryView":986 * * cdef assign_item_from_object(self, char *itemp, object value): * if self.to_dtype_func != NULL: # <<<<<<<<<<<<<< * self.to_dtype_func(itemp, value) * else: */ __pyx_t_1 = ((__pyx_v_self->to_dtype_func != NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":987 * cdef assign_item_from_object(self, char *itemp, object value): * if self.to_dtype_func != NULL: * self.to_dtype_func(itemp, value) # <<<<<<<<<<<<<< * else: * memoryview.assign_item_from_object(self, itemp, value) */ __pyx_t_2 = __pyx_v_self->to_dtype_func(__pyx_v_itemp, __pyx_v_value); if (unlikely(__pyx_t_2 == ((int)0))) __PYX_ERR(2, 987, __pyx_L1_error) /* "View.MemoryView":986 * * cdef assign_item_from_object(self, char *itemp, object value): * if self.to_dtype_func != NULL: # <<<<<<<<<<<<<< * self.to_dtype_func(itemp, value) * else: */ goto __pyx_L3; } /* "View.MemoryView":989 * self.to_dtype_func(itemp, value) * else: * memoryview.assign_item_from_object(self, itemp, value) # <<<<<<<<<<<<<< * * @property */ /*else*/ { __pyx_t_3 = __pyx_memoryview_assign_item_from_object(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_itemp, __pyx_v_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_L3:; /* "View.MemoryView":985 * return memoryview.convert_item_to_object(self, itemp) * * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< * if self.to_dtype_func != NULL: * self.to_dtype_func(itemp, value) */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView._memoryviewslice.assign_item_from_object", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":992 * * @property * def base(self): # <<<<<<<<<<<<<< * return self.from_object * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(struct __pyx_memoryviewslice_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":993 * @property * def base(self): * return self.from_object # <<<<<<<<<<<<<< * * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->from_object); __pyx_r = __pyx_v_self->from_object; goto __pyx_L0; /* "View.MemoryView":992 * * @property * def base(self): # <<<<<<<<<<<<<< * return self.from_object * */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_memoryviewslice_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw___pyx_memoryviewslice_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_memoryviewslice___reduce_cython__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_memoryviewslice___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__42, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(2, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView._memoryviewslice.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_memoryviewslice_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw___pyx_memoryviewslice_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_memoryviewslice_2__setstate_cython__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_memoryviewslice_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__43, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(2, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView._memoryviewslice.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":999 * * @cname('__pyx_memoryview_fromslice') * cdef memoryview_fromslice(__Pyx_memviewslice memviewslice, # <<<<<<<<<<<<<< * int ndim, * object (*to_object_func)(char *), */ static PyObject *__pyx_memoryview_fromslice(__Pyx_memviewslice __pyx_v_memviewslice, int __pyx_v_ndim, PyObject *(*__pyx_v_to_object_func)(char *), int (*__pyx_v_to_dtype_func)(char *, PyObject *), int __pyx_v_dtype_is_object) { struct __pyx_memoryviewslice_obj *__pyx_v_result = 0; Py_ssize_t __pyx_v_suboffset; PyObject *__pyx_v_length = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_TypeInfo *__pyx_t_4; Py_buffer __pyx_t_5; Py_ssize_t *__pyx_t_6; Py_ssize_t *__pyx_t_7; Py_ssize_t *__pyx_t_8; Py_ssize_t __pyx_t_9; __Pyx_RefNannySetupContext("memoryview_fromslice", 0); /* "View.MemoryView":1007 * cdef _memoryviewslice result * * if memviewslice.memview == Py_None: # <<<<<<<<<<<<<< * return None * */ __pyx_t_1 = ((((PyObject *)__pyx_v_memviewslice.memview) == Py_None) != 0); if (__pyx_t_1) { /* "View.MemoryView":1008 * * if memviewslice.memview == Py_None: * return None # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; /* "View.MemoryView":1007 * cdef _memoryviewslice result * * if memviewslice.memview == Py_None: # <<<<<<<<<<<<<< * return None * */ } /* "View.MemoryView":1013 * * * result = _memoryviewslice(None, 0, dtype_is_object) # <<<<<<<<<<<<<< * * result.from_slice = memviewslice */ __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_3, 0, Py_None); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryviewslice_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_result = ((struct __pyx_memoryviewslice_obj *)__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":1015 * result = _memoryviewslice(None, 0, dtype_is_object) * * result.from_slice = memviewslice # <<<<<<<<<<<<<< * __PYX_INC_MEMVIEW(&memviewslice, 1) * */ __pyx_v_result->from_slice = __pyx_v_memviewslice; /* "View.MemoryView":1016 * * result.from_slice = memviewslice * __PYX_INC_MEMVIEW(&memviewslice, 1) # <<<<<<<<<<<<<< * * result.from_object = ( memviewslice.memview).base */ __PYX_INC_MEMVIEW((&__pyx_v_memviewslice), 1); /* "View.MemoryView":1018 * __PYX_INC_MEMVIEW(&memviewslice, 1) * * result.from_object = ( memviewslice.memview).base # <<<<<<<<<<<<<< * result.typeinfo = memviewslice.memview.typeinfo * */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_memviewslice.memview), __pyx_n_s_base); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_result->from_object); __Pyx_DECREF(__pyx_v_result->from_object); __pyx_v_result->from_object = __pyx_t_2; __pyx_t_2 = 0; /* "View.MemoryView":1019 * * result.from_object = ( memviewslice.memview).base * result.typeinfo = memviewslice.memview.typeinfo # <<<<<<<<<<<<<< * * result.view = memviewslice.memview.view */ __pyx_t_4 = __pyx_v_memviewslice.memview->typeinfo; __pyx_v_result->__pyx_base.typeinfo = __pyx_t_4; /* "View.MemoryView":1021 * result.typeinfo = memviewslice.memview.typeinfo * * result.view = memviewslice.memview.view # <<<<<<<<<<<<<< * result.view.buf = memviewslice.data * result.view.ndim = ndim */ __pyx_t_5 = __pyx_v_memviewslice.memview->view; __pyx_v_result->__pyx_base.view = __pyx_t_5; /* "View.MemoryView":1022 * * result.view = memviewslice.memview.view * result.view.buf = memviewslice.data # <<<<<<<<<<<<<< * result.view.ndim = ndim * (<__pyx_buffer *> &result.view).obj = Py_None */ __pyx_v_result->__pyx_base.view.buf = ((void *)__pyx_v_memviewslice.data); /* "View.MemoryView":1023 * result.view = memviewslice.memview.view * result.view.buf = memviewslice.data * result.view.ndim = ndim # <<<<<<<<<<<<<< * (<__pyx_buffer *> &result.view).obj = Py_None * Py_INCREF(Py_None) */ __pyx_v_result->__pyx_base.view.ndim = __pyx_v_ndim; /* "View.MemoryView":1024 * result.view.buf = memviewslice.data * result.view.ndim = ndim * (<__pyx_buffer *> &result.view).obj = Py_None # <<<<<<<<<<<<<< * Py_INCREF(Py_None) * */ ((Py_buffer *)(&__pyx_v_result->__pyx_base.view))->obj = Py_None; /* "View.MemoryView":1025 * result.view.ndim = ndim * (<__pyx_buffer *> &result.view).obj = Py_None * Py_INCREF(Py_None) # <<<<<<<<<<<<<< * * if (memviewslice.memview).flags & PyBUF_WRITABLE: */ Py_INCREF(Py_None); /* "View.MemoryView":1027 * Py_INCREF(Py_None) * * if (memviewslice.memview).flags & PyBUF_WRITABLE: # <<<<<<<<<<<<<< * result.flags = PyBUF_RECORDS * else: */ __pyx_t_1 = ((((struct __pyx_memoryview_obj *)__pyx_v_memviewslice.memview)->flags & PyBUF_WRITABLE) != 0); if (__pyx_t_1) { /* "View.MemoryView":1028 * * if (memviewslice.memview).flags & PyBUF_WRITABLE: * result.flags = PyBUF_RECORDS # <<<<<<<<<<<<<< * else: * result.flags = PyBUF_RECORDS_RO */ __pyx_v_result->__pyx_base.flags = PyBUF_RECORDS; /* "View.MemoryView":1027 * Py_INCREF(Py_None) * * if (memviewslice.memview).flags & PyBUF_WRITABLE: # <<<<<<<<<<<<<< * result.flags = PyBUF_RECORDS * else: */ goto __pyx_L4; } /* "View.MemoryView":1030 * result.flags = PyBUF_RECORDS * else: * result.flags = PyBUF_RECORDS_RO # <<<<<<<<<<<<<< * * result.view.shape = result.from_slice.shape */ /*else*/ { __pyx_v_result->__pyx_base.flags = PyBUF_RECORDS_RO; } __pyx_L4:; /* "View.MemoryView":1032 * result.flags = PyBUF_RECORDS_RO * * result.view.shape = result.from_slice.shape # <<<<<<<<<<<<<< * result.view.strides = result.from_slice.strides * */ __pyx_v_result->__pyx_base.view.shape = ((Py_ssize_t *)__pyx_v_result->from_slice.shape); /* "View.MemoryView":1033 * * result.view.shape = result.from_slice.shape * result.view.strides = result.from_slice.strides # <<<<<<<<<<<<<< * * */ __pyx_v_result->__pyx_base.view.strides = ((Py_ssize_t *)__pyx_v_result->from_slice.strides); /* "View.MemoryView":1036 * * * result.view.suboffsets = NULL # <<<<<<<<<<<<<< * for suboffset in result.from_slice.suboffsets[:ndim]: * if suboffset >= 0: */ __pyx_v_result->__pyx_base.view.suboffsets = NULL; /* "View.MemoryView":1037 * * result.view.suboffsets = NULL * for suboffset in result.from_slice.suboffsets[:ndim]: # <<<<<<<<<<<<<< * if suboffset >= 0: * result.view.suboffsets = result.from_slice.suboffsets */ __pyx_t_7 = (__pyx_v_result->from_slice.suboffsets + __pyx_v_ndim); for (__pyx_t_8 = __pyx_v_result->from_slice.suboffsets; __pyx_t_8 < __pyx_t_7; __pyx_t_8++) { __pyx_t_6 = __pyx_t_8; __pyx_v_suboffset = (__pyx_t_6[0]); /* "View.MemoryView":1038 * result.view.suboffsets = NULL * for suboffset in result.from_slice.suboffsets[:ndim]: * if suboffset >= 0: # <<<<<<<<<<<<<< * result.view.suboffsets = result.from_slice.suboffsets * break */ __pyx_t_1 = ((__pyx_v_suboffset >= 0) != 0); if (__pyx_t_1) { /* "View.MemoryView":1039 * for suboffset in result.from_slice.suboffsets[:ndim]: * if suboffset >= 0: * result.view.suboffsets = result.from_slice.suboffsets # <<<<<<<<<<<<<< * break * */ __pyx_v_result->__pyx_base.view.suboffsets = ((Py_ssize_t *)__pyx_v_result->from_slice.suboffsets); /* "View.MemoryView":1040 * if suboffset >= 0: * result.view.suboffsets = result.from_slice.suboffsets * break # <<<<<<<<<<<<<< * * result.view.len = result.view.itemsize */ goto __pyx_L6_break; /* "View.MemoryView":1038 * result.view.suboffsets = NULL * for suboffset in result.from_slice.suboffsets[:ndim]: * if suboffset >= 0: # <<<<<<<<<<<<<< * result.view.suboffsets = result.from_slice.suboffsets * break */ } } __pyx_L6_break:; /* "View.MemoryView":1042 * break * * result.view.len = result.view.itemsize # <<<<<<<<<<<<<< * for length in result.view.shape[:ndim]: * result.view.len *= length */ __pyx_t_9 = __pyx_v_result->__pyx_base.view.itemsize; __pyx_v_result->__pyx_base.view.len = __pyx_t_9; /* "View.MemoryView":1043 * * result.view.len = result.view.itemsize * for length in result.view.shape[:ndim]: # <<<<<<<<<<<<<< * result.view.len *= length * */ __pyx_t_7 = (__pyx_v_result->__pyx_base.view.shape + __pyx_v_ndim); for (__pyx_t_8 = __pyx_v_result->__pyx_base.view.shape; __pyx_t_8 < __pyx_t_7; __pyx_t_8++) { __pyx_t_6 = __pyx_t_8; __pyx_t_2 = PyInt_FromSsize_t((__pyx_t_6[0])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XDECREF_SET(__pyx_v_length, __pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":1044 * result.view.len = result.view.itemsize * for length in result.view.shape[:ndim]: * result.view.len *= length # <<<<<<<<<<<<<< * * result.to_object_func = to_object_func */ __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_result->__pyx_base.view.len); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_InPlaceMultiply(__pyx_t_2, __pyx_v_length); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 1044, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_result->__pyx_base.view.len = __pyx_t_9; } /* "View.MemoryView":1046 * result.view.len *= length * * result.to_object_func = to_object_func # <<<<<<<<<<<<<< * result.to_dtype_func = to_dtype_func * */ __pyx_v_result->to_object_func = __pyx_v_to_object_func; /* "View.MemoryView":1047 * * result.to_object_func = to_object_func * result.to_dtype_func = to_dtype_func # <<<<<<<<<<<<<< * * return result */ __pyx_v_result->to_dtype_func = __pyx_v_to_dtype_func; /* "View.MemoryView":1049 * result.to_dtype_func = to_dtype_func * * return result # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_get_slice_from_memoryview') */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_result)); __pyx_r = ((PyObject *)__pyx_v_result); goto __pyx_L0; /* "View.MemoryView":999 * * @cname('__pyx_memoryview_fromslice') * cdef memoryview_fromslice(__Pyx_memviewslice memviewslice, # <<<<<<<<<<<<<< * int ndim, * object (*to_object_func)(char *), */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview_fromslice", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_result); __Pyx_XDECREF(__pyx_v_length); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":1052 * * @cname('__pyx_memoryview_get_slice_from_memoryview') * cdef __Pyx_memviewslice *get_slice_from_memview(memoryview memview, # <<<<<<<<<<<<<< * __Pyx_memviewslice *mslice): * cdef _memoryviewslice obj */ static __Pyx_memviewslice *__pyx_memoryview_get_slice_from_memoryview(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_mslice) { struct __pyx_memoryviewslice_obj *__pyx_v_obj = 0; __Pyx_memviewslice *__pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("get_slice_from_memview", 0); /* "View.MemoryView":1055 * __Pyx_memviewslice *mslice): * cdef _memoryviewslice obj * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * obj = memview * return &obj.from_slice */ __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":1056 * cdef _memoryviewslice obj * if isinstance(memview, _memoryviewslice): * obj = memview # <<<<<<<<<<<<<< * return &obj.from_slice * else: */ if (!(likely(((((PyObject *)__pyx_v_memview)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type))))) __PYX_ERR(2, 1056, __pyx_L1_error) __pyx_t_3 = ((PyObject *)__pyx_v_memview); __Pyx_INCREF(__pyx_t_3); __pyx_v_obj = ((struct __pyx_memoryviewslice_obj *)__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":1057 * if isinstance(memview, _memoryviewslice): * obj = memview * return &obj.from_slice # <<<<<<<<<<<<<< * else: * slice_copy(memview, mslice) */ __pyx_r = (&__pyx_v_obj->from_slice); goto __pyx_L0; /* "View.MemoryView":1055 * __Pyx_memviewslice *mslice): * cdef _memoryviewslice obj * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * obj = memview * return &obj.from_slice */ } /* "View.MemoryView":1059 * return &obj.from_slice * else: * slice_copy(memview, mslice) # <<<<<<<<<<<<<< * return mslice * */ /*else*/ { __pyx_memoryview_slice_copy(__pyx_v_memview, __pyx_v_mslice); /* "View.MemoryView":1060 * else: * slice_copy(memview, mslice) * return mslice # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_slice_copy') */ __pyx_r = __pyx_v_mslice; goto __pyx_L0; } /* "View.MemoryView":1052 * * @cname('__pyx_memoryview_get_slice_from_memoryview') * cdef __Pyx_memviewslice *get_slice_from_memview(memoryview memview, # <<<<<<<<<<<<<< * __Pyx_memviewslice *mslice): * cdef _memoryviewslice obj */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_WriteUnraisable("View.MemoryView.get_slice_from_memview", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_obj); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":1063 * * @cname('__pyx_memoryview_slice_copy') * cdef void slice_copy(memoryview memview, __Pyx_memviewslice *dst): # <<<<<<<<<<<<<< * cdef int dim * cdef (Py_ssize_t*) shape, strides, suboffsets */ static void __pyx_memoryview_slice_copy(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_dst) { int __pyx_v_dim; Py_ssize_t *__pyx_v_shape; Py_ssize_t *__pyx_v_strides; Py_ssize_t *__pyx_v_suboffsets; __Pyx_RefNannyDeclarations Py_ssize_t *__pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; Py_ssize_t __pyx_t_5; __Pyx_RefNannySetupContext("slice_copy", 0); /* "View.MemoryView":1067 * cdef (Py_ssize_t*) shape, strides, suboffsets * * shape = memview.view.shape # <<<<<<<<<<<<<< * strides = memview.view.strides * suboffsets = memview.view.suboffsets */ __pyx_t_1 = __pyx_v_memview->view.shape; __pyx_v_shape = __pyx_t_1; /* "View.MemoryView":1068 * * shape = memview.view.shape * strides = memview.view.strides # <<<<<<<<<<<<<< * suboffsets = memview.view.suboffsets * */ __pyx_t_1 = __pyx_v_memview->view.strides; __pyx_v_strides = __pyx_t_1; /* "View.MemoryView":1069 * shape = memview.view.shape * strides = memview.view.strides * suboffsets = memview.view.suboffsets # <<<<<<<<<<<<<< * * dst.memview = <__pyx_memoryview *> memview */ __pyx_t_1 = __pyx_v_memview->view.suboffsets; __pyx_v_suboffsets = __pyx_t_1; /* "View.MemoryView":1071 * suboffsets = memview.view.suboffsets * * dst.memview = <__pyx_memoryview *> memview # <<<<<<<<<<<<<< * dst.data = memview.view.buf * */ __pyx_v_dst->memview = ((struct __pyx_memoryview_obj *)__pyx_v_memview); /* "View.MemoryView":1072 * * dst.memview = <__pyx_memoryview *> memview * dst.data = memview.view.buf # <<<<<<<<<<<<<< * * for dim in range(memview.view.ndim): */ __pyx_v_dst->data = ((char *)__pyx_v_memview->view.buf); /* "View.MemoryView":1074 * dst.data = memview.view.buf * * for dim in range(memview.view.ndim): # <<<<<<<<<<<<<< * dst.shape[dim] = shape[dim] * dst.strides[dim] = strides[dim] */ __pyx_t_2 = __pyx_v_memview->view.ndim; __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_dim = __pyx_t_4; /* "View.MemoryView":1075 * * for dim in range(memview.view.ndim): * dst.shape[dim] = shape[dim] # <<<<<<<<<<<<<< * dst.strides[dim] = strides[dim] * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1 */ (__pyx_v_dst->shape[__pyx_v_dim]) = (__pyx_v_shape[__pyx_v_dim]); /* "View.MemoryView":1076 * for dim in range(memview.view.ndim): * dst.shape[dim] = shape[dim] * dst.strides[dim] = strides[dim] # <<<<<<<<<<<<<< * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1 * */ (__pyx_v_dst->strides[__pyx_v_dim]) = (__pyx_v_strides[__pyx_v_dim]); /* "View.MemoryView":1077 * dst.shape[dim] = shape[dim] * dst.strides[dim] = strides[dim] * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1 # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_copy_object') */ if ((__pyx_v_suboffsets != 0)) { __pyx_t_5 = (__pyx_v_suboffsets[__pyx_v_dim]); } else { __pyx_t_5 = -1L; } (__pyx_v_dst->suboffsets[__pyx_v_dim]) = __pyx_t_5; } /* "View.MemoryView":1063 * * @cname('__pyx_memoryview_slice_copy') * cdef void slice_copy(memoryview memview, __Pyx_memviewslice *dst): # <<<<<<<<<<<<<< * cdef int dim * cdef (Py_ssize_t*) shape, strides, suboffsets */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "View.MemoryView":1080 * * @cname('__pyx_memoryview_copy_object') * cdef memoryview_copy(memoryview memview): # <<<<<<<<<<<<<< * "Create a new memoryview object" * cdef __Pyx_memviewslice memviewslice */ static PyObject *__pyx_memoryview_copy_object(struct __pyx_memoryview_obj *__pyx_v_memview) { __Pyx_memviewslice __pyx_v_memviewslice; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("memoryview_copy", 0); /* "View.MemoryView":1083 * "Create a new memoryview object" * cdef __Pyx_memviewslice memviewslice * slice_copy(memview, &memviewslice) # <<<<<<<<<<<<<< * return memoryview_copy_from_slice(memview, &memviewslice) * */ __pyx_memoryview_slice_copy(__pyx_v_memview, (&__pyx_v_memviewslice)); /* "View.MemoryView":1084 * cdef __Pyx_memviewslice memviewslice * slice_copy(memview, &memviewslice) * return memoryview_copy_from_slice(memview, &memviewslice) # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_copy_object_from_slice') */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_memoryview_copy_object_from_slice(__pyx_v_memview, (&__pyx_v_memviewslice)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":1080 * * @cname('__pyx_memoryview_copy_object') * cdef memoryview_copy(memoryview memview): # <<<<<<<<<<<<<< * "Create a new memoryview object" * cdef __Pyx_memviewslice memviewslice */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview_copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":1087 * * @cname('__pyx_memoryview_copy_object_from_slice') * cdef memoryview_copy_from_slice(memoryview memview, __Pyx_memviewslice *memviewslice): # <<<<<<<<<<<<<< * """ * Create a new memoryview object from a given memoryview object and slice. */ static PyObject *__pyx_memoryview_copy_object_from_slice(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_memviewslice) { PyObject *(*__pyx_v_to_object_func)(char *); int (*__pyx_v_to_dtype_func)(char *, PyObject *); PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *(*__pyx_t_3)(char *); int (*__pyx_t_4)(char *, PyObject *); PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("memoryview_copy_from_slice", 0); /* "View.MemoryView":1094 * cdef int (*to_dtype_func)(char *, object) except 0 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * to_object_func = (<_memoryviewslice> memview).to_object_func * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func */ __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":1095 * * if isinstance(memview, _memoryviewslice): * to_object_func = (<_memoryviewslice> memview).to_object_func # <<<<<<<<<<<<<< * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func * else: */ __pyx_t_3 = ((struct __pyx_memoryviewslice_obj *)__pyx_v_memview)->to_object_func; __pyx_v_to_object_func = __pyx_t_3; /* "View.MemoryView":1096 * if isinstance(memview, _memoryviewslice): * to_object_func = (<_memoryviewslice> memview).to_object_func * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func # <<<<<<<<<<<<<< * else: * to_object_func = NULL */ __pyx_t_4 = ((struct __pyx_memoryviewslice_obj *)__pyx_v_memview)->to_dtype_func; __pyx_v_to_dtype_func = __pyx_t_4; /* "View.MemoryView":1094 * cdef int (*to_dtype_func)(char *, object) except 0 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * to_object_func = (<_memoryviewslice> memview).to_object_func * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func */ goto __pyx_L3; } /* "View.MemoryView":1098 * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func * else: * to_object_func = NULL # <<<<<<<<<<<<<< * to_dtype_func = NULL * */ /*else*/ { __pyx_v_to_object_func = NULL; /* "View.MemoryView":1099 * else: * to_object_func = NULL * to_dtype_func = NULL # <<<<<<<<<<<<<< * * return memoryview_fromslice(memviewslice[0], memview.view.ndim, */ __pyx_v_to_dtype_func = NULL; } __pyx_L3:; /* "View.MemoryView":1101 * to_dtype_func = NULL * * return memoryview_fromslice(memviewslice[0], memview.view.ndim, # <<<<<<<<<<<<<< * to_object_func, to_dtype_func, * memview.dtype_is_object) */ __Pyx_XDECREF(__pyx_r); /* "View.MemoryView":1103 * return memoryview_fromslice(memviewslice[0], memview.view.ndim, * to_object_func, to_dtype_func, * memview.dtype_is_object) # <<<<<<<<<<<<<< * * */ __pyx_t_5 = __pyx_memoryview_fromslice((__pyx_v_memviewslice[0]), __pyx_v_memview->view.ndim, __pyx_v_to_object_func, __pyx_v_to_dtype_func, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0; /* "View.MemoryView":1087 * * @cname('__pyx_memoryview_copy_object_from_slice') * cdef memoryview_copy_from_slice(memoryview memview, __Pyx_memviewslice *memviewslice): # <<<<<<<<<<<<<< * """ * Create a new memoryview object from a given memoryview object and slice. */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.memoryview_copy_from_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":1109 * * * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: # <<<<<<<<<<<<<< * if arg < 0: * return -arg */ static Py_ssize_t abs_py_ssize_t(Py_ssize_t __pyx_v_arg) { Py_ssize_t __pyx_r; int __pyx_t_1; /* "View.MemoryView":1110 * * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: * if arg < 0: # <<<<<<<<<<<<<< * return -arg * else: */ __pyx_t_1 = ((__pyx_v_arg < 0) != 0); if (__pyx_t_1) { /* "View.MemoryView":1111 * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: * if arg < 0: * return -arg # <<<<<<<<<<<<<< * else: * return arg */ __pyx_r = (-__pyx_v_arg); goto __pyx_L0; /* "View.MemoryView":1110 * * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: * if arg < 0: # <<<<<<<<<<<<<< * return -arg * else: */ } /* "View.MemoryView":1113 * return -arg * else: * return arg # <<<<<<<<<<<<<< * * @cname('__pyx_get_best_slice_order') */ /*else*/ { __pyx_r = __pyx_v_arg; goto __pyx_L0; } /* "View.MemoryView":1109 * * * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: # <<<<<<<<<<<<<< * if arg < 0: * return -arg */ /* function exit code */ __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1116 * * @cname('__pyx_get_best_slice_order') * cdef char get_best_order(__Pyx_memviewslice *mslice, int ndim) nogil: # <<<<<<<<<<<<<< * """ * Figure out the best memory access order for a given slice. */ static char __pyx_get_best_slice_order(__Pyx_memviewslice *__pyx_v_mslice, int __pyx_v_ndim) { int __pyx_v_i; Py_ssize_t __pyx_v_c_stride; Py_ssize_t __pyx_v_f_stride; char __pyx_r; int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; /* "View.MemoryView":1121 * """ * cdef int i * cdef Py_ssize_t c_stride = 0 # <<<<<<<<<<<<<< * cdef Py_ssize_t f_stride = 0 * */ __pyx_v_c_stride = 0; /* "View.MemoryView":1122 * cdef int i * cdef Py_ssize_t c_stride = 0 * cdef Py_ssize_t f_stride = 0 # <<<<<<<<<<<<<< * * for i in range(ndim - 1, -1, -1): */ __pyx_v_f_stride = 0; /* "View.MemoryView":1124 * cdef Py_ssize_t f_stride = 0 * * for i in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<< * if mslice.shape[i] > 1: * c_stride = mslice.strides[i] */ for (__pyx_t_1 = (__pyx_v_ndim - 1); __pyx_t_1 > -1; __pyx_t_1-=1) { __pyx_v_i = __pyx_t_1; /* "View.MemoryView":1125 * * for i in range(ndim - 1, -1, -1): * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< * c_stride = mslice.strides[i] * break */ __pyx_t_2 = (((__pyx_v_mslice->shape[__pyx_v_i]) > 1) != 0); if (__pyx_t_2) { /* "View.MemoryView":1126 * for i in range(ndim - 1, -1, -1): * if mslice.shape[i] > 1: * c_stride = mslice.strides[i] # <<<<<<<<<<<<<< * break * */ __pyx_v_c_stride = (__pyx_v_mslice->strides[__pyx_v_i]); /* "View.MemoryView":1127 * if mslice.shape[i] > 1: * c_stride = mslice.strides[i] * break # <<<<<<<<<<<<<< * * for i in range(ndim): */ goto __pyx_L4_break; /* "View.MemoryView":1125 * * for i in range(ndim - 1, -1, -1): * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< * c_stride = mslice.strides[i] * break */ } } __pyx_L4_break:; /* "View.MemoryView":1129 * break * * for i in range(ndim): # <<<<<<<<<<<<<< * if mslice.shape[i] > 1: * f_stride = mslice.strides[i] */ __pyx_t_1 = __pyx_v_ndim; __pyx_t_3 = __pyx_t_1; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_i = __pyx_t_4; /* "View.MemoryView":1130 * * for i in range(ndim): * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< * f_stride = mslice.strides[i] * break */ __pyx_t_2 = (((__pyx_v_mslice->shape[__pyx_v_i]) > 1) != 0); if (__pyx_t_2) { /* "View.MemoryView":1131 * for i in range(ndim): * if mslice.shape[i] > 1: * f_stride = mslice.strides[i] # <<<<<<<<<<<<<< * break * */ __pyx_v_f_stride = (__pyx_v_mslice->strides[__pyx_v_i]); /* "View.MemoryView":1132 * if mslice.shape[i] > 1: * f_stride = mslice.strides[i] * break # <<<<<<<<<<<<<< * * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): */ goto __pyx_L7_break; /* "View.MemoryView":1130 * * for i in range(ndim): * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< * f_stride = mslice.strides[i] * break */ } } __pyx_L7_break:; /* "View.MemoryView":1134 * break * * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): # <<<<<<<<<<<<<< * return 'C' * else: */ __pyx_t_2 = ((abs_py_ssize_t(__pyx_v_c_stride) <= abs_py_ssize_t(__pyx_v_f_stride)) != 0); if (__pyx_t_2) { /* "View.MemoryView":1135 * * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): * return 'C' # <<<<<<<<<<<<<< * else: * return 'F' */ __pyx_r = 'C'; goto __pyx_L0; /* "View.MemoryView":1134 * break * * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): # <<<<<<<<<<<<<< * return 'C' * else: */ } /* "View.MemoryView":1137 * return 'C' * else: * return 'F' # <<<<<<<<<<<<<< * * @cython.cdivision(True) */ /*else*/ { __pyx_r = 'F'; goto __pyx_L0; } /* "View.MemoryView":1116 * * @cname('__pyx_get_best_slice_order') * cdef char get_best_order(__Pyx_memviewslice *mslice, int ndim) nogil: # <<<<<<<<<<<<<< * """ * Figure out the best memory access order for a given slice. */ /* function exit code */ __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1140 * * @cython.cdivision(True) * cdef void _copy_strided_to_strided(char *src_data, Py_ssize_t *src_strides, # <<<<<<<<<<<<<< * char *dst_data, Py_ssize_t *dst_strides, * Py_ssize_t *src_shape, Py_ssize_t *dst_shape, */ static void _copy_strided_to_strided(char *__pyx_v_src_data, Py_ssize_t *__pyx_v_src_strides, char *__pyx_v_dst_data, Py_ssize_t *__pyx_v_dst_strides, Py_ssize_t *__pyx_v_src_shape, Py_ssize_t *__pyx_v_dst_shape, int __pyx_v_ndim, size_t __pyx_v_itemsize) { CYTHON_UNUSED Py_ssize_t __pyx_v_i; CYTHON_UNUSED Py_ssize_t __pyx_v_src_extent; Py_ssize_t __pyx_v_dst_extent; Py_ssize_t __pyx_v_src_stride; Py_ssize_t __pyx_v_dst_stride; int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; Py_ssize_t __pyx_t_4; Py_ssize_t __pyx_t_5; Py_ssize_t __pyx_t_6; /* "View.MemoryView":1147 * * cdef Py_ssize_t i * cdef Py_ssize_t src_extent = src_shape[0] # <<<<<<<<<<<<<< * cdef Py_ssize_t dst_extent = dst_shape[0] * cdef Py_ssize_t src_stride = src_strides[0] */ __pyx_v_src_extent = (__pyx_v_src_shape[0]); /* "View.MemoryView":1148 * cdef Py_ssize_t i * cdef Py_ssize_t src_extent = src_shape[0] * cdef Py_ssize_t dst_extent = dst_shape[0] # <<<<<<<<<<<<<< * cdef Py_ssize_t src_stride = src_strides[0] * cdef Py_ssize_t dst_stride = dst_strides[0] */ __pyx_v_dst_extent = (__pyx_v_dst_shape[0]); /* "View.MemoryView":1149 * cdef Py_ssize_t src_extent = src_shape[0] * cdef Py_ssize_t dst_extent = dst_shape[0] * cdef Py_ssize_t src_stride = src_strides[0] # <<<<<<<<<<<<<< * cdef Py_ssize_t dst_stride = dst_strides[0] * */ __pyx_v_src_stride = (__pyx_v_src_strides[0]); /* "View.MemoryView":1150 * cdef Py_ssize_t dst_extent = dst_shape[0] * cdef Py_ssize_t src_stride = src_strides[0] * cdef Py_ssize_t dst_stride = dst_strides[0] # <<<<<<<<<<<<<< * * if ndim == 1: */ __pyx_v_dst_stride = (__pyx_v_dst_strides[0]); /* "View.MemoryView":1152 * cdef Py_ssize_t dst_stride = dst_strides[0] * * if ndim == 1: # <<<<<<<<<<<<<< * if (src_stride > 0 and dst_stride > 0 and * src_stride == itemsize == dst_stride): */ __pyx_t_1 = ((__pyx_v_ndim == 1) != 0); if (__pyx_t_1) { /* "View.MemoryView":1153 * * if ndim == 1: * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<< * src_stride == itemsize == dst_stride): * memcpy(dst_data, src_data, itemsize * dst_extent) */ __pyx_t_2 = ((__pyx_v_src_stride > 0) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L5_bool_binop_done; } __pyx_t_2 = ((__pyx_v_dst_stride > 0) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L5_bool_binop_done; } /* "View.MemoryView":1154 * if ndim == 1: * if (src_stride > 0 and dst_stride > 0 and * src_stride == itemsize == dst_stride): # <<<<<<<<<<<<<< * memcpy(dst_data, src_data, itemsize * dst_extent) * else: */ __pyx_t_2 = (((size_t)__pyx_v_src_stride) == __pyx_v_itemsize); if (__pyx_t_2) { __pyx_t_2 = (__pyx_v_itemsize == ((size_t)__pyx_v_dst_stride)); } __pyx_t_3 = (__pyx_t_2 != 0); __pyx_t_1 = __pyx_t_3; __pyx_L5_bool_binop_done:; /* "View.MemoryView":1153 * * if ndim == 1: * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<< * src_stride == itemsize == dst_stride): * memcpy(dst_data, src_data, itemsize * dst_extent) */ if (__pyx_t_1) { /* "View.MemoryView":1155 * if (src_stride > 0 and dst_stride > 0 and * src_stride == itemsize == dst_stride): * memcpy(dst_data, src_data, itemsize * dst_extent) # <<<<<<<<<<<<<< * else: * for i in range(dst_extent): */ (void)(memcpy(__pyx_v_dst_data, __pyx_v_src_data, (__pyx_v_itemsize * __pyx_v_dst_extent))); /* "View.MemoryView":1153 * * if ndim == 1: * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<< * src_stride == itemsize == dst_stride): * memcpy(dst_data, src_data, itemsize * dst_extent) */ goto __pyx_L4; } /* "View.MemoryView":1157 * memcpy(dst_data, src_data, itemsize * dst_extent) * else: * for i in range(dst_extent): # <<<<<<<<<<<<<< * memcpy(dst_data, src_data, itemsize) * src_data += src_stride */ /*else*/ { __pyx_t_4 = __pyx_v_dst_extent; __pyx_t_5 = __pyx_t_4; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6; /* "View.MemoryView":1158 * else: * for i in range(dst_extent): * memcpy(dst_data, src_data, itemsize) # <<<<<<<<<<<<<< * src_data += src_stride * dst_data += dst_stride */ (void)(memcpy(__pyx_v_dst_data, __pyx_v_src_data, __pyx_v_itemsize)); /* "View.MemoryView":1159 * for i in range(dst_extent): * memcpy(dst_data, src_data, itemsize) * src_data += src_stride # <<<<<<<<<<<<<< * dst_data += dst_stride * else: */ __pyx_v_src_data = (__pyx_v_src_data + __pyx_v_src_stride); /* "View.MemoryView":1160 * memcpy(dst_data, src_data, itemsize) * src_data += src_stride * dst_data += dst_stride # <<<<<<<<<<<<<< * else: * for i in range(dst_extent): */ __pyx_v_dst_data = (__pyx_v_dst_data + __pyx_v_dst_stride); } } __pyx_L4:; /* "View.MemoryView":1152 * cdef Py_ssize_t dst_stride = dst_strides[0] * * if ndim == 1: # <<<<<<<<<<<<<< * if (src_stride > 0 and dst_stride > 0 and * src_stride == itemsize == dst_stride): */ goto __pyx_L3; } /* "View.MemoryView":1162 * dst_data += dst_stride * else: * for i in range(dst_extent): # <<<<<<<<<<<<<< * _copy_strided_to_strided(src_data, src_strides + 1, * dst_data, dst_strides + 1, */ /*else*/ { __pyx_t_4 = __pyx_v_dst_extent; __pyx_t_5 = __pyx_t_4; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6; /* "View.MemoryView":1163 * else: * for i in range(dst_extent): * _copy_strided_to_strided(src_data, src_strides + 1, # <<<<<<<<<<<<<< * dst_data, dst_strides + 1, * src_shape + 1, dst_shape + 1, */ _copy_strided_to_strided(__pyx_v_src_data, (__pyx_v_src_strides + 1), __pyx_v_dst_data, (__pyx_v_dst_strides + 1), (__pyx_v_src_shape + 1), (__pyx_v_dst_shape + 1), (__pyx_v_ndim - 1), __pyx_v_itemsize); /* "View.MemoryView":1167 * src_shape + 1, dst_shape + 1, * ndim - 1, itemsize) * src_data += src_stride # <<<<<<<<<<<<<< * dst_data += dst_stride * */ __pyx_v_src_data = (__pyx_v_src_data + __pyx_v_src_stride); /* "View.MemoryView":1168 * ndim - 1, itemsize) * src_data += src_stride * dst_data += dst_stride # <<<<<<<<<<<<<< * * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, */ __pyx_v_dst_data = (__pyx_v_dst_data + __pyx_v_dst_stride); } } __pyx_L3:; /* "View.MemoryView":1140 * * @cython.cdivision(True) * cdef void _copy_strided_to_strided(char *src_data, Py_ssize_t *src_strides, # <<<<<<<<<<<<<< * char *dst_data, Py_ssize_t *dst_strides, * Py_ssize_t *src_shape, Py_ssize_t *dst_shape, */ /* function exit code */ } /* "View.MemoryView":1170 * dst_data += dst_stride * * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< * __Pyx_memviewslice *dst, * int ndim, size_t itemsize) nogil: */ static void copy_strided_to_strided(__Pyx_memviewslice *__pyx_v_src, __Pyx_memviewslice *__pyx_v_dst, int __pyx_v_ndim, size_t __pyx_v_itemsize) { /* "View.MemoryView":1173 * __Pyx_memviewslice *dst, * int ndim, size_t itemsize) nogil: * _copy_strided_to_strided(src.data, src.strides, dst.data, dst.strides, # <<<<<<<<<<<<<< * src.shape, dst.shape, ndim, itemsize) * */ _copy_strided_to_strided(__pyx_v_src->data, __pyx_v_src->strides, __pyx_v_dst->data, __pyx_v_dst->strides, __pyx_v_src->shape, __pyx_v_dst->shape, __pyx_v_ndim, __pyx_v_itemsize); /* "View.MemoryView":1170 * dst_data += dst_stride * * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< * __Pyx_memviewslice *dst, * int ndim, size_t itemsize) nogil: */ /* function exit code */ } /* "View.MemoryView":1177 * * @cname('__pyx_memoryview_slice_get_size') * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) nogil: # <<<<<<<<<<<<<< * "Return the size of the memory occupied by the slice in number of bytes" * cdef int i */ static Py_ssize_t __pyx_memoryview_slice_get_size(__Pyx_memviewslice *__pyx_v_src, int __pyx_v_ndim) { int __pyx_v_i; Py_ssize_t __pyx_v_size; Py_ssize_t __pyx_r; Py_ssize_t __pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; /* "View.MemoryView":1180 * "Return the size of the memory occupied by the slice in number of bytes" * cdef int i * cdef Py_ssize_t size = src.memview.view.itemsize # <<<<<<<<<<<<<< * * for i in range(ndim): */ __pyx_t_1 = __pyx_v_src->memview->view.itemsize; __pyx_v_size = __pyx_t_1; /* "View.MemoryView":1182 * cdef Py_ssize_t size = src.memview.view.itemsize * * for i in range(ndim): # <<<<<<<<<<<<<< * size *= src.shape[i] * */ __pyx_t_2 = __pyx_v_ndim; __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_i = __pyx_t_4; /* "View.MemoryView":1183 * * for i in range(ndim): * size *= src.shape[i] # <<<<<<<<<<<<<< * * return size */ __pyx_v_size = (__pyx_v_size * (__pyx_v_src->shape[__pyx_v_i])); } /* "View.MemoryView":1185 * size *= src.shape[i] * * return size # <<<<<<<<<<<<<< * * @cname('__pyx_fill_contig_strides_array') */ __pyx_r = __pyx_v_size; goto __pyx_L0; /* "View.MemoryView":1177 * * @cname('__pyx_memoryview_slice_get_size') * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) nogil: # <<<<<<<<<<<<<< * "Return the size of the memory occupied by the slice in number of bytes" * cdef int i */ /* function exit code */ __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1188 * * @cname('__pyx_fill_contig_strides_array') * cdef Py_ssize_t fill_contig_strides_array( # <<<<<<<<<<<<<< * Py_ssize_t *shape, Py_ssize_t *strides, Py_ssize_t stride, * int ndim, char order) nogil: */ static Py_ssize_t __pyx_fill_contig_strides_array(Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, Py_ssize_t __pyx_v_stride, int __pyx_v_ndim, char __pyx_v_order) { int __pyx_v_idx; Py_ssize_t __pyx_r; int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; /* "View.MemoryView":1197 * cdef int idx * * if order == 'F': # <<<<<<<<<<<<<< * for idx in range(ndim): * strides[idx] = stride */ __pyx_t_1 = ((__pyx_v_order == 'F') != 0); if (__pyx_t_1) { /* "View.MemoryView":1198 * * if order == 'F': * for idx in range(ndim): # <<<<<<<<<<<<<< * strides[idx] = stride * stride = stride * shape[idx] */ __pyx_t_2 = __pyx_v_ndim; __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_idx = __pyx_t_4; /* "View.MemoryView":1199 * if order == 'F': * for idx in range(ndim): * strides[idx] = stride # <<<<<<<<<<<<<< * stride = stride * shape[idx] * else: */ (__pyx_v_strides[__pyx_v_idx]) = __pyx_v_stride; /* "View.MemoryView":1200 * for idx in range(ndim): * strides[idx] = stride * stride = stride * shape[idx] # <<<<<<<<<<<<<< * else: * for idx in range(ndim - 1, -1, -1): */ __pyx_v_stride = (__pyx_v_stride * (__pyx_v_shape[__pyx_v_idx])); } /* "View.MemoryView":1197 * cdef int idx * * if order == 'F': # <<<<<<<<<<<<<< * for idx in range(ndim): * strides[idx] = stride */ goto __pyx_L3; } /* "View.MemoryView":1202 * stride = stride * shape[idx] * else: * for idx in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<< * strides[idx] = stride * stride = stride * shape[idx] */ /*else*/ { for (__pyx_t_2 = (__pyx_v_ndim - 1); __pyx_t_2 > -1; __pyx_t_2-=1) { __pyx_v_idx = __pyx_t_2; /* "View.MemoryView":1203 * else: * for idx in range(ndim - 1, -1, -1): * strides[idx] = stride # <<<<<<<<<<<<<< * stride = stride * shape[idx] * */ (__pyx_v_strides[__pyx_v_idx]) = __pyx_v_stride; /* "View.MemoryView":1204 * for idx in range(ndim - 1, -1, -1): * strides[idx] = stride * stride = stride * shape[idx] # <<<<<<<<<<<<<< * * return stride */ __pyx_v_stride = (__pyx_v_stride * (__pyx_v_shape[__pyx_v_idx])); } } __pyx_L3:; /* "View.MemoryView":1206 * stride = stride * shape[idx] * * return stride # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_copy_data_to_temp') */ __pyx_r = __pyx_v_stride; goto __pyx_L0; /* "View.MemoryView":1188 * * @cname('__pyx_fill_contig_strides_array') * cdef Py_ssize_t fill_contig_strides_array( # <<<<<<<<<<<<<< * Py_ssize_t *shape, Py_ssize_t *strides, Py_ssize_t stride, * int ndim, char order) nogil: */ /* function exit code */ __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1209 * * @cname('__pyx_memoryview_copy_data_to_temp') * cdef void *copy_data_to_temp(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< * __Pyx_memviewslice *tmpslice, * char order, */ static void *__pyx_memoryview_copy_data_to_temp(__Pyx_memviewslice *__pyx_v_src, __Pyx_memviewslice *__pyx_v_tmpslice, char __pyx_v_order, int __pyx_v_ndim) { int __pyx_v_i; void *__pyx_v_result; size_t __pyx_v_itemsize; size_t __pyx_v_size; void *__pyx_r; Py_ssize_t __pyx_t_1; int __pyx_t_2; int __pyx_t_3; struct __pyx_memoryview_obj *__pyx_t_4; int __pyx_t_5; int __pyx_t_6; /* "View.MemoryView":1220 * cdef void *result * * cdef size_t itemsize = src.memview.view.itemsize # <<<<<<<<<<<<<< * cdef size_t size = slice_get_size(src, ndim) * */ __pyx_t_1 = __pyx_v_src->memview->view.itemsize; __pyx_v_itemsize = __pyx_t_1; /* "View.MemoryView":1221 * * cdef size_t itemsize = src.memview.view.itemsize * cdef size_t size = slice_get_size(src, ndim) # <<<<<<<<<<<<<< * * result = malloc(size) */ __pyx_v_size = __pyx_memoryview_slice_get_size(__pyx_v_src, __pyx_v_ndim); /* "View.MemoryView":1223 * cdef size_t size = slice_get_size(src, ndim) * * result = malloc(size) # <<<<<<<<<<<<<< * if not result: * _err(MemoryError, NULL) */ __pyx_v_result = malloc(__pyx_v_size); /* "View.MemoryView":1224 * * result = malloc(size) * if not result: # <<<<<<<<<<<<<< * _err(MemoryError, NULL) * */ __pyx_t_2 = ((!(__pyx_v_result != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":1225 * result = malloc(size) * if not result: * _err(MemoryError, NULL) # <<<<<<<<<<<<<< * * */ __pyx_t_3 = __pyx_memoryview_err(__pyx_builtin_MemoryError, NULL); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 1225, __pyx_L1_error) /* "View.MemoryView":1224 * * result = malloc(size) * if not result: # <<<<<<<<<<<<<< * _err(MemoryError, NULL) * */ } /* "View.MemoryView":1228 * * * tmpslice.data = result # <<<<<<<<<<<<<< * tmpslice.memview = src.memview * for i in range(ndim): */ __pyx_v_tmpslice->data = ((char *)__pyx_v_result); /* "View.MemoryView":1229 * * tmpslice.data = result * tmpslice.memview = src.memview # <<<<<<<<<<<<<< * for i in range(ndim): * tmpslice.shape[i] = src.shape[i] */ __pyx_t_4 = __pyx_v_src->memview; __pyx_v_tmpslice->memview = __pyx_t_4; /* "View.MemoryView":1230 * tmpslice.data = result * tmpslice.memview = src.memview * for i in range(ndim): # <<<<<<<<<<<<<< * tmpslice.shape[i] = src.shape[i] * tmpslice.suboffsets[i] = -1 */ __pyx_t_3 = __pyx_v_ndim; __pyx_t_5 = __pyx_t_3; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6; /* "View.MemoryView":1231 * tmpslice.memview = src.memview * for i in range(ndim): * tmpslice.shape[i] = src.shape[i] # <<<<<<<<<<<<<< * tmpslice.suboffsets[i] = -1 * */ (__pyx_v_tmpslice->shape[__pyx_v_i]) = (__pyx_v_src->shape[__pyx_v_i]); /* "View.MemoryView":1232 * for i in range(ndim): * tmpslice.shape[i] = src.shape[i] * tmpslice.suboffsets[i] = -1 # <<<<<<<<<<<<<< * * fill_contig_strides_array(&tmpslice.shape[0], &tmpslice.strides[0], itemsize, */ (__pyx_v_tmpslice->suboffsets[__pyx_v_i]) = -1L; } /* "View.MemoryView":1234 * tmpslice.suboffsets[i] = -1 * * fill_contig_strides_array(&tmpslice.shape[0], &tmpslice.strides[0], itemsize, # <<<<<<<<<<<<<< * ndim, order) * */ (void)(__pyx_fill_contig_strides_array((&(__pyx_v_tmpslice->shape[0])), (&(__pyx_v_tmpslice->strides[0])), __pyx_v_itemsize, __pyx_v_ndim, __pyx_v_order)); /* "View.MemoryView":1238 * * * for i in range(ndim): # <<<<<<<<<<<<<< * if tmpslice.shape[i] == 1: * tmpslice.strides[i] = 0 */ __pyx_t_3 = __pyx_v_ndim; __pyx_t_5 = __pyx_t_3; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6; /* "View.MemoryView":1239 * * for i in range(ndim): * if tmpslice.shape[i] == 1: # <<<<<<<<<<<<<< * tmpslice.strides[i] = 0 * */ __pyx_t_2 = (((__pyx_v_tmpslice->shape[__pyx_v_i]) == 1) != 0); if (__pyx_t_2) { /* "View.MemoryView":1240 * for i in range(ndim): * if tmpslice.shape[i] == 1: * tmpslice.strides[i] = 0 # <<<<<<<<<<<<<< * * if slice_is_contig(src[0], order, ndim): */ (__pyx_v_tmpslice->strides[__pyx_v_i]) = 0; /* "View.MemoryView":1239 * * for i in range(ndim): * if tmpslice.shape[i] == 1: # <<<<<<<<<<<<<< * tmpslice.strides[i] = 0 * */ } } /* "View.MemoryView":1242 * tmpslice.strides[i] = 0 * * if slice_is_contig(src[0], order, ndim): # <<<<<<<<<<<<<< * memcpy(result, src.data, size) * else: */ __pyx_t_2 = (__pyx_memviewslice_is_contig((__pyx_v_src[0]), __pyx_v_order, __pyx_v_ndim) != 0); if (__pyx_t_2) { /* "View.MemoryView":1243 * * if slice_is_contig(src[0], order, ndim): * memcpy(result, src.data, size) # <<<<<<<<<<<<<< * else: * copy_strided_to_strided(src, tmpslice, ndim, itemsize) */ (void)(memcpy(__pyx_v_result, __pyx_v_src->data, __pyx_v_size)); /* "View.MemoryView":1242 * tmpslice.strides[i] = 0 * * if slice_is_contig(src[0], order, ndim): # <<<<<<<<<<<<<< * memcpy(result, src.data, size) * else: */ goto __pyx_L9; } /* "View.MemoryView":1245 * memcpy(result, src.data, size) * else: * copy_strided_to_strided(src, tmpslice, ndim, itemsize) # <<<<<<<<<<<<<< * * return result */ /*else*/ { copy_strided_to_strided(__pyx_v_src, __pyx_v_tmpslice, __pyx_v_ndim, __pyx_v_itemsize); } __pyx_L9:; /* "View.MemoryView":1247 * copy_strided_to_strided(src, tmpslice, ndim, itemsize) * * return result # <<<<<<<<<<<<<< * * */ __pyx_r = __pyx_v_result; goto __pyx_L0; /* "View.MemoryView":1209 * * @cname('__pyx_memoryview_copy_data_to_temp') * cdef void *copy_data_to_temp(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< * __Pyx_memviewslice *tmpslice, * char order, */ /* function exit code */ __pyx_L1_error:; { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_AddTraceback("View.MemoryView.copy_data_to_temp", __pyx_clineno, __pyx_lineno, __pyx_filename); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif } __pyx_r = NULL; __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1252 * * @cname('__pyx_memoryview_err_extents') * cdef int _err_extents(int i, Py_ssize_t extent1, # <<<<<<<<<<<<<< * Py_ssize_t extent2) except -1 with gil: * raise ValueError("got differing extents in dimension %d (got %d and %d)" % */ static int __pyx_memoryview_err_extents(int __pyx_v_i, Py_ssize_t __pyx_v_extent1, Py_ssize_t __pyx_v_extent2) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_RefNannySetupContext("_err_extents", 0); /* "View.MemoryView":1255 * Py_ssize_t extent2) except -1 with gil: * raise ValueError("got differing extents in dimension %d (got %d and %d)" % * (i, extent1, extent2)) # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_err_dim') */ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_extent1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_extent2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 1255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; /* "View.MemoryView":1254 * cdef int _err_extents(int i, Py_ssize_t extent1, * Py_ssize_t extent2) except -1 with gil: * raise ValueError("got differing extents in dimension %d (got %d and %d)" % # <<<<<<<<<<<<<< * (i, extent1, extent2)) * */ __pyx_t_3 = __Pyx_PyString_Format(__pyx_kp_s_got_differing_extents_in_dimensi, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 1254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(2, 1254, __pyx_L1_error) /* "View.MemoryView":1252 * * @cname('__pyx_memoryview_err_extents') * cdef int _err_extents(int i, Py_ssize_t extent1, # <<<<<<<<<<<<<< * Py_ssize_t extent2) except -1 with gil: * raise ValueError("got differing extents in dimension %d (got %d and %d)" % */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("View.MemoryView._err_extents", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __Pyx_RefNannyFinishContext(); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif return __pyx_r; } /* "View.MemoryView":1258 * * @cname('__pyx_memoryview_err_dim') * cdef int _err_dim(object error, char *msg, int dim) except -1 with gil: # <<<<<<<<<<<<<< * raise error(msg.decode('ascii') % dim) * */ static int __pyx_memoryview_err_dim(PyObject *__pyx_v_error, char *__pyx_v_msg, int __pyx_v_dim) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_RefNannySetupContext("_err_dim", 0); __Pyx_INCREF(__pyx_v_error); /* "View.MemoryView":1259 * @cname('__pyx_memoryview_err_dim') * cdef int _err_dim(object error, char *msg, int dim) except -1 with gil: * raise error(msg.decode('ascii') % dim) # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_err') */ __pyx_t_2 = __Pyx_decode_c_string(__pyx_v_msg, 0, strlen(__pyx_v_msg), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_dim); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyUnicode_Format(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 1259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_INCREF(__pyx_v_error); __pyx_t_3 = __pyx_v_error; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(2, 1259, __pyx_L1_error) /* "View.MemoryView":1258 * * @cname('__pyx_memoryview_err_dim') * cdef int _err_dim(object error, char *msg, int dim) except -1 with gil: # <<<<<<<<<<<<<< * raise error(msg.decode('ascii') % dim) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("View.MemoryView._err_dim", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __Pyx_XDECREF(__pyx_v_error); __Pyx_RefNannyFinishContext(); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif return __pyx_r; } /* "View.MemoryView":1262 * * @cname('__pyx_memoryview_err') * cdef int _err(object error, char *msg) except -1 with gil: # <<<<<<<<<<<<<< * if msg != NULL: * raise error(msg.decode('ascii')) */ static int __pyx_memoryview_err(PyObject *__pyx_v_error, char *__pyx_v_msg) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_RefNannySetupContext("_err", 0); __Pyx_INCREF(__pyx_v_error); /* "View.MemoryView":1263 * @cname('__pyx_memoryview_err') * cdef int _err(object error, char *msg) except -1 with gil: * if msg != NULL: # <<<<<<<<<<<<<< * raise error(msg.decode('ascii')) * else: */ __pyx_t_1 = ((__pyx_v_msg != NULL) != 0); if (unlikely(__pyx_t_1)) { /* "View.MemoryView":1264 * cdef int _err(object error, char *msg) except -1 with gil: * if msg != NULL: * raise error(msg.decode('ascii')) # <<<<<<<<<<<<<< * else: * raise error */ __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_msg, 0, strlen(__pyx_v_msg), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_error); __pyx_t_4 = __pyx_v_error; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(2, 1264, __pyx_L1_error) /* "View.MemoryView":1263 * @cname('__pyx_memoryview_err') * cdef int _err(object error, char *msg) except -1 with gil: * if msg != NULL: # <<<<<<<<<<<<<< * raise error(msg.decode('ascii')) * else: */ } /* "View.MemoryView":1266 * raise error(msg.decode('ascii')) * else: * raise error # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_copy_contents') */ /*else*/ { __Pyx_Raise(__pyx_v_error, 0, 0, 0); __PYX_ERR(2, 1266, __pyx_L1_error) } /* "View.MemoryView":1262 * * @cname('__pyx_memoryview_err') * cdef int _err(object error, char *msg) except -1 with gil: # <<<<<<<<<<<<<< * if msg != NULL: * raise error(msg.decode('ascii')) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView._err", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __Pyx_XDECREF(__pyx_v_error); __Pyx_RefNannyFinishContext(); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif return __pyx_r; } /* "View.MemoryView":1269 * * @cname('__pyx_memoryview_copy_contents') * cdef int memoryview_copy_contents(__Pyx_memviewslice src, # <<<<<<<<<<<<<< * __Pyx_memviewslice dst, * int src_ndim, int dst_ndim, */ static int __pyx_memoryview_copy_contents(__Pyx_memviewslice __pyx_v_src, __Pyx_memviewslice __pyx_v_dst, int __pyx_v_src_ndim, int __pyx_v_dst_ndim, int __pyx_v_dtype_is_object) { void *__pyx_v_tmpdata; size_t __pyx_v_itemsize; int __pyx_v_i; char __pyx_v_order; int __pyx_v_broadcasting; int __pyx_v_direct_copy; __Pyx_memviewslice __pyx_v_tmp; int __pyx_v_ndim; int __pyx_r; Py_ssize_t __pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; int __pyx_t_5; int __pyx_t_6; void *__pyx_t_7; int __pyx_t_8; /* "View.MemoryView":1277 * Check for overlapping memory and verify the shapes. * """ * cdef void *tmpdata = NULL # <<<<<<<<<<<<<< * cdef size_t itemsize = src.memview.view.itemsize * cdef int i */ __pyx_v_tmpdata = NULL; /* "View.MemoryView":1278 * """ * cdef void *tmpdata = NULL * cdef size_t itemsize = src.memview.view.itemsize # <<<<<<<<<<<<<< * cdef int i * cdef char order = get_best_order(&src, src_ndim) */ __pyx_t_1 = __pyx_v_src.memview->view.itemsize; __pyx_v_itemsize = __pyx_t_1; /* "View.MemoryView":1280 * cdef size_t itemsize = src.memview.view.itemsize * cdef int i * cdef char order = get_best_order(&src, src_ndim) # <<<<<<<<<<<<<< * cdef bint broadcasting = False * cdef bint direct_copy = False */ __pyx_v_order = __pyx_get_best_slice_order((&__pyx_v_src), __pyx_v_src_ndim); /* "View.MemoryView":1281 * cdef int i * cdef char order = get_best_order(&src, src_ndim) * cdef bint broadcasting = False # <<<<<<<<<<<<<< * cdef bint direct_copy = False * cdef __Pyx_memviewslice tmp */ __pyx_v_broadcasting = 0; /* "View.MemoryView":1282 * cdef char order = get_best_order(&src, src_ndim) * cdef bint broadcasting = False * cdef bint direct_copy = False # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice tmp * */ __pyx_v_direct_copy = 0; /* "View.MemoryView":1285 * cdef __Pyx_memviewslice tmp * * if src_ndim < dst_ndim: # <<<<<<<<<<<<<< * broadcast_leading(&src, src_ndim, dst_ndim) * elif dst_ndim < src_ndim: */ __pyx_t_2 = ((__pyx_v_src_ndim < __pyx_v_dst_ndim) != 0); if (__pyx_t_2) { /* "View.MemoryView":1286 * * if src_ndim < dst_ndim: * broadcast_leading(&src, src_ndim, dst_ndim) # <<<<<<<<<<<<<< * elif dst_ndim < src_ndim: * broadcast_leading(&dst, dst_ndim, src_ndim) */ __pyx_memoryview_broadcast_leading((&__pyx_v_src), __pyx_v_src_ndim, __pyx_v_dst_ndim); /* "View.MemoryView":1285 * cdef __Pyx_memviewslice tmp * * if src_ndim < dst_ndim: # <<<<<<<<<<<<<< * broadcast_leading(&src, src_ndim, dst_ndim) * elif dst_ndim < src_ndim: */ goto __pyx_L3; } /* "View.MemoryView":1287 * if src_ndim < dst_ndim: * broadcast_leading(&src, src_ndim, dst_ndim) * elif dst_ndim < src_ndim: # <<<<<<<<<<<<<< * broadcast_leading(&dst, dst_ndim, src_ndim) * */ __pyx_t_2 = ((__pyx_v_dst_ndim < __pyx_v_src_ndim) != 0); if (__pyx_t_2) { /* "View.MemoryView":1288 * broadcast_leading(&src, src_ndim, dst_ndim) * elif dst_ndim < src_ndim: * broadcast_leading(&dst, dst_ndim, src_ndim) # <<<<<<<<<<<<<< * * cdef int ndim = max(src_ndim, dst_ndim) */ __pyx_memoryview_broadcast_leading((&__pyx_v_dst), __pyx_v_dst_ndim, __pyx_v_src_ndim); /* "View.MemoryView":1287 * if src_ndim < dst_ndim: * broadcast_leading(&src, src_ndim, dst_ndim) * elif dst_ndim < src_ndim: # <<<<<<<<<<<<<< * broadcast_leading(&dst, dst_ndim, src_ndim) * */ } __pyx_L3:; /* "View.MemoryView":1290 * broadcast_leading(&dst, dst_ndim, src_ndim) * * cdef int ndim = max(src_ndim, dst_ndim) # <<<<<<<<<<<<<< * * for i in range(ndim): */ __pyx_t_3 = __pyx_v_dst_ndim; __pyx_t_4 = __pyx_v_src_ndim; if (((__pyx_t_3 > __pyx_t_4) != 0)) { __pyx_t_5 = __pyx_t_3; } else { __pyx_t_5 = __pyx_t_4; } __pyx_v_ndim = __pyx_t_5; /* "View.MemoryView":1292 * cdef int ndim = max(src_ndim, dst_ndim) * * for i in range(ndim): # <<<<<<<<<<<<<< * if src.shape[i] != dst.shape[i]: * if src.shape[i] == 1: */ __pyx_t_5 = __pyx_v_ndim; __pyx_t_3 = __pyx_t_5; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_i = __pyx_t_4; /* "View.MemoryView":1293 * * for i in range(ndim): * if src.shape[i] != dst.shape[i]: # <<<<<<<<<<<<<< * if src.shape[i] == 1: * broadcasting = True */ __pyx_t_2 = (((__pyx_v_src.shape[__pyx_v_i]) != (__pyx_v_dst.shape[__pyx_v_i])) != 0); if (__pyx_t_2) { /* "View.MemoryView":1294 * for i in range(ndim): * if src.shape[i] != dst.shape[i]: * if src.shape[i] == 1: # <<<<<<<<<<<<<< * broadcasting = True * src.strides[i] = 0 */ __pyx_t_2 = (((__pyx_v_src.shape[__pyx_v_i]) == 1) != 0); if (__pyx_t_2) { /* "View.MemoryView":1295 * if src.shape[i] != dst.shape[i]: * if src.shape[i] == 1: * broadcasting = True # <<<<<<<<<<<<<< * src.strides[i] = 0 * else: */ __pyx_v_broadcasting = 1; /* "View.MemoryView":1296 * if src.shape[i] == 1: * broadcasting = True * src.strides[i] = 0 # <<<<<<<<<<<<<< * else: * _err_extents(i, dst.shape[i], src.shape[i]) */ (__pyx_v_src.strides[__pyx_v_i]) = 0; /* "View.MemoryView":1294 * for i in range(ndim): * if src.shape[i] != dst.shape[i]: * if src.shape[i] == 1: # <<<<<<<<<<<<<< * broadcasting = True * src.strides[i] = 0 */ goto __pyx_L7; } /* "View.MemoryView":1298 * src.strides[i] = 0 * else: * _err_extents(i, dst.shape[i], src.shape[i]) # <<<<<<<<<<<<<< * * if src.suboffsets[i] >= 0: */ /*else*/ { __pyx_t_6 = __pyx_memoryview_err_extents(__pyx_v_i, (__pyx_v_dst.shape[__pyx_v_i]), (__pyx_v_src.shape[__pyx_v_i])); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(2, 1298, __pyx_L1_error) } __pyx_L7:; /* "View.MemoryView":1293 * * for i in range(ndim): * if src.shape[i] != dst.shape[i]: # <<<<<<<<<<<<<< * if src.shape[i] == 1: * broadcasting = True */ } /* "View.MemoryView":1300 * _err_extents(i, dst.shape[i], src.shape[i]) * * if src.suboffsets[i] >= 0: # <<<<<<<<<<<<<< * _err_dim(ValueError, "Dimension %d is not direct", i) * */ __pyx_t_2 = (((__pyx_v_src.suboffsets[__pyx_v_i]) >= 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":1301 * * if src.suboffsets[i] >= 0: * _err_dim(ValueError, "Dimension %d is not direct", i) # <<<<<<<<<<<<<< * * if slices_overlap(&src, &dst, ndim, itemsize): */ __pyx_t_6 = __pyx_memoryview_err_dim(__pyx_builtin_ValueError, ((char *)"Dimension %d is not direct"), __pyx_v_i); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(2, 1301, __pyx_L1_error) /* "View.MemoryView":1300 * _err_extents(i, dst.shape[i], src.shape[i]) * * if src.suboffsets[i] >= 0: # <<<<<<<<<<<<<< * _err_dim(ValueError, "Dimension %d is not direct", i) * */ } } /* "View.MemoryView":1303 * _err_dim(ValueError, "Dimension %d is not direct", i) * * if slices_overlap(&src, &dst, ndim, itemsize): # <<<<<<<<<<<<<< * * if not slice_is_contig(src, order, ndim): */ __pyx_t_2 = (__pyx_slices_overlap((&__pyx_v_src), (&__pyx_v_dst), __pyx_v_ndim, __pyx_v_itemsize) != 0); if (__pyx_t_2) { /* "View.MemoryView":1305 * if slices_overlap(&src, &dst, ndim, itemsize): * * if not slice_is_contig(src, order, ndim): # <<<<<<<<<<<<<< * order = get_best_order(&dst, ndim) * */ __pyx_t_2 = ((!(__pyx_memviewslice_is_contig(__pyx_v_src, __pyx_v_order, __pyx_v_ndim) != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":1306 * * if not slice_is_contig(src, order, ndim): * order = get_best_order(&dst, ndim) # <<<<<<<<<<<<<< * * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim) */ __pyx_v_order = __pyx_get_best_slice_order((&__pyx_v_dst), __pyx_v_ndim); /* "View.MemoryView":1305 * if slices_overlap(&src, &dst, ndim, itemsize): * * if not slice_is_contig(src, order, ndim): # <<<<<<<<<<<<<< * order = get_best_order(&dst, ndim) * */ } /* "View.MemoryView":1308 * order = get_best_order(&dst, ndim) * * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim) # <<<<<<<<<<<<<< * src = tmp * */ __pyx_t_7 = __pyx_memoryview_copy_data_to_temp((&__pyx_v_src), (&__pyx_v_tmp), __pyx_v_order, __pyx_v_ndim); if (unlikely(__pyx_t_7 == ((void *)NULL))) __PYX_ERR(2, 1308, __pyx_L1_error) __pyx_v_tmpdata = __pyx_t_7; /* "View.MemoryView":1309 * * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim) * src = tmp # <<<<<<<<<<<<<< * * if not broadcasting: */ __pyx_v_src = __pyx_v_tmp; /* "View.MemoryView":1303 * _err_dim(ValueError, "Dimension %d is not direct", i) * * if slices_overlap(&src, &dst, ndim, itemsize): # <<<<<<<<<<<<<< * * if not slice_is_contig(src, order, ndim): */ } /* "View.MemoryView":1311 * src = tmp * * if not broadcasting: # <<<<<<<<<<<<<< * * */ __pyx_t_2 = ((!(__pyx_v_broadcasting != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":1314 * * * if slice_is_contig(src, 'C', ndim): # <<<<<<<<<<<<<< * direct_copy = slice_is_contig(dst, 'C', ndim) * elif slice_is_contig(src, 'F', ndim): */ __pyx_t_2 = (__pyx_memviewslice_is_contig(__pyx_v_src, 'C', __pyx_v_ndim) != 0); if (__pyx_t_2) { /* "View.MemoryView":1315 * * if slice_is_contig(src, 'C', ndim): * direct_copy = slice_is_contig(dst, 'C', ndim) # <<<<<<<<<<<<<< * elif slice_is_contig(src, 'F', ndim): * direct_copy = slice_is_contig(dst, 'F', ndim) */ __pyx_v_direct_copy = __pyx_memviewslice_is_contig(__pyx_v_dst, 'C', __pyx_v_ndim); /* "View.MemoryView":1314 * * * if slice_is_contig(src, 'C', ndim): # <<<<<<<<<<<<<< * direct_copy = slice_is_contig(dst, 'C', ndim) * elif slice_is_contig(src, 'F', ndim): */ goto __pyx_L12; } /* "View.MemoryView":1316 * if slice_is_contig(src, 'C', ndim): * direct_copy = slice_is_contig(dst, 'C', ndim) * elif slice_is_contig(src, 'F', ndim): # <<<<<<<<<<<<<< * direct_copy = slice_is_contig(dst, 'F', ndim) * */ __pyx_t_2 = (__pyx_memviewslice_is_contig(__pyx_v_src, 'F', __pyx_v_ndim) != 0); if (__pyx_t_2) { /* "View.MemoryView":1317 * direct_copy = slice_is_contig(dst, 'C', ndim) * elif slice_is_contig(src, 'F', ndim): * direct_copy = slice_is_contig(dst, 'F', ndim) # <<<<<<<<<<<<<< * * if direct_copy: */ __pyx_v_direct_copy = __pyx_memviewslice_is_contig(__pyx_v_dst, 'F', __pyx_v_ndim); /* "View.MemoryView":1316 * if slice_is_contig(src, 'C', ndim): * direct_copy = slice_is_contig(dst, 'C', ndim) * elif slice_is_contig(src, 'F', ndim): # <<<<<<<<<<<<<< * direct_copy = slice_is_contig(dst, 'F', ndim) * */ } __pyx_L12:; /* "View.MemoryView":1319 * direct_copy = slice_is_contig(dst, 'F', ndim) * * if direct_copy: # <<<<<<<<<<<<<< * * refcount_copying(&dst, dtype_is_object, ndim, False) */ __pyx_t_2 = (__pyx_v_direct_copy != 0); if (__pyx_t_2) { /* "View.MemoryView":1321 * if direct_copy: * * refcount_copying(&dst, dtype_is_object, ndim, False) # <<<<<<<<<<<<<< * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) * refcount_copying(&dst, dtype_is_object, ndim, True) */ __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 0); /* "View.MemoryView":1322 * * refcount_copying(&dst, dtype_is_object, ndim, False) * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) # <<<<<<<<<<<<<< * refcount_copying(&dst, dtype_is_object, ndim, True) * free(tmpdata) */ (void)(memcpy(__pyx_v_dst.data, __pyx_v_src.data, __pyx_memoryview_slice_get_size((&__pyx_v_src), __pyx_v_ndim))); /* "View.MemoryView":1323 * refcount_copying(&dst, dtype_is_object, ndim, False) * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) * refcount_copying(&dst, dtype_is_object, ndim, True) # <<<<<<<<<<<<<< * free(tmpdata) * return 0 */ __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 1); /* "View.MemoryView":1324 * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) * refcount_copying(&dst, dtype_is_object, ndim, True) * free(tmpdata) # <<<<<<<<<<<<<< * return 0 * */ free(__pyx_v_tmpdata); /* "View.MemoryView":1325 * refcount_copying(&dst, dtype_is_object, ndim, True) * free(tmpdata) * return 0 # <<<<<<<<<<<<<< * * if order == 'F' == get_best_order(&dst, ndim): */ __pyx_r = 0; goto __pyx_L0; /* "View.MemoryView":1319 * direct_copy = slice_is_contig(dst, 'F', ndim) * * if direct_copy: # <<<<<<<<<<<<<< * * refcount_copying(&dst, dtype_is_object, ndim, False) */ } /* "View.MemoryView":1311 * src = tmp * * if not broadcasting: # <<<<<<<<<<<<<< * * */ } /* "View.MemoryView":1327 * return 0 * * if order == 'F' == get_best_order(&dst, ndim): # <<<<<<<<<<<<<< * * */ __pyx_t_2 = (__pyx_v_order == 'F'); if (__pyx_t_2) { __pyx_t_2 = ('F' == __pyx_get_best_slice_order((&__pyx_v_dst), __pyx_v_ndim)); } __pyx_t_8 = (__pyx_t_2 != 0); if (__pyx_t_8) { /* "View.MemoryView":1330 * * * transpose_memslice(&src) # <<<<<<<<<<<<<< * transpose_memslice(&dst) * */ __pyx_t_5 = __pyx_memslice_transpose((&__pyx_v_src)); if (unlikely(__pyx_t_5 == ((int)0))) __PYX_ERR(2, 1330, __pyx_L1_error) /* "View.MemoryView":1331 * * transpose_memslice(&src) * transpose_memslice(&dst) # <<<<<<<<<<<<<< * * refcount_copying(&dst, dtype_is_object, ndim, False) */ __pyx_t_5 = __pyx_memslice_transpose((&__pyx_v_dst)); if (unlikely(__pyx_t_5 == ((int)0))) __PYX_ERR(2, 1331, __pyx_L1_error) /* "View.MemoryView":1327 * return 0 * * if order == 'F' == get_best_order(&dst, ndim): # <<<<<<<<<<<<<< * * */ } /* "View.MemoryView":1333 * transpose_memslice(&dst) * * refcount_copying(&dst, dtype_is_object, ndim, False) # <<<<<<<<<<<<<< * copy_strided_to_strided(&src, &dst, ndim, itemsize) * refcount_copying(&dst, dtype_is_object, ndim, True) */ __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 0); /* "View.MemoryView":1334 * * refcount_copying(&dst, dtype_is_object, ndim, False) * copy_strided_to_strided(&src, &dst, ndim, itemsize) # <<<<<<<<<<<<<< * refcount_copying(&dst, dtype_is_object, ndim, True) * */ copy_strided_to_strided((&__pyx_v_src), (&__pyx_v_dst), __pyx_v_ndim, __pyx_v_itemsize); /* "View.MemoryView":1335 * refcount_copying(&dst, dtype_is_object, ndim, False) * copy_strided_to_strided(&src, &dst, ndim, itemsize) * refcount_copying(&dst, dtype_is_object, ndim, True) # <<<<<<<<<<<<<< * * free(tmpdata) */ __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 1); /* "View.MemoryView":1337 * refcount_copying(&dst, dtype_is_object, ndim, True) * * free(tmpdata) # <<<<<<<<<<<<<< * return 0 * */ free(__pyx_v_tmpdata); /* "View.MemoryView":1338 * * free(tmpdata) * return 0 # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_broadcast_leading') */ __pyx_r = 0; goto __pyx_L0; /* "View.MemoryView":1269 * * @cname('__pyx_memoryview_copy_contents') * cdef int memoryview_copy_contents(__Pyx_memviewslice src, # <<<<<<<<<<<<<< * __Pyx_memviewslice dst, * int src_ndim, int dst_ndim, */ /* function exit code */ __pyx_L1_error:; { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_AddTraceback("View.MemoryView.memoryview_copy_contents", __pyx_clineno, __pyx_lineno, __pyx_filename); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif } __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1341 * * @cname('__pyx_memoryview_broadcast_leading') * cdef void broadcast_leading(__Pyx_memviewslice *mslice, # <<<<<<<<<<<<<< * int ndim, * int ndim_other) nogil: */ static void __pyx_memoryview_broadcast_leading(__Pyx_memviewslice *__pyx_v_mslice, int __pyx_v_ndim, int __pyx_v_ndim_other) { int __pyx_v_i; int __pyx_v_offset; int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; /* "View.MemoryView":1345 * int ndim_other) nogil: * cdef int i * cdef int offset = ndim_other - ndim # <<<<<<<<<<<<<< * * for i in range(ndim - 1, -1, -1): */ __pyx_v_offset = (__pyx_v_ndim_other - __pyx_v_ndim); /* "View.MemoryView":1347 * cdef int offset = ndim_other - ndim * * for i in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<< * mslice.shape[i + offset] = mslice.shape[i] * mslice.strides[i + offset] = mslice.strides[i] */ for (__pyx_t_1 = (__pyx_v_ndim - 1); __pyx_t_1 > -1; __pyx_t_1-=1) { __pyx_v_i = __pyx_t_1; /* "View.MemoryView":1348 * * for i in range(ndim - 1, -1, -1): * mslice.shape[i + offset] = mslice.shape[i] # <<<<<<<<<<<<<< * mslice.strides[i + offset] = mslice.strides[i] * mslice.suboffsets[i + offset] = mslice.suboffsets[i] */ (__pyx_v_mslice->shape[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->shape[__pyx_v_i]); /* "View.MemoryView":1349 * for i in range(ndim - 1, -1, -1): * mslice.shape[i + offset] = mslice.shape[i] * mslice.strides[i + offset] = mslice.strides[i] # <<<<<<<<<<<<<< * mslice.suboffsets[i + offset] = mslice.suboffsets[i] * */ (__pyx_v_mslice->strides[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->strides[__pyx_v_i]); /* "View.MemoryView":1350 * mslice.shape[i + offset] = mslice.shape[i] * mslice.strides[i + offset] = mslice.strides[i] * mslice.suboffsets[i + offset] = mslice.suboffsets[i] # <<<<<<<<<<<<<< * * for i in range(offset): */ (__pyx_v_mslice->suboffsets[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->suboffsets[__pyx_v_i]); } /* "View.MemoryView":1352 * mslice.suboffsets[i + offset] = mslice.suboffsets[i] * * for i in range(offset): # <<<<<<<<<<<<<< * mslice.shape[i] = 1 * mslice.strides[i] = mslice.strides[0] */ __pyx_t_1 = __pyx_v_offset; __pyx_t_2 = __pyx_t_1; for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_i = __pyx_t_3; /* "View.MemoryView":1353 * * for i in range(offset): * mslice.shape[i] = 1 # <<<<<<<<<<<<<< * mslice.strides[i] = mslice.strides[0] * mslice.suboffsets[i] = -1 */ (__pyx_v_mslice->shape[__pyx_v_i]) = 1; /* "View.MemoryView":1354 * for i in range(offset): * mslice.shape[i] = 1 * mslice.strides[i] = mslice.strides[0] # <<<<<<<<<<<<<< * mslice.suboffsets[i] = -1 * */ (__pyx_v_mslice->strides[__pyx_v_i]) = (__pyx_v_mslice->strides[0]); /* "View.MemoryView":1355 * mslice.shape[i] = 1 * mslice.strides[i] = mslice.strides[0] * mslice.suboffsets[i] = -1 # <<<<<<<<<<<<<< * * */ (__pyx_v_mslice->suboffsets[__pyx_v_i]) = -1L; } /* "View.MemoryView":1341 * * @cname('__pyx_memoryview_broadcast_leading') * cdef void broadcast_leading(__Pyx_memviewslice *mslice, # <<<<<<<<<<<<<< * int ndim, * int ndim_other) nogil: */ /* function exit code */ } /* "View.MemoryView":1363 * * @cname('__pyx_memoryview_refcount_copying') * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, # <<<<<<<<<<<<<< * int ndim, bint inc) nogil: * */ static void __pyx_memoryview_refcount_copying(__Pyx_memviewslice *__pyx_v_dst, int __pyx_v_dtype_is_object, int __pyx_v_ndim, int __pyx_v_inc) { int __pyx_t_1; /* "View.MemoryView":1367 * * * if dtype_is_object: # <<<<<<<<<<<<<< * refcount_objects_in_slice_with_gil(dst.data, dst.shape, * dst.strides, ndim, inc) */ __pyx_t_1 = (__pyx_v_dtype_is_object != 0); if (__pyx_t_1) { /* "View.MemoryView":1368 * * if dtype_is_object: * refcount_objects_in_slice_with_gil(dst.data, dst.shape, # <<<<<<<<<<<<<< * dst.strides, ndim, inc) * */ __pyx_memoryview_refcount_objects_in_slice_with_gil(__pyx_v_dst->data, __pyx_v_dst->shape, __pyx_v_dst->strides, __pyx_v_ndim, __pyx_v_inc); /* "View.MemoryView":1367 * * * if dtype_is_object: # <<<<<<<<<<<<<< * refcount_objects_in_slice_with_gil(dst.data, dst.shape, * dst.strides, ndim, inc) */ } /* "View.MemoryView":1363 * * @cname('__pyx_memoryview_refcount_copying') * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, # <<<<<<<<<<<<<< * int ndim, bint inc) nogil: * */ /* function exit code */ } /* "View.MemoryView":1372 * * @cname('__pyx_memoryview_refcount_objects_in_slice_with_gil') * cdef void refcount_objects_in_slice_with_gil(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, * bint inc) with gil: */ static void __pyx_memoryview_refcount_objects_in_slice_with_gil(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, int __pyx_v_inc) { __Pyx_RefNannyDeclarations #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_RefNannySetupContext("refcount_objects_in_slice_with_gil", 0); /* "View.MemoryView":1375 * Py_ssize_t *strides, int ndim, * bint inc) with gil: * refcount_objects_in_slice(data, shape, strides, ndim, inc) # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_refcount_objects_in_slice') */ __pyx_memoryview_refcount_objects_in_slice(__pyx_v_data, __pyx_v_shape, __pyx_v_strides, __pyx_v_ndim, __pyx_v_inc); /* "View.MemoryView":1372 * * @cname('__pyx_memoryview_refcount_objects_in_slice_with_gil') * cdef void refcount_objects_in_slice_with_gil(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, * bint inc) with gil: */ /* function exit code */ __Pyx_RefNannyFinishContext(); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif } /* "View.MemoryView":1378 * * @cname('__pyx_memoryview_refcount_objects_in_slice') * cdef void refcount_objects_in_slice(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, bint inc): * cdef Py_ssize_t i */ static void __pyx_memoryview_refcount_objects_in_slice(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, int __pyx_v_inc) { CYTHON_UNUSED Py_ssize_t __pyx_v_i; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; Py_ssize_t __pyx_t_2; Py_ssize_t __pyx_t_3; int __pyx_t_4; __Pyx_RefNannySetupContext("refcount_objects_in_slice", 0); /* "View.MemoryView":1382 * cdef Py_ssize_t i * * for i in range(shape[0]): # <<<<<<<<<<<<<< * if ndim == 1: * if inc: */ __pyx_t_1 = (__pyx_v_shape[0]); __pyx_t_2 = __pyx_t_1; for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_i = __pyx_t_3; /* "View.MemoryView":1383 * * for i in range(shape[0]): * if ndim == 1: # <<<<<<<<<<<<<< * if inc: * Py_INCREF(( data)[0]) */ __pyx_t_4 = ((__pyx_v_ndim == 1) != 0); if (__pyx_t_4) { /* "View.MemoryView":1384 * for i in range(shape[0]): * if ndim == 1: * if inc: # <<<<<<<<<<<<<< * Py_INCREF(( data)[0]) * else: */ __pyx_t_4 = (__pyx_v_inc != 0); if (__pyx_t_4) { /* "View.MemoryView":1385 * if ndim == 1: * if inc: * Py_INCREF(( data)[0]) # <<<<<<<<<<<<<< * else: * Py_DECREF(( data)[0]) */ Py_INCREF((((PyObject **)__pyx_v_data)[0])); /* "View.MemoryView":1384 * for i in range(shape[0]): * if ndim == 1: * if inc: # <<<<<<<<<<<<<< * Py_INCREF(( data)[0]) * else: */ goto __pyx_L6; } /* "View.MemoryView":1387 * Py_INCREF(( data)[0]) * else: * Py_DECREF(( data)[0]) # <<<<<<<<<<<<<< * else: * refcount_objects_in_slice(data, shape + 1, strides + 1, */ /*else*/ { Py_DECREF((((PyObject **)__pyx_v_data)[0])); } __pyx_L6:; /* "View.MemoryView":1383 * * for i in range(shape[0]): * if ndim == 1: # <<<<<<<<<<<<<< * if inc: * Py_INCREF(( data)[0]) */ goto __pyx_L5; } /* "View.MemoryView":1389 * Py_DECREF(( data)[0]) * else: * refcount_objects_in_slice(data, shape + 1, strides + 1, # <<<<<<<<<<<<<< * ndim - 1, inc) * */ /*else*/ { /* "View.MemoryView":1390 * else: * refcount_objects_in_slice(data, shape + 1, strides + 1, * ndim - 1, inc) # <<<<<<<<<<<<<< * * data += strides[0] */ __pyx_memoryview_refcount_objects_in_slice(__pyx_v_data, (__pyx_v_shape + 1), (__pyx_v_strides + 1), (__pyx_v_ndim - 1), __pyx_v_inc); } __pyx_L5:; /* "View.MemoryView":1392 * ndim - 1, inc) * * data += strides[0] # <<<<<<<<<<<<<< * * */ __pyx_v_data = (__pyx_v_data + (__pyx_v_strides[0])); } /* "View.MemoryView":1378 * * @cname('__pyx_memoryview_refcount_objects_in_slice') * cdef void refcount_objects_in_slice(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, bint inc): * cdef Py_ssize_t i */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "View.MemoryView":1398 * * @cname('__pyx_memoryview_slice_assign_scalar') * cdef void slice_assign_scalar(__Pyx_memviewslice *dst, int ndim, # <<<<<<<<<<<<<< * size_t itemsize, void *item, * bint dtype_is_object) nogil: */ static void __pyx_memoryview_slice_assign_scalar(__Pyx_memviewslice *__pyx_v_dst, int __pyx_v_ndim, size_t __pyx_v_itemsize, void *__pyx_v_item, int __pyx_v_dtype_is_object) { /* "View.MemoryView":1401 * size_t itemsize, void *item, * bint dtype_is_object) nogil: * refcount_copying(dst, dtype_is_object, ndim, False) # <<<<<<<<<<<<<< * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, * itemsize, item) */ __pyx_memoryview_refcount_copying(__pyx_v_dst, __pyx_v_dtype_is_object, __pyx_v_ndim, 0); /* "View.MemoryView":1402 * bint dtype_is_object) nogil: * refcount_copying(dst, dtype_is_object, ndim, False) * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, # <<<<<<<<<<<<<< * itemsize, item) * refcount_copying(dst, dtype_is_object, ndim, True) */ __pyx_memoryview__slice_assign_scalar(__pyx_v_dst->data, __pyx_v_dst->shape, __pyx_v_dst->strides, __pyx_v_ndim, __pyx_v_itemsize, __pyx_v_item); /* "View.MemoryView":1404 * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, * itemsize, item) * refcount_copying(dst, dtype_is_object, ndim, True) # <<<<<<<<<<<<<< * * */ __pyx_memoryview_refcount_copying(__pyx_v_dst, __pyx_v_dtype_is_object, __pyx_v_ndim, 1); /* "View.MemoryView":1398 * * @cname('__pyx_memoryview_slice_assign_scalar') * cdef void slice_assign_scalar(__Pyx_memviewslice *dst, int ndim, # <<<<<<<<<<<<<< * size_t itemsize, void *item, * bint dtype_is_object) nogil: */ /* function exit code */ } /* "View.MemoryView":1408 * * @cname('__pyx_memoryview__slice_assign_scalar') * cdef void _slice_assign_scalar(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, * size_t itemsize, void *item) nogil: */ static void __pyx_memoryview__slice_assign_scalar(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, size_t __pyx_v_itemsize, void *__pyx_v_item) { CYTHON_UNUSED Py_ssize_t __pyx_v_i; Py_ssize_t __pyx_v_stride; Py_ssize_t __pyx_v_extent; int __pyx_t_1; Py_ssize_t __pyx_t_2; Py_ssize_t __pyx_t_3; Py_ssize_t __pyx_t_4; /* "View.MemoryView":1412 * size_t itemsize, void *item) nogil: * cdef Py_ssize_t i * cdef Py_ssize_t stride = strides[0] # <<<<<<<<<<<<<< * cdef Py_ssize_t extent = shape[0] * */ __pyx_v_stride = (__pyx_v_strides[0]); /* "View.MemoryView":1413 * cdef Py_ssize_t i * cdef Py_ssize_t stride = strides[0] * cdef Py_ssize_t extent = shape[0] # <<<<<<<<<<<<<< * * if ndim == 1: */ __pyx_v_extent = (__pyx_v_shape[0]); /* "View.MemoryView":1415 * cdef Py_ssize_t extent = shape[0] * * if ndim == 1: # <<<<<<<<<<<<<< * for i in range(extent): * memcpy(data, item, itemsize) */ __pyx_t_1 = ((__pyx_v_ndim == 1) != 0); if (__pyx_t_1) { /* "View.MemoryView":1416 * * if ndim == 1: * for i in range(extent): # <<<<<<<<<<<<<< * memcpy(data, item, itemsize) * data += stride */ __pyx_t_2 = __pyx_v_extent; __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_i = __pyx_t_4; /* "View.MemoryView":1417 * if ndim == 1: * for i in range(extent): * memcpy(data, item, itemsize) # <<<<<<<<<<<<<< * data += stride * else: */ (void)(memcpy(__pyx_v_data, __pyx_v_item, __pyx_v_itemsize)); /* "View.MemoryView":1418 * for i in range(extent): * memcpy(data, item, itemsize) * data += stride # <<<<<<<<<<<<<< * else: * for i in range(extent): */ __pyx_v_data = (__pyx_v_data + __pyx_v_stride); } /* "View.MemoryView":1415 * cdef Py_ssize_t extent = shape[0] * * if ndim == 1: # <<<<<<<<<<<<<< * for i in range(extent): * memcpy(data, item, itemsize) */ goto __pyx_L3; } /* "View.MemoryView":1420 * data += stride * else: * for i in range(extent): # <<<<<<<<<<<<<< * _slice_assign_scalar(data, shape + 1, strides + 1, * ndim - 1, itemsize, item) */ /*else*/ { __pyx_t_2 = __pyx_v_extent; __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_i = __pyx_t_4; /* "View.MemoryView":1421 * else: * for i in range(extent): * _slice_assign_scalar(data, shape + 1, strides + 1, # <<<<<<<<<<<<<< * ndim - 1, itemsize, item) * data += stride */ __pyx_memoryview__slice_assign_scalar(__pyx_v_data, (__pyx_v_shape + 1), (__pyx_v_strides + 1), (__pyx_v_ndim - 1), __pyx_v_itemsize, __pyx_v_item); /* "View.MemoryView":1423 * _slice_assign_scalar(data, shape + 1, strides + 1, * ndim - 1, itemsize, item) * data += stride # <<<<<<<<<<<<<< * * */ __pyx_v_data = (__pyx_v_data + __pyx_v_stride); } } __pyx_L3:; /* "View.MemoryView":1408 * * @cname('__pyx_memoryview__slice_assign_scalar') * cdef void _slice_assign_scalar(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, * size_t itemsize, void *item) nogil: */ /* function exit code */ } /* "(tree fragment)":1 * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_PickleError * cdef object __pyx_result */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_15View_dot_MemoryView_1__pyx_unpickle_Enum = {"__pyx_unpickle_Enum", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_unpickle_Enum (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0}; PyObject* values[3] = {0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_type)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_checksum)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, 1); __PYX_ERR(2, 1, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, 2); __PYX_ERR(2, 1, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Enum") < 0)) __PYX_ERR(2, 1, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); } __pyx_v___pyx_type = values[0]; __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(2, 1, __pyx_L3_error) __pyx_v___pyx_state = values[2]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_t_6; __Pyx_RefNannySetupContext("__pyx_unpickle_Enum", 0); /* "(tree fragment)":4 * cdef object __pyx_PickleError * cdef object __pyx_result * if __pyx_checksum != 0xb068931: # <<<<<<<<<<<<<< * from pickle import PickleError as __pyx_PickleError * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) */ __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xb068931) != 0); if (__pyx_t_1) { /* "(tree fragment)":5 * cdef object __pyx_result * if __pyx_checksum != 0xb068931: * from pickle import PickleError as __pyx_PickleError # <<<<<<<<<<<<<< * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) * __pyx_result = Enum.__new__(__pyx_type) */ __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_PickleError); __Pyx_GIVEREF(__pyx_n_s_PickleError); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError); __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_2); __pyx_v___pyx_PickleError = __pyx_t_2; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "(tree fragment)":6 * if __pyx_checksum != 0xb068931: * from pickle import PickleError as __pyx_PickleError * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) # <<<<<<<<<<<<<< * __pyx_result = Enum.__new__(__pyx_type) * if __pyx_state is not None: */ __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xb0, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_INCREF(__pyx_v___pyx_PickleError); __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 6, __pyx_L1_error) /* "(tree fragment)":4 * cdef object __pyx_PickleError * cdef object __pyx_result * if __pyx_checksum != 0xb068931: # <<<<<<<<<<<<<< * from pickle import PickleError as __pyx_PickleError * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) */ } /* "(tree fragment)":7 * from pickle import PickleError as __pyx_PickleError * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) * __pyx_result = Enum.__new__(__pyx_type) # <<<<<<<<<<<<<< * if __pyx_state is not None: * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_MemviewEnum_type), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 7, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 7, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v___pyx_result = __pyx_t_3; __pyx_t_3 = 0; /* "(tree fragment)":8 * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) * __pyx_result = Enum.__new__(__pyx_type) * if __pyx_state is not None: # <<<<<<<<<<<<<< * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) * return __pyx_result */ __pyx_t_1 = (__pyx_v___pyx_state != Py_None); __pyx_t_6 = (__pyx_t_1 != 0); if (__pyx_t_6) { /* "(tree fragment)":9 * __pyx_result = Enum.__new__(__pyx_type) * if __pyx_state is not None: * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) # <<<<<<<<<<<<<< * return __pyx_result * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): */ if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(2, 9, __pyx_L1_error) __pyx_t_3 = __pyx_unpickle_Enum__set_state(((struct __pyx_MemviewEnum_obj *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "(tree fragment)":8 * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) * __pyx_result = Enum.__new__(__pyx_type) * if __pyx_state is not None: # <<<<<<<<<<<<<< * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) * return __pyx_result */ } /* "(tree fragment)":10 * if __pyx_state is not None: * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) * return __pyx_result # <<<<<<<<<<<<<< * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): * __pyx_result.name = __pyx_state[0] */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v___pyx_result); __pyx_r = __pyx_v___pyx_result; goto __pyx_L0; /* "(tree fragment)":1 * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_PickleError * cdef object __pyx_result */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v___pyx_PickleError); __Pyx_XDECREF(__pyx_v___pyx_result); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":11 * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) * return __pyx_result * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< * __pyx_result.name = __pyx_state[0] * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): */ static PyObject *__pyx_unpickle_Enum__set_state(struct __pyx_MemviewEnum_obj *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; Py_ssize_t __pyx_t_3; int __pyx_t_4; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("__pyx_unpickle_Enum__set_state", 0); /* "(tree fragment)":12 * return __pyx_result * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): * __pyx_result.name = __pyx_state[0] # <<<<<<<<<<<<<< * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): * __pyx_result.__dict__.update(__pyx_state[1]) */ if (unlikely(__pyx_v___pyx_state == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(2, 12, __pyx_L1_error) } __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v___pyx_result->name); __Pyx_DECREF(__pyx_v___pyx_result->name); __pyx_v___pyx_result->name = __pyx_t_1; __pyx_t_1 = 0; /* "(tree fragment)":13 * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): * __pyx_result.name = __pyx_state[0] * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< * __pyx_result.__dict__.update(__pyx_state[1]) */ if (unlikely(__pyx_v___pyx_state == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(2, 13, __pyx_L1_error) } __pyx_t_3 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(2, 13, __pyx_L1_error) __pyx_t_4 = ((__pyx_t_3 > 1) != 0); if (__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L4_bool_binop_done; } __pyx_t_4 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 13, __pyx_L1_error) __pyx_t_5 = (__pyx_t_4 != 0); __pyx_t_2 = __pyx_t_5; __pyx_L4_bool_binop_done:; if (__pyx_t_2) { /* "(tree fragment)":14 * __pyx_result.name = __pyx_state[0] * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): * __pyx_result.__dict__.update(__pyx_state[1]) # <<<<<<<<<<<<<< */ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(__pyx_v___pyx_state == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(2, 14, __pyx_L1_error) } __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "(tree fragment)":13 * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): * __pyx_result.name = __pyx_state[0] * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< * __pyx_result.__dict__.update(__pyx_state[1]) */ } /* "(tree fragment)":11 * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) * return __pyx_result * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< * __pyx_result.name = __pyx_state[0] * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "BufferFormatFromTypeInfo":1464 * * @cname('__pyx_format_from_typeinfo') * cdef bytes format_from_typeinfo(__Pyx_TypeInfo *type): # <<<<<<<<<<<<<< * cdef __Pyx_StructField *field * cdef __pyx_typeinfo_string fmt */ static PyObject *__pyx_format_from_typeinfo(__Pyx_TypeInfo *__pyx_v_type) { __Pyx_StructField *__pyx_v_field; struct __pyx_typeinfo_string __pyx_v_fmt; PyObject *__pyx_v_part = 0; PyObject *__pyx_v_result = 0; PyObject *__pyx_v_alignment = NULL; PyObject *__pyx_v_parts = NULL; PyObject *__pyx_v_extents = NULL; int __pyx_v_i; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; __Pyx_StructField *__pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_t_7; int __pyx_t_8; int __pyx_t_9; int __pyx_t_10; __Pyx_RefNannySetupContext("format_from_typeinfo", 0); /* "BufferFormatFromTypeInfo":1469 * cdef bytes part, result * * if type.typegroup == 'S': # <<<<<<<<<<<<<< * assert type.fields != NULL and type.fields.type != NULL * */ __pyx_t_1 = ((__pyx_v_type->typegroup == 'S') != 0); if (__pyx_t_1) { /* "BufferFormatFromTypeInfo":1470 * * if type.typegroup == 'S': * assert type.fields != NULL and type.fields.type != NULL # <<<<<<<<<<<<<< * * if type.flags & __PYX_BUF_FLAGS_PACKED_STRUCT: */ #ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { __pyx_t_2 = ((__pyx_v_type->fields != NULL) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L4_bool_binop_done; } __pyx_t_2 = ((__pyx_v_type->fields->type != NULL) != 0); __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; if (unlikely(!__pyx_t_1)) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(2, 1470, __pyx_L1_error) } } #endif /* "BufferFormatFromTypeInfo":1472 * assert type.fields != NULL and type.fields.type != NULL * * if type.flags & __PYX_BUF_FLAGS_PACKED_STRUCT: # <<<<<<<<<<<<<< * alignment = b'^' * else: */ __pyx_t_1 = ((__pyx_v_type->flags & __PYX_BUF_FLAGS_PACKED_STRUCT) != 0); if (__pyx_t_1) { /* "BufferFormatFromTypeInfo":1473 * * if type.flags & __PYX_BUF_FLAGS_PACKED_STRUCT: * alignment = b'^' # <<<<<<<<<<<<<< * else: * alignment = b'' */ __Pyx_INCREF(__pyx_kp_b__44); __pyx_v_alignment = __pyx_kp_b__44; /* "BufferFormatFromTypeInfo":1472 * assert type.fields != NULL and type.fields.type != NULL * * if type.flags & __PYX_BUF_FLAGS_PACKED_STRUCT: # <<<<<<<<<<<<<< * alignment = b'^' * else: */ goto __pyx_L6; } /* "BufferFormatFromTypeInfo":1475 * alignment = b'^' * else: * alignment = b'' # <<<<<<<<<<<<<< * * parts = [b"T{"] */ /*else*/ { __Pyx_INCREF(__pyx_kp_b__45); __pyx_v_alignment = __pyx_kp_b__45; } __pyx_L6:; /* "BufferFormatFromTypeInfo":1477 * alignment = b'' * * parts = [b"T{"] # <<<<<<<<<<<<<< * field = type.fields * */ __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1477, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_kp_b_T); __Pyx_GIVEREF(__pyx_kp_b_T); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_kp_b_T); __pyx_v_parts = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; /* "BufferFormatFromTypeInfo":1478 * * parts = [b"T{"] * field = type.fields # <<<<<<<<<<<<<< * * while field.type: */ __pyx_t_4 = __pyx_v_type->fields; __pyx_v_field = __pyx_t_4; /* "BufferFormatFromTypeInfo":1480 * field = type.fields * * while field.type: # <<<<<<<<<<<<<< * part = format_from_typeinfo(field.type) * parts.append(part + b':' + field.name + b':') */ while (1) { __pyx_t_1 = (__pyx_v_field->type != 0); if (!__pyx_t_1) break; /* "BufferFormatFromTypeInfo":1481 * * while field.type: * part = format_from_typeinfo(field.type) # <<<<<<<<<<<<<< * parts.append(part + b':' + field.name + b':') * field += 1 */ __pyx_t_3 = __pyx_format_from_typeinfo(__pyx_v_field->type); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_part, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; /* "BufferFormatFromTypeInfo":1482 * while field.type: * part = format_from_typeinfo(field.type) * parts.append(part + b':' + field.name + b':') # <<<<<<<<<<<<<< * field += 1 * */ __pyx_t_3 = PyNumber_Add(__pyx_v_part, __pyx_kp_b__46); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_field->name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyNumber_Add(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 1482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Add(__pyx_t_6, __pyx_kp_b__46); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_parts, __pyx_t_5); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(2, 1482, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "BufferFormatFromTypeInfo":1483 * part = format_from_typeinfo(field.type) * parts.append(part + b':' + field.name + b':') * field += 1 # <<<<<<<<<<<<<< * * result = alignment.join(parts) + b'}' */ __pyx_v_field = (__pyx_v_field + 1); } /* "BufferFormatFromTypeInfo":1485 * field += 1 * * result = alignment.join(parts) + b'}' # <<<<<<<<<<<<<< * else: * fmt = __Pyx_TypeInfoToFormat(type) */ __pyx_t_5 = __Pyx_PyBytes_Join(__pyx_v_alignment, __pyx_v_parts); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyNumber_Add(__pyx_t_5, __pyx_kp_b__47); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 1485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(PyBytes_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(2, 1485, __pyx_L1_error) __pyx_v_result = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0; /* "BufferFormatFromTypeInfo":1469 * cdef bytes part, result * * if type.typegroup == 'S': # <<<<<<<<<<<<<< * assert type.fields != NULL and type.fields.type != NULL * */ goto __pyx_L3; } /* "BufferFormatFromTypeInfo":1487 * result = alignment.join(parts) + b'}' * else: * fmt = __Pyx_TypeInfoToFormat(type) # <<<<<<<<<<<<<< * if type.arraysize[0]: * extents = [unicode(type.arraysize[i]) for i in range(type.ndim)] */ /*else*/ { __pyx_v_fmt = __Pyx_TypeInfoToFormat(__pyx_v_type); /* "BufferFormatFromTypeInfo":1488 * else: * fmt = __Pyx_TypeInfoToFormat(type) * if type.arraysize[0]: # <<<<<<<<<<<<<< * extents = [unicode(type.arraysize[i]) for i in range(type.ndim)] * result = (u"(%s)" % u','.join(extents)).encode('ascii') + fmt.string */ __pyx_t_1 = ((__pyx_v_type->arraysize[0]) != 0); if (__pyx_t_1) { /* "BufferFormatFromTypeInfo":1489 * fmt = __Pyx_TypeInfoToFormat(type) * if type.arraysize[0]: * extents = [unicode(type.arraysize[i]) for i in range(type.ndim)] # <<<<<<<<<<<<<< * result = (u"(%s)" % u','.join(extents)).encode('ascii') + fmt.string * else: */ __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 1489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_8 = __pyx_v_type->ndim; __pyx_t_9 = __pyx_t_8; for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) { __pyx_v_i = __pyx_t_10; __pyx_t_5 = __Pyx_PyInt_FromSize_t((__pyx_v_type->arraysize[__pyx_v_i])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_Unicode(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_6, (PyObject*)__pyx_t_3))) __PYX_ERR(2, 1489, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_v_extents = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0; /* "BufferFormatFromTypeInfo":1490 * if type.arraysize[0]: * extents = [unicode(type.arraysize[i]) for i in range(type.ndim)] * result = (u"(%s)" % u','.join(extents)).encode('ascii') + fmt.string # <<<<<<<<<<<<<< * else: * result = fmt.string */ __pyx_t_6 = PyUnicode_Join(__pyx_kp_u__48, __pyx_v_extents); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 1490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_s_2, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyUnicode_AsASCIIString(((PyObject*)__pyx_t_3)); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 1490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_FromString(__pyx_v_fmt.string); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyNumber_Add(__pyx_t_6, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(PyBytes_CheckExact(__pyx_t_5))||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(2, 1490, __pyx_L1_error) __pyx_v_result = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; /* "BufferFormatFromTypeInfo":1488 * else: * fmt = __Pyx_TypeInfoToFormat(type) * if type.arraysize[0]: # <<<<<<<<<<<<<< * extents = [unicode(type.arraysize[i]) for i in range(type.ndim)] * result = (u"(%s)" % u','.join(extents)).encode('ascii') + fmt.string */ goto __pyx_L9; } /* "BufferFormatFromTypeInfo":1492 * result = (u"(%s)" % u','.join(extents)).encode('ascii') + fmt.string * else: * result = fmt.string # <<<<<<<<<<<<<< * * return result */ /*else*/ { __pyx_t_5 = __Pyx_PyObject_FromString(__pyx_v_fmt.string); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1492, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_v_result = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; } __pyx_L9:; } __pyx_L3:; /* "BufferFormatFromTypeInfo":1494 * result = fmt.string * * return result # <<<<<<<<<<<<<< */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_result); __pyx_r = __pyx_v_result; goto __pyx_L0; /* "BufferFormatFromTypeInfo":1464 * * @cname('__pyx_format_from_typeinfo') * cdef bytes format_from_typeinfo(__Pyx_TypeInfo *type): # <<<<<<<<<<<<<< * cdef __Pyx_StructField *field * cdef __pyx_typeinfo_string fmt */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("BufferFormatFromTypeInfo.format_from_typeinfo", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_part); __Pyx_XDECREF(__pyx_v_result); __Pyx_XDECREF(__pyx_v_alignment); __Pyx_XDECREF(__pyx_v_parts); __Pyx_XDECREF(__pyx_v_extents); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static struct __pyx_vtabstruct_array __pyx_vtable_array; static PyObject *__pyx_tp_new_array(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_array_obj *p; PyObject *o; if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { o = (*t->tp_alloc)(t, 0); } else { o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); } if (unlikely(!o)) return 0; p = ((struct __pyx_array_obj *)o); p->__pyx_vtab = __pyx_vtabptr_array; p->mode = ((PyObject*)Py_None); Py_INCREF(Py_None); p->_format = ((PyObject*)Py_None); Py_INCREF(Py_None); if (unlikely(__pyx_array___cinit__(o, a, k) < 0)) goto bad; return o; bad: Py_DECREF(o); o = 0; return NULL; } static void __pyx_tp_dealloc_array(PyObject *o) { struct __pyx_array_obj *p = (struct __pyx_array_obj *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif { PyObject *etype, *eval, *etb; PyErr_Fetch(&etype, &eval, &etb); ++Py_REFCNT(o); __pyx_array___dealloc__(o); --Py_REFCNT(o); PyErr_Restore(etype, eval, etb); } Py_CLEAR(p->mode); Py_CLEAR(p->_format); (*Py_TYPE(o)->tp_free)(o); } static PyObject *__pyx_sq_item_array(PyObject *o, Py_ssize_t i) { PyObject *r; PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0; r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x); Py_DECREF(x); return r; } static int __pyx_mp_ass_subscript_array(PyObject *o, PyObject *i, PyObject *v) { if (v) { return __pyx_array___setitem__(o, i, v); } else { PyErr_Format(PyExc_NotImplementedError, "Subscript deletion not supported by %.200s", Py_TYPE(o)->tp_name); return -1; } } static PyObject *__pyx_tp_getattro_array(PyObject *o, PyObject *n) { PyObject *v = __Pyx_PyObject_GenericGetAttr(o, n); if (!v && PyErr_ExceptionMatches(PyExc_AttributeError)) { PyErr_Clear(); v = __pyx_array___getattr__(o, n); } return v; } static PyObject *__pyx_getprop___pyx_array_memview(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(o); } static PyMethodDef __pyx_methods_array[] = { {"__getattr__", (PyCFunction)__pyx_array___getattr__, METH_O|METH_COEXIST, 0}, {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_array_1__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_array_3__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_array[] = { {(char *)"memview", __pyx_getprop___pyx_array_memview, 0, (char *)0, 0}, {0, 0, 0, 0, 0} }; static PySequenceMethods __pyx_tp_as_sequence_array = { __pyx_array___len__, /*sq_length*/ 0, /*sq_concat*/ 0, /*sq_repeat*/ __pyx_sq_item_array, /*sq_item*/ 0, /*sq_slice*/ 0, /*sq_ass_item*/ 0, /*sq_ass_slice*/ 0, /*sq_contains*/ 0, /*sq_inplace_concat*/ 0, /*sq_inplace_repeat*/ }; static PyMappingMethods __pyx_tp_as_mapping_array = { __pyx_array___len__, /*mp_length*/ __pyx_array___getitem__, /*mp_subscript*/ __pyx_mp_ass_subscript_array, /*mp_ass_subscript*/ }; static PyBufferProcs __pyx_tp_as_buffer_array = { #if PY_MAJOR_VERSION < 3 0, /*bf_getreadbuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getwritebuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getsegcount*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getcharbuffer*/ #endif __pyx_array_getbuffer, /*bf_getbuffer*/ 0, /*bf_releasebuffer*/ }; static PyTypeObject __pyx_type___pyx_array = { PyVarObject_HEAD_INIT(0, 0) "pywt._extensions._dwt.array", /*tp_name*/ sizeof(struct __pyx_array_obj), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_array, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ &__pyx_tp_as_sequence_array, /*tp_as_sequence*/ &__pyx_tp_as_mapping_array, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ __pyx_tp_getattro_array, /*tp_getattro*/ 0, /*tp_setattro*/ &__pyx_tp_as_buffer_array, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ 0, /*tp_doc*/ 0, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_array, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_array, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_array, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif }; static PyObject *__pyx_tp_new_Enum(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { struct __pyx_MemviewEnum_obj *p; PyObject *o; if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { o = (*t->tp_alloc)(t, 0); } else { o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); } if (unlikely(!o)) return 0; p = ((struct __pyx_MemviewEnum_obj *)o); p->name = Py_None; Py_INCREF(Py_None); return o; } static void __pyx_tp_dealloc_Enum(PyObject *o) { struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->name); (*Py_TYPE(o)->tp_free)(o); } static int __pyx_tp_traverse_Enum(PyObject *o, visitproc v, void *a) { int e; struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o; if (p->name) { e = (*v)(p->name, a); if (e) return e; } return 0; } static int __pyx_tp_clear_Enum(PyObject *o) { PyObject* tmp; struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o; tmp = ((PyObject*)p->name); p->name = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyMethodDef __pyx_methods_Enum[] = { {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_MemviewEnum_1__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_MemviewEnum_3__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static PyTypeObject __pyx_type___pyx_MemviewEnum = { PyVarObject_HEAD_INIT(0, 0) "pywt._extensions._dwt.Enum", /*tp_name*/ sizeof(struct __pyx_MemviewEnum_obj), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_Enum, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif __pyx_MemviewEnum___repr__, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_Enum, /*tp_traverse*/ __pyx_tp_clear_Enum, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_Enum, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ __pyx_MemviewEnum___init__, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_Enum, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif }; static struct __pyx_vtabstruct_memoryview __pyx_vtable_memoryview; static PyObject *__pyx_tp_new_memoryview(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_memoryview_obj *p; PyObject *o; if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { o = (*t->tp_alloc)(t, 0); } else { o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); } if (unlikely(!o)) return 0; p = ((struct __pyx_memoryview_obj *)o); p->__pyx_vtab = __pyx_vtabptr_memoryview; p->obj = Py_None; Py_INCREF(Py_None); p->_size = Py_None; Py_INCREF(Py_None); p->_array_interface = Py_None; Py_INCREF(Py_None); p->view.obj = NULL; if (unlikely(__pyx_memoryview___cinit__(o, a, k) < 0)) goto bad; return o; bad: Py_DECREF(o); o = 0; return NULL; } static void __pyx_tp_dealloc_memoryview(PyObject *o) { struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif PyObject_GC_UnTrack(o); { PyObject *etype, *eval, *etb; PyErr_Fetch(&etype, &eval, &etb); ++Py_REFCNT(o); __pyx_memoryview___dealloc__(o); --Py_REFCNT(o); PyErr_Restore(etype, eval, etb); } Py_CLEAR(p->obj); Py_CLEAR(p->_size); Py_CLEAR(p->_array_interface); (*Py_TYPE(o)->tp_free)(o); } static int __pyx_tp_traverse_memoryview(PyObject *o, visitproc v, void *a) { int e; struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o; if (p->obj) { e = (*v)(p->obj, a); if (e) return e; } if (p->_size) { e = (*v)(p->_size, a); if (e) return e; } if (p->_array_interface) { e = (*v)(p->_array_interface, a); if (e) return e; } if (p->view.obj) { e = (*v)(p->view.obj, a); if (e) return e; } return 0; } static int __pyx_tp_clear_memoryview(PyObject *o) { PyObject* tmp; struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o; tmp = ((PyObject*)p->obj); p->obj = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->_size); p->_size = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->_array_interface); p->_array_interface = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); Py_CLEAR(p->view.obj); return 0; } static PyObject *__pyx_sq_item_memoryview(PyObject *o, Py_ssize_t i) { PyObject *r; PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0; r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x); Py_DECREF(x); return r; } static int __pyx_mp_ass_subscript_memoryview(PyObject *o, PyObject *i, PyObject *v) { if (v) { return __pyx_memoryview___setitem__(o, i, v); } else { PyErr_Format(PyExc_NotImplementedError, "Subscript deletion not supported by %.200s", Py_TYPE(o)->tp_name); return -1; } } static PyObject *__pyx_getprop___pyx_memoryview_T(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_base(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_shape(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_strides(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_suboffsets(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_ndim(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_itemsize(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_nbytes(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_size(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(o); } static PyMethodDef __pyx_methods_memoryview[] = { {"is_c_contig", (PyCFunction)__pyx_memoryview_is_c_contig, METH_NOARGS, 0}, {"is_f_contig", (PyCFunction)__pyx_memoryview_is_f_contig, METH_NOARGS, 0}, {"copy", (PyCFunction)__pyx_memoryview_copy, METH_NOARGS, 0}, {"copy_fortran", (PyCFunction)__pyx_memoryview_copy_fortran, METH_NOARGS, 0}, {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_memoryview_1__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_memoryview_3__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_memoryview[] = { {(char *)"T", __pyx_getprop___pyx_memoryview_T, 0, (char *)0, 0}, {(char *)"base", __pyx_getprop___pyx_memoryview_base, 0, (char *)0, 0}, {(char *)"shape", __pyx_getprop___pyx_memoryview_shape, 0, (char *)0, 0}, {(char *)"strides", __pyx_getprop___pyx_memoryview_strides, 0, (char *)0, 0}, {(char *)"suboffsets", __pyx_getprop___pyx_memoryview_suboffsets, 0, (char *)0, 0}, {(char *)"ndim", __pyx_getprop___pyx_memoryview_ndim, 0, (char *)0, 0}, {(char *)"itemsize", __pyx_getprop___pyx_memoryview_itemsize, 0, (char *)0, 0}, {(char *)"nbytes", __pyx_getprop___pyx_memoryview_nbytes, 0, (char *)0, 0}, {(char *)"size", __pyx_getprop___pyx_memoryview_size, 0, (char *)0, 0}, {0, 0, 0, 0, 0} }; static PySequenceMethods __pyx_tp_as_sequence_memoryview = { __pyx_memoryview___len__, /*sq_length*/ 0, /*sq_concat*/ 0, /*sq_repeat*/ __pyx_sq_item_memoryview, /*sq_item*/ 0, /*sq_slice*/ 0, /*sq_ass_item*/ 0, /*sq_ass_slice*/ 0, /*sq_contains*/ 0, /*sq_inplace_concat*/ 0, /*sq_inplace_repeat*/ }; static PyMappingMethods __pyx_tp_as_mapping_memoryview = { __pyx_memoryview___len__, /*mp_length*/ __pyx_memoryview___getitem__, /*mp_subscript*/ __pyx_mp_ass_subscript_memoryview, /*mp_ass_subscript*/ }; static PyBufferProcs __pyx_tp_as_buffer_memoryview = { #if PY_MAJOR_VERSION < 3 0, /*bf_getreadbuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getwritebuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getsegcount*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getcharbuffer*/ #endif __pyx_memoryview_getbuffer, /*bf_getbuffer*/ 0, /*bf_releasebuffer*/ }; static PyTypeObject __pyx_type___pyx_memoryview = { PyVarObject_HEAD_INIT(0, 0) "pywt._extensions._dwt.memoryview", /*tp_name*/ sizeof(struct __pyx_memoryview_obj), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_memoryview, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif __pyx_memoryview___repr__, /*tp_repr*/ 0, /*tp_as_number*/ &__pyx_tp_as_sequence_memoryview, /*tp_as_sequence*/ &__pyx_tp_as_mapping_memoryview, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ __pyx_memoryview___str__, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ &__pyx_tp_as_buffer_memoryview, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_memoryview, /*tp_traverse*/ __pyx_tp_clear_memoryview, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_memoryview, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_memoryview, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_memoryview, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif }; static struct __pyx_vtabstruct__memoryviewslice __pyx_vtable__memoryviewslice; static PyObject *__pyx_tp_new__memoryviewslice(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_memoryviewslice_obj *p; PyObject *o = __pyx_tp_new_memoryview(t, a, k); if (unlikely(!o)) return 0; p = ((struct __pyx_memoryviewslice_obj *)o); p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_memoryview*)__pyx_vtabptr__memoryviewslice; p->from_object = Py_None; Py_INCREF(Py_None); p->from_slice.memview = NULL; return o; } static void __pyx_tp_dealloc__memoryviewslice(PyObject *o) { struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif PyObject_GC_UnTrack(o); { PyObject *etype, *eval, *etb; PyErr_Fetch(&etype, &eval, &etb); ++Py_REFCNT(o); __pyx_memoryviewslice___dealloc__(o); --Py_REFCNT(o); PyErr_Restore(etype, eval, etb); } Py_CLEAR(p->from_object); PyObject_GC_Track(o); __pyx_tp_dealloc_memoryview(o); } static int __pyx_tp_traverse__memoryviewslice(PyObject *o, visitproc v, void *a) { int e; struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o; e = __pyx_tp_traverse_memoryview(o, v, a); if (e) return e; if (p->from_object) { e = (*v)(p->from_object, a); if (e) return e; } return 0; } static int __pyx_tp_clear__memoryviewslice(PyObject *o) { PyObject* tmp; struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o; __pyx_tp_clear_memoryview(o); tmp = ((PyObject*)p->from_object); p->from_object = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); __PYX_XDEC_MEMVIEW(&p->from_slice, 1); return 0; } static PyObject *__pyx_getprop___pyx_memoryviewslice_base(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(o); } static PyMethodDef __pyx_methods__memoryviewslice[] = { {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_memoryviewslice_1__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_memoryviewslice_3__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets__memoryviewslice[] = { {(char *)"base", __pyx_getprop___pyx_memoryviewslice_base, 0, (char *)0, 0}, {0, 0, 0, 0, 0} }; static PyTypeObject __pyx_type___pyx_memoryviewslice = { PyVarObject_HEAD_INIT(0, 0) "pywt._extensions._dwt._memoryviewslice", /*tp_name*/ sizeof(struct __pyx_memoryviewslice_obj), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc__memoryviewslice, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif #if CYTHON_COMPILING_IN_PYPY __pyx_memoryview___repr__, /*tp_repr*/ #else 0, /*tp_repr*/ #endif 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ #if CYTHON_COMPILING_IN_PYPY __pyx_memoryview___str__, /*tp_str*/ #else 0, /*tp_str*/ #endif 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ "Internal class for passing memoryview slices to Python", /*tp_doc*/ __pyx_tp_traverse__memoryviewslice, /*tp_traverse*/ __pyx_tp_clear__memoryviewslice, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods__memoryviewslice, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets__memoryviewslice, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new__memoryviewslice, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif }; static PyMethodDef __pyx_methods[] = { {"dwt_max_level", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_4_dwt_1dwt_max_level, METH_VARARGS|METH_KEYWORDS, 0}, {"dwt_coeff_len", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_4_dwt_3dwt_coeff_len, METH_VARARGS|METH_KEYWORDS, 0}, {"dwt_axis", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_4_dwt_7dwt_axis, METH_VARARGS|METH_KEYWORDS, 0}, {"idwt_single", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_4_dwt_9idwt_single, METH_VARARGS|METH_KEYWORDS, 0}, {"idwt_axis", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_4_dwt_11idwt_axis, METH_VARARGS|METH_KEYWORDS, 0}, {0, 0, 0, 0} }; #if PY_MAJOR_VERSION >= 3 #if CYTHON_PEP489_MULTI_PHASE_INIT static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/ static int __pyx_pymod_exec__dwt(PyObject* module); /*proto*/ static PyModuleDef_Slot __pyx_moduledef_slots[] = { {Py_mod_create, (void*)__pyx_pymod_create}, {Py_mod_exec, (void*)__pyx_pymod_exec__dwt}, {0, NULL} }; #endif static struct PyModuleDef __pyx_moduledef = { PyModuleDef_HEAD_INIT, "_dwt", 0, /* m_doc */ #if CYTHON_PEP489_MULTI_PHASE_INIT 0, /* m_size */ #else -1, /* m_size */ #endif __pyx_methods /* m_methods */, #if CYTHON_PEP489_MULTI_PHASE_INIT __pyx_moduledef_slots, /* m_slots */ #else NULL, /* m_reload */ #endif NULL, /* m_traverse */ NULL, /* m_clear */ NULL /* m_free */ }; #endif #ifndef CYTHON_SMALL_CODE #if defined(__clang__) #define CYTHON_SMALL_CODE #elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) #define CYTHON_SMALL_CODE __attribute__((cold)) #else #define CYTHON_SMALL_CODE #endif #endif static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_ASCII, __pyx_k_ASCII, sizeof(__pyx_k_ASCII), 0, 0, 1, 1}, {&__pyx_kp_u_Array_must_be_floating_point_not, __pyx_k_Array_must_be_floating_point_not, sizeof(__pyx_k_Array_must_be_floating_point_not), 0, 1, 0, 0}, {&__pyx_kp_s_Buffer_view_does_not_expose_stri, __pyx_k_Buffer_view_does_not_expose_stri, sizeof(__pyx_k_Buffer_view_does_not_expose_stri), 0, 0, 1, 0}, {&__pyx_kp_u_C_dec_a_failed, __pyx_k_C_dec_a_failed, sizeof(__pyx_k_C_dec_a_failed), 0, 1, 0, 0}, {&__pyx_kp_u_C_dec_d_failed, __pyx_k_C_dec_d_failed, sizeof(__pyx_k_C_dec_d_failed), 0, 1, 0, 0}, {&__pyx_kp_u_C_dwt_failed, __pyx_k_C_dwt_failed, sizeof(__pyx_k_C_dwt_failed), 0, 1, 0, 0}, {&__pyx_kp_u_C_idwt_failed, __pyx_k_C_idwt_failed, sizeof(__pyx_k_C_idwt_failed), 0, 1, 0, 0}, {&__pyx_kp_u_C_inverse_wavelet_transform_fail, __pyx_k_C_inverse_wavelet_transform_fail, sizeof(__pyx_k_C_inverse_wavelet_transform_fail), 0, 1, 0, 0}, {&__pyx_kp_u_C_rec_a_failed, __pyx_k_C_rec_a_failed, sizeof(__pyx_k_C_rec_a_failed), 0, 1, 0, 0}, {&__pyx_kp_u_C_rec_d_failed, __pyx_k_C_rec_d_failed, sizeof(__pyx_k_C_rec_d_failed), 0, 1, 0, 0}, {&__pyx_kp_u_C_wavelet_transform_failed, __pyx_k_C_wavelet_transform_failed, sizeof(__pyx_k_C_wavelet_transform_failed), 0, 1, 0, 0}, {&__pyx_kp_s_Can_only_create_a_buffer_that_is, __pyx_k_Can_only_create_a_buffer_that_is, sizeof(__pyx_k_Can_only_create_a_buffer_that_is), 0, 0, 1, 0}, {&__pyx_kp_s_Cannot_assign_to_read_only_memor, __pyx_k_Cannot_assign_to_read_only_memor, sizeof(__pyx_k_Cannot_assign_to_read_only_memor), 0, 0, 1, 0}, {&__pyx_kp_s_Cannot_create_writable_memory_vi, __pyx_k_Cannot_create_writable_memory_vi, sizeof(__pyx_k_Cannot_create_writable_memory_vi), 0, 0, 1, 0}, {&__pyx_kp_s_Cannot_index_with_type_s, __pyx_k_Cannot_index_with_type_s, sizeof(__pyx_k_Cannot_index_with_type_s), 0, 0, 1, 0}, {&__pyx_kp_u_Coefficients_arrays_must_have_th, __pyx_k_Coefficients_arrays_must_have_th, sizeof(__pyx_k_Coefficients_arrays_must_have_th), 0, 1, 0, 0}, {&__pyx_kp_u_Coefficients_arrays_must_have_th_2, __pyx_k_Coefficients_arrays_must_have_th_2, sizeof(__pyx_k_Coefficients_arrays_must_have_th_2), 0, 1, 0, 0}, {&__pyx_n_s_Ellipsis, __pyx_k_Ellipsis, sizeof(__pyx_k_Ellipsis), 0, 0, 1, 1}, {&__pyx_kp_s_Empty_shape_tuple_for_cython_arr, __pyx_k_Empty_shape_tuple_for_cython_arr, sizeof(__pyx_k_Empty_shape_tuple_for_cython_arr), 0, 0, 1, 0}, {&__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_k_Expected_at_least_d_argument_s_g, sizeof(__pyx_k_Expected_at_least_d_argument_s_g), 0, 0, 1, 0}, {&__pyx_kp_u_Format_string_allocated_too_shor, __pyx_k_Format_string_allocated_too_shor, sizeof(__pyx_k_Format_string_allocated_too_shor), 0, 1, 0, 0}, {&__pyx_kp_u_Format_string_allocated_too_shor_2, __pyx_k_Format_string_allocated_too_shor_2, sizeof(__pyx_k_Format_string_allocated_too_shor_2), 0, 1, 0, 0}, {&__pyx_kp_s_Function_call_with_ambiguous_arg, __pyx_k_Function_call_with_ambiguous_arg, sizeof(__pyx_k_Function_call_with_ambiguous_arg), 0, 0, 1, 0}, {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, {&__pyx_kp_s_Incompatible_checksums_s_vs_0xb0, __pyx_k_Incompatible_checksums_s_vs_0xb0, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xb0), 0, 0, 1, 0}, {&__pyx_n_s_IndexError, __pyx_k_IndexError, sizeof(__pyx_k_IndexError), 0, 0, 1, 1}, {&__pyx_kp_s_Indirect_dimensions_not_supporte, __pyx_k_Indirect_dimensions_not_supporte, sizeof(__pyx_k_Indirect_dimensions_not_supporte), 0, 0, 1, 0}, {&__pyx_kp_u_Invalid_coefficient_arrays_lengt, __pyx_k_Invalid_coefficient_arrays_lengt, sizeof(__pyx_k_Invalid_coefficient_arrays_lengt), 0, 1, 0, 0}, {&__pyx_kp_s_Invalid_mode_expected_c_or_fortr, __pyx_k_Invalid_mode_expected_c_or_fortr, sizeof(__pyx_k_Invalid_mode_expected_c_or_fortr), 0, 0, 1, 0}, {&__pyx_kp_u_Invalid_output_length, __pyx_k_Invalid_output_length, sizeof(__pyx_k_Invalid_output_length), 0, 1, 0, 0}, {&__pyx_kp_s_Invalid_shape_in_axis_d_d, __pyx_k_Invalid_shape_in_axis_d_d, sizeof(__pyx_k_Invalid_shape_in_axis_d_d), 0, 0, 1, 0}, {&__pyx_n_s_MemoryError, __pyx_k_MemoryError, sizeof(__pyx_k_MemoryError), 0, 0, 1, 1}, {&__pyx_kp_s_MemoryView_of_r_at_0x_x, __pyx_k_MemoryView_of_r_at_0x_x, sizeof(__pyx_k_MemoryView_of_r_at_0x_x), 0, 0, 1, 0}, {&__pyx_kp_s_MemoryView_of_r_object, __pyx_k_MemoryView_of_r_object, sizeof(__pyx_k_MemoryView_of_r_object), 0, 0, 1, 0}, {&__pyx_kp_s_No_matching_signature_found, __pyx_k_No_matching_signature_found, sizeof(__pyx_k_No_matching_signature_found), 0, 0, 1, 0}, {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0}, {&__pyx_n_b_O, __pyx_k_O, sizeof(__pyx_k_O), 0, 0, 0, 1}, {&__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_k_Out_of_bounds_on_buffer_access_a, sizeof(__pyx_k_Out_of_bounds_on_buffer_access_a), 0, 0, 1, 0}, {&__pyx_n_s_PickleError, __pyx_k_PickleError, sizeof(__pyx_k_PickleError), 0, 0, 1, 1}, {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, {&__pyx_kp_b_T, __pyx_k_T, sizeof(__pyx_k_T), 0, 0, 0, 0}, {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, {&__pyx_kp_s_Unable_to_convert_item_to_object, __pyx_k_Unable_to_convert_item_to_object, sizeof(__pyx_k_Unable_to_convert_item_to_object), 0, 0, 1, 0}, {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, {&__pyx_kp_u_Value_of_data_len_must_be_greate, __pyx_k_Value_of_data_len_must_be_greate, sizeof(__pyx_k_Value_of_data_len_must_be_greate), 0, 1, 0, 0}, {&__pyx_kp_u_Value_of_filter_len_must_be_grea, __pyx_k_Value_of_filter_len_must_be_grea, sizeof(__pyx_k_Value_of_filter_len_must_be_grea), 0, 1, 0, 0}, {&__pyx_kp_u_Value_of_level_must_be_greater_t, __pyx_k_Value_of_level_must_be_greater_t, sizeof(__pyx_k_Value_of_level_must_be_greater_t), 0, 1, 0, 0}, {&__pyx_n_s_View_MemoryView, __pyx_k_View_MemoryView, sizeof(__pyx_k_View_MemoryView), 0, 0, 1, 1}, {&__pyx_kp_s__3, __pyx_k__3, sizeof(__pyx_k__3), 0, 0, 1, 0}, {&__pyx_kp_s__4, __pyx_k__4, sizeof(__pyx_k__4), 0, 0, 1, 0}, {&__pyx_kp_b__44, __pyx_k__44, sizeof(__pyx_k__44), 0, 0, 0, 0}, {&__pyx_kp_b__45, __pyx_k__45, sizeof(__pyx_k__45), 0, 0, 0, 0}, {&__pyx_kp_b__46, __pyx_k__46, sizeof(__pyx_k__46), 0, 0, 0, 0}, {&__pyx_kp_b__47, __pyx_k__47, sizeof(__pyx_k__47), 0, 0, 0, 0}, {&__pyx_kp_u__48, __pyx_k__48, sizeof(__pyx_k__48), 0, 1, 0, 0}, {&__pyx_n_s_allocate_buffer, __pyx_k_allocate_buffer, sizeof(__pyx_k_allocate_buffer), 0, 0, 1, 1}, {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1}, {&__pyx_n_s_astype, __pyx_k_astype, sizeof(__pyx_k_astype), 0, 0, 1, 1}, {&__pyx_n_s_axis, __pyx_k_axis, sizeof(__pyx_k_axis), 0, 0, 1, 1}, {&__pyx_n_s_base, __pyx_k_base, sizeof(__pyx_k_base), 0, 0, 1, 1}, {&__pyx_n_s_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 0, 1, 1}, {&__pyx_n_u_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 1, 0, 1}, {&__pyx_n_s_cA, __pyx_k_cA, sizeof(__pyx_k_cA), 0, 0, 1, 1}, {&__pyx_n_s_cD, __pyx_k_cD, sizeof(__pyx_k_cD), 0, 0, 1, 1}, {&__pyx_n_s_class, __pyx_k_class, sizeof(__pyx_k_class), 0, 0, 1, 1}, {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, {&__pyx_n_s_coeffs, __pyx_k_coeffs, sizeof(__pyx_k_coeffs), 0, 0, 1, 1}, {&__pyx_n_s_coefs_a, __pyx_k_coefs_a, sizeof(__pyx_k_coefs_a), 0, 0, 1, 1}, {&__pyx_n_s_coefs_d, __pyx_k_coefs_d, sizeof(__pyx_k_coefs_d), 0, 0, 1, 1}, {&__pyx_n_s_complex128, __pyx_k_complex128, sizeof(__pyx_k_complex128), 0, 0, 1, 1}, {&__pyx_n_s_complex64, __pyx_k_complex64, sizeof(__pyx_k_complex64), 0, 0, 1, 1}, {&__pyx_kp_s_contiguous_and_direct, __pyx_k_contiguous_and_direct, sizeof(__pyx_k_contiguous_and_direct), 0, 0, 1, 0}, {&__pyx_kp_s_contiguous_and_indirect, __pyx_k_contiguous_and_indirect, sizeof(__pyx_k_contiguous_and_indirect), 0, 0, 1, 0}, {&__pyx_n_s_copy, __pyx_k_copy, sizeof(__pyx_k_copy), 0, 0, 1, 1}, {&__pyx_n_s_data, __pyx_k_data, sizeof(__pyx_k_data), 0, 0, 1, 1}, {&__pyx_n_s_data_len, __pyx_k_data_len, sizeof(__pyx_k_data_len), 0, 0, 1, 1}, {&__pyx_n_s_dec_len, __pyx_k_dec_len, sizeof(__pyx_k_dec_len), 0, 0, 1, 1}, {&__pyx_n_s_defaults, __pyx_k_defaults, sizeof(__pyx_k_defaults), 0, 0, 1, 1}, {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1}, {&__pyx_n_s_do_dec_a, __pyx_k_do_dec_a, sizeof(__pyx_k_do_dec_a), 0, 0, 1, 1}, {&__pyx_n_s_do_rec_a, __pyx_k_do_rec_a, sizeof(__pyx_k_do_rec_a), 0, 0, 1, 1}, {&__pyx_kp_s_double_complex, __pyx_k_double_complex, sizeof(__pyx_k_double_complex), 0, 0, 1, 0}, {&__pyx_n_s_downcoef, __pyx_k_downcoef, sizeof(__pyx_k_downcoef), 0, 0, 1, 1}, {&__pyx_n_s_dtype, __pyx_k_dtype, sizeof(__pyx_k_dtype), 0, 0, 1, 1}, {&__pyx_n_s_dtype_is_object, __pyx_k_dtype_is_object, sizeof(__pyx_k_dtype_is_object), 0, 0, 1, 1}, {&__pyx_n_s_dwt_single, __pyx_k_dwt_single, sizeof(__pyx_k_dwt_single), 0, 0, 1, 1}, {&__pyx_n_s_empty, __pyx_k_empty, sizeof(__pyx_k_empty), 0, 0, 1, 1}, {&__pyx_n_s_encode, __pyx_k_encode, sizeof(__pyx_k_encode), 0, 0, 1, 1}, {&__pyx_n_s_enumerate, __pyx_k_enumerate, sizeof(__pyx_k_enumerate), 0, 0, 1, 1}, {&__pyx_n_s_error, __pyx_k_error, sizeof(__pyx_k_error), 0, 0, 1, 1}, {&__pyx_n_s_filter_len, __pyx_k_filter_len, sizeof(__pyx_k_filter_len), 0, 0, 1, 1}, {&__pyx_n_s_flags, __pyx_k_flags, sizeof(__pyx_k_flags), 0, 0, 1, 1}, {&__pyx_n_s_float32, __pyx_k_float32, sizeof(__pyx_k_float32), 0, 0, 1, 1}, {&__pyx_n_s_float32_t, __pyx_k_float32_t, sizeof(__pyx_k_float32_t), 0, 0, 1, 1}, {&__pyx_n_s_float64, __pyx_k_float64, sizeof(__pyx_k_float64), 0, 0, 1, 1}, {&__pyx_n_s_float64_t, __pyx_k_float64_t, sizeof(__pyx_k_float64_t), 0, 0, 1, 1}, {&__pyx_kp_s_float_complex, __pyx_k_float_complex, sizeof(__pyx_k_float_complex), 0, 0, 1, 0}, {&__pyx_n_s_format, __pyx_k_format, sizeof(__pyx_k_format), 0, 0, 1, 1}, {&__pyx_n_s_fortran, __pyx_k_fortran, sizeof(__pyx_k_fortran), 0, 0, 1, 1}, {&__pyx_n_u_fortran, __pyx_k_fortran, sizeof(__pyx_k_fortran), 0, 1, 0, 1}, {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1}, {&__pyx_kp_s_got_differing_extents_in_dimensi, __pyx_k_got_differing_extents_in_dimensi, sizeof(__pyx_k_got_differing_extents_in_dimensi), 0, 0, 1, 0}, {&__pyx_n_s_id, __pyx_k_id, sizeof(__pyx_k_id), 0, 0, 1, 1}, {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, {&__pyx_n_s_itemsize, __pyx_k_itemsize, sizeof(__pyx_k_itemsize), 0, 0, 1, 1}, {&__pyx_kp_s_itemsize_0_for_cython_array, __pyx_k_itemsize_0_for_cython_array, sizeof(__pyx_k_itemsize_0_for_cython_array), 0, 0, 1, 0}, {&__pyx_n_s_join, __pyx_k_join, sizeof(__pyx_k_join), 0, 0, 1, 1}, {&__pyx_n_s_kind, __pyx_k_kind, sizeof(__pyx_k_kind), 0, 0, 1, 1}, {&__pyx_n_s_kwargs, __pyx_k_kwargs, sizeof(__pyx_k_kwargs), 0, 0, 1, 1}, {&__pyx_n_s_level, __pyx_k_level, sizeof(__pyx_k_level), 0, 0, 1, 1}, {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, {&__pyx_n_s_memview, __pyx_k_memview, sizeof(__pyx_k_memview), 0, 0, 1, 1}, {&__pyx_n_s_mode, __pyx_k_mode, sizeof(__pyx_k_mode), 0, 0, 1, 1}, {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1}, {&__pyx_kp_u_ndarray_is_not_C_contiguous, __pyx_k_ndarray_is_not_C_contiguous, sizeof(__pyx_k_ndarray_is_not_C_contiguous), 0, 1, 0, 0}, {&__pyx_kp_u_ndarray_is_not_Fortran_contiguou, __pyx_k_ndarray_is_not_Fortran_contiguou, sizeof(__pyx_k_ndarray_is_not_Fortran_contiguou), 0, 1, 0, 0}, {&__pyx_n_s_ndim, __pyx_k_ndim, sizeof(__pyx_k_ndim), 0, 0, 1, 1}, {&__pyx_n_s_new, __pyx_k_new, sizeof(__pyx_k_new), 0, 0, 1, 1}, {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0}, {&__pyx_n_s_np, __pyx_k_np, sizeof(__pyx_k_np), 0, 0, 1, 1}, {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1}, {&__pyx_kp_u_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 1, 0, 0}, {&__pyx_kp_u_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 1, 0, 0}, {&__pyx_n_s_obj, __pyx_k_obj, sizeof(__pyx_k_obj), 0, 0, 1, 1}, {&__pyx_n_s_pack, __pyx_k_pack, sizeof(__pyx_k_pack), 0, 0, 1, 1}, {&__pyx_n_s_pickle, __pyx_k_pickle, sizeof(__pyx_k_pickle), 0, 0, 1, 1}, {&__pyx_n_s_pywt__extensions__dwt, __pyx_k_pywt__extensions__dwt, sizeof(__pyx_k_pywt__extensions__dwt), 0, 0, 1, 1}, {&__pyx_kp_s_pywt__extensions__dwt_pyx, __pyx_k_pywt__extensions__dwt_pyx, sizeof(__pyx_k_pywt__extensions__dwt_pyx), 0, 0, 1, 0}, {&__pyx_n_s_pyx_PickleError, __pyx_k_pyx_PickleError, sizeof(__pyx_k_pyx_PickleError), 0, 0, 1, 1}, {&__pyx_n_s_pyx_checksum, __pyx_k_pyx_checksum, sizeof(__pyx_k_pyx_checksum), 0, 0, 1, 1}, {&__pyx_n_s_pyx_fuse_0downcoef, __pyx_k_pyx_fuse_0downcoef, sizeof(__pyx_k_pyx_fuse_0downcoef), 0, 0, 1, 1}, {&__pyx_n_s_pyx_fuse_0dwt_single, __pyx_k_pyx_fuse_0dwt_single, sizeof(__pyx_k_pyx_fuse_0dwt_single), 0, 0, 1, 1}, {&__pyx_n_s_pyx_fuse_0upcoef, __pyx_k_pyx_fuse_0upcoef, sizeof(__pyx_k_pyx_fuse_0upcoef), 0, 0, 1, 1}, {&__pyx_n_s_pyx_fuse_1downcoef, __pyx_k_pyx_fuse_1downcoef, sizeof(__pyx_k_pyx_fuse_1downcoef), 0, 0, 1, 1}, {&__pyx_n_s_pyx_fuse_1dwt_single, __pyx_k_pyx_fuse_1dwt_single, sizeof(__pyx_k_pyx_fuse_1dwt_single), 0, 0, 1, 1}, {&__pyx_n_s_pyx_fuse_1upcoef, __pyx_k_pyx_fuse_1upcoef, sizeof(__pyx_k_pyx_fuse_1upcoef), 0, 0, 1, 1}, {&__pyx_n_s_pyx_fuse_2downcoef, __pyx_k_pyx_fuse_2downcoef, sizeof(__pyx_k_pyx_fuse_2downcoef), 0, 0, 1, 1}, {&__pyx_n_s_pyx_fuse_2dwt_single, __pyx_k_pyx_fuse_2dwt_single, sizeof(__pyx_k_pyx_fuse_2dwt_single), 0, 0, 1, 1}, {&__pyx_n_s_pyx_fuse_2upcoef, __pyx_k_pyx_fuse_2upcoef, sizeof(__pyx_k_pyx_fuse_2upcoef), 0, 0, 1, 1}, {&__pyx_n_s_pyx_fuse_3downcoef, __pyx_k_pyx_fuse_3downcoef, sizeof(__pyx_k_pyx_fuse_3downcoef), 0, 0, 1, 1}, {&__pyx_n_s_pyx_fuse_3dwt_single, __pyx_k_pyx_fuse_3dwt_single, sizeof(__pyx_k_pyx_fuse_3dwt_single), 0, 0, 1, 1}, {&__pyx_n_s_pyx_fuse_3upcoef, __pyx_k_pyx_fuse_3upcoef, sizeof(__pyx_k_pyx_fuse_3upcoef), 0, 0, 1, 1}, {&__pyx_n_s_pyx_getbuffer, __pyx_k_pyx_getbuffer, sizeof(__pyx_k_pyx_getbuffer), 0, 0, 1, 1}, {&__pyx_n_s_pyx_result, __pyx_k_pyx_result, sizeof(__pyx_k_pyx_result), 0, 0, 1, 1}, {&__pyx_n_s_pyx_state, __pyx_k_pyx_state, sizeof(__pyx_k_pyx_state), 0, 0, 1, 1}, {&__pyx_n_s_pyx_type, __pyx_k_pyx_type, sizeof(__pyx_k_pyx_type), 0, 0, 1, 1}, {&__pyx_n_s_pyx_unpickle_Enum, __pyx_k_pyx_unpickle_Enum, sizeof(__pyx_k_pyx_unpickle_Enum), 0, 0, 1, 1}, {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, {&__pyx_n_s_rec_len, __pyx_k_rec_len, sizeof(__pyx_k_rec_len), 0, 0, 1, 1}, {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, {&__pyx_n_s_s, __pyx_k_s, sizeof(__pyx_k_s), 0, 0, 1, 1}, {&__pyx_kp_u_s_2, __pyx_k_s_2, sizeof(__pyx_k_s_2), 0, 1, 0, 0}, {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, {&__pyx_n_s_shape, __pyx_k_shape, sizeof(__pyx_k_shape), 0, 0, 1, 1}, {&__pyx_n_s_signatures, __pyx_k_signatures, sizeof(__pyx_k_signatures), 0, 0, 1, 1}, {&__pyx_n_s_size, __pyx_k_size, sizeof(__pyx_k_size), 0, 0, 1, 1}, {&__pyx_n_s_split, __pyx_k_split, sizeof(__pyx_k_split), 0, 0, 1, 1}, {&__pyx_n_s_start, __pyx_k_start, sizeof(__pyx_k_start), 0, 0, 1, 1}, {&__pyx_n_s_step, __pyx_k_step, sizeof(__pyx_k_step), 0, 0, 1, 1}, {&__pyx_n_s_stop, __pyx_k_stop, sizeof(__pyx_k_stop), 0, 0, 1, 1}, {&__pyx_kp_s_strided_and_direct, __pyx_k_strided_and_direct, sizeof(__pyx_k_strided_and_direct), 0, 0, 1, 0}, {&__pyx_kp_s_strided_and_direct_or_indirect, __pyx_k_strided_and_direct_or_indirect, sizeof(__pyx_k_strided_and_direct_or_indirect), 0, 0, 1, 0}, {&__pyx_kp_s_strided_and_indirect, __pyx_k_strided_and_indirect, sizeof(__pyx_k_strided_and_indirect), 0, 0, 1, 0}, {&__pyx_kp_s_stringsource, __pyx_k_stringsource, sizeof(__pyx_k_stringsource), 0, 0, 1, 0}, {&__pyx_n_s_strip, __pyx_k_strip, sizeof(__pyx_k_strip), 0, 0, 1, 1}, {&__pyx_n_s_struct, __pyx_k_struct, sizeof(__pyx_k_struct), 0, 0, 1, 1}, {&__pyx_n_s_take, __pyx_k_take, sizeof(__pyx_k_take), 0, 0, 1, 1}, {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, {&__pyx_kp_s_unable_to_allocate_array_data, __pyx_k_unable_to_allocate_array_data, sizeof(__pyx_k_unable_to_allocate_array_data), 0, 0, 1, 0}, {&__pyx_kp_s_unable_to_allocate_shape_and_str, __pyx_k_unable_to_allocate_shape_and_str, sizeof(__pyx_k_unable_to_allocate_shape_and_str), 0, 0, 1, 0}, {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0}, {&__pyx_n_s_unpack, __pyx_k_unpack, sizeof(__pyx_k_unpack), 0, 0, 1, 1}, {&__pyx_n_s_upcoef, __pyx_k_upcoef, sizeof(__pyx_k_upcoef), 0, 0, 1, 1}, {&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1}, {&__pyx_n_s_wavelet, __pyx_k_wavelet, sizeof(__pyx_k_wavelet), 0, 0, 1, 1}, {&__pyx_n_s_zeros, __pyx_k_zeros, sizeof(__pyx_k_zeros), 0, 0, 1, 1}, {0, 0, 0, 0, 0, 0, 0} }; static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(0, 19, __pyx_L1_error) __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 25, __pyx_L1_error) __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 25, __pyx_L1_error) __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(0, 31, __pyx_L1_error) __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 1038, __pyx_L1_error) __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s_MemoryError); if (!__pyx_builtin_MemoryError) __PYX_ERR(2, 148, __pyx_L1_error) __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(2, 151, __pyx_L1_error) __pyx_builtin_Ellipsis = __Pyx_GetBuiltinName(__pyx_n_s_Ellipsis); if (!__pyx_builtin_Ellipsis) __PYX_ERR(2, 404, __pyx_L1_error) __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_n_s_id); if (!__pyx_builtin_id) __PYX_ERR(2, 613, __pyx_L1_error) __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) __PYX_ERR(2, 832, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; } static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); /* "pywt/_extensions/_dwt.pyx":19 * cpdef dwt_coeff_len(size_t data_len, size_t filter_len, MODE mode): * if data_len < 1: * raise ValueError("Value of data_len must be greater than zero.") # <<<<<<<<<<<<<< * if filter_len < 1: * raise ValueError("Value of filter_len must be greater than zero.") */ __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_u_Value_of_data_len_must_be_greate); if (unlikely(!__pyx_tuple_)) __PYX_ERR(0, 19, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple_); __Pyx_GIVEREF(__pyx_tuple_); /* "pywt/_extensions/_dwt.pyx":21 * raise ValueError("Value of data_len must be greater than zero.") * if filter_len < 1: * raise ValueError("Value of filter_len must be greater than zero.") # <<<<<<<<<<<<<< * * return common.dwt_buffer_length(data_len, filter_len, mode) */ __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_u_Value_of_filter_len_must_be_grea); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(0, 21, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__2); __Pyx_GIVEREF(__pyx_tuple__2); /* "pywt/_extensions/_dwt.pyx":25 * return common.dwt_buffer_length(data_len, filter_len, mode) * * cpdef dwt_single(cdata_t[::1] data, Wavelet wavelet, MODE mode): # <<<<<<<<<<<<<< * cdef size_t output_len = dwt_coeff_len(data.size, wavelet.dec_len, mode) * cdef np.ndarray cA, cD */ __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_s_No_matching_signature_found); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__5); __Pyx_GIVEREF(__pyx_tuple__5); __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_s_Function_call_with_ambiguous_arg); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__6); __Pyx_GIVEREF(__pyx_tuple__6); /* "pywt/_extensions/_dwt.pyx":31 * cdef size_t data_size = data.size * if output_len < 1: * raise RuntimeError("Invalid output length.") # <<<<<<<<<<<<<< * * if cdata_t is np.float64_t: */ __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_u_Invalid_output_length); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(0, 31, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__7); __Pyx_GIVEREF(__pyx_tuple__7); /* "pywt/_extensions/_dwt.pyx":54 * cD.data, output_len, mode) * if ( retval_a < 0 or retval_d < 0): * raise RuntimeError("C dwt failed.") # <<<<<<<<<<<<<< * * IF HAVE_C99_CPLX: */ __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_u_C_dwt_failed); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(0, 54, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__8); __Pyx_GIVEREF(__pyx_tuple__8); /* "pywt/_extensions/_dwt.pyx":113 * 0, common.DWT_TRANSFORM) * if retval: * raise RuntimeError("C wavelet transform failed") # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.double_downcoef_axis( data.data, data_info, */ __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_u_C_wavelet_transform_failed); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(0, 113, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__9); __Pyx_GIVEREF(__pyx_tuple__9); /* "pywt/_extensions/_dwt.pyx":181 * # check for size difference between arrays * if cA.size != cD.size: * raise ValueError("Coefficients arrays must have the same size.") # <<<<<<<<<<<<<< * else: * input_len = cA.size */ __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_u_Coefficients_arrays_must_have_th); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__10); __Pyx_GIVEREF(__pyx_tuple__10); /* "pywt/_extensions/_dwt.pyx":186 * * if cA.dtype != cD.dtype: * raise ValueError("Coefficients arrays must have the same dtype.") # <<<<<<<<<<<<<< * * # find reconstruction buffer length */ __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_u_Coefficients_arrays_must_have_th_2); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(0, 186, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__11); __Pyx_GIVEREF(__pyx_tuple__11); /* "pywt/_extensions/_dwt.pyx":205 * wavelet.w, mode) * if retval < 0: * raise RuntimeError("C idwt failed.") # <<<<<<<<<<<<<< * elif cA.dtype == np.float32: * rec = np.zeros(rec_len, dtype=np.float32) */ __pyx_tuple__12 = PyTuple_Pack(1, __pyx_kp_u_C_idwt_failed); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 205, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__12); __Pyx_GIVEREF(__pyx_tuple__12); /* "pywt/_extensions/_dwt.pyx":297 * wavelet.w, axis, mode) * if retval: * raise RuntimeError("C inverse wavelet transform failed") # <<<<<<<<<<<<<< * elif output.dtype == np.float32: * with nogil: */ __pyx_tuple__13 = PyTuple_Pack(1, __pyx_kp_u_C_inverse_wavelet_transform_fail); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(0, 297, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__13); __Pyx_GIVEREF(__pyx_tuple__13); /* "pywt/_extensions/_dwt.pyx":340 * * if level < 1: * raise ValueError("Value of level must be greater than 0.") # <<<<<<<<<<<<<< * * for i in range(level): */ __pyx_tuple__14 = PyTuple_Pack(1, __pyx_kp_u_Value_of_level_must_be_greater_t); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 340, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__14); __Pyx_GIVEREF(__pyx_tuple__14); /* "pywt/_extensions/_dwt.pyx":374 * &rec[0], rec_len) * if retval < 0: * raise RuntimeError("C rec_a failed.") # <<<<<<<<<<<<<< * else: * with nogil: */ __pyx_tuple__15 = PyTuple_Pack(1, __pyx_kp_u_C_rec_a_failed); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(0, 374, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__15); __Pyx_GIVEREF(__pyx_tuple__15); /* "pywt/_extensions/_dwt.pyx":380 * &rec[0], rec_len) * if retval < 0: * raise RuntimeError("C rec_d failed.") # <<<<<<<<<<<<<< * IF HAVE_C99_CPLX: * if cdata_t is np.complex128_t: */ __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_u_C_rec_d_failed); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(0, 380, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__16); __Pyx_GIVEREF(__pyx_tuple__16); /* "pywt/_extensions/_dwt.pyx":464 * &coeffs[0], output_len, mode) * if retval < 0: * raise RuntimeError("C dec_a failed.") # <<<<<<<<<<<<<< * else: * with nogil: */ __pyx_tuple__17 = PyTuple_Pack(1, __pyx_kp_u_C_dec_a_failed); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(0, 464, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__17); __Pyx_GIVEREF(__pyx_tuple__17); /* "pywt/_extensions/_dwt.pyx":470 * &coeffs[0], output_len, mode) * if retval < 0: * raise RuntimeError("C dec_d failed.") # <<<<<<<<<<<<<< * IF HAVE_C99_CPLX: * if cdata_t is np.complex128_t: */ __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_u_C_dec_d_failed); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 470, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__18); __Pyx_GIVEREF(__pyx_tuple__18); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":272 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) */ __pyx_tuple__19 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(1, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__19); __Pyx_GIVEREF(__pyx_tuple__19); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":276 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< * * info.buf = PyArray_DATA(self) */ __pyx_tuple__20 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(1, 276, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__20); __Pyx_GIVEREF(__pyx_tuple__20); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":306 * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" */ __pyx_tuple__21 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(1, 306, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__21); __Pyx_GIVEREF(__pyx_tuple__21); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":856 * * if (end - f) - (new_offset - offset[0]) < 15: * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") # <<<<<<<<<<<<<< * * if ((child.byteorder == c'>' and little_endian) or */ __pyx_tuple__22 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(1, 856, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__22); __Pyx_GIVEREF(__pyx_tuple__22); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":880 * t = child.type_num * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< * * # Until ticket #99 is fixed, use integers to avoid warnings */ __pyx_tuple__23 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(1, 880, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__23); __Pyx_GIVEREF(__pyx_tuple__23); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1038 * _import_array() * except Exception: * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< * * cdef inline int import_umath() except -1: */ __pyx_tuple__24 = PyTuple_Pack(1, __pyx_kp_u_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(1, 1038, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__24); __Pyx_GIVEREF(__pyx_tuple__24); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1044 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< * * cdef inline int import_ufunc() except -1: */ __pyx_tuple__25 = PyTuple_Pack(1, __pyx_kp_u_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(1, 1044, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__25); __Pyx_GIVEREF(__pyx_tuple__25); /* "View.MemoryView":133 * * if not self.ndim: * raise ValueError("Empty shape tuple for cython.array") # <<<<<<<<<<<<<< * * if itemsize <= 0: */ __pyx_tuple__26 = PyTuple_Pack(1, __pyx_kp_s_Empty_shape_tuple_for_cython_arr); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(2, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__26); __Pyx_GIVEREF(__pyx_tuple__26); /* "View.MemoryView":136 * * if itemsize <= 0: * raise ValueError("itemsize <= 0 for cython.array") # <<<<<<<<<<<<<< * * if not isinstance(format, bytes): */ __pyx_tuple__27 = PyTuple_Pack(1, __pyx_kp_s_itemsize_0_for_cython_array); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(2, 136, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__27); __Pyx_GIVEREF(__pyx_tuple__27); /* "View.MemoryView":148 * * if not self._shape: * raise MemoryError("unable to allocate shape and strides.") # <<<<<<<<<<<<<< * * */ __pyx_tuple__28 = PyTuple_Pack(1, __pyx_kp_s_unable_to_allocate_shape_and_str); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(2, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__28); __Pyx_GIVEREF(__pyx_tuple__28); /* "View.MemoryView":176 * self.data = malloc(self.len) * if not self.data: * raise MemoryError("unable to allocate array data.") # <<<<<<<<<<<<<< * * if self.dtype_is_object: */ __pyx_tuple__29 = PyTuple_Pack(1, __pyx_kp_s_unable_to_allocate_array_data); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(2, 176, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__29); __Pyx_GIVEREF(__pyx_tuple__29); /* "View.MemoryView":192 * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): * raise ValueError("Can only create a buffer that is contiguous in memory.") # <<<<<<<<<<<<<< * info.buf = self.data * info.len = self.len */ __pyx_tuple__30 = PyTuple_Pack(1, __pyx_kp_s_Can_only_create_a_buffer_that_is); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(2, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__30); __Pyx_GIVEREF(__pyx_tuple__30); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ __pyx_tuple__31 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(2, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__31); __Pyx_GIVEREF(__pyx_tuple__31); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ __pyx_tuple__32 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(2, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__32); __Pyx_GIVEREF(__pyx_tuple__32); /* "View.MemoryView":418 * def __setitem__(memoryview self, object index, object value): * if self.view.readonly: * raise TypeError("Cannot assign to read-only memoryview") # <<<<<<<<<<<<<< * * have_slices, index = _unellipsify(index, self.view.ndim) */ __pyx_tuple__33 = PyTuple_Pack(1, __pyx_kp_s_Cannot_assign_to_read_only_memor); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(2, 418, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__33); __Pyx_GIVEREF(__pyx_tuple__33); /* "View.MemoryView":495 * result = struct.unpack(self.view.format, bytesitem) * except struct.error: * raise ValueError("Unable to convert item to object") # <<<<<<<<<<<<<< * else: * if len(self.view.format) == 1: */ __pyx_tuple__34 = PyTuple_Pack(1, __pyx_kp_s_Unable_to_convert_item_to_object); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(2, 495, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__34); __Pyx_GIVEREF(__pyx_tuple__34); /* "View.MemoryView":520 * def __getbuffer__(self, Py_buffer *info, int flags): * if flags & PyBUF_WRITABLE and self.view.readonly: * raise ValueError("Cannot create writable memory view from read-only memoryview") # <<<<<<<<<<<<<< * * if flags & PyBUF_ND: */ __pyx_tuple__35 = PyTuple_Pack(1, __pyx_kp_s_Cannot_create_writable_memory_vi); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(2, 520, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__35); __Pyx_GIVEREF(__pyx_tuple__35); /* "View.MemoryView":570 * if self.view.strides == NULL: * * raise ValueError("Buffer view does not expose strides") # <<<<<<<<<<<<<< * * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) */ __pyx_tuple__36 = PyTuple_Pack(1, __pyx_kp_s_Buffer_view_does_not_expose_stri); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(2, 570, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__36); __Pyx_GIVEREF(__pyx_tuple__36); /* "View.MemoryView":577 * def suboffsets(self): * if self.view.suboffsets == NULL: * return (-1,) * self.view.ndim # <<<<<<<<<<<<<< * * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]]) */ __pyx_tuple__37 = PyTuple_New(1); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(2, 577, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__37); __Pyx_INCREF(__pyx_int_neg_1); __Pyx_GIVEREF(__pyx_int_neg_1); PyTuple_SET_ITEM(__pyx_tuple__37, 0, __pyx_int_neg_1); __Pyx_GIVEREF(__pyx_tuple__37); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ __pyx_tuple__38 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(2, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__38); __Pyx_GIVEREF(__pyx_tuple__38); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ __pyx_tuple__39 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(2, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__39); __Pyx_GIVEREF(__pyx_tuple__39); /* "View.MemoryView":682 * if item is Ellipsis: * if not seen_ellipsis: * result.extend([slice(None)] * (ndim - len(tup) + 1)) # <<<<<<<<<<<<<< * seen_ellipsis = True * else: */ __pyx_slice__40 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__40)) __PYX_ERR(2, 682, __pyx_L1_error) __Pyx_GOTREF(__pyx_slice__40); __Pyx_GIVEREF(__pyx_slice__40); /* "View.MemoryView":703 * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: * raise ValueError("Indirect dimensions not supported") # <<<<<<<<<<<<<< * * */ __pyx_tuple__41 = PyTuple_Pack(1, __pyx_kp_s_Indirect_dimensions_not_supporte); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(2, 703, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__41); __Pyx_GIVEREF(__pyx_tuple__41); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ __pyx_tuple__42 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__42)) __PYX_ERR(2, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__42); __Pyx_GIVEREF(__pyx_tuple__42); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ __pyx_tuple__43 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__43)) __PYX_ERR(2, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__43); __Pyx_GIVEREF(__pyx_tuple__43); /* "pywt/_extensions/_dwt.pyx":25 * return common.dwt_buffer_length(data_len, filter_len, mode) * * cpdef dwt_single(cdata_t[::1] data, Wavelet wavelet, MODE mode): # <<<<<<<<<<<<<< * cdef size_t output_len = dwt_coeff_len(data.size, wavelet.dec_len, mode) * cdef np.ndarray cA, cD */ __pyx_tuple__49 = PyTuple_Pack(3, __pyx_n_s_data, __pyx_n_s_wavelet, __pyx_n_s_mode); if (unlikely(!__pyx_tuple__49)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__49); __Pyx_GIVEREF(__pyx_tuple__49); __pyx_codeobj__50 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__49, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pywt__extensions__dwt_pyx, __pyx_n_s_pyx_fuse_0dwt_single, 25, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__50)) __PYX_ERR(0, 25, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":331 * * * cpdef upcoef(bint do_rec_a, cdata_t[::1] coeffs, Wavelet wavelet, int level, # <<<<<<<<<<<<<< * size_t take): * cdef cdata_t[::1] rec */ __pyx_tuple__51 = PyTuple_Pack(5, __pyx_n_s_do_rec_a, __pyx_n_s_coeffs, __pyx_n_s_wavelet, __pyx_n_s_level, __pyx_n_s_take); if (unlikely(!__pyx_tuple__51)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__51); __Pyx_GIVEREF(__pyx_tuple__51); __pyx_codeobj__52 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__51, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pywt__extensions__dwt_pyx, __pyx_n_s_pyx_fuse_0upcoef, 331, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__52)) __PYX_ERR(0, 331, __pyx_L1_error) /* "pywt/_extensions/_dwt.pyx":424 * * * cpdef downcoef(bint do_dec_a, cdata_t[::1] data, Wavelet wavelet, MODE mode, int level): # <<<<<<<<<<<<<< * cdef cdata_t[::1] coeffs * cdef int i, retval */ __pyx_tuple__53 = PyTuple_Pack(5, __pyx_n_s_do_dec_a, __pyx_n_s_data, __pyx_n_s_wavelet, __pyx_n_s_mode, __pyx_n_s_level); if (unlikely(!__pyx_tuple__53)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__53); __Pyx_GIVEREF(__pyx_tuple__53); __pyx_codeobj__54 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__53, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pywt__extensions__dwt_pyx, __pyx_n_s_pyx_fuse_0downcoef, 424, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__54)) __PYX_ERR(0, 424, __pyx_L1_error) /* "View.MemoryView":286 * return self.name * * cdef generic = Enum("") # <<<<<<<<<<<<<< * cdef strided = Enum("") # default * cdef indirect = Enum("") */ __pyx_tuple__55 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct_or_indirect); if (unlikely(!__pyx_tuple__55)) __PYX_ERR(2, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__55); __Pyx_GIVEREF(__pyx_tuple__55); /* "View.MemoryView":287 * * cdef generic = Enum("") * cdef strided = Enum("") # default # <<<<<<<<<<<<<< * cdef indirect = Enum("") * */ __pyx_tuple__56 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct); if (unlikely(!__pyx_tuple__56)) __PYX_ERR(2, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__56); __Pyx_GIVEREF(__pyx_tuple__56); /* "View.MemoryView":288 * cdef generic = Enum("") * cdef strided = Enum("") # default * cdef indirect = Enum("") # <<<<<<<<<<<<<< * * */ __pyx_tuple__57 = PyTuple_Pack(1, __pyx_kp_s_strided_and_indirect); if (unlikely(!__pyx_tuple__57)) __PYX_ERR(2, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__57); __Pyx_GIVEREF(__pyx_tuple__57); /* "View.MemoryView":291 * * * cdef contiguous = Enum("") # <<<<<<<<<<<<<< * cdef indirect_contiguous = Enum("") * */ __pyx_tuple__58 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_direct); if (unlikely(!__pyx_tuple__58)) __PYX_ERR(2, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__58); __Pyx_GIVEREF(__pyx_tuple__58); /* "View.MemoryView":292 * * cdef contiguous = Enum("") * cdef indirect_contiguous = Enum("") # <<<<<<<<<<<<<< * * */ __pyx_tuple__59 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_indirect); if (unlikely(!__pyx_tuple__59)) __PYX_ERR(2, 292, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__59); __Pyx_GIVEREF(__pyx_tuple__59); /* "(tree fragment)":1 * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_PickleError * cdef object __pyx_result */ __pyx_tuple__60 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__60)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__60); __Pyx_GIVEREF(__pyx_tuple__60); __pyx_codeobj__61 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__60, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Enum, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__61)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_RefNannyFinishContext(); return -1; } static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error); __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_5 = PyInt_FromLong(5); if (unlikely(!__pyx_int_5)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_184977713 = PyInt_FromLong(184977713L); if (unlikely(!__pyx_int_184977713)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) __PYX_ERR(0, 1, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; } static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/ static int __Pyx_modinit_global_init_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0); /*--- Global init code ---*/ generic = Py_None; Py_INCREF(Py_None); strided = Py_None; Py_INCREF(Py_None); indirect = Py_None; Py_INCREF(Py_None); contiguous = Py_None; Py_INCREF(Py_None); indirect_contiguous = Py_None; Py_INCREF(Py_None); __Pyx_RefNannyFinishContext(); return 0; } static int __Pyx_modinit_variable_export_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0); /*--- Variable export code ---*/ __Pyx_RefNannyFinishContext(); return 0; } static int __Pyx_modinit_function_export_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); /*--- Function export code ---*/ if (__Pyx_ExportFunction("__pyx_fuse_0upcoef", (void (*)(void))__pyx_fuse_0__pyx_f_4pywt_11_extensions_4_dwt_upcoef, "PyObject *(int, __Pyx_memviewslice, struct WaveletObject *, int, size_t, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error) if (__Pyx_ExportFunction("__pyx_fuse_1upcoef", (void (*)(void))__pyx_fuse_1__pyx_f_4pywt_11_extensions_4_dwt_upcoef, "PyObject *(int, __Pyx_memviewslice, struct WaveletObject *, int, size_t, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error) if (__Pyx_ExportFunction("__pyx_fuse_2upcoef", (void (*)(void))__pyx_fuse_2__pyx_f_4pywt_11_extensions_4_dwt_upcoef, "PyObject *(int, __Pyx_memviewslice, struct WaveletObject *, int, size_t, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error) if (__Pyx_ExportFunction("__pyx_fuse_3upcoef", (void (*)(void))__pyx_fuse_3__pyx_f_4pywt_11_extensions_4_dwt_upcoef, "PyObject *(int, __Pyx_memviewslice, struct WaveletObject *, int, size_t, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_RefNannyFinishContext(); return -1; } static int __Pyx_modinit_type_init_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); /*--- Type init code ---*/ __pyx_vtabptr_array = &__pyx_vtable_array; __pyx_vtable_array.get_memview = (PyObject *(*)(struct __pyx_array_obj *))__pyx_array_get_memview; if (PyType_Ready(&__pyx_type___pyx_array) < 0) __PYX_ERR(2, 105, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type___pyx_array.tp_print = 0; #endif if (__Pyx_SetVtable(__pyx_type___pyx_array.tp_dict, __pyx_vtabptr_array) < 0) __PYX_ERR(2, 105, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_array) < 0) __PYX_ERR(2, 105, __pyx_L1_error) __pyx_array_type = &__pyx_type___pyx_array; if (PyType_Ready(&__pyx_type___pyx_MemviewEnum) < 0) __PYX_ERR(2, 279, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type___pyx_MemviewEnum.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type___pyx_MemviewEnum.tp_dictoffset && __pyx_type___pyx_MemviewEnum.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type___pyx_MemviewEnum.tp_getattro = __Pyx_PyObject_GenericGetAttr; } if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_MemviewEnum) < 0) __PYX_ERR(2, 279, __pyx_L1_error) __pyx_MemviewEnum_type = &__pyx_type___pyx_MemviewEnum; __pyx_vtabptr_memoryview = &__pyx_vtable_memoryview; __pyx_vtable_memoryview.get_item_pointer = (char *(*)(struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_get_item_pointer; __pyx_vtable_memoryview.is_slice = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_is_slice; __pyx_vtable_memoryview.setitem_slice_assignment = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *, PyObject *))__pyx_memoryview_setitem_slice_assignment; __pyx_vtable_memoryview.setitem_slice_assign_scalar = (PyObject *(*)(struct __pyx_memoryview_obj *, struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_setitem_slice_assign_scalar; __pyx_vtable_memoryview.setitem_indexed = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *, PyObject *))__pyx_memoryview_setitem_indexed; __pyx_vtable_memoryview.convert_item_to_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *))__pyx_memoryview_convert_item_to_object; __pyx_vtable_memoryview.assign_item_from_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *, PyObject *))__pyx_memoryview_assign_item_from_object; if (PyType_Ready(&__pyx_type___pyx_memoryview) < 0) __PYX_ERR(2, 330, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type___pyx_memoryview.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type___pyx_memoryview.tp_dictoffset && __pyx_type___pyx_memoryview.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type___pyx_memoryview.tp_getattro = __Pyx_PyObject_GenericGetAttr; } if (__Pyx_SetVtable(__pyx_type___pyx_memoryview.tp_dict, __pyx_vtabptr_memoryview) < 0) __PYX_ERR(2, 330, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_memoryview) < 0) __PYX_ERR(2, 330, __pyx_L1_error) __pyx_memoryview_type = &__pyx_type___pyx_memoryview; __pyx_vtabptr__memoryviewslice = &__pyx_vtable__memoryviewslice; __pyx_vtable__memoryviewslice.__pyx_base = *__pyx_vtabptr_memoryview; __pyx_vtable__memoryviewslice.__pyx_base.convert_item_to_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *))__pyx_memoryviewslice_convert_item_to_object; __pyx_vtable__memoryviewslice.__pyx_base.assign_item_from_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *, PyObject *))__pyx_memoryviewslice_assign_item_from_object; __pyx_type___pyx_memoryviewslice.tp_base = __pyx_memoryview_type; if (PyType_Ready(&__pyx_type___pyx_memoryviewslice) < 0) __PYX_ERR(2, 965, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type___pyx_memoryviewslice.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type___pyx_memoryviewslice.tp_dictoffset && __pyx_type___pyx_memoryviewslice.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type___pyx_memoryviewslice.tp_getattro = __Pyx_PyObject_GenericGetAttr; } if (__Pyx_SetVtable(__pyx_type___pyx_memoryviewslice.tp_dict, __pyx_vtabptr__memoryviewslice) < 0) __PYX_ERR(2, 965, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_memoryviewslice) < 0) __PYX_ERR(2, 965, __pyx_L1_error) __pyx_memoryviewslice_type = &__pyx_type___pyx_memoryviewslice; __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_RefNannyFinishContext(); return -1; } static int __Pyx_modinit_type_import_code(void) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); /*--- Type import code ---*/ __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type", #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 sizeof(PyTypeObject), #else sizeof(PyHeapTypeObject), #endif __Pyx_ImportType_CheckSize_Warn); if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(3, 9, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore); if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(1, 206, __pyx_L1_error) __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Warn); if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(1, 229, __pyx_L1_error) __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Warn); if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(1, 233, __pyx_L1_error) __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore); if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(1, 242, __pyx_L1_error) __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Warn); if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(1, 918, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyImport_ImportModule("pywt._extensions._pywt"); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 23, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet = __Pyx_ImportType(__pyx_t_1, "pywt._extensions._pywt", "Wavelet", sizeof(struct WaveletObject), __Pyx_ImportType_CheckSize_Warn); if (!__pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet) __PYX_ERR(4, 23, __pyx_L1_error) __pyx_ptype_4pywt_11_extensions_5_pywt_ContinuousWavelet = __Pyx_ImportType(__pyx_t_1, "pywt._extensions._pywt", "ContinuousWavelet", sizeof(struct ContinuousWaveletObject), __Pyx_ImportType_CheckSize_Warn); if (!__pyx_ptype_4pywt_11_extensions_5_pywt_ContinuousWavelet) __PYX_ERR(4, 29, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); return -1; } static int __Pyx_modinit_variable_import_code(void) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0); /*--- Variable import code ---*/ __pyx_t_1 = PyImport_ImportModule("pywt._extensions._pywt"); if (!__pyx_t_1) __PYX_ERR(0, 1, __pyx_L1_error) if (__Pyx_ImportVoidPtr(__pyx_t_1, "have_c99_complex", (void **)&__pyx_vp_4pywt_11_extensions_5_pywt_have_c99_complex, "int") < 0) __PYX_ERR(0, 1, __pyx_L1_error) Py_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); return -1; } static int __Pyx_modinit_function_import_code(void) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); /*--- Function import code ---*/ __pyx_t_1 = PyImport_ImportModule("pywt._extensions._pywt"); if (!__pyx_t_1) __PYX_ERR(0, 1, __pyx_L1_error) if (__Pyx_ImportFunction(__pyx_t_1, "_check_dtype", (void (**)(void))&__pyx_f_4pywt_11_extensions_5_pywt__check_dtype, "PyArray_Descr *(PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error) Py_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); return -1; } #if PY_MAJOR_VERSION < 3 #ifdef CYTHON_NO_PYINIT_EXPORT #define __Pyx_PyMODINIT_FUNC void #else #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC #endif #else #ifdef CYTHON_NO_PYINIT_EXPORT #define __Pyx_PyMODINIT_FUNC PyObject * #else #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC #endif #endif #if PY_MAJOR_VERSION < 3 __Pyx_PyMODINIT_FUNC init_dwt(void) CYTHON_SMALL_CODE; /*proto*/ __Pyx_PyMODINIT_FUNC init_dwt(void) #else __Pyx_PyMODINIT_FUNC PyInit__dwt(void) CYTHON_SMALL_CODE; /*proto*/ __Pyx_PyMODINIT_FUNC PyInit__dwt(void) #if CYTHON_PEP489_MULTI_PHASE_INIT { return PyModuleDef_Init(&__pyx_moduledef); } static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) { #if PY_VERSION_HEX >= 0x030700A1 static PY_INT64_T main_interpreter_id = -1; PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp); if (main_interpreter_id == -1) { main_interpreter_id = current_id; return (unlikely(current_id == -1)) ? -1 : 0; } else if (unlikely(main_interpreter_id != current_id)) #else static PyInterpreterState *main_interpreter = NULL; PyInterpreterState *current_interpreter = PyThreadState_Get()->interp; if (!main_interpreter) { main_interpreter = current_interpreter; } else if (unlikely(main_interpreter != current_interpreter)) #endif { PyErr_SetString( PyExc_ImportError, "Interpreter change detected - this module can only be loaded into one interpreter per process."); return -1; } return 0; } static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) { PyObject *value = PyObject_GetAttrString(spec, from_name); int result = 0; if (likely(value)) { if (allow_none || value != Py_None) { result = PyDict_SetItemString(moddict, to_name, value); } Py_DECREF(value); } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) { PyErr_Clear(); } else { result = -1; } return result; } static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) { PyObject *module = NULL, *moddict, *modname; if (__Pyx_check_single_interpreter()) return NULL; if (__pyx_m) return __Pyx_NewRef(__pyx_m); modname = PyObject_GetAttrString(spec, "name"); if (unlikely(!modname)) goto bad; module = PyModule_NewObject(modname); Py_DECREF(modname); if (unlikely(!module)) goto bad; moddict = PyModule_GetDict(module); if (unlikely(!moddict)) goto bad; if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad; if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad; if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad; if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad; return module; bad: Py_XDECREF(module); return NULL; } static CYTHON_SMALL_CODE int __pyx_pymod_exec__dwt(PyObject *__pyx_pyinit_module) #endif #endif { PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; static PyThread_type_lock __pyx_t_8[8]; __Pyx_RefNannyDeclarations #if CYTHON_PEP489_MULTI_PHASE_INIT if (__pyx_m) { if (__pyx_m == __pyx_pyinit_module) return 0; PyErr_SetString(PyExc_RuntimeError, "Module '_dwt' has already been imported. Re-initialisation is not supported."); return -1; } #elif PY_MAJOR_VERSION >= 3 if (__pyx_m) return __Pyx_NewRef(__pyx_m); #endif #if CYTHON_REFNANNY __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); if (!__Pyx_RefNanny) { PyErr_Clear(); __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); if (!__Pyx_RefNanny) Py_FatalError("failed to import 'refnanny' module"); } #endif __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit__dwt(void)", 0); if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #ifdef __Pxy_PyFrame_Initialize_Offsets __Pxy_PyFrame_Initialize_Offsets(); #endif __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error) #ifdef __Pyx_CyFunction_USED if (__pyx_CyFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_FusedFunction_USED if (__pyx_FusedFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_Coroutine_USED if (__pyx_Coroutine_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_Generator_USED if (__pyx_Generator_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_AsyncGen_USED if (__pyx_AsyncGen_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_StopAsyncIteration_USED if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif /*--- Library function declarations ---*/ /*--- Threads initialization code ---*/ #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS #ifdef WITH_THREAD /* Python build with threading support? */ PyEval_InitThreads(); #endif #endif /*--- Module creation code ---*/ #if CYTHON_PEP489_MULTI_PHASE_INIT __pyx_m = __pyx_pyinit_module; Py_INCREF(__pyx_m); #else #if PY_MAJOR_VERSION < 3 __pyx_m = Py_InitModule4("_dwt", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); #else __pyx_m = PyModule_Create(&__pyx_moduledef); #endif if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error) #endif __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error) Py_INCREF(__pyx_d); __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error) Py_INCREF(__pyx_b); __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error) Py_INCREF(__pyx_cython_runtime); if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error); /*--- Initialize various global constants etc. ---*/ if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif if (__pyx_module_is_main_pywt___extensions___dwt) { if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name_2, __pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error) } #if PY_MAJOR_VERSION >= 3 { PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error) if (!PyDict_GetItemString(modules, "pywt._extensions._dwt")) { if (unlikely(PyDict_SetItemString(modules, "pywt._extensions._dwt", __pyx_m) < 0)) __PYX_ERR(0, 1, __pyx_L1_error) } } #endif /*--- Builtin init code ---*/ if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; /*--- Constants init code ---*/ if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; /*--- Global type/function init code ---*/ (void)__Pyx_modinit_global_init_code(); (void)__Pyx_modinit_variable_export_code(); if (unlikely(__Pyx_modinit_function_export_code() != 0)) goto __pyx_L1_error; if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; if (unlikely(__Pyx_modinit_variable_import_code() != 0)) goto __pyx_L1_error; if (unlikely(__Pyx_modinit_function_import_code() != 0)) goto __pyx_L1_error; /*--- Execution code ---*/ #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif /* "pywt/_extensions/_dwt.pyx":8 * * cimport numpy as np * import numpy as np # <<<<<<<<<<<<<< * * include "config.pxi" */ __pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_1) < 0) __PYX_ERR(0, 8, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_dwt.pyx":25 * return common.dwt_buffer_length(data_len, filter_len, mode) * * cpdef dwt_single(cdata_t[::1] data, Wavelet wavelet, MODE mode): # <<<<<<<<<<<<<< * cdef size_t output_len = dwt_coeff_len(data.size, wavelet.dec_len, mode) * cdef np.ndarray cA, cD */ __pyx_t_1 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0__pyx_mdef_4pywt_11_extensions_4_dwt_17__pyx_fuse_0dwt_single, 0, __pyx_n_s_pyx_fuse_0dwt_single, NULL, __pyx_n_s_pywt__extensions__dwt, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_empty_tuple); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_float32_t, __pyx_t_2) < 0) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1__pyx_mdef_4pywt_11_extensions_4_dwt_19__pyx_fuse_1dwt_single, 0, __pyx_n_s_pyx_fuse_1dwt_single, NULL, __pyx_n_s_pywt__extensions__dwt, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_empty_tuple); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_float64_t, __pyx_t_2) < 0) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2__pyx_mdef_4pywt_11_extensions_4_dwt_21__pyx_fuse_2dwt_single, 0, __pyx_n_s_pyx_fuse_2dwt_single, NULL, __pyx_n_s_pywt__extensions__dwt, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_empty_tuple); if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_float_complex, __pyx_t_2) < 0) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3__pyx_mdef_4pywt_11_extensions_4_dwt_23__pyx_fuse_3dwt_single, 0, __pyx_n_s_pyx_fuse_3dwt_single, NULL, __pyx_n_s_pywt__extensions__dwt, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_empty_tuple); if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_complex, __pyx_t_2) < 0) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_FusedFunction_NewEx(&__pyx_mdef_4pywt_11_extensions_4_dwt_5dwt_single, 0, __pyx_n_s_dwt_single, NULL, __pyx_n_s_pywt__extensions__dwt, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_empty_tuple); ((__pyx_FusedFunctionObject *) __pyx_t_2)->__signatures__ = __pyx_t_1; __Pyx_GIVEREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_dwt_single, __pyx_t_2) < 0) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_dwt.pyx":331 * * * cpdef upcoef(bint do_rec_a, cdata_t[::1] coeffs, Wavelet wavelet, int level, # <<<<<<<<<<<<<< * size_t take): * cdef cdata_t[::1] rec */ __pyx_t_3 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0__pyx_mdef_4pywt_11_extensions_4_dwt_27__pyx_fuse_0upcoef, 0, __pyx_n_s_pyx_fuse_0upcoef, NULL, __pyx_n_s_pywt__extensions__dwt, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_empty_tuple); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_float32_t, __pyx_t_4) < 0) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1__pyx_mdef_4pywt_11_extensions_4_dwt_29__pyx_fuse_1upcoef, 0, __pyx_n_s_pyx_fuse_1upcoef, NULL, __pyx_n_s_pywt__extensions__dwt, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_empty_tuple); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_float64_t, __pyx_t_4) < 0) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2__pyx_mdef_4pywt_11_extensions_4_dwt_31__pyx_fuse_2upcoef, 0, __pyx_n_s_pyx_fuse_2upcoef, NULL, __pyx_n_s_pywt__extensions__dwt, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_empty_tuple); if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_float_complex, __pyx_t_4) < 0) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3__pyx_mdef_4pywt_11_extensions_4_dwt_33__pyx_fuse_3upcoef, 0, __pyx_n_s_pyx_fuse_3upcoef, NULL, __pyx_n_s_pywt__extensions__dwt, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_empty_tuple); if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_double_complex, __pyx_t_4) < 0) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __pyx_FusedFunction_NewEx(&__pyx_mdef_4pywt_11_extensions_4_dwt_13upcoef, 0, __pyx_n_s_upcoef, NULL, __pyx_n_s_pywt__extensions__dwt, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_empty_tuple); ((__pyx_FusedFunctionObject *) __pyx_t_4)->__signatures__ = __pyx_t_3; __Pyx_GIVEREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_upcoef, __pyx_t_4) < 0) __PYX_ERR(0, 331, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "pywt/_extensions/_dwt.pyx":424 * * * cpdef downcoef(bint do_dec_a, cdata_t[::1] data, Wavelet wavelet, MODE mode, int level): # <<<<<<<<<<<<<< * cdef cdata_t[::1] coeffs * cdef int i, retval */ __pyx_t_5 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0__pyx_mdef_4pywt_11_extensions_4_dwt_37__pyx_fuse_0downcoef, 0, __pyx_n_s_pyx_fuse_0downcoef, NULL, __pyx_n_s_pywt__extensions__dwt, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_empty_tuple); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_float32_t, __pyx_t_6) < 0) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1__pyx_mdef_4pywt_11_extensions_4_dwt_39__pyx_fuse_1downcoef, 0, __pyx_n_s_pyx_fuse_1downcoef, NULL, __pyx_n_s_pywt__extensions__dwt, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_empty_tuple); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_float64_t, __pyx_t_6) < 0) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2__pyx_mdef_4pywt_11_extensions_4_dwt_41__pyx_fuse_2downcoef, 0, __pyx_n_s_pyx_fuse_2downcoef, NULL, __pyx_n_s_pywt__extensions__dwt, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_empty_tuple); if (PyDict_SetItem(__pyx_t_5, __pyx_kp_s_float_complex, __pyx_t_6) < 0) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3__pyx_mdef_4pywt_11_extensions_4_dwt_43__pyx_fuse_3downcoef, 0, __pyx_n_s_pyx_fuse_3downcoef, NULL, __pyx_n_s_pywt__extensions__dwt, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_empty_tuple); if (PyDict_SetItem(__pyx_t_5, __pyx_kp_s_double_complex, __pyx_t_6) < 0) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __pyx_FusedFunction_NewEx(&__pyx_mdef_4pywt_11_extensions_4_dwt_15downcoef, 0, __pyx_n_s_downcoef, NULL, __pyx_n_s_pywt__extensions__dwt, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_empty_tuple); ((__pyx_FusedFunctionObject *) __pyx_t_6)->__signatures__ = __pyx_t_5; __Pyx_GIVEREF(__pyx_t_5); if (PyDict_SetItem(__pyx_d, __pyx_n_s_downcoef, __pyx_t_6) < 0) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "pywt/_extensions/_dwt.pyx":1 * #cython: boundscheck=False, wraparound=False # <<<<<<<<<<<<<< * from . cimport common * from . cimport c_wt */ __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_7) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "View.MemoryView":209 * info.obj = self * * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") # <<<<<<<<<<<<<< * * def __dealloc__(array self): */ __pyx_t_7 = __pyx_capsule_create(((void *)(&__pyx_array_getbuffer)), ((char *)"getbuffer(obj, view, flags)")); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem((PyObject *)__pyx_array_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_7) < 0) __PYX_ERR(2, 209, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; PyType_Modified(__pyx_array_type); /* "View.MemoryView":286 * return self.name * * cdef generic = Enum("") # <<<<<<<<<<<<<< * cdef strided = Enum("") # default * cdef indirect = Enum("") */ __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__55, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_XGOTREF(generic); __Pyx_DECREF_SET(generic, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = 0; /* "View.MemoryView":287 * * cdef generic = Enum("") * cdef strided = Enum("") # default # <<<<<<<<<<<<<< * cdef indirect = Enum("") * */ __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__56, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_XGOTREF(strided); __Pyx_DECREF_SET(strided, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = 0; /* "View.MemoryView":288 * cdef generic = Enum("") * cdef strided = Enum("") # default * cdef indirect = Enum("") # <<<<<<<<<<<<<< * * */ __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__57, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_XGOTREF(indirect); __Pyx_DECREF_SET(indirect, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = 0; /* "View.MemoryView":291 * * * cdef contiguous = Enum("") # <<<<<<<<<<<<<< * cdef indirect_contiguous = Enum("") * */ __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__58, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_XGOTREF(contiguous); __Pyx_DECREF_SET(contiguous, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = 0; /* "View.MemoryView":292 * * cdef contiguous = Enum("") * cdef indirect_contiguous = Enum("") # <<<<<<<<<<<<<< * * */ __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__59, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_XGOTREF(indirect_contiguous); __Pyx_DECREF_SET(indirect_contiguous, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = 0; /* "View.MemoryView":316 * * DEF THREAD_LOCKS_PREALLOCATED = 8 * cdef int __pyx_memoryview_thread_locks_used = 0 # <<<<<<<<<<<<<< * cdef PyThread_type_lock[THREAD_LOCKS_PREALLOCATED] __pyx_memoryview_thread_locks = [ * PyThread_allocate_lock(), */ __pyx_memoryview_thread_locks_used = 0; /* "View.MemoryView":317 * DEF THREAD_LOCKS_PREALLOCATED = 8 * cdef int __pyx_memoryview_thread_locks_used = 0 * cdef PyThread_type_lock[THREAD_LOCKS_PREALLOCATED] __pyx_memoryview_thread_locks = [ # <<<<<<<<<<<<<< * PyThread_allocate_lock(), * PyThread_allocate_lock(), */ __pyx_t_8[0] = PyThread_allocate_lock(); __pyx_t_8[1] = PyThread_allocate_lock(); __pyx_t_8[2] = PyThread_allocate_lock(); __pyx_t_8[3] = PyThread_allocate_lock(); __pyx_t_8[4] = PyThread_allocate_lock(); __pyx_t_8[5] = PyThread_allocate_lock(); __pyx_t_8[6] = PyThread_allocate_lock(); __pyx_t_8[7] = PyThread_allocate_lock(); memcpy(&(__pyx_memoryview_thread_locks[0]), __pyx_t_8, sizeof(__pyx_memoryview_thread_locks[0]) * (8)); /* "View.MemoryView":549 * info.obj = self * * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") # <<<<<<<<<<<<<< * * */ __pyx_t_7 = __pyx_capsule_create(((void *)(&__pyx_memoryview_getbuffer)), ((char *)"getbuffer(obj, view, flags)")); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem((PyObject *)__pyx_memoryview_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_7) < 0) __PYX_ERR(2, 549, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; PyType_Modified(__pyx_memoryview_type); /* "View.MemoryView":995 * return self.from_object * * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") # <<<<<<<<<<<<<< * * */ __pyx_t_7 = __pyx_capsule_create(((void *)(&__pyx_memoryview_getbuffer)), ((char *)"getbuffer(obj, view, flags)")); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem((PyObject *)__pyx_memoryviewslice_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_7) < 0) __PYX_ERR(2, 995, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; PyType_Modified(__pyx_memoryviewslice_type); /* "(tree fragment)":1 * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_PickleError * cdef object __pyx_result */ __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_15View_dot_MemoryView_1__pyx_unpickle_Enum, NULL, __pyx_n_s_View_MemoryView); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Enum, __pyx_t_7) < 0) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "BufferFormatFromTypeInfo":1464 * * @cname('__pyx_format_from_typeinfo') * cdef bytes format_from_typeinfo(__Pyx_TypeInfo *type): # <<<<<<<<<<<<<< * cdef __Pyx_StructField *field * cdef __pyx_typeinfo_string fmt */ /*--- Wrapped vars code ---*/ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); if (__pyx_m) { if (__pyx_d) { __Pyx_AddTraceback("init pywt._extensions._dwt", __pyx_clineno, __pyx_lineno, __pyx_filename); } Py_CLEAR(__pyx_m); } else if (!PyErr_Occurred()) { PyErr_SetString(PyExc_ImportError, "init pywt._extensions._dwt"); } __pyx_L0:; __Pyx_RefNannyFinishContext(); #if CYTHON_PEP489_MULTI_PHASE_INIT return (__pyx_m != NULL) ? 0 : -1; #elif PY_MAJOR_VERSION >= 3 return __pyx_m; #else return; #endif } /* --- Runtime support code --- */ /* Refnanny */ #if CYTHON_REFNANNY static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { PyObject *m = NULL, *p = NULL; void *r = NULL; m = PyImport_ImportModule(modname); if (!m) goto end; p = PyObject_GetAttrString(m, "RefNannyAPI"); if (!p) goto end; r = PyLong_AsVoidPtr(p); end: Py_XDECREF(p); Py_XDECREF(m); return (__Pyx_RefNannyAPIStruct *)r; } #endif /* PyObjectGetAttrStr */ #if CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) { PyTypeObject* tp = Py_TYPE(obj); if (likely(tp->tp_getattro)) return tp->tp_getattro(obj, attr_name); #if PY_MAJOR_VERSION < 3 if (likely(tp->tp_getattr)) return tp->tp_getattr(obj, PyString_AS_STRING(attr_name)); #endif return PyObject_GetAttr(obj, attr_name); } #endif /* GetBuiltinName */ static PyObject *__Pyx_GetBuiltinName(PyObject *name) { PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name); if (unlikely(!result)) { PyErr_Format(PyExc_NameError, #if PY_MAJOR_VERSION >= 3 "name '%U' is not defined", name); #else "name '%.200s' is not defined", PyString_AS_STRING(name)); #endif } return result; } /* RaiseArgTupleInvalid */ static void __Pyx_RaiseArgtupleInvalid( const char* func_name, int exact, Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found) { Py_ssize_t num_expected; const char *more_or_less; if (num_found < num_min) { num_expected = num_min; more_or_less = "at least"; } else { num_expected = num_max; more_or_less = "at most"; } if (exact) { more_or_less = "exactly"; } PyErr_Format(PyExc_TypeError, "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)", func_name, more_or_less, num_expected, (num_expected == 1) ? "" : "s", num_found); } /* RaiseDoubleKeywords */ static void __Pyx_RaiseDoubleKeywordsError( const char* func_name, PyObject* kw_name) { PyErr_Format(PyExc_TypeError, #if PY_MAJOR_VERSION >= 3 "%s() got multiple values for keyword argument '%U'", func_name, kw_name); #else "%s() got multiple values for keyword argument '%s'", func_name, PyString_AsString(kw_name)); #endif } /* ParseKeywords */ static int __Pyx_ParseOptionalKeywords( PyObject *kwds, PyObject **argnames[], PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, const char* function_name) { PyObject *key = 0, *value = 0; Py_ssize_t pos = 0; PyObject*** name; PyObject*** first_kw_arg = argnames + num_pos_args; while (PyDict_Next(kwds, &pos, &key, &value)) { name = first_kw_arg; while (*name && (**name != key)) name++; if (*name) { values[name-argnames] = value; continue; } name = first_kw_arg; #if PY_MAJOR_VERSION < 3 if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { while (*name) { if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) && _PyString_Eq(**name, key)) { values[name-argnames] = value; break; } name++; } if (*name) continue; else { PyObject*** argname = argnames; while (argname != first_kw_arg) { if ((**argname == key) || ( (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key)) && _PyString_Eq(**argname, key))) { goto arg_passed_twice; } argname++; } } } else #endif if (likely(PyUnicode_Check(key))) { while (*name) { int cmp = (**name == key) ? 0 : #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : #endif PyUnicode_Compare(**name, key); if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; if (cmp == 0) { values[name-argnames] = value; break; } name++; } if (*name) continue; else { PyObject*** argname = argnames; while (argname != first_kw_arg) { int cmp = (**argname == key) ? 0 : #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : #endif PyUnicode_Compare(**argname, key); if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; if (cmp == 0) goto arg_passed_twice; argname++; } } } else goto invalid_keyword_type; if (kwds2) { if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; } else { goto invalid_keyword; } } return 0; arg_passed_twice: __Pyx_RaiseDoubleKeywordsError(function_name, key); goto bad; invalid_keyword_type: PyErr_Format(PyExc_TypeError, "%.200s() keywords must be strings", function_name); goto bad; invalid_keyword: PyErr_Format(PyExc_TypeError, #if PY_MAJOR_VERSION < 3 "%.200s() got an unexpected keyword argument '%.200s'", function_name, PyString_AsString(key)); #else "%s() got an unexpected keyword argument '%U'", function_name, key); #endif bad: return -1; } /* PyObjectCall */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { PyObject *result; ternaryfunc call = func->ob_type->tp_call; if (unlikely(!call)) return PyObject_Call(func, arg, kw); if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) return NULL; result = (*call)(func, arg, kw); Py_LeaveRecursiveCall(); if (unlikely(!result) && unlikely(!PyErr_Occurred())) { PyErr_SetString( PyExc_SystemError, "NULL result without error in PyObject_Call"); } return result; } #endif /* PyErrFetchRestore */ #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; tmp_type = tstate->curexc_type; tmp_value = tstate->curexc_value; tmp_tb = tstate->curexc_traceback; tstate->curexc_type = type; tstate->curexc_value = value; tstate->curexc_traceback = tb; Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); } static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { *type = tstate->curexc_type; *value = tstate->curexc_value; *tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; } #endif /* RaiseException */ #if PY_MAJOR_VERSION < 3 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, CYTHON_UNUSED PyObject *cause) { __Pyx_PyThreadState_declare Py_XINCREF(type); if (!value || value == Py_None) value = NULL; else Py_INCREF(value); if (!tb || tb == Py_None) tb = NULL; else { Py_INCREF(tb); if (!PyTraceBack_Check(tb)) { PyErr_SetString(PyExc_TypeError, "raise: arg 3 must be a traceback or None"); goto raise_error; } } if (PyType_Check(type)) { #if CYTHON_COMPILING_IN_PYPY if (!value) { Py_INCREF(Py_None); value = Py_None; } #endif PyErr_NormalizeException(&type, &value, &tb); } else { if (value) { PyErr_SetString(PyExc_TypeError, "instance exception may not have a separate value"); goto raise_error; } value = type; type = (PyObject*) Py_TYPE(type); Py_INCREF(type); if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { PyErr_SetString(PyExc_TypeError, "raise: exception class must be a subclass of BaseException"); goto raise_error; } } __Pyx_PyThreadState_assign __Pyx_ErrRestore(type, value, tb); return; raise_error: Py_XDECREF(value); Py_XDECREF(type); Py_XDECREF(tb); return; } #else static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { PyObject* owned_instance = NULL; if (tb == Py_None) { tb = 0; } else if (tb && !PyTraceBack_Check(tb)) { PyErr_SetString(PyExc_TypeError, "raise: arg 3 must be a traceback or None"); goto bad; } if (value == Py_None) value = 0; if (PyExceptionInstance_Check(type)) { if (value) { PyErr_SetString(PyExc_TypeError, "instance exception may not have a separate value"); goto bad; } value = type; type = (PyObject*) Py_TYPE(value); } else if (PyExceptionClass_Check(type)) { PyObject *instance_class = NULL; if (value && PyExceptionInstance_Check(value)) { instance_class = (PyObject*) Py_TYPE(value); if (instance_class != type) { int is_subclass = PyObject_IsSubclass(instance_class, type); if (!is_subclass) { instance_class = NULL; } else if (unlikely(is_subclass == -1)) { goto bad; } else { type = instance_class; } } } if (!instance_class) { PyObject *args; if (!value) args = PyTuple_New(0); else if (PyTuple_Check(value)) { Py_INCREF(value); args = value; } else args = PyTuple_Pack(1, value); if (!args) goto bad; owned_instance = PyObject_Call(type, args, NULL); Py_DECREF(args); if (!owned_instance) goto bad; value = owned_instance; if (!PyExceptionInstance_Check(value)) { PyErr_Format(PyExc_TypeError, "calling %R should have returned an instance of " "BaseException, not %R", type, Py_TYPE(value)); goto bad; } } } else { PyErr_SetString(PyExc_TypeError, "raise: exception class must be a subclass of BaseException"); goto bad; } if (cause) { PyObject *fixed_cause; if (cause == Py_None) { fixed_cause = NULL; } else if (PyExceptionClass_Check(cause)) { fixed_cause = PyObject_CallObject(cause, NULL); if (fixed_cause == NULL) goto bad; } else if (PyExceptionInstance_Check(cause)) { fixed_cause = cause; Py_INCREF(fixed_cause); } else { PyErr_SetString(PyExc_TypeError, "exception causes must derive from " "BaseException"); goto bad; } PyException_SetCause(value, fixed_cause); } PyErr_SetObject(type, value); if (tb) { #if CYTHON_COMPILING_IN_PYPY PyObject *tmp_type, *tmp_value, *tmp_tb; PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb); Py_INCREF(tb); PyErr_Restore(tmp_type, tmp_value, tb); Py_XDECREF(tmp_tb); #else PyThreadState *tstate = __Pyx_PyThreadState_Current; PyObject* tmp_tb = tstate->curexc_traceback; if (tb != tmp_tb) { Py_INCREF(tb); tstate->curexc_traceback = tb; Py_XDECREF(tmp_tb); } #endif } bad: Py_XDECREF(owned_instance); return; } #endif /* DictGetItem */ #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) { PyObject *value; value = PyDict_GetItemWithError(d, key); if (unlikely(!value)) { if (!PyErr_Occurred()) { if (unlikely(PyTuple_Check(key))) { PyObject* args = PyTuple_Pack(1, key); if (likely(args)) { PyErr_SetObject(PyExc_KeyError, args); Py_DECREF(args); } } else { PyErr_SetObject(PyExc_KeyError, key); } } return NULL; } Py_INCREF(value); return value; } #endif /* PyCFunctionFastCall */ #if CYTHON_FAST_PYCCALL static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) { PyCFunctionObject *func = (PyCFunctionObject*)func_obj; PyCFunction meth = PyCFunction_GET_FUNCTION(func); PyObject *self = PyCFunction_GET_SELF(func); int flags = PyCFunction_GET_FLAGS(func); assert(PyCFunction_Check(func)); assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))); assert(nargs >= 0); assert(nargs == 0 || args != NULL); /* _PyCFunction_FastCallDict() must not be called with an exception set, because it may clear it (directly or indirectly) and so the caller loses its exception */ assert(!PyErr_Occurred()); if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) { return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL); } else { return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs); } } #endif /* PyFunctionFastCall */ #if CYTHON_FAST_PYCALL static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, PyObject *globals) { PyFrameObject *f; PyThreadState *tstate = __Pyx_PyThreadState_Current; PyObject **fastlocals; Py_ssize_t i; PyObject *result; assert(globals != NULL); /* XXX Perhaps we should create a specialized PyFrame_New() that doesn't take locals, but does take builtins without sanity checking them. */ assert(tstate != NULL); f = PyFrame_New(tstate, co, globals, NULL); if (f == NULL) { return NULL; } fastlocals = __Pyx_PyFrame_GetLocalsplus(f); for (i = 0; i < na; i++) { Py_INCREF(*args); fastlocals[i] = *args++; } result = PyEval_EvalFrameEx(f,0); ++tstate->recursion_depth; Py_DECREF(f); --tstate->recursion_depth; return result; } #if 1 || PY_VERSION_HEX < 0x030600B1 static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) { PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func); PyObject *globals = PyFunction_GET_GLOBALS(func); PyObject *argdefs = PyFunction_GET_DEFAULTS(func); PyObject *closure; #if PY_MAJOR_VERSION >= 3 PyObject *kwdefs; #endif PyObject *kwtuple, **k; PyObject **d; Py_ssize_t nd; Py_ssize_t nk; PyObject *result; assert(kwargs == NULL || PyDict_Check(kwargs)); nk = kwargs ? PyDict_Size(kwargs) : 0; if (Py_EnterRecursiveCall((char*)" while calling a Python object")) { return NULL; } if ( #if PY_MAJOR_VERSION >= 3 co->co_kwonlyargcount == 0 && #endif likely(kwargs == NULL || nk == 0) && co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) { if (argdefs == NULL && co->co_argcount == nargs) { result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals); goto done; } else if (nargs == 0 && argdefs != NULL && co->co_argcount == Py_SIZE(argdefs)) { /* function called with no arguments, but all parameters have a default value: use default values as arguments .*/ args = &PyTuple_GET_ITEM(argdefs, 0); result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals); goto done; } } if (kwargs != NULL) { Py_ssize_t pos, i; kwtuple = PyTuple_New(2 * nk); if (kwtuple == NULL) { result = NULL; goto done; } k = &PyTuple_GET_ITEM(kwtuple, 0); pos = i = 0; while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) { Py_INCREF(k[i]); Py_INCREF(k[i+1]); i += 2; } nk = i / 2; } else { kwtuple = NULL; k = NULL; } closure = PyFunction_GET_CLOSURE(func); #if PY_MAJOR_VERSION >= 3 kwdefs = PyFunction_GET_KW_DEFAULTS(func); #endif if (argdefs != NULL) { d = &PyTuple_GET_ITEM(argdefs, 0); nd = Py_SIZE(argdefs); } else { d = NULL; nd = 0; } #if PY_MAJOR_VERSION >= 3 result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, args, (int)nargs, k, (int)nk, d, (int)nd, kwdefs, closure); #else result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, args, (int)nargs, k, (int)nk, d, (int)nd, closure); #endif Py_XDECREF(kwtuple); done: Py_LeaveRecursiveCall(); return result; } #endif #endif /* PyObjectCallMethO */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { PyObject *self, *result; PyCFunction cfunc; cfunc = PyCFunction_GET_FUNCTION(func); self = PyCFunction_GET_SELF(func); if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) return NULL; result = cfunc(self, arg); Py_LeaveRecursiveCall(); if (unlikely(!result) && unlikely(!PyErr_Occurred())) { PyErr_SetString( PyExc_SystemError, "NULL result without error in PyObject_Call"); } return result; } #endif /* PyObjectCallOneArg */ #if CYTHON_COMPILING_IN_CPYTHON static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { PyObject *result; PyObject *args = PyTuple_New(1); if (unlikely(!args)) return NULL; Py_INCREF(arg); PyTuple_SET_ITEM(args, 0, arg); result = __Pyx_PyObject_Call(func, args, NULL); Py_DECREF(args); return result; } static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { #if CYTHON_FAST_PYCALL if (PyFunction_Check(func)) { return __Pyx_PyFunction_FastCall(func, &arg, 1); } #endif if (likely(PyCFunction_Check(func))) { if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { return __Pyx_PyObject_CallMethO(func, arg); #if CYTHON_FAST_PYCCALL } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { return __Pyx_PyCFunction_FastCall(func, &arg, 1); #endif } } return __Pyx__PyObject_CallOneArg(func, arg); } #else static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { PyObject *result; PyObject *args = PyTuple_Pack(1, arg); if (unlikely(!args)) return NULL; result = __Pyx_PyObject_Call(func, args, NULL); Py_DECREF(args); return result; } #endif /* UnicodeAsUCS4 */ static CYTHON_INLINE Py_UCS4 __Pyx_PyUnicode_AsPy_UCS4(PyObject* x) { Py_ssize_t length; #if CYTHON_PEP393_ENABLED length = PyUnicode_GET_LENGTH(x); if (likely(length == 1)) { return PyUnicode_READ_CHAR(x, 0); } #else length = PyUnicode_GET_SIZE(x); if (likely(length == 1)) { return PyUnicode_AS_UNICODE(x)[0]; } #if Py_UNICODE_SIZE == 2 else if (PyUnicode_GET_SIZE(x) == 2) { Py_UCS4 high_val = PyUnicode_AS_UNICODE(x)[0]; if (high_val >= 0xD800 && high_val <= 0xDBFF) { Py_UCS4 low_val = PyUnicode_AS_UNICODE(x)[1]; if (low_val >= 0xDC00 && low_val <= 0xDFFF) { return 0x10000 + (((high_val & ((1<<10)-1)) << 10) | (low_val & ((1<<10)-1))); } } } #endif #endif PyErr_Format(PyExc_ValueError, "only single character unicode strings can be converted to Py_UCS4, " "got length %" CYTHON_FORMAT_SSIZE_T "d", length); return (Py_UCS4)-1; } /* object_ord */ static long __Pyx__PyObject_Ord(PyObject* c) { Py_ssize_t size; if (PyBytes_Check(c)) { size = PyBytes_GET_SIZE(c); if (likely(size == 1)) { return (unsigned char) PyBytes_AS_STRING(c)[0]; } #if PY_MAJOR_VERSION < 3 } else if (PyUnicode_Check(c)) { return (long)__Pyx_PyUnicode_AsPy_UCS4(c); #endif #if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)) } else if (PyByteArray_Check(c)) { size = PyByteArray_GET_SIZE(c); if (likely(size == 1)) { return (unsigned char) PyByteArray_AS_STRING(c)[0]; } #endif } else { PyErr_Format(PyExc_TypeError, "ord() expected string of length 1, but %.200s found", c->ob_type->tp_name); return (long)(Py_UCS4)-1; } PyErr_Format(PyExc_TypeError, "ord() expected a character, but string of length %zd found", size); return (long)(Py_UCS4)-1; } /* SetItemInt */ static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v) { int r; if (!j) return -1; r = PyObject_SetItem(o, j, v); Py_DECREF(j); return r; } static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, int is_list, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS if (is_list || PyList_CheckExact(o)) { Py_ssize_t n = (!wraparound) ? i : ((likely(i >= 0)) ? i : i + PyList_GET_SIZE(o)); if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o)))) { PyObject* old = PyList_GET_ITEM(o, n); Py_INCREF(v); PyList_SET_ITEM(o, n, v); Py_DECREF(old); return 1; } } else { PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence; if (likely(m && m->sq_ass_item)) { if (wraparound && unlikely(i < 0) && likely(m->sq_length)) { Py_ssize_t l = m->sq_length(o); if (likely(l >= 0)) { i += l; } else { if (!PyErr_ExceptionMatches(PyExc_OverflowError)) return -1; PyErr_Clear(); } } return m->sq_ass_item(o, i, v); } } #else #if CYTHON_COMPILING_IN_PYPY if (is_list || (PySequence_Check(o) && !PyDict_Check(o))) #else if (is_list || PySequence_Check(o)) #endif { return PySequence_SetItem(o, i, v); } #endif return __Pyx_SetItemInt_Generic(o, PyInt_FromSsize_t(i), v); } /* IterFinish */ static CYTHON_INLINE int __Pyx_IterFinish(void) { #if CYTHON_FAST_THREAD_STATE PyThreadState *tstate = __Pyx_PyThreadState_Current; PyObject* exc_type = tstate->curexc_type; if (unlikely(exc_type)) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) { PyObject *exc_value, *exc_tb; exc_value = tstate->curexc_value; exc_tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; Py_DECREF(exc_type); Py_XDECREF(exc_value); Py_XDECREF(exc_tb); return 0; } else { return -1; } } return 0; #else if (unlikely(PyErr_Occurred())) { if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) { PyErr_Clear(); return 0; } else { return -1; } } return 0; #endif } /* PyObjectCallNoArg */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { #if CYTHON_FAST_PYCALL if (PyFunction_Check(func)) { return __Pyx_PyFunction_FastCall(func, NULL, 0); } #endif #ifdef __Pyx_CyFunction_USED if (likely(PyCFunction_Check(func) || __Pyx_CyFunction_Check(func))) #else if (likely(PyCFunction_Check(func))) #endif { if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) { return __Pyx_PyObject_CallMethO(func, NULL); } } return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL); } #endif /* PyObjectGetMethod */ static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) { PyObject *attr; #if CYTHON_UNPACK_METHODS && CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_PYTYPE_LOOKUP PyTypeObject *tp = Py_TYPE(obj); PyObject *descr; descrgetfunc f = NULL; PyObject **dictptr, *dict; int meth_found = 0; assert (*method == NULL); if (unlikely(tp->tp_getattro != PyObject_GenericGetAttr)) { attr = __Pyx_PyObject_GetAttrStr(obj, name); goto try_unpack; } if (unlikely(tp->tp_dict == NULL) && unlikely(PyType_Ready(tp) < 0)) { return 0; } descr = _PyType_Lookup(tp, name); if (likely(descr != NULL)) { Py_INCREF(descr); #if PY_MAJOR_VERSION >= 3 #ifdef __Pyx_CyFunction_USED if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr))) #else if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type))) #endif #else #ifdef __Pyx_CyFunction_USED if (likely(PyFunction_Check(descr) || __Pyx_CyFunction_Check(descr))) #else if (likely(PyFunction_Check(descr))) #endif #endif { meth_found = 1; } else { f = Py_TYPE(descr)->tp_descr_get; if (f != NULL && PyDescr_IsData(descr)) { attr = f(descr, obj, (PyObject *)Py_TYPE(obj)); Py_DECREF(descr); goto try_unpack; } } } dictptr = _PyObject_GetDictPtr(obj); if (dictptr != NULL && (dict = *dictptr) != NULL) { Py_INCREF(dict); attr = __Pyx_PyDict_GetItemStr(dict, name); if (attr != NULL) { Py_INCREF(attr); Py_DECREF(dict); Py_XDECREF(descr); goto try_unpack; } Py_DECREF(dict); } if (meth_found) { *method = descr; return 1; } if (f != NULL) { attr = f(descr, obj, (PyObject *)Py_TYPE(obj)); Py_DECREF(descr); goto try_unpack; } if (descr != NULL) { *method = descr; return 0; } PyErr_Format(PyExc_AttributeError, #if PY_MAJOR_VERSION >= 3 "'%.50s' object has no attribute '%U'", tp->tp_name, name); #else "'%.50s' object has no attribute '%.400s'", tp->tp_name, PyString_AS_STRING(name)); #endif return 0; #else attr = __Pyx_PyObject_GetAttrStr(obj, name); goto try_unpack; #endif try_unpack: #if CYTHON_UNPACK_METHODS if (likely(attr) && PyMethod_Check(attr) && likely(PyMethod_GET_SELF(attr) == obj)) { PyObject *function = PyMethod_GET_FUNCTION(attr); Py_INCREF(function); Py_DECREF(attr); *method = function; return 1; } #endif *method = attr; return 0; } /* PyObjectCallMethod0 */ static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name) { PyObject *method = NULL, *result = NULL; int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method); if (likely(is_method)) { result = __Pyx_PyObject_CallOneArg(method, obj); Py_DECREF(method); return result; } if (unlikely(!method)) goto bad; result = __Pyx_PyObject_CallNoArg(method); Py_DECREF(method); bad: return result; } /* RaiseNeedMoreValuesToUnpack */ static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { PyErr_Format(PyExc_ValueError, "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", index, (index == 1) ? "" : "s"); } /* RaiseTooManyValuesToUnpack */ static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { PyErr_Format(PyExc_ValueError, "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); } /* UnpackItemEndCheck */ static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) { if (unlikely(retval)) { Py_DECREF(retval); __Pyx_RaiseTooManyValuesError(expected); return -1; } else { return __Pyx_IterFinish(); } return 0; } /* RaiseNoneIterError */ static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); } /* UnpackTupleError */ static void __Pyx_UnpackTupleError(PyObject *t, Py_ssize_t index) { if (t == Py_None) { __Pyx_RaiseNoneNotIterableError(); } else if (PyTuple_GET_SIZE(t) < index) { __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(t)); } else { __Pyx_RaiseTooManyValuesError(index); } } /* UnpackTuple2 */ static CYTHON_INLINE int __Pyx_unpack_tuple2_exact( PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2, int decref_tuple) { PyObject *value1 = NULL, *value2 = NULL; #if CYTHON_COMPILING_IN_PYPY value1 = PySequence_ITEM(tuple, 0); if (unlikely(!value1)) goto bad; value2 = PySequence_ITEM(tuple, 1); if (unlikely(!value2)) goto bad; #else value1 = PyTuple_GET_ITEM(tuple, 0); Py_INCREF(value1); value2 = PyTuple_GET_ITEM(tuple, 1); Py_INCREF(value2); #endif if (decref_tuple) { Py_DECREF(tuple); } *pvalue1 = value1; *pvalue2 = value2; return 0; #if CYTHON_COMPILING_IN_PYPY bad: Py_XDECREF(value1); Py_XDECREF(value2); if (decref_tuple) { Py_XDECREF(tuple); } return -1; #endif } static int __Pyx_unpack_tuple2_generic(PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2, int has_known_size, int decref_tuple) { Py_ssize_t index; PyObject *value1 = NULL, *value2 = NULL, *iter = NULL; iternextfunc iternext; iter = PyObject_GetIter(tuple); if (unlikely(!iter)) goto bad; if (decref_tuple) { Py_DECREF(tuple); tuple = NULL; } iternext = Py_TYPE(iter)->tp_iternext; value1 = iternext(iter); if (unlikely(!value1)) { index = 0; goto unpacking_failed; } value2 = iternext(iter); if (unlikely(!value2)) { index = 1; goto unpacking_failed; } if (!has_known_size && unlikely(__Pyx_IternextUnpackEndCheck(iternext(iter), 2))) goto bad; Py_DECREF(iter); *pvalue1 = value1; *pvalue2 = value2; return 0; unpacking_failed: if (!has_known_size && __Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); bad: Py_XDECREF(iter); Py_XDECREF(value1); Py_XDECREF(value2); if (decref_tuple) { Py_XDECREF(tuple); } return -1; } /* dict_iter */ static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* iterable, int is_dict, PyObject* method_name, Py_ssize_t* p_orig_length, int* p_source_is_dict) { is_dict = is_dict || likely(PyDict_CheckExact(iterable)); *p_source_is_dict = is_dict; if (is_dict) { #if !CYTHON_COMPILING_IN_PYPY *p_orig_length = PyDict_Size(iterable); Py_INCREF(iterable); return iterable; #elif PY_MAJOR_VERSION >= 3 static PyObject *py_items = NULL, *py_keys = NULL, *py_values = NULL; PyObject **pp = NULL; if (method_name) { const char *name = PyUnicode_AsUTF8(method_name); if (strcmp(name, "iteritems") == 0) pp = &py_items; else if (strcmp(name, "iterkeys") == 0) pp = &py_keys; else if (strcmp(name, "itervalues") == 0) pp = &py_values; if (pp) { if (!*pp) { *pp = PyUnicode_FromString(name + 4); if (!*pp) return NULL; } method_name = *pp; } } #endif } *p_orig_length = 0; if (method_name) { PyObject* iter; iterable = __Pyx_PyObject_CallMethod0(iterable, method_name); if (!iterable) return NULL; #if !CYTHON_COMPILING_IN_PYPY if (PyTuple_CheckExact(iterable) || PyList_CheckExact(iterable)) return iterable; #endif iter = PyObject_GetIter(iterable); Py_DECREF(iterable); return iter; } return PyObject_GetIter(iterable); } static CYTHON_INLINE int __Pyx_dict_iter_next( PyObject* iter_obj, CYTHON_NCP_UNUSED Py_ssize_t orig_length, CYTHON_NCP_UNUSED Py_ssize_t* ppos, PyObject** pkey, PyObject** pvalue, PyObject** pitem, int source_is_dict) { PyObject* next_item; #if !CYTHON_COMPILING_IN_PYPY if (source_is_dict) { PyObject *key, *value; if (unlikely(orig_length != PyDict_Size(iter_obj))) { PyErr_SetString(PyExc_RuntimeError, "dictionary changed size during iteration"); return -1; } if (unlikely(!PyDict_Next(iter_obj, ppos, &key, &value))) { return 0; } if (pitem) { PyObject* tuple = PyTuple_New(2); if (unlikely(!tuple)) { return -1; } Py_INCREF(key); Py_INCREF(value); PyTuple_SET_ITEM(tuple, 0, key); PyTuple_SET_ITEM(tuple, 1, value); *pitem = tuple; } else { if (pkey) { Py_INCREF(key); *pkey = key; } if (pvalue) { Py_INCREF(value); *pvalue = value; } } return 1; } else if (PyTuple_CheckExact(iter_obj)) { Py_ssize_t pos = *ppos; if (unlikely(pos >= PyTuple_GET_SIZE(iter_obj))) return 0; *ppos = pos + 1; next_item = PyTuple_GET_ITEM(iter_obj, pos); Py_INCREF(next_item); } else if (PyList_CheckExact(iter_obj)) { Py_ssize_t pos = *ppos; if (unlikely(pos >= PyList_GET_SIZE(iter_obj))) return 0; *ppos = pos + 1; next_item = PyList_GET_ITEM(iter_obj, pos); Py_INCREF(next_item); } else #endif { next_item = PyIter_Next(iter_obj); if (unlikely(!next_item)) { return __Pyx_IterFinish(); } } if (pitem) { *pitem = next_item; } else if (pkey && pvalue) { if (__Pyx_unpack_tuple2(next_item, pkey, pvalue, source_is_dict, source_is_dict, 1)) return -1; } else if (pkey) { *pkey = next_item; } else { *pvalue = next_item; } return 1; } /* PyObjectCall2Args */ static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) { PyObject *args, *result = NULL; #if CYTHON_FAST_PYCALL if (PyFunction_Check(function)) { PyObject *args[2] = {arg1, arg2}; return __Pyx_PyFunction_FastCall(function, args, 2); } #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(function)) { PyObject *args[2] = {arg1, arg2}; return __Pyx_PyCFunction_FastCall(function, args, 2); } #endif args = PyTuple_New(2); if (unlikely(!args)) goto done; Py_INCREF(arg1); PyTuple_SET_ITEM(args, 0, arg1); Py_INCREF(arg2); PyTuple_SET_ITEM(args, 1, arg2); Py_INCREF(function); result = __Pyx_PyObject_Call(function, args, NULL); Py_DECREF(args); Py_DECREF(function); done: return result; } /* GetItemInt */ static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) { PyObject *r; if (!j) return NULL; r = PyObject_GetItem(o, j); Py_DECREF(j); return r; } static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS Py_ssize_t wrapped_i = i; if (wraparound & unlikely(i < 0)) { wrapped_i += PyList_GET_SIZE(o); } if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) { PyObject *r = PyList_GET_ITEM(o, wrapped_i); Py_INCREF(r); return r; } return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); #else return PySequence_GetItem(o, i); #endif } static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS Py_ssize_t wrapped_i = i; if (wraparound & unlikely(i < 0)) { wrapped_i += PyTuple_GET_SIZE(o); } if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) { PyObject *r = PyTuple_GET_ITEM(o, wrapped_i); Py_INCREF(r); return r; } return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); #else return PySequence_GetItem(o, i); #endif } static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS if (is_list || PyList_CheckExact(o)) { Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o); if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) { PyObject *r = PyList_GET_ITEM(o, n); Py_INCREF(r); return r; } } else if (PyTuple_CheckExact(o)) { Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o); if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) { PyObject *r = PyTuple_GET_ITEM(o, n); Py_INCREF(r); return r; } } else { PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence; if (likely(m && m->sq_item)) { if (wraparound && unlikely(i < 0) && likely(m->sq_length)) { Py_ssize_t l = m->sq_length(o); if (likely(l >= 0)) { i += l; } else { if (!PyErr_ExceptionMatches(PyExc_OverflowError)) return NULL; PyErr_Clear(); } } return m->sq_item(o, i); } } #else if (is_list || PySequence_Check(o)) { return PySequence_GetItem(o, i); } #endif return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); } /* PyDictVersioning */ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) { PyObject *dict = Py_TYPE(obj)->tp_dict; return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0; } static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) { PyObject **dictptr = NULL; Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset; if (offset) { #if CYTHON_COMPILING_IN_CPYTHON dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj); #else dictptr = _PyObject_GetDictPtr(obj); #endif } return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0; } static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) { PyObject *dict = Py_TYPE(obj)->tp_dict; if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict))) return 0; return obj_dict_version == __Pyx_get_object_dict_version(obj); } #endif /* GetModuleGlobalName */ #if CYTHON_USE_DICT_VERSIONS static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value) #else static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name) #endif { PyObject *result; #if !CYTHON_AVOID_BORROWED_REFS #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash); __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) if (likely(result)) { return __Pyx_NewRef(result); } else if (unlikely(PyErr_Occurred())) { return NULL; } #else result = PyDict_GetItem(__pyx_d, name); __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) if (likely(result)) { return __Pyx_NewRef(result); } #endif #else result = PyObject_GetItem(__pyx_d, name); __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) if (likely(result)) { return __Pyx_NewRef(result); } PyErr_Clear(); #endif return __Pyx_GetBuiltinName(name); } /* ExtTypeTest */ static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { if (unlikely(!type)) { PyErr_SetString(PyExc_SystemError, "Missing type object"); return 0; } if (likely(__Pyx_TypeCheck(obj, type))) return 1; PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s", Py_TYPE(obj)->tp_name, type->tp_name); return 0; } /* ArgTypeTest */ static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact) { if (unlikely(!type)) { PyErr_SetString(PyExc_SystemError, "Missing type object"); return 0; } else if (exact) { #if PY_MAJOR_VERSION == 2 if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1; #endif } else { if (likely(__Pyx_TypeCheck(obj, type))) return 1; } PyErr_Format(PyExc_TypeError, "Argument '%.200s' has incorrect type (expected %.200s, got %.200s)", name, type->tp_name, Py_TYPE(obj)->tp_name); return 0; } /* None */ static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) { PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname); } /* MemviewSliceInit */ static int __Pyx_init_memviewslice(struct __pyx_memoryview_obj *memview, int ndim, __Pyx_memviewslice *memviewslice, int memview_is_new_reference) { __Pyx_RefNannyDeclarations int i, retval=-1; Py_buffer *buf = &memview->view; __Pyx_RefNannySetupContext("init_memviewslice", 0); if (memviewslice->memview || memviewslice->data) { PyErr_SetString(PyExc_ValueError, "memviewslice is already initialized!"); goto fail; } if (buf->strides) { for (i = 0; i < ndim; i++) { memviewslice->strides[i] = buf->strides[i]; } } else { Py_ssize_t stride = buf->itemsize; for (i = ndim - 1; i >= 0; i--) { memviewslice->strides[i] = stride; stride *= buf->shape[i]; } } for (i = 0; i < ndim; i++) { memviewslice->shape[i] = buf->shape[i]; if (buf->suboffsets) { memviewslice->suboffsets[i] = buf->suboffsets[i]; } else { memviewslice->suboffsets[i] = -1; } } memviewslice->memview = memview; memviewslice->data = (char *)buf->buf; if (__pyx_add_acquisition_count(memview) == 0 && !memview_is_new_reference) { Py_INCREF(memview); } retval = 0; goto no_fail; fail: memviewslice->memview = 0; memviewslice->data = 0; retval = -1; no_fail: __Pyx_RefNannyFinishContext(); return retval; } #ifndef Py_NO_RETURN #define Py_NO_RETURN #endif static void __pyx_fatalerror(const char *fmt, ...) Py_NO_RETURN { va_list vargs; char msg[200]; #ifdef HAVE_STDARG_PROTOTYPES va_start(vargs, fmt); #else va_start(vargs); #endif vsnprintf(msg, 200, fmt, vargs); va_end(vargs); Py_FatalError(msg); } static CYTHON_INLINE int __pyx_add_acquisition_count_locked(__pyx_atomic_int *acquisition_count, PyThread_type_lock lock) { int result; PyThread_acquire_lock(lock, 1); result = (*acquisition_count)++; PyThread_release_lock(lock); return result; } static CYTHON_INLINE int __pyx_sub_acquisition_count_locked(__pyx_atomic_int *acquisition_count, PyThread_type_lock lock) { int result; PyThread_acquire_lock(lock, 1); result = (*acquisition_count)--; PyThread_release_lock(lock); return result; } static CYTHON_INLINE void __Pyx_INC_MEMVIEW(__Pyx_memviewslice *memslice, int have_gil, int lineno) { int first_time; struct __pyx_memoryview_obj *memview = memslice->memview; if (!memview || (PyObject *) memview == Py_None) return; if (__pyx_get_slice_count(memview) < 0) __pyx_fatalerror("Acquisition count is %d (line %d)", __pyx_get_slice_count(memview), lineno); first_time = __pyx_add_acquisition_count(memview) == 0; if (first_time) { if (have_gil) { Py_INCREF((PyObject *) memview); } else { PyGILState_STATE _gilstate = PyGILState_Ensure(); Py_INCREF((PyObject *) memview); PyGILState_Release(_gilstate); } } } static CYTHON_INLINE void __Pyx_XDEC_MEMVIEW(__Pyx_memviewslice *memslice, int have_gil, int lineno) { int last_time; struct __pyx_memoryview_obj *memview = memslice->memview; if (!memview ) { return; } else if ((PyObject *) memview == Py_None) { memslice->memview = NULL; return; } if (__pyx_get_slice_count(memview) <= 0) __pyx_fatalerror("Acquisition count is %d (line %d)", __pyx_get_slice_count(memview), lineno); last_time = __pyx_sub_acquisition_count(memview) == 1; memslice->data = NULL; if (last_time) { if (have_gil) { Py_CLEAR(memslice->memview); } else { PyGILState_STATE _gilstate = PyGILState_Ensure(); Py_CLEAR(memslice->memview); PyGILState_Release(_gilstate); } } else { memslice->memview = NULL; } } /* GetTopmostException */ #if CYTHON_USE_EXC_INFO_STACK static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate) { _PyErr_StackItem *exc_info = tstate->exc_info; while ((exc_info->exc_type == NULL || exc_info->exc_type == Py_None) && exc_info->previous_item != NULL) { exc_info = exc_info->previous_item; } return exc_info; } #endif /* SaveResetException */ #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { #if CYTHON_USE_EXC_INFO_STACK _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate); *type = exc_info->exc_type; *value = exc_info->exc_value; *tb = exc_info->exc_traceback; #else *type = tstate->exc_type; *value = tstate->exc_value; *tb = tstate->exc_traceback; #endif Py_XINCREF(*type); Py_XINCREF(*value); Py_XINCREF(*tb); } static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; #if CYTHON_USE_EXC_INFO_STACK _PyErr_StackItem *exc_info = tstate->exc_info; tmp_type = exc_info->exc_type; tmp_value = exc_info->exc_value; tmp_tb = exc_info->exc_traceback; exc_info->exc_type = type; exc_info->exc_value = value; exc_info->exc_traceback = tb; #else tmp_type = tstate->exc_type; tmp_value = tstate->exc_value; tmp_tb = tstate->exc_traceback; tstate->exc_type = type; tstate->exc_value = value; tstate->exc_traceback = tb; #endif Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); } #endif /* PyErrExceptionMatches */ #if CYTHON_FAST_THREAD_STATE static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { Py_ssize_t i, n; n = PyTuple_GET_SIZE(tuple); #if PY_MAJOR_VERSION >= 3 for (i=0; icurexc_type; if (exc_type == err) return 1; if (unlikely(!exc_type)) return 0; if (unlikely(PyTuple_Check(err))) return __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err); return __Pyx_PyErr_GivenExceptionMatches(exc_type, err); } #endif /* GetException */ #if CYTHON_FAST_THREAD_STATE static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) #else static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) #endif { PyObject *local_type, *local_value, *local_tb; #if CYTHON_FAST_THREAD_STATE PyObject *tmp_type, *tmp_value, *tmp_tb; local_type = tstate->curexc_type; local_value = tstate->curexc_value; local_tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; #else PyErr_Fetch(&local_type, &local_value, &local_tb); #endif PyErr_NormalizeException(&local_type, &local_value, &local_tb); #if CYTHON_FAST_THREAD_STATE if (unlikely(tstate->curexc_type)) #else if (unlikely(PyErr_Occurred())) #endif goto bad; #if PY_MAJOR_VERSION >= 3 if (local_tb) { if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0)) goto bad; } #endif Py_XINCREF(local_tb); Py_XINCREF(local_type); Py_XINCREF(local_value); *type = local_type; *value = local_value; *tb = local_tb; #if CYTHON_FAST_THREAD_STATE #if CYTHON_USE_EXC_INFO_STACK { _PyErr_StackItem *exc_info = tstate->exc_info; tmp_type = exc_info->exc_type; tmp_value = exc_info->exc_value; tmp_tb = exc_info->exc_traceback; exc_info->exc_type = local_type; exc_info->exc_value = local_value; exc_info->exc_traceback = local_tb; } #else tmp_type = tstate->exc_type; tmp_value = tstate->exc_value; tmp_tb = tstate->exc_traceback; tstate->exc_type = local_type; tstate->exc_value = local_value; tstate->exc_traceback = local_tb; #endif Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); #else PyErr_SetExcInfo(local_type, local_value, local_tb); #endif return 0; bad: *type = 0; *value = 0; *tb = 0; Py_XDECREF(local_type); Py_XDECREF(local_value); Py_XDECREF(local_tb); return -1; } /* BytesEquals */ static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) { #if CYTHON_COMPILING_IN_PYPY return PyObject_RichCompareBool(s1, s2, equals); #else if (s1 == s2) { return (equals == Py_EQ); } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) { const char *ps1, *ps2; Py_ssize_t length = PyBytes_GET_SIZE(s1); if (length != PyBytes_GET_SIZE(s2)) return (equals == Py_NE); ps1 = PyBytes_AS_STRING(s1); ps2 = PyBytes_AS_STRING(s2); if (ps1[0] != ps2[0]) { return (equals == Py_NE); } else if (length == 1) { return (equals == Py_EQ); } else { int result; #if CYTHON_USE_UNICODE_INTERNALS Py_hash_t hash1, hash2; hash1 = ((PyBytesObject*)s1)->ob_shash; hash2 = ((PyBytesObject*)s2)->ob_shash; if (hash1 != hash2 && hash1 != -1 && hash2 != -1) { return (equals == Py_NE); } #endif result = memcmp(ps1, ps2, (size_t)length); return (equals == Py_EQ) ? (result == 0) : (result != 0); } } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) { return (equals == Py_NE); } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) { return (equals == Py_NE); } else { int result; PyObject* py_result = PyObject_RichCompare(s1, s2, equals); if (!py_result) return -1; result = __Pyx_PyObject_IsTrue(py_result); Py_DECREF(py_result); return result; } #endif } /* UnicodeEquals */ static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) { #if CYTHON_COMPILING_IN_PYPY return PyObject_RichCompareBool(s1, s2, equals); #else #if PY_MAJOR_VERSION < 3 PyObject* owned_ref = NULL; #endif int s1_is_unicode, s2_is_unicode; if (s1 == s2) { goto return_eq; } s1_is_unicode = PyUnicode_CheckExact(s1); s2_is_unicode = PyUnicode_CheckExact(s2); #if PY_MAJOR_VERSION < 3 if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) { owned_ref = PyUnicode_FromObject(s2); if (unlikely(!owned_ref)) return -1; s2 = owned_ref; s2_is_unicode = 1; } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) { owned_ref = PyUnicode_FromObject(s1); if (unlikely(!owned_ref)) return -1; s1 = owned_ref; s1_is_unicode = 1; } else if (((!s2_is_unicode) & (!s1_is_unicode))) { return __Pyx_PyBytes_Equals(s1, s2, equals); } #endif if (s1_is_unicode & s2_is_unicode) { Py_ssize_t length; int kind; void *data1, *data2; if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0)) return -1; length = __Pyx_PyUnicode_GET_LENGTH(s1); if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) { goto return_ne; } #if CYTHON_USE_UNICODE_INTERNALS { Py_hash_t hash1, hash2; #if CYTHON_PEP393_ENABLED hash1 = ((PyASCIIObject*)s1)->hash; hash2 = ((PyASCIIObject*)s2)->hash; #else hash1 = ((PyUnicodeObject*)s1)->hash; hash2 = ((PyUnicodeObject*)s2)->hash; #endif if (hash1 != hash2 && hash1 != -1 && hash2 != -1) { goto return_ne; } } #endif kind = __Pyx_PyUnicode_KIND(s1); if (kind != __Pyx_PyUnicode_KIND(s2)) { goto return_ne; } data1 = __Pyx_PyUnicode_DATA(s1); data2 = __Pyx_PyUnicode_DATA(s2); if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) { goto return_ne; } else if (length == 1) { goto return_eq; } else { int result = memcmp(data1, data2, (size_t)(length * kind)); #if PY_MAJOR_VERSION < 3 Py_XDECREF(owned_ref); #endif return (equals == Py_EQ) ? (result == 0) : (result != 0); } } else if ((s1 == Py_None) & s2_is_unicode) { goto return_ne; } else if ((s2 == Py_None) & s1_is_unicode) { goto return_ne; } else { int result; PyObject* py_result = PyObject_RichCompare(s1, s2, equals); #if PY_MAJOR_VERSION < 3 Py_XDECREF(owned_ref); #endif if (!py_result) return -1; result = __Pyx_PyObject_IsTrue(py_result); Py_DECREF(py_result); return result; } return_eq: #if PY_MAJOR_VERSION < 3 Py_XDECREF(owned_ref); #endif return (equals == Py_EQ); return_ne: #if PY_MAJOR_VERSION < 3 Py_XDECREF(owned_ref); #endif return (equals == Py_NE); #endif } /* None */ static CYTHON_INLINE Py_ssize_t __Pyx_div_Py_ssize_t(Py_ssize_t a, Py_ssize_t b) { Py_ssize_t q = a / b; Py_ssize_t r = a - q*b; q -= ((r != 0) & ((r ^ b) < 0)); return q; } /* GetAttr */ static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) { #if CYTHON_USE_TYPE_SLOTS #if PY_MAJOR_VERSION >= 3 if (likely(PyUnicode_Check(n))) #else if (likely(PyString_Check(n))) #endif return __Pyx_PyObject_GetAttrStr(o, n); #endif return PyObject_GetAttr(o, n); } /* ObjectGetItem */ #if CYTHON_USE_TYPE_SLOTS static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject* index) { PyObject *runerr; Py_ssize_t key_value; PySequenceMethods *m = Py_TYPE(obj)->tp_as_sequence; if (unlikely(!(m && m->sq_item))) { PyErr_Format(PyExc_TypeError, "'%.200s' object is not subscriptable", Py_TYPE(obj)->tp_name); return NULL; } key_value = __Pyx_PyIndex_AsSsize_t(index); if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) { return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1); } if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) { PyErr_Clear(); PyErr_Format(PyExc_IndexError, "cannot fit '%.200s' into an index-sized integer", Py_TYPE(index)->tp_name); } return NULL; } static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key) { PyMappingMethods *m = Py_TYPE(obj)->tp_as_mapping; if (likely(m && m->mp_subscript)) { return m->mp_subscript(obj, key); } return __Pyx_PyObject_GetIndex(obj, key); } #endif /* decode_c_string */ static CYTHON_INLINE PyObject* __Pyx_decode_c_string( const char* cstring, Py_ssize_t start, Py_ssize_t stop, const char* encoding, const char* errors, PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)) { Py_ssize_t length; if (unlikely((start < 0) | (stop < 0))) { size_t slen = strlen(cstring); if (unlikely(slen > (size_t) PY_SSIZE_T_MAX)) { PyErr_SetString(PyExc_OverflowError, "c-string too long to convert to Python"); return NULL; } length = (Py_ssize_t) slen; if (start < 0) { start += length; if (start < 0) start = 0; } if (stop < 0) stop += length; } length = stop - start; if (unlikely(length <= 0)) return PyUnicode_FromUnicode(NULL, 0); cstring += start; if (decode_func) { return decode_func(cstring, length, errors); } else { return PyUnicode_Decode(cstring, length, encoding, errors); } } /* GetAttr3 */ static PyObject *__Pyx_GetAttr3Default(PyObject *d) { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) return NULL; __Pyx_PyErr_Clear(); Py_INCREF(d); return d; } static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *o, PyObject *n, PyObject *d) { PyObject *r = __Pyx_GetAttr(o, n); return (likely(r)) ? r : __Pyx_GetAttr3Default(d); } /* SwapException */ #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; #if CYTHON_USE_EXC_INFO_STACK _PyErr_StackItem *exc_info = tstate->exc_info; tmp_type = exc_info->exc_type; tmp_value = exc_info->exc_value; tmp_tb = exc_info->exc_traceback; exc_info->exc_type = *type; exc_info->exc_value = *value; exc_info->exc_traceback = *tb; #else tmp_type = tstate->exc_type; tmp_value = tstate->exc_value; tmp_tb = tstate->exc_traceback; tstate->exc_type = *type; tstate->exc_value = *value; tstate->exc_traceback = *tb; #endif *type = tmp_type; *value = tmp_value; *tb = tmp_tb; } #else static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb); PyErr_SetExcInfo(*type, *value, *tb); *type = tmp_type; *value = tmp_value; *tb = tmp_tb; } #endif /* Import */ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { PyObject *empty_list = 0; PyObject *module = 0; PyObject *global_dict = 0; PyObject *empty_dict = 0; PyObject *list; #if PY_MAJOR_VERSION < 3 PyObject *py_import; py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import); if (!py_import) goto bad; #endif if (from_list) list = from_list; else { empty_list = PyList_New(0); if (!empty_list) goto bad; list = empty_list; } global_dict = PyModule_GetDict(__pyx_m); if (!global_dict) goto bad; empty_dict = PyDict_New(); if (!empty_dict) goto bad; { #if PY_MAJOR_VERSION >= 3 if (level == -1) { if (strchr(__Pyx_MODULE_NAME, '.')) { module = PyImport_ImportModuleLevelObject( name, global_dict, empty_dict, list, 1); if (!module) { if (!PyErr_ExceptionMatches(PyExc_ImportError)) goto bad; PyErr_Clear(); } } level = 0; } #endif if (!module) { #if PY_MAJOR_VERSION < 3 PyObject *py_level = PyInt_FromLong(level); if (!py_level) goto bad; module = PyObject_CallFunctionObjArgs(py_import, name, global_dict, empty_dict, list, py_level, (PyObject *)NULL); Py_DECREF(py_level); #else module = PyImport_ImportModuleLevelObject( name, global_dict, empty_dict, list, level); #endif } } bad: #if PY_MAJOR_VERSION < 3 Py_XDECREF(py_import); #endif Py_XDECREF(empty_list); Py_XDECREF(empty_dict); return module; } /* FastTypeChecks */ #if CYTHON_COMPILING_IN_CPYTHON static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { while (a) { a = a->tp_base; if (a == b) return 1; } return b == &PyBaseObject_Type; } static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) { PyObject *mro; if (a == b) return 1; mro = a->tp_mro; if (likely(mro)) { Py_ssize_t i, n; n = PyTuple_GET_SIZE(mro); for (i = 0; i < n; i++) { if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b) return 1; } return 0; } return __Pyx_InBases(a, b); } #if PY_MAJOR_VERSION == 2 static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) { PyObject *exception, *value, *tb; int res; __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ErrFetch(&exception, &value, &tb); res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0; if (unlikely(res == -1)) { PyErr_WriteUnraisable(err); res = 0; } if (!res) { res = PyObject_IsSubclass(err, exc_type2); if (unlikely(res == -1)) { PyErr_WriteUnraisable(err); res = 0; } } __Pyx_ErrRestore(exception, value, tb); return res; } #else static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) { int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0; if (!res) { res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2); } return res; } #endif static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { Py_ssize_t i, n; assert(PyExceptionClass_Check(exc_type)); n = PyTuple_GET_SIZE(tuple); #if PY_MAJOR_VERSION >= 3 for (i=0; i= 0 || (x^b) >= 0)) return PyInt_FromLong(x); return PyLong_Type.tp_as_number->nb_add(op1, op2); } #endif #if CYTHON_USE_PYLONG_INTERNALS if (likely(PyLong_CheckExact(op1))) { const long b = intval; long a, x; #ifdef HAVE_LONG_LONG const PY_LONG_LONG llb = intval; PY_LONG_LONG lla, llx; #endif const digit* digits = ((PyLongObject*)op1)->ob_digit; const Py_ssize_t size = Py_SIZE(op1); if (likely(__Pyx_sst_abs(size) <= 1)) { a = likely(size) ? digits[0] : 0; if (size == -1) a = -a; } else { switch (size) { case -2: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case 2: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case -3: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case 3: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case -4: if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case 4: if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; default: return PyLong_Type.tp_as_number->nb_add(op1, op2); } } x = a + b; return PyLong_FromLong(x); #ifdef HAVE_LONG_LONG long_long: llx = lla + llb; return PyLong_FromLongLong(llx); #endif } #endif if (PyFloat_CheckExact(op1)) { const long b = intval; double a = PyFloat_AS_DOUBLE(op1); double result; PyFPE_START_PROTECT("add", return NULL) result = ((double)a) + (double)b; PyFPE_END_PROTECT(result) return PyFloat_FromDouble(result); } return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2); } #endif /* None */ static CYTHON_INLINE long __Pyx_div_long(long a, long b) { long q = a / b; long r = a - q*b; q -= ((r != 0) & ((r ^ b) < 0)); return q; } /* WriteUnraisableException */ static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno, CYTHON_UNUSED int lineno, CYTHON_UNUSED const char *filename, int full_traceback, CYTHON_UNUSED int nogil) { PyObject *old_exc, *old_val, *old_tb; PyObject *ctx; __Pyx_PyThreadState_declare #ifdef WITH_THREAD PyGILState_STATE state; if (nogil) state = PyGILState_Ensure(); #ifdef _MSC_VER else state = (PyGILState_STATE)-1; #endif #endif __Pyx_PyThreadState_assign __Pyx_ErrFetch(&old_exc, &old_val, &old_tb); if (full_traceback) { Py_XINCREF(old_exc); Py_XINCREF(old_val); Py_XINCREF(old_tb); __Pyx_ErrRestore(old_exc, old_val, old_tb); PyErr_PrintEx(1); } #if PY_MAJOR_VERSION < 3 ctx = PyString_FromString(name); #else ctx = PyUnicode_FromString(name); #endif __Pyx_ErrRestore(old_exc, old_val, old_tb); if (!ctx) { PyErr_WriteUnraisable(Py_None); } else { PyErr_WriteUnraisable(ctx); Py_DECREF(ctx); } #ifdef WITH_THREAD if (nogil) PyGILState_Release(state); #endif } /* ImportFrom */ static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) { PyObject* value = __Pyx_PyObject_GetAttrStr(module, name); if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) { PyErr_Format(PyExc_ImportError, #if PY_MAJOR_VERSION < 3 "cannot import name %.230s", PyString_AS_STRING(name)); #else "cannot import name %S", name); #endif } return value; } /* HasAttr */ static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) { PyObject *r; if (unlikely(!__Pyx_PyBaseString_Check(n))) { PyErr_SetString(PyExc_TypeError, "hasattr(): attribute name must be string"); return -1; } r = __Pyx_GetAttr(o, n); if (unlikely(!r)) { PyErr_Clear(); return 0; } else { Py_DECREF(r); return 1; } } /* StringJoin */ #if !CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyBytes_Join(PyObject* sep, PyObject* values) { return PyObject_CallMethodObjArgs(sep, __pyx_n_s_join, values, NULL); } #endif /* PyObject_GenericGetAttrNoDict */ #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) { PyErr_Format(PyExc_AttributeError, #if PY_MAJOR_VERSION >= 3 "'%.50s' object has no attribute '%U'", tp->tp_name, attr_name); #else "'%.50s' object has no attribute '%.400s'", tp->tp_name, PyString_AS_STRING(attr_name)); #endif return NULL; } static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) { PyObject *descr; PyTypeObject *tp = Py_TYPE(obj); if (unlikely(!PyString_Check(attr_name))) { return PyObject_GenericGetAttr(obj, attr_name); } assert(!tp->tp_dictoffset); descr = _PyType_Lookup(tp, attr_name); if (unlikely(!descr)) { return __Pyx_RaiseGenericGetAttributeError(tp, attr_name); } Py_INCREF(descr); #if PY_MAJOR_VERSION < 3 if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS))) #endif { descrgetfunc f = Py_TYPE(descr)->tp_descr_get; if (unlikely(f)) { PyObject *res = f(descr, obj, (PyObject *)tp); Py_DECREF(descr); return res; } } return descr; } #endif /* PyObject_GenericGetAttr */ #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) { if (unlikely(Py_TYPE(obj)->tp_dictoffset)) { return PyObject_GenericGetAttr(obj, attr_name); } return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name); } #endif /* SetVTable */ static int __Pyx_SetVtable(PyObject *dict, void *vtable) { #if PY_VERSION_HEX >= 0x02070000 PyObject *ob = PyCapsule_New(vtable, 0, 0); #else PyObject *ob = PyCObject_FromVoidPtr(vtable, 0); #endif if (!ob) goto bad; if (PyDict_SetItem(dict, __pyx_n_s_pyx_vtable, ob) < 0) goto bad; Py_DECREF(ob); return 0; bad: Py_XDECREF(ob); return -1; } /* SetupReduce */ static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { int ret; PyObject *name_attr; name_attr = __Pyx_PyObject_GetAttrStr(meth, __pyx_n_s_name_2); if (likely(name_attr)) { ret = PyObject_RichCompareBool(name_attr, name, Py_EQ); } else { ret = -1; } if (unlikely(ret < 0)) { PyErr_Clear(); ret = 0; } Py_XDECREF(name_attr); return ret; } static int __Pyx_setup_reduce(PyObject* type_obj) { int ret = 0; PyObject *object_reduce = NULL; PyObject *object_reduce_ex = NULL; PyObject *reduce = NULL; PyObject *reduce_ex = NULL; PyObject *reduce_cython = NULL; PyObject *setstate = NULL; PyObject *setstate_cython = NULL; #if CYTHON_USE_PYTYPE_LOOKUP if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD; #else if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD; #endif #if CYTHON_USE_PYTYPE_LOOKUP object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; #else object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; #endif reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto BAD; if (reduce_ex == object_reduce_ex) { #if CYTHON_USE_PYTYPE_LOOKUP object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; #else object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; #endif reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD; if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD; ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD; ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD; setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); if (!setstate) PyErr_Clear(); if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD; ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD; ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD; } PyType_Modified((PyTypeObject*)type_obj); } } goto GOOD; BAD: if (!PyErr_Occurred()) PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); ret = -1; GOOD: #if !CYTHON_USE_PYTYPE_LOOKUP Py_XDECREF(object_reduce); Py_XDECREF(object_reduce_ex); #endif Py_XDECREF(reduce); Py_XDECREF(reduce_ex); Py_XDECREF(reduce_cython); Py_XDECREF(setstate); Py_XDECREF(setstate_cython); return ret; } /* TypeImport */ #ifndef __PYX_HAVE_RT_ImportType #define __PYX_HAVE_RT_ImportType static PyTypeObject *__Pyx_ImportType(PyObject *module, const char *module_name, const char *class_name, size_t size, enum __Pyx_ImportType_CheckSize check_size) { PyObject *result = 0; char warning[200]; Py_ssize_t basicsize; #ifdef Py_LIMITED_API PyObject *py_basicsize; #endif result = PyObject_GetAttrString(module, class_name); if (!result) goto bad; if (!PyType_Check(result)) { PyErr_Format(PyExc_TypeError, "%.200s.%.200s is not a type object", module_name, class_name); goto bad; } #ifndef Py_LIMITED_API basicsize = ((PyTypeObject *)result)->tp_basicsize; #else py_basicsize = PyObject_GetAttrString(result, "__basicsize__"); if (!py_basicsize) goto bad; basicsize = PyLong_AsSsize_t(py_basicsize); Py_DECREF(py_basicsize); py_basicsize = 0; if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred()) goto bad; #endif if ((size_t)basicsize < size) { PyErr_Format(PyExc_ValueError, "%.200s.%.200s size changed, may indicate binary incompatibility. " "Expected %zd from C header, got %zd from PyObject", module_name, class_name, size, basicsize); goto bad; } if (check_size == __Pyx_ImportType_CheckSize_Error && (size_t)basicsize != size) { PyErr_Format(PyExc_ValueError, "%.200s.%.200s size changed, may indicate binary incompatibility. " "Expected %zd from C header, got %zd from PyObject", module_name, class_name, size, basicsize); goto bad; } else if (check_size == __Pyx_ImportType_CheckSize_Warn && (size_t)basicsize > size) { PyOS_snprintf(warning, sizeof(warning), "%s.%s size changed, may indicate binary incompatibility. " "Expected %zd from C header, got %zd from PyObject", module_name, class_name, size, basicsize); if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad; } return (PyTypeObject *)result; bad: Py_XDECREF(result); return NULL; } #endif /* FetchCommonType */ static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) { PyObject* fake_module; PyTypeObject* cached_type = NULL; fake_module = PyImport_AddModule((char*) "_cython_" CYTHON_ABI); if (!fake_module) return NULL; Py_INCREF(fake_module); cached_type = (PyTypeObject*) PyObject_GetAttrString(fake_module, type->tp_name); if (cached_type) { if (!PyType_Check((PyObject*)cached_type)) { PyErr_Format(PyExc_TypeError, "Shared Cython type %.200s is not a type object", type->tp_name); goto bad; } if (cached_type->tp_basicsize != type->tp_basicsize) { PyErr_Format(PyExc_TypeError, "Shared Cython type %.200s has the wrong size, try recompiling", type->tp_name); goto bad; } } else { if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad; PyErr_Clear(); if (PyType_Ready(type) < 0) goto bad; if (PyObject_SetAttrString(fake_module, type->tp_name, (PyObject*) type) < 0) goto bad; Py_INCREF(type); cached_type = type; } done: Py_DECREF(fake_module); return cached_type; bad: Py_XDECREF(cached_type); cached_type = NULL; goto done; } /* CythonFunction */ #include static PyObject * __Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *closure) { if (unlikely(op->func_doc == NULL)) { if (op->func.m_ml->ml_doc) { #if PY_MAJOR_VERSION >= 3 op->func_doc = PyUnicode_FromString(op->func.m_ml->ml_doc); #else op->func_doc = PyString_FromString(op->func.m_ml->ml_doc); #endif if (unlikely(op->func_doc == NULL)) return NULL; } else { Py_INCREF(Py_None); return Py_None; } } Py_INCREF(op->func_doc); return op->func_doc; } static int __Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context) { PyObject *tmp = op->func_doc; if (value == NULL) { value = Py_None; } Py_INCREF(value); op->func_doc = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { if (unlikely(op->func_name == NULL)) { #if PY_MAJOR_VERSION >= 3 op->func_name = PyUnicode_InternFromString(op->func.m_ml->ml_name); #else op->func_name = PyString_InternFromString(op->func.m_ml->ml_name); #endif if (unlikely(op->func_name == NULL)) return NULL; } Py_INCREF(op->func_name); return op->func_name; } static int __Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context) { PyObject *tmp; #if PY_MAJOR_VERSION >= 3 if (unlikely(value == NULL || !PyUnicode_Check(value))) #else if (unlikely(value == NULL || !PyString_Check(value))) #endif { PyErr_SetString(PyExc_TypeError, "__name__ must be set to a string object"); return -1; } tmp = op->func_name; Py_INCREF(value); op->func_name = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { Py_INCREF(op->func_qualname); return op->func_qualname; } static int __Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context) { PyObject *tmp; #if PY_MAJOR_VERSION >= 3 if (unlikely(value == NULL || !PyUnicode_Check(value))) #else if (unlikely(value == NULL || !PyString_Check(value))) #endif { PyErr_SetString(PyExc_TypeError, "__qualname__ must be set to a string object"); return -1; } tmp = op->func_qualname; Py_INCREF(value); op->func_qualname = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_self(__pyx_CyFunctionObject *m, CYTHON_UNUSED void *closure) { PyObject *self; self = m->func_closure; if (self == NULL) self = Py_None; Py_INCREF(self); return self; } static PyObject * __Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { if (unlikely(op->func_dict == NULL)) { op->func_dict = PyDict_New(); if (unlikely(op->func_dict == NULL)) return NULL; } Py_INCREF(op->func_dict); return op->func_dict; } static int __Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context) { PyObject *tmp; if (unlikely(value == NULL)) { PyErr_SetString(PyExc_TypeError, "function's dictionary may not be deleted"); return -1; } if (unlikely(!PyDict_Check(value))) { PyErr_SetString(PyExc_TypeError, "setting function's dictionary to a non-dict"); return -1; } tmp = op->func_dict; Py_INCREF(value); op->func_dict = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { Py_INCREF(op->func_globals); return op->func_globals; } static PyObject * __Pyx_CyFunction_get_closure(CYTHON_UNUSED __pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { Py_INCREF(Py_None); return Py_None; } static PyObject * __Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { PyObject* result = (op->func_code) ? op->func_code : Py_None; Py_INCREF(result); return result; } static int __Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) { int result = 0; PyObject *res = op->defaults_getter((PyObject *) op); if (unlikely(!res)) return -1; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS op->defaults_tuple = PyTuple_GET_ITEM(res, 0); Py_INCREF(op->defaults_tuple); op->defaults_kwdict = PyTuple_GET_ITEM(res, 1); Py_INCREF(op->defaults_kwdict); #else op->defaults_tuple = PySequence_ITEM(res, 0); if (unlikely(!op->defaults_tuple)) result = -1; else { op->defaults_kwdict = PySequence_ITEM(res, 1); if (unlikely(!op->defaults_kwdict)) result = -1; } #endif Py_DECREF(res); return result; } static int __Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) { PyObject* tmp; if (!value) { value = Py_None; } else if (value != Py_None && !PyTuple_Check(value)) { PyErr_SetString(PyExc_TypeError, "__defaults__ must be set to a tuple object"); return -1; } Py_INCREF(value); tmp = op->defaults_tuple; op->defaults_tuple = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { PyObject* result = op->defaults_tuple; if (unlikely(!result)) { if (op->defaults_getter) { if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL; result = op->defaults_tuple; } else { result = Py_None; } } Py_INCREF(result); return result; } static int __Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) { PyObject* tmp; if (!value) { value = Py_None; } else if (value != Py_None && !PyDict_Check(value)) { PyErr_SetString(PyExc_TypeError, "__kwdefaults__ must be set to a dict object"); return -1; } Py_INCREF(value); tmp = op->defaults_kwdict; op->defaults_kwdict = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { PyObject* result = op->defaults_kwdict; if (unlikely(!result)) { if (op->defaults_getter) { if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL; result = op->defaults_kwdict; } else { result = Py_None; } } Py_INCREF(result); return result; } static int __Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) { PyObject* tmp; if (!value || value == Py_None) { value = NULL; } else if (!PyDict_Check(value)) { PyErr_SetString(PyExc_TypeError, "__annotations__ must be set to a dict object"); return -1; } Py_XINCREF(value); tmp = op->func_annotations; op->func_annotations = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { PyObject* result = op->func_annotations; if (unlikely(!result)) { result = PyDict_New(); if (unlikely(!result)) return NULL; op->func_annotations = result; } Py_INCREF(result); return result; } static PyGetSetDef __pyx_CyFunction_getsets[] = { {(char *) "func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0}, {(char *) "__doc__", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0}, {(char *) "func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0}, {(char *) "__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0}, {(char *) "__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0}, {(char *) "__self__", (getter)__Pyx_CyFunction_get_self, 0, 0, 0}, {(char *) "func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0}, {(char *) "__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0}, {(char *) "func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0}, {(char *) "__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0}, {(char *) "func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0}, {(char *) "__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0}, {(char *) "func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0}, {(char *) "__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0}, {(char *) "func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0}, {(char *) "__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0}, {(char *) "__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0}, {(char *) "__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0}, {0, 0, 0, 0, 0} }; static PyMemberDef __pyx_CyFunction_members[] = { {(char *) "__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), PY_WRITE_RESTRICTED, 0}, {0, 0, 0, 0, 0} }; static PyObject * __Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, CYTHON_UNUSED PyObject *args) { #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(m->func.m_ml->ml_name); #else return PyString_FromString(m->func.m_ml->ml_name); #endif } static PyMethodDef __pyx_CyFunction_methods[] = { {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0}, {0, 0, 0, 0} }; #if PY_VERSION_HEX < 0x030500A0 #define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist) #else #define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func.m_weakreflist) #endif static PyObject *__Pyx_CyFunction_New(PyTypeObject *type, PyMethodDef *ml, int flags, PyObject* qualname, PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) { __pyx_CyFunctionObject *op = PyObject_GC_New(__pyx_CyFunctionObject, type); if (op == NULL) return NULL; op->flags = flags; __Pyx_CyFunction_weakreflist(op) = NULL; op->func.m_ml = ml; op->func.m_self = (PyObject *) op; Py_XINCREF(closure); op->func_closure = closure; Py_XINCREF(module); op->func.m_module = module; op->func_dict = NULL; op->func_name = NULL; Py_INCREF(qualname); op->func_qualname = qualname; op->func_doc = NULL; op->func_classobj = NULL; op->func_globals = globals; Py_INCREF(op->func_globals); Py_XINCREF(code); op->func_code = code; op->defaults_pyobjects = 0; op->defaults = NULL; op->defaults_tuple = NULL; op->defaults_kwdict = NULL; op->defaults_getter = NULL; op->func_annotations = NULL; PyObject_GC_Track(op); return (PyObject *) op; } static int __Pyx_CyFunction_clear(__pyx_CyFunctionObject *m) { Py_CLEAR(m->func_closure); Py_CLEAR(m->func.m_module); Py_CLEAR(m->func_dict); Py_CLEAR(m->func_name); Py_CLEAR(m->func_qualname); Py_CLEAR(m->func_doc); Py_CLEAR(m->func_globals); Py_CLEAR(m->func_code); Py_CLEAR(m->func_classobj); Py_CLEAR(m->defaults_tuple); Py_CLEAR(m->defaults_kwdict); Py_CLEAR(m->func_annotations); if (m->defaults) { PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m); int i; for (i = 0; i < m->defaults_pyobjects; i++) Py_XDECREF(pydefaults[i]); PyObject_Free(m->defaults); m->defaults = NULL; } return 0; } static void __Pyx__CyFunction_dealloc(__pyx_CyFunctionObject *m) { if (__Pyx_CyFunction_weakreflist(m) != NULL) PyObject_ClearWeakRefs((PyObject *) m); __Pyx_CyFunction_clear(m); PyObject_GC_Del(m); } static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m) { PyObject_GC_UnTrack(m); __Pyx__CyFunction_dealloc(m); } static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg) { Py_VISIT(m->func_closure); Py_VISIT(m->func.m_module); Py_VISIT(m->func_dict); Py_VISIT(m->func_name); Py_VISIT(m->func_qualname); Py_VISIT(m->func_doc); Py_VISIT(m->func_globals); Py_VISIT(m->func_code); Py_VISIT(m->func_classobj); Py_VISIT(m->defaults_tuple); Py_VISIT(m->defaults_kwdict); if (m->defaults) { PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m); int i; for (i = 0; i < m->defaults_pyobjects; i++) Py_VISIT(pydefaults[i]); } return 0; } static PyObject *__Pyx_CyFunction_descr_get(PyObject *func, PyObject *obj, PyObject *type) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; if (m->flags & __Pyx_CYFUNCTION_STATICMETHOD) { Py_INCREF(func); return func; } if (m->flags & __Pyx_CYFUNCTION_CLASSMETHOD) { if (type == NULL) type = (PyObject *)(Py_TYPE(obj)); return __Pyx_PyMethod_New(func, type, (PyObject *)(Py_TYPE(type))); } if (obj == Py_None) obj = NULL; return __Pyx_PyMethod_New(func, obj, type); } static PyObject* __Pyx_CyFunction_repr(__pyx_CyFunctionObject *op) { #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromFormat("", op->func_qualname, (void *)op); #else return PyString_FromFormat("", PyString_AsString(op->func_qualname), (void *)op); #endif } static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) { PyCFunctionObject* f = (PyCFunctionObject*)func; PyCFunction meth = f->m_ml->ml_meth; Py_ssize_t size; switch (f->m_ml->ml_flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) { case METH_VARARGS: if (likely(kw == NULL || PyDict_Size(kw) == 0)) return (*meth)(self, arg); break; case METH_VARARGS | METH_KEYWORDS: return (*(PyCFunctionWithKeywords)(void*)meth)(self, arg, kw); case METH_NOARGS: if (likely(kw == NULL || PyDict_Size(kw) == 0)) { size = PyTuple_GET_SIZE(arg); if (likely(size == 0)) return (*meth)(self, NULL); PyErr_Format(PyExc_TypeError, "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)", f->m_ml->ml_name, size); return NULL; } break; case METH_O: if (likely(kw == NULL || PyDict_Size(kw) == 0)) { size = PyTuple_GET_SIZE(arg); if (likely(size == 1)) { PyObject *result, *arg0; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS arg0 = PyTuple_GET_ITEM(arg, 0); #else arg0 = PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL; #endif result = (*meth)(self, arg0); #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS) Py_DECREF(arg0); #endif return result; } PyErr_Format(PyExc_TypeError, "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)", f->m_ml->ml_name, size); return NULL; } break; default: PyErr_SetString(PyExc_SystemError, "Bad call flags in " "__Pyx_CyFunction_Call. METH_OLDARGS is no " "longer supported!"); return NULL; } PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments", f->m_ml->ml_name); return NULL; } static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) { return __Pyx_CyFunction_CallMethod(func, ((PyCFunctionObject*)func)->m_self, arg, kw); } static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) { PyObject *result; __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func; if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) { Py_ssize_t argc; PyObject *new_args; PyObject *self; argc = PyTuple_GET_SIZE(args); new_args = PyTuple_GetSlice(args, 1, argc); if (unlikely(!new_args)) return NULL; self = PyTuple_GetItem(args, 0); if (unlikely(!self)) { Py_DECREF(new_args); return NULL; } result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw); Py_DECREF(new_args); } else { result = __Pyx_CyFunction_Call(func, args, kw); } return result; } static PyTypeObject __pyx_CyFunctionType_type = { PyVarObject_HEAD_INIT(0, 0) "cython_function_or_method", sizeof(__pyx_CyFunctionObject), 0, (destructor) __Pyx_CyFunction_dealloc, 0, 0, 0, #if PY_MAJOR_VERSION < 3 0, #else 0, #endif (reprfunc) __Pyx_CyFunction_repr, 0, 0, 0, 0, __Pyx_CyFunction_CallAsMethod, 0, 0, 0, 0, Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, 0, (traverseproc) __Pyx_CyFunction_traverse, (inquiry) __Pyx_CyFunction_clear, 0, #if PY_VERSION_HEX < 0x030500A0 offsetof(__pyx_CyFunctionObject, func_weakreflist), #else offsetof(PyCFunctionObject, m_weakreflist), #endif 0, 0, __pyx_CyFunction_methods, __pyx_CyFunction_members, __pyx_CyFunction_getsets, 0, 0, __Pyx_CyFunction_descr_get, 0, offsetof(__pyx_CyFunctionObject, func_dict), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, #if PY_VERSION_HEX >= 0x030400a1 0, #endif #if PY_VERSION_HEX >= 0x030800b1 0, #endif }; static int __pyx_CyFunction_init(void) { __pyx_CyFunctionType = __Pyx_FetchCommonType(&__pyx_CyFunctionType_type); if (unlikely(__pyx_CyFunctionType == NULL)) { return -1; } return 0; } static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *func, size_t size, int pyobjects) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->defaults = PyObject_Malloc(size); if (unlikely(!m->defaults)) return PyErr_NoMemory(); memset(m->defaults, 0, size); m->defaults_pyobjects = pyobjects; return m->defaults; } static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->defaults_tuple = tuple; Py_INCREF(tuple); } static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->defaults_kwdict = dict; Py_INCREF(dict); } static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->func_annotations = dict; Py_INCREF(dict); } /* FusedFunction */ static PyObject * __pyx_FusedFunction_New(PyTypeObject *type, PyMethodDef *ml, int flags, PyObject *qualname, PyObject *self, PyObject *module, PyObject *globals, PyObject *code) { __pyx_FusedFunctionObject *fusedfunc = (__pyx_FusedFunctionObject *) __Pyx_CyFunction_New(type, ml, flags, qualname, self, module, globals, code); if (!fusedfunc) return NULL; fusedfunc->__signatures__ = NULL; fusedfunc->type = NULL; fusedfunc->self = NULL; return (PyObject *) fusedfunc; } static void __pyx_FusedFunction_dealloc(__pyx_FusedFunctionObject *self) { PyObject_GC_UnTrack(self); Py_CLEAR(self->self); Py_CLEAR(self->type); Py_CLEAR(self->__signatures__); __Pyx__CyFunction_dealloc((__pyx_CyFunctionObject *) self); } static int __pyx_FusedFunction_traverse(__pyx_FusedFunctionObject *self, visitproc visit, void *arg) { Py_VISIT(self->self); Py_VISIT(self->type); Py_VISIT(self->__signatures__); return __Pyx_CyFunction_traverse((__pyx_CyFunctionObject *) self, visit, arg); } static int __pyx_FusedFunction_clear(__pyx_FusedFunctionObject *self) { Py_CLEAR(self->self); Py_CLEAR(self->type); Py_CLEAR(self->__signatures__); return __Pyx_CyFunction_clear((__pyx_CyFunctionObject *) self); } static PyObject * __pyx_FusedFunction_descr_get(PyObject *self, PyObject *obj, PyObject *type) { __pyx_FusedFunctionObject *func, *meth; func = (__pyx_FusedFunctionObject *) self; if (func->self || func->func.flags & __Pyx_CYFUNCTION_STATICMETHOD) { Py_INCREF(self); return self; } if (obj == Py_None) obj = NULL; meth = (__pyx_FusedFunctionObject *) __pyx_FusedFunction_NewEx( ((PyCFunctionObject *) func)->m_ml, ((__pyx_CyFunctionObject *) func)->flags, ((__pyx_CyFunctionObject *) func)->func_qualname, ((__pyx_CyFunctionObject *) func)->func_closure, ((PyCFunctionObject *) func)->m_module, ((__pyx_CyFunctionObject *) func)->func_globals, ((__pyx_CyFunctionObject *) func)->func_code); if (!meth) return NULL; Py_XINCREF(func->func.func_classobj); meth->func.func_classobj = func->func.func_classobj; Py_XINCREF(func->__signatures__); meth->__signatures__ = func->__signatures__; Py_XINCREF(type); meth->type = type; Py_XINCREF(func->func.defaults_tuple); meth->func.defaults_tuple = func->func.defaults_tuple; if (func->func.flags & __Pyx_CYFUNCTION_CLASSMETHOD) obj = type; Py_XINCREF(obj); meth->self = obj; return (PyObject *) meth; } static PyObject * _obj_to_str(PyObject *obj) { if (PyType_Check(obj)) return PyObject_GetAttr(obj, __pyx_n_s_name_2); else return PyObject_Str(obj); } static PyObject * __pyx_FusedFunction_getitem(__pyx_FusedFunctionObject *self, PyObject *idx) { PyObject *signature = NULL; PyObject *unbound_result_func; PyObject *result_func = NULL; if (self->__signatures__ == NULL) { PyErr_SetString(PyExc_TypeError, "Function is not fused"); return NULL; } if (PyTuple_Check(idx)) { PyObject *list = PyList_New(0); Py_ssize_t n = PyTuple_GET_SIZE(idx); PyObject *string = NULL; PyObject *sep = NULL; int i; if (!list) return NULL; for (i = 0; i < n; i++) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS PyObject *item = PyTuple_GET_ITEM(idx, i); #else PyObject *item = PySequence_ITEM(idx, i); #endif string = _obj_to_str(item); #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS) Py_DECREF(item); #endif if (!string || PyList_Append(list, string) < 0) goto __pyx_err; Py_DECREF(string); } sep = PyUnicode_FromString("|"); if (sep) signature = PyUnicode_Join(sep, list); __pyx_err: ; Py_DECREF(list); Py_XDECREF(sep); } else { signature = _obj_to_str(idx); } if (!signature) return NULL; unbound_result_func = PyObject_GetItem(self->__signatures__, signature); if (unbound_result_func) { if (self->self || self->type) { __pyx_FusedFunctionObject *unbound = (__pyx_FusedFunctionObject *) unbound_result_func; Py_CLEAR(unbound->func.func_classobj); Py_XINCREF(self->func.func_classobj); unbound->func.func_classobj = self->func.func_classobj; result_func = __pyx_FusedFunction_descr_get(unbound_result_func, self->self, self->type); } else { result_func = unbound_result_func; Py_INCREF(result_func); } } Py_DECREF(signature); Py_XDECREF(unbound_result_func); return result_func; } static PyObject * __pyx_FusedFunction_callfunction(PyObject *func, PyObject *args, PyObject *kw) { __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func; int static_specialized = (cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD && !((__pyx_FusedFunctionObject *) func)->__signatures__); if (cyfunc->flags & __Pyx_CYFUNCTION_CCLASS && !static_specialized) { return __Pyx_CyFunction_CallAsMethod(func, args, kw); } else { return __Pyx_CyFunction_Call(func, args, kw); } } static PyObject * __pyx_FusedFunction_call(PyObject *func, PyObject *args, PyObject *kw) { __pyx_FusedFunctionObject *binding_func = (__pyx_FusedFunctionObject *) func; Py_ssize_t argc = PyTuple_GET_SIZE(args); PyObject *new_args = NULL; __pyx_FusedFunctionObject *new_func = NULL; PyObject *result = NULL; PyObject *self = NULL; int is_staticmethod = binding_func->func.flags & __Pyx_CYFUNCTION_STATICMETHOD; int is_classmethod = binding_func->func.flags & __Pyx_CYFUNCTION_CLASSMETHOD; if (binding_func->self) { Py_ssize_t i; new_args = PyTuple_New(argc + 1); if (!new_args) return NULL; self = binding_func->self; #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS) Py_INCREF(self); #endif Py_INCREF(self); PyTuple_SET_ITEM(new_args, 0, self); for (i = 0; i < argc; i++) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS PyObject *item = PyTuple_GET_ITEM(args, i); Py_INCREF(item); #else PyObject *item = PySequence_ITEM(args, i); if (unlikely(!item)) goto bad; #endif PyTuple_SET_ITEM(new_args, i + 1, item); } args = new_args; } else if (binding_func->type) { if (argc < 1) { PyErr_SetString(PyExc_TypeError, "Need at least one argument, 0 given."); return NULL; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS self = PyTuple_GET_ITEM(args, 0); #else self = PySequence_ITEM(args, 0); if (unlikely(!self)) return NULL; #endif } if (self && !is_classmethod && !is_staticmethod) { int is_instance = PyObject_IsInstance(self, binding_func->type); if (unlikely(!is_instance)) { PyErr_Format(PyExc_TypeError, "First argument should be of type %.200s, got %.200s.", ((PyTypeObject *) binding_func->type)->tp_name, self->ob_type->tp_name); goto bad; } else if (unlikely(is_instance == -1)) { goto bad; } } #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS) Py_XDECREF(self); self = NULL; #endif if (binding_func->__signatures__) { PyObject *tup; if (is_staticmethod && binding_func->func.flags & __Pyx_CYFUNCTION_CCLASS) { tup = PyTuple_Pack(3, args, kw == NULL ? Py_None : kw, binding_func->func.defaults_tuple); if (unlikely(!tup)) goto bad; new_func = (__pyx_FusedFunctionObject *) __Pyx_CyFunction_CallMethod( func, binding_func->__signatures__, tup, NULL); } else { tup = PyTuple_Pack(4, binding_func->__signatures__, args, kw == NULL ? Py_None : kw, binding_func->func.defaults_tuple); if (unlikely(!tup)) goto bad; new_func = (__pyx_FusedFunctionObject *) __pyx_FusedFunction_callfunction(func, tup, NULL); } Py_DECREF(tup); if (unlikely(!new_func)) goto bad; Py_XINCREF(binding_func->func.func_classobj); Py_CLEAR(new_func->func.func_classobj); new_func->func.func_classobj = binding_func->func.func_classobj; func = (PyObject *) new_func; } result = __pyx_FusedFunction_callfunction(func, args, kw); bad: #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS) Py_XDECREF(self); #endif Py_XDECREF(new_args); Py_XDECREF((PyObject *) new_func); return result; } static PyMemberDef __pyx_FusedFunction_members[] = { {(char *) "__signatures__", T_OBJECT, offsetof(__pyx_FusedFunctionObject, __signatures__), READONLY, 0}, {0, 0, 0, 0, 0}, }; static PyMappingMethods __pyx_FusedFunction_mapping_methods = { 0, (binaryfunc) __pyx_FusedFunction_getitem, 0, }; static PyTypeObject __pyx_FusedFunctionType_type = { PyVarObject_HEAD_INIT(0, 0) "fused_cython_function", sizeof(__pyx_FusedFunctionObject), 0, (destructor) __pyx_FusedFunction_dealloc, 0, 0, 0, #if PY_MAJOR_VERSION < 3 0, #else 0, #endif 0, 0, 0, &__pyx_FusedFunction_mapping_methods, 0, (ternaryfunc) __pyx_FusedFunction_call, 0, 0, 0, 0, Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE, 0, (traverseproc) __pyx_FusedFunction_traverse, (inquiry) __pyx_FusedFunction_clear, 0, 0, 0, 0, 0, __pyx_FusedFunction_members, __pyx_CyFunction_getsets, &__pyx_CyFunctionType_type, 0, __pyx_FusedFunction_descr_get, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, #if PY_VERSION_HEX >= 0x030400a1 0, #endif #if PY_VERSION_HEX >= 0x030800b1 0, #endif }; static int __pyx_FusedFunction_init(void) { __pyx_FusedFunctionType = __Pyx_FetchCommonType(&__pyx_FusedFunctionType_type); if (__pyx_FusedFunctionType == NULL) { return -1; } return 0; } /* CLineInTraceback */ #ifndef CYTHON_CLINE_IN_TRACEBACK static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { PyObject *use_cline; PyObject *ptype, *pvalue, *ptraceback; #if CYTHON_COMPILING_IN_CPYTHON PyObject **cython_runtime_dict; #endif if (unlikely(!__pyx_cython_runtime)) { return c_line; } __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); #if CYTHON_COMPILING_IN_CPYTHON cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime); if (likely(cython_runtime_dict)) { __PYX_PY_DICT_LOOKUP_IF_MODIFIED( use_cline, *cython_runtime_dict, __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback)) } else #endif { PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback); if (use_cline_obj) { use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True; Py_DECREF(use_cline_obj); } else { PyErr_Clear(); use_cline = NULL; } } if (!use_cline) { c_line = 0; PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); } else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { c_line = 0; } __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); return c_line; } #endif /* CodeObjectCache */ static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { int start = 0, mid = 0, end = count - 1; if (end >= 0 && code_line > entries[end].code_line) { return count; } while (start < end) { mid = start + (end - start) / 2; if (code_line < entries[mid].code_line) { end = mid; } else if (code_line > entries[mid].code_line) { start = mid + 1; } else { return mid; } } if (code_line <= entries[mid].code_line) { return mid; } else { return mid + 1; } } static PyCodeObject *__pyx_find_code_object(int code_line) { PyCodeObject* code_object; int pos; if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) { return NULL; } pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) { return NULL; } code_object = __pyx_code_cache.entries[pos].code_object; Py_INCREF(code_object); return code_object; } static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { int pos, i; __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; if (unlikely(!code_line)) { return; } if (unlikely(!entries)) { entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); if (likely(entries)) { __pyx_code_cache.entries = entries; __pyx_code_cache.max_count = 64; __pyx_code_cache.count = 1; entries[0].code_line = code_line; entries[0].code_object = code_object; Py_INCREF(code_object); } return; } pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) { PyCodeObject* tmp = entries[pos].code_object; entries[pos].code_object = code_object; Py_DECREF(tmp); return; } if (__pyx_code_cache.count == __pyx_code_cache.max_count) { int new_max = __pyx_code_cache.max_count + 64; entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); if (unlikely(!entries)) { return; } __pyx_code_cache.entries = entries; __pyx_code_cache.max_count = new_max; } for (i=__pyx_code_cache.count; i>pos; i--) { entries[i] = entries[i-1]; } entries[pos].code_line = code_line; entries[pos].code_object = code_object; __pyx_code_cache.count++; Py_INCREF(code_object); } /* AddTraceback */ #include "compile.h" #include "frameobject.h" #include "traceback.h" static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( const char *funcname, int c_line, int py_line, const char *filename) { PyCodeObject *py_code = 0; PyObject *py_srcfile = 0; PyObject *py_funcname = 0; #if PY_MAJOR_VERSION < 3 py_srcfile = PyString_FromString(filename); #else py_srcfile = PyUnicode_FromString(filename); #endif if (!py_srcfile) goto bad; if (c_line) { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); #else py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); #endif } else { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromString(funcname); #else py_funcname = PyUnicode_FromString(funcname); #endif } if (!py_funcname) goto bad; py_code = __Pyx_PyCode_New( 0, 0, 0, 0, 0, __pyx_empty_bytes, /*PyObject *code,*/ __pyx_empty_tuple, /*PyObject *consts,*/ __pyx_empty_tuple, /*PyObject *names,*/ __pyx_empty_tuple, /*PyObject *varnames,*/ __pyx_empty_tuple, /*PyObject *freevars,*/ __pyx_empty_tuple, /*PyObject *cellvars,*/ py_srcfile, /*PyObject *filename,*/ py_funcname, /*PyObject *name,*/ py_line, __pyx_empty_bytes /*PyObject *lnotab*/ ); Py_DECREF(py_srcfile); Py_DECREF(py_funcname); return py_code; bad: Py_XDECREF(py_srcfile); Py_XDECREF(py_funcname); return NULL; } static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename) { PyCodeObject *py_code = 0; PyFrameObject *py_frame = 0; PyThreadState *tstate = __Pyx_PyThreadState_Current; if (c_line) { c_line = __Pyx_CLineForTraceback(tstate, c_line); } py_code = __pyx_find_code_object(c_line ? -c_line : py_line); if (!py_code) { py_code = __Pyx_CreateCodeObjectForTraceback( funcname, c_line, py_line, filename); if (!py_code) goto bad; __pyx_insert_code_object(c_line ? -c_line : py_line, py_code); } py_frame = PyFrame_New( tstate, /*PyThreadState *tstate,*/ py_code, /*PyCodeObject *code,*/ __pyx_d, /*PyObject *globals,*/ 0 /*PyObject *locals*/ ); if (!py_frame) goto bad; __Pyx_PyFrame_SetLineNumber(py_frame, py_line); PyTraceBack_Here(py_frame); bad: Py_XDECREF(py_code); Py_XDECREF(py_frame); } #if PY_MAJOR_VERSION < 3 static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags) { if (PyObject_CheckBuffer(obj)) return PyObject_GetBuffer(obj, view, flags); if (__Pyx_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) return __pyx_pw_5numpy_7ndarray_1__getbuffer__(obj, view, flags); if (__Pyx_TypeCheck(obj, __pyx_array_type)) return __pyx_array_getbuffer(obj, view, flags); if (__Pyx_TypeCheck(obj, __pyx_memoryview_type)) return __pyx_memoryview_getbuffer(obj, view, flags); PyErr_Format(PyExc_TypeError, "'%.200s' does not have the buffer interface", Py_TYPE(obj)->tp_name); return -1; } static void __Pyx_ReleaseBuffer(Py_buffer *view) { PyObject *obj = view->obj; if (!obj) return; if (PyObject_CheckBuffer(obj)) { PyBuffer_Release(view); return; } if ((0)) {} else if (__Pyx_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) __pyx_pw_5numpy_7ndarray_3__releasebuffer__(obj, view); view->obj = NULL; Py_DECREF(obj); } #endif /* MemviewSliceIsContig */ static int __pyx_memviewslice_is_contig(const __Pyx_memviewslice mvs, char order, int ndim) { int i, index, step, start; Py_ssize_t itemsize = mvs.memview->view.itemsize; if (order == 'F') { step = 1; start = 0; } else { step = -1; start = ndim - 1; } for (i = 0; i < ndim; i++) { index = start + step * i; if (mvs.suboffsets[index] >= 0 || mvs.strides[index] != itemsize) return 0; itemsize *= mvs.shape[index]; } return 1; } /* OverlappingSlices */ static void __pyx_get_array_memory_extents(__Pyx_memviewslice *slice, void **out_start, void **out_end, int ndim, size_t itemsize) { char *start, *end; int i; start = end = slice->data; for (i = 0; i < ndim; i++) { Py_ssize_t stride = slice->strides[i]; Py_ssize_t extent = slice->shape[i]; if (extent == 0) { *out_start = *out_end = start; return; } else { if (stride > 0) end += stride * (extent - 1); else start += stride * (extent - 1); } } *out_start = start; *out_end = end + itemsize; } static int __pyx_slices_overlap(__Pyx_memviewslice *slice1, __Pyx_memviewslice *slice2, int ndim, size_t itemsize) { void *start1, *end1, *start2, *end2; __pyx_get_array_memory_extents(slice1, &start1, &end1, ndim, itemsize); __pyx_get_array_memory_extents(slice2, &start2, &end2, ndim, itemsize); return (start1 < end2) && (start2 < end1); } /* Capsule */ static CYTHON_INLINE PyObject * __pyx_capsule_create(void *p, CYTHON_UNUSED const char *sig) { PyObject *cobj; #if PY_VERSION_HEX >= 0x02070000 cobj = PyCapsule_New(p, sig, NULL); #else cobj = PyCObject_FromVoidPtr(p, NULL); #endif return cobj; } /* IsLittleEndian */ static CYTHON_INLINE int __Pyx_Is_Little_Endian(void) { union { uint32_t u32; uint8_t u8[4]; } S; S.u32 = 0x01020304; return S.u8[0] == 4; } /* BufferFormatCheck */ static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx, __Pyx_BufFmt_StackElem* stack, __Pyx_TypeInfo* type) { stack[0].field = &ctx->root; stack[0].parent_offset = 0; ctx->root.type = type; ctx->root.name = "buffer dtype"; ctx->root.offset = 0; ctx->head = stack; ctx->head->field = &ctx->root; ctx->fmt_offset = 0; ctx->head->parent_offset = 0; ctx->new_packmode = '@'; ctx->enc_packmode = '@'; ctx->new_count = 1; ctx->enc_count = 0; ctx->enc_type = 0; ctx->is_complex = 0; ctx->is_valid_array = 0; ctx->struct_alignment = 0; while (type->typegroup == 'S') { ++ctx->head; ctx->head->field = type->fields; ctx->head->parent_offset = 0; type = type->fields->type; } } static int __Pyx_BufFmt_ParseNumber(const char** ts) { int count; const char* t = *ts; if (*t < '0' || *t > '9') { return -1; } else { count = *t++ - '0'; while (*t >= '0' && *t <= '9') { count *= 10; count += *t++ - '0'; } } *ts = t; return count; } static int __Pyx_BufFmt_ExpectNumber(const char **ts) { int number = __Pyx_BufFmt_ParseNumber(ts); if (number == -1) PyErr_Format(PyExc_ValueError,\ "Does not understand character buffer dtype format string ('%c')", **ts); return number; } static void __Pyx_BufFmt_RaiseUnexpectedChar(char ch) { PyErr_Format(PyExc_ValueError, "Unexpected format string character: '%c'", ch); } static const char* __Pyx_BufFmt_DescribeTypeChar(char ch, int is_complex) { switch (ch) { case 'c': return "'char'"; case 'b': return "'signed char'"; case 'B': return "'unsigned char'"; case 'h': return "'short'"; case 'H': return "'unsigned short'"; case 'i': return "'int'"; case 'I': return "'unsigned int'"; case 'l': return "'long'"; case 'L': return "'unsigned long'"; case 'q': return "'long long'"; case 'Q': return "'unsigned long long'"; case 'f': return (is_complex ? "'complex float'" : "'float'"); case 'd': return (is_complex ? "'complex double'" : "'double'"); case 'g': return (is_complex ? "'complex long double'" : "'long double'"); case 'T': return "a struct"; case 'O': return "Python object"; case 'P': return "a pointer"; case 's': case 'p': return "a string"; case 0: return "end"; default: return "unparseable format string"; } } static size_t __Pyx_BufFmt_TypeCharToStandardSize(char ch, int is_complex) { switch (ch) { case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; case 'h': case 'H': return 2; case 'i': case 'I': case 'l': case 'L': return 4; case 'q': case 'Q': return 8; case 'f': return (is_complex ? 8 : 4); case 'd': return (is_complex ? 16 : 8); case 'g': { PyErr_SetString(PyExc_ValueError, "Python does not define a standard format string size for long double ('g').."); return 0; } case 'O': case 'P': return sizeof(void*); default: __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } static size_t __Pyx_BufFmt_TypeCharToNativeSize(char ch, int is_complex) { switch (ch) { case 'c': case 'b': case 'B': case 's': case 'p': return 1; case 'h': case 'H': return sizeof(short); case 'i': case 'I': return sizeof(int); case 'l': case 'L': return sizeof(long); #ifdef HAVE_LONG_LONG case 'q': case 'Q': return sizeof(PY_LONG_LONG); #endif case 'f': return sizeof(float) * (is_complex ? 2 : 1); case 'd': return sizeof(double) * (is_complex ? 2 : 1); case 'g': return sizeof(long double) * (is_complex ? 2 : 1); case 'O': case 'P': return sizeof(void*); default: { __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } } typedef struct { char c; short x; } __Pyx_st_short; typedef struct { char c; int x; } __Pyx_st_int; typedef struct { char c; long x; } __Pyx_st_long; typedef struct { char c; float x; } __Pyx_st_float; typedef struct { char c; double x; } __Pyx_st_double; typedef struct { char c; long double x; } __Pyx_st_longdouble; typedef struct { char c; void *x; } __Pyx_st_void_p; #ifdef HAVE_LONG_LONG typedef struct { char c; PY_LONG_LONG x; } __Pyx_st_longlong; #endif static size_t __Pyx_BufFmt_TypeCharToAlignment(char ch, CYTHON_UNUSED int is_complex) { switch (ch) { case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; case 'h': case 'H': return sizeof(__Pyx_st_short) - sizeof(short); case 'i': case 'I': return sizeof(__Pyx_st_int) - sizeof(int); case 'l': case 'L': return sizeof(__Pyx_st_long) - sizeof(long); #ifdef HAVE_LONG_LONG case 'q': case 'Q': return sizeof(__Pyx_st_longlong) - sizeof(PY_LONG_LONG); #endif case 'f': return sizeof(__Pyx_st_float) - sizeof(float); case 'd': return sizeof(__Pyx_st_double) - sizeof(double); case 'g': return sizeof(__Pyx_st_longdouble) - sizeof(long double); case 'P': case 'O': return sizeof(__Pyx_st_void_p) - sizeof(void*); default: __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } /* These are for computing the padding at the end of the struct to align on the first member of the struct. This will probably the same as above, but we don't have any guarantees. */ typedef struct { short x; char c; } __Pyx_pad_short; typedef struct { int x; char c; } __Pyx_pad_int; typedef struct { long x; char c; } __Pyx_pad_long; typedef struct { float x; char c; } __Pyx_pad_float; typedef struct { double x; char c; } __Pyx_pad_double; typedef struct { long double x; char c; } __Pyx_pad_longdouble; typedef struct { void *x; char c; } __Pyx_pad_void_p; #ifdef HAVE_LONG_LONG typedef struct { PY_LONG_LONG x; char c; } __Pyx_pad_longlong; #endif static size_t __Pyx_BufFmt_TypeCharToPadding(char ch, CYTHON_UNUSED int is_complex) { switch (ch) { case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; case 'h': case 'H': return sizeof(__Pyx_pad_short) - sizeof(short); case 'i': case 'I': return sizeof(__Pyx_pad_int) - sizeof(int); case 'l': case 'L': return sizeof(__Pyx_pad_long) - sizeof(long); #ifdef HAVE_LONG_LONG case 'q': case 'Q': return sizeof(__Pyx_pad_longlong) - sizeof(PY_LONG_LONG); #endif case 'f': return sizeof(__Pyx_pad_float) - sizeof(float); case 'd': return sizeof(__Pyx_pad_double) - sizeof(double); case 'g': return sizeof(__Pyx_pad_longdouble) - sizeof(long double); case 'P': case 'O': return sizeof(__Pyx_pad_void_p) - sizeof(void*); default: __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } static char __Pyx_BufFmt_TypeCharToGroup(char ch, int is_complex) { switch (ch) { case 'c': return 'H'; case 'b': case 'h': case 'i': case 'l': case 'q': case 's': case 'p': return 'I'; case 'B': case 'H': case 'I': case 'L': case 'Q': return 'U'; case 'f': case 'd': case 'g': return (is_complex ? 'C' : 'R'); case 'O': return 'O'; case 'P': return 'P'; default: { __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } } static void __Pyx_BufFmt_RaiseExpected(__Pyx_BufFmt_Context* ctx) { if (ctx->head == NULL || ctx->head->field == &ctx->root) { const char* expected; const char* quote; if (ctx->head == NULL) { expected = "end"; quote = ""; } else { expected = ctx->head->field->type->name; quote = "'"; } PyErr_Format(PyExc_ValueError, "Buffer dtype mismatch, expected %s%s%s but got %s", quote, expected, quote, __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex)); } else { __Pyx_StructField* field = ctx->head->field; __Pyx_StructField* parent = (ctx->head - 1)->field; PyErr_Format(PyExc_ValueError, "Buffer dtype mismatch, expected '%s' but got %s in '%s.%s'", field->type->name, __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex), parent->type->name, field->name); } } static int __Pyx_BufFmt_ProcessTypeChunk(__Pyx_BufFmt_Context* ctx) { char group; size_t size, offset, arraysize = 1; if (ctx->enc_type == 0) return 0; if (ctx->head->field->type->arraysize[0]) { int i, ndim = 0; if (ctx->enc_type == 's' || ctx->enc_type == 'p') { ctx->is_valid_array = ctx->head->field->type->ndim == 1; ndim = 1; if (ctx->enc_count != ctx->head->field->type->arraysize[0]) { PyErr_Format(PyExc_ValueError, "Expected a dimension of size %zu, got %zu", ctx->head->field->type->arraysize[0], ctx->enc_count); return -1; } } if (!ctx->is_valid_array) { PyErr_Format(PyExc_ValueError, "Expected %d dimensions, got %d", ctx->head->field->type->ndim, ndim); return -1; } for (i = 0; i < ctx->head->field->type->ndim; i++) { arraysize *= ctx->head->field->type->arraysize[i]; } ctx->is_valid_array = 0; ctx->enc_count = 1; } group = __Pyx_BufFmt_TypeCharToGroup(ctx->enc_type, ctx->is_complex); do { __Pyx_StructField* field = ctx->head->field; __Pyx_TypeInfo* type = field->type; if (ctx->enc_packmode == '@' || ctx->enc_packmode == '^') { size = __Pyx_BufFmt_TypeCharToNativeSize(ctx->enc_type, ctx->is_complex); } else { size = __Pyx_BufFmt_TypeCharToStandardSize(ctx->enc_type, ctx->is_complex); } if (ctx->enc_packmode == '@') { size_t align_at = __Pyx_BufFmt_TypeCharToAlignment(ctx->enc_type, ctx->is_complex); size_t align_mod_offset; if (align_at == 0) return -1; align_mod_offset = ctx->fmt_offset % align_at; if (align_mod_offset > 0) ctx->fmt_offset += align_at - align_mod_offset; if (ctx->struct_alignment == 0) ctx->struct_alignment = __Pyx_BufFmt_TypeCharToPadding(ctx->enc_type, ctx->is_complex); } if (type->size != size || type->typegroup != group) { if (type->typegroup == 'C' && type->fields != NULL) { size_t parent_offset = ctx->head->parent_offset + field->offset; ++ctx->head; ctx->head->field = type->fields; ctx->head->parent_offset = parent_offset; continue; } if ((type->typegroup == 'H' || group == 'H') && type->size == size) { } else { __Pyx_BufFmt_RaiseExpected(ctx); return -1; } } offset = ctx->head->parent_offset + field->offset; if (ctx->fmt_offset != offset) { PyErr_Format(PyExc_ValueError, "Buffer dtype mismatch; next field is at offset %" CYTHON_FORMAT_SSIZE_T "d but %" CYTHON_FORMAT_SSIZE_T "d expected", (Py_ssize_t)ctx->fmt_offset, (Py_ssize_t)offset); return -1; } ctx->fmt_offset += size; if (arraysize) ctx->fmt_offset += (arraysize - 1) * size; --ctx->enc_count; while (1) { if (field == &ctx->root) { ctx->head = NULL; if (ctx->enc_count != 0) { __Pyx_BufFmt_RaiseExpected(ctx); return -1; } break; } ctx->head->field = ++field; if (field->type == NULL) { --ctx->head; field = ctx->head->field; continue; } else if (field->type->typegroup == 'S') { size_t parent_offset = ctx->head->parent_offset + field->offset; if (field->type->fields->type == NULL) continue; field = field->type->fields; ++ctx->head; ctx->head->field = field; ctx->head->parent_offset = parent_offset; break; } else { break; } } } while (ctx->enc_count); ctx->enc_type = 0; ctx->is_complex = 0; return 0; } static PyObject * __pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp) { const char *ts = *tsp; int i = 0, number; int ndim = ctx->head->field->type->ndim; ; ++ts; if (ctx->new_count != 1) { PyErr_SetString(PyExc_ValueError, "Cannot handle repeated arrays in format string"); return NULL; } if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; while (*ts && *ts != ')') { switch (*ts) { case ' ': case '\f': case '\r': case '\n': case '\t': case '\v': continue; default: break; } number = __Pyx_BufFmt_ExpectNumber(&ts); if (number == -1) return NULL; if (i < ndim && (size_t) number != ctx->head->field->type->arraysize[i]) return PyErr_Format(PyExc_ValueError, "Expected a dimension of size %zu, got %d", ctx->head->field->type->arraysize[i], number); if (*ts != ',' && *ts != ')') return PyErr_Format(PyExc_ValueError, "Expected a comma in format string, got '%c'", *ts); if (*ts == ',') ts++; i++; } if (i != ndim) return PyErr_Format(PyExc_ValueError, "Expected %d dimension(s), got %d", ctx->head->field->type->ndim, i); if (!*ts) { PyErr_SetString(PyExc_ValueError, "Unexpected end of format string, expected ')'"); return NULL; } ctx->is_valid_array = 1; ctx->new_count = 1; *tsp = ++ts; return Py_None; } static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts) { int got_Z = 0; while (1) { switch(*ts) { case 0: if (ctx->enc_type != 0 && ctx->head == NULL) { __Pyx_BufFmt_RaiseExpected(ctx); return NULL; } if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; if (ctx->head != NULL) { __Pyx_BufFmt_RaiseExpected(ctx); return NULL; } return ts; case ' ': case '\r': case '\n': ++ts; break; case '<': if (!__Pyx_Is_Little_Endian()) { PyErr_SetString(PyExc_ValueError, "Little-endian buffer not supported on big-endian compiler"); return NULL; } ctx->new_packmode = '='; ++ts; break; case '>': case '!': if (__Pyx_Is_Little_Endian()) { PyErr_SetString(PyExc_ValueError, "Big-endian buffer not supported on little-endian compiler"); return NULL; } ctx->new_packmode = '='; ++ts; break; case '=': case '@': case '^': ctx->new_packmode = *ts++; break; case 'T': { const char* ts_after_sub; size_t i, struct_count = ctx->new_count; size_t struct_alignment = ctx->struct_alignment; ctx->new_count = 1; ++ts; if (*ts != '{') { PyErr_SetString(PyExc_ValueError, "Buffer acquisition: Expected '{' after 'T'"); return NULL; } if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; ctx->enc_type = 0; ctx->enc_count = 0; ctx->struct_alignment = 0; ++ts; ts_after_sub = ts; for (i = 0; i != struct_count; ++i) { ts_after_sub = __Pyx_BufFmt_CheckString(ctx, ts); if (!ts_after_sub) return NULL; } ts = ts_after_sub; if (struct_alignment) ctx->struct_alignment = struct_alignment; } break; case '}': { size_t alignment = ctx->struct_alignment; ++ts; if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; ctx->enc_type = 0; if (alignment && ctx->fmt_offset % alignment) { ctx->fmt_offset += alignment - (ctx->fmt_offset % alignment); } } return ts; case 'x': if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; ctx->fmt_offset += ctx->new_count; ctx->new_count = 1; ctx->enc_count = 0; ctx->enc_type = 0; ctx->enc_packmode = ctx->new_packmode; ++ts; break; case 'Z': got_Z = 1; ++ts; if (*ts != 'f' && *ts != 'd' && *ts != 'g') { __Pyx_BufFmt_RaiseUnexpectedChar('Z'); return NULL; } CYTHON_FALLTHROUGH; case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I': case 'l': case 'L': case 'q': case 'Q': case 'f': case 'd': case 'g': case 'O': case 'p': if (ctx->enc_type == *ts && got_Z == ctx->is_complex && ctx->enc_packmode == ctx->new_packmode) { ctx->enc_count += ctx->new_count; ctx->new_count = 1; got_Z = 0; ++ts; break; } CYTHON_FALLTHROUGH; case 's': if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; ctx->enc_count = ctx->new_count; ctx->enc_packmode = ctx->new_packmode; ctx->enc_type = *ts; ctx->is_complex = got_Z; ++ts; ctx->new_count = 1; got_Z = 0; break; case ':': ++ts; while(*ts != ':') ++ts; ++ts; break; case '(': if (!__pyx_buffmt_parse_array(ctx, &ts)) return NULL; break; default: { int number = __Pyx_BufFmt_ExpectNumber(&ts); if (number == -1) return NULL; ctx->new_count = (size_t)number; } } } } /* TypeInfoCompare */ static int __pyx_typeinfo_cmp(__Pyx_TypeInfo *a, __Pyx_TypeInfo *b) { int i; if (!a || !b) return 0; if (a == b) return 1; if (a->size != b->size || a->typegroup != b->typegroup || a->is_unsigned != b->is_unsigned || a->ndim != b->ndim) { if (a->typegroup == 'H' || b->typegroup == 'H') { return a->size == b->size; } else { return 0; } } if (a->ndim) { for (i = 0; i < a->ndim; i++) if (a->arraysize[i] != b->arraysize[i]) return 0; } if (a->typegroup == 'S') { if (a->flags != b->flags) return 0; if (a->fields || b->fields) { if (!(a->fields && b->fields)) return 0; for (i = 0; a->fields[i].type && b->fields[i].type; i++) { __Pyx_StructField *field_a = a->fields + i; __Pyx_StructField *field_b = b->fields + i; if (field_a->offset != field_b->offset || !__pyx_typeinfo_cmp(field_a->type, field_b->type)) return 0; } return !a->fields[i].type && !b->fields[i].type; } } return 1; } /* MemviewSliceValidateAndInit */ static int __pyx_check_strides(Py_buffer *buf, int dim, int ndim, int spec) { if (buf->shape[dim] <= 1) return 1; if (buf->strides) { if (spec & __Pyx_MEMVIEW_CONTIG) { if (spec & (__Pyx_MEMVIEW_PTR|__Pyx_MEMVIEW_FULL)) { if (buf->strides[dim] != sizeof(void *)) { PyErr_Format(PyExc_ValueError, "Buffer is not indirectly contiguous " "in dimension %d.", dim); goto fail; } } else if (buf->strides[dim] != buf->itemsize) { PyErr_SetString(PyExc_ValueError, "Buffer and memoryview are not contiguous " "in the same dimension."); goto fail; } } if (spec & __Pyx_MEMVIEW_FOLLOW) { Py_ssize_t stride = buf->strides[dim]; if (stride < 0) stride = -stride; if (stride < buf->itemsize) { PyErr_SetString(PyExc_ValueError, "Buffer and memoryview are not contiguous " "in the same dimension."); goto fail; } } } else { if (spec & __Pyx_MEMVIEW_CONTIG && dim != ndim - 1) { PyErr_Format(PyExc_ValueError, "C-contiguous buffer is not contiguous in " "dimension %d", dim); goto fail; } else if (spec & (__Pyx_MEMVIEW_PTR)) { PyErr_Format(PyExc_ValueError, "C-contiguous buffer is not indirect in " "dimension %d", dim); goto fail; } else if (buf->suboffsets) { PyErr_SetString(PyExc_ValueError, "Buffer exposes suboffsets but no strides"); goto fail; } } return 1; fail: return 0; } static int __pyx_check_suboffsets(Py_buffer *buf, int dim, CYTHON_UNUSED int ndim, int spec) { if (spec & __Pyx_MEMVIEW_DIRECT) { if (buf->suboffsets && buf->suboffsets[dim] >= 0) { PyErr_Format(PyExc_ValueError, "Buffer not compatible with direct access " "in dimension %d.", dim); goto fail; } } if (spec & __Pyx_MEMVIEW_PTR) { if (!buf->suboffsets || (buf->suboffsets[dim] < 0)) { PyErr_Format(PyExc_ValueError, "Buffer is not indirectly accessible " "in dimension %d.", dim); goto fail; } } return 1; fail: return 0; } static int __pyx_verify_contig(Py_buffer *buf, int ndim, int c_or_f_flag) { int i; if (c_or_f_flag & __Pyx_IS_F_CONTIG) { Py_ssize_t stride = 1; for (i = 0; i < ndim; i++) { if (stride * buf->itemsize != buf->strides[i] && buf->shape[i] > 1) { PyErr_SetString(PyExc_ValueError, "Buffer not fortran contiguous."); goto fail; } stride = stride * buf->shape[i]; } } else if (c_or_f_flag & __Pyx_IS_C_CONTIG) { Py_ssize_t stride = 1; for (i = ndim - 1; i >- 1; i--) { if (stride * buf->itemsize != buf->strides[i] && buf->shape[i] > 1) { PyErr_SetString(PyExc_ValueError, "Buffer not C contiguous."); goto fail; } stride = stride * buf->shape[i]; } } return 1; fail: return 0; } static int __Pyx_ValidateAndInit_memviewslice( int *axes_specs, int c_or_f_flag, int buf_flags, int ndim, __Pyx_TypeInfo *dtype, __Pyx_BufFmt_StackElem stack[], __Pyx_memviewslice *memviewslice, PyObject *original_obj) { struct __pyx_memoryview_obj *memview, *new_memview; __Pyx_RefNannyDeclarations Py_buffer *buf; int i, spec = 0, retval = -1; __Pyx_BufFmt_Context ctx; int from_memoryview = __pyx_memoryview_check(original_obj); __Pyx_RefNannySetupContext("ValidateAndInit_memviewslice", 0); if (from_memoryview && __pyx_typeinfo_cmp(dtype, ((struct __pyx_memoryview_obj *) original_obj)->typeinfo)) { memview = (struct __pyx_memoryview_obj *) original_obj; new_memview = NULL; } else { memview = (struct __pyx_memoryview_obj *) __pyx_memoryview_new( original_obj, buf_flags, 0, dtype); new_memview = memview; if (unlikely(!memview)) goto fail; } buf = &memview->view; if (buf->ndim != ndim) { PyErr_Format(PyExc_ValueError, "Buffer has wrong number of dimensions (expected %d, got %d)", ndim, buf->ndim); goto fail; } if (new_memview) { __Pyx_BufFmt_Init(&ctx, stack, dtype); if (!__Pyx_BufFmt_CheckString(&ctx, buf->format)) goto fail; } if ((unsigned) buf->itemsize != dtype->size) { PyErr_Format(PyExc_ValueError, "Item size of buffer (%" CYTHON_FORMAT_SSIZE_T "u byte%s) " "does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "u byte%s)", buf->itemsize, (buf->itemsize > 1) ? "s" : "", dtype->name, dtype->size, (dtype->size > 1) ? "s" : ""); goto fail; } for (i = 0; i < ndim; i++) { spec = axes_specs[i]; if (!__pyx_check_strides(buf, i, ndim, spec)) goto fail; if (!__pyx_check_suboffsets(buf, i, ndim, spec)) goto fail; } if (buf->strides && !__pyx_verify_contig(buf, ndim, c_or_f_flag)) goto fail; if (unlikely(__Pyx_init_memviewslice(memview, ndim, memviewslice, new_memview != NULL) == -1)) { goto fail; } retval = 0; goto no_fail; fail: Py_XDECREF(new_memview); retval = -1; no_fail: __Pyx_RefNannyFinishContext(); return retval; } /* ObjectToMemviewSlice */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(PyObject *obj, int writable_flag) { __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_BufFmt_StackElem stack[1]; int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) }; int retcode; if (obj == Py_None) { result.memview = (struct __pyx_memoryview_obj *) Py_None; return result; } retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG, (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 1, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, stack, &result, obj); if (unlikely(retcode == -1)) goto __pyx_fail; return result; __pyx_fail: result.memview = NULL; result.data = NULL; return result; } /* ObjectToMemviewSlice */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(PyObject *obj, int writable_flag) { __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_BufFmt_StackElem stack[1]; int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) }; int retcode; if (obj == Py_None) { result.memview = (struct __pyx_memoryview_obj *) Py_None; return result; } retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG, (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 1, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, stack, &result, obj); if (unlikely(retcode == -1)) goto __pyx_fail; return result; __pyx_fail: result.memview = NULL; result.data = NULL; return result; } /* ObjectToMemviewSlice */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_float_complex(PyObject *obj, int writable_flag) { __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_BufFmt_StackElem stack[1]; int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) }; int retcode; if (obj == Py_None) { result.memview = (struct __pyx_memoryview_obj *) Py_None; return result; } retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG, (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 1, &__Pyx_TypeInfo___pyx_t_float_complex, stack, &result, obj); if (unlikely(retcode == -1)) goto __pyx_fail; return result; __pyx_fail: result.memview = NULL; result.data = NULL; return result; } /* ObjectToMemviewSlice */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_double_complex(PyObject *obj, int writable_flag) { __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_BufFmt_StackElem stack[1]; int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) }; int retcode; if (obj == Py_None) { result.memview = (struct __pyx_memoryview_obj *) Py_None; return result; } retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG, (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 1, &__Pyx_TypeInfo___pyx_t_double_complex, stack, &result, obj); if (unlikely(retcode == -1)) goto __pyx_fail; return result; __pyx_fail: result.memview = NULL; result.data = NULL; return result; } /* CIntFromPyVerify */ #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) #define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) #define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\ {\ func_type value = func_value;\ if (sizeof(target_type) < sizeof(func_type)) {\ if (unlikely(value != (func_type) (target_type) value)) {\ func_type zero = 0;\ if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\ return (target_type) -1;\ if (is_unsigned && unlikely(value < zero))\ goto raise_neg_overflow;\ else\ goto raise_overflow;\ }\ }\ return (target_type) value;\ } /* Declarations */ #if CYTHON_CCOMPLEX #ifdef __cplusplus static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { return ::std::complex< float >(x, y); } #else static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { return x + y*(__pyx_t_float_complex)_Complex_I; } #endif #else static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { __pyx_t_float_complex z; z.real = x; z.imag = y; return z; } #endif /* Arithmetic */ #if CYTHON_CCOMPLEX #else static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { return (a.real == b.real) && (a.imag == b.imag); } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; z.real = a.real + b.real; z.imag = a.imag + b.imag; return z; } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; z.real = a.real - b.real; z.imag = a.imag - b.imag; return z; } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; z.real = a.real * b.real - a.imag * b.imag; z.imag = a.real * b.imag + a.imag * b.real; return z; } #if 1 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { if (b.imag == 0) { return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real); } else if (fabsf(b.real) >= fabsf(b.imag)) { if (b.real == 0 && b.imag == 0) { return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.imag); } else { float r = b.imag / b.real; float s = (float)(1.0) / (b.real + b.imag * r); return __pyx_t_float_complex_from_parts( (a.real + a.imag * r) * s, (a.imag - a.real * r) * s); } } else { float r = b.real / b.imag; float s = (float)(1.0) / (b.imag + b.real * r); return __pyx_t_float_complex_from_parts( (a.real * r + a.imag) * s, (a.imag * r - a.real) * s); } } #else static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { if (b.imag == 0) { return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real); } else { float denom = b.real * b.real + b.imag * b.imag; return __pyx_t_float_complex_from_parts( (a.real * b.real + a.imag * b.imag) / denom, (a.imag * b.real - a.real * b.imag) / denom); } } #endif static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex a) { __pyx_t_float_complex z; z.real = -a.real; z.imag = -a.imag; return z; } static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex a) { return (a.real == 0) && (a.imag == 0); } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex a) { __pyx_t_float_complex z; z.real = a.real; z.imag = -a.imag; return z; } #if 1 static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex z) { #if !defined(HAVE_HYPOT) || defined(_MSC_VER) return sqrtf(z.real*z.real + z.imag*z.imag); #else return hypotf(z.real, z.imag); #endif } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; float r, lnr, theta, z_r, z_theta; if (b.imag == 0 && b.real == (int)b.real) { if (b.real < 0) { float denom = a.real * a.real + a.imag * a.imag; a.real = a.real / denom; a.imag = -a.imag / denom; b.real = -b.real; } switch ((int)b.real) { case 0: z.real = 1; z.imag = 0; return z; case 1: return a; case 2: z = __Pyx_c_prod_float(a, a); return __Pyx_c_prod_float(a, a); case 3: z = __Pyx_c_prod_float(a, a); return __Pyx_c_prod_float(z, a); case 4: z = __Pyx_c_prod_float(a, a); return __Pyx_c_prod_float(z, z); } } if (a.imag == 0) { if (a.real == 0) { return a; } else if (b.imag == 0) { z.real = powf(a.real, b.real); z.imag = 0; return z; } else if (a.real > 0) { r = a.real; theta = 0; } else { r = -a.real; theta = atan2f(0.0, -1.0); } } else { r = __Pyx_c_abs_float(a); theta = atan2f(a.imag, a.real); } lnr = logf(r); z_r = expf(lnr * b.real - theta * b.imag); z_theta = theta * b.real + lnr * b.imag; z.real = z_r * cosf(z_theta); z.imag = z_r * sinf(z_theta); return z; } #endif #endif /* Declarations */ #if CYTHON_CCOMPLEX #ifdef __cplusplus static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) { return ::std::complex< double >(x, y); } #else static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) { return x + y*(__pyx_t_double_complex)_Complex_I; } #endif #else static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) { __pyx_t_double_complex z; z.real = x; z.imag = y; return z; } #endif /* Arithmetic */ #if CYTHON_CCOMPLEX #else static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { return (a.real == b.real) && (a.imag == b.imag); } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; z.real = a.real + b.real; z.imag = a.imag + b.imag; return z; } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; z.real = a.real - b.real; z.imag = a.imag - b.imag; return z; } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; z.real = a.real * b.real - a.imag * b.imag; z.imag = a.real * b.imag + a.imag * b.real; return z; } #if 1 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { if (b.imag == 0) { return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real); } else if (fabs(b.real) >= fabs(b.imag)) { if (b.real == 0 && b.imag == 0) { return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.imag); } else { double r = b.imag / b.real; double s = (double)(1.0) / (b.real + b.imag * r); return __pyx_t_double_complex_from_parts( (a.real + a.imag * r) * s, (a.imag - a.real * r) * s); } } else { double r = b.real / b.imag; double s = (double)(1.0) / (b.imag + b.real * r); return __pyx_t_double_complex_from_parts( (a.real * r + a.imag) * s, (a.imag * r - a.real) * s); } } #else static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { if (b.imag == 0) { return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real); } else { double denom = b.real * b.real + b.imag * b.imag; return __pyx_t_double_complex_from_parts( (a.real * b.real + a.imag * b.imag) / denom, (a.imag * b.real - a.real * b.imag) / denom); } } #endif static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex a) { __pyx_t_double_complex z; z.real = -a.real; z.imag = -a.imag; return z; } static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex a) { return (a.real == 0) && (a.imag == 0); } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex a) { __pyx_t_double_complex z; z.real = a.real; z.imag = -a.imag; return z; } #if 1 static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex z) { #if !defined(HAVE_HYPOT) || defined(_MSC_VER) return sqrt(z.real*z.real + z.imag*z.imag); #else return hypot(z.real, z.imag); #endif } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; double r, lnr, theta, z_r, z_theta; if (b.imag == 0 && b.real == (int)b.real) { if (b.real < 0) { double denom = a.real * a.real + a.imag * a.imag; a.real = a.real / denom; a.imag = -a.imag / denom; b.real = -b.real; } switch ((int)b.real) { case 0: z.real = 1; z.imag = 0; return z; case 1: return a; case 2: z = __Pyx_c_prod_double(a, a); return __Pyx_c_prod_double(a, a); case 3: z = __Pyx_c_prod_double(a, a); return __Pyx_c_prod_double(z, a); case 4: z = __Pyx_c_prod_double(a, a); return __Pyx_c_prod_double(z, z); } } if (a.imag == 0) { if (a.real == 0) { return a; } else if (b.imag == 0) { z.real = pow(a.real, b.real); z.imag = 0; return z; } else if (a.real > 0) { r = a.real; theta = 0; } else { r = -a.real; theta = atan2(0.0, -1.0); } } else { r = __Pyx_c_abs_double(a); theta = atan2(a.imag, a.real); } lnr = log(r); z_r = exp(lnr * b.real - theta * b.imag); z_theta = theta * b.real + lnr * b.imag; z.real = z_r * cos(z_theta); z.imag = z_r * sin(z_theta); return z; } #endif #endif /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_char(unsigned char value) { const unsigned char neg_one = (unsigned char) ((unsigned char) 0 - (unsigned char) 1), const_zero = (unsigned char) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(unsigned char) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(unsigned char) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(unsigned char) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(unsigned char) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(unsigned char) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(unsigned char), little, !is_unsigned); } } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(long) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(long) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(long) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(long), little, !is_unsigned); } } /* MemviewDtypeToObject */ static CYTHON_INLINE PyObject *__pyx_memview_get_nn___pyx_t_5numpy_float32_t(const char *itemp) { return (PyObject *) PyFloat_FromDouble(*(__pyx_t_5numpy_float32_t *) itemp); } static CYTHON_INLINE int __pyx_memview_set_nn___pyx_t_5numpy_float32_t(const char *itemp, PyObject *obj) { __pyx_t_5numpy_float32_t value = __pyx_PyFloat_AsFloat(obj); if ((value == ((npy_float32)-1)) && PyErr_Occurred()) return 0; *(__pyx_t_5numpy_float32_t *) itemp = value; return 1; } /* MemviewDtypeToObject */ static CYTHON_INLINE PyObject *__pyx_memview_get_nn___pyx_t_5numpy_float64_t(const char *itemp) { return (PyObject *) PyFloat_FromDouble(*(__pyx_t_5numpy_float64_t *) itemp); } static CYTHON_INLINE int __pyx_memview_set_nn___pyx_t_5numpy_float64_t(const char *itemp, PyObject *obj) { __pyx_t_5numpy_float64_t value = __pyx_PyFloat_AsDouble(obj); if ((value == ((npy_float64)-1)) && PyErr_Occurred()) return 0; *(__pyx_t_5numpy_float64_t *) itemp = value; return 1; } /* FromPy */ static __pyx_t_float_complex __Pyx_PyComplex_As___pyx_t_float_complex(PyObject* o) { Py_complex cval; #if !CYTHON_COMPILING_IN_PYPY if (PyComplex_CheckExact(o)) cval = ((PyComplexObject *)o)->cval; else #endif cval = PyComplex_AsCComplex(o); return __pyx_t_float_complex_from_parts( (float)cval.real, (float)cval.imag); } /* MemviewDtypeToObject */ static CYTHON_INLINE PyObject *__pyx_memview_get___pyx_t_float_complex(const char *itemp) { return (PyObject *) __pyx_PyComplex_FromComplex(*(__pyx_t_float_complex *) itemp); } static CYTHON_INLINE int __pyx_memview_set___pyx_t_float_complex(const char *itemp, PyObject *obj) { __pyx_t_float_complex value = __Pyx_PyComplex_As___pyx_t_float_complex(obj); if (PyErr_Occurred()) return 0; *(__pyx_t_float_complex *) itemp = value; return 1; } /* FromPy */ static __pyx_t_double_complex __Pyx_PyComplex_As___pyx_t_double_complex(PyObject* o) { Py_complex cval; #if !CYTHON_COMPILING_IN_PYPY if (PyComplex_CheckExact(o)) cval = ((PyComplexObject *)o)->cval; else #endif cval = PyComplex_AsCComplex(o); return __pyx_t_double_complex_from_parts( (double)cval.real, (double)cval.imag); } /* MemviewDtypeToObject */ static CYTHON_INLINE PyObject *__pyx_memview_get___pyx_t_double_complex(const char *itemp) { return (PyObject *) __pyx_PyComplex_FromComplex(*(__pyx_t_double_complex *) itemp); } static CYTHON_INLINE int __pyx_memview_set___pyx_t_double_complex(const char *itemp, PyObject *obj) { __pyx_t_double_complex value = __Pyx_PyComplex_As___pyx_t_double_complex(obj); if (PyErr_Occurred()) return 0; *(__pyx_t_double_complex *) itemp = value; return 1; } /* MemviewDtypeToObject */ static CYTHON_INLINE PyObject *__pyx_memview_get_size_t(const char *itemp) { return (PyObject *) __Pyx_PyInt_FromSize_t(*(size_t *) itemp); } static CYTHON_INLINE int __pyx_memview_set_size_t(const char *itemp, PyObject *obj) { size_t value = __Pyx_PyInt_As_size_t(obj); if ((value == (size_t)-1) && PyErr_Occurred()) return 0; *(size_t *) itemp = value; return 1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(int) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(int) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(int) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(int), little, !is_unsigned); } } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { const enum NPY_TYPES neg_one = (enum NPY_TYPES) ((enum NPY_TYPES) 0 - (enum NPY_TYPES) 1), const_zero = (enum NPY_TYPES) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(enum NPY_TYPES) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(enum NPY_TYPES) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(enum NPY_TYPES) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(enum NPY_TYPES), little, !is_unsigned); } } /* MemviewSliceCopyTemplate */ static __Pyx_memviewslice __pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs, const char *mode, int ndim, size_t sizeof_dtype, int contig_flag, int dtype_is_object) { __Pyx_RefNannyDeclarations int i; __Pyx_memviewslice new_mvs = { 0, 0, { 0 }, { 0 }, { 0 } }; struct __pyx_memoryview_obj *from_memview = from_mvs->memview; Py_buffer *buf = &from_memview->view; PyObject *shape_tuple = NULL; PyObject *temp_int = NULL; struct __pyx_array_obj *array_obj = NULL; struct __pyx_memoryview_obj *memview_obj = NULL; __Pyx_RefNannySetupContext("__pyx_memoryview_copy_new_contig", 0); for (i = 0; i < ndim; i++) { if (from_mvs->suboffsets[i] >= 0) { PyErr_Format(PyExc_ValueError, "Cannot copy memoryview slice with " "indirect dimensions (axis %d)", i); goto fail; } } shape_tuple = PyTuple_New(ndim); if (unlikely(!shape_tuple)) { goto fail; } __Pyx_GOTREF(shape_tuple); for(i = 0; i < ndim; i++) { temp_int = PyInt_FromSsize_t(from_mvs->shape[i]); if(unlikely(!temp_int)) { goto fail; } else { PyTuple_SET_ITEM(shape_tuple, i, temp_int); temp_int = NULL; } } array_obj = __pyx_array_new(shape_tuple, sizeof_dtype, buf->format, (char *) mode, NULL); if (unlikely(!array_obj)) { goto fail; } __Pyx_GOTREF(array_obj); memview_obj = (struct __pyx_memoryview_obj *) __pyx_memoryview_new( (PyObject *) array_obj, contig_flag, dtype_is_object, from_mvs->memview->typeinfo); if (unlikely(!memview_obj)) goto fail; if (unlikely(__Pyx_init_memviewslice(memview_obj, ndim, &new_mvs, 1) < 0)) goto fail; if (unlikely(__pyx_memoryview_copy_contents(*from_mvs, new_mvs, ndim, ndim, dtype_is_object) < 0)) goto fail; goto no_fail; fail: __Pyx_XDECREF(new_mvs.memview); new_mvs.memview = NULL; new_mvs.data = NULL; no_fail: __Pyx_XDECREF(shape_tuple); __Pyx_XDECREF(temp_int); __Pyx_XDECREF(array_obj); __Pyx_RefNannyFinishContext(); return new_mvs; } /* CIntFromPy */ static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *x) { const size_t neg_one = (size_t) ((size_t) 0 - (size_t) 1), const_zero = (size_t) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(size_t) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(size_t, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (size_t) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (size_t) 0; case 1: __PYX_VERIFY_RETURN_INT(size_t, digit, digits[0]) case 2: if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) >= 2 * PyLong_SHIFT) { return (size_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } } break; case 3: if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) >= 3 * PyLong_SHIFT) { return (size_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } } break; case 4: if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) >= 4 * PyLong_SHIFT) { return (size_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (size_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(size_t) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(size_t) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (size_t) 0; case -1: __PYX_VERIFY_RETURN_INT(size_t, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(size_t, digit, +digits[0]) case -2: if (8 * sizeof(size_t) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { return (size_t) (((size_t)-1)*(((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; case 2: if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { return (size_t) ((((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; case -3: if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { return (size_t) (((size_t)-1)*(((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; case 3: if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { return (size_t) ((((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; case -4: if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) { return (size_t) (((size_t)-1)*(((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; case 4: if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) { return (size_t) ((((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; } #endif if (sizeof(size_t) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(size_t, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(size_t) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(size_t, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else size_t val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (size_t) -1; } } else { size_t val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (size_t) -1; val = __Pyx_PyInt_As_size_t(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to size_t"); return (size_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to size_t"); return (size_t) -1; } /* CIntFromPy */ static CYTHON_INLINE MODE __Pyx_PyInt_As_MODE(PyObject *x) { const MODE neg_one = (MODE) ((MODE) 0 - (MODE) 1), const_zero = (MODE) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(MODE) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(MODE, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (MODE) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (MODE) 0; case 1: __PYX_VERIFY_RETURN_INT(MODE, digit, digits[0]) case 2: if (8 * sizeof(MODE) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(MODE, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(MODE) >= 2 * PyLong_SHIFT) { return (MODE) (((((MODE)digits[1]) << PyLong_SHIFT) | (MODE)digits[0])); } } break; case 3: if (8 * sizeof(MODE) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(MODE, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(MODE) >= 3 * PyLong_SHIFT) { return (MODE) (((((((MODE)digits[2]) << PyLong_SHIFT) | (MODE)digits[1]) << PyLong_SHIFT) | (MODE)digits[0])); } } break; case 4: if (8 * sizeof(MODE) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(MODE, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(MODE) >= 4 * PyLong_SHIFT) { return (MODE) (((((((((MODE)digits[3]) << PyLong_SHIFT) | (MODE)digits[2]) << PyLong_SHIFT) | (MODE)digits[1]) << PyLong_SHIFT) | (MODE)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (MODE) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(MODE) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(MODE, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(MODE) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(MODE, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (MODE) 0; case -1: __PYX_VERIFY_RETURN_INT(MODE, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(MODE, digit, +digits[0]) case -2: if (8 * sizeof(MODE) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(MODE, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(MODE) - 1 > 2 * PyLong_SHIFT) { return (MODE) (((MODE)-1)*(((((MODE)digits[1]) << PyLong_SHIFT) | (MODE)digits[0]))); } } break; case 2: if (8 * sizeof(MODE) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(MODE, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(MODE) - 1 > 2 * PyLong_SHIFT) { return (MODE) ((((((MODE)digits[1]) << PyLong_SHIFT) | (MODE)digits[0]))); } } break; case -3: if (8 * sizeof(MODE) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(MODE, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(MODE) - 1 > 3 * PyLong_SHIFT) { return (MODE) (((MODE)-1)*(((((((MODE)digits[2]) << PyLong_SHIFT) | (MODE)digits[1]) << PyLong_SHIFT) | (MODE)digits[0]))); } } break; case 3: if (8 * sizeof(MODE) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(MODE, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(MODE) - 1 > 3 * PyLong_SHIFT) { return (MODE) ((((((((MODE)digits[2]) << PyLong_SHIFT) | (MODE)digits[1]) << PyLong_SHIFT) | (MODE)digits[0]))); } } break; case -4: if (8 * sizeof(MODE) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(MODE, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(MODE) - 1 > 4 * PyLong_SHIFT) { return (MODE) (((MODE)-1)*(((((((((MODE)digits[3]) << PyLong_SHIFT) | (MODE)digits[2]) << PyLong_SHIFT) | (MODE)digits[1]) << PyLong_SHIFT) | (MODE)digits[0]))); } } break; case 4: if (8 * sizeof(MODE) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(MODE, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(MODE) - 1 > 4 * PyLong_SHIFT) { return (MODE) ((((((((((MODE)digits[3]) << PyLong_SHIFT) | (MODE)digits[2]) << PyLong_SHIFT) | (MODE)digits[1]) << PyLong_SHIFT) | (MODE)digits[0]))); } } break; } #endif if (sizeof(MODE) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(MODE, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(MODE) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(MODE, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else MODE val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (MODE) -1; } } else { MODE val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (MODE) -1; val = __Pyx_PyInt_As_MODE(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to MODE"); return (MODE) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to MODE"); return (MODE) -1; } /* TypeInfoToFormat */ static struct __pyx_typeinfo_string __Pyx_TypeInfoToFormat(__Pyx_TypeInfo *type) { struct __pyx_typeinfo_string result = { {0} }; char *buf = (char *) result.string; size_t size = type->size; switch (type->typegroup) { case 'H': *buf = 'c'; break; case 'I': case 'U': if (size == 1) *buf = (type->is_unsigned) ? 'B' : 'b'; else if (size == 2) *buf = (type->is_unsigned) ? 'H' : 'h'; else if (size == 4) *buf = (type->is_unsigned) ? 'I' : 'i'; else if (size == 8) *buf = (type->is_unsigned) ? 'Q' : 'q'; break; case 'P': *buf = 'P'; break; case 'C': { __Pyx_TypeInfo complex_type = *type; complex_type.typegroup = 'R'; complex_type.size /= 2; *buf++ = 'Z'; *buf = __Pyx_TypeInfoToFormat(&complex_type).string[0]; break; } case 'R': if (size == 4) *buf = 'f'; else if (size == 8) *buf = 'd'; else *buf = 'g'; break; } return result; } /* CIntFromPy */ static CYTHON_INLINE unsigned int __Pyx_PyInt_As_unsigned_int(PyObject *x) { const unsigned int neg_one = (unsigned int) ((unsigned int) 0 - (unsigned int) 1), const_zero = (unsigned int) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(unsigned int) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(unsigned int, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (unsigned int) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (unsigned int) 0; case 1: __PYX_VERIFY_RETURN_INT(unsigned int, digit, digits[0]) case 2: if (8 * sizeof(unsigned int) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) >= 2 * PyLong_SHIFT) { return (unsigned int) (((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])); } } break; case 3: if (8 * sizeof(unsigned int) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) >= 3 * PyLong_SHIFT) { return (unsigned int) (((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])); } } break; case 4: if (8 * sizeof(unsigned int) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) >= 4 * PyLong_SHIFT) { return (unsigned int) (((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (unsigned int) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(unsigned int) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (unsigned int) 0; case -1: __PYX_VERIFY_RETURN_INT(unsigned int, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(unsigned int, digit, +digits[0]) case -2: if (8 * sizeof(unsigned int) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT) { return (unsigned int) (((unsigned int)-1)*(((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; case 2: if (8 * sizeof(unsigned int) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT) { return (unsigned int) ((((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; case -3: if (8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT) { return (unsigned int) (((unsigned int)-1)*(((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; case 3: if (8 * sizeof(unsigned int) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT) { return (unsigned int) ((((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; case -4: if (8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT) { return (unsigned int) (((unsigned int)-1)*(((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; case 4: if (8 * sizeof(unsigned int) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT) { return (unsigned int) ((((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; } #endif if (sizeof(unsigned int) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(unsigned int, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(unsigned int, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else unsigned int val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (unsigned int) -1; } } else { unsigned int val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (unsigned int) -1; val = __Pyx_PyInt_As_unsigned_int(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to unsigned int"); return (unsigned int) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to unsigned int"); return (unsigned int) -1; } /* CIntFromPy */ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(int) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (int) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (int) 0; case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) case 2: if (8 * sizeof(int) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); } } break; case 3: if (8 * sizeof(int) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); } } break; case 4: if (8 * sizeof(int) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (int) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(int) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (int) 0; case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) case -2: if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case 2: if (8 * sizeof(int) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case -3: if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case 3: if (8 * sizeof(int) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case -4: if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case 4: if (8 * sizeof(int) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; } #endif if (sizeof(int) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else int val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (int) -1; } } else { int val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (int) -1; val = __Pyx_PyInt_As_int(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to int"); return (int) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to int"); return (int) -1; } /* BytesContains */ static CYTHON_INLINE int __Pyx_BytesContains(PyObject* bytes, char character) { const Py_ssize_t length = PyBytes_GET_SIZE(bytes); char* char_start = PyBytes_AS_STRING(bytes); return memchr(char_start, (unsigned char)character, (size_t)length) != NULL; } /* ImportNumPyArray */ static PyObject* __Pyx__ImportNumPyArray(void) { PyObject *numpy_module, *ndarray_object = NULL; numpy_module = __Pyx_Import(__pyx_n_s_numpy, NULL, 0); if (likely(numpy_module)) { ndarray_object = PyObject_GetAttrString(numpy_module, "ndarray"); Py_DECREF(numpy_module); } if (unlikely(!ndarray_object)) { PyErr_Clear(); } if (unlikely(!ndarray_object || !PyObject_TypeCheck(ndarray_object, &PyType_Type))) { Py_XDECREF(ndarray_object); Py_INCREF(Py_None); ndarray_object = Py_None; } return ndarray_object; } static CYTHON_INLINE PyObject* __Pyx_ImportNumPyArrayTypeIfAvailable(void) { if (unlikely(!__pyx_numpy_ndarray)) { __pyx_numpy_ndarray = __Pyx__ImportNumPyArray(); } Py_INCREF(__pyx_numpy_ndarray); return __pyx_numpy_ndarray; } /* CIntFromPy */ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(long) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (long) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (long) 0; case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) case 2: if (8 * sizeof(long) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); } } break; case 3: if (8 * sizeof(long) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); } } break; case 4: if (8 * sizeof(long) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (long) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(long) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (long) 0; case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) case -2: if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case 2: if (8 * sizeof(long) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case -3: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case 3: if (8 * sizeof(long) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case -4: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case 4: if (8 * sizeof(long) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; } #endif if (sizeof(long) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else long val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (long) -1; } } else { long val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (long) -1; val = __Pyx_PyInt_As_long(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to long"); return (long) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to long"); return (long) -1; } /* CIntFromPy */ static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *x) { const char neg_one = (char) ((char) 0 - (char) 1), const_zero = (char) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(char) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(char, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (char) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (char) 0; case 1: __PYX_VERIFY_RETURN_INT(char, digit, digits[0]) case 2: if (8 * sizeof(char) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) >= 2 * PyLong_SHIFT) { return (char) (((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0])); } } break; case 3: if (8 * sizeof(char) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) >= 3 * PyLong_SHIFT) { return (char) (((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])); } } break; case 4: if (8 * sizeof(char) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) >= 4 * PyLong_SHIFT) { return (char) (((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (char) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(char) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(char, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(char) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(char, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (char) 0; case -1: __PYX_VERIFY_RETURN_INT(char, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(char, digit, +digits[0]) case -2: if (8 * sizeof(char) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) { return (char) (((char)-1)*(((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; case 2: if (8 * sizeof(char) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) { return (char) ((((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; case -3: if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) { return (char) (((char)-1)*(((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; case 3: if (8 * sizeof(char) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) { return (char) ((((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; case -4: if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 4 * PyLong_SHIFT) { return (char) (((char)-1)*(((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; case 4: if (8 * sizeof(char) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 4 * PyLong_SHIFT) { return (char) ((((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; } #endif if (sizeof(char) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(char, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(char) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(char, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else char val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (char) -1; } } else { char val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (char) -1; val = __Pyx_PyInt_As_char(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to char"); return (char) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to char"); return (char) -1; } /* ObjectToMemviewSlice */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_size_t(PyObject *obj, int writable_flag) { __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_BufFmt_StackElem stack[1]; int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) }; int retcode; if (obj == Py_None) { result.memview = (struct __pyx_memoryview_obj *) Py_None; return result; } retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG, (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 1, &__Pyx_TypeInfo_size_t, stack, &result, obj); if (unlikely(retcode == -1)) goto __pyx_fail; return result; __pyx_fail: result.memview = NULL; result.data = NULL; return result; } /* CheckBinaryVersion */ static int __Pyx_check_binary_version(void) { char ctversion[4], rtversion[4]; PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion()); if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) { char message[200]; PyOS_snprintf(message, sizeof(message), "compiletime version %s of module '%.100s' " "does not match runtime version %s", ctversion, __Pyx_MODULE_NAME, rtversion); return PyErr_WarnEx(NULL, message, 1); } return 0; } /* FunctionExport */ static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *sig) { PyObject *d = 0; PyObject *cobj = 0; union { void (*fp)(void); void *p; } tmp; d = PyObject_GetAttrString(__pyx_m, (char *)"__pyx_capi__"); if (!d) { PyErr_Clear(); d = PyDict_New(); if (!d) goto bad; Py_INCREF(d); if (PyModule_AddObject(__pyx_m, (char *)"__pyx_capi__", d) < 0) goto bad; } tmp.fp = f; #if PY_VERSION_HEX >= 0x02070000 cobj = PyCapsule_New(tmp.p, sig, 0); #else cobj = PyCObject_FromVoidPtrAndDesc(tmp.p, (void *)sig, 0); #endif if (!cobj) goto bad; if (PyDict_SetItemString(d, name, cobj) < 0) goto bad; Py_DECREF(cobj); Py_DECREF(d); return 0; bad: Py_XDECREF(cobj); Py_XDECREF(d); return -1; } /* VoidPtrImport */ #ifndef __PYX_HAVE_RT_ImportVoidPtr #define __PYX_HAVE_RT_ImportVoidPtr static int __Pyx_ImportVoidPtr(PyObject *module, const char *name, void **p, const char *sig) { PyObject *d = 0; PyObject *cobj = 0; d = PyObject_GetAttrString(module, (char *)"__pyx_capi__"); if (!d) goto bad; cobj = PyDict_GetItemString(d, name); if (!cobj) { PyErr_Format(PyExc_ImportError, "%.200s does not export expected C variable %.200s", PyModule_GetName(module), name); goto bad; } #if PY_VERSION_HEX >= 0x02070000 if (!PyCapsule_IsValid(cobj, sig)) { PyErr_Format(PyExc_TypeError, "C variable %.200s.%.200s has wrong signature (expected %.500s, got %.500s)", PyModule_GetName(module), name, sig, PyCapsule_GetName(cobj)); goto bad; } *p = PyCapsule_GetPointer(cobj, sig); #else {const char *desc, *s1, *s2; desc = (const char *)PyCObject_GetDesc(cobj); if (!desc) goto bad; s1 = desc; s2 = sig; while (*s1 != '\0' && *s1 == *s2) { s1++; s2++; } if (*s1 != *s2) { PyErr_Format(PyExc_TypeError, "C variable %.200s.%.200s has wrong signature (expected %.500s, got %.500s)", PyModule_GetName(module), name, sig, desc); goto bad; } *p = PyCObject_AsVoidPtr(cobj);} #endif if (!(*p)) goto bad; Py_DECREF(d); return 0; bad: Py_XDECREF(d); return -1; } #endif /* FunctionImport */ #ifndef __PYX_HAVE_RT_ImportFunction #define __PYX_HAVE_RT_ImportFunction static int __Pyx_ImportFunction(PyObject *module, const char *funcname, void (**f)(void), const char *sig) { PyObject *d = 0; PyObject *cobj = 0; union { void (*fp)(void); void *p; } tmp; d = PyObject_GetAttrString(module, (char *)"__pyx_capi__"); if (!d) goto bad; cobj = PyDict_GetItemString(d, funcname); if (!cobj) { PyErr_Format(PyExc_ImportError, "%.200s does not export expected C function %.200s", PyModule_GetName(module), funcname); goto bad; } #if PY_VERSION_HEX >= 0x02070000 if (!PyCapsule_IsValid(cobj, sig)) { PyErr_Format(PyExc_TypeError, "C function %.200s.%.200s has wrong signature (expected %.500s, got %.500s)", PyModule_GetName(module), funcname, sig, PyCapsule_GetName(cobj)); goto bad; } tmp.p = PyCapsule_GetPointer(cobj, sig); #else {const char *desc, *s1, *s2; desc = (const char *)PyCObject_GetDesc(cobj); if (!desc) goto bad; s1 = desc; s2 = sig; while (*s1 != '\0' && *s1 == *s2) { s1++; s2++; } if (*s1 != *s2) { PyErr_Format(PyExc_TypeError, "C function %.200s.%.200s has wrong signature (expected %.500s, got %.500s)", PyModule_GetName(module), funcname, sig, desc); goto bad; } tmp.p = PyCObject_AsVoidPtr(cobj);} #endif *f = tmp.fp; if (!(*f)) goto bad; Py_DECREF(d); return 0; bad: Py_XDECREF(d); return -1; } #endif /* InitStrings */ static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { while (t->p) { #if PY_MAJOR_VERSION < 3 if (t->is_unicode) { *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); } else if (t->intern) { *t->p = PyString_InternFromString(t->s); } else { *t->p = PyString_FromStringAndSize(t->s, t->n - 1); } #else if (t->is_unicode | t->is_str) { if (t->intern) { *t->p = PyUnicode_InternFromString(t->s); } else if (t->encoding) { *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL); } else { *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1); } } else { *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1); } #endif if (!*t->p) return -1; if (PyObject_Hash(*t->p) == -1) return -1; ++t; } return 0; } static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) { return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str)); } static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) { Py_ssize_t ignore; return __Pyx_PyObject_AsStringAndSize(o, &ignore); } #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT #if !CYTHON_PEP393_ENABLED static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { char* defenc_c; PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL); if (!defenc) return NULL; defenc_c = PyBytes_AS_STRING(defenc); #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII { char* end = defenc_c + PyBytes_GET_SIZE(defenc); char* c; for (c = defenc_c; c < end; c++) { if ((unsigned char) (*c) >= 128) { PyUnicode_AsASCIIString(o); return NULL; } } } #endif *length = PyBytes_GET_SIZE(defenc); return defenc_c; } #else static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL; #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII if (likely(PyUnicode_IS_ASCII(o))) { *length = PyUnicode_GET_LENGTH(o); return PyUnicode_AsUTF8(o); } else { PyUnicode_AsASCIIString(o); return NULL; } #else return PyUnicode_AsUTF8AndSize(o, length); #endif } #endif #endif static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) { #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT if ( #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII __Pyx_sys_getdefaultencoding_not_ascii && #endif PyUnicode_Check(o)) { return __Pyx_PyUnicode_AsStringAndSize(o, length); } else #endif #if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)) if (PyByteArray_Check(o)) { *length = PyByteArray_GET_SIZE(o); return PyByteArray_AS_STRING(o); } else #endif { char* result; int r = PyBytes_AsStringAndSize(o, &result, length); if (unlikely(r < 0)) { return NULL; } else { return result; } } } static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { int is_true = x == Py_True; if (is_true | (x == Py_False) | (x == Py_None)) return is_true; else return PyObject_IsTrue(x); } static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) { int retval; if (unlikely(!x)) return -1; retval = __Pyx_PyObject_IsTrue(x); Py_DECREF(x); return retval; } static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) { #if PY_MAJOR_VERSION >= 3 if (PyLong_Check(result)) { if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, "__int__ returned non-int (type %.200s). " "The ability to return an instance of a strict subclass of int " "is deprecated, and may be removed in a future version of Python.", Py_TYPE(result)->tp_name)) { Py_DECREF(result); return NULL; } return result; } #endif PyErr_Format(PyExc_TypeError, "__%.4s__ returned non-%.4s (type %.200s)", type_name, type_name, Py_TYPE(result)->tp_name); Py_DECREF(result); return NULL; } static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) { #if CYTHON_USE_TYPE_SLOTS PyNumberMethods *m; #endif const char *name = NULL; PyObject *res = NULL; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x) || PyLong_Check(x))) #else if (likely(PyLong_Check(x))) #endif return __Pyx_NewRef(x); #if CYTHON_USE_TYPE_SLOTS m = Py_TYPE(x)->tp_as_number; #if PY_MAJOR_VERSION < 3 if (m && m->nb_int) { name = "int"; res = m->nb_int(x); } else if (m && m->nb_long) { name = "long"; res = m->nb_long(x); } #else if (likely(m && m->nb_int)) { name = "int"; res = m->nb_int(x); } #endif #else if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) { res = PyNumber_Int(x); } #endif if (likely(res)) { #if PY_MAJOR_VERSION < 3 if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) { #else if (unlikely(!PyLong_CheckExact(res))) { #endif return __Pyx_PyNumber_IntOrLongWrongResultType(res, name); } } else if (!PyErr_Occurred()) { PyErr_SetString(PyExc_TypeError, "an integer is required"); } return res; } static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { Py_ssize_t ival; PyObject *x; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_CheckExact(b))) { if (sizeof(Py_ssize_t) >= sizeof(long)) return PyInt_AS_LONG(b); else return PyInt_AsSsize_t(b); } #endif if (likely(PyLong_CheckExact(b))) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)b)->ob_digit; const Py_ssize_t size = Py_SIZE(b); if (likely(__Pyx_sst_abs(size) <= 1)) { ival = likely(size) ? digits[0] : 0; if (size == -1) ival = -ival; return ival; } else { switch (size) { case 2: if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case -2: if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case 3: if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case -3: if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case 4: if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case -4: if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; } } #endif return PyLong_AsSsize_t(b); } x = PyNumber_Index(b); if (!x) return -1; ival = PyInt_AsSsize_t(x); Py_DECREF(x); return ival; } static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); } static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { return PyInt_FromSize_t(ival); } #endif /* Py_PYTHON_H */ PyWavelets-1.1.1/pywt/_extensions/_dwt.pxd0000664000175000017500000000021613373762624021306 0ustar lee8rxlee8rx00000000000000from ._pywt cimport Wavelet, cdata_t cpdef upcoef(bint do_rec_a, cdata_t[::1] coeffs, Wavelet wavelet, int level, size_t take) PyWavelets-1.1.1/pywt/_extensions/_dwt.pyx0000644000175000017500000005405613552333332021331 0ustar lee8rxlee8rx00000000000000#cython: boundscheck=False, wraparound=False from . cimport common from . cimport c_wt from .common cimport pywt_index_t, MODE from ._pywt cimport _check_dtype cimport numpy as np import numpy as np include "config.pxi" cpdef dwt_max_level(size_t data_len, size_t filter_len): return common.dwt_max_level(data_len, filter_len) cpdef dwt_coeff_len(size_t data_len, size_t filter_len, MODE mode): if data_len < 1: raise ValueError("Value of data_len must be greater than zero.") if filter_len < 1: raise ValueError("Value of filter_len must be greater than zero.") return common.dwt_buffer_length(data_len, filter_len, mode) cpdef dwt_single(cdata_t[::1] data, Wavelet wavelet, MODE mode): cdef size_t output_len = dwt_coeff_len(data.size, wavelet.dec_len, mode) cdef np.ndarray cA, cD cdef int retval_a, retval_d cdef size_t data_size = data.size if output_len < 1: raise RuntimeError("Invalid output length.") if cdata_t is np.float64_t: # TODO: Don't think these have to be 0-initialized # TODO: Check other methods of allocating (e.g. Cython/CPython arrays) cA = np.zeros(output_len, np.float64) cD = np.zeros(output_len, np.float64) with nogil: retval_a = c_wt.double_dec_a(&data[0], data_size, wavelet.w, cA.data, output_len, mode) retval_d = c_wt.double_dec_d(&data[0], data_size, wavelet.w, cD.data, output_len, mode) if ( retval_a < 0 or retval_d < 0): raise RuntimeError("C dwt failed.") elif cdata_t is np.float32_t: cA = np.zeros(output_len, np.float32) cD = np.zeros(output_len, np.float32) with nogil: retval_a = c_wt.float_dec_a(&data[0], data_size, wavelet.w, cA.data, output_len, mode) retval_d = c_wt.float_dec_d(&data[0], data_size, wavelet.w, cD.data, output_len, mode) if ( retval_a < 0 or retval_d < 0): raise RuntimeError("C dwt failed.") IF HAVE_C99_CPLX: if cdata_t is np.complex128_t: cA = np.zeros(output_len, np.complex128) cD = np.zeros(output_len, np.complex128) with nogil: retval_a = c_wt.double_complex_dec_a(&data[0], data_size, wavelet.w, cA.data, output_len, mode) retval_d = c_wt.double_complex_dec_d(&data[0], data_size, wavelet.w, cD.data, output_len, mode) if ( retval_a < 0 or retval_d < 0): raise RuntimeError("C dwt failed.") elif cdata_t is np.complex64_t: cA = np.zeros(output_len, np.complex64) cD = np.zeros(output_len, np.complex64) with nogil: retval_a = c_wt.float_complex_dec_a(&data[0], data_size, wavelet.w, cA.data, output_len, mode) retval_d = c_wt.float_complex_dec_d(&data[0], data_size, wavelet.w, cD.data, output_len, mode) if ( retval_a < 0 or retval_d < 0): raise RuntimeError("C dwt failed.") return (cA, cD) cpdef dwt_axis(np.ndarray data, Wavelet wavelet, MODE mode, unsigned int axis=0): # memory-views do not support n-dimensional arrays, use np.ndarray instead cdef common.ArrayInfo data_info, output_info cdef np.ndarray cD, cA # Explicit input_shape necessary to prevent memory leak cdef size_t[::1] input_shape, output_shape cdef int retval = -5 data = data.astype(_check_dtype(data), copy=False) input_shape = data.shape output_shape = input_shape.copy() output_shape[axis] = dwt_coeff_len(data.shape[axis], wavelet.dec_len, mode) cA = np.empty(output_shape, data.dtype) cD = np.empty(output_shape, data.dtype) data_info.ndim = data.ndim data_info.strides = data.strides data_info.shape = data.shape output_info.ndim = cA.ndim output_info.strides = cA.strides output_info.shape = cA.shape if data.dtype == np.float64: with nogil: retval = c_wt.double_downcoef_axis( data.data, data_info, cA.data, output_info, wavelet.w, axis, common.COEF_APPROX, mode, 0, common.DWT_TRANSFORM) if retval: raise RuntimeError("C wavelet transform failed") with nogil: retval = c_wt.double_downcoef_axis( data.data, data_info, cD.data, output_info, wavelet.w, axis, common.COEF_DETAIL, mode, 0, common.DWT_TRANSFORM) if retval: raise RuntimeError("C wavelet transform failed") elif data.dtype == np.float32: with nogil: retval = c_wt.float_downcoef_axis( data.data, data_info, cA.data, output_info, wavelet.w, axis, common.COEF_APPROX, mode, 0, common.DWT_TRANSFORM) if retval: raise RuntimeError("C wavelet transform failed") with nogil: retval = c_wt.float_downcoef_axis( data.data, data_info, cD.data, output_info, wavelet.w, axis, common.COEF_DETAIL, mode, 0, common.DWT_TRANSFORM) if retval: raise RuntimeError("C wavelet transform failed") IF HAVE_C99_CPLX: if data.dtype == np.complex64: with nogil: retval = c_wt.float_complex_downcoef_axis( data.data, data_info, cA.data, output_info, wavelet.w, axis, common.COEF_APPROX, mode, 0, common.DWT_TRANSFORM) if retval: raise RuntimeError("C wavelet transform failed") with nogil: retval = c_wt.float_complex_downcoef_axis( data.data, data_info, cD.data, output_info, wavelet.w, axis, common.COEF_DETAIL, mode, 0, common.DWT_TRANSFORM) if retval: raise RuntimeError("C wavelet transform failed") elif data.dtype == np.complex128: with nogil: retval = c_wt.double_complex_downcoef_axis( data.data, data_info, cA.data, output_info, wavelet.w, axis, common.COEF_APPROX, mode, 0, common.DWT_TRANSFORM) if retval: raise RuntimeError("C wavelet transform failed") with nogil: retval = c_wt.double_complex_downcoef_axis( data.data, data_info, cD.data, output_info, wavelet.w, axis, common.COEF_DETAIL, mode, 0, common.DWT_TRANSFORM) if retval: raise RuntimeError("C wavelet transform failed") if retval == -5: raise TypeError("Array must be floating point, not {}" .format(data.dtype)) return (cA, cD) cpdef idwt_single(np.ndarray cA, np.ndarray cD, Wavelet wavelet, MODE mode): cdef size_t input_len, rec_len cdef int retval cdef np.ndarray rec # check for size difference between arrays if cA.size != cD.size: raise ValueError("Coefficients arrays must have the same size.") else: input_len = cA.size if cA.dtype != cD.dtype: raise ValueError("Coefficients arrays must have the same dtype.") # find reconstruction buffer length rec_len = common.idwt_buffer_length(input_len, wavelet.rec_len, mode) if rec_len < 1: msg = ("Invalid coefficient arrays length for specified wavelet. " "Wavelet and mode must be the same as used for decomposition.") raise ValueError(msg) # call idwt func. one of cA/cD can be None, then only # reconstruction of non-null part will be performed if cA.dtype == np.float64: rec = np.zeros(rec_len, dtype=np.float64) with nogil: retval = c_wt.double_idwt(cA.data, input_len, cD.data, input_len, rec.data, rec_len, wavelet.w, mode) if retval < 0: raise RuntimeError("C idwt failed.") elif cA.dtype == np.float32: rec = np.zeros(rec_len, dtype=np.float32) with nogil: retval = c_wt.float_idwt(cA.data, input_len, cD.data, input_len, rec.data, rec_len, wavelet.w, mode) if retval < 0: raise RuntimeError("C idwt failed.") IF HAVE_C99_CPLX: if cA.dtype == np.complex128: rec = np.zeros(rec_len, dtype=np.complex128) with nogil: retval = c_wt.double_complex_idwt(cA.data, input_len, cD.data, input_len, rec.data, rec_len, wavelet.w, mode) if retval < 0: raise RuntimeError("C idwt failed.") elif cA.dtype == np.complex64: rec = np.zeros(rec_len, dtype=np.complex64) with nogil: retval = c_wt.float_complex_idwt(cA.data, input_len, cD.data, input_len, rec.data, rec_len, wavelet.w, mode) if retval < 0: raise RuntimeError("C idwt failed.") return rec cpdef idwt_axis(np.ndarray coefs_a, np.ndarray coefs_d, Wavelet wavelet, MODE mode, unsigned int axis=0): cdef common.ArrayInfo a_info, d_info, output_info cdef common.ArrayInfo *a_info_p = NULL cdef common.ArrayInfo *d_info_p = NULL cdef np.ndarray output cdef np.dtype output_dtype cdef void *data_a = NULL cdef void *data_d = NULL # Explicit input_shape necessary to prevent memory leak cdef size_t[::1] input_shape, output_shape cdef int retval = -5 if coefs_a is not None: if coefs_d is not None and coefs_d.dtype.itemsize > coefs_a.dtype.itemsize: coefs_a = coefs_a.astype(_check_dtype(coefs_d), copy=False) else: coefs_a = coefs_a.astype(_check_dtype(coefs_a), copy=False) a_info.ndim = coefs_a.ndim a_info.strides = coefs_a.strides a_info.shape = coefs_a.shape a_info_p = &a_info data_a = coefs_a.data if coefs_d is not None: if coefs_a is not None and coefs_a.dtype.itemsize > coefs_d.dtype.itemsize: coefs_d = coefs_d.astype(_check_dtype(coefs_a), copy=False) else: coefs_d = coefs_d.astype(_check_dtype(coefs_d), copy=False) d_info.ndim = coefs_d.ndim d_info.strides = coefs_d.strides d_info.shape = coefs_d.shape d_info_p = &d_info data_d = coefs_d.data if coefs_a is not None: input_shape = coefs_a.shape output_dtype = coefs_a.dtype elif coefs_d is not None: input_shape = coefs_d.shape output_dtype = coefs_d.dtype else: return None output_shape = input_shape.copy() output_shape[axis] = common.idwt_buffer_length(input_shape[axis], wavelet.rec_len, mode) output = np.empty(output_shape, output_dtype) output_info.ndim = output.ndim output_info.strides = output.strides output_info.shape = output.shape if output.dtype == np.float64: with nogil: retval = c_wt.double_idwt_axis( data_a, a_info_p, data_d, d_info_p, output.data, output_info, wavelet.w, axis, mode) if retval: raise RuntimeError("C inverse wavelet transform failed") elif output.dtype == np.float32: with nogil: retval = c_wt.float_idwt_axis( data_a, a_info_p, data_d, d_info_p, output.data, output_info, wavelet.w, axis, mode) if retval: raise RuntimeError("C inverse wavelet transform failed") IF HAVE_C99_CPLX: if output.dtype == np.complex128: with nogil: retval = c_wt.double_complex_idwt_axis( data_a, a_info_p, data_d, d_info_p, output.data, output_info, wavelet.w, axis, mode) if retval: raise RuntimeError("C inverse wavelet transform failed") elif output.dtype == np.complex64: with nogil: retval = c_wt.float_complex_idwt_axis( data_a, a_info_p, data_d, d_info_p, output.data, output_info, wavelet.w, axis, mode) if retval: raise RuntimeError("C inverse wavelet transform failed") if retval == -5: raise TypeError("Array must be floating point, not {}" .format(output.dtype)) return output cpdef upcoef(bint do_rec_a, cdata_t[::1] coeffs, Wavelet wavelet, int level, size_t take): cdef cdata_t[::1] rec cdef int i, retval cdef size_t rec_len, left_bound, right_bound, coeffs_size rec_len = 0 if level < 1: raise ValueError("Value of level must be greater than 0.") for i in range(level): coeffs_size = coeffs.size # output len rec_len = common.reconstruction_buffer_length(coeffs.size, wavelet.dec_len) if rec_len < 1: raise RuntimeError("Invalid output length.") # To mirror multi-level wavelet reconstruction behaviour, when detail # reconstruction is requested, the dec_d variant is only called at the # first level to generate the approximation coefficients at the second # level. Subsequent levels apply the reconstruction filter. if cdata_t is np.float64_t: rec = np.zeros(rec_len, dtype=np.float64) if do_rec_a or i > 0: with nogil: retval = c_wt.double_rec_a(&coeffs[0], coeffs_size, wavelet.w, &rec[0], rec_len) if retval < 0: raise RuntimeError("C rec_a failed.") else: with nogil: retval = c_wt.double_rec_d(&coeffs[0], coeffs_size, wavelet.w, &rec[0], rec_len) if retval < 0: raise RuntimeError("C rec_d failed.") elif cdata_t is np.float32_t: rec = np.zeros(rec_len, dtype=np.float32) if do_rec_a or i > 0: with nogil: retval = c_wt.float_rec_a(&coeffs[0], coeffs_size, wavelet.w, &rec[0], rec_len) if retval < 0: raise RuntimeError("C rec_a failed.") else: with nogil: retval = c_wt.float_rec_d(&coeffs[0], coeffs_size, wavelet.w, &rec[0], rec_len) if retval < 0: raise RuntimeError("C rec_d failed.") IF HAVE_C99_CPLX: if cdata_t is np.complex128_t: rec = np.zeros(rec_len, dtype=np.complex128) if do_rec_a or i > 0: with nogil: retval = c_wt.double_complex_rec_a(&coeffs[0], coeffs_size, wavelet.w, &rec[0], rec_len) if retval < 0: raise RuntimeError("C rec_a failed.") else: with nogil: retval = c_wt.double_complex_rec_d(&coeffs[0], coeffs_size, wavelet.w, &rec[0], rec_len) if retval < 0: raise RuntimeError("C rec_d failed.") elif cdata_t is np.complex64_t: rec = np.zeros(rec_len, dtype=np.complex64) if do_rec_a or i > 0: with nogil: retval = c_wt.float_complex_rec_a(&coeffs[0], coeffs_size, wavelet.w, &rec[0], rec_len) if retval < 0: raise RuntimeError("C rec_a failed.") else: with nogil: retval = c_wt.float_complex_rec_d(&coeffs[0], coeffs_size, wavelet.w, &rec[0], rec_len) if retval < 0: raise RuntimeError("C rec_d failed.") # TODO: this algorithm needs some explaining coeffs = rec if take > 0 and take < rec_len: left_bound = right_bound = (rec_len-take) // 2 if (rec_len-take) % 2: # right_bound must never be zero for indexing to work right_bound = right_bound + 1 return rec[left_bound:-right_bound] return rec cpdef downcoef(bint do_dec_a, cdata_t[::1] data, Wavelet wavelet, MODE mode, int level): cdef cdata_t[::1] coeffs cdef int i, retval cdef size_t output_len, data_size if level < 1: raise ValueError("Value of level must be greater than 0.") for i in range(level): data_size = data.size output_len = common.dwt_buffer_length(data.size, wavelet.dec_len, mode) if output_len < 1: raise RuntimeError("Invalid output length.") # To mirror multi-level wavelet decomposition behaviour, when detail # coefficients are requested, the dec_d variant is only called at the # final level. All prior levels use dec_a. In other words, the detail # coefficients at level n are those produced via the operation of the # detail filter on the approximation coefficients of level n-1. if cdata_t is np.float64_t: coeffs = np.zeros(output_len, dtype=np.float64) if do_dec_a or (i < level - 1): with nogil: retval = c_wt.double_dec_a(&data[0], data_size, wavelet.w, &coeffs[0], output_len, mode) if retval < 0: raise RuntimeError("C dec_a failed.") else: with nogil: retval = c_wt.double_dec_d(&data[0], data_size, wavelet.w, &coeffs[0], output_len, mode) if retval < 0: raise RuntimeError("C dec_d failed.") elif cdata_t is np.float32_t: coeffs = np.zeros(output_len, dtype=np.float32) if do_dec_a or (i < level - 1): with nogil: retval = c_wt.float_dec_a(&data[0], data_size, wavelet.w, &coeffs[0], output_len, mode) if retval < 0: raise RuntimeError("C dec_a failed.") else: with nogil: retval = c_wt.float_dec_d(&data[0], data_size, wavelet.w, &coeffs[0], output_len, mode) if retval < 0: raise RuntimeError("C dec_d failed.") IF HAVE_C99_CPLX: if cdata_t is np.complex128_t: coeffs = np.zeros(output_len, dtype=np.complex128) if do_dec_a or (i < level - 1): with nogil: retval = c_wt.double_complex_dec_a(&data[0], data_size, wavelet.w, &coeffs[0], output_len, mode) if retval < 0: raise RuntimeError("C dec_a failed.") else: with nogil: retval = c_wt.double_complex_dec_d(&data[0], data_size, wavelet.w, &coeffs[0], output_len, mode) if retval < 0: raise RuntimeError("C dec_d failed.") elif cdata_t is np.complex64_t: coeffs = np.zeros(output_len, dtype=np.complex64) if do_dec_a or (i < level - 1): with nogil: retval = c_wt.float_complex_dec_a(&data[0], data_size, wavelet.w, &coeffs[0], output_len, mode) if retval < 0: raise RuntimeError("C dec_a failed.") else: with nogil: retval = c_wt.float_complex_dec_d(&data[0], data_size, wavelet.w, &coeffs[0], output_len, mode) if retval < 0: raise RuntimeError("C dec_d failed.") data = coeffs return coeffs PyWavelets-1.1.1/pywt/_extensions/_pywt.c0000644000175000017500000674222013552543071021146 0ustar lee8rxlee8rx00000000000000/* Generated by Cython 0.29.13 */ /* BEGIN: Cython Metadata { "distutils": { "define_macros": [ [ "PY_EXTENSION", null ], [ "HAVE_C99_COMPLEX", null ], [ "CYTHON_CCOMPLEX", 1 ] ], "depends": [ "/home/lee8rx/miniconda3/envs/pyir/lib/python3.7/site-packages/numpy/core/include/numpy/arrayobject.h", "/home/lee8rx/miniconda3/envs/pyir/lib/python3.7/site-packages/numpy/core/include/numpy/ufuncobject.h", "pywt/_extensions/c/common.c", "pywt/_extensions/c/common.h", "pywt/_extensions/c/convolution.c", "pywt/_extensions/c/convolution.h", "pywt/_extensions/c/convolution.template.c", "pywt/_extensions/c/convolution.template.h", "pywt/_extensions/c/cwt.c", "pywt/_extensions/c/cwt.h", "pywt/_extensions/c/cwt.template.c", "pywt/_extensions/c/cwt.template.h", "pywt/_extensions/c/templating.h", "pywt/_extensions/c/wavelets.c", "pywt/_extensions/c/wavelets.h", "pywt/_extensions/c/wavelets_coeffs.h", "pywt/_extensions/c/wavelets_coeffs.template.h", "pywt/_extensions/c/wt.c", "pywt/_extensions/c/wt.h", "pywt/_extensions/c/wt.template.c", "pywt/_extensions/c/wt.template.h" ], "include_dirs": [ "pywt/_extensions", "pywt/_extensions/c", "/home/lee8rx/miniconda3/envs/pyir/lib/python3.7/site-packages/numpy/core/include" ], "libraries": [ "c_wt" ], "name": "pywt._extensions._pywt", "sources": [ "pywt/_extensions/_pywt.pyx" ] }, "module_name": "pywt._extensions._pywt" } END: Cython Metadata */ #define PY_SSIZE_T_CLEAN #include "Python.h" #ifndef Py_PYTHON_H #error Python headers needed to compile C extensions, please install development version of Python. #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000) #error Cython requires Python 2.6+ or Python 3.3+. #else #define CYTHON_ABI "0_29_13" #define CYTHON_HEX_VERSION 0x001D0DF0 #define CYTHON_FUTURE_DIVISION 1 #include #ifndef offsetof #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) #endif #if !defined(WIN32) && !defined(MS_WINDOWS) #ifndef __stdcall #define __stdcall #endif #ifndef __cdecl #define __cdecl #endif #ifndef __fastcall #define __fastcall #endif #endif #ifndef DL_IMPORT #define DL_IMPORT(t) t #endif #ifndef DL_EXPORT #define DL_EXPORT(t) t #endif #define __PYX_COMMA , #ifndef HAVE_LONG_LONG #if PY_VERSION_HEX >= 0x02070000 #define HAVE_LONG_LONG #endif #endif #ifndef PY_LONG_LONG #define PY_LONG_LONG LONG_LONG #endif #ifndef Py_HUGE_VAL #define Py_HUGE_VAL HUGE_VAL #endif #ifdef PYPY_VERSION #define CYTHON_COMPILING_IN_PYPY 1 #define CYTHON_COMPILING_IN_PYSTON 0 #define CYTHON_COMPILING_IN_CPYTHON 0 #undef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 0 #undef CYTHON_USE_PYTYPE_LOOKUP #define CYTHON_USE_PYTYPE_LOOKUP 0 #if PY_VERSION_HEX < 0x03050000 #undef CYTHON_USE_ASYNC_SLOTS #define CYTHON_USE_ASYNC_SLOTS 0 #elif !defined(CYTHON_USE_ASYNC_SLOTS) #define CYTHON_USE_ASYNC_SLOTS 1 #endif #undef CYTHON_USE_PYLIST_INTERNALS #define CYTHON_USE_PYLIST_INTERNALS 0 #undef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 0 #undef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #undef CYTHON_USE_PYLONG_INTERNALS #define CYTHON_USE_PYLONG_INTERNALS 0 #undef CYTHON_AVOID_BORROWED_REFS #define CYTHON_AVOID_BORROWED_REFS 1 #undef CYTHON_ASSUME_SAFE_MACROS #define CYTHON_ASSUME_SAFE_MACROS 0 #undef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 0 #undef CYTHON_FAST_THREAD_STATE #define CYTHON_FAST_THREAD_STATE 0 #undef CYTHON_FAST_PYCALL #define CYTHON_FAST_PYCALL 0 #undef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT 0 #undef CYTHON_USE_TP_FINALIZE #define CYTHON_USE_TP_FINALIZE 0 #undef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 #elif defined(PYSTON_VERSION) #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_PYSTON 1 #define CYTHON_COMPILING_IN_CPYTHON 0 #ifndef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 1 #endif #undef CYTHON_USE_PYTYPE_LOOKUP #define CYTHON_USE_PYTYPE_LOOKUP 0 #undef CYTHON_USE_ASYNC_SLOTS #define CYTHON_USE_ASYNC_SLOTS 0 #undef CYTHON_USE_PYLIST_INTERNALS #define CYTHON_USE_PYLIST_INTERNALS 0 #ifndef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 1 #endif #undef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #undef CYTHON_USE_PYLONG_INTERNALS #define CYTHON_USE_PYLONG_INTERNALS 0 #ifndef CYTHON_AVOID_BORROWED_REFS #define CYTHON_AVOID_BORROWED_REFS 0 #endif #ifndef CYTHON_ASSUME_SAFE_MACROS #define CYTHON_ASSUME_SAFE_MACROS 1 #endif #ifndef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 1 #endif #undef CYTHON_FAST_THREAD_STATE #define CYTHON_FAST_THREAD_STATE 0 #undef CYTHON_FAST_PYCALL #define CYTHON_FAST_PYCALL 0 #undef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT 0 #undef CYTHON_USE_TP_FINALIZE #define CYTHON_USE_TP_FINALIZE 0 #undef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 #else #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_PYSTON 0 #define CYTHON_COMPILING_IN_CPYTHON 1 #ifndef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 1 #endif #if PY_VERSION_HEX < 0x02070000 #undef CYTHON_USE_PYTYPE_LOOKUP #define CYTHON_USE_PYTYPE_LOOKUP 0 #elif !defined(CYTHON_USE_PYTYPE_LOOKUP) #define CYTHON_USE_PYTYPE_LOOKUP 1 #endif #if PY_MAJOR_VERSION < 3 #undef CYTHON_USE_ASYNC_SLOTS #define CYTHON_USE_ASYNC_SLOTS 0 #elif !defined(CYTHON_USE_ASYNC_SLOTS) #define CYTHON_USE_ASYNC_SLOTS 1 #endif #if PY_VERSION_HEX < 0x02070000 #undef CYTHON_USE_PYLONG_INTERNALS #define CYTHON_USE_PYLONG_INTERNALS 0 #elif !defined(CYTHON_USE_PYLONG_INTERNALS) #define CYTHON_USE_PYLONG_INTERNALS 1 #endif #ifndef CYTHON_USE_PYLIST_INTERNALS #define CYTHON_USE_PYLIST_INTERNALS 1 #endif #ifndef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 1 #endif #if PY_VERSION_HEX < 0x030300F0 #undef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #elif !defined(CYTHON_USE_UNICODE_WRITER) #define CYTHON_USE_UNICODE_WRITER 1 #endif #ifndef CYTHON_AVOID_BORROWED_REFS #define CYTHON_AVOID_BORROWED_REFS 0 #endif #ifndef CYTHON_ASSUME_SAFE_MACROS #define CYTHON_ASSUME_SAFE_MACROS 1 #endif #ifndef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 1 #endif #ifndef CYTHON_FAST_THREAD_STATE #define CYTHON_FAST_THREAD_STATE 1 #endif #ifndef CYTHON_FAST_PYCALL #define CYTHON_FAST_PYCALL 1 #endif #ifndef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000) #endif #ifndef CYTHON_USE_TP_FINALIZE #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1) #endif #ifndef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1) #endif #ifndef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3) #endif #endif #if !defined(CYTHON_FAST_PYCCALL) #define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) #endif #if CYTHON_USE_PYLONG_INTERNALS #include "longintrepr.h" #undef SHIFT #undef BASE #undef MASK #ifdef SIZEOF_VOID_P enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) }; #endif #endif #ifndef __has_attribute #define __has_attribute(x) 0 #endif #ifndef __has_cpp_attribute #define __has_cpp_attribute(x) 0 #endif #ifndef CYTHON_RESTRICT #if defined(__GNUC__) #define CYTHON_RESTRICT __restrict__ #elif defined(_MSC_VER) && _MSC_VER >= 1400 #define CYTHON_RESTRICT __restrict #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define CYTHON_RESTRICT restrict #else #define CYTHON_RESTRICT #endif #endif #ifndef CYTHON_UNUSED # if defined(__GNUC__) # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) # define CYTHON_UNUSED __attribute__ ((__unused__)) # else # define CYTHON_UNUSED # endif # elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) # define CYTHON_UNUSED __attribute__ ((__unused__)) # else # define CYTHON_UNUSED # endif #endif #ifndef CYTHON_MAYBE_UNUSED_VAR # if defined(__cplusplus) template void CYTHON_MAYBE_UNUSED_VAR( const T& ) { } # else # define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x) # endif #endif #ifndef CYTHON_NCP_UNUSED # if CYTHON_COMPILING_IN_CPYTHON # define CYTHON_NCP_UNUSED # else # define CYTHON_NCP_UNUSED CYTHON_UNUSED # endif #endif #define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None) #ifdef _MSC_VER #ifndef _MSC_STDINT_H_ #if _MSC_VER < 1300 typedef unsigned char uint8_t; typedef unsigned int uint32_t; #else typedef unsigned __int8 uint8_t; typedef unsigned __int32 uint32_t; #endif #endif #else #include #endif #ifndef CYTHON_FALLTHROUGH #if defined(__cplusplus) && __cplusplus >= 201103L #if __has_cpp_attribute(fallthrough) #define CYTHON_FALLTHROUGH [[fallthrough]] #elif __has_cpp_attribute(clang::fallthrough) #define CYTHON_FALLTHROUGH [[clang::fallthrough]] #elif __has_cpp_attribute(gnu::fallthrough) #define CYTHON_FALLTHROUGH [[gnu::fallthrough]] #endif #endif #ifndef CYTHON_FALLTHROUGH #if __has_attribute(fallthrough) #define CYTHON_FALLTHROUGH __attribute__((fallthrough)) #else #define CYTHON_FALLTHROUGH #endif #endif #if defined(__clang__ ) && defined(__apple_build_version__) #if __apple_build_version__ < 7000000 #undef CYTHON_FALLTHROUGH #define CYTHON_FALLTHROUGH #endif #endif #endif #ifndef CYTHON_INLINE #if defined(__clang__) #define CYTHON_INLINE __inline__ __attribute__ ((__unused__)) #elif defined(__GNUC__) #define CYTHON_INLINE __inline__ #elif defined(_MSC_VER) #define CYTHON_INLINE __inline #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define CYTHON_INLINE inline #else #define CYTHON_INLINE #endif #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag) #define Py_OptimizeFlag 0 #endif #define __PYX_BUILD_PY_SSIZE_T "n" #define CYTHON_FORMAT_SSIZE_T "z" #if PY_MAJOR_VERSION < 3 #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #define __Pyx_DefaultClassType PyClass_Type #else #define __Pyx_BUILTIN_MODULE_NAME "builtins" #if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2 #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #else #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #endif #define __Pyx_DefaultClassType PyType_Type #endif #ifndef Py_TPFLAGS_CHECKTYPES #define Py_TPFLAGS_CHECKTYPES 0 #endif #ifndef Py_TPFLAGS_HAVE_INDEX #define Py_TPFLAGS_HAVE_INDEX 0 #endif #ifndef Py_TPFLAGS_HAVE_NEWBUFFER #define Py_TPFLAGS_HAVE_NEWBUFFER 0 #endif #ifndef Py_TPFLAGS_HAVE_FINALIZE #define Py_TPFLAGS_HAVE_FINALIZE 0 #endif #ifndef METH_STACKLESS #define METH_STACKLESS 0 #endif #if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL) #ifndef METH_FASTCALL #define METH_FASTCALL 0x80 #endif typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs); typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames); #else #define __Pyx_PyCFunctionFast _PyCFunctionFast #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords #endif #if CYTHON_FAST_PYCCALL #define __Pyx_PyFastCFunction_Check(func)\ ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))))) #else #define __Pyx_PyFastCFunction_Check(func) 0 #endif #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc) #define PyObject_Malloc(s) PyMem_Malloc(s) #define PyObject_Free(p) PyMem_Free(p) #define PyObject_Realloc(p) PyMem_Realloc(p) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030400A1 #define PyMem_RawMalloc(n) PyMem_Malloc(n) #define PyMem_RawRealloc(p, n) PyMem_Realloc(p, n) #define PyMem_RawFree(p) PyMem_Free(p) #endif #if CYTHON_COMPILING_IN_PYSTON #define __Pyx_PyCode_HasFreeVars(co) PyCode_HasFreeVars(co) #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno) #else #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno) #endif #if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000 #define __Pyx_PyThreadState_Current PyThreadState_GET() #elif PY_VERSION_HEX >= 0x03060000 #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet() #elif PY_VERSION_HEX >= 0x03000000 #define __Pyx_PyThreadState_Current PyThreadState_GET() #else #define __Pyx_PyThreadState_Current _PyThreadState_Current #endif #if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT) #include "pythread.h" #define Py_tss_NEEDS_INIT 0 typedef int Py_tss_t; static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) { *key = PyThread_create_key(); return 0; } static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) { Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t)); *key = Py_tss_NEEDS_INIT; return key; } static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) { PyObject_Free(key); } static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) { return *key != Py_tss_NEEDS_INIT; } static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) { PyThread_delete_key(*key); *key = Py_tss_NEEDS_INIT; } static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) { return PyThread_set_key_value(*key, value); } static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { return PyThread_get_key_value(*key); } #endif #if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized) #define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n)) #else #define __Pyx_PyDict_NewPresized(n) PyDict_New() #endif #if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) #else #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS #define __Pyx_PyDict_GetItemStr(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash) #else #define __Pyx_PyDict_GetItemStr(dict, name) PyDict_GetItem(dict, name) #endif #if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) #define CYTHON_PEP393_ENABLED 1 #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ 0 : _PyUnicode_Ready((PyObject *)(op))) #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u) #define __Pyx_PyUnicode_KIND(u) PyUnicode_KIND(u) #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) #else #define CYTHON_PEP393_ENABLED 0 #define PyUnicode_1BYTE_KIND 1 #define PyUnicode_2BYTE_KIND 2 #define PyUnicode_4BYTE_KIND 4 #define __Pyx_PyUnicode_READY(op) (0) #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u) #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111) #define __Pyx_PyUnicode_KIND(u) (sizeof(Py_UNICODE)) #define __Pyx_PyUnicode_DATA(u) ((void*)PyUnicode_AS_UNICODE(u)) #define __Pyx_PyUnicode_READ(k, d, i) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i])) #define __Pyx_PyUnicode_WRITE(k, d, i, ch) (((void)(k)), ((Py_UNICODE*)d)[i] = ch) #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_SIZE(u)) #endif #if CYTHON_COMPILING_IN_PYPY #define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b) #define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b) #else #define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b) #define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\ PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b)) #endif #if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains) #define PyUnicode_Contains(u, s) PySequence_Contains(u, s) #endif #if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check) #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type) #endif #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format) #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) #endif #define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) #define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyString_Format(a, b) PyUnicode_Format(a, b) #else #define __Pyx_PyString_Format(a, b) PyString_Format(a, b) #endif #if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII) #define PyObject_ASCII(o) PyObject_Repr(o) #endif #if PY_MAJOR_VERSION >= 3 #define PyBaseString_Type PyUnicode_Type #define PyStringObject PyUnicodeObject #define PyString_Type PyUnicode_Type #define PyString_Check PyUnicode_Check #define PyString_CheckExact PyUnicode_CheckExact #define PyObject_Unicode PyObject_Str #endif #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) #else #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj)) #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj)) #endif #ifndef PySet_CheckExact #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) #endif #if CYTHON_ASSUME_SAFE_MACROS #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) #else #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq) #endif #if PY_MAJOR_VERSION >= 3 #define PyIntObject PyLongObject #define PyInt_Type PyLong_Type #define PyInt_Check(op) PyLong_Check(op) #define PyInt_CheckExact(op) PyLong_CheckExact(op) #define PyInt_FromString PyLong_FromString #define PyInt_FromUnicode PyLong_FromUnicode #define PyInt_FromLong PyLong_FromLong #define PyInt_FromSize_t PyLong_FromSize_t #define PyInt_FromSsize_t PyLong_FromSsize_t #define PyInt_AsLong PyLong_AsLong #define PyInt_AS_LONG PyLong_AS_LONG #define PyInt_AsSsize_t PyLong_AsSsize_t #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask #define PyNumber_Int PyNumber_Long #endif #if PY_MAJOR_VERSION >= 3 #define PyBoolObject PyLongObject #endif #if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY #ifndef PyUnicode_InternFromString #define PyUnicode_InternFromString(s) PyUnicode_FromString(s) #endif #endif #if PY_VERSION_HEX < 0x030200A4 typedef long Py_hash_t; #define __Pyx_PyInt_FromHash_t PyInt_FromLong #define __Pyx_PyInt_AsHash_t PyInt_AsLong #else #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t #endif #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) #else #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) #endif #if CYTHON_USE_ASYNC_SLOTS #if PY_VERSION_HEX >= 0x030500B1 #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async) #else #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved)) #endif #else #define __Pyx_PyType_AsAsync(obj) NULL #endif #ifndef __Pyx_PyAsyncMethodsStruct typedef struct { unaryfunc am_await; unaryfunc am_aiter; unaryfunc am_anext; } __Pyx_PyAsyncMethodsStruct; #endif #if defined(WIN32) || defined(MS_WINDOWS) #define _USE_MATH_DEFINES #endif #include #ifdef NAN #define __PYX_NAN() ((float) NAN) #else static CYTHON_INLINE float __PYX_NAN() { float value; memset(&value, 0xFF, sizeof(value)); return value; } #endif #if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL) #define __Pyx_truncl trunc #else #define __Pyx_truncl truncl #endif #define __PYX_ERR(f_index, lineno, Ln_error) \ { \ __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ } #ifndef __PYX_EXTERN_C #ifdef __cplusplus #define __PYX_EXTERN_C extern "C" #else #define __PYX_EXTERN_C extern #endif #endif #define __PYX_HAVE__pywt___extensions___pywt #define __PYX_HAVE_API__pywt___extensions___pywt /* Early includes */ #include "c/common.h" #include "c/wavelets.h" #include #include #include "numpy/arrayobject.h" #include "numpy/ufuncobject.h" #include "c/wt.h" #include "c/cwt.h" #include #include "pythread.h" #include #include "pystate.h" #ifdef _OPENMP #include #endif /* _OPENMP */ #if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS) #define CYTHON_WITHOUT_ASSERTIONS #endif typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding; const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; #define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0 #define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0 #define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8) #define __PYX_DEFAULT_STRING_ENCODING "" #define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString #define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize #define __Pyx_uchar_cast(c) ((unsigned char)c) #define __Pyx_long_cast(x) ((long)x) #define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\ (sizeof(type) < sizeof(Py_ssize_t)) ||\ (sizeof(type) > sizeof(Py_ssize_t) &&\ likely(v < (type)PY_SSIZE_T_MAX ||\ v == (type)PY_SSIZE_T_MAX) &&\ (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\ v == (type)PY_SSIZE_T_MIN))) ||\ (sizeof(type) == sizeof(Py_ssize_t) &&\ (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\ v == (type)PY_SSIZE_T_MAX))) ) static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) { return (size_t) i < (size_t) limit; } #if defined (__cplusplus) && __cplusplus >= 201103L #include #define __Pyx_sst_abs(value) std::abs(value) #elif SIZEOF_INT >= SIZEOF_SIZE_T #define __Pyx_sst_abs(value) abs(value) #elif SIZEOF_LONG >= SIZEOF_SIZE_T #define __Pyx_sst_abs(value) labs(value) #elif defined (_MSC_VER) #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value)) #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define __Pyx_sst_abs(value) llabs(value) #elif defined (__GNUC__) #define __Pyx_sst_abs(value) __builtin_llabs(value) #else #define __Pyx_sst_abs(value) ((value<0) ? -value : value) #endif static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*); static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length); #define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s)) #define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l) #define __Pyx_PyBytes_FromString PyBytes_FromString #define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*); #if PY_MAJOR_VERSION < 3 #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize #else #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize #endif #define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AS_STRING(s)) #define __Pyx_PyObject_AsWritableString(s) ((char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsWritableSString(s) ((signed char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsSString(s) ((const signed char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsUString(s) ((const unsigned char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s) #define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s) #define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s) #define __Pyx_PyStr_FromCString(s) __Pyx_PyStr_FromString((const char*)s) #define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s) static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) { const Py_UNICODE *u_end = u; while (*u_end++) ; return (size_t)(u_end - u - 1); } #define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u)) #define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode #define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode #define __Pyx_NewRef(obj) (Py_INCREF(obj), obj) #define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None) static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b); static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*); static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); #define __Pyx_PySequence_Tuple(obj)\ (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj)) static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); #if CYTHON_ASSUME_SAFE_MACROS #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) #else #define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) #endif #define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x)) #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x)) #else #define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x)) #endif #define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x)) #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII static int __Pyx_sys_getdefaultencoding_not_ascii; static int __Pyx_init_sys_getdefaultencoding_params(void) { PyObject* sys; PyObject* default_encoding = NULL; PyObject* ascii_chars_u = NULL; PyObject* ascii_chars_b = NULL; const char* default_encoding_c; sys = PyImport_ImportModule("sys"); if (!sys) goto bad; default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL); Py_DECREF(sys); if (!default_encoding) goto bad; default_encoding_c = PyBytes_AsString(default_encoding); if (!default_encoding_c) goto bad; if (strcmp(default_encoding_c, "ascii") == 0) { __Pyx_sys_getdefaultencoding_not_ascii = 0; } else { char ascii_chars[128]; int c; for (c = 0; c < 128; c++) { ascii_chars[c] = c; } __Pyx_sys_getdefaultencoding_not_ascii = 1; ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL); if (!ascii_chars_u) goto bad; ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL); if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) { PyErr_Format( PyExc_ValueError, "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.", default_encoding_c); goto bad; } Py_DECREF(ascii_chars_u); Py_DECREF(ascii_chars_b); } Py_DECREF(default_encoding); return 0; bad: Py_XDECREF(default_encoding); Py_XDECREF(ascii_chars_u); Py_XDECREF(ascii_chars_b); return -1; } #endif #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL) #else #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL) #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT static char* __PYX_DEFAULT_STRING_ENCODING; static int __Pyx_init_sys_getdefaultencoding_params(void) { PyObject* sys; PyObject* default_encoding = NULL; char* default_encoding_c; sys = PyImport_ImportModule("sys"); if (!sys) goto bad; default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL); Py_DECREF(sys); if (!default_encoding) goto bad; default_encoding_c = PyBytes_AsString(default_encoding); if (!default_encoding_c) goto bad; __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1); if (!__PYX_DEFAULT_STRING_ENCODING) goto bad; strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c); Py_DECREF(default_encoding); return 0; bad: Py_XDECREF(default_encoding); return -1; } #endif #endif /* Test for GCC > 2.95 */ #if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))) #define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) #else /* !__GNUC__ or GCC < 2.95 */ #define likely(x) (x) #define unlikely(x) (x) #endif /* __GNUC__ */ static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; } static PyObject *__pyx_m = NULL; static PyObject *__pyx_d; static PyObject *__pyx_b; static PyObject *__pyx_cython_runtime = NULL; static PyObject *__pyx_empty_tuple; static PyObject *__pyx_empty_bytes; static PyObject *__pyx_empty_unicode; static int __pyx_lineno; static int __pyx_clineno = 0; static const char * __pyx_cfilenm= __FILE__; static const char *__pyx_filename; /* Header.proto */ #if !defined(CYTHON_CCOMPLEX) #if defined(__cplusplus) #define CYTHON_CCOMPLEX 1 #elif defined(_Complex_I) #define CYTHON_CCOMPLEX 1 #else #define CYTHON_CCOMPLEX 0 #endif #endif #if CYTHON_CCOMPLEX #ifdef __cplusplus #include #else #include #endif #endif #if CYTHON_CCOMPLEX && !defined(__cplusplus) && defined(__sun__) && defined(__GNUC__) #undef _Complex_I #define _Complex_I 1.0fj #endif static const char *__pyx_f[] = { "pywt/_extensions/_pywt.pyx", "stringsource", "__init__.pxd", "type.pxd", "pywt/_extensions/wavelets_list.pxi", }; /* MemviewSliceStruct.proto */ struct __pyx_memoryview_obj; typedef struct { struct __pyx_memoryview_obj *memview; char *data; Py_ssize_t shape[8]; Py_ssize_t strides[8]; Py_ssize_t suboffsets[8]; } __Pyx_memviewslice; #define __Pyx_MemoryView_Len(m) (m.shape[0]) /* Atomics.proto */ #include #ifndef CYTHON_ATOMICS #define CYTHON_ATOMICS 1 #endif #define __pyx_atomic_int_type int #if CYTHON_ATOMICS && __GNUC__ >= 4 && (__GNUC_MINOR__ > 1 ||\ (__GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL >= 2)) &&\ !defined(__i386__) #define __pyx_atomic_incr_aligned(value, lock) __sync_fetch_and_add(value, 1) #define __pyx_atomic_decr_aligned(value, lock) __sync_fetch_and_sub(value, 1) #ifdef __PYX_DEBUG_ATOMICS #warning "Using GNU atomics" #endif #elif CYTHON_ATOMICS && defined(_MSC_VER) && 0 #include #undef __pyx_atomic_int_type #define __pyx_atomic_int_type LONG #define __pyx_atomic_incr_aligned(value, lock) InterlockedIncrement(value) #define __pyx_atomic_decr_aligned(value, lock) InterlockedDecrement(value) #ifdef __PYX_DEBUG_ATOMICS #pragma message ("Using MSVC atomics") #endif #elif CYTHON_ATOMICS && (defined(__ICC) || defined(__INTEL_COMPILER)) && 0 #define __pyx_atomic_incr_aligned(value, lock) _InterlockedIncrement(value) #define __pyx_atomic_decr_aligned(value, lock) _InterlockedDecrement(value) #ifdef __PYX_DEBUG_ATOMICS #warning "Using Intel atomics" #endif #else #undef CYTHON_ATOMICS #define CYTHON_ATOMICS 0 #ifdef __PYX_DEBUG_ATOMICS #warning "Not using atomics" #endif #endif typedef volatile __pyx_atomic_int_type __pyx_atomic_int; #if CYTHON_ATOMICS #define __pyx_add_acquisition_count(memview)\ __pyx_atomic_incr_aligned(__pyx_get_slice_count_pointer(memview), memview->lock) #define __pyx_sub_acquisition_count(memview)\ __pyx_atomic_decr_aligned(__pyx_get_slice_count_pointer(memview), memview->lock) #else #define __pyx_add_acquisition_count(memview)\ __pyx_add_acquisition_count_locked(__pyx_get_slice_count_pointer(memview), memview->lock) #define __pyx_sub_acquisition_count(memview)\ __pyx_sub_acquisition_count_locked(__pyx_get_slice_count_pointer(memview), memview->lock) #endif /* ForceInitThreads.proto */ #ifndef __PYX_FORCE_INIT_THREADS #define __PYX_FORCE_INIT_THREADS 0 #endif /* NoFastGil.proto */ #define __Pyx_PyGILState_Ensure PyGILState_Ensure #define __Pyx_PyGILState_Release PyGILState_Release #define __Pyx_FastGIL_Remember() #define __Pyx_FastGIL_Forget() #define __Pyx_FastGilFuncInit() /* BufferFormatStructs.proto */ #define IS_UNSIGNED(type) (((type) -1) > 0) struct __Pyx_StructField_; #define __PYX_BUF_FLAGS_PACKED_STRUCT (1 << 0) typedef struct { const char* name; struct __Pyx_StructField_* fields; size_t size; size_t arraysize[8]; int ndim; char typegroup; char is_unsigned; int flags; } __Pyx_TypeInfo; typedef struct __Pyx_StructField_ { __Pyx_TypeInfo* type; const char* name; size_t offset; } __Pyx_StructField; typedef struct { __Pyx_StructField* field; size_t parent_offset; } __Pyx_BufFmt_StackElem; typedef struct { __Pyx_StructField root; __Pyx_BufFmt_StackElem* head; size_t fmt_offset; size_t new_count, enc_count; size_t struct_alignment; int is_complex; char enc_type; char new_packmode; char enc_packmode; char is_valid_array; } __Pyx_BufFmt_Context; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":776 * # in Cython to enable them only on the right systems. * * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<< * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t */ typedef npy_int8 __pyx_t_5numpy_int8_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":777 * * ctypedef npy_int8 int8_t * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< * ctypedef npy_int32 int32_t * ctypedef npy_int64 int64_t */ typedef npy_int16 __pyx_t_5numpy_int16_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":778 * ctypedef npy_int8 int8_t * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<< * ctypedef npy_int64 int64_t * #ctypedef npy_int96 int96_t */ typedef npy_int32 __pyx_t_5numpy_int32_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":779 * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<< * #ctypedef npy_int96 int96_t * #ctypedef npy_int128 int128_t */ typedef npy_int64 __pyx_t_5numpy_int64_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":783 * #ctypedef npy_int128 int128_t * * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t */ typedef npy_uint8 __pyx_t_5numpy_uint8_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":784 * * ctypedef npy_uint8 uint8_t * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< * ctypedef npy_uint32 uint32_t * ctypedef npy_uint64 uint64_t */ typedef npy_uint16 __pyx_t_5numpy_uint16_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":785 * ctypedef npy_uint8 uint8_t * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<< * ctypedef npy_uint64 uint64_t * #ctypedef npy_uint96 uint96_t */ typedef npy_uint32 __pyx_t_5numpy_uint32_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":786 * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<< * #ctypedef npy_uint96 uint96_t * #ctypedef npy_uint128 uint128_t */ typedef npy_uint64 __pyx_t_5numpy_uint64_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":790 * #ctypedef npy_uint128 uint128_t * * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< * ctypedef npy_float64 float64_t * #ctypedef npy_float80 float80_t */ typedef npy_float32 __pyx_t_5numpy_float32_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":791 * * ctypedef npy_float32 float32_t * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< * #ctypedef npy_float80 float80_t * #ctypedef npy_float128 float128_t */ typedef npy_float64 __pyx_t_5numpy_float64_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":800 * # The int types are mapped a bit surprising -- * # numpy.int corresponds to 'l' and numpy.long to 'q' * ctypedef npy_long int_t # <<<<<<<<<<<<<< * ctypedef npy_longlong long_t * ctypedef npy_longlong longlong_t */ typedef npy_long __pyx_t_5numpy_int_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":801 * # numpy.int corresponds to 'l' and numpy.long to 'q' * ctypedef npy_long int_t * ctypedef npy_longlong long_t # <<<<<<<<<<<<<< * ctypedef npy_longlong longlong_t * */ typedef npy_longlong __pyx_t_5numpy_long_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":802 * ctypedef npy_long int_t * ctypedef npy_longlong long_t * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<< * * ctypedef npy_ulong uint_t */ typedef npy_longlong __pyx_t_5numpy_longlong_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":804 * ctypedef npy_longlong longlong_t * * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< * ctypedef npy_ulonglong ulong_t * ctypedef npy_ulonglong ulonglong_t */ typedef npy_ulong __pyx_t_5numpy_uint_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":805 * * ctypedef npy_ulong uint_t * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< * ctypedef npy_ulonglong ulonglong_t * */ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":806 * ctypedef npy_ulong uint_t * ctypedef npy_ulonglong ulong_t * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<< * * ctypedef npy_intp intp_t */ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":808 * ctypedef npy_ulonglong ulonglong_t * * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< * ctypedef npy_uintp uintp_t * */ typedef npy_intp __pyx_t_5numpy_intp_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":809 * * ctypedef npy_intp intp_t * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< * * ctypedef npy_double float_t */ typedef npy_uintp __pyx_t_5numpy_uintp_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":811 * ctypedef npy_uintp uintp_t * * ctypedef npy_double float_t # <<<<<<<<<<<<<< * ctypedef npy_double double_t * ctypedef npy_longdouble longdouble_t */ typedef npy_double __pyx_t_5numpy_float_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":812 * * ctypedef npy_double float_t * ctypedef npy_double double_t # <<<<<<<<<<<<<< * ctypedef npy_longdouble longdouble_t * */ typedef npy_double __pyx_t_5numpy_double_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":813 * ctypedef npy_double float_t * ctypedef npy_double double_t * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<< * * ctypedef npy_cfloat cfloat_t */ typedef npy_longdouble __pyx_t_5numpy_longdouble_t; /* "pywt/_extensions/_pywt.pxd":5 * include "config.pxi" * * ctypedef Py_ssize_t pywt_index_t # <<<<<<<<<<<<<< * * ctypedef fused data_t: */ typedef Py_ssize_t __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t; /* Declarations.proto */ #if CYTHON_CCOMPLEX #ifdef __cplusplus typedef ::std::complex< double > __pyx_t_double_complex; #else typedef double _Complex __pyx_t_double_complex; #endif #else typedef struct { double real, imag; } __pyx_t_double_complex; #endif static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double, double); /* Declarations.proto */ #if CYTHON_CCOMPLEX #ifdef __cplusplus typedef ::std::complex< float > __pyx_t_float_complex; #else typedef float _Complex __pyx_t_float_complex; #endif #else typedef struct { float real, imag; } __pyx_t_float_complex; #endif static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float, float); /*--- Type declarations ---*/ struct WaveletObject; struct ContinuousWaveletObject; struct __pyx_array_obj; struct __pyx_MemviewEnum_obj; struct __pyx_memoryview_obj; struct __pyx_memoryviewslice_obj; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":815 * ctypedef npy_longdouble longdouble_t * * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< * ctypedef npy_cdouble cdouble_t * ctypedef npy_clongdouble clongdouble_t */ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":816 * * ctypedef npy_cfloat cfloat_t * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< * ctypedef npy_clongdouble clongdouble_t * */ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":817 * ctypedef npy_cfloat cfloat_t * ctypedef npy_cdouble cdouble_t * ctypedef npy_clongdouble clongdouble_t # <<<<<<<<<<<<<< * * ctypedef npy_cdouble complex_t */ typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":819 * ctypedef npy_clongdouble clongdouble_t * * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew1(a): */ typedef npy_cdouble __pyx_t_5numpy_complex_t; /* "pywt/_extensions/_pywt.pxd":23 * have_c99_complex = 0 * * cdef public class Wavelet [type WaveletType, object WaveletObject]: # <<<<<<<<<<<<<< * cdef wavelet.DiscreteWavelet* w * */ struct WaveletObject { PyObject_HEAD DiscreteWavelet *w; PyObject *name; PyObject *number; }; __PYX_EXTERN_C DL_EXPORT(PyTypeObject) WaveletType; /* "pywt/_extensions/_pywt.pxd":29 * cdef readonly number * * cdef public class ContinuousWavelet [type ContinuousWaveletType, object ContinuousWaveletObject]: # <<<<<<<<<<<<<< * cdef wavelet.ContinuousWavelet* w * */ struct ContinuousWaveletObject { PyObject_HEAD ContinuousWavelet *w; PyObject *name; PyObject *number; PyObject *dt; }; __PYX_EXTERN_C DL_EXPORT(PyTypeObject) ContinuousWaveletType; /* "View.MemoryView":105 * * @cname("__pyx_array") * cdef class array: # <<<<<<<<<<<<<< * * cdef: */ struct __pyx_array_obj { PyObject_HEAD struct __pyx_vtabstruct_array *__pyx_vtab; char *data; Py_ssize_t len; char *format; int ndim; Py_ssize_t *_shape; Py_ssize_t *_strides; Py_ssize_t itemsize; PyObject *mode; PyObject *_format; void (*callback_free_data)(void *); int free_data; int dtype_is_object; }; /* "View.MemoryView":279 * * @cname('__pyx_MemviewEnum') * cdef class Enum(object): # <<<<<<<<<<<<<< * cdef object name * def __init__(self, name): */ struct __pyx_MemviewEnum_obj { PyObject_HEAD PyObject *name; }; /* "View.MemoryView":330 * * @cname('__pyx_memoryview') * cdef class memoryview(object): # <<<<<<<<<<<<<< * * cdef object obj */ struct __pyx_memoryview_obj { PyObject_HEAD struct __pyx_vtabstruct_memoryview *__pyx_vtab; PyObject *obj; PyObject *_size; PyObject *_array_interface; PyThread_type_lock lock; __pyx_atomic_int acquisition_count[2]; __pyx_atomic_int *acquisition_count_aligned_p; Py_buffer view; int flags; int dtype_is_object; __Pyx_TypeInfo *typeinfo; }; /* "View.MemoryView":965 * * @cname('__pyx_memoryviewslice') * cdef class _memoryviewslice(memoryview): # <<<<<<<<<<<<<< * "Internal class for passing memoryview slices to Python" * */ struct __pyx_memoryviewslice_obj { struct __pyx_memoryview_obj __pyx_base; __Pyx_memviewslice from_slice; PyObject *from_object; PyObject *(*to_object_func)(char *); int (*to_dtype_func)(char *, PyObject *); }; /* "View.MemoryView":105 * * @cname("__pyx_array") * cdef class array: # <<<<<<<<<<<<<< * * cdef: */ struct __pyx_vtabstruct_array { PyObject *(*get_memview)(struct __pyx_array_obj *); }; static struct __pyx_vtabstruct_array *__pyx_vtabptr_array; /* "View.MemoryView":330 * * @cname('__pyx_memoryview') * cdef class memoryview(object): # <<<<<<<<<<<<<< * * cdef object obj */ struct __pyx_vtabstruct_memoryview { char *(*get_item_pointer)(struct __pyx_memoryview_obj *, PyObject *); PyObject *(*is_slice)(struct __pyx_memoryview_obj *, PyObject *); PyObject *(*setitem_slice_assignment)(struct __pyx_memoryview_obj *, PyObject *, PyObject *); PyObject *(*setitem_slice_assign_scalar)(struct __pyx_memoryview_obj *, struct __pyx_memoryview_obj *, PyObject *); PyObject *(*setitem_indexed)(struct __pyx_memoryview_obj *, PyObject *, PyObject *); PyObject *(*convert_item_to_object)(struct __pyx_memoryview_obj *, char *); PyObject *(*assign_item_from_object)(struct __pyx_memoryview_obj *, char *, PyObject *); }; static struct __pyx_vtabstruct_memoryview *__pyx_vtabptr_memoryview; /* "View.MemoryView":965 * * @cname('__pyx_memoryviewslice') * cdef class _memoryviewslice(memoryview): # <<<<<<<<<<<<<< * "Internal class for passing memoryview slices to Python" * */ struct __pyx_vtabstruct__memoryviewslice { struct __pyx_vtabstruct_memoryview __pyx_base; }; static struct __pyx_vtabstruct__memoryviewslice *__pyx_vtabptr__memoryviewslice; /* --- Runtime support code (head) --- */ /* Refnanny.proto */ #ifndef CYTHON_REFNANNY #define CYTHON_REFNANNY 0 #endif #if CYTHON_REFNANNY typedef struct { void (*INCREF)(void*, PyObject*, int); void (*DECREF)(void*, PyObject*, int); void (*GOTREF)(void*, PyObject*, int); void (*GIVEREF)(void*, PyObject*, int); void* (*SetupContext)(const char*, int, const char*); void (*FinishContext)(void**); } __Pyx_RefNannyAPIStruct; static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; #ifdef WITH_THREAD #define __Pyx_RefNannySetupContext(name, acquire_gil)\ if (acquire_gil) {\ PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ PyGILState_Release(__pyx_gilstate_save);\ } else {\ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ } #else #define __Pyx_RefNannySetupContext(name, acquire_gil)\ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) #endif #define __Pyx_RefNannyFinishContext()\ __Pyx_RefNanny->FinishContext(&__pyx_refnanny) #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0) #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0) #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0) #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0) #else #define __Pyx_RefNannyDeclarations #define __Pyx_RefNannySetupContext(name, acquire_gil) #define __Pyx_RefNannyFinishContext() #define __Pyx_INCREF(r) Py_INCREF(r) #define __Pyx_DECREF(r) Py_DECREF(r) #define __Pyx_GOTREF(r) #define __Pyx_GIVEREF(r) #define __Pyx_XINCREF(r) Py_XINCREF(r) #define __Pyx_XDECREF(r) Py_XDECREF(r) #define __Pyx_XGOTREF(r) #define __Pyx_XGIVEREF(r) #endif #define __Pyx_XDECREF_SET(r, v) do {\ PyObject *tmp = (PyObject *) r;\ r = v; __Pyx_XDECREF(tmp);\ } while (0) #define __Pyx_DECREF_SET(r, v) do {\ PyObject *tmp = (PyObject *) r;\ r = v; __Pyx_DECREF(tmp);\ } while (0) #define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) #define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) /* PyObjectGetAttrStr.proto */ #if CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name); #else #define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) #endif /* GetBuiltinName.proto */ static PyObject *__Pyx_GetBuiltinName(PyObject *name); /* PyObjectCall.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); #else #define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw) #endif /* PyThreadStateGet.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; #define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current; #define __Pyx_PyErr_Occurred() __pyx_tstate->curexc_type #else #define __Pyx_PyThreadState_declare #define __Pyx_PyThreadState_assign #define __Pyx_PyErr_Occurred() PyErr_Occurred() #endif /* PyErrFetchRestore.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL) #define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb) #define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb) #define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb) #define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL)) #else #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) #endif #else #define __Pyx_PyErr_Clear() PyErr_Clear() #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) #define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb) #define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb) #define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb) #define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb) #define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb) #define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb) #endif /* RaiseException.proto */ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); /* WriteUnraisableException.proto */ static void __Pyx_WriteUnraisable(const char *name, int clineno, int lineno, const char *filename, int full_traceback, int nogil); /* RaiseArgTupleInvalid.proto */ static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /* RaiseDoubleKeywords.proto */ static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); /* ParseKeywords.proto */ static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\ PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\ const char* function_name); /* GetAttr.proto */ static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *); /* PyDictVersioning.proto */ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS #define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1) #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\ (version_var) = __PYX_GET_DICT_VERSION(dict);\ (cache_var) = (value); #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\ static PY_UINT64_T __pyx_dict_version = 0;\ static PyObject *__pyx_dict_cached_value = NULL;\ if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\ (VAR) = __pyx_dict_cached_value;\ } else {\ (VAR) = __pyx_dict_cached_value = (LOOKUP);\ __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\ }\ } static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj); static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj); static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version); #else #define __PYX_GET_DICT_VERSION(dict) (0) #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var) #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP); #endif /* GetModuleGlobalName.proto */ #if CYTHON_USE_DICT_VERSIONS #define __Pyx_GetModuleGlobalName(var, name) {\ static PY_UINT64_T __pyx_dict_version = 0;\ static PyObject *__pyx_dict_cached_value = NULL;\ (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\ (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\ __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ } #define __Pyx_GetModuleGlobalNameUncached(var, name) {\ PY_UINT64_T __pyx_dict_version;\ PyObject *__pyx_dict_cached_value;\ (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ } static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value); #else #define __Pyx_GetModuleGlobalName(var, name) (var) = __Pyx__GetModuleGlobalName(name) #define __Pyx_GetModuleGlobalNameUncached(var, name) (var) = __Pyx__GetModuleGlobalName(name) static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name); #endif /* GetTopmostException.proto */ #if CYTHON_USE_EXC_INFO_STACK static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate); #endif /* SaveResetException.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); #else #define __Pyx_ExceptionSave(type, value, tb) PyErr_GetExcInfo(type, value, tb) #define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb) #endif /* PyErrExceptionMatches.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err) static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err); #else #define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err) #endif /* GetException.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb) static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #else static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); #endif /* PyCFunctionFastCall.proto */ #if CYTHON_FAST_PYCCALL static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs); #else #define __Pyx_PyCFunction_FastCall(func, args, nargs) (assert(0), NULL) #endif /* PyFunctionFastCall.proto */ #if CYTHON_FAST_PYCALL #define __Pyx_PyFunction_FastCall(func, args, nargs)\ __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) #if 1 || PY_VERSION_HEX < 0x030600B1 static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs); #else #define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) #endif #define __Pyx_BUILD_ASSERT_EXPR(cond)\ (sizeof(char [1 - 2*!(cond)]) - 1) #ifndef Py_MEMBER_SIZE #define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) #endif static size_t __pyx_pyframe_localsplus_offset = 0; #include "frameobject.h" #define __Pxy_PyFrame_Initialize_Offsets()\ ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) #define __Pyx_PyFrame_GetLocalsplus(frame)\ (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) #endif /* PyObjectCallMethO.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); #endif /* PyObjectCallOneArg.proto */ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); /* PySequenceContains.proto */ static CYTHON_INLINE int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq, int eq) { int result = PySequence_Contains(seq, item); return unlikely(result < 0) ? result : (result == (eq == Py_EQ)); } /* PyObjectCall2Args.proto */ static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2); /* GetItemInt.proto */ #define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\ (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\ __Pyx_GetItemInt_Generic(o, to_py_func(i)))) #define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL)) static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, int wraparound, int boundscheck); #define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL)) static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, int wraparound, int boundscheck); static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j); static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list, int wraparound, int boundscheck); /* ObjectGetItem.proto */ #if CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key); #else #define __Pyx_PyObject_GetItem(obj, key) PyObject_GetItem(obj, key) #endif /* SliceObject.proto */ static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice( PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop, PyObject** py_start, PyObject** py_stop, PyObject** py_slice, int has_cstart, int has_cstop, int wraparound); /* IncludeStringH.proto */ #include /* BytesEquals.proto */ static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals); /* UnicodeEquals.proto */ static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals); /* RaiseTooManyValuesToUnpack.proto */ static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected); /* RaiseNeedMoreValuesToUnpack.proto */ static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index); /* IterFinish.proto */ static CYTHON_INLINE int __Pyx_IterFinish(void); /* UnpackItemEndCheck.proto */ static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected); /* FetchCommonType.proto */ static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type); /* CythonFunction.proto */ #define __Pyx_CyFunction_USED 1 #define __Pyx_CYFUNCTION_STATICMETHOD 0x01 #define __Pyx_CYFUNCTION_CLASSMETHOD 0x02 #define __Pyx_CYFUNCTION_CCLASS 0x04 #define __Pyx_CyFunction_GetClosure(f)\ (((__pyx_CyFunctionObject *) (f))->func_closure) #define __Pyx_CyFunction_GetClassObj(f)\ (((__pyx_CyFunctionObject *) (f))->func_classobj) #define __Pyx_CyFunction_Defaults(type, f)\ ((type *)(((__pyx_CyFunctionObject *) (f))->defaults)) #define __Pyx_CyFunction_SetDefaultsGetter(f, g)\ ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g) typedef struct { PyCFunctionObject func; #if PY_VERSION_HEX < 0x030500A0 PyObject *func_weakreflist; #endif PyObject *func_dict; PyObject *func_name; PyObject *func_qualname; PyObject *func_doc; PyObject *func_globals; PyObject *func_code; PyObject *func_closure; PyObject *func_classobj; void *defaults; int defaults_pyobjects; int flags; PyObject *defaults_tuple; PyObject *defaults_kwdict; PyObject *(*defaults_getter)(PyObject *); PyObject *func_annotations; } __pyx_CyFunctionObject; static PyTypeObject *__pyx_CyFunctionType = 0; #define __Pyx_CyFunction_Check(obj) (__Pyx_TypeCheck(obj, __pyx_CyFunctionType)) #define __Pyx_CyFunction_NewEx(ml, flags, qualname, self, module, globals, code)\ __Pyx_CyFunction_New(__pyx_CyFunctionType, ml, flags, qualname, self, module, globals, code) static PyObject *__Pyx_CyFunction_New(PyTypeObject *, PyMethodDef *ml, int flags, PyObject* qualname, PyObject *self, PyObject *module, PyObject *globals, PyObject* code); static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *m, size_t size, int pyobjects); static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m, PyObject *tuple); static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m, PyObject *dict); static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m, PyObject *dict); static int __pyx_CyFunction_init(void); /* ListAppend.proto */ #if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) { PyListObject* L = (PyListObject*) list; Py_ssize_t len = Py_SIZE(list); if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) { Py_INCREF(x); PyList_SET_ITEM(list, len, x); Py_SIZE(list) = len+1; return 0; } return PyList_Append(list, x); } #else #define __Pyx_PyList_Append(L,x) PyList_Append(L,x) #endif /* PyObjectGetMethod.proto */ static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method); /* PyObjectCallMethod1.proto */ static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg); /* append.proto */ static CYTHON_INLINE int __Pyx_PyObject_Append(PyObject* L, PyObject* x); /* PyObjectCallNoArg.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func); #else #define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL) #endif /* HasAttr.proto */ static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *); /* decode_c_string_utf16.proto */ static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16(const char *s, Py_ssize_t size, const char *errors) { int byteorder = 0; return PyUnicode_DecodeUTF16(s, size, errors, &byteorder); } static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16LE(const char *s, Py_ssize_t size, const char *errors) { int byteorder = -1; return PyUnicode_DecodeUTF16(s, size, errors, &byteorder); } static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16BE(const char *s, Py_ssize_t size, const char *errors) { int byteorder = 1; return PyUnicode_DecodeUTF16(s, size, errors, &byteorder); } /* decode_c_string.proto */ static CYTHON_INLINE PyObject* __Pyx_decode_c_string( const char* cstring, Py_ssize_t start, Py_ssize_t stop, const char* encoding, const char* errors, PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)); /* None.proto */ static CYTHON_INLINE long __Pyx_mod_long(long, long); /* MemviewSliceInit.proto */ #define __Pyx_BUF_MAX_NDIMS %(BUF_MAX_NDIMS)d #define __Pyx_MEMVIEW_DIRECT 1 #define __Pyx_MEMVIEW_PTR 2 #define __Pyx_MEMVIEW_FULL 4 #define __Pyx_MEMVIEW_CONTIG 8 #define __Pyx_MEMVIEW_STRIDED 16 #define __Pyx_MEMVIEW_FOLLOW 32 #define __Pyx_IS_C_CONTIG 1 #define __Pyx_IS_F_CONTIG 2 static int __Pyx_init_memviewslice( struct __pyx_memoryview_obj *memview, int ndim, __Pyx_memviewslice *memviewslice, int memview_is_new_reference); static CYTHON_INLINE int __pyx_add_acquisition_count_locked( __pyx_atomic_int *acquisition_count, PyThread_type_lock lock); static CYTHON_INLINE int __pyx_sub_acquisition_count_locked( __pyx_atomic_int *acquisition_count, PyThread_type_lock lock); #define __pyx_get_slice_count_pointer(memview) (memview->acquisition_count_aligned_p) #define __pyx_get_slice_count(memview) (*__pyx_get_slice_count_pointer(memview)) #define __PYX_INC_MEMVIEW(slice, have_gil) __Pyx_INC_MEMVIEW(slice, have_gil, __LINE__) #define __PYX_XDEC_MEMVIEW(slice, have_gil) __Pyx_XDEC_MEMVIEW(slice, have_gil, __LINE__) static CYTHON_INLINE void __Pyx_INC_MEMVIEW(__Pyx_memviewslice *, int, int); static CYTHON_INLINE void __Pyx_XDEC_MEMVIEW(__Pyx_memviewslice *, int, int); /* UnpackUnboundCMethod.proto */ typedef struct { PyObject *type; PyObject **method_name; PyCFunction func; PyObject *method; int flag; } __Pyx_CachedCFunction; /* CallUnboundCMethod0.proto */ static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self); #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_CallUnboundCMethod0(cfunc, self)\ (likely((cfunc)->func) ?\ (likely((cfunc)->flag == METH_NOARGS) ? (*((cfunc)->func))(self, NULL) :\ (PY_VERSION_HEX >= 0x030600B1 && likely((cfunc)->flag == METH_FASTCALL) ?\ (PY_VERSION_HEX >= 0x030700A0 ?\ (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0) :\ (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL)) :\ (PY_VERSION_HEX >= 0x030700A0 && (cfunc)->flag == (METH_FASTCALL | METH_KEYWORDS) ?\ (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL) :\ (likely((cfunc)->flag == (METH_VARARGS | METH_KEYWORDS)) ? ((*(PyCFunctionWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, __pyx_empty_tuple, NULL)) :\ ((cfunc)->flag == METH_VARARGS ? (*((cfunc)->func))(self, __pyx_empty_tuple) :\ __Pyx__CallUnboundCMethod0(cfunc, self)))))) :\ __Pyx__CallUnboundCMethod0(cfunc, self)) #else #define __Pyx_CallUnboundCMethod0(cfunc, self) __Pyx__CallUnboundCMethod0(cfunc, self) #endif /* pyobject_as_double.proto */ static double __Pyx__PyObject_AsDouble(PyObject* obj); #if CYTHON_COMPILING_IN_PYPY #define __Pyx_PyObject_AsDouble(obj)\ (likely(PyFloat_CheckExact(obj)) ? PyFloat_AS_DOUBLE(obj) :\ likely(PyInt_CheckExact(obj)) ?\ PyFloat_AsDouble(obj) : __Pyx__PyObject_AsDouble(obj)) #else #define __Pyx_PyObject_AsDouble(obj)\ ((likely(PyFloat_CheckExact(obj))) ?\ PyFloat_AS_DOUBLE(obj) : __Pyx__PyObject_AsDouble(obj)) #endif /* None.proto */ static CYTHON_INLINE double __Pyx_mod_double(double, double); /* None.proto */ static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname); /* ExtTypeTest.proto */ static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); /* PyIntBinop.proto */ #if !CYTHON_COMPILING_IN_PYPY static PyObject* __Pyx_PyInt_FloorDivideObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check); #else #define __Pyx_PyInt_FloorDivideObjC(op1, op2, intval, inplace, zerodivision_check)\ (inplace ? PyNumber_InPlaceFloorDivide(op1, op2) : PyNumber_FloorDivide(op1, op2)) #endif /* DictGetItem.proto */ #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key); #define __Pyx_PyObject_Dict_GetItem(obj, name)\ (likely(PyDict_CheckExact(obj)) ?\ __Pyx_PyDict_GetItem(obj, name) : PyObject_GetItem(obj, name)) #else #define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key) #define __Pyx_PyObject_Dict_GetItem(obj, name) PyObject_GetItem(obj, name) #endif /* RaiseNoneIterError.proto */ static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void); /* ArgTypeTest.proto */ #define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\ ((likely((Py_TYPE(obj) == type) | (none_allowed && (obj == Py_None)))) ? 1 :\ __Pyx__ArgTypeTest(obj, type, name, exact)) static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact); /* StrEquals.proto */ #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyString_Equals __Pyx_PyUnicode_Equals #else #define __Pyx_PyString_Equals __Pyx_PyBytes_Equals #endif /* None.proto */ static CYTHON_INLINE Py_ssize_t __Pyx_div_Py_ssize_t(Py_ssize_t, Py_ssize_t); /* UnaryNegOverflows.proto */ #define UNARY_NEG_WOULD_OVERFLOW(x)\ (((x) < 0) & ((unsigned long)(x) == 0-(unsigned long)(x))) static CYTHON_UNUSED int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *); /*proto*/ /* GetAttr3.proto */ static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *); /* SwapException.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_ExceptionSwap(type, value, tb) __Pyx__ExceptionSwap(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #else static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb); #endif /* Import.proto */ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); /* FastTypeChecks.proto */ #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b); static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type); static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2); #else #define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) #define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type) #define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2)) #endif #define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) static CYTHON_UNUSED int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ /* ListCompAppend.proto */ #if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) { PyListObject* L = (PyListObject*) list; Py_ssize_t len = Py_SIZE(list); if (likely(L->allocated > len)) { Py_INCREF(x); PyList_SET_ITEM(list, len, x); Py_SIZE(list) = len+1; return 0; } return PyList_Append(list, x); } #else #define __Pyx_ListComp_Append(L,x) PyList_Append(L,x) #endif /* PyIntBinop.proto */ #if !CYTHON_COMPILING_IN_PYPY static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check); #else #define __Pyx_PyInt_AddObjC(op1, op2, intval, inplace, zerodivision_check)\ (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2)) #endif /* ListExtend.proto */ static CYTHON_INLINE int __Pyx_PyList_Extend(PyObject* L, PyObject* v) { #if CYTHON_COMPILING_IN_CPYTHON PyObject* none = _PyList_Extend((PyListObject*)L, v); if (unlikely(!none)) return -1; Py_DECREF(none); return 0; #else return PyList_SetSlice(L, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, v); #endif } /* None.proto */ static CYTHON_INLINE long __Pyx_div_long(long, long); /* ImportFrom.proto */ static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name); /* StringJoin.proto */ #if PY_MAJOR_VERSION < 3 #define __Pyx_PyString_Join __Pyx_PyBytes_Join #define __Pyx_PyBaseString_Join(s, v) (PyUnicode_CheckExact(s) ? PyUnicode_Join(s, v) : __Pyx_PyBytes_Join(s, v)) #else #define __Pyx_PyString_Join PyUnicode_Join #define __Pyx_PyBaseString_Join PyUnicode_Join #endif #if CYTHON_COMPILING_IN_CPYTHON #if PY_MAJOR_VERSION < 3 #define __Pyx_PyBytes_Join _PyString_Join #else #define __Pyx_PyBytes_Join _PyBytes_Join #endif #else static CYTHON_INLINE PyObject* __Pyx_PyBytes_Join(PyObject* sep, PyObject* values); #endif /* PyObject_Unicode.proto */ #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyObject_Unicode(obj)\ (likely(PyUnicode_CheckExact(obj)) ? __Pyx_NewRef(obj) : PyObject_Str(obj)) #else #define __Pyx_PyObject_Unicode(obj)\ (likely(PyUnicode_CheckExact(obj)) ? __Pyx_NewRef(obj) : PyObject_Unicode(obj)) #endif /* PyObject_GenericGetAttrNoDict.proto */ #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name); #else #define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr #endif /* PyObject_GenericGetAttr.proto */ #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name); #else #define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr #endif /* SetupReduce.proto */ static int __Pyx_setup_reduce(PyObject* type_obj); /* SetVTable.proto */ static int __Pyx_SetVtable(PyObject *dict, void *vtable); /* TypeImport.proto */ #ifndef __PYX_HAVE_RT_ImportType_proto #define __PYX_HAVE_RT_ImportType_proto enum __Pyx_ImportType_CheckSize { __Pyx_ImportType_CheckSize_Error = 0, __Pyx_ImportType_CheckSize_Warn = 1, __Pyx_ImportType_CheckSize_Ignore = 2 }; static PyTypeObject *__Pyx_ImportType(PyObject* module, const char *module_name, const char *class_name, size_t size, enum __Pyx_ImportType_CheckSize check_size); #endif /* CalculateMetaclass.proto */ static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases); /* SetNameInClass.proto */ #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 #define __Pyx_SetNameInClass(ns, name, value)\ (likely(PyDict_CheckExact(ns)) ? _PyDict_SetItem_KnownHash(ns, name, value, ((PyASCIIObject *) name)->hash) : PyObject_SetItem(ns, name, value)) #elif CYTHON_COMPILING_IN_CPYTHON #define __Pyx_SetNameInClass(ns, name, value)\ (likely(PyDict_CheckExact(ns)) ? PyDict_SetItem(ns, name, value) : PyObject_SetItem(ns, name, value)) #else #define __Pyx_SetNameInClass(ns, name, value) PyObject_SetItem(ns, name, value) #endif /* Py3ClassCreate.proto */ static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc); static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict, PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass); /* CLineInTraceback.proto */ #ifdef CYTHON_CLINE_IN_TRACEBACK #define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0) #else static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line); #endif /* CodeObjectCache.proto */ typedef struct { PyCodeObject* code_object; int code_line; } __Pyx_CodeObjectCacheEntry; struct __Pyx_CodeObjectCache { int count; int max_count; __Pyx_CodeObjectCacheEntry* entries; }; static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL}; static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); static PyCodeObject *__pyx_find_code_object(int code_line); static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); /* AddTraceback.proto */ static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename); #if PY_MAJOR_VERSION < 3 static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags); static void __Pyx_ReleaseBuffer(Py_buffer *view); #else #define __Pyx_GetBuffer PyObject_GetBuffer #define __Pyx_ReleaseBuffer PyBuffer_Release #endif /* BufferStructDeclare.proto */ typedef struct { Py_ssize_t shape, strides, suboffsets; } __Pyx_Buf_DimInfo; typedef struct { size_t refcount; Py_buffer pybuffer; } __Pyx_Buffer; typedef struct { __Pyx_Buffer *rcbuffer; char *data; __Pyx_Buf_DimInfo diminfo[8]; } __Pyx_LocalBuf_ND; /* MemviewSliceIsContig.proto */ static int __pyx_memviewslice_is_contig(const __Pyx_memviewslice mvs, char order, int ndim); /* OverlappingSlices.proto */ static int __pyx_slices_overlap(__Pyx_memviewslice *slice1, __Pyx_memviewslice *slice2, int ndim, size_t itemsize); /* Capsule.proto */ static CYTHON_INLINE PyObject *__pyx_capsule_create(void *p, const char *sig); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_MODE(MODE value); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_WAVELET_NAME(WAVELET_NAME value); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value); /* RealImag.proto */ #if CYTHON_CCOMPLEX #ifdef __cplusplus #define __Pyx_CREAL(z) ((z).real()) #define __Pyx_CIMAG(z) ((z).imag()) #else #define __Pyx_CREAL(z) (__real__(z)) #define __Pyx_CIMAG(z) (__imag__(z)) #endif #else #define __Pyx_CREAL(z) ((z).real) #define __Pyx_CIMAG(z) ((z).imag) #endif #if defined(__cplusplus) && CYTHON_CCOMPLEX\ && (defined(_WIN32) || defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 5 || __GNUC__ == 4 && __GNUC_MINOR__ >= 4 )) || __cplusplus >= 201103) #define __Pyx_SET_CREAL(z,x) ((z).real(x)) #define __Pyx_SET_CIMAG(z,y) ((z).imag(y)) #else #define __Pyx_SET_CREAL(z,x) __Pyx_CREAL(z) = (x) #define __Pyx_SET_CIMAG(z,y) __Pyx_CIMAG(z) = (y) #endif /* Arithmetic.proto */ #if CYTHON_CCOMPLEX #define __Pyx_c_eq_double(a, b) ((a)==(b)) #define __Pyx_c_sum_double(a, b) ((a)+(b)) #define __Pyx_c_diff_double(a, b) ((a)-(b)) #define __Pyx_c_prod_double(a, b) ((a)*(b)) #define __Pyx_c_quot_double(a, b) ((a)/(b)) #define __Pyx_c_neg_double(a) (-(a)) #ifdef __cplusplus #define __Pyx_c_is_zero_double(z) ((z)==(double)0) #define __Pyx_c_conj_double(z) (::std::conj(z)) #if 1 #define __Pyx_c_abs_double(z) (::std::abs(z)) #define __Pyx_c_pow_double(a, b) (::std::pow(a, b)) #endif #else #define __Pyx_c_is_zero_double(z) ((z)==0) #define __Pyx_c_conj_double(z) (conj(z)) #if 1 #define __Pyx_c_abs_double(z) (cabs(z)) #define __Pyx_c_pow_double(a, b) (cpow(a, b)) #endif #endif #else static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex); static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex); #if 1 static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex, __pyx_t_double_complex); #endif #endif /* MemviewDtypeToObject.proto */ static CYTHON_INLINE PyObject *__pyx_memview_get_nn___pyx_t_5numpy_float64_t(const char *itemp); static CYTHON_INLINE int __pyx_memview_set_nn___pyx_t_5numpy_float64_t(const char *itemp, PyObject *obj); /* MemviewDtypeToObject.proto */ static CYTHON_INLINE PyObject *__pyx_memview_get_nn___pyx_t_5numpy_float32_t(const char *itemp); static CYTHON_INLINE int __pyx_memview_set_nn___pyx_t_5numpy_float32_t(const char *itemp, PyObject *obj); /* Arithmetic.proto */ #if CYTHON_CCOMPLEX #define __Pyx_c_eq_float(a, b) ((a)==(b)) #define __Pyx_c_sum_float(a, b) ((a)+(b)) #define __Pyx_c_diff_float(a, b) ((a)-(b)) #define __Pyx_c_prod_float(a, b) ((a)*(b)) #define __Pyx_c_quot_float(a, b) ((a)/(b)) #define __Pyx_c_neg_float(a) (-(a)) #ifdef __cplusplus #define __Pyx_c_is_zero_float(z) ((z)==(float)0) #define __Pyx_c_conj_float(z) (::std::conj(z)) #if 1 #define __Pyx_c_abs_float(z) (::std::abs(z)) #define __Pyx_c_pow_float(a, b) (::std::pow(a, b)) #endif #else #define __Pyx_c_is_zero_float(z) ((z)==0) #define __Pyx_c_conj_float(z) (conjf(z)) #if 1 #define __Pyx_c_abs_float(z) (cabsf(z)) #define __Pyx_c_pow_float(a, b) (cpowf(a, b)) #endif #endif #else static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex); static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex); #if 1 static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex, __pyx_t_float_complex); #endif #endif /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value); /* MemviewSliceCopyTemplate.proto */ static __Pyx_memviewslice __pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs, const char *mode, int ndim, size_t sizeof_dtype, int contig_flag, int dtype_is_object); /* TypeInfoToFormat.proto */ struct __pyx_typeinfo_string { char string[3]; }; static struct __pyx_typeinfo_string __Pyx_TypeInfoToFormat(__Pyx_TypeInfo *type); /* CIntFromPy.proto */ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE unsigned int __Pyx_PyInt_As_unsigned_int(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE WAVELET_NAME __Pyx_PyInt_As_WAVELET_NAME(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *); /* IsLittleEndian.proto */ static CYTHON_INLINE int __Pyx_Is_Little_Endian(void); /* BufferFormatCheck.proto */ static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts); static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx, __Pyx_BufFmt_StackElem* stack, __Pyx_TypeInfo* type); /* TypeInfoCompare.proto */ static int __pyx_typeinfo_cmp(__Pyx_TypeInfo *a, __Pyx_TypeInfo *b); /* MemviewSliceValidateAndInit.proto */ static int __Pyx_ValidateAndInit_memviewslice( int *axes_specs, int c_or_f_flag, int buf_flags, int ndim, __Pyx_TypeInfo *dtype, __Pyx_BufFmt_StackElem stack[], __Pyx_memviewslice *memviewslice, PyObject *original_obj); /* ObjectToMemviewSlice.proto */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(PyObject *, int writable_flag); /* ObjectToMemviewSlice.proto */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(PyObject *, int writable_flag); /* CheckBinaryVersion.proto */ static int __Pyx_check_binary_version(void); /* PyObjectSetAttrStr.proto */ #if CYTHON_USE_TYPE_SLOTS #define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o, n, NULL) static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value); #else #define __Pyx_PyObject_DelAttrStr(o,n) PyObject_DelAttr(o,n) #define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v) #endif /* VoidPtrExport.proto */ static int __Pyx_ExportVoidPtr(PyObject *name, void *p, const char *sig); /* FunctionExport.proto */ static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *sig); /* FunctionImport.proto */ static int __Pyx_ImportFunction(PyObject *module, const char *funcname, void (**f)(void), const char *sig); /* InitStrings.proto */ static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *__pyx_v_self); /* proto*/ static char *__pyx_memoryview_get_item_pointer(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index); /* proto*/ static PyObject *__pyx_memoryview_is_slice(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj); /* proto*/ static PyObject *__pyx_memoryview_setitem_slice_assignment(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_dst, PyObject *__pyx_v_src); /* proto*/ static PyObject *__pyx_memoryview_setitem_slice_assign_scalar(struct __pyx_memoryview_obj *__pyx_v_self, struct __pyx_memoryview_obj *__pyx_v_dst, PyObject *__pyx_v_value); /* proto*/ static PyObject *__pyx_memoryview_setitem_indexed(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /* proto*/ static PyObject *__pyx_memoryview_convert_item_to_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp); /* proto*/ static PyObject *__pyx_memoryview_assign_item_from_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value); /* proto*/ static PyObject *__pyx_memoryviewslice_convert_item_to_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp); /* proto*/ static PyObject *__pyx_memoryviewslice_assign_item_from_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value); /* proto*/ /* Module declarations from 'pywt._extensions' */ /* Module declarations from 'pywt._extensions.common' */ /* Module declarations from 'pywt._extensions.wavelet' */ /* Module declarations from 'cpython.buffer' */ /* Module declarations from 'libc.string' */ /* Module declarations from 'libc.stdio' */ /* Module declarations from '__builtin__' */ /* Module declarations from 'cpython.type' */ static PyTypeObject *__pyx_ptype_7cpython_4type_type = 0; /* Module declarations from 'cpython' */ /* Module declarations from 'cpython.object' */ /* Module declarations from 'cpython.ref' */ /* Module declarations from 'cpython.mem' */ /* Module declarations from 'numpy' */ /* Module declarations from 'numpy' */ static PyTypeObject *__pyx_ptype_5numpy_dtype = 0; static PyTypeObject *__pyx_ptype_5numpy_flatiter = 0; static PyTypeObject *__pyx_ptype_5numpy_broadcast = 0; static PyTypeObject *__pyx_ptype_5numpy_ndarray = 0; static PyTypeObject *__pyx_ptype_5numpy_ufunc = 0; static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *, char *, char *, int *); /*proto*/ /* Module declarations from 'pywt._extensions.c_wt' */ /* Module declarations from 'pywt._extensions._dwt' */ static PyObject *(*__pyx_fuse_0__pyx_f_4pywt_11_extensions_4_dwt_upcoef)(int, __Pyx_memviewslice, struct WaveletObject *, int, size_t, int __pyx_skip_dispatch); /*proto*/ static PyObject *(*__pyx_fuse_1__pyx_f_4pywt_11_extensions_4_dwt_upcoef)(int, __Pyx_memviewslice, struct WaveletObject *, int, size_t, int __pyx_skip_dispatch); /*proto*/ static PyObject *(*__pyx_fuse_2__pyx_f_4pywt_11_extensions_4_dwt_upcoef)(int, __Pyx_memviewslice, struct WaveletObject *, int, size_t, int __pyx_skip_dispatch); /*proto*/ static PyObject *(*__pyx_fuse_3__pyx_f_4pywt_11_extensions_4_dwt_upcoef)(int, __Pyx_memviewslice, struct WaveletObject *, int, size_t, int __pyx_skip_dispatch); /*proto*/ /* Module declarations from 'pywt._extensions._cwt' */ static PyObject *(*__pyx_fuse_0__pyx_f_4pywt_11_extensions_4_cwt_cwt_psi_single)(__Pyx_memviewslice, struct ContinuousWaveletObject *, size_t, int __pyx_skip_dispatch); /*proto*/ static PyObject *(*__pyx_fuse_1__pyx_f_4pywt_11_extensions_4_cwt_cwt_psi_single)(__Pyx_memviewslice, struct ContinuousWaveletObject *, size_t, int __pyx_skip_dispatch); /*proto*/ /* Module declarations from 'libc.math' */ /* Module declarations from 'pywt._extensions._pywt' */ static PyTypeObject *__pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet = 0; static PyTypeObject *__pyx_ptype_4pywt_11_extensions_5_pywt_ContinuousWavelet = 0; static PyTypeObject *__pyx_array_type = 0; static PyTypeObject *__pyx_MemviewEnum_type = 0; static PyTypeObject *__pyx_memoryview_type = 0; static PyTypeObject *__pyx_memoryviewslice_type = 0; static int __pyx_v_4pywt_11_extensions_5_pywt_have_c99_complex; static PyObject *__pyx_v_4pywt_11_extensions_5_pywt___wname_to_code = 0; static PyObject *__pyx_v_4pywt_11_extensions_5_pywt___wfamily_list_short = 0; static PyObject *__pyx_v_4pywt_11_extensions_5_pywt___wfamily_list_long = 0; static PyObject *generic = 0; static PyObject *strided = 0; static PyObject *indirect = 0; static PyObject *contiguous = 0; static PyObject *indirect_contiguous = 0; static int __pyx_memoryview_thread_locks_used; static PyThread_type_lock __pyx_memoryview_thread_locks[8]; static PyArray_Descr *__pyx_f_4pywt_11_extensions_5_pywt__check_dtype(PyObject *, int __pyx_skip_dispatch); /*proto*/ static PyObject *__pyx_f_4pywt_11_extensions_5_pywt_c_wavelet_from_object(PyObject *); /*proto*/ static int __pyx_f_4pywt_11_extensions_5_pywt_is_discrete_wav(WAVELET_NAME); /*proto*/ static PyObject *__pyx_f_4pywt_11_extensions_5_pywt_wname_to_code(PyObject *); /*proto*/ static __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t __pyx_f_4pywt_11_extensions_5_pywt_get_keep_length(__pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t, int, __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t); /*proto*/ static __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t __pyx_f_4pywt_11_extensions_5_pywt_fix_output_length(__pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t, __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t); /*proto*/ static __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t __pyx_f_4pywt_11_extensions_5_pywt_get_right_extent_length(__pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t, __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t); /*proto*/ static PyObject *__pyx_f_4pywt_11_extensions_5_pywt_float64_array_to_list(double *, __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t); /*proto*/ static void __pyx_f_4pywt_11_extensions_5_pywt_copy_object_to_float64_array(PyObject *, double *); /*proto*/ static void __pyx_f_4pywt_11_extensions_5_pywt_copy_object_to_float32_array(PyObject *, float *); /*proto*/ static struct __pyx_array_obj *__pyx_array_new(PyObject *, Py_ssize_t, char *, char *, char *); /*proto*/ static void *__pyx_align_pointer(void *, size_t); /*proto*/ static PyObject *__pyx_memoryview_new(PyObject *, int, int, __Pyx_TypeInfo *); /*proto*/ static CYTHON_INLINE int __pyx_memoryview_check(PyObject *); /*proto*/ static PyObject *_unellipsify(PyObject *, int); /*proto*/ static PyObject *assert_direct_dimensions(Py_ssize_t *, int); /*proto*/ static struct __pyx_memoryview_obj *__pyx_memview_slice(struct __pyx_memoryview_obj *, PyObject *); /*proto*/ static int __pyx_memoryview_slice_memviewslice(__Pyx_memviewslice *, Py_ssize_t, Py_ssize_t, Py_ssize_t, int, int, int *, Py_ssize_t, Py_ssize_t, Py_ssize_t, int, int, int, int); /*proto*/ static char *__pyx_pybuffer_index(Py_buffer *, char *, Py_ssize_t, Py_ssize_t); /*proto*/ static int __pyx_memslice_transpose(__Pyx_memviewslice *); /*proto*/ static PyObject *__pyx_memoryview_fromslice(__Pyx_memviewslice, int, PyObject *(*)(char *), int (*)(char *, PyObject *), int); /*proto*/ static __Pyx_memviewslice *__pyx_memoryview_get_slice_from_memoryview(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/ static void __pyx_memoryview_slice_copy(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/ static PyObject *__pyx_memoryview_copy_object(struct __pyx_memoryview_obj *); /*proto*/ static PyObject *__pyx_memoryview_copy_object_from_slice(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/ static Py_ssize_t abs_py_ssize_t(Py_ssize_t); /*proto*/ static char __pyx_get_best_slice_order(__Pyx_memviewslice *, int); /*proto*/ static void _copy_strided_to_strided(char *, Py_ssize_t *, char *, Py_ssize_t *, Py_ssize_t *, Py_ssize_t *, int, size_t); /*proto*/ static void copy_strided_to_strided(__Pyx_memviewslice *, __Pyx_memviewslice *, int, size_t); /*proto*/ static Py_ssize_t __pyx_memoryview_slice_get_size(__Pyx_memviewslice *, int); /*proto*/ static Py_ssize_t __pyx_fill_contig_strides_array(Py_ssize_t *, Py_ssize_t *, Py_ssize_t, int, char); /*proto*/ static void *__pyx_memoryview_copy_data_to_temp(__Pyx_memviewslice *, __Pyx_memviewslice *, char, int); /*proto*/ static int __pyx_memoryview_err_extents(int, Py_ssize_t, Py_ssize_t); /*proto*/ static int __pyx_memoryview_err_dim(PyObject *, char *, int); /*proto*/ static int __pyx_memoryview_err(PyObject *, char *); /*proto*/ static int __pyx_memoryview_copy_contents(__Pyx_memviewslice, __Pyx_memviewslice, int, int, int); /*proto*/ static void __pyx_memoryview_broadcast_leading(__Pyx_memviewslice *, int, int); /*proto*/ static void __pyx_memoryview_refcount_copying(__Pyx_memviewslice *, int, int, int); /*proto*/ static void __pyx_memoryview_refcount_objects_in_slice_with_gil(char *, Py_ssize_t *, Py_ssize_t *, int, int); /*proto*/ static void __pyx_memoryview_refcount_objects_in_slice(char *, Py_ssize_t *, Py_ssize_t *, int, int); /*proto*/ static void __pyx_memoryview_slice_assign_scalar(__Pyx_memviewslice *, int, size_t, void *, int); /*proto*/ static void __pyx_memoryview__slice_assign_scalar(char *, Py_ssize_t *, Py_ssize_t *, int, size_t, void *); /*proto*/ static PyObject *__pyx_unpickle_Enum__set_state(struct __pyx_MemviewEnum_obj *, PyObject *); /*proto*/ static PyObject *__pyx_format_from_typeinfo(__Pyx_TypeInfo *); /*proto*/ static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t = { "float64_t", NULL, sizeof(__pyx_t_5numpy_float64_t), { 0 }, 0, 'R', 0, 0 }; static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t = { "float32_t", NULL, sizeof(__pyx_t_5numpy_float32_t), { 0 }, 0, 'R', 0, 0 }; #define __Pyx_MODULE_NAME "pywt._extensions._pywt" extern int __pyx_module_is_main_pywt___extensions___pywt; int __pyx_module_is_main_pywt___extensions___pywt = 0; /* Implementation of 'pywt._extensions._pywt' */ static PyObject *__pyx_builtin_object; static PyObject *__pyx_builtin_ValueError; static PyObject *__pyx_builtin_AttributeError; static PyObject *__pyx_builtin_DeprecationWarning; static PyObject *__pyx_builtin_KeyError; static PyObject *__pyx_builtin_TypeError; static PyObject *__pyx_builtin_MemoryError; static PyObject *__pyx_builtin_FutureWarning; static PyObject *__pyx_builtin_range; static PyObject *__pyx_builtin_RuntimeError; static PyObject *__pyx_builtin_ImportError; static PyObject *__pyx_builtin_enumerate; static PyObject *__pyx_builtin_Ellipsis; static PyObject *__pyx_builtin_id; static PyObject *__pyx_builtin_IndexError; static const char __pyx_k_O[] = "O"; static const char __pyx_k_T[] = "T{"; static const char __pyx_k_c[] = "c"; static const char __pyx_k_m[] = "m"; static const char __pyx_k_s[] = "(%s)"; static const char __pyx_k_x[] = "x"; static const char __pyx_k__3[] = "_"; static const char __pyx_k__9[] = ""; static const char __pyx_k_db[] = "db"; static const char __pyx_k_id[] = "id"; static const char __pyx_k_np[] = "np"; static const char __pyx_k_re[] = "re"; static const char __pyx_k__18[] = "\n"; static const char __pyx_k__51[] = "^"; static const char __pyx_k__52[] = ":"; static const char __pyx_k__53[] = "}"; static const char __pyx_k__54[] = ","; static const char __pyx_k_all[] = "all"; static const char __pyx_k_arr[] = "arr"; static const char __pyx_k_cpd[] = "cpd"; static const char __pyx_k_db1[] = "db1"; static const char __pyx_k_db2[] = "db2"; static const char __pyx_k_db3[] = "db3"; static const char __pyx_k_db4[] = "db4"; static const char __pyx_k_db5[] = "db5"; static const char __pyx_k_db6[] = "db6"; static const char __pyx_k_db7[] = "db7"; static const char __pyx_k_db8[] = "db8"; static const char __pyx_k_db9[] = "db9"; static const char __pyx_k_doc[] = "__doc__"; static const char __pyx_k_msg[] = "msg"; static const char __pyx_k_new[] = "new"; static const char __pyx_k_obj[] = "obj"; static const char __pyx_k_old[] = "old"; static const char __pyx_k_per[] = "per"; static const char __pyx_k_ppd[] = "ppd"; static const char __pyx_k_sp1[] = "sp1"; static const char __pyx_k_sym[] = "sym"; static const char __pyx_k_zpd[] = "zpd"; static const char __pyx_k_Haar[] = "Haar"; static const char __pyx_k_attr[] = "attr"; static const char __pyx_k_base[] = "base"; static const char __pyx_k_bior[] = "bior"; static const char __pyx_k_cgau[] = "cgau"; static const char __pyx_k_cmor[] = "cmor"; static const char __pyx_k_coif[] = "coif"; static const char __pyx_k_db10[] = "db10"; static const char __pyx_k_db11[] = "db11"; static const char __pyx_k_db12[] = "db12"; static const char __pyx_k_db13[] = "db13"; static const char __pyx_k_db14[] = "db14"; static const char __pyx_k_db15[] = "db15"; static const char __pyx_k_db16[] = "db16"; static const char __pyx_k_db17[] = "db17"; static const char __pyx_k_db18[] = "db18"; static const char __pyx_k_db19[] = "db19"; static const char __pyx_k_db20[] = "db20"; static const char __pyx_k_db21[] = "db21"; static const char __pyx_k_db22[] = "db22"; static const char __pyx_k_db23[] = "db23"; static const char __pyx_k_db24[] = "db24"; static const char __pyx_k_db25[] = "db25"; static const char __pyx_k_db26[] = "db26"; static const char __pyx_k_db27[] = "db27"; static const char __pyx_k_db28[] = "db28"; static const char __pyx_k_db29[] = "db29"; static const char __pyx_k_db30[] = "db30"; static const char __pyx_k_db31[] = "db31"; static const char __pyx_k_db32[] = "db32"; static const char __pyx_k_db33[] = "db33"; static const char __pyx_k_db34[] = "db34"; static const char __pyx_k_db35[] = "db35"; static const char __pyx_k_db36[] = "db36"; static const char __pyx_k_db37[] = "db37"; static const char __pyx_k_db38[] = "db38"; static const char __pyx_k_dict[] = "__dict__"; static const char __pyx_k_dmey[] = "dmey"; static const char __pyx_k_fbsp[] = "fbsp"; static const char __pyx_k_gaus[] = "gaus"; static const char __pyx_k_haar[] = "haar"; static const char __pyx_k_half[] = "half"; static const char __pyx_k_join[] = "join"; static const char __pyx_k_keep[] = "keep"; static const char __pyx_k_kind[] = "kind"; static const char __pyx_k_main[] = "__main__"; static const char __pyx_k_mexh[] = "mexh"; static const char __pyx_k_mode[] = "mode"; static const char __pyx_k_morl[] = "morl"; static const char __pyx_k_name[] = "name"; static const char __pyx_k_ndim[] = "ndim"; static const char __pyx_k_pack[] = "pack"; static const char __pyx_k_rbio[] = "rbio"; static const char __pyx_k_self[] = "self"; static const char __pyx_k_shan[] = "shan"; static const char __pyx_k_size[] = "size"; static const char __pyx_k_sort[] = "sort"; static const char __pyx_k_step[] = "step"; static const char __pyx_k_stop[] = "stop"; static const char __pyx_k_sym2[] = "sym2"; static const char __pyx_k_sym3[] = "sym3"; static const char __pyx_k_sym4[] = "sym4"; static const char __pyx_k_sym5[] = "sym5"; static const char __pyx_k_sym6[] = "sym6"; static const char __pyx_k_sym7[] = "sym7"; static const char __pyx_k_sym8[] = "sym8"; static const char __pyx_k_sym9[] = "sym9"; static const char __pyx_k_test[] = "__test__"; static const char __pyx_k_warn[] = "warn"; static const char __pyx_k_zero[] = "zero"; static const char __pyx_k_ASCII[] = "ASCII"; static const char __pyx_k_D_d_d[] = "\\D+(\\d+\\.*\\d*)+"; static const char __pyx_k_MODES[] = "MODES"; static const char __pyx_k_Modes[] = "Modes"; static const char __pyx_k_all_2[] = "__all__"; static const char __pyx_k_cgau1[] = "cgau1"; static const char __pyx_k_cgau2[] = "cgau2"; static const char __pyx_k_cgau3[] = "cgau3"; static const char __pyx_k_cgau4[] = "cgau4"; static const char __pyx_k_cgau5[] = "cgau5"; static const char __pyx_k_cgau6[] = "cgau6"; static const char __pyx_k_cgau7[] = "cgau7"; static const char __pyx_k_cgau8[] = "cgau8"; static const char __pyx_k_class[] = "__class__"; static const char __pyx_k_coif1[] = "coif1"; static const char __pyx_k_coif2[] = "coif2"; static const char __pyx_k_coif3[] = "coif3"; static const char __pyx_k_coif4[] = "coif4"; static const char __pyx_k_coif5[] = "coif5"; static const char __pyx_k_coif6[] = "coif6"; static const char __pyx_k_coif7[] = "coif7"; static const char __pyx_k_coif8[] = "coif8"; static const char __pyx_k_coif9[] = "coif9"; static const char __pyx_k_dtype[] = "dtype"; static const char __pyx_k_error[] = "error"; static const char __pyx_k_flags[] = "flags"; static const char __pyx_k_gaus1[] = "gaus1"; static const char __pyx_k_gaus2[] = "gaus2"; static const char __pyx_k_gaus3[] = "gaus3"; static const char __pyx_k_gaus4[] = "gaus4"; static const char __pyx_k_gaus5[] = "gaus5"; static const char __pyx_k_gaus6[] = "gaus6"; static const char __pyx_k_gaus7[] = "gaus7"; static const char __pyx_k_gaus8[] = "gaus8"; static const char __pyx_k_index[] = "index"; static const char __pyx_k_level[] = "level"; static const char __pyx_k_lower[] = "lower"; static const char __pyx_k_modes[] = "modes"; static const char __pyx_k_new_2[] = "__new__"; static const char __pyx_k_numpy[] = "numpy"; static const char __pyx_k_range[] = "range"; static const char __pyx_k_shape[] = "shape"; static const char __pyx_k_short[] = "short"; static const char __pyx_k_start[] = "start"; static const char __pyx_k_sym10[] = "sym10"; static const char __pyx_k_sym11[] = "sym11"; static const char __pyx_k_sym12[] = "sym12"; static const char __pyx_k_sym13[] = "sym13"; static const char __pyx_k_sym14[] = "sym14"; static const char __pyx_k_sym15[] = "sym15"; static const char __pyx_k_sym16[] = "sym16"; static const char __pyx_k_sym17[] = "sym17"; static const char __pyx_k_sym18[] = "sym18"; static const char __pyx_k_sym19[] = "sym19"; static const char __pyx_k_sym20[] = "sym20"; static const char __pyx_k_zeros[] = "zeros"; static const char __pyx_k_append[] = "append"; static const char __pyx_k_coif10[] = "coif10"; static const char __pyx_k_coif11[] = "coif11"; static const char __pyx_k_coif12[] = "coif12"; static const char __pyx_k_coif13[] = "coif13"; static const char __pyx_k_coif14[] = "coif14"; static const char __pyx_k_coif15[] = "coif15"; static const char __pyx_k_coif16[] = "coif16"; static const char __pyx_k_coif17[] = "coif17"; static const char __pyx_k_dec_hi[] = "dec_hi"; static const char __pyx_k_dec_lo[] = "dec_lo"; static const char __pyx_k_encode[] = "encode"; static const char __pyx_k_family[] = "family"; static const char __pyx_k_format[] = "format"; static const char __pyx_k_import[] = "__import__"; static const char __pyx_k_length[] = "length"; static const char __pyx_k_module[] = "module"; static const char __pyx_k_name_2[] = "__name__"; static const char __pyx_k_object[] = "object"; static const char __pyx_k_pickle[] = "pickle"; static const char __pyx_k_rec_hi[] = "rec_hi"; static const char __pyx_k_rec_lo[] = "rec_lo"; static const char __pyx_k_reduce[] = "__reduce__"; static const char __pyx_k_rstrip[] = "rstrip"; static const char __pyx_k_smooth[] = "smooth"; static const char __pyx_k_struct[] = "struct"; static const char __pyx_k_unpack[] = "unpack"; static const char __pyx_k_update[] = "update"; static const char __pyx_k_Modes_2[] = "_Modes"; static const char __pyx_k_Symlets[] = "Symlets"; static const char __pyx_k_Wavelet[] = "Wavelet"; static const char __pyx_k_asarray[] = "asarray"; static const char __pyx_k_bior1_1[] = "bior1.1"; static const char __pyx_k_bior1_3[] = "bior1.3"; static const char __pyx_k_bior1_5[] = "bior1.5"; static const char __pyx_k_bior2_2[] = "bior2.2"; static const char __pyx_k_bior2_4[] = "bior2.4"; static const char __pyx_k_bior2_6[] = "bior2.6"; static const char __pyx_k_bior2_8[] = "bior2.8"; static const char __pyx_k_bior3_1[] = "bior3.1"; static const char __pyx_k_bior3_3[] = "bior3.3"; static const char __pyx_k_bior3_5[] = "bior3.5"; static const char __pyx_k_bior3_7[] = "bior3.7"; static const char __pyx_k_bior3_9[] = "bior3.9"; static const char __pyx_k_bior4_4[] = "bior4.4"; static const char __pyx_k_bior5_5[] = "bior5.5"; static const char __pyx_k_bior6_8[] = "bior6.8"; static const char __pyx_k_compile[] = "compile"; static const char __pyx_k_dec_len[] = "dec_len"; static const char __pyx_k_findall[] = "findall"; static const char __pyx_k_float32[] = "float32"; static const char __pyx_k_float64[] = "float64"; static const char __pyx_k_fortran[] = "fortran"; static const char __pyx_k_getattr[] = "__getattr__"; static const char __pyx_k_memview[] = "memview"; static const char __pyx_k_prepare[] = "__prepare__"; static const char __pyx_k_rbio1_1[] = "rbio1.1"; static const char __pyx_k_rbio1_3[] = "rbio1.3"; static const char __pyx_k_rbio1_5[] = "rbio1.5"; static const char __pyx_k_rbio2_2[] = "rbio2.2"; static const char __pyx_k_rbio2_4[] = "rbio2.4"; static const char __pyx_k_rbio2_6[] = "rbio2.6"; static const char __pyx_k_rbio2_8[] = "rbio2.8"; static const char __pyx_k_rbio3_1[] = "rbio3.1"; static const char __pyx_k_rbio3_3[] = "rbio3.3"; static const char __pyx_k_rbio3_5[] = "rbio3.5"; static const char __pyx_k_rbio3_7[] = "rbio3.7"; static const char __pyx_k_rbio3_9[] = "rbio3.9"; static const char __pyx_k_rbio4_4[] = "rbio4.4"; static const char __pyx_k_rbio5_5[] = "rbio5.5"; static const char __pyx_k_rbio6_8[] = "rbio6.8"; static const char __pyx_k_reflect[] = "reflect"; static const char __pyx_k_unknown[] = "unknown"; static const char __pyx_k_wavelet[] = "wavelet"; static const char __pyx_k_CWT_True[] = " CWT: True"; static const char __pyx_k_Coiflets[] = "Coiflets"; static const char __pyx_k_DWT_True[] = " DWT: True"; static const char __pyx_k_Ellipsis[] = "Ellipsis"; static const char __pyx_k_Gaussian[] = "Gaussian"; static const char __pyx_k_KeyError[] = "KeyError"; static const char __pyx_k_constant[] = "constant"; static const char __pyx_k_discrete[] = "discrete"; static const char __pyx_k_families[] = "families"; static const char __pyx_k_getstate[] = "__getstate__"; static const char __pyx_k_itemsize[] = "itemsize"; static const char __pyx_k_linspace[] = "linspace"; static const char __pyx_k_module_2[] = "__module__"; static const char __pyx_k_new_mode[] = "new_mode"; static const char __pyx_k_periodic[] = "periodic"; static const char __pyx_k_pyx_capi[] = "__pyx_capi__"; static const char __pyx_k_pyx_type[] = "__pyx_type"; static const char __pyx_k_qualname[] = "__qualname__"; static const char __pyx_k_setstate[] = "__setstate__"; static const char __pyx_k_symmetry[] = "symmetry"; static const char __pyx_k_warnings[] = "warnings"; static const char __pyx_k_wavelets[] = "wavelets"; static const char __pyx_k_wavelist[] = "wavelist"; static const char __pyx_k_CWT_False[] = " CWT: False"; static const char __pyx_k_DWT_False[] = " DWT: False"; static const char __pyx_k_TypeError[] = "TypeError"; static const char __pyx_k_Wavelet_s[] = "Wavelet %s"; static const char __pyx_k_classname[] = "classname"; static const char __pyx_k_complex64[] = "complex64"; static const char __pyx_k_enumerate[] = "enumerate"; static const char __pyx_k_metaclass[] = "__metaclass__"; static const char __pyx_k_old_modes[] = "_old_modes"; static const char __pyx_k_pyx_state[] = "__pyx_state"; static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; static const char __pyx_k_symmetric[] = "symmetric"; static const char __pyx_k_Daubechies[] = "Daubechies"; static const char __pyx_k_IndexError[] = "IndexError"; static const char __pyx_k_Symmetry_s[] = " Symmetry: %s"; static const char __pyx_k_ValueError[] = "ValueError"; static const char __pyx_k_asymmetric[] = "asymmetric"; static const char __pyx_k_check_kind[] = "_check_kind"; static const char __pyx_k_complex128[] = "complex128"; static const char __pyx_k_complex256[] = "complex256"; static const char __pyx_k_continuous[] = "continuous"; static const char __pyx_k_left_bound[] = "left_bound"; static const char __pyx_k_orthogonal[] = "orthogonal"; static const char __pyx_k_pyx_result[] = "__pyx_result"; static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; static const char __pyx_k_startswith[] = "startswith"; static const char __pyx_k_ImportError[] = "ImportError"; static const char __pyx_k_MemoryError[] = "MemoryError"; static const char __pyx_k_PickleError[] = "PickleError"; static const char __pyx_k_antireflect[] = "antireflect"; static const char __pyx_k_complex_cwt[] = "complex_cwt"; static const char __pyx_k_concatenate[] = "concatenate"; static const char __pyx_k_cwt_pattern[] = "cwt_pattern"; static const char __pyx_k_family_code[] = "family_code"; static const char __pyx_k_family_name[] = "family_name"; static const char __pyx_k_filter_bank[] = "filter_bank"; static const char __pyx_k_from_object[] = "from_object"; static const char __pyx_k_is_discrete[] = "is_discrete"; static const char __pyx_k_keep_length[] = "keep_length"; static const char __pyx_k_Biorthogonal[] = "Biorthogonal"; static const char __pyx_k_Invalid_mode[] = "Invalid mode."; static const char __pyx_k_Orthogonal_s[] = " Orthogonal: %s"; static const char __pyx_k_RuntimeError[] = "RuntimeError"; static const char __pyx_k_Short_name_s[] = " Short name: %s"; static const char __pyx_k_biorthogonal[] = "biorthogonal"; static const char __pyx_k_getattribute[] = "__getattribute__"; static const char __pyx_k_pyx_checksum[] = "__pyx_checksum"; static const char __pyx_k_sorting_list[] = "sorting_list"; static const char __pyx_k_stringsource[] = "stringsource"; static const char __pyx_k_Complex_CWT_s[] = " Complex CWT: %s"; static const char __pyx_k_Family_name_s[] = " Family name: %s"; static const char __pyx_k_FutureWarning[] = "FutureWarning"; static const char __pyx_k_antisymmetric[] = "antisymmetric"; static const char __pyx_k_family_number[] = "family_number"; static const char __pyx_k_periodization[] = "periodization"; static const char __pyx_k_pyx_getbuffer[] = "__pyx_getbuffer"; static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; static const char __pyx_k_AttributeError[] = "AttributeError"; static const char __pyx_k_Biorthogonal_s[] = " Biorthogonal: %s"; static const char __pyx_k_Morlet_wavelet[] = "Morlet wavelet"; static const char __pyx_k_anti_symmetric[] = "anti-symmetric"; static const char __pyx_k_near_symmetric[] = "near symmetric"; static const char __pyx_k_DeprecatedMODES[] = "_DeprecatedMODES"; static const char __pyx_k_Modes___getattr[] = "_Modes.__getattr__"; static const char __pyx_k_View_MemoryView[] = "View.MemoryView"; static const char __pyx_k_allocate_buffer[] = "allocate_buffer"; static const char __pyx_k_dtype_is_object[] = "dtype_is_object"; static const char __pyx_k_pyx_PickleError[] = "__pyx_PickleError"; static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; static const char __pyx_k_Filters_length_d[] = " Filters length: %d"; static const char __pyx_k_Shannon_wavelets[] = "Shannon wavelets"; static const char __pyx_k_have_c99_complex[] = "have_c99_complex"; static const char __pyx_k_ContinuousWavelet[] = "ContinuousWavelet"; static const char __pyx_k_Modes_from_object[] = "_Modes.from_object"; static const char __pyx_k_families_line_256[] = "families (line 256)"; static const char __pyx_k_pyx_unpickle_Enum[] = "__pyx_unpickle_Enum"; static const char __pyx_k_short_family_name[] = "short_family_name"; static const char __pyx_k_wavelist_line_184[] = "wavelist (line 184)"; static const char __pyx_k_DeprecationWarning[] = "DeprecationWarning"; static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; static const char __pyx_k_get_filters_coeffs[] = "get_filters_coeffs"; static const char __pyx_k_strided_and_direct[] = ""; static const char __pyx_k_ContinuousWavelet_s[] = "ContinuousWavelet %s"; static const char __pyx_k_Mexican_hat_wavelet[] = "Mexican hat wavelet"; static const char __pyx_k_Unknown_mode_name_s[] = "Unknown mode name '%s'."; static const char __pyx_k_inverse_filter_bank[] = "inverse_filter_bank"; static const char __pyx_k_wavelet_from_object[] = "wavelet_from_object"; static const char __pyx_k_Reverse_biorthogonal[] = "Reverse biorthogonal"; static const char __pyx_k_attr_deprecation_msg[] = "_attr_deprecation_msg"; static const char __pyx_k_strided_and_indirect[] = ""; static const char __pyx_k_contiguous_and_direct[] = ""; static const char __pyx_k_Invalid_wavelet_name_s[] = "Invalid wavelet name '%s'."; static const char __pyx_k_MemoryView_of_r_object[] = ""; static const char __pyx_k_pywt__extensions__pywt[] = "pywt._extensions._pywt"; static const char __pyx_k_Complex_Morlet_wavelets[] = "Complex Morlet wavelets"; static const char __pyx_k_MemoryView_of_r_at_0x_x[] = ""; static const char __pyx_k_contiguous_and_indirect[] = ""; static const char __pyx_k_Cannot_index_with_type_s[] = "Cannot index with type '%s'"; static const char __pyx_k_Wavelet_wavefun_line_547[] = "Wavelet.wavefun (line 547)"; static const char __pyx_k_Complex_Gaussian_wavelets[] = "Complex Gaussian wavelets"; static const char __pyx_k_DeprecatedMODES___getattr[] = "_DeprecatedMODES.__getattr__"; static const char __pyx_k_DiscreteContinuousWavelet[] = "DiscreteContinuousWavelet"; static const char __pyx_k_Invalid_shape_in_axis_d_d[] = "Invalid shape in axis %d: %d."; static const char __pyx_k_module_classname_name_name[] = "{module}.{classname}(name='{name}')"; static const char __pyx_k_pywt__extensions__pywt_pyx[] = "pywt/_extensions/_pywt.pyx"; static const char __pyx_k_Frequency_B_Spline_wavelets[] = "Frequency B-Spline wavelets"; static const char __pyx_k_Invalid_short_family_name_s[] = "Invalid short family name '%s'."; static const char __pyx_k_itemsize_0_for_cython_array[] = "itemsize <= 0 for cython.array"; static const char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous"; static const char __pyx_k_wavelist_locals__check_kind[] = "wavelist.._check_kind"; static const char __pyx_k_Unrecognized_value_for_kind_s[] = "Unrecognized value for `kind`: %s"; static const char __pyx_k_unable_to_allocate_array_data[] = "unable to allocate array data."; static const char __pyx_k_DeprecatedMODES___getattribute[] = "_DeprecatedMODES.__getattribute__"; static const char __pyx_k_strided_and_direct_or_indirect[] = ""; static const char __pyx_k_All_filters_in_filter_bank_must[] = "All filters in filter bank must be 1D."; static const char __pyx_k_Because_the_most_common_and_pra[] = "\n Because the most common and practical way of representing digital signals\n in computer science is with finite arrays of values, some extrapolation of\n the input data has to be performed in order to extend the signal before\n computing the :ref:`Discrete Wavelet Transform ` using the\n cascading filter banks algorithm.\n\n Depending on the extrapolation method, significant artifacts at the\n signal's borders can be introduced during that process, which in turn may\n lead to inaccurate computations of the :ref:`DWT ` at the signal's\n ends.\n\n PyWavelets provides several methods of signal extrapolation that can be\n used to minimize this negative effect:\n\n zero - zero-padding 0 0 | x1 x2 ... xn | 0 0\n constant - constant-padding x1 x1 | x1 x2 ... xn | xn xn\n symmetric - symmetric-padding x2 x1 | x1 x2 ... xn | xn xn-1\n reflect - reflect-padding x3 x2 | x1 x2 ... xn | xn-1 xn-2\n periodic - periodic-padding xn-1 xn | x1 x2 ... xn | x1 x2\n smooth - smooth-padding (1st derivative interpolation)\n antisymmetric - -x2 -x1 | x1 x2 ... xn | -xn -xn-1\n antireflect - -x3 -x2 | x1 x2 ... xn | -xn-1 -xn-2\n\n DWT performed for these extension modes is slightly redundant, but ensure a\n perfect reconstruction for IDWT. To receive the smallest possible number of\n coefficients, computations can be performed with the periodization mode:\n\n periodization - like periodic-padding but gives the smallest possible\n number of decomposition coefficients. IDWT must be\n performed with the same mode.\n\n Examples\n --------\n >>> import pywt\n >>> pywt.Modes.modes\n ['zero', 'constant', 'symmetric', 'reflect', 'periodic', 'smooth', 'periodization', 'antisymmetric', 'antireflect']\n >>> # The different ways of passing wavelet and"" mode parameters\n >>> (a, d) = pywt.dwt([1,2,3,4,5,6], 'db2', 'smooth')\n >>> (a, d) = pywt.dwt([1,2,3,4,5,6], pywt.Wavelet('db2'), pywt.Modes.smooth)\n\n Notes\n -----\n Extending data in context of PyWavelets does not mean reallocation of the\n data in computer's physical memory and copying values, but rather computing\n the extra values only when they are needed. This feature saves extra\n memory and CPU resources and helps to avoid page swapping when handling\n relatively big data arrays on computers with low physical memory.\n\n "; static const char __pyx_k_Filter_bank_with_numeric_values[] = "Filter bank with numeric values required."; static const char __pyx_k_Invalid_continuous_wavelet_name[] = "Invalid continuous wavelet name '%s'."; static const char __pyx_k_MODES_has_been_renamed_to_Modes[] = "MODES has been renamed to Modes and will be removed in a future version of pywt."; static const char __pyx_k_Wavelet_spline_order_must_be_an[] = "Wavelet spline order must be an integer >= 1."; static const char __pyx_k_families_short_True_Returns_a_l[] = "\n families(short=True)\n\n Returns a list of available built-in wavelet families.\n\n Currently the built-in families are:\n\n * Haar (``haar``)\n * Daubechies (``db``)\n * Symlets (``sym``)\n * Coiflets (``coif``)\n * Biorthogonal (``bior``)\n * Reverse biorthogonal (``rbio``)\n * `\"Discrete\"` FIR approximation of Meyer wavelet (``dmey``)\n * Gaussian wavelets (``gaus``)\n * Mexican hat wavelet (``mexh``)\n * Morlet wavelet (``morl``)\n * Complex Gaussian wavelets (``cgau``)\n * Shannon wavelets (``shan``)\n * Frequency B-Spline wavelets (``fbsp``)\n * Complex Morlet wavelets (``cmor``)\n\n Parameters\n ----------\n short : bool, optional\n Use short names (default: True).\n\n Returns\n -------\n families : list\n List of available wavelet families.\n\n Examples\n --------\n >>> import pywt\n >>> pywt.families()\n ['haar', 'db', 'sym', 'coif', 'bior', 'rbio', 'dmey', 'gaus', 'mexh', 'morl', 'cgau', 'shan', 'fbsp', 'cmor']\n >>> pywt.families(short=False)\n ['Haar', 'Daubechies', 'Symlets', 'Coiflets', 'Biorthogonal', 'Reverse biorthogonal', 'Discrete Meyer (FIR Approximation)', 'Gaussian', 'Mexican hat wavelet', 'Morlet wavelet', 'Complex Gaussian wavelets', 'Shannon wavelets', 'Frequency B-Spline wavelets', 'Complex Morlet wavelets']\n\n "; static const char __pyx_k_module_classname_name_name_filt[] = "{module}.{classname}(name='{name}', filter_bank={filter_bank})"; static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import"; static const char __pyx_k_old_has_been_renamed_to_new_and[] = "{old} has been renamed to {new} and will be unavailable in a future version of pywt."; static const char __pyx_k_unknown_dtype_code_in_numpy_pxd[] = "unknown dtype code in numpy.pxd (%d)"; static const char __pyx_k_wavefun_self_level_8_Calculates[] = "\n wavefun(self, level=8)\n\n Calculates approximations of scaling function (`phi`) and wavelet\n function (`psi`) on xgrid (`x`) at a given level of refinement.\n\n Parameters\n ----------\n level : int, optional\n Level of refinement (default: 8).\n\n Returns\n -------\n [phi, psi, x] : array_like\n For orthogonal wavelets returns scaling function, wavelet function\n and xgrid - [phi, psi, x].\n\n [phi_d, psi_d, phi_r, psi_r, x] : array_like\n For biorthogonal wavelets returns scaling and wavelet function both\n for decomposition and reconstruction and xgrid\n\n Examples\n --------\n >>> import pywt\n >>> # Orthogonal\n >>> wavelet = pywt.Wavelet('db2')\n >>> phi, psi, x = wavelet.wavefun(level=5)\n >>> # Biorthogonal\n >>> wavelet = pywt.Wavelet('bior3.5')\n >>> phi_d, psi_d, phi_r, psi_r, x = wavelet.wavefun(level=5)\n\n "; static const char __pyx_k_wavefun_self_level_8_length_Non[] = "\n wavefun(self, level=8, length=None)\n\n Calculates approximations of wavelet function (``psi``) on xgrid\n (``x``) at a given level of refinement or length itself.\n\n Parameters\n ----------\n level : int, optional\n Level of refinement (default: 8). Defines the length by\n ``2**level`` if length is not set.\n length : int, optional\n Number of samples. If set to None, the length is set to\n ``2**level`` instead.\n\n Returns\n -------\n psi : array_like\n Wavelet function computed for grid xval\n xval : array_like\n grid going from lower_bound to upper_bound\n\n Notes\n -----\n The effective support are set with ``lower_bound`` and ``upper_bound``.\n The wavelet function is complex for ``'cmor'``, ``'shan'``, ``'fbsp'``\n and ``'cgau'``.\n\n The complex frequency B-spline wavelet (``'fbsp'``) has\n ``bandwidth_frequency``, ``center_frequency`` and ``fbsp_order`` as\n additional parameters.\n\n The complex Shannon wavelet (``'shan'``) has ``bandwidth_frequency``\n and ``center_frequency`` as additional parameters.\n\n The complex Morlet wavelet (``'cmor'``) has ``bandwidth_frequency``\n and ``center_frequency`` as additional parameters.\n\n Examples\n --------\n >>> import pywt\n >>> import matplotlib.pyplot as plt\n >>> lb = -5\n >>> ub = 5\n >>> n = 1000\n >>> wavelet = pywt.ContinuousWavelet(\"gaus8\")\n >>> wavelet.upper_bound = ub\n >>> wavelet.lower_bound = lb\n >>> [psi,xval] = wavelet.wavefun(length=n)\n >>> plt.plot(xval,psi) # doctest: +ELLIPSIS\n []\n >>> plt.title(\"Gaussian Wavelet of order 8\") # doctest: +ELLIPSIS\n \n >>> plt.show() # doctes""t: +SKIP\n\n >>> import pywt\n >>> import matplotlib.pyplot as plt\n >>> lb = -5\n >>> ub = 5\n >>> n = 1000\n >>> wavelet = pywt.ContinuousWavelet(\"cgau4\")\n >>> wavelet.upper_bound = ub\n >>> wavelet.lower_bound = lb\n >>> [psi,xval] = wavelet.wavefun(length=n)\n >>> plt.subplot(211) # doctest: +ELLIPSIS\n \n >>> plt.plot(xval,np.real(psi)) # doctest: +ELLIPSIS\n []\n >>> plt.title(\"Real part\") # doctest: +ELLIPSIS\n \n >>> plt.subplot(212) # doctest: +ELLIPSIS\n \n >>> plt.plot(xval,np.imag(psi)) # doctest: +ELLIPSIS\n []\n >>> plt.title(\"Imaginary part\") # doctest: +ELLIPSIS\n \n >>> plt.show() # doctest: +SKIP\n\n "; static const char __pyx_k_wavelist_family_None_kind_all_R[] = "\n wavelist(family=None, kind='all')\n\n Returns list of available wavelet names for the given family name.\n\n Parameters\n ----------\n family : str, optional\n Short family name. If the family name is None (default) then names\n of all the built-in wavelets are returned. Otherwise the function\n returns names of wavelets that belong to the given family.\n Valid names are::\n\n 'haar', 'db', 'sym', 'coif', 'bior', 'rbio', 'dmey', 'gaus',\n 'mexh', 'morl', 'cgau', 'shan', 'fbsp', 'cmor'\n\n kind : {'all', 'continuous', 'discrete'}, optional\n Whether to return only wavelet names of discrete or continuous\n wavelets, or all wavelets. Default is ``'all'``.\n Ignored if ``family`` is specified.\n\n Returns\n -------\n wavelist : list of str\n List of available wavelet names.\n\n Examples\n --------\n >>> import pywt\n >>> pywt.wavelist('coif')\n ['coif1', 'coif2', 'coif3', 'coif4', 'coif5', 'coif6', 'coif7', ...\n >>> pywt.wavelist(kind='continuous')\n ['cgau1', 'cgau2', 'cgau3', 'cgau4', 'cgau5', 'cgau6', 'cgau7', ...\n\n "; static const char __pyx_k_Buffer_view_does_not_expose_stri[] = "Buffer view does not expose strides"; static const char __pyx_k_Can_only_create_a_buffer_that_is[] = "Can only create a buffer that is contiguous in memory."; static const char __pyx_k_Cannot_assign_to_read_only_memor[] = "Cannot assign to read-only memoryview"; static const char __pyx_k_Cannot_create_writable_memory_vi[] = "Cannot create writable memory view from read-only memoryview"; static const char __pyx_k_ContinuousWavelet_wavefun_line_8[] = "ContinuousWavelet.wavefun (line 855)"; static const char __pyx_k_Could_not_allocate_memory_for_gi[] = "Could not allocate memory for given filter bank."; static const char __pyx_k_Creating_custom_Wavelets_using_o[] = "Creating custom Wavelets using objects that define `get_filters_coeffs` method is deprecated. The `filter_bank` parameter should define a `filter_bank` attribute instead of `get_filters_coeffs` method."; static const char __pyx_k_Cython_wrapper_for_low_level_C_w[] = "Cython wrapper for low-level C wavelet transform implementation."; static const char __pyx_k_Discrete_Meyer_FIR_Approximation[] = "Discrete Meyer (FIR Approximation)"; static const char __pyx_k_Empty_shape_tuple_for_cython_arr[] = "Empty shape tuple for cython.array"; static const char __pyx_k_Expected_filter_bank_with_4_filt[] = "Expected filter bank with 4 filters, got filter bank with %d filters."; static const char __pyx_k_Expected_list_of_4_filters_coeff[] = "Expected list of 4 filters coefficients, got %d filters."; static const char __pyx_k_For_wavelets_of_family_0_the_nam[] = "For wavelets of family {0}, the name should take the form {0}B-C where B and C are floats representing the bandwidth frequency and center frequency, respectively. (example: {0}1.5-1.0)"; static const char __pyx_k_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd"; static const char __pyx_k_Incompatible_checksums_s_vs_0xb0[] = "Incompatible checksums (%s vs 0xb068931 = (name))"; static const char __pyx_k_Indirect_dimensions_not_supporte[] = "Indirect dimensions not supported"; static const char __pyx_k_Invalid_mode_expected_c_or_fortr[] = "Invalid mode, expected 'c' or 'fortran', got %s"; static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported"; static const char __pyx_k_Out_of_bounds_on_buffer_access_a[] = "Out of bounds on buffer access (axis %d)"; static const char __pyx_k_The_Wavelet_class_is_for_discret[] = "The `Wavelet` class is for discrete wavelets, %s is a continuous wavelet. Use pywt.ContinuousWavelet instead"; static const char __pyx_k_The_get_filters_coeffs_method_is[] = "The `get_filters_coeffs` method is deprecated. Use `filter_bank` attribute instead."; static const char __pyx_k_The_get_reverse_filters_coeffs_m[] = "The `get_reverse_filters_coeffs` method is deprecated. Use `inverse_filter_bank` attribute instead."; static const char __pyx_k_Unable_to_convert_item_to_object[] = "Unable to convert item to object"; static const char __pyx_k_Unknown_wavelet_name_s_check_wav[] = "Unknown wavelet name '%s', check wavelist() for the list of available builtin wavelets."; static const char __pyx_k_Wavelet_name_or_filter_bank_must[] = "Wavelet name or filter bank must be specified."; static const char __pyx_k_Wavelets_from_the_family_0_witho[] = "Wavelets from the family {0}, without parameters specified in the name are deprecated. The name should takethe form {0}B-C where B and C are floats representing the bandwidth frequency and center frequency, respectively (example: {0}1.5-1.0)."; static const char __pyx_k_Wavelets_of_family_0_without_par[] = "Wavelets of family {0}, without parameters specified in the name are deprecated. The name should take the form {0}M-B-C where M is the spline order and B, C are floats representing the bandwidth frequency and center frequency, respectively (example: {0}1-1.5-1.0)."; static const char __pyx_k_got_differing_extents_in_dimensi[] = "got differing extents in dimension %d (got %d and %d)"; static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous"; static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__"; static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import"; static const char __pyx_k_unable_to_allocate_shape_and_str[] = "unable to allocate shape and strides."; static const char __pyx_k_unrecognized_wavelet_family_name[] = "unrecognized wavelet family name"; static const char __pyx_k_All_filters_in_filter_bank_must_2[] = "All filters in filter bank must have length greater than 0."; static const char __pyx_k_For_wavelets_of_family_0_the_nam_2[] = "For wavelets of family {0}, the name should take the form {0}M-B-C where M is the spline order and B, C are floats representing the bandwidth frequency and center frequency, respectively (example: {0}1-1.5-1.0)."; static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; static PyObject *__pyx_n_s_ASCII; static PyObject *__pyx_kp_u_All_filters_in_filter_bank_must; static PyObject *__pyx_kp_u_All_filters_in_filter_bank_must_2; static PyObject *__pyx_n_s_AttributeError; static PyObject *__pyx_kp_s_Because_the_most_common_and_pra; static PyObject *__pyx_n_u_Biorthogonal; static PyObject *__pyx_kp_u_Biorthogonal_s; static PyObject *__pyx_kp_s_Buffer_view_does_not_expose_stri; static PyObject *__pyx_kp_u_CWT_False; static PyObject *__pyx_kp_u_CWT_True; static PyObject *__pyx_kp_s_Can_only_create_a_buffer_that_is; static PyObject *__pyx_kp_s_Cannot_assign_to_read_only_memor; static PyObject *__pyx_kp_s_Cannot_create_writable_memory_vi; static PyObject *__pyx_kp_s_Cannot_index_with_type_s; static PyObject *__pyx_n_u_Coiflets; static PyObject *__pyx_kp_u_Complex_CWT_s; static PyObject *__pyx_kp_u_Complex_Gaussian_wavelets; static PyObject *__pyx_kp_u_Complex_Morlet_wavelets; static PyObject *__pyx_n_s_ContinuousWavelet; static PyObject *__pyx_n_u_ContinuousWavelet; static PyObject *__pyx_kp_u_ContinuousWavelet_s; static PyObject *__pyx_kp_u_ContinuousWavelet_wavefun_line_8; static PyObject *__pyx_kp_u_Could_not_allocate_memory_for_gi; static PyObject *__pyx_kp_u_Creating_custom_Wavelets_using_o; static PyObject *__pyx_kp_u_Cython_wrapper_for_low_level_C_w; static PyObject *__pyx_kp_u_DWT_False; static PyObject *__pyx_kp_u_DWT_True; static PyObject *__pyx_kp_u_D_d_d; static PyObject *__pyx_n_u_Daubechies; static PyObject *__pyx_n_s_DeprecatedMODES; static PyObject *__pyx_n_s_DeprecatedMODES___getattr; static PyObject *__pyx_n_s_DeprecatedMODES___getattribute; static PyObject *__pyx_n_s_DeprecationWarning; static PyObject *__pyx_n_s_DiscreteContinuousWavelet; static PyObject *__pyx_n_u_DiscreteContinuousWavelet; static PyObject *__pyx_kp_u_Discrete_Meyer_FIR_Approximation; static PyObject *__pyx_n_s_Ellipsis; static PyObject *__pyx_kp_s_Empty_shape_tuple_for_cython_arr; static PyObject *__pyx_kp_u_Expected_filter_bank_with_4_filt; static PyObject *__pyx_kp_u_Expected_list_of_4_filters_coeff; static PyObject *__pyx_kp_u_Family_name_s; static PyObject *__pyx_kp_u_Filter_bank_with_numeric_values; static PyObject *__pyx_kp_u_Filters_length_d; static PyObject *__pyx_kp_u_For_wavelets_of_family_0_the_nam; static PyObject *__pyx_kp_u_For_wavelets_of_family_0_the_nam_2; static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; static PyObject *__pyx_kp_u_Frequency_B_Spline_wavelets; static PyObject *__pyx_n_s_FutureWarning; static PyObject *__pyx_n_u_Gaussian; static PyObject *__pyx_n_u_Haar; static PyObject *__pyx_n_s_ImportError; static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xb0; static PyObject *__pyx_n_s_IndexError; static PyObject *__pyx_kp_s_Indirect_dimensions_not_supporte; static PyObject *__pyx_kp_u_Invalid_continuous_wavelet_name; static PyObject *__pyx_kp_u_Invalid_mode; static PyObject *__pyx_kp_s_Invalid_mode_expected_c_or_fortr; static PyObject *__pyx_kp_s_Invalid_shape_in_axis_d_d; static PyObject *__pyx_kp_u_Invalid_short_family_name_s; static PyObject *__pyx_kp_u_Invalid_wavelet_name_s; static PyObject *__pyx_n_s_KeyError; static PyObject *__pyx_n_s_MODES; static PyObject *__pyx_n_u_MODES; static PyObject *__pyx_kp_u_MODES_has_been_renamed_to_Modes; static PyObject *__pyx_n_s_MemoryError; static PyObject *__pyx_kp_s_MemoryView_of_r_at_0x_x; static PyObject *__pyx_kp_s_MemoryView_of_r_object; static PyObject *__pyx_kp_u_Mexican_hat_wavelet; static PyObject *__pyx_n_s_Modes; static PyObject *__pyx_n_u_Modes; static PyObject *__pyx_n_s_Modes_2; static PyObject *__pyx_n_s_Modes___getattr; static PyObject *__pyx_n_s_Modes_from_object; static PyObject *__pyx_kp_u_Morlet_wavelet; static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; static PyObject *__pyx_n_b_O; static PyObject *__pyx_kp_u_Orthogonal_s; static PyObject *__pyx_kp_s_Out_of_bounds_on_buffer_access_a; static PyObject *__pyx_n_s_PickleError; static PyObject *__pyx_kp_u_Reverse_biorthogonal; static PyObject *__pyx_n_s_RuntimeError; static PyObject *__pyx_kp_u_Shannon_wavelets; static PyObject *__pyx_kp_u_Short_name_s; static PyObject *__pyx_n_u_Symlets; static PyObject *__pyx_kp_u_Symmetry_s; static PyObject *__pyx_kp_b_T; static PyObject *__pyx_kp_u_The_Wavelet_class_is_for_discret; static PyObject *__pyx_kp_u_The_get_filters_coeffs_method_is; static PyObject *__pyx_kp_u_The_get_reverse_filters_coeffs_m; static PyObject *__pyx_n_s_TypeError; static PyObject *__pyx_kp_s_Unable_to_convert_item_to_object; static PyObject *__pyx_kp_u_Unknown_mode_name_s; static PyObject *__pyx_kp_u_Unknown_wavelet_name_s_check_wav; static PyObject *__pyx_kp_u_Unrecognized_value_for_kind_s; static PyObject *__pyx_n_s_ValueError; static PyObject *__pyx_n_s_View_MemoryView; static PyObject *__pyx_n_s_Wavelet; static PyObject *__pyx_n_u_Wavelet; static PyObject *__pyx_kp_u_Wavelet_name_or_filter_bank_must; static PyObject *__pyx_kp_u_Wavelet_s; static PyObject *__pyx_kp_u_Wavelet_spline_order_must_be_an; static PyObject *__pyx_kp_u_Wavelet_wavefun_line_547; static PyObject *__pyx_kp_u_Wavelets_from_the_family_0_witho; static PyObject *__pyx_kp_u_Wavelets_of_family_0_without_par; static PyObject *__pyx_kp_u__18; static PyObject *__pyx_n_u__3; static PyObject *__pyx_kp_b__51; static PyObject *__pyx_kp_b__52; static PyObject *__pyx_kp_b__53; static PyObject *__pyx_kp_u__54; static PyObject *__pyx_kp_b__9; static PyObject *__pyx_kp_u__9; static PyObject *__pyx_n_u_all; static PyObject *__pyx_n_s_all_2; static PyObject *__pyx_n_s_allocate_buffer; static PyObject *__pyx_kp_u_anti_symmetric; static PyObject *__pyx_n_s_antireflect; static PyObject *__pyx_n_u_antireflect; static PyObject *__pyx_n_s_antisymmetric; static PyObject *__pyx_n_u_antisymmetric; static PyObject *__pyx_n_s_append; static PyObject *__pyx_n_s_arr; static PyObject *__pyx_n_s_asarray; static PyObject *__pyx_n_u_asymmetric; static PyObject *__pyx_n_s_attr; static PyObject *__pyx_n_s_attr_deprecation_msg; static PyObject *__pyx_n_s_base; static PyObject *__pyx_n_u_bior; static PyObject *__pyx_kp_u_bior1_1; static PyObject *__pyx_kp_u_bior1_3; static PyObject *__pyx_kp_u_bior1_5; static PyObject *__pyx_kp_u_bior2_2; static PyObject *__pyx_kp_u_bior2_4; static PyObject *__pyx_kp_u_bior2_6; static PyObject *__pyx_kp_u_bior2_8; static PyObject *__pyx_kp_u_bior3_1; static PyObject *__pyx_kp_u_bior3_3; static PyObject *__pyx_kp_u_bior3_5; static PyObject *__pyx_kp_u_bior3_7; static PyObject *__pyx_kp_u_bior3_9; static PyObject *__pyx_kp_u_bior4_4; static PyObject *__pyx_kp_u_bior5_5; static PyObject *__pyx_kp_u_bior6_8; static PyObject *__pyx_n_s_biorthogonal; static PyObject *__pyx_n_s_c; static PyObject *__pyx_n_u_c; static PyObject *__pyx_n_u_cgau; static PyObject *__pyx_n_u_cgau1; static PyObject *__pyx_n_u_cgau2; static PyObject *__pyx_n_u_cgau3; static PyObject *__pyx_n_u_cgau4; static PyObject *__pyx_n_u_cgau5; static PyObject *__pyx_n_u_cgau6; static PyObject *__pyx_n_u_cgau7; static PyObject *__pyx_n_u_cgau8; static PyObject *__pyx_n_s_check_kind; static PyObject *__pyx_n_s_class; static PyObject *__pyx_n_s_classname; static PyObject *__pyx_n_s_cline_in_traceback; static PyObject *__pyx_n_u_cmor; static PyObject *__pyx_n_u_coif; static PyObject *__pyx_n_u_coif1; static PyObject *__pyx_n_u_coif10; static PyObject *__pyx_n_u_coif11; static PyObject *__pyx_n_u_coif12; static PyObject *__pyx_n_u_coif13; static PyObject *__pyx_n_u_coif14; static PyObject *__pyx_n_u_coif15; static PyObject *__pyx_n_u_coif16; static PyObject *__pyx_n_u_coif17; static PyObject *__pyx_n_u_coif2; static PyObject *__pyx_n_u_coif3; static PyObject *__pyx_n_u_coif4; static PyObject *__pyx_n_u_coif5; static PyObject *__pyx_n_u_coif6; static PyObject *__pyx_n_u_coif7; static PyObject *__pyx_n_u_coif8; static PyObject *__pyx_n_u_coif9; static PyObject *__pyx_n_s_compile; static PyObject *__pyx_n_s_complex128; static PyObject *__pyx_n_u_complex128; static PyObject *__pyx_n_s_complex256; static PyObject *__pyx_n_s_complex64; static PyObject *__pyx_n_s_complex_cwt; static PyObject *__pyx_n_s_concatenate; static PyObject *__pyx_n_s_constant; static PyObject *__pyx_n_u_constant; static PyObject *__pyx_kp_s_contiguous_and_direct; static PyObject *__pyx_kp_s_contiguous_and_indirect; static PyObject *__pyx_n_u_continuous; static PyObject *__pyx_n_u_cpd; static PyObject *__pyx_n_s_cwt_pattern; static PyObject *__pyx_n_u_db; static PyObject *__pyx_n_u_db1; static PyObject *__pyx_n_u_db10; static PyObject *__pyx_n_u_db11; static PyObject *__pyx_n_u_db12; static PyObject *__pyx_n_u_db13; static PyObject *__pyx_n_u_db14; static PyObject *__pyx_n_u_db15; static PyObject *__pyx_n_u_db16; static PyObject *__pyx_n_u_db17; static PyObject *__pyx_n_u_db18; static PyObject *__pyx_n_u_db19; static PyObject *__pyx_n_u_db2; static PyObject *__pyx_n_u_db20; static PyObject *__pyx_n_u_db21; static PyObject *__pyx_n_u_db22; static PyObject *__pyx_n_u_db23; static PyObject *__pyx_n_u_db24; static PyObject *__pyx_n_u_db25; static PyObject *__pyx_n_u_db26; static PyObject *__pyx_n_u_db27; static PyObject *__pyx_n_u_db28; static PyObject *__pyx_n_u_db29; static PyObject *__pyx_n_u_db3; static PyObject *__pyx_n_u_db30; static PyObject *__pyx_n_u_db31; static PyObject *__pyx_n_u_db32; static PyObject *__pyx_n_u_db33; static PyObject *__pyx_n_u_db34; static PyObject *__pyx_n_u_db35; static PyObject *__pyx_n_u_db36; static PyObject *__pyx_n_u_db37; static PyObject *__pyx_n_u_db38; static PyObject *__pyx_n_u_db4; static PyObject *__pyx_n_u_db5; static PyObject *__pyx_n_u_db6; static PyObject *__pyx_n_u_db7; static PyObject *__pyx_n_u_db8; static PyObject *__pyx_n_u_db9; static PyObject *__pyx_n_s_dec_hi; static PyObject *__pyx_n_s_dec_len; static PyObject *__pyx_n_s_dec_lo; static PyObject *__pyx_n_s_dict; static PyObject *__pyx_n_u_discrete; static PyObject *__pyx_n_u_dmey; static PyObject *__pyx_n_s_doc; static PyObject *__pyx_n_s_dtype; static PyObject *__pyx_n_s_dtype_is_object; static PyObject *__pyx_n_s_encode; static PyObject *__pyx_n_s_enumerate; static PyObject *__pyx_n_s_error; static PyObject *__pyx_n_s_families; static PyObject *__pyx_n_u_families; static PyObject *__pyx_kp_u_families_line_256; static PyObject *__pyx_kp_u_families_short_True_Returns_a_l; static PyObject *__pyx_n_s_family; static PyObject *__pyx_n_s_family_code; static PyObject *__pyx_n_s_family_name; static PyObject *__pyx_n_s_family_number; static PyObject *__pyx_n_u_fbsp; static PyObject *__pyx_n_s_filter_bank; static PyObject *__pyx_n_u_filter_bank; static PyObject *__pyx_n_s_findall; static PyObject *__pyx_n_s_flags; static PyObject *__pyx_n_s_float32; static PyObject *__pyx_n_u_float32; static PyObject *__pyx_n_s_float64; static PyObject *__pyx_n_u_float64; static PyObject *__pyx_n_s_format; static PyObject *__pyx_n_s_fortran; static PyObject *__pyx_n_u_fortran; static PyObject *__pyx_n_s_from_object; static PyObject *__pyx_n_u_gaus; static PyObject *__pyx_n_u_gaus1; static PyObject *__pyx_n_u_gaus2; static PyObject *__pyx_n_u_gaus3; static PyObject *__pyx_n_u_gaus4; static PyObject *__pyx_n_u_gaus5; static PyObject *__pyx_n_u_gaus6; static PyObject *__pyx_n_u_gaus7; static PyObject *__pyx_n_u_gaus8; static PyObject *__pyx_n_s_get_filters_coeffs; static PyObject *__pyx_n_u_get_filters_coeffs; static PyObject *__pyx_n_s_getattr; static PyObject *__pyx_n_s_getattribute; static PyObject *__pyx_n_s_getstate; static PyObject *__pyx_kp_s_got_differing_extents_in_dimensi; static PyObject *__pyx_n_u_haar; static PyObject *__pyx_n_s_half; static PyObject *__pyx_n_s_have_c99_complex; static PyObject *__pyx_n_s_id; static PyObject *__pyx_n_s_import; static PyObject *__pyx_n_s_index; static PyObject *__pyx_n_s_inverse_filter_bank; static PyObject *__pyx_n_s_is_discrete; static PyObject *__pyx_n_s_itemsize; static PyObject *__pyx_kp_s_itemsize_0_for_cython_array; static PyObject *__pyx_n_s_join; static PyObject *__pyx_n_s_keep; static PyObject *__pyx_n_s_keep_length; static PyObject *__pyx_n_s_kind; static PyObject *__pyx_n_s_left_bound; static PyObject *__pyx_n_s_length; static PyObject *__pyx_n_s_level; static PyObject *__pyx_n_s_linspace; static PyObject *__pyx_n_s_lower; static PyObject *__pyx_n_s_m; static PyObject *__pyx_n_s_main; static PyObject *__pyx_n_s_memview; static PyObject *__pyx_n_s_metaclass; static PyObject *__pyx_n_u_mexh; static PyObject *__pyx_n_s_mode; static PyObject *__pyx_n_s_modes; static PyObject *__pyx_n_s_module; static PyObject *__pyx_n_s_module_2; static PyObject *__pyx_kp_u_module_classname_name_name; static PyObject *__pyx_kp_u_module_classname_name_name_filt; static PyObject *__pyx_n_u_morl; static PyObject *__pyx_n_s_msg; static PyObject *__pyx_n_s_name; static PyObject *__pyx_n_s_name_2; static PyObject *__pyx_kp_u_ndarray_is_not_C_contiguous; static PyObject *__pyx_kp_u_ndarray_is_not_Fortran_contiguou; static PyObject *__pyx_n_s_ndim; static PyObject *__pyx_kp_u_near_symmetric; static PyObject *__pyx_n_s_new; static PyObject *__pyx_n_s_new_2; static PyObject *__pyx_n_s_new_mode; static PyObject *__pyx_kp_s_no_default___reduce___due_to_non; static PyObject *__pyx_n_s_np; static PyObject *__pyx_n_s_numpy; static PyObject *__pyx_kp_u_numpy_core_multiarray_failed_to; static PyObject *__pyx_kp_u_numpy_core_umath_failed_to_impor; static PyObject *__pyx_n_s_obj; static PyObject *__pyx_n_s_object; static PyObject *__pyx_n_s_old; static PyObject *__pyx_kp_u_old_has_been_renamed_to_new_and; static PyObject *__pyx_n_s_old_modes; static PyObject *__pyx_n_s_orthogonal; static PyObject *__pyx_n_s_pack; static PyObject *__pyx_n_u_per; static PyObject *__pyx_n_s_periodic; static PyObject *__pyx_n_u_periodic; static PyObject *__pyx_n_s_periodization; static PyObject *__pyx_n_u_periodization; static PyObject *__pyx_n_s_pickle; static PyObject *__pyx_n_u_ppd; static PyObject *__pyx_n_s_prepare; static PyObject *__pyx_n_s_pywt__extensions__pywt; static PyObject *__pyx_kp_s_pywt__extensions__pywt_pyx; static PyObject *__pyx_n_s_pyx_PickleError; static PyObject *__pyx_n_s_pyx_capi; static PyObject *__pyx_n_s_pyx_checksum; static PyObject *__pyx_n_s_pyx_getbuffer; static PyObject *__pyx_n_s_pyx_result; static PyObject *__pyx_n_s_pyx_state; static PyObject *__pyx_n_s_pyx_type; static PyObject *__pyx_n_s_pyx_unpickle_Enum; static PyObject *__pyx_n_s_pyx_vtable; static PyObject *__pyx_n_s_qualname; static PyObject *__pyx_n_s_range; static PyObject *__pyx_n_u_rbio; static PyObject *__pyx_kp_u_rbio1_1; static PyObject *__pyx_kp_u_rbio1_3; static PyObject *__pyx_kp_u_rbio1_5; static PyObject *__pyx_kp_u_rbio2_2; static PyObject *__pyx_kp_u_rbio2_4; static PyObject *__pyx_kp_u_rbio2_6; static PyObject *__pyx_kp_u_rbio2_8; static PyObject *__pyx_kp_u_rbio3_1; static PyObject *__pyx_kp_u_rbio3_3; static PyObject *__pyx_kp_u_rbio3_5; static PyObject *__pyx_kp_u_rbio3_7; static PyObject *__pyx_kp_u_rbio3_9; static PyObject *__pyx_kp_u_rbio4_4; static PyObject *__pyx_kp_u_rbio5_5; static PyObject *__pyx_kp_u_rbio6_8; static PyObject *__pyx_n_s_re; static PyObject *__pyx_n_s_rec_hi; static PyObject *__pyx_n_s_rec_lo; static PyObject *__pyx_n_s_reduce; static PyObject *__pyx_n_s_reduce_cython; static PyObject *__pyx_n_s_reduce_ex; static PyObject *__pyx_n_s_reflect; static PyObject *__pyx_n_u_reflect; static PyObject *__pyx_n_s_rstrip; static PyObject *__pyx_kp_u_s; static PyObject *__pyx_n_s_self; static PyObject *__pyx_n_s_setstate; static PyObject *__pyx_n_s_setstate_cython; static PyObject *__pyx_n_u_shan; static PyObject *__pyx_n_s_shape; static PyObject *__pyx_n_s_short; static PyObject *__pyx_n_s_short_family_name; static PyObject *__pyx_n_s_size; static PyObject *__pyx_n_s_smooth; static PyObject *__pyx_n_u_smooth; static PyObject *__pyx_n_s_sort; static PyObject *__pyx_n_s_sorting_list; static PyObject *__pyx_n_u_sp1; static PyObject *__pyx_n_s_start; static PyObject *__pyx_n_s_startswith; static PyObject *__pyx_n_s_step; static PyObject *__pyx_n_s_stop; static PyObject *__pyx_kp_s_strided_and_direct; static PyObject *__pyx_kp_s_strided_and_direct_or_indirect; static PyObject *__pyx_kp_s_strided_and_indirect; static PyObject *__pyx_kp_s_stringsource; static PyObject *__pyx_n_s_struct; static PyObject *__pyx_n_u_sym; static PyObject *__pyx_n_u_sym10; static PyObject *__pyx_n_u_sym11; static PyObject *__pyx_n_u_sym12; static PyObject *__pyx_n_u_sym13; static PyObject *__pyx_n_u_sym14; static PyObject *__pyx_n_u_sym15; static PyObject *__pyx_n_u_sym16; static PyObject *__pyx_n_u_sym17; static PyObject *__pyx_n_u_sym18; static PyObject *__pyx_n_u_sym19; static PyObject *__pyx_n_u_sym2; static PyObject *__pyx_n_u_sym20; static PyObject *__pyx_n_u_sym3; static PyObject *__pyx_n_u_sym4; static PyObject *__pyx_n_u_sym5; static PyObject *__pyx_n_u_sym6; static PyObject *__pyx_n_u_sym7; static PyObject *__pyx_n_u_sym8; static PyObject *__pyx_n_u_sym9; static PyObject *__pyx_n_s_symmetric; static PyObject *__pyx_n_u_symmetric; static PyObject *__pyx_n_s_symmetry; static PyObject *__pyx_n_s_test; static PyObject *__pyx_kp_s_unable_to_allocate_array_data; static PyObject *__pyx_kp_s_unable_to_allocate_shape_and_str; static PyObject *__pyx_n_u_unknown; static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; static PyObject *__pyx_n_s_unpack; static PyObject *__pyx_kp_u_unrecognized_wavelet_family_name; static PyObject *__pyx_n_s_update; static PyObject *__pyx_n_s_warn; static PyObject *__pyx_n_s_warnings; static PyObject *__pyx_kp_u_wavefun_self_level_8_Calculates; static PyObject *__pyx_kp_u_wavefun_self_level_8_length_Non; static PyObject *__pyx_n_s_wavelet; static PyObject *__pyx_n_s_wavelet_from_object; static PyObject *__pyx_n_s_wavelets; static PyObject *__pyx_n_s_wavelist; static PyObject *__pyx_n_u_wavelist; static PyObject *__pyx_kp_u_wavelist_family_None_kind_all_R; static PyObject *__pyx_kp_u_wavelist_line_184; static PyObject *__pyx_n_s_wavelist_locals__check_kind; static PyObject *__pyx_n_s_x; static PyObject *__pyx_n_s_zero; static PyObject *__pyx_n_u_zero; static PyObject *__pyx_n_s_zeros; static PyObject *__pyx_n_u_zpd; static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_6_Modes_from_object(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self, PyObject *__pyx_v_mode); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_6_Modes_2__getattr__(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self, PyObject *__pyx_v_mode); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_16_DeprecatedMODES___getattribute__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_attr); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_16_DeprecatedMODES_2__getattr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_attr); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_8wavelist__check_kind(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name, PyObject *__pyx_v_kind); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_wavelist(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_family, PyObject *__pyx_v_kind); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_2families(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_short); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_4DiscreteContinuousWavelet(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name, PyObject *__pyx_v_filter_bank); /* proto */ static int __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet___cinit__(struct WaveletObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_filter_bank); /* proto */ static void __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_2__dealloc__(struct WaveletObject *__pyx_v_self); /* proto */ static Py_ssize_t __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_4__len__(struct WaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_6dec_lo___get__(struct WaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_6dec_hi___get__(struct WaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_6rec_lo___get__(struct WaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_6rec_hi___get__(struct WaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_7rec_len___get__(struct WaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_7dec_len___get__(struct WaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_13family_number___get__(struct WaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_11family_name___get__(struct WaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_17short_family_name___get__(struct WaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_10orthogonal___get__(struct WaveletObject *__pyx_v_self); /* proto */ static int __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_10orthogonal_2__set__(struct WaveletObject *__pyx_v_self, int __pyx_v_value); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_12biorthogonal___get__(struct WaveletObject *__pyx_v_self); /* proto */ static int __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_12biorthogonal_2__set__(struct WaveletObject *__pyx_v_self, int __pyx_v_value); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_8symmetry___get__(struct WaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_21vanishing_moments_psi___get__(struct WaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_21vanishing_moments_phi___get__(struct WaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_11filter_bank___get__(struct WaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_6get_filters_coeffs(struct WaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_19inverse_filter_bank___get__(struct WaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_8get_reverse_filters_coeffs(struct WaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_10wavefun(struct WaveletObject *__pyx_v_self, int __pyx_v_level); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_12__str__(struct WaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_14__repr__(struct WaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_4name___get__(struct WaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_6number___get__(struct WaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_16__reduce_cython__(CYTHON_UNUSED struct WaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_18__setstate_cython__(CYTHON_UNUSED struct WaveletObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static int __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet___cinit__(struct ContinuousWaveletObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_dtype, CYTHON_UNUSED PyObject *__pyx_v_kwargs); /* proto */ static void __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_2__dealloc__(struct ContinuousWaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_13family_number___get__(struct ContinuousWaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11family_name___get__(struct ContinuousWaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_17short_family_name___get__(struct ContinuousWaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_10orthogonal___get__(struct ContinuousWaveletObject *__pyx_v_self); /* proto */ static int __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_10orthogonal_2__set__(struct ContinuousWaveletObject *__pyx_v_self, int __pyx_v_value); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_12biorthogonal___get__(struct ContinuousWaveletObject *__pyx_v_self); /* proto */ static int __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_12biorthogonal_2__set__(struct ContinuousWaveletObject *__pyx_v_self, int __pyx_v_value); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11complex_cwt___get__(struct ContinuousWaveletObject *__pyx_v_self); /* proto */ static int __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11complex_cwt_2__set__(struct ContinuousWaveletObject *__pyx_v_self, int __pyx_v_value); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11lower_bound___get__(struct ContinuousWaveletObject *__pyx_v_self); /* proto */ static int __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11lower_bound_2__set__(struct ContinuousWaveletObject *__pyx_v_self, float __pyx_v_value); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11upper_bound___get__(struct ContinuousWaveletObject *__pyx_v_self); /* proto */ static int __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11upper_bound_2__set__(struct ContinuousWaveletObject *__pyx_v_self, float __pyx_v_value); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_16center_frequency___get__(struct ContinuousWaveletObject *__pyx_v_self); /* proto */ static int __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_16center_frequency_2__set__(struct ContinuousWaveletObject *__pyx_v_self, float __pyx_v_value); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_19bandwidth_frequency___get__(struct ContinuousWaveletObject *__pyx_v_self); /* proto */ static int __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_19bandwidth_frequency_2__set__(struct ContinuousWaveletObject *__pyx_v_self, float __pyx_v_value); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_10fbsp_order___get__(struct ContinuousWaveletObject *__pyx_v_self); /* proto */ static int __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_10fbsp_order_2__set__(struct ContinuousWaveletObject *__pyx_v_self, unsigned int __pyx_v_value); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_8symmetry___get__(struct ContinuousWaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_4wavefun(struct ContinuousWaveletObject *__pyx_v_self, int __pyx_v_level, PyObject *__pyx_v_length); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_6__str__(struct ContinuousWaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_8__repr__(struct ContinuousWaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_4name___get__(struct ContinuousWaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_6number___get__(struct ContinuousWaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_2dt___get__(struct ContinuousWaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_10__reduce_cython__(CYTHON_UNUSED struct ContinuousWaveletObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_12__setstate_cython__(CYTHON_UNUSED struct ContinuousWaveletObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_6wavelet_from_object(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_wavelet); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_8_check_dtype(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_data); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_10keep(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_arr, PyObject *__pyx_v_keep_length); /* proto */ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info); /* proto */ static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, PyObject *__pyx_v_format, PyObject *__pyx_v_mode, int __pyx_v_allocate_buffer); /* proto */ static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(struct __pyx_array_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */ static void __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(struct __pyx_array_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_5array_7memview___get__(struct __pyx_array_obj *__pyx_v_self); /* proto */ static Py_ssize_t __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(struct __pyx_array_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_attr); /* proto */ static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item); /* proto */ static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value); /* proto */ static PyObject *__pyx_pf___pyx_array___reduce_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf___pyx_array_2__setstate_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static int __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v_name); /* proto */ static PyObject *__pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(struct __pyx_MemviewEnum_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf___pyx_MemviewEnum___reduce_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf___pyx_MemviewEnum_2__setstate_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */ static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_v_flags, int __pyx_v_dtype_is_object); /* proto */ static void __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index); /* proto */ static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /* proto */ static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(struct __pyx_memoryview_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static Py_ssize_t __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf___pyx_memoryview___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf___pyx_memoryview_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static void __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf___pyx_memoryviewslice___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf___pyx_memoryviewslice_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_tp_new_4pywt_11_extensions_5_pywt_Wavelet(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_4pywt_11_extensions_5_pywt_ContinuousWavelet(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_array(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_Enum(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_memoryview(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new__memoryviewslice(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static __Pyx_CachedCFunction __pyx_umethod_PyUnicode_Type_rstrip = {0, &__pyx_n_s_rstrip, 0, 0, 0}; static PyObject *__pyx_float_0_; static PyObject *__pyx_float_0_0; static PyObject *__pyx_int_0; static PyObject *__pyx_int_1; static PyObject *__pyx_int_2; static PyObject *__pyx_int_3; static PyObject *__pyx_int_4; static PyObject *__pyx_int_5; static PyObject *__pyx_int_6; static PyObject *__pyx_int_7; static PyObject *__pyx_int_8; static PyObject *__pyx_int_9; static PyObject *__pyx_int_10; static PyObject *__pyx_int_11; static PyObject *__pyx_int_12; static PyObject *__pyx_int_13; static PyObject *__pyx_int_14; static PyObject *__pyx_int_15; static PyObject *__pyx_int_16; static PyObject *__pyx_int_17; static PyObject *__pyx_int_18; static PyObject *__pyx_int_19; static PyObject *__pyx_int_20; static PyObject *__pyx_int_21; static PyObject *__pyx_int_22; static PyObject *__pyx_int_23; static PyObject *__pyx_int_24; static PyObject *__pyx_int_25; static PyObject *__pyx_int_26; static PyObject *__pyx_int_27; static PyObject *__pyx_int_28; static PyObject *__pyx_int_29; static PyObject *__pyx_int_30; static PyObject *__pyx_int_31; static PyObject *__pyx_int_32; static PyObject *__pyx_int_33; static PyObject *__pyx_int_34; static PyObject *__pyx_int_35; static PyObject *__pyx_int_36; static PyObject *__pyx_int_37; static PyObject *__pyx_int_38; static PyObject *__pyx_int_39; static PyObject *__pyx_int_44; static PyObject *__pyx_int_55; static PyObject *__pyx_int_68; static PyObject *__pyx_int_184977713; static PyObject *__pyx_int_neg_1; static PyObject *__pyx_tuple_; static PyObject *__pyx_slice__4; static PyObject *__pyx_slice__7; static PyObject *__pyx_slice__8; static PyObject *__pyx_tuple__2; static PyObject *__pyx_tuple__5; static PyObject *__pyx_slice__16; static PyObject *__pyx_tuple__10; static PyObject *__pyx_tuple__11; static PyObject *__pyx_tuple__12; static PyObject *__pyx_tuple__13; static PyObject *__pyx_tuple__14; static PyObject *__pyx_tuple__15; static PyObject *__pyx_tuple__17; static PyObject *__pyx_tuple__19; static PyObject *__pyx_tuple__20; static PyObject *__pyx_tuple__21; static PyObject *__pyx_tuple__22; static PyObject *__pyx_tuple__23; static PyObject *__pyx_tuple__24; static PyObject *__pyx_tuple__25; static PyObject *__pyx_tuple__26; static PyObject *__pyx_tuple__27; static PyObject *__pyx_tuple__28; static PyObject *__pyx_tuple__29; static PyObject *__pyx_tuple__30; static PyObject *__pyx_tuple__31; static PyObject *__pyx_tuple__32; static PyObject *__pyx_tuple__33; static PyObject *__pyx_tuple__34; static PyObject *__pyx_tuple__35; static PyObject *__pyx_tuple__36; static PyObject *__pyx_tuple__37; static PyObject *__pyx_tuple__38; static PyObject *__pyx_tuple__39; static PyObject *__pyx_tuple__40; static PyObject *__pyx_tuple__41; static PyObject *__pyx_tuple__42; static PyObject *__pyx_tuple__43; static PyObject *__pyx_tuple__44; static PyObject *__pyx_tuple__45; static PyObject *__pyx_tuple__46; static PyObject *__pyx_tuple__47; static PyObject *__pyx_tuple__48; static PyObject *__pyx_tuple__49; static PyObject *__pyx_tuple__50; static PyObject *__pyx_tuple__55; static PyObject *__pyx_tuple__56; static PyObject *__pyx_tuple__57; static PyObject *__pyx_tuple__59; static PyObject *__pyx_tuple__61; static PyObject *__pyx_tuple__63; static PyObject *__pyx_tuple__65; static PyObject *__pyx_tuple__67; static PyObject *__pyx_tuple__69; static PyObject *__pyx_tuple__71; static PyObject *__pyx_tuple__73; static PyObject *__pyx_tuple__75; static PyObject *__pyx_tuple__76; static PyObject *__pyx_tuple__77; static PyObject *__pyx_tuple__78; static PyObject *__pyx_tuple__79; static PyObject *__pyx_tuple__80; static PyObject *__pyx_codeobj__6; static PyObject *__pyx_codeobj__58; static PyObject *__pyx_codeobj__60; static PyObject *__pyx_codeobj__62; static PyObject *__pyx_codeobj__64; static PyObject *__pyx_codeobj__66; static PyObject *__pyx_codeobj__68; static PyObject *__pyx_codeobj__70; static PyObject *__pyx_codeobj__72; static PyObject *__pyx_codeobj__74; static PyObject *__pyx_codeobj__81; /* Late includes */ /* "pywt/_extensions/_pywt.pyx":43 * * # raises exception if the wavelet name is undefined * cdef int is_discrete_wav(WAVELET_NAME name): # <<<<<<<<<<<<<< * cdef int is_discrete * discrete = wavelet.is_discrete_wavelet(name) */ static int __pyx_f_4pywt_11_extensions_5_pywt_is_discrete_wav(WAVELET_NAME __pyx_v_name) { int __pyx_v_discrete; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("is_discrete_wav", 0); /* "pywt/_extensions/_pywt.pyx":45 * cdef int is_discrete_wav(WAVELET_NAME name): * cdef int is_discrete * discrete = wavelet.is_discrete_wavelet(name) # <<<<<<<<<<<<<< * if discrete == -1: * raise ValueError("unrecognized wavelet family name") */ __pyx_v_discrete = is_discrete_wavelet(((WAVELET_NAME)__pyx_v_name)); /* "pywt/_extensions/_pywt.pyx":46 * cdef int is_discrete * discrete = wavelet.is_discrete_wavelet(name) * if discrete == -1: # <<<<<<<<<<<<<< * raise ValueError("unrecognized wavelet family name") * return discrete */ __pyx_t_1 = ((__pyx_v_discrete == -1L) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_pywt.pyx":47 * discrete = wavelet.is_discrete_wavelet(name) * if discrete == -1: * raise ValueError("unrecognized wavelet family name") # <<<<<<<<<<<<<< * return discrete * */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple_, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 47, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":46 * cdef int is_discrete * discrete = wavelet.is_discrete_wavelet(name) * if discrete == -1: # <<<<<<<<<<<<<< * raise ValueError("unrecognized wavelet family name") * return discrete */ } /* "pywt/_extensions/_pywt.pyx":48 * if discrete == -1: * raise ValueError("unrecognized wavelet family name") * return discrete # <<<<<<<<<<<<<< * * */ __pyx_r = __pyx_v_discrete; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":43 * * # raises exception if the wavelet name is undefined * cdef int is_discrete_wav(WAVELET_NAME name): # <<<<<<<<<<<<<< * cdef int is_discrete * discrete = wavelet.is_discrete_wavelet(name) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_WriteUnraisable("pywt._extensions._pywt.is_discrete_wav", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); __pyx_r = 0; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":116 * "periodization", "reflect", "antisymmetric", "antireflect"] * * def from_object(self, mode): # <<<<<<<<<<<<<< * if isinstance(mode, int): * if mode <= common.MODE_INVALID or mode >= common.MODE_MAX: */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_6_Modes_1from_object(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_4pywt_11_extensions_5_pywt_6_Modes_1from_object = {"from_object", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_5_pywt_6_Modes_1from_object, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_6_Modes_1from_object(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { CYTHON_UNUSED PyObject *__pyx_v_self = 0; PyObject *__pyx_v_mode = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("from_object (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_mode,0}; PyObject* values[2] = {0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("from_object", 1, 2, 2, 1); __PYX_ERR(0, 116, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "from_object") < 0)) __PYX_ERR(0, 116, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); } __pyx_v_self = values[0]; __pyx_v_mode = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("from_object", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 116, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._pywt._Modes.from_object", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_6_Modes_from_object(__pyx_self, __pyx_v_self, __pyx_v_mode); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_6_Modes_from_object(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self, PyObject *__pyx_v_mode) { PyObject *__pyx_v_m = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; __Pyx_RefNannySetupContext("from_object", 0); /* "pywt/_extensions/_pywt.pyx":117 * * def from_object(self, mode): * if isinstance(mode, int): # <<<<<<<<<<<<<< * if mode <= common.MODE_INVALID or mode >= common.MODE_MAX: * raise ValueError("Invalid mode.") */ __pyx_t_1 = PyInt_Check(__pyx_v_mode); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "pywt/_extensions/_pywt.pyx":118 * def from_object(self, mode): * if isinstance(mode, int): * if mode <= common.MODE_INVALID or mode >= common.MODE_MAX: # <<<<<<<<<<<<<< * raise ValueError("Invalid mode.") * m = mode */ __pyx_t_3 = __Pyx_PyInt_From_MODE(MODE_INVALID); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_mode, __pyx_t_3, Py_LE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!__pyx_t_1) { } else { __pyx_t_2 = __pyx_t_1; goto __pyx_L5_bool_binop_done; } __pyx_t_4 = __Pyx_PyInt_From_MODE(MODE_MAX); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_mode, __pyx_t_4, Py_GE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __pyx_t_1; __pyx_L5_bool_binop_done:; if (unlikely(__pyx_t_2)) { /* "pywt/_extensions/_pywt.pyx":119 * if isinstance(mode, int): * if mode <= common.MODE_INVALID or mode >= common.MODE_MAX: * raise ValueError("Invalid mode.") # <<<<<<<<<<<<<< * m = mode * else: */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 119, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":118 * def from_object(self, mode): * if isinstance(mode, int): * if mode <= common.MODE_INVALID or mode >= common.MODE_MAX: # <<<<<<<<<<<<<< * raise ValueError("Invalid mode.") * m = mode */ } /* "pywt/_extensions/_pywt.pyx":120 * if mode <= common.MODE_INVALID or mode >= common.MODE_MAX: * raise ValueError("Invalid mode.") * m = mode # <<<<<<<<<<<<<< * else: * try: */ __Pyx_INCREF(__pyx_v_mode); __pyx_v_m = __pyx_v_mode; /* "pywt/_extensions/_pywt.pyx":117 * * def from_object(self, mode): * if isinstance(mode, int): # <<<<<<<<<<<<<< * if mode <= common.MODE_INVALID or mode >= common.MODE_MAX: * raise ValueError("Invalid mode.") */ goto __pyx_L3; } /* "pywt/_extensions/_pywt.pyx":122 * m = mode * else: * try: # <<<<<<<<<<<<<< * m = getattr(Modes, mode) * except AttributeError: */ /*else*/ { { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7); __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); /*try:*/ { /* "pywt/_extensions/_pywt.pyx":123 * else: * try: * m = getattr(Modes, mode) # <<<<<<<<<<<<<< * except AttributeError: * raise ValueError("Unknown mode name '%s'." % mode) */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Modes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 123, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_GetAttr(__pyx_t_3, __pyx_v_mode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 123, __pyx_L7_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_m = __pyx_t_4; __pyx_t_4 = 0; /* "pywt/_extensions/_pywt.pyx":122 * m = mode * else: * try: # <<<<<<<<<<<<<< * m = getattr(Modes, mode) * except AttributeError: */ } __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L12_try_end; __pyx_L7_error:; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; /* "pywt/_extensions/_pywt.pyx":124 * try: * m = getattr(Modes, mode) * except AttributeError: # <<<<<<<<<<<<<< * raise ValueError("Unknown mode name '%s'." % mode) * */ __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError); if (__pyx_t_8) { __Pyx_AddTraceback("pywt._extensions._pywt._Modes.from_object", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_3, &__pyx_t_9) < 0) __PYX_ERR(0, 124, __pyx_L9_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_3); __Pyx_GOTREF(__pyx_t_9); /* "pywt/_extensions/_pywt.pyx":125 * m = getattr(Modes, mode) * except AttributeError: * raise ValueError("Unknown mode name '%s'." % mode) # <<<<<<<<<<<<<< * * return m */ __pyx_t_10 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_Unknown_mode_name_s, __pyx_v_mode); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 125, __pyx_L9_except_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 125, __pyx_L9_except_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_Raise(__pyx_t_11, 0, 0, 0); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_ERR(0, 125, __pyx_L9_except_error) } goto __pyx_L9_except_error; __pyx_L9_except_error:; /* "pywt/_extensions/_pywt.pyx":122 * m = mode * else: * try: # <<<<<<<<<<<<<< * m = getattr(Modes, mode) * except AttributeError: */ __Pyx_XGIVEREF(__pyx_t_5); __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); goto __pyx_L1_error; __pyx_L12_try_end:; } } __pyx_L3:; /* "pywt/_extensions/_pywt.pyx":127 * raise ValueError("Unknown mode name '%s'." % mode) * * return m # <<<<<<<<<<<<<< * * def __getattr__(self, mode): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_m); __pyx_r = __pyx_v_m; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":116 * "periodization", "reflect", "antisymmetric", "antireflect"] * * def from_object(self, mode): # <<<<<<<<<<<<<< * if isinstance(mode, int): * if mode <= common.MODE_INVALID or mode >= common.MODE_MAX: */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __Pyx_AddTraceback("pywt._extensions._pywt._Modes.from_object", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_m); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":129 * return m * * def __getattr__(self, mode): # <<<<<<<<<<<<<< * # catch deprecated mode names * if mode in _old_modes: */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_6_Modes_3__getattr__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_4pywt_11_extensions_5_pywt_6_Modes_3__getattr__ = {"__getattr__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_5_pywt_6_Modes_3__getattr__, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_6_Modes_3__getattr__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { CYTHON_UNUSED PyObject *__pyx_v_self = 0; PyObject *__pyx_v_mode = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getattr__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_mode,0}; PyObject* values[2] = {0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__getattr__", 1, 2, 2, 1); __PYX_ERR(0, 129, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__getattr__") < 0)) __PYX_ERR(0, 129, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); } __pyx_v_self = values[0]; __pyx_v_mode = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__getattr__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 129, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._pywt._Modes.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_6_Modes_2__getattr__(__pyx_self, __pyx_v_self, __pyx_v_mode); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_6_Modes_2__getattr__(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v_self, PyObject *__pyx_v_mode) { PyObject *__pyx_v_new_mode = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; __Pyx_RefNannySetupContext("__getattr__", 0); __Pyx_INCREF(__pyx_v_mode); /* "pywt/_extensions/_pywt.pyx":131 * def __getattr__(self, mode): * # catch deprecated mode names * if mode in _old_modes: # <<<<<<<<<<<<<< * new_mode = Modes.modes[_old_modes.index(mode)] * warnings.warn(_attr_deprecation_msg.format(old=mode, new=new_mode), */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_old_modes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_mode, __pyx_t_1, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 131, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* "pywt/_extensions/_pywt.pyx":132 * # catch deprecated mode names * if mode in _old_modes: * new_mode = Modes.modes[_old_modes.index(mode)] # <<<<<<<<<<<<<< * warnings.warn(_attr_deprecation_msg.format(old=mode, new=new_mode), * DeprecationWarning) */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Modes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_modes); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_old_modes); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_index); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_5, __pyx_v_mode) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_mode); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_new_mode = __pyx_t_6; __pyx_t_6 = 0; /* "pywt/_extensions/_pywt.pyx":133 * if mode in _old_modes: * new_mode = Modes.modes[_old_modes.index(mode)] * warnings.warn(_attr_deprecation_msg.format(old=mode, new=new_mode), # <<<<<<<<<<<<<< * DeprecationWarning) * mode = new_mode */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_warnings); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_warn); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_attr_deprecation_msg); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_format); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_old, __pyx_v_mode) < 0) __PYX_ERR(0, 133, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_new, __pyx_v_new_mode) < 0) __PYX_ERR(0, 133, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_pywt.pyx":134 * new_mode = Modes.modes[_old_modes.index(mode)] * warnings.warn(_attr_deprecation_msg.format(old=mode, new=new_mode), * DeprecationWarning) # <<<<<<<<<<<<<< * mode = new_mode * return Modes.__getattribute__(mode) */ __pyx_t_1 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_7, __pyx_builtin_DeprecationWarning}; __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_7, __pyx_builtin_DeprecationWarning}; __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_8, __pyx_t_7); __Pyx_INCREF(__pyx_builtin_DeprecationWarning); __Pyx_GIVEREF(__pyx_builtin_DeprecationWarning); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_8, __pyx_builtin_DeprecationWarning); __pyx_t_7 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "pywt/_extensions/_pywt.pyx":135 * warnings.warn(_attr_deprecation_msg.format(old=mode, new=new_mode), * DeprecationWarning) * mode = new_mode # <<<<<<<<<<<<<< * return Modes.__getattribute__(mode) * */ __Pyx_INCREF(__pyx_v_new_mode); __Pyx_DECREF_SET(__pyx_v_mode, __pyx_v_new_mode); /* "pywt/_extensions/_pywt.pyx":131 * def __getattr__(self, mode): * # catch deprecated mode names * if mode in _old_modes: # <<<<<<<<<<<<<< * new_mode = Modes.modes[_old_modes.index(mode)] * warnings.warn(_attr_deprecation_msg.format(old=mode, new=new_mode), */ } /* "pywt/_extensions/_pywt.pyx":136 * DeprecationWarning) * mode = new_mode * return Modes.__getattribute__(mode) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Modes); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_6 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_v_mode) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_mode); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":129 * return m * * def __getattr__(self, mode): # <<<<<<<<<<<<<< * # catch deprecated mode names * if mode in _old_modes: */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("pywt._extensions._pywt._Modes.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_new_mode); __Pyx_XDECREF(__pyx_v_mode); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":146 * "removed in a future version of pywt.") * * def __getattribute__(self, attr): # <<<<<<<<<<<<<< * """Override so that deprecation warning is shown * every time MODES is used. */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_16_DeprecatedMODES_1__getattribute__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_4pywt_11_extensions_5_pywt_16_DeprecatedMODES___getattribute__[] = "Override so that deprecation warning is shown\n every time MODES is used.\n\n N.B. have to use __getattribute__ as well as __getattr__\n to ensure warning on e.g. `MODES.symmetric`.\n "; static PyMethodDef __pyx_mdef_4pywt_11_extensions_5_pywt_16_DeprecatedMODES_1__getattribute__ = {"__getattribute__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_5_pywt_16_DeprecatedMODES_1__getattribute__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4pywt_11_extensions_5_pywt_16_DeprecatedMODES___getattribute__}; static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_16_DeprecatedMODES_1__getattribute__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_self = 0; PyObject *__pyx_v_attr = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getattribute__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_attr,0}; PyObject* values[2] = {0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_attr)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__getattribute__", 1, 2, 2, 1); __PYX_ERR(0, 146, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__getattribute__") < 0)) __PYX_ERR(0, 146, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); } __pyx_v_self = values[0]; __pyx_v_attr = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__getattribute__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 146, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._pywt._DeprecatedMODES.__getattribute__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_16_DeprecatedMODES___getattribute__(__pyx_self, __pyx_v_self, __pyx_v_attr); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_16_DeprecatedMODES___getattribute__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_attr) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; int __pyx_t_7; PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("__getattribute__", 0); /* "pywt/_extensions/_pywt.pyx":153 * to ensure warning on e.g. `MODES.symmetric`. * """ * if not attr.startswith('_'): # <<<<<<<<<<<<<< * warnings.warn(_DeprecatedMODES.msg, DeprecationWarning) * return _Modes.__getattribute__(self, attr) */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_startswith); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_n_u__3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_n_u__3); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 153, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_5 = ((!__pyx_t_4) != 0); if (__pyx_t_5) { /* "pywt/_extensions/_pywt.pyx":154 * """ * if not attr.startswith('_'): * warnings.warn(_DeprecatedMODES.msg, DeprecationWarning) # <<<<<<<<<<<<<< * return _Modes.__getattribute__(self, attr) * */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_warnings); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_warn); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_DeprecatedMODES); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_msg); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_7 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_6, __pyx_builtin_DeprecationWarning}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_6, __pyx_builtin_DeprecationWarning}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif { __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_6); __Pyx_INCREF(__pyx_builtin_DeprecationWarning); __Pyx_GIVEREF(__pyx_builtin_DeprecationWarning); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_builtin_DeprecationWarning); __pyx_t_6 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_pywt.pyx":153 * to ensure warning on e.g. `MODES.symmetric`. * """ * if not attr.startswith('_'): # <<<<<<<<<<<<<< * warnings.warn(_DeprecatedMODES.msg, DeprecationWarning) * return _Modes.__getattribute__(self, attr) */ } /* "pywt/_extensions/_pywt.pyx":155 * if not attr.startswith('_'): * warnings.warn(_DeprecatedMODES.msg, DeprecationWarning) * return _Modes.__getattribute__(self, attr) # <<<<<<<<<<<<<< * * def __getattr__(self, attr): */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Modes_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 155, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 155, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); __pyx_t_7 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_self, __pyx_v_attr}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 155, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_self, __pyx_v_attr}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 155, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_6 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 155, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_v_self); __Pyx_GIVEREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_7, __pyx_v_self); __Pyx_INCREF(__pyx_v_attr); __Pyx_GIVEREF(__pyx_v_attr); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_7, __pyx_v_attr); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 155, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":146 * "removed in a future version of pywt.") * * def __getattribute__(self, attr): # <<<<<<<<<<<<<< * """Override so that deprecation warning is shown * every time MODES is used. */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("pywt._extensions._pywt._DeprecatedMODES.__getattribute__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":157 * return _Modes.__getattribute__(self, attr) * * def __getattr__(self, attr): # <<<<<<<<<<<<<< * """Override so that deprecation warning is shown * every time MODES is used. */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_16_DeprecatedMODES_3__getattr__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_4pywt_11_extensions_5_pywt_16_DeprecatedMODES_2__getattr__[] = "Override so that deprecation warning is shown\n every time MODES is used.\n "; static PyMethodDef __pyx_mdef_4pywt_11_extensions_5_pywt_16_DeprecatedMODES_3__getattr__ = {"__getattr__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_5_pywt_16_DeprecatedMODES_3__getattr__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4pywt_11_extensions_5_pywt_16_DeprecatedMODES_2__getattr__}; static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_16_DeprecatedMODES_3__getattr__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_self = 0; PyObject *__pyx_v_attr = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getattr__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_attr,0}; PyObject* values[2] = {0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_attr)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__getattr__", 1, 2, 2, 1); __PYX_ERR(0, 157, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__getattr__") < 0)) __PYX_ERR(0, 157, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); } __pyx_v_self = values[0]; __pyx_v_attr = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__getattr__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 157, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._pywt._DeprecatedMODES.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_16_DeprecatedMODES_2__getattr__(__pyx_self, __pyx_v_self, __pyx_v_attr); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_16_DeprecatedMODES_2__getattr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_attr) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; __Pyx_RefNannySetupContext("__getattr__", 0); /* "pywt/_extensions/_pywt.pyx":161 * every time MODES is used. * """ * warnings.warn(_DeprecatedMODES.msg, DeprecationWarning) # <<<<<<<<<<<<<< * return _Modes.__getattr__(self, attr) * */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_warnings); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_warn); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_DeprecatedMODES); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_msg); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_5 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_4, __pyx_builtin_DeprecationWarning}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 161, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_4, __pyx_builtin_DeprecationWarning}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 161, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_builtin_DeprecationWarning); __Pyx_GIVEREF(__pyx_builtin_DeprecationWarning); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_builtin_DeprecationWarning); __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_pywt.pyx":162 * """ * warnings.warn(_DeprecatedMODES.msg, DeprecationWarning) * return _Modes.__getattr__(self, attr) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Modes_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_getattr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; __pyx_t_5 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_5 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_self, __pyx_v_attr}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 162, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_self, __pyx_v_attr}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 162, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_4 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_v_self); __Pyx_GIVEREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_5, __pyx_v_self); __Pyx_INCREF(__pyx_v_attr); __Pyx_GIVEREF(__pyx_v_attr); PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_5, __pyx_v_attr); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":157 * return _Modes.__getattribute__(self, attr) * * def __getattr__(self, attr): # <<<<<<<<<<<<<< * """Override so that deprecation warning is shown * every time MODES is used. */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("pywt._extensions._pywt._DeprecatedMODES.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":172 * include "wavelets_list.pxi" # __wname_to_code * * cdef object wname_to_code(name): # <<<<<<<<<<<<<< * cdef object code_number * try: */ static PyObject *__pyx_f_4pywt_11_extensions_5_pywt_wname_to_code(PyObject *__pyx_v_name) { PyObject *__pyx_v_code_number = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; Py_ssize_t __pyx_t_5; int __pyx_t_6; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; int __pyx_t_9; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; __Pyx_RefNannySetupContext("wname_to_code", 0); __Pyx_INCREF(__pyx_v_name); /* "pywt/_extensions/_pywt.pyx":174 * cdef object wname_to_code(name): * cdef object code_number * try: # <<<<<<<<<<<<<< * if len(name) > 4 and name[:4] in ['cmor', 'shan', 'fbsp']: * name = name[:4] */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "pywt/_extensions/_pywt.pyx":175 * cdef object code_number * try: * if len(name) > 4 and name[:4] in ['cmor', 'shan', 'fbsp']: # <<<<<<<<<<<<<< * name = name[:4] * code_number = __wname_to_code[name] */ __pyx_t_5 = PyObject_Length(__pyx_v_name); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 175, __pyx_L3_error) __pyx_t_6 = ((__pyx_t_5 > 4) != 0); if (__pyx_t_6) { } else { __pyx_t_4 = __pyx_t_6; goto __pyx_L10_bool_binop_done; } __pyx_t_7 = __Pyx_PyObject_GetSlice(__pyx_v_name, 0, 4, NULL, NULL, &__pyx_slice__4, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 175, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_n_u_cmor, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 175, __pyx_L3_error) if (!__pyx_t_8) { } else { __pyx_t_6 = __pyx_t_8; goto __pyx_L12_bool_binop_done; } __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_n_u_shan, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 175, __pyx_L3_error) if (!__pyx_t_8) { } else { __pyx_t_6 = __pyx_t_8; goto __pyx_L12_bool_binop_done; } __pyx_t_8 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_n_u_fbsp, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 175, __pyx_L3_error) __pyx_t_6 = __pyx_t_8; __pyx_L12_bool_binop_done:; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8 = (__pyx_t_6 != 0); __pyx_t_4 = __pyx_t_8; __pyx_L10_bool_binop_done:; if (__pyx_t_4) { /* "pywt/_extensions/_pywt.pyx":176 * try: * if len(name) > 4 and name[:4] in ['cmor', 'shan', 'fbsp']: * name = name[:4] # <<<<<<<<<<<<<< * code_number = __wname_to_code[name] * return code_number */ __pyx_t_7 = __Pyx_PyObject_GetSlice(__pyx_v_name, 0, 4, NULL, NULL, &__pyx_slice__4, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 176, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_7); __pyx_t_7 = 0; /* "pywt/_extensions/_pywt.pyx":175 * cdef object code_number * try: * if len(name) > 4 and name[:4] in ['cmor', 'shan', 'fbsp']: # <<<<<<<<<<<<<< * name = name[:4] * code_number = __wname_to_code[name] */ } /* "pywt/_extensions/_pywt.pyx":177 * if len(name) > 4 and name[:4] in ['cmor', 'shan', 'fbsp']: * name = name[:4] * code_number = __wname_to_code[name] # <<<<<<<<<<<<<< * return code_number * except KeyError: */ __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_4pywt_11_extensions_5_pywt___wname_to_code, __pyx_v_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 177, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); __pyx_v_code_number = __pyx_t_7; __pyx_t_7 = 0; /* "pywt/_extensions/_pywt.pyx":178 * name = name[:4] * code_number = __wname_to_code[name] * return code_number # <<<<<<<<<<<<<< * except KeyError: * raise ValueError("Unknown wavelet name '%s', check wavelist() for the " */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_code_number); __pyx_r = __pyx_v_code_number; goto __pyx_L7_try_return; /* "pywt/_extensions/_pywt.pyx":174 * cdef object wname_to_code(name): * cdef object code_number * try: # <<<<<<<<<<<<<< * if len(name) > 4 and name[:4] in ['cmor', 'shan', 'fbsp']: * name = name[:4] */ } __pyx_L3_error:; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "pywt/_extensions/_pywt.pyx":179 * code_number = __wname_to_code[name] * return code_number * except KeyError: # <<<<<<<<<<<<<< * raise ValueError("Unknown wavelet name '%s', check wavelist() for the " * "list of available builtin wavelets." % name) */ __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError); if (__pyx_t_9) { __Pyx_AddTraceback("pywt._extensions._pywt.wname_to_code", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_10, &__pyx_t_11) < 0) __PYX_ERR(0, 179, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GOTREF(__pyx_t_10); __Pyx_GOTREF(__pyx_t_11); /* "pywt/_extensions/_pywt.pyx":181 * except KeyError: * raise ValueError("Unknown wavelet name '%s', check wavelist() for the " * "list of available builtin wavelets." % name) # <<<<<<<<<<<<<< * * */ __pyx_t_12 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_Unknown_wavelet_name_s_check_wav, __pyx_v_name); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 181, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_12); /* "pywt/_extensions/_pywt.pyx":180 * return code_number * except KeyError: * raise ValueError("Unknown wavelet name '%s', check wavelist() for the " # <<<<<<<<<<<<<< * "list of available builtin wavelets." % name) * */ __pyx_t_13 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 180, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_Raise(__pyx_t_13, 0, 0, 0); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __PYX_ERR(0, 180, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; /* "pywt/_extensions/_pywt.pyx":174 * cdef object wname_to_code(name): * cdef object code_number * try: # <<<<<<<<<<<<<< * if len(name) > 4 and name[:4] in ['cmor', 'shan', 'fbsp']: * name = name[:4] */ __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L7_try_return:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L0; } /* "pywt/_extensions/_pywt.pyx":172 * include "wavelets_list.pxi" # __wname_to_code * * cdef object wname_to_code(name): # <<<<<<<<<<<<<< * cdef object code_number * try: */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __Pyx_XDECREF(__pyx_t_12); __Pyx_XDECREF(__pyx_t_13); __Pyx_AddTraceback("pywt._extensions._pywt.wname_to_code", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_code_number); __Pyx_XDECREF(__pyx_v_name); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":184 * * * def wavelist(family=None, kind='all'): # <<<<<<<<<<<<<< * """ * wavelist(family=None, kind='all') */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_1wavelist(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_4pywt_11_extensions_5_pywt_wavelist[] = "\n wavelist(family=None, kind='all')\n\n Returns list of available wavelet names for the given family name.\n\n Parameters\n ----------\n family : str, optional\n Short family name. If the family name is None (default) then names\n of all the built-in wavelets are returned. Otherwise the function\n returns names of wavelets that belong to the given family.\n Valid names are::\n\n 'haar', 'db', 'sym', 'coif', 'bior', 'rbio', 'dmey', 'gaus',\n 'mexh', 'morl', 'cgau', 'shan', 'fbsp', 'cmor'\n\n kind : {'all', 'continuous', 'discrete'}, optional\n Whether to return only wavelet names of discrete or continuous\n wavelets, or all wavelets. Default is ``'all'``.\n Ignored if ``family`` is specified.\n\n Returns\n -------\n wavelist : list of str\n List of available wavelet names.\n\n Examples\n --------\n >>> import pywt\n >>> pywt.wavelist('coif')\n ['coif1', 'coif2', 'coif3', 'coif4', 'coif5', 'coif6', 'coif7', ...\n >>> pywt.wavelist(kind='continuous')\n ['cgau1', 'cgau2', 'cgau3', 'cgau4', 'cgau5', 'cgau6', 'cgau7', ...\n\n "; static PyMethodDef __pyx_mdef_4pywt_11_extensions_5_pywt_1wavelist = {"wavelist", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_5_pywt_1wavelist, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4pywt_11_extensions_5_pywt_wavelist}; static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_1wavelist(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_family = 0; PyObject *__pyx_v_kind = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("wavelist (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_family,&__pyx_n_s_kind,0}; PyObject* values[2] = {0,0}; values[0] = ((PyObject *)Py_None); values[1] = ((PyObject *)__pyx_n_u_all); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_family); if (value) { values[0] = value; kw_args--; } } CYTHON_FALLTHROUGH; case 1: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kind); if (value) { values[1] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "wavelist") < 0)) __PYX_ERR(0, 184, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_family = values[0]; __pyx_v_kind = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("wavelist", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 184, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._pywt.wavelist", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_wavelist(__pyx_self, __pyx_v_family, __pyx_v_kind); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":225 * raise ValueError("Unrecognized value for `kind`: %s" % kind) * * def _check_kind(name, kind): # <<<<<<<<<<<<<< * if kind == 'all': * return True */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_8wavelist_1_check_kind(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_4pywt_11_extensions_5_pywt_8wavelist_1_check_kind = {"_check_kind", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_5_pywt_8wavelist_1_check_kind, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_8wavelist_1_check_kind(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_name = 0; PyObject *__pyx_v_kind = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_check_kind (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_kind,0}; PyObject* values[2] = {0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kind)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("_check_kind", 1, 2, 2, 1); __PYX_ERR(0, 225, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_check_kind") < 0)) __PYX_ERR(0, 225, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); } __pyx_v_name = values[0]; __pyx_v_kind = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("_check_kind", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 225, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._pywt.wavelist._check_kind", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_8wavelist__check_kind(__pyx_self, __pyx_v_name, __pyx_v_kind); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_8wavelist__check_kind(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name, PyObject *__pyx_v_kind) { PyObject *__pyx_v_family_code = NULL; CYTHON_UNUSED PyObject *__pyx_v_family_number = NULL; int __pyx_v_is_discrete; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *(*__pyx_t_6)(PyObject *); WAVELET_NAME __pyx_t_7; __Pyx_RefNannySetupContext("_check_kind", 0); /* "pywt/_extensions/_pywt.pyx":226 * * def _check_kind(name, kind): * if kind == 'all': # <<<<<<<<<<<<<< * return True * */ __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_kind, __pyx_n_u_all, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 226, __pyx_L1_error) if (__pyx_t_1) { /* "pywt/_extensions/_pywt.pyx":227 * def _check_kind(name, kind): * if kind == 'all': * return True # <<<<<<<<<<<<<< * * family_code, family_number = wname_to_code(name) */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_True); __pyx_r = Py_True; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":226 * * def _check_kind(name, kind): * if kind == 'all': # <<<<<<<<<<<<<< * return True * */ } /* "pywt/_extensions/_pywt.pyx":229 * return True * * family_code, family_number = wname_to_code(name) # <<<<<<<<<<<<<< * is_discrete = is_discrete_wav(family_code) * if kind == 'discrete': */ __pyx_t_2 = __pyx_f_4pywt_11_extensions_5_pywt_wname_to_code(__pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 229, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_3 = PyList_GET_ITEM(sequence, 0); __pyx_t_4 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); #else __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext; index = 0; __pyx_t_3 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_3)) goto __pyx_L4_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); index = 1; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L4_unpacking_failed; __Pyx_GOTREF(__pyx_t_4); if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 2) < 0) __PYX_ERR(0, 229, __pyx_L1_error) __pyx_t_6 = NULL; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L5_unpacking_done; __pyx_L4_unpacking_failed:; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 229, __pyx_L1_error) __pyx_L5_unpacking_done:; } __pyx_v_family_code = __pyx_t_3; __pyx_t_3 = 0; __pyx_v_family_number = __pyx_t_4; __pyx_t_4 = 0; /* "pywt/_extensions/_pywt.pyx":230 * * family_code, family_number = wname_to_code(name) * is_discrete = is_discrete_wav(family_code) # <<<<<<<<<<<<<< * if kind == 'discrete': * return is_discrete */ __pyx_t_7 = ((WAVELET_NAME)__Pyx_PyInt_As_WAVELET_NAME(__pyx_v_family_code)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 230, __pyx_L1_error) __pyx_v_is_discrete = __pyx_f_4pywt_11_extensions_5_pywt_is_discrete_wav(__pyx_t_7); /* "pywt/_extensions/_pywt.pyx":231 * family_code, family_number = wname_to_code(name) * is_discrete = is_discrete_wav(family_code) * if kind == 'discrete': # <<<<<<<<<<<<<< * return is_discrete * else: */ __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_kind, __pyx_n_u_discrete, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 231, __pyx_L1_error) if (__pyx_t_1) { /* "pywt/_extensions/_pywt.pyx":232 * is_discrete = is_discrete_wav(family_code) * if kind == 'discrete': * return is_discrete # <<<<<<<<<<<<<< * else: * return not is_discrete */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_is_discrete); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":231 * family_code, family_number = wname_to_code(name) * is_discrete = is_discrete_wav(family_code) * if kind == 'discrete': # <<<<<<<<<<<<<< * return is_discrete * else: */ } /* "pywt/_extensions/_pywt.pyx":234 * return is_discrete * else: * return not is_discrete # <<<<<<<<<<<<<< * * sorting_list = [] # for natural sorting order */ /*else*/ { __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyBool_FromLong((!(__pyx_v_is_discrete != 0))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; } /* "pywt/_extensions/_pywt.pyx":225 * raise ValueError("Unrecognized value for `kind`: %s" % kind) * * def _check_kind(name, kind): # <<<<<<<<<<<<<< * if kind == 'all': * return True */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pywt._extensions._pywt.wavelist._check_kind", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_family_code); __Pyx_XDECREF(__pyx_v_family_number); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":184 * * * def wavelist(family=None, kind='all'): # <<<<<<<<<<<<<< * """ * wavelist(family=None, kind='all') */ static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_wavelist(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_family, PyObject *__pyx_v_kind) { PyObject *__pyx_v_wavelets = 0; PyObject *__pyx_v_sorting_list = 0; PyObject *__pyx_v__check_kind = 0; PyObject *__pyx_v_name = 0; CYTHON_UNUSED PyObject *__pyx_v_x = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; Py_ssize_t __pyx_t_5; PyObject *(*__pyx_t_6)(PyObject *); Py_ssize_t __pyx_t_7; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; int __pyx_t_10; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *(*__pyx_t_13)(PyObject *); __Pyx_RefNannySetupContext("wavelist", 0); /* "pywt/_extensions/_pywt.pyx":222 * cdef object wavelets, sorting_list * * if kind not in ('all', 'continuous', 'discrete'): # <<<<<<<<<<<<<< * raise ValueError("Unrecognized value for `kind`: %s" % kind) * */ __Pyx_INCREF(__pyx_v_kind); __pyx_t_1 = __pyx_v_kind; __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_all, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 222, __pyx_L1_error) if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_continuous, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 222, __pyx_L1_error) if (__pyx_t_3) { } else { __pyx_t_2 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_discrete, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 222, __pyx_L1_error) __pyx_t_2 = __pyx_t_3; __pyx_L4_bool_binop_done:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__pyx_t_2 != 0); if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_pywt.pyx":223 * * if kind not in ('all', 'continuous', 'discrete'): * raise ValueError("Unrecognized value for `kind`: %s" % kind) # <<<<<<<<<<<<<< * * def _check_kind(name, kind): */ __pyx_t_1 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_Unrecognized_value_for_kind_s, __pyx_v_kind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(0, 223, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":222 * cdef object wavelets, sorting_list * * if kind not in ('all', 'continuous', 'discrete'): # <<<<<<<<<<<<<< * raise ValueError("Unrecognized value for `kind`: %s" % kind) * */ } /* "pywt/_extensions/_pywt.pyx":225 * raise ValueError("Unrecognized value for `kind`: %s" % kind) * * def _check_kind(name, kind): # <<<<<<<<<<<<<< * if kind == 'all': * return True */ __pyx_t_4 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4pywt_11_extensions_5_pywt_8wavelist_1_check_kind, 0, __pyx_n_s_wavelist_locals__check_kind, NULL, __pyx_n_s_pywt__extensions__pywt, __pyx_d, ((PyObject *)__pyx_codeobj__6)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v__check_kind = __pyx_t_4; __pyx_t_4 = 0; /* "pywt/_extensions/_pywt.pyx":236 * return not is_discrete * * sorting_list = [] # for natural sorting order # <<<<<<<<<<<<<< * wavelets = [] * cdef object name */ __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_sorting_list = __pyx_t_4; __pyx_t_4 = 0; /* "pywt/_extensions/_pywt.pyx":237 * * sorting_list = [] # for natural sorting order * wavelets = [] # <<<<<<<<<<<<<< * cdef object name * if family is None: */ __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_wavelets = __pyx_t_4; __pyx_t_4 = 0; /* "pywt/_extensions/_pywt.pyx":239 * wavelets = [] * cdef object name * if family is None: # <<<<<<<<<<<<<< * for name in __wname_to_code: * if _check_kind(name, kind): */ __pyx_t_3 = (__pyx_v_family == Py_None); __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { /* "pywt/_extensions/_pywt.pyx":240 * cdef object name * if family is None: * for name in __wname_to_code: # <<<<<<<<<<<<<< * if _check_kind(name, kind): * sorting_list.append((name[:2], len(name), name)) */ if (likely(PyList_CheckExact(__pyx_v_4pywt_11_extensions_5_pywt___wname_to_code)) || PyTuple_CheckExact(__pyx_v_4pywt_11_extensions_5_pywt___wname_to_code)) { __pyx_t_4 = __pyx_v_4pywt_11_extensions_5_pywt___wname_to_code; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_4pywt_11_extensions_5_pywt___wname_to_code); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 240, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 240, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 240, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_6(__pyx_t_4); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 240, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_pywt.pyx":241 * if family is None: * for name in __wname_to_code: * if _check_kind(name, kind): # <<<<<<<<<<<<<< * sorting_list.append((name[:2], len(name), name)) * elif family in __wfamily_list_short: */ __pyx_t_1 = __pyx_pf_4pywt_11_extensions_5_pywt_8wavelist__check_kind(__pyx_v__check_kind, __pyx_v_name, __pyx_v_kind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 241, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { /* "pywt/_extensions/_pywt.pyx":242 * for name in __wname_to_code: * if _check_kind(name, kind): * sorting_list.append((name[:2], len(name), name)) # <<<<<<<<<<<<<< * elif family in __wfamily_list_short: * for name in __wname_to_code: */ __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_name, 0, 2, NULL, NULL, &__pyx_slice__7, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = PyObject_Length(__pyx_v_name); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 242, __pyx_L1_error) __pyx_t_8 = PyInt_FromSsize_t(__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 242, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_8); __Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_v_name); __pyx_t_1 = 0; __pyx_t_8 = 0; __pyx_t_10 = __Pyx_PyObject_Append(__pyx_v_sorting_list, __pyx_t_9); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 242, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; /* "pywt/_extensions/_pywt.pyx":241 * if family is None: * for name in __wname_to_code: * if _check_kind(name, kind): # <<<<<<<<<<<<<< * sorting_list.append((name[:2], len(name), name)) * elif family in __wfamily_list_short: */ } /* "pywt/_extensions/_pywt.pyx":240 * cdef object name * if family is None: * for name in __wname_to_code: # <<<<<<<<<<<<<< * if _check_kind(name, kind): * sorting_list.append((name[:2], len(name), name)) */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "pywt/_extensions/_pywt.pyx":239 * wavelets = [] * cdef object name * if family is None: # <<<<<<<<<<<<<< * for name in __wname_to_code: * if _check_kind(name, kind): */ goto __pyx_L7; } /* "pywt/_extensions/_pywt.pyx":243 * if _check_kind(name, kind): * sorting_list.append((name[:2], len(name), name)) * elif family in __wfamily_list_short: # <<<<<<<<<<<<<< * for name in __wname_to_code: * if name.startswith(family): */ __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_family, __pyx_v_4pywt_11_extensions_5_pywt___wfamily_list_short, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 243, __pyx_L1_error) __pyx_t_3 = (__pyx_t_2 != 0); if (likely(__pyx_t_3)) { /* "pywt/_extensions/_pywt.pyx":244 * sorting_list.append((name[:2], len(name), name)) * elif family in __wfamily_list_short: * for name in __wname_to_code: # <<<<<<<<<<<<<< * if name.startswith(family): * sorting_list.append((name[:2], len(name), name)) */ if (likely(PyList_CheckExact(__pyx_v_4pywt_11_extensions_5_pywt___wname_to_code)) || PyTuple_CheckExact(__pyx_v_4pywt_11_extensions_5_pywt___wname_to_code)) { __pyx_t_4 = __pyx_v_4pywt_11_extensions_5_pywt___wname_to_code; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_4pywt_11_extensions_5_pywt___wname_to_code); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 244, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_9 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_9); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 244, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_9); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 244, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif } } else { __pyx_t_9 = __pyx_t_6(__pyx_t_4); if (unlikely(!__pyx_t_9)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 244, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_9); } __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_9); __pyx_t_9 = 0; /* "pywt/_extensions/_pywt.pyx":245 * elif family in __wfamily_list_short: * for name in __wname_to_code: * if name.startswith(family): # <<<<<<<<<<<<<< * sorting_list.append((name[:2], len(name), name)) * else: */ __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s_startswith); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_9 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_1, __pyx_v_family) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_family); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 245, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (__pyx_t_3) { /* "pywt/_extensions/_pywt.pyx":246 * for name in __wname_to_code: * if name.startswith(family): * sorting_list.append((name[:2], len(name), name)) # <<<<<<<<<<<<<< * else: * raise ValueError("Invalid short family name '%s'." % family) */ __pyx_t_9 = __Pyx_PyObject_GetSlice(__pyx_v_name, 0, 2, NULL, NULL, &__pyx_slice__7, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = PyObject_Length(__pyx_v_name); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 246, __pyx_L1_error) __pyx_t_8 = PyInt_FromSsize_t(__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 246, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_8); __Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_name); __pyx_t_9 = 0; __pyx_t_8 = 0; __pyx_t_10 = __Pyx_PyObject_Append(__pyx_v_sorting_list, __pyx_t_1); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 246, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_pywt.pyx":245 * elif family in __wfamily_list_short: * for name in __wname_to_code: * if name.startswith(family): # <<<<<<<<<<<<<< * sorting_list.append((name[:2], len(name), name)) * else: */ } /* "pywt/_extensions/_pywt.pyx":244 * sorting_list.append((name[:2], len(name), name)) * elif family in __wfamily_list_short: * for name in __wname_to_code: # <<<<<<<<<<<<<< * if name.startswith(family): * sorting_list.append((name[:2], len(name), name)) */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "pywt/_extensions/_pywt.pyx":243 * if _check_kind(name, kind): * sorting_list.append((name[:2], len(name), name)) * elif family in __wfamily_list_short: # <<<<<<<<<<<<<< * for name in __wname_to_code: * if name.startswith(family): */ goto __pyx_L7; } /* "pywt/_extensions/_pywt.pyx":248 * sorting_list.append((name[:2], len(name), name)) * else: * raise ValueError("Invalid short family name '%s'." % family) # <<<<<<<<<<<<<< * * sorting_list.sort() */ /*else*/ { __pyx_t_4 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_Invalid_short_family_name_s, __pyx_v_family); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 248, __pyx_L1_error) } __pyx_L7:; /* "pywt/_extensions/_pywt.pyx":250 * raise ValueError("Invalid short family name '%s'." % family) * * sorting_list.sort() # <<<<<<<<<<<<<< * for x, x, name in sorting_list: * wavelets.append(name) */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_sorting_list, __pyx_n_s_sort); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 250, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_pywt.pyx":251 * * sorting_list.sort() * for x, x, name in sorting_list: # <<<<<<<<<<<<<< * wavelets.append(name) * return wavelets */ if (likely(PyList_CheckExact(__pyx_v_sorting_list)) || PyTuple_CheckExact(__pyx_v_sorting_list)) { __pyx_t_1 = __pyx_v_sorting_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_sorting_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 251, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 251, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 251, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } } else { __pyx_t_4 = __pyx_t_6(__pyx_t_1); if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 251, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_4); } if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) { PyObject* sequence = __pyx_t_4; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 251, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_9 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_11 = PyTuple_GET_ITEM(sequence, 2); } else { __pyx_t_8 = PyList_GET_ITEM(sequence, 0); __pyx_t_9 = PyList_GET_ITEM(sequence, 1); __pyx_t_11 = PyList_GET_ITEM(sequence, 2); } __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(__pyx_t_11); #else __pyx_t_8 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_11 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #endif __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else { Py_ssize_t index = -1; __pyx_t_12 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_13 = Py_TYPE(__pyx_t_12)->tp_iternext; index = 0; __pyx_t_8 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_8)) goto __pyx_L16_unpacking_failed; __Pyx_GOTREF(__pyx_t_8); index = 1; __pyx_t_9 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_9)) goto __pyx_L16_unpacking_failed; __Pyx_GOTREF(__pyx_t_9); index = 2; __pyx_t_11 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_11)) goto __pyx_L16_unpacking_failed; __Pyx_GOTREF(__pyx_t_11); if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_12), 3) < 0) __PYX_ERR(0, 251, __pyx_L1_error) __pyx_t_13 = NULL; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; goto __pyx_L17_unpacking_done; __pyx_L16_unpacking_failed:; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_13 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 251, __pyx_L1_error) __pyx_L17_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF_SET(__pyx_v_x, __pyx_t_9); __pyx_t_9 = 0; __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_11); __pyx_t_11 = 0; /* "pywt/_extensions/_pywt.pyx":252 * sorting_list.sort() * for x, x, name in sorting_list: * wavelets.append(name) # <<<<<<<<<<<<<< * return wavelets * */ __pyx_t_10 = __Pyx_PyObject_Append(__pyx_v_wavelets, __pyx_v_name); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 252, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":251 * * sorting_list.sort() * for x, x, name in sorting_list: # <<<<<<<<<<<<<< * wavelets.append(name) * return wavelets */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_pywt.pyx":253 * for x, x, name in sorting_list: * wavelets.append(name) * return wavelets # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_wavelets); __pyx_r = __pyx_v_wavelets; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":184 * * * def wavelist(family=None, kind='all'): # <<<<<<<<<<<<<< * """ * wavelist(family=None, kind='all') */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_11); __Pyx_XDECREF(__pyx_t_12); __Pyx_AddTraceback("pywt._extensions._pywt.wavelist", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_wavelets); __Pyx_XDECREF(__pyx_v_sorting_list); __Pyx_XDECREF(__pyx_v__check_kind); __Pyx_XDECREF(__pyx_v_name); __Pyx_XDECREF(__pyx_v_x); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":256 * * * def families(int short=True): # <<<<<<<<<<<<<< * """ * families(short=True) */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_3families(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_4pywt_11_extensions_5_pywt_2families[] = "\n families(short=True)\n\n Returns a list of available built-in wavelet families.\n\n Currently the built-in families are:\n\n * Haar (``haar``)\n * Daubechies (``db``)\n * Symlets (``sym``)\n * Coiflets (``coif``)\n * Biorthogonal (``bior``)\n * Reverse biorthogonal (``rbio``)\n * `\"Discrete\"` FIR approximation of Meyer wavelet (``dmey``)\n * Gaussian wavelets (``gaus``)\n * Mexican hat wavelet (``mexh``)\n * Morlet wavelet (``morl``)\n * Complex Gaussian wavelets (``cgau``)\n * Shannon wavelets (``shan``)\n * Frequency B-Spline wavelets (``fbsp``)\n * Complex Morlet wavelets (``cmor``)\n\n Parameters\n ----------\n short : bool, optional\n Use short names (default: True).\n\n Returns\n -------\n families : list\n List of available wavelet families.\n\n Examples\n --------\n >>> import pywt\n >>> pywt.families()\n ['haar', 'db', 'sym', 'coif', 'bior', 'rbio', 'dmey', 'gaus', 'mexh', 'morl', 'cgau', 'shan', 'fbsp', 'cmor']\n >>> pywt.families(short=False)\n ['Haar', 'Daubechies', 'Symlets', 'Coiflets', 'Biorthogonal', 'Reverse biorthogonal', 'Discrete Meyer (FIR Approximation)', 'Gaussian', 'Mexican hat wavelet', 'Morlet wavelet', 'Complex Gaussian wavelets', 'Shannon wavelets', 'Frequency B-Spline wavelets', 'Complex Morlet wavelets']\n\n "; static PyMethodDef __pyx_mdef_4pywt_11_extensions_5_pywt_3families = {"families", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_5_pywt_3families, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4pywt_11_extensions_5_pywt_2families}; static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_3families(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { int __pyx_v_short; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("families (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_short,0}; PyObject* values[1] = {0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_short); if (value) { values[0] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "families") < 0)) __PYX_ERR(0, 256, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } } if (values[0]) { __pyx_v_short = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_short == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 256, __pyx_L3_error) } else { __pyx_v_short = ((int)1); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("families", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 256, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._pywt.families", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_2families(__pyx_self, __pyx_v_short); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_2families(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_short) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("families", 0); /* "pywt/_extensions/_pywt.pyx":298 * * """ * if short: # <<<<<<<<<<<<<< * return __wfamily_list_short[:] * return __wfamily_list_long[:] */ __pyx_t_1 = (__pyx_v_short != 0); if (__pyx_t_1) { /* "pywt/_extensions/_pywt.pyx":299 * """ * if short: * return __wfamily_list_short[:] # <<<<<<<<<<<<<< * return __wfamily_list_long[:] * */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_4pywt_11_extensions_5_pywt___wfamily_list_short, 0, 0, NULL, NULL, &__pyx_slice__8, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":298 * * """ * if short: # <<<<<<<<<<<<<< * return __wfamily_list_short[:] * return __wfamily_list_long[:] */ } /* "pywt/_extensions/_pywt.pyx":300 * if short: * return __wfamily_list_short[:] * return __wfamily_list_long[:] # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_4pywt_11_extensions_5_pywt___wfamily_list_long, 0, 0, NULL, NULL, &__pyx_slice__8, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":256 * * * def families(int short=True): # <<<<<<<<<<<<<< * """ * families(short=True) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pywt._extensions._pywt.families", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":303 * * * def DiscreteContinuousWavelet(name=u"", object filter_bank=None): # <<<<<<<<<<<<<< * """ * DiscreteContinuousWavelet(name, filter_bank=None) returns a */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_5DiscreteContinuousWavelet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_4pywt_11_extensions_5_pywt_4DiscreteContinuousWavelet[] = "\n DiscreteContinuousWavelet(name, filter_bank=None) returns a\n Wavelet or a ContinuousWavelet object depending of the given name.\n\n In order to use a built-in wavelet the parameter name must be\n a valid name from the wavelist() list.\n To create a custom wavelet object, filter_bank parameter must\n be specified. It can be either a list of four filters or an object\n that a `filter_bank` attribute which returns a list of four\n filters - just like the Wavelet instance itself.\n\n For a ContinuousWavelet, filter_bank cannot be used and must remain unset.\n\n "; static PyMethodDef __pyx_mdef_4pywt_11_extensions_5_pywt_5DiscreteContinuousWavelet = {"DiscreteContinuousWavelet", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_5_pywt_5DiscreteContinuousWavelet, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4pywt_11_extensions_5_pywt_4DiscreteContinuousWavelet}; static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_5DiscreteContinuousWavelet(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_name = 0; PyObject *__pyx_v_filter_bank = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("DiscreteContinuousWavelet (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_filter_bank,0}; PyObject* values[2] = {0,0}; values[0] = ((PyObject *)__pyx_kp_u__9); values[1] = ((PyObject *)Py_None); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name); if (value) { values[0] = value; kw_args--; } } CYTHON_FALLTHROUGH; case 1: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_filter_bank); if (value) { values[1] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "DiscreteContinuousWavelet") < 0)) __PYX_ERR(0, 303, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_name = values[0]; __pyx_v_filter_bank = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("DiscreteContinuousWavelet", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 303, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._pywt.DiscreteContinuousWavelet", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_4DiscreteContinuousWavelet(__pyx_self, __pyx_v_name, __pyx_v_filter_bank); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_4DiscreteContinuousWavelet(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_name, PyObject *__pyx_v_filter_bank) { PyObject *__pyx_v_family_code = NULL; CYTHON_UNUSED PyObject *__pyx_v_family_number = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *(*__pyx_t_8)(PyObject *); WAVELET_NAME __pyx_t_9; __Pyx_RefNannySetupContext("DiscreteContinuousWavelet", 0); __Pyx_INCREF(__pyx_v_name); /* "pywt/_extensions/_pywt.pyx":318 * * """ * if not name and filter_bank is None: # <<<<<<<<<<<<<< * raise TypeError("Wavelet name or filter bank must be specified.") * if filter_bank is None: */ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_name); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 318, __pyx_L1_error) __pyx_t_3 = ((!__pyx_t_2) != 0); if (__pyx_t_3) { } else { __pyx_t_1 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = (__pyx_v_filter_bank == Py_None); __pyx_t_2 = (__pyx_t_3 != 0); __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_pywt.pyx":319 * """ * if not name and filter_bank is None: * raise TypeError("Wavelet name or filter bank must be specified.") # <<<<<<<<<<<<<< * if filter_bank is None: * name = name.lower() */ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(0, 319, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":318 * * """ * if not name and filter_bank is None: # <<<<<<<<<<<<<< * raise TypeError("Wavelet name or filter bank must be specified.") * if filter_bank is None: */ } /* "pywt/_extensions/_pywt.pyx":320 * if not name and filter_bank is None: * raise TypeError("Wavelet name or filter bank must be specified.") * if filter_bank is None: # <<<<<<<<<<<<<< * name = name.lower() * family_code, family_number = wname_to_code(name) */ __pyx_t_1 = (__pyx_v_filter_bank == Py_None); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "pywt/_extensions/_pywt.pyx":321 * raise TypeError("Wavelet name or filter bank must be specified.") * if filter_bank is None: * name = name.lower() # <<<<<<<<<<<<<< * family_code, family_number = wname_to_code(name) * if is_discrete_wav(family_code): */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s_lower); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 321, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_4); __pyx_t_4 = 0; /* "pywt/_extensions/_pywt.pyx":322 * if filter_bank is None: * name = name.lower() * family_code, family_number = wname_to_code(name) # <<<<<<<<<<<<<< * if is_discrete_wav(family_code): * return Wavelet(name, filter_bank) */ __pyx_t_4 = __pyx_f_4pywt_11_extensions_5_pywt_wname_to_code(__pyx_v_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) { PyObject* sequence = __pyx_t_4; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 322, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_5 = PyList_GET_ITEM(sequence, 0); __pyx_t_6 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); #else __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else { Py_ssize_t index = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; index = 0; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L7_unpacking_failed; __Pyx_GOTREF(__pyx_t_5); index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L7_unpacking_failed; __Pyx_GOTREF(__pyx_t_6); if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 322, __pyx_L1_error) __pyx_t_8 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L8_unpacking_done; __pyx_L7_unpacking_failed:; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 322, __pyx_L1_error) __pyx_L8_unpacking_done:; } __pyx_v_family_code = __pyx_t_5; __pyx_t_5 = 0; __pyx_v_family_number = __pyx_t_6; __pyx_t_6 = 0; /* "pywt/_extensions/_pywt.pyx":323 * name = name.lower() * family_code, family_number = wname_to_code(name) * if is_discrete_wav(family_code): # <<<<<<<<<<<<<< * return Wavelet(name, filter_bank) * else: */ __pyx_t_9 = ((WAVELET_NAME)__Pyx_PyInt_As_WAVELET_NAME(__pyx_v_family_code)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 323, __pyx_L1_error) __pyx_t_2 = (__pyx_f_4pywt_11_extensions_5_pywt_is_discrete_wav(__pyx_t_9) != 0); if (__pyx_t_2) { /* "pywt/_extensions/_pywt.pyx":324 * family_code, family_number = wname_to_code(name) * if is_discrete_wav(family_code): * return Wavelet(name, filter_bank) # <<<<<<<<<<<<<< * else: * return ContinuousWavelet(name) */ __Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_name); __Pyx_INCREF(__pyx_v_filter_bank); __Pyx_GIVEREF(__pyx_v_filter_bank); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_filter_bank); __pyx_t_6 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet), __pyx_t_4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":323 * name = name.lower() * family_code, family_number = wname_to_code(name) * if is_discrete_wav(family_code): # <<<<<<<<<<<<<< * return Wavelet(name, filter_bank) * else: */ } /* "pywt/_extensions/_pywt.pyx":326 * return Wavelet(name, filter_bank) * else: * return ContinuousWavelet(name) # <<<<<<<<<<<<<< * else: * return Wavelet(name, filter_bank) */ /*else*/ { __Pyx_XDECREF(__pyx_r); __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4pywt_11_extensions_5_pywt_ContinuousWavelet), __pyx_v_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0; } /* "pywt/_extensions/_pywt.pyx":320 * if not name and filter_bank is None: * raise TypeError("Wavelet name or filter bank must be specified.") * if filter_bank is None: # <<<<<<<<<<<<<< * name = name.lower() * family_code, family_number = wname_to_code(name) */ } /* "pywt/_extensions/_pywt.pyx":328 * return ContinuousWavelet(name) * else: * return Wavelet(name, filter_bank) # <<<<<<<<<<<<<< * * */ /*else*/ { __Pyx_XDECREF(__pyx_r); __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_name); __Pyx_INCREF(__pyx_v_filter_bank); __Pyx_GIVEREF(__pyx_v_filter_bank); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_filter_bank); __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet), __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; } /* "pywt/_extensions/_pywt.pyx":303 * * * def DiscreteContinuousWavelet(name=u"", object filter_bank=None): # <<<<<<<<<<<<<< * """ * DiscreteContinuousWavelet(name, filter_bank=None) returns a */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("pywt._extensions._pywt.DiscreteContinuousWavelet", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_family_code); __Pyx_XDECREF(__pyx_v_family_number); __Pyx_XDECREF(__pyx_v_name); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":345 * """ * #cdef readonly properties * def __cinit__(self, name=u"", object filter_bank=None): # <<<<<<<<<<<<<< * cdef object family_code, family_number * cdef object filters */ /* Python wrapper */ static int __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_name = 0; PyObject *__pyx_v_filter_bank = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_filter_bank,0}; PyObject* values[2] = {0,0}; values[0] = ((PyObject *)__pyx_kp_u__9); values[1] = ((PyObject *)Py_None); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name); if (value) { values[0] = value; kw_args--; } } CYTHON_FALLTHROUGH; case 1: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_filter_bank); if (value) { values[1] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 345, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_name = values[0]; __pyx_v_filter_bank = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 345, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._pywt.Wavelet.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet___cinit__(((struct WaveletObject *)__pyx_v_self), __pyx_v_name, __pyx_v_filter_bank); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet___cinit__(struct WaveletObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_filter_bank) { PyObject *__pyx_v_family_code = 0; PyObject *__pyx_v_family_number = 0; PyObject *__pyx_v_filters = 0; __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t __pyx_v_filter_length; PyObject *__pyx_v_dec_lo = 0; PyObject *__pyx_v_dec_hi = 0; PyObject *__pyx_v_rec_lo = 0; PyObject *__pyx_v_rec_hi = 0; PyObject *__pyx_v_msg = NULL; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *(*__pyx_t_8)(PyObject *); WAVELET_NAME __pyx_t_9; WAVELET_NAME __pyx_t_10; int __pyx_t_11; Py_ssize_t __pyx_t_12; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; Py_ssize_t __pyx_t_17; Py_ssize_t __pyx_t_18; __Pyx_RefNannySetupContext("__cinit__", 0); /* "pywt/_extensions/_pywt.pyx":351 * cdef object dec_lo, dec_hi, rec_lo, rec_hi * * if not name and filter_bank is None: # <<<<<<<<<<<<<< * raise TypeError("Wavelet name or filter bank must be specified.") * */ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_name); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 351, __pyx_L1_error) __pyx_t_3 = ((!__pyx_t_2) != 0); if (__pyx_t_3) { } else { __pyx_t_1 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = (__pyx_v_filter_bank == Py_None); __pyx_t_2 = (__pyx_t_3 != 0); __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_pywt.pyx":352 * * if not name and filter_bank is None: * raise TypeError("Wavelet name or filter bank must be specified.") # <<<<<<<<<<<<<< * * if filter_bank is None: */ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(0, 352, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":351 * cdef object dec_lo, dec_hi, rec_lo, rec_hi * * if not name and filter_bank is None: # <<<<<<<<<<<<<< * raise TypeError("Wavelet name or filter bank must be specified.") * */ } /* "pywt/_extensions/_pywt.pyx":354 * raise TypeError("Wavelet name or filter bank must be specified.") * * if filter_bank is None: # <<<<<<<<<<<<<< * # builtin wavelet * self.name = name.lower() */ __pyx_t_1 = (__pyx_v_filter_bank == Py_None); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "pywt/_extensions/_pywt.pyx":356 * if filter_bank is None: * # builtin wavelet * self.name = name.lower() # <<<<<<<<<<<<<< * family_code, family_number = wname_to_code(self.name) * if is_discrete_wav(family_code): */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s_lower); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GIVEREF(__pyx_t_4); __Pyx_GOTREF(__pyx_v_self->name); __Pyx_DECREF(__pyx_v_self->name); __pyx_v_self->name = __pyx_t_4; __pyx_t_4 = 0; /* "pywt/_extensions/_pywt.pyx":357 * # builtin wavelet * self.name = name.lower() * family_code, family_number = wname_to_code(self.name) # <<<<<<<<<<<<<< * if is_discrete_wav(family_code): * self.w = wavelet.discrete_wavelet(family_code, family_number) */ __pyx_t_4 = __pyx_v_self->name; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = __pyx_f_4pywt_11_extensions_5_pywt_wname_to_code(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) { PyObject* sequence = __pyx_t_5; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 357, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_4 = PyList_GET_ITEM(sequence, 0); __pyx_t_6 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_6); #else __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else { Py_ssize_t index = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; index = 0; __pyx_t_4 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_4)) goto __pyx_L7_unpacking_failed; __Pyx_GOTREF(__pyx_t_4); index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L7_unpacking_failed; __Pyx_GOTREF(__pyx_t_6); if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 357, __pyx_L1_error) __pyx_t_8 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L8_unpacking_done; __pyx_L7_unpacking_failed:; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 357, __pyx_L1_error) __pyx_L8_unpacking_done:; } __pyx_v_family_code = __pyx_t_4; __pyx_t_4 = 0; __pyx_v_family_number = __pyx_t_6; __pyx_t_6 = 0; /* "pywt/_extensions/_pywt.pyx":358 * self.name = name.lower() * family_code, family_number = wname_to_code(self.name) * if is_discrete_wav(family_code): # <<<<<<<<<<<<<< * self.w = wavelet.discrete_wavelet(family_code, family_number) * if self.w is NULL: */ __pyx_t_9 = ((WAVELET_NAME)__Pyx_PyInt_As_WAVELET_NAME(__pyx_v_family_code)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 358, __pyx_L1_error) __pyx_t_2 = (__pyx_f_4pywt_11_extensions_5_pywt_is_discrete_wav(__pyx_t_9) != 0); if (__pyx_t_2) { /* "pywt/_extensions/_pywt.pyx":359 * family_code, family_number = wname_to_code(self.name) * if is_discrete_wav(family_code): * self.w = wavelet.discrete_wavelet(family_code, family_number) # <<<<<<<<<<<<<< * if self.w is NULL: * if self.name in wavelist(kind='continuous'): */ __pyx_t_10 = ((WAVELET_NAME)__Pyx_PyInt_As_WAVELET_NAME(__pyx_v_family_code)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 359, __pyx_L1_error) __pyx_t_11 = __Pyx_PyInt_As_int(__pyx_v_family_number); if (unlikely((__pyx_t_11 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 359, __pyx_L1_error) __pyx_v_self->w = ((DiscreteWavelet *)discrete_wavelet(__pyx_t_10, __pyx_t_11)); /* "pywt/_extensions/_pywt.pyx":358 * self.name = name.lower() * family_code, family_number = wname_to_code(self.name) * if is_discrete_wav(family_code): # <<<<<<<<<<<<<< * self.w = wavelet.discrete_wavelet(family_code, family_number) * if self.w is NULL: */ } /* "pywt/_extensions/_pywt.pyx":360 * if is_discrete_wav(family_code): * self.w = wavelet.discrete_wavelet(family_code, family_number) * if self.w is NULL: # <<<<<<<<<<<<<< * if self.name in wavelist(kind='continuous'): * raise ValueError("The `Wavelet` class is for discrete " */ __pyx_t_2 = ((__pyx_v_self->w == NULL) != 0); if (__pyx_t_2) { /* "pywt/_extensions/_pywt.pyx":361 * self.w = wavelet.discrete_wavelet(family_code, family_number) * if self.w is NULL: * if self.name in wavelist(kind='continuous'): # <<<<<<<<<<<<<< * raise ValueError("The `Wavelet` class is for discrete " * "wavelets, %s is a continuous wavelet. Use " */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_wavelist); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 361, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 361, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_kind, __pyx_n_u_continuous) < 0) __PYX_ERR(0, 361, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_empty_tuple, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 361, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_self->name, __pyx_t_4, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 361, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = (__pyx_t_2 != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_pywt.pyx":364 * raise ValueError("The `Wavelet` class is for discrete " * "wavelets, %s is a continuous wavelet. Use " * "pywt.ContinuousWavelet instead" % self.name) # <<<<<<<<<<<<<< * else: * raise ValueError("Invalid wavelet name '%s'." % self.name) */ __pyx_t_4 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_The_Wavelet_class_is_for_discret, __pyx_v_self->name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); /* "pywt/_extensions/_pywt.pyx":362 * if self.w is NULL: * if self.name in wavelist(kind='continuous'): * raise ValueError("The `Wavelet` class is for discrete " # <<<<<<<<<<<<<< * "wavelets, %s is a continuous wavelet. Use " * "pywt.ContinuousWavelet instead" % self.name) */ __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 362, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(0, 362, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":361 * self.w = wavelet.discrete_wavelet(family_code, family_number) * if self.w is NULL: * if self.name in wavelist(kind='continuous'): # <<<<<<<<<<<<<< * raise ValueError("The `Wavelet` class is for discrete " * "wavelets, %s is a continuous wavelet. Use " */ } /* "pywt/_extensions/_pywt.pyx":366 * "pywt.ContinuousWavelet instead" % self.name) * else: * raise ValueError("Invalid wavelet name '%s'." % self.name) # <<<<<<<<<<<<<< * self.number = family_number * else: */ /*else*/ { __pyx_t_6 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_Invalid_wavelet_name_s, __pyx_v_self->name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(0, 366, __pyx_L1_error) } /* "pywt/_extensions/_pywt.pyx":360 * if is_discrete_wav(family_code): * self.w = wavelet.discrete_wavelet(family_code, family_number) * if self.w is NULL: # <<<<<<<<<<<<<< * if self.name in wavelist(kind='continuous'): * raise ValueError("The `Wavelet` class is for discrete " */ } /* "pywt/_extensions/_pywt.pyx":367 * else: * raise ValueError("Invalid wavelet name '%s'." % self.name) * self.number = family_number # <<<<<<<<<<<<<< * else: * if hasattr(filter_bank, "filter_bank"): */ __Pyx_INCREF(__pyx_v_family_number); __Pyx_GIVEREF(__pyx_v_family_number); __Pyx_GOTREF(__pyx_v_self->number); __Pyx_DECREF(__pyx_v_self->number); __pyx_v_self->number = __pyx_v_family_number; /* "pywt/_extensions/_pywt.pyx":354 * raise TypeError("Wavelet name or filter bank must be specified.") * * if filter_bank is None: # <<<<<<<<<<<<<< * # builtin wavelet * self.name = name.lower() */ goto __pyx_L6; } /* "pywt/_extensions/_pywt.pyx":369 * self.number = family_number * else: * if hasattr(filter_bank, "filter_bank"): # <<<<<<<<<<<<<< * filters = filter_bank.filter_bank * if len(filters) != 4: */ /*else*/ { __pyx_t_1 = __Pyx_HasAttr(__pyx_v_filter_bank, __pyx_n_u_filter_bank); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 369, __pyx_L1_error) __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "pywt/_extensions/_pywt.pyx":370 * else: * if hasattr(filter_bank, "filter_bank"): * filters = filter_bank.filter_bank # <<<<<<<<<<<<<< * if len(filters) != 4: * raise ValueError("Expected filter bank with 4 filters, " */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_filter_bank, __pyx_n_s_filter_bank); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_filters = __pyx_t_4; __pyx_t_4 = 0; /* "pywt/_extensions/_pywt.pyx":371 * if hasattr(filter_bank, "filter_bank"): * filters = filter_bank.filter_bank * if len(filters) != 4: # <<<<<<<<<<<<<< * raise ValueError("Expected filter bank with 4 filters, " * "got filter bank with %d filters." % len(filters)) */ __pyx_t_12 = PyObject_Length(__pyx_v_filters); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(0, 371, __pyx_L1_error) __pyx_t_2 = ((__pyx_t_12 != 4) != 0); if (unlikely(__pyx_t_2)) { /* "pywt/_extensions/_pywt.pyx":373 * if len(filters) != 4: * raise ValueError("Expected filter bank with 4 filters, " * "got filter bank with %d filters." % len(filters)) # <<<<<<<<<<<<<< * elif hasattr(filter_bank, "get_filters_coeffs"): * msg = ("Creating custom Wavelets using objects that define " */ __pyx_t_12 = PyObject_Length(__pyx_v_filters); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(0, 373, __pyx_L1_error) __pyx_t_4 = PyInt_FromSsize_t(__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyUnicode_Format(__pyx_kp_u_Expected_filter_bank_with_4_filt, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "pywt/_extensions/_pywt.pyx":372 * filters = filter_bank.filter_bank * if len(filters) != 4: * raise ValueError("Expected filter bank with 4 filters, " # <<<<<<<<<<<<<< * "got filter bank with %d filters." % len(filters)) * elif hasattr(filter_bank, "get_filters_coeffs"): */ __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(0, 372, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":371 * if hasattr(filter_bank, "filter_bank"): * filters = filter_bank.filter_bank * if len(filters) != 4: # <<<<<<<<<<<<<< * raise ValueError("Expected filter bank with 4 filters, " * "got filter bank with %d filters." % len(filters)) */ } /* "pywt/_extensions/_pywt.pyx":369 * self.number = family_number * else: * if hasattr(filter_bank, "filter_bank"): # <<<<<<<<<<<<<< * filters = filter_bank.filter_bank * if len(filters) != 4: */ goto __pyx_L12; } /* "pywt/_extensions/_pywt.pyx":374 * raise ValueError("Expected filter bank with 4 filters, " * "got filter bank with %d filters." % len(filters)) * elif hasattr(filter_bank, "get_filters_coeffs"): # <<<<<<<<<<<<<< * msg = ("Creating custom Wavelets using objects that define " * "`get_filters_coeffs` method is deprecated. " */ __pyx_t_2 = __Pyx_HasAttr(__pyx_v_filter_bank, __pyx_n_u_get_filters_coeffs); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 374, __pyx_L1_error) __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* "pywt/_extensions/_pywt.pyx":375 * "got filter bank with %d filters." % len(filters)) * elif hasattr(filter_bank, "get_filters_coeffs"): * msg = ("Creating custom Wavelets using objects that define " # <<<<<<<<<<<<<< * "`get_filters_coeffs` method is deprecated. " * "The `filter_bank` parameter should define a " */ __Pyx_INCREF(__pyx_kp_u_Creating_custom_Wavelets_using_o); __pyx_v_msg = __pyx_kp_u_Creating_custom_Wavelets_using_o; /* "pywt/_extensions/_pywt.pyx":380 * "`filter_bank` attribute instead of " * "`get_filters_coeffs` method.") * warnings.warn(msg, DeprecationWarning) # <<<<<<<<<<<<<< * filters = filter_bank.get_filters_coeffs() * if len(filters) != 4: */ __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_warnings); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_warn); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; __pyx_t_11 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_11 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_msg, __pyx_builtin_DeprecationWarning}; __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 380, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_msg, __pyx_builtin_DeprecationWarning}; __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 380, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_4); } else #endif { __pyx_t_7 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_INCREF(__pyx_v_msg); __Pyx_GIVEREF(__pyx_v_msg); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_11, __pyx_v_msg); __Pyx_INCREF(__pyx_builtin_DeprecationWarning); __Pyx_GIVEREF(__pyx_builtin_DeprecationWarning); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_11, __pyx_builtin_DeprecationWarning); __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "pywt/_extensions/_pywt.pyx":381 * "`get_filters_coeffs` method.") * warnings.warn(msg, DeprecationWarning) * filters = filter_bank.get_filters_coeffs() # <<<<<<<<<<<<<< * if len(filters) != 4: * msg = ("Expected filter bank with 4 filters, got filter " */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_filter_bank, __pyx_n_s_get_filters_coeffs); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_5); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_filters = __pyx_t_4; __pyx_t_4 = 0; /* "pywt/_extensions/_pywt.pyx":382 * warnings.warn(msg, DeprecationWarning) * filters = filter_bank.get_filters_coeffs() * if len(filters) != 4: # <<<<<<<<<<<<<< * msg = ("Expected filter bank with 4 filters, got filter " * "bank with %d filters." % len(filters)) */ __pyx_t_12 = PyObject_Length(__pyx_v_filters); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(0, 382, __pyx_L1_error) __pyx_t_1 = ((__pyx_t_12 != 4) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_pywt.pyx":384 * if len(filters) != 4: * msg = ("Expected filter bank with 4 filters, got filter " * "bank with %d filters." % len(filters)) # <<<<<<<<<<<<<< * raise ValueError(msg) * else: */ __pyx_t_12 = PyObject_Length(__pyx_v_filters); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(0, 384, __pyx_L1_error) __pyx_t_4 = PyInt_FromSsize_t(__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyUnicode_Format(__pyx_kp_u_Expected_filter_bank_with_4_filt, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_msg, ((PyObject*)__pyx_t_5)); __pyx_t_5 = 0; /* "pywt/_extensions/_pywt.pyx":385 * msg = ("Expected filter bank with 4 filters, got filter " * "bank with %d filters." % len(filters)) * raise ValueError(msg) # <<<<<<<<<<<<<< * else: * filters = filter_bank */ __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_v_msg); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(0, 385, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":382 * warnings.warn(msg, DeprecationWarning) * filters = filter_bank.get_filters_coeffs() * if len(filters) != 4: # <<<<<<<<<<<<<< * msg = ("Expected filter bank with 4 filters, got filter " * "bank with %d filters." % len(filters)) */ } /* "pywt/_extensions/_pywt.pyx":374 * raise ValueError("Expected filter bank with 4 filters, " * "got filter bank with %d filters." % len(filters)) * elif hasattr(filter_bank, "get_filters_coeffs"): # <<<<<<<<<<<<<< * msg = ("Creating custom Wavelets using objects that define " * "`get_filters_coeffs` method is deprecated. " */ goto __pyx_L12; } /* "pywt/_extensions/_pywt.pyx":387 * raise ValueError(msg) * else: * filters = filter_bank # <<<<<<<<<<<<<< * if len(filters) != 4: * msg = ("Expected list of 4 filters coefficients, " */ /*else*/ { __Pyx_INCREF(__pyx_v_filter_bank); __pyx_v_filters = __pyx_v_filter_bank; /* "pywt/_extensions/_pywt.pyx":388 * else: * filters = filter_bank * if len(filters) != 4: # <<<<<<<<<<<<<< * msg = ("Expected list of 4 filters coefficients, " * "got %d filters." % len(filters)) */ __pyx_t_12 = PyObject_Length(__pyx_v_filters); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(0, 388, __pyx_L1_error) __pyx_t_1 = ((__pyx_t_12 != 4) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_pywt.pyx":390 * if len(filters) != 4: * msg = ("Expected list of 4 filters coefficients, " * "got %d filters." % len(filters)) # <<<<<<<<<<<<<< * raise ValueError(msg) * try: */ __pyx_t_12 = PyObject_Length(__pyx_v_filters); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(0, 390, __pyx_L1_error) __pyx_t_5 = PyInt_FromSsize_t(__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 390, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyUnicode_Format(__pyx_kp_u_Expected_list_of_4_filters_coeff, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 390, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_msg = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; /* "pywt/_extensions/_pywt.pyx":391 * msg = ("Expected list of 4 filters coefficients, " * "got %d filters." % len(filters)) * raise ValueError(msg) # <<<<<<<<<<<<<< * try: * dec_lo = np.asarray(filters[0], dtype=np.float64) */ __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_v_msg); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 391, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(0, 391, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":388 * else: * filters = filter_bank * if len(filters) != 4: # <<<<<<<<<<<<<< * msg = ("Expected list of 4 filters coefficients, " * "got %d filters." % len(filters)) */ } } __pyx_L12:; /* "pywt/_extensions/_pywt.pyx":392 * "got %d filters." % len(filters)) * raise ValueError(msg) * try: # <<<<<<<<<<<<<< * dec_lo = np.asarray(filters[0], dtype=np.float64) * dec_hi = np.asarray(filters[1], dtype=np.float64) */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); __Pyx_XGOTREF(__pyx_t_13); __Pyx_XGOTREF(__pyx_t_14); __Pyx_XGOTREF(__pyx_t_15); /*try:*/ { /* "pywt/_extensions/_pywt.pyx":393 * raise ValueError(msg) * try: * dec_lo = np.asarray(filters[0], dtype=np.float64) # <<<<<<<<<<<<<< * dec_hi = np.asarray(filters[1], dtype=np.float64) * rec_lo = np.asarray(filters[2], dtype=np.float64) */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 393, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_asarray); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 393, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_filters, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 393, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 393, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 393, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 393, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_float64); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 393, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_t_16) < 0) __PYX_ERR(0, 393, __pyx_L16_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_4); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 393, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_dec_lo = __pyx_t_16; __pyx_t_16 = 0; /* "pywt/_extensions/_pywt.pyx":394 * try: * dec_lo = np.asarray(filters[0], dtype=np.float64) * dec_hi = np.asarray(filters[1], dtype=np.float64) # <<<<<<<<<<<<<< * rec_lo = np.asarray(filters[2], dtype=np.float64) * rec_hi = np.asarray(filters[3], dtype=np.float64) */ __Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_n_s_np); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 394, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_n_s_asarray); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 394, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = __Pyx_GetItemInt(__pyx_v_filters, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 394, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 394, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 394, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 394, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_float64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 394, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (PyDict_SetItem(__pyx_t_16, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 394, __pyx_L16_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, __pyx_t_16); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 394, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_v_dec_hi = __pyx_t_6; __pyx_t_6 = 0; /* "pywt/_extensions/_pywt.pyx":395 * dec_lo = np.asarray(filters[0], dtype=np.float64) * dec_hi = np.asarray(filters[1], dtype=np.float64) * rec_lo = np.asarray(filters[2], dtype=np.float64) # <<<<<<<<<<<<<< * rec_hi = np.asarray(filters[3], dtype=np.float64) * except TypeError: */ __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 395, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_asarray); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 395, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_filters, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 395, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 395, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 395, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 395, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_float64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 395, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 395, __pyx_L16_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 395, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_rec_lo = __pyx_t_5; __pyx_t_5 = 0; /* "pywt/_extensions/_pywt.pyx":396 * dec_hi = np.asarray(filters[1], dtype=np.float64) * rec_lo = np.asarray(filters[2], dtype=np.float64) * rec_hi = np.asarray(filters[3], dtype=np.float64) # <<<<<<<<<<<<<< * except TypeError: * raise ValueError("Filter bank with numeric values required.") */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 396, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_asarray); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 396, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_filters, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 396, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 396, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 396, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_n_s_np); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 396, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_n_s_float64); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 396, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_4) < 0) __PYX_ERR(0, 396, __pyx_L16_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 396, __pyx_L16_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_rec_hi = __pyx_t_4; __pyx_t_4 = 0; /* "pywt/_extensions/_pywt.pyx":392 * "got %d filters." % len(filters)) * raise ValueError(msg) * try: # <<<<<<<<<<<<<< * dec_lo = np.asarray(filters[0], dtype=np.float64) * dec_hi = np.asarray(filters[1], dtype=np.float64) */ } __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; goto __pyx_L21_try_end; __pyx_L16_error:; __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "pywt/_extensions/_pywt.pyx":397 * rec_lo = np.asarray(filters[2], dtype=np.float64) * rec_hi = np.asarray(filters[3], dtype=np.float64) * except TypeError: # <<<<<<<<<<<<<< * raise ValueError("Filter bank with numeric values required.") * */ __pyx_t_11 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError); if (__pyx_t_11) { __Pyx_AddTraceback("pywt._extensions._pywt.Wavelet.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_5, &__pyx_t_7) < 0) __PYX_ERR(0, 397, __pyx_L18_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_7); /* "pywt/_extensions/_pywt.pyx":398 * rec_hi = np.asarray(filters[3], dtype=np.float64) * except TypeError: * raise ValueError("Filter bank with numeric values required.") # <<<<<<<<<<<<<< * * if not (1 == dec_lo.ndim == dec_hi.ndim == */ __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 398, __pyx_L18_except_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(0, 398, __pyx_L18_except_error) } goto __pyx_L18_except_error; __pyx_L18_except_error:; /* "pywt/_extensions/_pywt.pyx":392 * "got %d filters." % len(filters)) * raise ValueError(msg) * try: # <<<<<<<<<<<<<< * dec_lo = np.asarray(filters[0], dtype=np.float64) * dec_hi = np.asarray(filters[1], dtype=np.float64) */ __Pyx_XGIVEREF(__pyx_t_13); __Pyx_XGIVEREF(__pyx_t_14); __Pyx_XGIVEREF(__pyx_t_15); __Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15); goto __pyx_L1_error; __pyx_L21_try_end:; } /* "pywt/_extensions/_pywt.pyx":400 * raise ValueError("Filter bank with numeric values required.") * * if not (1 == dec_lo.ndim == dec_hi.ndim == # <<<<<<<<<<<<<< * rec_lo.ndim == rec_hi.ndim): * raise ValueError("All filters in filter bank must be 1D.") */ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_dec_lo, __pyx_n_s_ndim); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = PyObject_RichCompare(__pyx_int_1, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 400, __pyx_L1_error) if (__Pyx_PyObject_IsTrue(__pyx_t_5)) { __Pyx_DECREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_dec_hi, __pyx_n_s_ndim); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyObject_RichCompare(__pyx_t_7, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 400, __pyx_L1_error) if (__Pyx_PyObject_IsTrue(__pyx_t_5)) { __Pyx_DECREF(__pyx_t_5); /* "pywt/_extensions/_pywt.pyx":401 * * if not (1 == dec_lo.ndim == dec_hi.ndim == * rec_lo.ndim == rec_hi.ndim): # <<<<<<<<<<<<<< * raise ValueError("All filters in filter bank must be 1D.") * */ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_rec_lo, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = PyObject_RichCompare(__pyx_t_4, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 400, __pyx_L1_error) if (__Pyx_PyObject_IsTrue(__pyx_t_5)) { __Pyx_DECREF(__pyx_t_5); __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_rec_hi, __pyx_n_s_ndim); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_5 = PyObject_RichCompare(__pyx_t_6, __pyx_t_16, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 401, __pyx_L1_error) __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "pywt/_extensions/_pywt.pyx":400 * raise ValueError("Filter bank with numeric values required.") * * if not (1 == dec_lo.ndim == dec_hi.ndim == # <<<<<<<<<<<<<< * rec_lo.ndim == rec_hi.ndim): * raise ValueError("All filters in filter bank must be 1D.") */ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 400, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_2 = ((!__pyx_t_1) != 0); if (unlikely(__pyx_t_2)) { /* "pywt/_extensions/_pywt.pyx":402 * if not (1 == dec_lo.ndim == dec_hi.ndim == * rec_lo.ndim == rec_hi.ndim): * raise ValueError("All filters in filter bank must be 1D.") # <<<<<<<<<<<<<< * * filter_length = len(dec_lo) */ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(0, 402, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":400 * raise ValueError("Filter bank with numeric values required.") * * if not (1 == dec_lo.ndim == dec_hi.ndim == # <<<<<<<<<<<<<< * rec_lo.ndim == rec_hi.ndim): * raise ValueError("All filters in filter bank must be 1D.") */ } /* "pywt/_extensions/_pywt.pyx":404 * raise ValueError("All filters in filter bank must be 1D.") * * filter_length = len(dec_lo) # <<<<<<<<<<<<<< * if not (0 < filter_length == len(dec_hi) == len(rec_lo) == * len(rec_hi)) > 0: */ __pyx_t_12 = PyObject_Length(__pyx_v_dec_lo); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(0, 404, __pyx_L1_error) __pyx_v_filter_length = __pyx_t_12; /* "pywt/_extensions/_pywt.pyx":405 * * filter_length = len(dec_lo) * if not (0 < filter_length == len(dec_hi) == len(rec_lo) == # <<<<<<<<<<<<<< * len(rec_hi)) > 0: * raise ValueError("All filters in filter bank must have " */ __pyx_t_2 = (0 < __pyx_v_filter_length); if (__pyx_t_2) { __pyx_t_12 = PyObject_Length(__pyx_v_dec_hi); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(0, 405, __pyx_L1_error) __pyx_t_2 = (__pyx_v_filter_length == __pyx_t_12); if (__pyx_t_2) { __pyx_t_17 = PyObject_Length(__pyx_v_rec_lo); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 405, __pyx_L1_error) __pyx_t_2 = (__pyx_t_12 == __pyx_t_17); if (__pyx_t_2) { /* "pywt/_extensions/_pywt.pyx":406 * filter_length = len(dec_lo) * if not (0 < filter_length == len(dec_hi) == len(rec_lo) == * len(rec_hi)) > 0: # <<<<<<<<<<<<<< * raise ValueError("All filters in filter bank must have " * "length greater than 0.") */ __pyx_t_18 = PyObject_Length(__pyx_v_rec_hi); if (unlikely(__pyx_t_18 == ((Py_ssize_t)-1))) __PYX_ERR(0, 406, __pyx_L1_error) __pyx_t_2 = (__pyx_t_17 == __pyx_t_18); } } } /* "pywt/_extensions/_pywt.pyx":405 * * filter_length = len(dec_lo) * if not (0 < filter_length == len(dec_hi) == len(rec_lo) == # <<<<<<<<<<<<<< * len(rec_hi)) > 0: * raise ValueError("All filters in filter bank must have " */ __pyx_t_1 = ((!((__pyx_t_2 > 0) != 0)) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_pywt.pyx":407 * if not (0 < filter_length == len(dec_hi) == len(rec_lo) == * len(rec_hi)) > 0: * raise ValueError("All filters in filter bank must have " # <<<<<<<<<<<<<< * "length greater than 0.") * */ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(0, 407, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":405 * * filter_length = len(dec_lo) * if not (0 < filter_length == len(dec_hi) == len(rec_lo) == # <<<<<<<<<<<<<< * len(rec_hi)) > 0: * raise ValueError("All filters in filter bank must have " */ } /* "pywt/_extensions/_pywt.pyx":410 * "length greater than 0.") * * self.w = wavelet.blank_discrete_wavelet(filter_length) # <<<<<<<<<<<<<< * if self.w is NULL: * raise MemoryError("Could not allocate memory for given " */ __pyx_v_self->w = ((DiscreteWavelet *)blank_discrete_wavelet(__pyx_v_filter_length)); /* "pywt/_extensions/_pywt.pyx":411 * * self.w = wavelet.blank_discrete_wavelet(filter_length) * if self.w is NULL: # <<<<<<<<<<<<<< * raise MemoryError("Could not allocate memory for given " * "filter bank.") */ __pyx_t_1 = ((__pyx_v_self->w == NULL) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_pywt.pyx":412 * self.w = wavelet.blank_discrete_wavelet(filter_length) * if self.w is NULL: * raise MemoryError("Could not allocate memory for given " # <<<<<<<<<<<<<< * "filter bank.") * */ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(0, 412, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":411 * * self.w = wavelet.blank_discrete_wavelet(filter_length) * if self.w is NULL: # <<<<<<<<<<<<<< * raise MemoryError("Could not allocate memory for given " * "filter bank.") */ } /* "pywt/_extensions/_pywt.pyx":416 * * # copy values to struct * copy_object_to_float32_array(dec_lo, self.w.dec_lo_float) # <<<<<<<<<<<<<< * copy_object_to_float32_array(dec_hi, self.w.dec_hi_float) * copy_object_to_float32_array(rec_lo, self.w.rec_lo_float) */ __pyx_f_4pywt_11_extensions_5_pywt_copy_object_to_float32_array(__pyx_v_dec_lo, __pyx_v_self->w->dec_lo_float); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 416, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":417 * # copy values to struct * copy_object_to_float32_array(dec_lo, self.w.dec_lo_float) * copy_object_to_float32_array(dec_hi, self.w.dec_hi_float) # <<<<<<<<<<<<<< * copy_object_to_float32_array(rec_lo, self.w.rec_lo_float) * copy_object_to_float32_array(rec_hi, self.w.rec_hi_float) */ __pyx_f_4pywt_11_extensions_5_pywt_copy_object_to_float32_array(__pyx_v_dec_hi, __pyx_v_self->w->dec_hi_float); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 417, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":418 * copy_object_to_float32_array(dec_lo, self.w.dec_lo_float) * copy_object_to_float32_array(dec_hi, self.w.dec_hi_float) * copy_object_to_float32_array(rec_lo, self.w.rec_lo_float) # <<<<<<<<<<<<<< * copy_object_to_float32_array(rec_hi, self.w.rec_hi_float) * */ __pyx_f_4pywt_11_extensions_5_pywt_copy_object_to_float32_array(__pyx_v_rec_lo, __pyx_v_self->w->rec_lo_float); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 418, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":419 * copy_object_to_float32_array(dec_hi, self.w.dec_hi_float) * copy_object_to_float32_array(rec_lo, self.w.rec_lo_float) * copy_object_to_float32_array(rec_hi, self.w.rec_hi_float) # <<<<<<<<<<<<<< * * copy_object_to_float64_array(dec_lo, self.w.dec_lo_double) */ __pyx_f_4pywt_11_extensions_5_pywt_copy_object_to_float32_array(__pyx_v_rec_hi, __pyx_v_self->w->rec_hi_float); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 419, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":421 * copy_object_to_float32_array(rec_hi, self.w.rec_hi_float) * * copy_object_to_float64_array(dec_lo, self.w.dec_lo_double) # <<<<<<<<<<<<<< * copy_object_to_float64_array(dec_hi, self.w.dec_hi_double) * copy_object_to_float64_array(rec_lo, self.w.rec_lo_double) */ __pyx_f_4pywt_11_extensions_5_pywt_copy_object_to_float64_array(__pyx_v_dec_lo, __pyx_v_self->w->dec_lo_double); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 421, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":422 * * copy_object_to_float64_array(dec_lo, self.w.dec_lo_double) * copy_object_to_float64_array(dec_hi, self.w.dec_hi_double) # <<<<<<<<<<<<<< * copy_object_to_float64_array(rec_lo, self.w.rec_lo_double) * copy_object_to_float64_array(rec_hi, self.w.rec_hi_double) */ __pyx_f_4pywt_11_extensions_5_pywt_copy_object_to_float64_array(__pyx_v_dec_hi, __pyx_v_self->w->dec_hi_double); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 422, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":423 * copy_object_to_float64_array(dec_lo, self.w.dec_lo_double) * copy_object_to_float64_array(dec_hi, self.w.dec_hi_double) * copy_object_to_float64_array(rec_lo, self.w.rec_lo_double) # <<<<<<<<<<<<<< * copy_object_to_float64_array(rec_hi, self.w.rec_hi_double) * */ __pyx_f_4pywt_11_extensions_5_pywt_copy_object_to_float64_array(__pyx_v_rec_lo, __pyx_v_self->w->rec_lo_double); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 423, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":424 * copy_object_to_float64_array(dec_hi, self.w.dec_hi_double) * copy_object_to_float64_array(rec_lo, self.w.rec_lo_double) * copy_object_to_float64_array(rec_hi, self.w.rec_hi_double) # <<<<<<<<<<<<<< * * self.name = name */ __pyx_f_4pywt_11_extensions_5_pywt_copy_object_to_float64_array(__pyx_v_rec_hi, __pyx_v_self->w->rec_hi_double); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 424, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":426 * copy_object_to_float64_array(rec_hi, self.w.rec_hi_double) * * self.name = name # <<<<<<<<<<<<<< * * def __dealloc__(self): */ __Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); __Pyx_GOTREF(__pyx_v_self->name); __Pyx_DECREF(__pyx_v_self->name); __pyx_v_self->name = __pyx_v_name; } __pyx_L6:; /* "pywt/_extensions/_pywt.pyx":345 * """ * #cdef readonly properties * def __cinit__(self, name=u"", object filter_bank=None): # <<<<<<<<<<<<<< * cdef object family_code, family_number * cdef object filters */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_16); __Pyx_AddTraceback("pywt._extensions._pywt.Wavelet.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_family_code); __Pyx_XDECREF(__pyx_v_family_number); __Pyx_XDECREF(__pyx_v_filters); __Pyx_XDECREF(__pyx_v_dec_lo); __Pyx_XDECREF(__pyx_v_dec_hi); __Pyx_XDECREF(__pyx_v_rec_lo); __Pyx_XDECREF(__pyx_v_rec_hi); __Pyx_XDECREF(__pyx_v_msg); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":428 * self.name = name * * def __dealloc__(self): # <<<<<<<<<<<<<< * if self.w is not NULL: * wavelet.free_discrete_wavelet(self.w) */ /* Python wrapper */ static void __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ static void __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_3__dealloc__(PyObject *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_2__dealloc__(((struct WaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_2__dealloc__(struct WaveletObject *__pyx_v_self) { __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("__dealloc__", 0); /* "pywt/_extensions/_pywt.pyx":429 * * def __dealloc__(self): * if self.w is not NULL: # <<<<<<<<<<<<<< * wavelet.free_discrete_wavelet(self.w) * self.w = NULL */ __pyx_t_1 = ((__pyx_v_self->w != NULL) != 0); if (__pyx_t_1) { /* "pywt/_extensions/_pywt.pyx":430 * def __dealloc__(self): * if self.w is not NULL: * wavelet.free_discrete_wavelet(self.w) # <<<<<<<<<<<<<< * self.w = NULL * */ free_discrete_wavelet(__pyx_v_self->w); /* "pywt/_extensions/_pywt.pyx":431 * if self.w is not NULL: * wavelet.free_discrete_wavelet(self.w) * self.w = NULL # <<<<<<<<<<<<<< * * def __len__(self): */ __pyx_v_self->w = NULL; /* "pywt/_extensions/_pywt.pyx":429 * * def __dealloc__(self): * if self.w is not NULL: # <<<<<<<<<<<<<< * wavelet.free_discrete_wavelet(self.w) * self.w = NULL */ } /* "pywt/_extensions/_pywt.pyx":428 * self.name = name * * def __dealloc__(self): # <<<<<<<<<<<<<< * if self.w is not NULL: * wavelet.free_discrete_wavelet(self.w) */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "pywt/_extensions/_pywt.pyx":433 * self.w = NULL * * def __len__(self): # <<<<<<<<<<<<<< * return self.w.dec_len * */ /* Python wrapper */ static Py_ssize_t __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_5__len__(PyObject *__pyx_v_self); /*proto*/ static Py_ssize_t __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_5__len__(PyObject *__pyx_v_self) { Py_ssize_t __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__len__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_4__len__(((struct WaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static Py_ssize_t __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_4__len__(struct WaveletObject *__pyx_v_self) { Py_ssize_t __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__len__", 0); /* "pywt/_extensions/_pywt.pyx":434 * * def __len__(self): * return self.w.dec_len # <<<<<<<<<<<<<< * * property dec_lo: */ __pyx_r = __pyx_v_self->w->dec_len; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":433 * self.w = NULL * * def __len__(self): # <<<<<<<<<<<<<< * return self.w.dec_len * */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":438 * property dec_lo: * "Lowpass decomposition filter" * def __get__(self): # <<<<<<<<<<<<<< * return float64_array_to_list(self.w.dec_lo_double, self.w.dec_len) * */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_6dec_lo_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_6dec_lo_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_6dec_lo___get__(((struct WaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_6dec_lo___get__(struct WaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "pywt/_extensions/_pywt.pyx":439 * "Lowpass decomposition filter" * def __get__(self): * return float64_array_to_list(self.w.dec_lo_double, self.w.dec_len) # <<<<<<<<<<<<<< * * property dec_hi: */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_f_4pywt_11_extensions_5_pywt_float64_array_to_list(__pyx_v_self->w->dec_lo_double, __pyx_v_self->w->dec_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":438 * property dec_lo: * "Lowpass decomposition filter" * def __get__(self): # <<<<<<<<<<<<<< * return float64_array_to_list(self.w.dec_lo_double, self.w.dec_len) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._pywt.Wavelet.dec_lo.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":443 * property dec_hi: * "Highpass decomposition filter" * def __get__(self): # <<<<<<<<<<<<<< * return float64_array_to_list(self.w.dec_hi_double, self.w.dec_len) * */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_6dec_hi_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_6dec_hi_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_6dec_hi___get__(((struct WaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_6dec_hi___get__(struct WaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "pywt/_extensions/_pywt.pyx":444 * "Highpass decomposition filter" * def __get__(self): * return float64_array_to_list(self.w.dec_hi_double, self.w.dec_len) # <<<<<<<<<<<<<< * * property rec_lo: */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_f_4pywt_11_extensions_5_pywt_float64_array_to_list(__pyx_v_self->w->dec_hi_double, __pyx_v_self->w->dec_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":443 * property dec_hi: * "Highpass decomposition filter" * def __get__(self): # <<<<<<<<<<<<<< * return float64_array_to_list(self.w.dec_hi_double, self.w.dec_len) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._pywt.Wavelet.dec_hi.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":448 * property rec_lo: * "Lowpass reconstruction filter" * def __get__(self): # <<<<<<<<<<<<<< * return float64_array_to_list(self.w.rec_lo_double, self.w.rec_len) * */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_6rec_lo_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_6rec_lo_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_6rec_lo___get__(((struct WaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_6rec_lo___get__(struct WaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "pywt/_extensions/_pywt.pyx":449 * "Lowpass reconstruction filter" * def __get__(self): * return float64_array_to_list(self.w.rec_lo_double, self.w.rec_len) # <<<<<<<<<<<<<< * * property rec_hi: */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_f_4pywt_11_extensions_5_pywt_float64_array_to_list(__pyx_v_self->w->rec_lo_double, __pyx_v_self->w->rec_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 449, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":448 * property rec_lo: * "Lowpass reconstruction filter" * def __get__(self): # <<<<<<<<<<<<<< * return float64_array_to_list(self.w.rec_lo_double, self.w.rec_len) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._pywt.Wavelet.rec_lo.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":453 * property rec_hi: * "Highpass reconstruction filter" * def __get__(self): # <<<<<<<<<<<<<< * return float64_array_to_list(self.w.rec_hi_double, self.w.rec_len) * */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_6rec_hi_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_6rec_hi_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_6rec_hi___get__(((struct WaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_6rec_hi___get__(struct WaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "pywt/_extensions/_pywt.pyx":454 * "Highpass reconstruction filter" * def __get__(self): * return float64_array_to_list(self.w.rec_hi_double, self.w.rec_len) # <<<<<<<<<<<<<< * * property rec_len: */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_f_4pywt_11_extensions_5_pywt_float64_array_to_list(__pyx_v_self->w->rec_hi_double, __pyx_v_self->w->rec_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 454, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":453 * property rec_hi: * "Highpass reconstruction filter" * def __get__(self): # <<<<<<<<<<<<<< * return float64_array_to_list(self.w.rec_hi_double, self.w.rec_len) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._pywt.Wavelet.rec_hi.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":458 * property rec_len: * "Reconstruction filters length" * def __get__(self): # <<<<<<<<<<<<<< * return self.w.rec_len * */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_7rec_len_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_7rec_len_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_7rec_len___get__(((struct WaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_7rec_len___get__(struct WaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "pywt/_extensions/_pywt.pyx":459 * "Reconstruction filters length" * def __get__(self): * return self.w.rec_len # <<<<<<<<<<<<<< * * property dec_len: */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->w->rec_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":458 * property rec_len: * "Reconstruction filters length" * def __get__(self): # <<<<<<<<<<<<<< * return self.w.rec_len * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._pywt.Wavelet.rec_len.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":463 * property dec_len: * "Decomposition filters length" * def __get__(self): # <<<<<<<<<<<<<< * return self.w.dec_len * */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_7dec_len_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_7dec_len_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_7dec_len___get__(((struct WaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_7dec_len___get__(struct WaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "pywt/_extensions/_pywt.pyx":464 * "Decomposition filters length" * def __get__(self): * return self.w.dec_len # <<<<<<<<<<<<<< * * property family_number: */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_self->w->dec_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":463 * property dec_len: * "Decomposition filters length" * def __get__(self): # <<<<<<<<<<<<<< * return self.w.dec_len * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._pywt.Wavelet.dec_len.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":468 * property family_number: * "Wavelet family number" * def __get__(self): # <<<<<<<<<<<<<< * return self.number * */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_13family_number_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_13family_number_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_13family_number___get__(((struct WaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_13family_number___get__(struct WaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* "pywt/_extensions/_pywt.pyx":469 * "Wavelet family number" * def __get__(self): * return self.number # <<<<<<<<<<<<<< * * property family_name: */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->number); __pyx_r = __pyx_v_self->number; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":468 * property family_number: * "Wavelet family number" * def __get__(self): # <<<<<<<<<<<<<< * return self.number * */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":473 * property family_name: * "Wavelet family name" * def __get__(self): # <<<<<<<<<<<<<< * return self.w.base.family_name.decode('latin-1') * */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_11family_name_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_11family_name_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_11family_name___get__(((struct WaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_11family_name___get__(struct WaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations char *__pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "pywt/_extensions/_pywt.pyx":474 * "Wavelet family name" * def __get__(self): * return self.w.base.family_name.decode('latin-1') # <<<<<<<<<<<<<< * * property short_family_name: */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_v_self->w->base.family_name; __pyx_t_2 = __Pyx_decode_c_string(__pyx_t_1, 0, strlen(__pyx_t_1), NULL, NULL, PyUnicode_DecodeLatin1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_2); __pyx_r = __pyx_t_2; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":473 * property family_name: * "Wavelet family name" * def __get__(self): # <<<<<<<<<<<<<< * return self.w.base.family_name.decode('latin-1') * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pywt._extensions._pywt.Wavelet.family_name.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":478 * property short_family_name: * "Short wavelet family name" * def __get__(self): # <<<<<<<<<<<<<< * return self.w.base.short_name.decode('latin-1') * */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_17short_family_name_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_17short_family_name_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_17short_family_name___get__(((struct WaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_17short_family_name___get__(struct WaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations char *__pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "pywt/_extensions/_pywt.pyx":479 * "Short wavelet family name" * def __get__(self): * return self.w.base.short_name.decode('latin-1') # <<<<<<<<<<<<<< * * property orthogonal: */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_v_self->w->base.short_name; __pyx_t_2 = __Pyx_decode_c_string(__pyx_t_1, 0, strlen(__pyx_t_1), NULL, NULL, PyUnicode_DecodeLatin1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 479, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_2); __pyx_r = __pyx_t_2; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":478 * property short_family_name: * "Short wavelet family name" * def __get__(self): # <<<<<<<<<<<<<< * return self.w.base.short_name.decode('latin-1') * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pywt._extensions._pywt.Wavelet.short_family_name.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":483 * property orthogonal: * "Is orthogonal" * def __get__(self): # <<<<<<<<<<<<<< * return bool(self.w.base.orthogonal) * def __set__(self, int value): */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_10orthogonal_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_10orthogonal_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_10orthogonal___get__(((struct WaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_10orthogonal___get__(struct WaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; __Pyx_RefNannySetupContext("__get__", 0); /* "pywt/_extensions/_pywt.pyx":484 * "Is orthogonal" * def __get__(self): * return bool(self.w.base.orthogonal) # <<<<<<<<<<<<<< * def __set__(self, int value): * self.w.base.orthogonal = (value != 0) */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->w->base.orthogonal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 484, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyBool_FromLong((!(!__pyx_t_2))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 484, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":483 * property orthogonal: * "Is orthogonal" * def __get__(self): # <<<<<<<<<<<<<< * return bool(self.w.base.orthogonal) * def __set__(self, int value): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._pywt.Wavelet.orthogonal.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":485 * def __get__(self): * return bool(self.w.base.orthogonal) * def __set__(self, int value): # <<<<<<<<<<<<<< * self.w.base.orthogonal = (value != 0) * */ /* Python wrapper */ static int __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_10orthogonal_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_value); /*proto*/ static int __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_10orthogonal_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_value) { int __pyx_v_value; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); assert(__pyx_arg_value); { __pyx_v_value = __Pyx_PyInt_As_int(__pyx_arg_value); if (unlikely((__pyx_v_value == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 485, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._pywt.Wavelet.orthogonal.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_10orthogonal_2__set__(((struct WaveletObject *)__pyx_v_self), ((int)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_10orthogonal_2__set__(struct WaveletObject *__pyx_v_self, int __pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__", 0); /* "pywt/_extensions/_pywt.pyx":486 * return bool(self.w.base.orthogonal) * def __set__(self, int value): * self.w.base.orthogonal = (value != 0) # <<<<<<<<<<<<<< * * property biorthogonal: */ __pyx_v_self->w->base.orthogonal = (__pyx_v_value != 0); /* "pywt/_extensions/_pywt.pyx":485 * def __get__(self): * return bool(self.w.base.orthogonal) * def __set__(self, int value): # <<<<<<<<<<<<<< * self.w.base.orthogonal = (value != 0) * */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":490 * property biorthogonal: * "Is biorthogonal" * def __get__(self): # <<<<<<<<<<<<<< * return bool(self.w.base.biorthogonal) * def __set__(self, int value): */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_12biorthogonal_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_12biorthogonal_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_12biorthogonal___get__(((struct WaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_12biorthogonal___get__(struct WaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; __Pyx_RefNannySetupContext("__get__", 0); /* "pywt/_extensions/_pywt.pyx":491 * "Is biorthogonal" * def __get__(self): * return bool(self.w.base.biorthogonal) # <<<<<<<<<<<<<< * def __set__(self, int value): * self.w.base.biorthogonal = (value != 0) */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->w->base.biorthogonal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 491, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyBool_FromLong((!(!__pyx_t_2))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":490 * property biorthogonal: * "Is biorthogonal" * def __get__(self): # <<<<<<<<<<<<<< * return bool(self.w.base.biorthogonal) * def __set__(self, int value): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._pywt.Wavelet.biorthogonal.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":492 * def __get__(self): * return bool(self.w.base.biorthogonal) * def __set__(self, int value): # <<<<<<<<<<<<<< * self.w.base.biorthogonal = (value != 0) * */ /* Python wrapper */ static int __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_12biorthogonal_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_value); /*proto*/ static int __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_12biorthogonal_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_value) { int __pyx_v_value; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); assert(__pyx_arg_value); { __pyx_v_value = __Pyx_PyInt_As_int(__pyx_arg_value); if (unlikely((__pyx_v_value == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 492, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._pywt.Wavelet.biorthogonal.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_12biorthogonal_2__set__(((struct WaveletObject *)__pyx_v_self), ((int)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_12biorthogonal_2__set__(struct WaveletObject *__pyx_v_self, int __pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__", 0); /* "pywt/_extensions/_pywt.pyx":493 * return bool(self.w.base.biorthogonal) * def __set__(self, int value): * self.w.base.biorthogonal = (value != 0) # <<<<<<<<<<<<<< * * property symmetry: */ __pyx_v_self->w->base.biorthogonal = (__pyx_v_value != 0); /* "pywt/_extensions/_pywt.pyx":492 * def __get__(self): * return bool(self.w.base.biorthogonal) * def __set__(self, int value): # <<<<<<<<<<<<<< * self.w.base.biorthogonal = (value != 0) * */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":497 * property symmetry: * "Wavelet symmetry" * def __get__(self): # <<<<<<<<<<<<<< * if self.w.base.symmetry == wavelet.ASYMMETRIC: * return "asymmetric" */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_8symmetry_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_8symmetry_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_8symmetry___get__(((struct WaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_8symmetry___get__(struct WaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* "pywt/_extensions/_pywt.pyx":498 * "Wavelet symmetry" * def __get__(self): * if self.w.base.symmetry == wavelet.ASYMMETRIC: # <<<<<<<<<<<<<< * return "asymmetric" * elif self.w.base.symmetry == wavelet.NEAR_SYMMETRIC: */ switch (__pyx_v_self->w->base.symmetry) { case ASYMMETRIC: /* "pywt/_extensions/_pywt.pyx":499 * def __get__(self): * if self.w.base.symmetry == wavelet.ASYMMETRIC: * return "asymmetric" # <<<<<<<<<<<<<< * elif self.w.base.symmetry == wavelet.NEAR_SYMMETRIC: * return "near symmetric" */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_n_u_asymmetric); __pyx_r = __pyx_n_u_asymmetric; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":498 * "Wavelet symmetry" * def __get__(self): * if self.w.base.symmetry == wavelet.ASYMMETRIC: # <<<<<<<<<<<<<< * return "asymmetric" * elif self.w.base.symmetry == wavelet.NEAR_SYMMETRIC: */ break; case NEAR_SYMMETRIC: /* "pywt/_extensions/_pywt.pyx":501 * return "asymmetric" * elif self.w.base.symmetry == wavelet.NEAR_SYMMETRIC: * return "near symmetric" # <<<<<<<<<<<<<< * elif self.w.base.symmetry == wavelet.SYMMETRIC: * return "symmetric" */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_kp_u_near_symmetric); __pyx_r = __pyx_kp_u_near_symmetric; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":500 * if self.w.base.symmetry == wavelet.ASYMMETRIC: * return "asymmetric" * elif self.w.base.symmetry == wavelet.NEAR_SYMMETRIC: # <<<<<<<<<<<<<< * return "near symmetric" * elif self.w.base.symmetry == wavelet.SYMMETRIC: */ break; case SYMMETRIC: /* "pywt/_extensions/_pywt.pyx":503 * return "near symmetric" * elif self.w.base.symmetry == wavelet.SYMMETRIC: * return "symmetric" # <<<<<<<<<<<<<< * elif self.w.base.symmetry == wavelet.ANTI_SYMMETRIC: * return "anti-symmetric" */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_n_u_symmetric); __pyx_r = __pyx_n_u_symmetric; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":502 * elif self.w.base.symmetry == wavelet.NEAR_SYMMETRIC: * return "near symmetric" * elif self.w.base.symmetry == wavelet.SYMMETRIC: # <<<<<<<<<<<<<< * return "symmetric" * elif self.w.base.symmetry == wavelet.ANTI_SYMMETRIC: */ break; case ANTI_SYMMETRIC: /* "pywt/_extensions/_pywt.pyx":505 * return "symmetric" * elif self.w.base.symmetry == wavelet.ANTI_SYMMETRIC: * return "anti-symmetric" # <<<<<<<<<<<<<< * else: * return "unknown" */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_kp_u_anti_symmetric); __pyx_r = __pyx_kp_u_anti_symmetric; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":504 * elif self.w.base.symmetry == wavelet.SYMMETRIC: * return "symmetric" * elif self.w.base.symmetry == wavelet.ANTI_SYMMETRIC: # <<<<<<<<<<<<<< * return "anti-symmetric" * else: */ break; default: /* "pywt/_extensions/_pywt.pyx":507 * return "anti-symmetric" * else: * return "unknown" # <<<<<<<<<<<<<< * * property vanishing_moments_psi: */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_n_u_unknown); __pyx_r = __pyx_n_u_unknown; goto __pyx_L0; break; } /* "pywt/_extensions/_pywt.pyx":497 * property symmetry: * "Wavelet symmetry" * def __get__(self): # <<<<<<<<<<<<<< * if self.w.base.symmetry == wavelet.ASYMMETRIC: * return "asymmetric" */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":511 * property vanishing_moments_psi: * "Number of vanishing moments for wavelet function" * def __get__(self): # <<<<<<<<<<<<<< * if self.w.vanishing_moments_psi >= 0: * return self.w.vanishing_moments_psi */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_21vanishing_moments_psi_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_21vanishing_moments_psi_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_21vanishing_moments_psi___get__(((struct WaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_21vanishing_moments_psi___get__(struct WaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "pywt/_extensions/_pywt.pyx":512 * "Number of vanishing moments for wavelet function" * def __get__(self): * if self.w.vanishing_moments_psi >= 0: # <<<<<<<<<<<<<< * return self.w.vanishing_moments_psi * */ __pyx_t_1 = ((__pyx_v_self->w->vanishing_moments_psi >= 0) != 0); if (__pyx_t_1) { /* "pywt/_extensions/_pywt.pyx":513 * def __get__(self): * if self.w.vanishing_moments_psi >= 0: * return self.w.vanishing_moments_psi # <<<<<<<<<<<<<< * * property vanishing_moments_phi: */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->w->vanishing_moments_psi); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":512 * "Number of vanishing moments for wavelet function" * def __get__(self): * if self.w.vanishing_moments_psi >= 0: # <<<<<<<<<<<<<< * return self.w.vanishing_moments_psi * */ } /* "pywt/_extensions/_pywt.pyx":511 * property vanishing_moments_psi: * "Number of vanishing moments for wavelet function" * def __get__(self): # <<<<<<<<<<<<<< * if self.w.vanishing_moments_psi >= 0: * return self.w.vanishing_moments_psi */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pywt._extensions._pywt.Wavelet.vanishing_moments_psi.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":517 * property vanishing_moments_phi: * "Number of vanishing moments for scaling function" * def __get__(self): # <<<<<<<<<<<<<< * if self.w.vanishing_moments_phi >= 0: * return self.w.vanishing_moments_phi */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_21vanishing_moments_phi_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_21vanishing_moments_phi_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_21vanishing_moments_phi___get__(((struct WaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_21vanishing_moments_phi___get__(struct WaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "pywt/_extensions/_pywt.pyx":518 * "Number of vanishing moments for scaling function" * def __get__(self): * if self.w.vanishing_moments_phi >= 0: # <<<<<<<<<<<<<< * return self.w.vanishing_moments_phi * */ __pyx_t_1 = ((__pyx_v_self->w->vanishing_moments_phi >= 0) != 0); if (__pyx_t_1) { /* "pywt/_extensions/_pywt.pyx":519 * def __get__(self): * if self.w.vanishing_moments_phi >= 0: * return self.w.vanishing_moments_phi # <<<<<<<<<<<<<< * * property filter_bank: */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->w->vanishing_moments_phi); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 519, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":518 * "Number of vanishing moments for scaling function" * def __get__(self): * if self.w.vanishing_moments_phi >= 0: # <<<<<<<<<<<<<< * return self.w.vanishing_moments_phi * */ } /* "pywt/_extensions/_pywt.pyx":517 * property vanishing_moments_phi: * "Number of vanishing moments for scaling function" * def __get__(self): # <<<<<<<<<<<<<< * if self.w.vanishing_moments_phi >= 0: * return self.w.vanishing_moments_phi */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pywt._extensions._pywt.Wavelet.vanishing_moments_phi.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":525 * (dec_lo, dec_hi, rec_lo, rec_hi) * """ * def __get__(self): # <<<<<<<<<<<<<< * return (self.dec_lo, self.dec_hi, self.rec_lo, self.rec_hi) * */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_11filter_bank_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_11filter_bank_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_11filter_bank___get__(((struct WaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_11filter_bank___get__(struct WaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "pywt/_extensions/_pywt.pyx":526 * """ * def __get__(self): * return (self.dec_lo, self.dec_hi, self.rec_lo, self.rec_hi) # <<<<<<<<<<<<<< * * def get_filters_coeffs(self): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dec_lo); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 526, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dec_hi); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 526, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_rec_lo); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 526, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_rec_hi); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 526, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 526, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":525 * (dec_lo, dec_hi, rec_lo, rec_hi) * """ * def __get__(self): # <<<<<<<<<<<<<< * return (self.dec_lo, self.dec_hi, self.rec_lo, self.rec_hi) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pywt._extensions._pywt.Wavelet.filter_bank.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":528 * return (self.dec_lo, self.dec_hi, self.rec_lo, self.rec_hi) * * def get_filters_coeffs(self): # <<<<<<<<<<<<<< * warnings.warn("The `get_filters_coeffs` method is deprecated. " * "Use `filter_bank` attribute instead.", DeprecationWarning) */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_7get_filters_coeffs(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_7get_filters_coeffs(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_filters_coeffs (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_6get_filters_coeffs(((struct WaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_6get_filters_coeffs(struct WaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("get_filters_coeffs", 0); /* "pywt/_extensions/_pywt.pyx":529 * * def get_filters_coeffs(self): * warnings.warn("The `get_filters_coeffs` method is deprecated. " # <<<<<<<<<<<<<< * "Use `filter_bank` attribute instead.", DeprecationWarning) * return self.filter_bank */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_warnings); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_warn); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_pywt.pyx":530 * def get_filters_coeffs(self): * warnings.warn("The `get_filters_coeffs` method is deprecated. " * "Use `filter_bank` attribute instead.", DeprecationWarning) # <<<<<<<<<<<<<< * return self.filter_bank * */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_pywt.pyx":531 * warnings.warn("The `get_filters_coeffs` method is deprecated. " * "Use `filter_bank` attribute instead.", DeprecationWarning) * return self.filter_bank # <<<<<<<<<<<<<< * * property inverse_filter_bank: */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_filter_bank); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 531, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":528 * return (self.dec_lo, self.dec_hi, self.rec_lo, self.rec_hi) * * def get_filters_coeffs(self): # <<<<<<<<<<<<<< * warnings.warn("The `get_filters_coeffs` method is deprecated. " * "Use `filter_bank` attribute instead.", DeprecationWarning) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pywt._extensions._pywt.Wavelet.get_filters_coeffs", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":537 * (rec_lo[::-1], rec_hi[::-1], dec_lo[::-1], dec_hi[::-1]) * """ * def __get__(self): # <<<<<<<<<<<<<< * return (self.rec_lo[::-1], self.rec_hi[::-1], self.dec_lo[::-1], * self.dec_hi[::-1]) */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_19inverse_filter_bank_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_19inverse_filter_bank_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_19inverse_filter_bank___get__(((struct WaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_19inverse_filter_bank___get__(struct WaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "pywt/_extensions/_pywt.pyx":538 * """ * def __get__(self): * return (self.rec_lo[::-1], self.rec_hi[::-1], self.dec_lo[::-1], # <<<<<<<<<<<<<< * self.dec_hi[::-1]) * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_rec_lo); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_slice__16); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_rec_hi); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_slice__16); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dec_lo); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_slice__16); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_pywt.pyx":539 * def __get__(self): * return (self.rec_lo[::-1], self.rec_hi[::-1], self.dec_lo[::-1], * self.dec_hi[::-1]) # <<<<<<<<<<<<<< * * def get_reverse_filters_coeffs(self): */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dec_hi); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_slice__16); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_pywt.pyx":538 * """ * def __get__(self): * return (self.rec_lo[::-1], self.rec_hi[::-1], self.dec_lo[::-1], # <<<<<<<<<<<<<< * self.dec_hi[::-1]) * */ __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_5); __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":537 * (rec_lo[::-1], rec_hi[::-1], dec_lo[::-1], dec_hi[::-1]) * """ * def __get__(self): # <<<<<<<<<<<<<< * return (self.rec_lo[::-1], self.rec_hi[::-1], self.dec_lo[::-1], * self.dec_hi[::-1]) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pywt._extensions._pywt.Wavelet.inverse_filter_bank.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":541 * self.dec_hi[::-1]) * * def get_reverse_filters_coeffs(self): # <<<<<<<<<<<<<< * warnings.warn("The `get_reverse_filters_coeffs` method is deprecated. " * "Use `inverse_filter_bank` attribute instead.", */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_9get_reverse_filters_coeffs(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_9get_reverse_filters_coeffs(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_reverse_filters_coeffs (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_8get_reverse_filters_coeffs(((struct WaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_8get_reverse_filters_coeffs(struct WaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("get_reverse_filters_coeffs", 0); /* "pywt/_extensions/_pywt.pyx":542 * * def get_reverse_filters_coeffs(self): * warnings.warn("The `get_reverse_filters_coeffs` method is deprecated. " # <<<<<<<<<<<<<< * "Use `inverse_filter_bank` attribute instead.", * DeprecationWarning) */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_warnings); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_warn); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_pywt.pyx":544 * warnings.warn("The `get_reverse_filters_coeffs` method is deprecated. " * "Use `inverse_filter_bank` attribute instead.", * DeprecationWarning) # <<<<<<<<<<<<<< * return self.inverse_filter_bank * */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_pywt.pyx":545 * "Use `inverse_filter_bank` attribute instead.", * DeprecationWarning) * return self.inverse_filter_bank # <<<<<<<<<<<<<< * * def wavefun(self, int level=8): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_inverse_filter_bank); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":541 * self.dec_hi[::-1]) * * def get_reverse_filters_coeffs(self): # <<<<<<<<<<<<<< * warnings.warn("The `get_reverse_filters_coeffs` method is deprecated. " * "Use `inverse_filter_bank` attribute instead.", */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pywt._extensions._pywt.Wavelet.get_reverse_filters_coeffs", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":547 * return self.inverse_filter_bank * * def wavefun(self, int level=8): # <<<<<<<<<<<<<< * """ * wavefun(self, level=8) */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_11wavefun(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_4pywt_11_extensions_5_pywt_7Wavelet_10wavefun[] = "\n wavefun(self, level=8)\n\n Calculates approximations of scaling function (`phi`) and wavelet\n function (`psi`) on xgrid (`x`) at a given level of refinement.\n\n Parameters\n ----------\n level : int, optional\n Level of refinement (default: 8).\n\n Returns\n -------\n [phi, psi, x] : array_like\n For orthogonal wavelets returns scaling function, wavelet function\n and xgrid - [phi, psi, x].\n\n [phi_d, psi_d, phi_r, psi_r, x] : array_like\n For biorthogonal wavelets returns scaling and wavelet function both\n for decomposition and reconstruction and xgrid\n\n Examples\n --------\n >>> import pywt\n >>> # Orthogonal\n >>> wavelet = pywt.Wavelet('db2')\n >>> phi, psi, x = wavelet.wavefun(level=5)\n >>> # Biorthogonal\n >>> wavelet = pywt.Wavelet('bior3.5')\n >>> phi_d, psi_d, phi_r, psi_r, x = wavelet.wavefun(level=5)\n\n "; static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_11wavefun(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { int __pyx_v_level; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("wavefun (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,0}; PyObject* values[1] = {0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level); if (value) { values[0] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "wavefun") < 0)) __PYX_ERR(0, 547, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } } if (values[0]) { __pyx_v_level = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_level == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 547, __pyx_L3_error) } else { __pyx_v_level = ((int)8); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("wavefun", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 547, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._pywt.Wavelet.wavefun", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_10wavefun(((struct WaveletObject *)__pyx_v_self), __pyx_v_level); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_10wavefun(struct WaveletObject *__pyx_v_self, int __pyx_v_level) { __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t filter_length; __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t right_extent_length; __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t output_length; __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t keep_length; __pyx_t_5numpy_float64_t __pyx_v_n; __pyx_t_5numpy_float64_t __pyx_v_n_mul; __Pyx_memviewslice __pyx_v_n_arr = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_n_mul_arr = { 0, 0, { 0 }, { 0 }, { 0 } }; double p; struct WaveletObject *other = 0; PyObject *__pyx_v_phi_d = 0; PyObject *__pyx_v_psi_d = 0; PyObject *__pyx_v_phi_r = 0; PyObject *__pyx_v_psi_r = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __pyx_t_5numpy_float64_t *__pyx_t_1; struct __pyx_array_obj *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; __Pyx_memviewslice __pyx_t_5 = { 0, 0, { 0 }, { 0 }, { 0 } }; int __pyx_t_6; size_t __pyx_t_7; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; int __pyx_t_14; PyObject *__pyx_t_15 = NULL; PyObject *__pyx_t_16 = NULL; __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t __pyx_t_17; int __pyx_t_18; __Pyx_RefNannySetupContext("wavefun", 0); /* "pywt/_extensions/_pywt.pyx":585 * cdef pywt_index_t keep_length "keep_length" * cdef np.float64_t n, n_mul * cdef np.float64_t[::1] n_arr = &n, # <<<<<<<<<<<<<< * cdef np.float64_t[::1] n_mul_arr = &n_mul * cdef double p "p" */ __pyx_t_1 = (&__pyx_v_n); if (!__pyx_t_1) { PyErr_SetString(PyExc_ValueError,"Cannot create cython.array from NULL pointer"); __PYX_ERR(0, 585, __pyx_L1_error) } __pyx_t_4 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t); __pyx_t_3 = Py_BuildValue((char*) "(" __PYX_BUILD_PY_SSIZE_T ")", ((Py_ssize_t)1)); if (unlikely(!__pyx_t_4 || !__pyx_t_3 || !PyBytes_AsString(__pyx_t_4))) __PYX_ERR(0, 585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __pyx_array_new(__pyx_t_3, sizeof(__pyx_t_5numpy_float64_t), PyBytes_AS_STRING(__pyx_t_4), (char *) "c", (char *) __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(((PyObject *)__pyx_t_2), PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 585, __pyx_L1_error) __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __pyx_v_n_arr = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL; /* "pywt/_extensions/_pywt.pyx":586 * cdef np.float64_t n, n_mul * cdef np.float64_t[::1] n_arr = &n, * cdef np.float64_t[::1] n_mul_arr = &n_mul # <<<<<<<<<<<<<< * cdef double p "p" * cdef double mul "mul" */ __pyx_t_1 = (&__pyx_v_n_mul); if (!__pyx_t_1) { PyErr_SetString(PyExc_ValueError,"Cannot create cython.array from NULL pointer"); __PYX_ERR(0, 586, __pyx_L1_error) } __pyx_t_3 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t); __pyx_t_4 = Py_BuildValue((char*) "(" __PYX_BUILD_PY_SSIZE_T ")", ((Py_ssize_t)1)); if (unlikely(!__pyx_t_3 || !__pyx_t_4 || !PyBytes_AsString(__pyx_t_3))) __PYX_ERR(0, 586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __pyx_array_new(__pyx_t_4, sizeof(__pyx_t_5numpy_float64_t), PyBytes_AS_STRING(__pyx_t_3), (char *) "c", (char *) __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(((PyObject *)__pyx_t_2), PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 586, __pyx_L1_error) __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; __pyx_v_n_mul_arr = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL; /* "pywt/_extensions/_pywt.pyx":594 * cdef np.float64_t[::1] x, psi * * n = pow(sqrt(2.), level) # <<<<<<<<<<<<<< * p = (pow(2., level)) * */ __pyx_v_n = pow(sqrt(2.), ((double)__pyx_v_level)); /* "pywt/_extensions/_pywt.pyx":595 * * n = pow(sqrt(2.), level) * p = (pow(2., level)) # <<<<<<<<<<<<<< * * if self.w.base.orthogonal: */ p = pow(2., ((double)__pyx_v_level)); /* "pywt/_extensions/_pywt.pyx":597 * p = (pow(2., level)) * * if self.w.base.orthogonal: # <<<<<<<<<<<<<< * filter_length = self.w.dec_len * output_length = ((filter_length-1) * p + 1) */ __pyx_t_6 = (__pyx_v_self->w->base.orthogonal != 0); if (__pyx_t_6) { /* "pywt/_extensions/_pywt.pyx":598 * * if self.w.base.orthogonal: * filter_length = self.w.dec_len # <<<<<<<<<<<<<< * output_length = ((filter_length-1) * p + 1) * keep_length = get_keep_length(output_length, level, filter_length) */ __pyx_t_7 = __pyx_v_self->w->dec_len; filter_length = __pyx_t_7; /* "pywt/_extensions/_pywt.pyx":599 * if self.w.base.orthogonal: * filter_length = self.w.dec_len * output_length = ((filter_length-1) * p + 1) # <<<<<<<<<<<<<< * keep_length = get_keep_length(output_length, level, filter_length) * output_length = fix_output_length(output_length, keep_length) */ output_length = ((__pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t)(((filter_length - 1) * p) + 1.0)); /* "pywt/_extensions/_pywt.pyx":600 * filter_length = self.w.dec_len * output_length = ((filter_length-1) * p + 1) * keep_length = get_keep_length(output_length, level, filter_length) # <<<<<<<<<<<<<< * output_length = fix_output_length(output_length, keep_length) * */ keep_length = __pyx_f_4pywt_11_extensions_5_pywt_get_keep_length(output_length, __pyx_v_level, filter_length); /* "pywt/_extensions/_pywt.pyx":601 * output_length = ((filter_length-1) * p + 1) * keep_length = get_keep_length(output_length, level, filter_length) * output_length = fix_output_length(output_length, keep_length) # <<<<<<<<<<<<<< * * right_extent_length = get_right_extent_length(output_length, */ output_length = __pyx_f_4pywt_11_extensions_5_pywt_fix_output_length(output_length, keep_length); /* "pywt/_extensions/_pywt.pyx":603 * output_length = fix_output_length(output_length, keep_length) * * right_extent_length = get_right_extent_length(output_length, # <<<<<<<<<<<<<< * keep_length) * */ right_extent_length = __pyx_f_4pywt_11_extensions_5_pywt_get_right_extent_length(output_length, keep_length); /* "pywt/_extensions/_pywt.pyx":607 * * # phi, psi, x * return [np.concatenate(([0.], # <<<<<<<<<<<<<< * keep(upcoef(True, n_arr, self, level, 0), keep_length), * np.zeros(right_extent_length))), */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_concatenate); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_float_0_); __Pyx_GIVEREF(__pyx_float_0_); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_float_0_); /* "pywt/_extensions/_pywt.pyx":608 * # phi, psi, x * return [np.concatenate(([0.], * keep(upcoef(True, n_arr, self, level, 0), keep_length), # <<<<<<<<<<<<<< * np.zeros(right_extent_length))), * np.concatenate(([0.], */ __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_keep); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = __pyx_fuse_1__pyx_f_4pywt_11_extensions_4_dwt_upcoef(1, __pyx_v_n_arr, __pyx_v_self, __pyx_v_level, 0, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = PyInt_FromSsize_t(keep_length); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_13 = NULL; __pyx_t_14 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); __pyx_t_14 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_t_11, __pyx_t_12}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 608, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_t_11, __pyx_t_12}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 608, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif { __pyx_t_15 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (__pyx_t_13) { __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_13); __pyx_t_13 = NULL; } __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_14, __pyx_t_11); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_14, __pyx_t_12); __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_15, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; /* "pywt/_extensions/_pywt.pyx":609 * return [np.concatenate(([0.], * keep(upcoef(True, n_arr, self, level, 0), keep_length), * np.zeros(right_extent_length))), # <<<<<<<<<<<<<< * np.concatenate(([0.], * keep(upcoef(False, n_arr, self, level, 0), keep_length), */ __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_zeros); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = PyInt_FromSsize_t(right_extent_length); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_10 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_11, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_15); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; /* "pywt/_extensions/_pywt.pyx":607 * * # phi, psi, x * return [np.concatenate(([0.], # <<<<<<<<<<<<<< * keep(upcoef(True, n_arr, self, level, 0), keep_length), * np.zeros(right_extent_length))), */ __pyx_t_12 = PyTuple_New(3); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_12, 2, __pyx_t_10); __pyx_t_4 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_3 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_10, __pyx_t_12) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_12); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "pywt/_extensions/_pywt.pyx":610 * keep(upcoef(True, n_arr, self, level, 0), keep_length), * np.zeros(right_extent_length))), * np.concatenate(([0.], # <<<<<<<<<<<<<< * keep(upcoef(False, n_arr, self, level, 0), keep_length), * np.zeros(right_extent_length))), */ __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_concatenate); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyList_New(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_INCREF(__pyx_float_0_); __Pyx_GIVEREF(__pyx_float_0_); PyList_SET_ITEM(__pyx_t_12, 0, __pyx_float_0_); /* "pywt/_extensions/_pywt.pyx":611 * np.zeros(right_extent_length))), * np.concatenate(([0.], * keep(upcoef(False, n_arr, self, level, 0), keep_length), # <<<<<<<<<<<<<< * np.zeros(right_extent_length))), * np.linspace(0.0, (output_length-1)/p, output_length)] */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_keep); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_15 = __pyx_fuse_1__pyx_f_4pywt_11_extensions_4_dwt_upcoef(0, __pyx_v_n_arr, __pyx_v_self, __pyx_v_level, 0, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_11 = PyInt_FromSsize_t(keep_length); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_13 = NULL; __pyx_t_14 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_14 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_t_15, __pyx_t_11}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 611, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_t_15, __pyx_t_11}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 611, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } else #endif { __pyx_t_16 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); if (__pyx_t_13) { __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_13); __pyx_t_13 = NULL; } __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_16, 0+__pyx_t_14, __pyx_t_15); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_16, 1+__pyx_t_14, __pyx_t_11); __pyx_t_15 = 0; __pyx_t_11 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_16, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "pywt/_extensions/_pywt.pyx":612 * np.concatenate(([0.], * keep(upcoef(False, n_arr, self, level, 0), keep_length), * np.zeros(right_extent_length))), # <<<<<<<<<<<<<< * np.linspace(0.0, (output_length-1)/p, output_length)] * else: */ __Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_n_s_np); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_n_s_zeros); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = PyInt_FromSsize_t(right_extent_length); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_4 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_15, __pyx_t_16) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_16); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; /* "pywt/_extensions/_pywt.pyx":610 * keep(upcoef(True, n_arr, self, level, 0), keep_length), * np.zeros(right_extent_length))), * np.concatenate(([0.], # <<<<<<<<<<<<<< * keep(upcoef(False, n_arr, self, level, 0), keep_length), * np.zeros(right_extent_length))), */ __pyx_t_11 = PyTuple_New(3); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_11, 2, __pyx_t_4); __pyx_t_12 = 0; __pyx_t_9 = 0; __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_8 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_4, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_11); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; /* "pywt/_extensions/_pywt.pyx":613 * keep(upcoef(False, n_arr, self, level, 0), keep_length), * np.zeros(right_extent_length))), * np.linspace(0.0, (output_length-1)/p, output_length)] # <<<<<<<<<<<<<< * else: * if self.w.base.biorthogonal and (self.w.vanishing_moments_psi % 4) != 1: */ __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 613, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_linspace); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 613, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_17 = (output_length - 1); if (unlikely(p == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "float division"); __PYX_ERR(0, 613, __pyx_L1_error) } __pyx_t_11 = PyFloat_FromDouble((((double)__pyx_t_17) / p)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 613, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_9 = PyInt_FromSsize_t(output_length); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 613, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_12 = NULL; __pyx_t_14 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_14 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[4] = {__pyx_t_12, __pyx_float_0_0, __pyx_t_11, __pyx_t_9}; __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_14, 3+__pyx_t_14); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 613, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[4] = {__pyx_t_12, __pyx_float_0_0, __pyx_t_11, __pyx_t_9}; __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_14, 3+__pyx_t_14); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 613, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif { __pyx_t_16 = PyTuple_New(3+__pyx_t_14); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 613, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); if (__pyx_t_12) { __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_12); __pyx_t_12 = NULL; } __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyTuple_SET_ITEM(__pyx_t_16, 0+__pyx_t_14, __pyx_float_0_0); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_16, 1+__pyx_t_14, __pyx_t_11); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_16, 2+__pyx_t_14, __pyx_t_9); __pyx_t_11 = 0; __pyx_t_9 = 0; __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_16, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 613, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "pywt/_extensions/_pywt.pyx":607 * * # phi, psi, x * return [np.concatenate(([0.], # <<<<<<<<<<<<<< * keep(upcoef(True, n_arr, self, level, 0), keep_length), * np.zeros(right_extent_length))), */ __pyx_t_4 = PyList_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_8); PyList_SET_ITEM(__pyx_t_4, 1, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_10); PyList_SET_ITEM(__pyx_t_4, 2, __pyx_t_10); __pyx_t_3 = 0; __pyx_t_8 = 0; __pyx_t_10 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":597 * p = (pow(2., level)) * * if self.w.base.orthogonal: # <<<<<<<<<<<<<< * filter_length = self.w.dec_len * output_length = ((filter_length-1) * p + 1) */ } /* "pywt/_extensions/_pywt.pyx":615 * np.linspace(0.0, (output_length-1)/p, output_length)] * else: * if self.w.base.biorthogonal and (self.w.vanishing_moments_psi % 4) != 1: # <<<<<<<<<<<<<< * # FIXME: I don't think this branch is well tested * n_mul = -n */ /*else*/ { __pyx_t_18 = (__pyx_v_self->w->base.biorthogonal != 0); if (__pyx_t_18) { } else { __pyx_t_6 = __pyx_t_18; goto __pyx_L5_bool_binop_done; } __pyx_t_18 = ((__Pyx_mod_long(__pyx_v_self->w->vanishing_moments_psi, 4) != 1) != 0); __pyx_t_6 = __pyx_t_18; __pyx_L5_bool_binop_done:; if (__pyx_t_6) { /* "pywt/_extensions/_pywt.pyx":617 * if self.w.base.biorthogonal and (self.w.vanishing_moments_psi % 4) != 1: * # FIXME: I don't think this branch is well tested * n_mul = -n # <<<<<<<<<<<<<< * else: * n_mul = n */ __pyx_v_n_mul = (-__pyx_v_n); /* "pywt/_extensions/_pywt.pyx":615 * np.linspace(0.0, (output_length-1)/p, output_length)] * else: * if self.w.base.biorthogonal and (self.w.vanishing_moments_psi % 4) != 1: # <<<<<<<<<<<<<< * # FIXME: I don't think this branch is well tested * n_mul = -n */ goto __pyx_L4; } /* "pywt/_extensions/_pywt.pyx":619 * n_mul = -n * else: * n_mul = n # <<<<<<<<<<<<<< * * other = Wavelet(filter_bank=self.inverse_filter_bank) */ /*else*/ { __pyx_v_n_mul = __pyx_v_n; } __pyx_L4:; /* "pywt/_extensions/_pywt.pyx":621 * n_mul = n * * other = Wavelet(filter_bank=self.inverse_filter_bank) # <<<<<<<<<<<<<< * * filter_length = other.w.dec_len */ __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_inverse_filter_bank); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_filter_bank, __pyx_t_10) < 0) __PYX_ERR(0, 621, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet), __pyx_empty_tuple, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; other = ((struct WaveletObject *)__pyx_t_10); __pyx_t_10 = 0; /* "pywt/_extensions/_pywt.pyx":623 * other = Wavelet(filter_bank=self.inverse_filter_bank) * * filter_length = other.w.dec_len # <<<<<<<<<<<<<< * output_length = ((filter_length-1) * p) * keep_length = get_keep_length(output_length, level, filter_length) */ __pyx_t_7 = other->w->dec_len; filter_length = __pyx_t_7; /* "pywt/_extensions/_pywt.pyx":624 * * filter_length = other.w.dec_len * output_length = ((filter_length-1) * p) # <<<<<<<<<<<<<< * keep_length = get_keep_length(output_length, level, filter_length) * output_length = fix_output_length(output_length, keep_length) */ output_length = ((__pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t)((filter_length - 1) * p)); /* "pywt/_extensions/_pywt.pyx":625 * filter_length = other.w.dec_len * output_length = ((filter_length-1) * p) * keep_length = get_keep_length(output_length, level, filter_length) # <<<<<<<<<<<<<< * output_length = fix_output_length(output_length, keep_length) * right_extent_length = get_right_extent_length(output_length, keep_length) */ keep_length = __pyx_f_4pywt_11_extensions_5_pywt_get_keep_length(output_length, __pyx_v_level, filter_length); /* "pywt/_extensions/_pywt.pyx":626 * output_length = ((filter_length-1) * p) * keep_length = get_keep_length(output_length, level, filter_length) * output_length = fix_output_length(output_length, keep_length) # <<<<<<<<<<<<<< * right_extent_length = get_right_extent_length(output_length, keep_length) * */ output_length = __pyx_f_4pywt_11_extensions_5_pywt_fix_output_length(output_length, keep_length); /* "pywt/_extensions/_pywt.pyx":627 * keep_length = get_keep_length(output_length, level, filter_length) * output_length = fix_output_length(output_length, keep_length) * right_extent_length = get_right_extent_length(output_length, keep_length) # <<<<<<<<<<<<<< * * phi_d = np.concatenate(([0.], */ right_extent_length = __pyx_f_4pywt_11_extensions_5_pywt_get_right_extent_length(output_length, keep_length); /* "pywt/_extensions/_pywt.pyx":629 * right_extent_length = get_right_extent_length(output_length, keep_length) * * phi_d = np.concatenate(([0.], # <<<<<<<<<<<<<< * keep(upcoef(True, n_arr, other, level, 0), keep_length), * np.zeros(right_extent_length))) */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_concatenate); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_float_0_); __Pyx_GIVEREF(__pyx_float_0_); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_float_0_); /* "pywt/_extensions/_pywt.pyx":630 * * phi_d = np.concatenate(([0.], * keep(upcoef(True, n_arr, other, level, 0), keep_length), # <<<<<<<<<<<<<< * np.zeros(right_extent_length))) * psi_d = np.concatenate(([0.], */ __Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_n_s_keep); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_9 = __pyx_fuse_1__pyx_f_4pywt_11_extensions_4_dwt_upcoef(1, __pyx_v_n_arr, other, __pyx_v_level, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_11 = PyInt_FromSsize_t(keep_length); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = NULL; __pyx_t_14 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_16))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_16); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_16, function); __pyx_t_14 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_16)) { PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_t_9, __pyx_t_11}; __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_16, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 630, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_16)) { PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_t_9, __pyx_t_11}; __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_16, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 630, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } else #endif { __pyx_t_15 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (__pyx_t_12) { __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_12); __pyx_t_12 = NULL; } __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_14, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_14, __pyx_t_11); __pyx_t_9 = 0; __pyx_t_11 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_t_15, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; /* "pywt/_extensions/_pywt.pyx":631 * phi_d = np.concatenate(([0.], * keep(upcoef(True, n_arr, other, level, 0), keep_length), * np.zeros(right_extent_length))) # <<<<<<<<<<<<<< * psi_d = np.concatenate(([0.], * keep(upcoef(False, n_mul_arr, other, level, 0), */ __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_zeros); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = PyInt_FromSsize_t(right_extent_length); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_16 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_9, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_15); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; /* "pywt/_extensions/_pywt.pyx":629 * right_extent_length = get_right_extent_length(output_length, keep_length) * * phi_d = np.concatenate(([0.], # <<<<<<<<<<<<<< * keep(upcoef(True, n_arr, other, level, 0), keep_length), * np.zeros(right_extent_length))) */ __pyx_t_11 = PyTuple_New(3); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_11, 2, __pyx_t_16); __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_t_16 = 0; __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_10 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_16, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_11); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_phi_d = __pyx_t_10; __pyx_t_10 = 0; /* "pywt/_extensions/_pywt.pyx":632 * keep(upcoef(True, n_arr, other, level, 0), keep_length), * np.zeros(right_extent_length))) * psi_d = np.concatenate(([0.], # <<<<<<<<<<<<<< * keep(upcoef(False, n_mul_arr, other, level, 0), * keep_length), */ __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_concatenate); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyList_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_float_0_); __Pyx_GIVEREF(__pyx_float_0_); PyList_SET_ITEM(__pyx_t_8, 0, __pyx_float_0_); /* "pywt/_extensions/_pywt.pyx":633 * np.zeros(right_extent_length))) * psi_d = np.concatenate(([0.], * keep(upcoef(False, n_mul_arr, other, level, 0), # <<<<<<<<<<<<<< * keep_length), * np.zeros(right_extent_length))) */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_keep); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __pyx_fuse_1__pyx_f_4pywt_11_extensions_4_dwt_upcoef(0, __pyx_v_n_mul_arr, other, __pyx_v_level, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); /* "pywt/_extensions/_pywt.pyx":634 * psi_d = np.concatenate(([0.], * keep(upcoef(False, n_mul_arr, other, level, 0), * keep_length), # <<<<<<<<<<<<<< * np.zeros(right_extent_length))) * */ __pyx_t_15 = PyInt_FromSsize_t(keep_length); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_9 = NULL; __pyx_t_14 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_14 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_4, __pyx_t_15}; __pyx_t_16 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 633, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_4, __pyx_t_15}; __pyx_t_16 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 633, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } else #endif { __pyx_t_12 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_14, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_14, __pyx_t_15); __pyx_t_4 = 0; __pyx_t_15 = 0; __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_12, NULL); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/_pywt.pyx":635 * keep(upcoef(False, n_mul_arr, other, level, 0), * keep_length), * np.zeros(right_extent_length))) # <<<<<<<<<<<<<< * * filter_length = self.w.dec_len */ __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_zeros); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyInt_FromSsize_t(right_extent_length); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); } } __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_4, __pyx_t_12) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_12); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; /* "pywt/_extensions/_pywt.pyx":632 * keep(upcoef(True, n_arr, other, level, 0), keep_length), * np.zeros(right_extent_length))) * psi_d = np.concatenate(([0.], # <<<<<<<<<<<<<< * keep(upcoef(False, n_mul_arr, other, level, 0), * keep_length), */ __pyx_t_15 = PyTuple_New(3); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_16); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_15, 2, __pyx_t_3); __pyx_t_8 = 0; __pyx_t_16 = 0; __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_10 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_3, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_15); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 632, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_v_psi_d = __pyx_t_10; __pyx_t_10 = 0; /* "pywt/_extensions/_pywt.pyx":637 * np.zeros(right_extent_length))) * * filter_length = self.w.dec_len # <<<<<<<<<<<<<< * output_length = ((filter_length-1) * p) * keep_length = get_keep_length(output_length, level, filter_length) */ __pyx_t_7 = __pyx_v_self->w->dec_len; filter_length = __pyx_t_7; /* "pywt/_extensions/_pywt.pyx":638 * * filter_length = self.w.dec_len * output_length = ((filter_length-1) * p) # <<<<<<<<<<<<<< * keep_length = get_keep_length(output_length, level, filter_length) * output_length = fix_output_length(output_length, keep_length) */ output_length = ((__pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t)((filter_length - 1) * p)); /* "pywt/_extensions/_pywt.pyx":639 * filter_length = self.w.dec_len * output_length = ((filter_length-1) * p) * keep_length = get_keep_length(output_length, level, filter_length) # <<<<<<<<<<<<<< * output_length = fix_output_length(output_length, keep_length) * right_extent_length = get_right_extent_length(output_length, keep_length) */ keep_length = __pyx_f_4pywt_11_extensions_5_pywt_get_keep_length(output_length, __pyx_v_level, filter_length); /* "pywt/_extensions/_pywt.pyx":640 * output_length = ((filter_length-1) * p) * keep_length = get_keep_length(output_length, level, filter_length) * output_length = fix_output_length(output_length, keep_length) # <<<<<<<<<<<<<< * right_extent_length = get_right_extent_length(output_length, keep_length) * */ output_length = __pyx_f_4pywt_11_extensions_5_pywt_fix_output_length(output_length, keep_length); /* "pywt/_extensions/_pywt.pyx":641 * keep_length = get_keep_length(output_length, level, filter_length) * output_length = fix_output_length(output_length, keep_length) * right_extent_length = get_right_extent_length(output_length, keep_length) # <<<<<<<<<<<<<< * * phi_r = np.concatenate(([0.], */ right_extent_length = __pyx_f_4pywt_11_extensions_5_pywt_get_right_extent_length(output_length, keep_length); /* "pywt/_extensions/_pywt.pyx":643 * right_extent_length = get_right_extent_length(output_length, keep_length) * * phi_r = np.concatenate(([0.], # <<<<<<<<<<<<<< * keep(upcoef(True, n_arr, self, level, 0), keep_length), * np.zeros(right_extent_length))) */ __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_concatenate); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyList_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_INCREF(__pyx_float_0_); __Pyx_GIVEREF(__pyx_float_0_); PyList_SET_ITEM(__pyx_t_11, 0, __pyx_float_0_); /* "pywt/_extensions/_pywt.pyx":644 * * phi_r = np.concatenate(([0.], * keep(upcoef(True, n_arr, self, level, 0), keep_length), # <<<<<<<<<<<<<< * np.zeros(right_extent_length))) * psi_r = np.concatenate(([0.], */ __Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_n_s_keep); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_8 = __pyx_fuse_1__pyx_f_4pywt_11_extensions_4_dwt_upcoef(1, __pyx_v_n_arr, __pyx_v_self, __pyx_v_level, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_12 = PyInt_FromSsize_t(keep_length); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_4 = NULL; __pyx_t_14 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_16))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_16); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_16, function); __pyx_t_14 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_16)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_8, __pyx_t_12}; __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_16, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 644, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_16)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_8, __pyx_t_12}; __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_16, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 644, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif { __pyx_t_9 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_14, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_14, __pyx_t_12); __pyx_t_8 = 0; __pyx_t_12 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; /* "pywt/_extensions/_pywt.pyx":645 * phi_r = np.concatenate(([0.], * keep(upcoef(True, n_arr, self, level, 0), keep_length), * np.zeros(right_extent_length))) # <<<<<<<<<<<<<< * psi_r = np.concatenate(([0.], * keep(upcoef(False, n_mul_arr, self, level, 0), */ __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_zeros); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyInt_FromSsize_t(right_extent_length); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_16 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_8, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_9); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; /* "pywt/_extensions/_pywt.pyx":643 * right_extent_length = get_right_extent_length(output_length, keep_length) * * phi_r = np.concatenate(([0.], # <<<<<<<<<<<<<< * keep(upcoef(True, n_arr, self, level, 0), keep_length), * np.zeros(right_extent_length))) */ __pyx_t_12 = PyTuple_New(3); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_11); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_12, 2, __pyx_t_16); __pyx_t_11 = 0; __pyx_t_3 = 0; __pyx_t_16 = 0; __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); } } __pyx_t_10 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_16, __pyx_t_12) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_12); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_v_phi_r = __pyx_t_10; __pyx_t_10 = 0; /* "pywt/_extensions/_pywt.pyx":646 * keep(upcoef(True, n_arr, self, level, 0), keep_length), * np.zeros(right_extent_length))) * psi_r = np.concatenate(([0.], # <<<<<<<<<<<<<< * keep(upcoef(False, n_mul_arr, self, level, 0), * keep_length), */ __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_concatenate); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = PyList_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_INCREF(__pyx_float_0_); __Pyx_GIVEREF(__pyx_float_0_); PyList_SET_ITEM(__pyx_t_15, 0, __pyx_float_0_); /* "pywt/_extensions/_pywt.pyx":647 * np.zeros(right_extent_length))) * psi_r = np.concatenate(([0.], * keep(upcoef(False, n_mul_arr, self, level, 0), # <<<<<<<<<<<<<< * keep_length), * np.zeros(right_extent_length))) */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_keep); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_11 = __pyx_fuse_1__pyx_f_4pywt_11_extensions_4_dwt_upcoef(0, __pyx_v_n_mul_arr, __pyx_v_self, __pyx_v_level, 0, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); /* "pywt/_extensions/_pywt.pyx":648 * psi_r = np.concatenate(([0.], * keep(upcoef(False, n_mul_arr, self, level, 0), * keep_length), # <<<<<<<<<<<<<< * np.zeros(right_extent_length))) * */ __pyx_t_9 = PyInt_FromSsize_t(keep_length); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_8 = NULL; __pyx_t_14 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_14 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_11, __pyx_t_9}; __pyx_t_16 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 647, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_11, __pyx_t_9}; __pyx_t_16 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_14, 2+__pyx_t_14); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 647, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif { __pyx_t_4 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_8); __pyx_t_8 = NULL; } __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_14, __pyx_t_11); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_14, __pyx_t_9); __pyx_t_11 = 0; __pyx_t_9 = 0; __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/_pywt.pyx":649 * keep(upcoef(False, n_mul_arr, self, level, 0), * keep_length), * np.zeros(right_extent_length))) # <<<<<<<<<<<<<< * * return [phi_d, psi_d, phi_r, psi_r, */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyInt_FromSsize_t(right_extent_length); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_3 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_11, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_4); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; /* "pywt/_extensions/_pywt.pyx":646 * keep(upcoef(True, n_arr, self, level, 0), keep_length), * np.zeros(right_extent_length))) * psi_r = np.concatenate(([0.], # <<<<<<<<<<<<<< * keep(upcoef(False, n_mul_arr, self, level, 0), * keep_length), */ __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_15); __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_16); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_t_3); __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_10 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_3, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_9); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 646, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_v_psi_r = __pyx_t_10; __pyx_t_10 = 0; /* "pywt/_extensions/_pywt.pyx":651 * np.zeros(right_extent_length))) * * return [phi_d, psi_d, phi_r, psi_r, # <<<<<<<<<<<<<< * np.linspace(0.0, (output_length - 1) / p, output_length)] * */ __Pyx_XDECREF(__pyx_r); /* "pywt/_extensions/_pywt.pyx":652 * * return [phi_d, psi_d, phi_r, psi_r, * np.linspace(0.0, (output_length - 1) / p, output_length)] # <<<<<<<<<<<<<< * * def __str__(self): */ __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_linspace); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_17 = (output_length - 1); if (unlikely(p == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "float division"); __PYX_ERR(0, 652, __pyx_L1_error) } __pyx_t_12 = PyFloat_FromDouble((((double)__pyx_t_17) / p)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_3 = PyInt_FromSsize_t(output_length); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_16 = NULL; __pyx_t_14 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); __pyx_t_14 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[4] = {__pyx_t_16, __pyx_float_0_0, __pyx_t_12, __pyx_t_3}; __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_14, 3+__pyx_t_14); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 652, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[4] = {__pyx_t_16, __pyx_float_0_0, __pyx_t_12, __pyx_t_3}; __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_14, 3+__pyx_t_14); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 652, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif { __pyx_t_15 = PyTuple_New(3+__pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (__pyx_t_16) { __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_16); __pyx_t_16 = NULL; } __Pyx_INCREF(__pyx_float_0_0); __Pyx_GIVEREF(__pyx_float_0_0); PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_14, __pyx_float_0_0); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_14, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_14, __pyx_t_3); __pyx_t_12 = 0; __pyx_t_3 = 0; __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_15, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; /* "pywt/_extensions/_pywt.pyx":651 * np.zeros(right_extent_length))) * * return [phi_d, psi_d, phi_r, psi_r, # <<<<<<<<<<<<<< * np.linspace(0.0, (output_length - 1) / p, output_length)] * */ __pyx_t_9 = PyList_New(5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_v_phi_d); __Pyx_GIVEREF(__pyx_v_phi_d); PyList_SET_ITEM(__pyx_t_9, 0, __pyx_v_phi_d); __Pyx_INCREF(__pyx_v_psi_d); __Pyx_GIVEREF(__pyx_v_psi_d); PyList_SET_ITEM(__pyx_t_9, 1, __pyx_v_psi_d); __Pyx_INCREF(__pyx_v_phi_r); __Pyx_GIVEREF(__pyx_v_phi_r); PyList_SET_ITEM(__pyx_t_9, 2, __pyx_v_phi_r); __Pyx_INCREF(__pyx_v_psi_r); __Pyx_GIVEREF(__pyx_v_psi_r); PyList_SET_ITEM(__pyx_t_9, 3, __pyx_v_psi_r); __Pyx_GIVEREF(__pyx_t_10); PyList_SET_ITEM(__pyx_t_9, 4, __pyx_t_10); __pyx_t_10 = 0; __pyx_r = __pyx_t_9; __pyx_t_9 = 0; goto __pyx_L0; } /* "pywt/_extensions/_pywt.pyx":547 * return self.inverse_filter_bank * * def wavefun(self, int level=8): # <<<<<<<<<<<<<< * """ * wavefun(self, level=8) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(((PyObject *)__pyx_t_2)); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __PYX_XDEC_MEMVIEW(&__pyx_t_5, 1); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __Pyx_XDECREF(__pyx_t_12); __Pyx_XDECREF(__pyx_t_13); __Pyx_XDECREF(__pyx_t_15); __Pyx_XDECREF(__pyx_t_16); __Pyx_AddTraceback("pywt._extensions._pywt.Wavelet.wavefun", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_n_arr, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_n_mul_arr, 1); __Pyx_XDECREF((PyObject *)other); __Pyx_XDECREF(__pyx_v_phi_d); __Pyx_XDECREF(__pyx_v_psi_d); __Pyx_XDECREF(__pyx_v_phi_r); __Pyx_XDECREF(__pyx_v_psi_r); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":654 * np.linspace(0.0, (output_length - 1) / p, output_length)] * * def __str__(self): # <<<<<<<<<<<<<< * s = [] * for x in [ */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_13__str__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_13__str__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_12__str__(((struct WaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_12__str__(struct WaveletObject *__pyx_v_self) { PyObject *__pyx_v_s = NULL; PyObject *__pyx_v_x = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; Py_ssize_t __pyx_t_9; int __pyx_t_10; __Pyx_RefNannySetupContext("__str__", 0); /* "pywt/_extensions/_pywt.pyx":655 * * def __str__(self): * s = [] # <<<<<<<<<<<<<< * for x in [ * u"Wavelet %s" % self.name, */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_s = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_pywt.pyx":657 * s = [] * for x in [ * u"Wavelet %s" % self.name, # <<<<<<<<<<<<<< * u" Family name: %s" % self.family_name, * u" Short name: %s" % self.short_family_name, */ __pyx_t_1 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_Wavelet_s, __pyx_v_self->name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* "pywt/_extensions/_pywt.pyx":658 * for x in [ * u"Wavelet %s" % self.name, * u" Family name: %s" % self.family_name, # <<<<<<<<<<<<<< * u" Short name: %s" % self.short_family_name, * u" Filters length: %d" % self.dec_len, */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_family_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_Family_name_s, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_pywt.pyx":659 * u"Wavelet %s" % self.name, * u" Family name: %s" % self.family_name, * u" Short name: %s" % self.short_family_name, # <<<<<<<<<<<<<< * u" Filters length: %d" % self.dec_len, * u" Orthogonal: %s" % self.orthogonal, */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_short_family_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_Short_name_s, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_pywt.pyx":660 * u" Family name: %s" % self.family_name, * u" Short name: %s" % self.short_family_name, * u" Filters length: %d" % self.dec_len, # <<<<<<<<<<<<<< * u" Orthogonal: %s" % self.orthogonal, * u" Biorthogonal: %s" % self.biorthogonal, */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_dec_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_Filters_length_d, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_pywt.pyx":661 * u" Short name: %s" % self.short_family_name, * u" Filters length: %d" % self.dec_len, * u" Orthogonal: %s" % self.orthogonal, # <<<<<<<<<<<<<< * u" Biorthogonal: %s" % self.biorthogonal, * u" Symmetry: %s" % self.symmetry, */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_orthogonal); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_Orthogonal_s, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_pywt.pyx":662 * u" Filters length: %d" % self.dec_len, * u" Orthogonal: %s" % self.orthogonal, * u" Biorthogonal: %s" % self.biorthogonal, # <<<<<<<<<<<<<< * u" Symmetry: %s" % self.symmetry, * u" DWT: True", */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_biorthogonal); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_Biorthogonal_s, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_pywt.pyx":663 * u" Orthogonal: %s" % self.orthogonal, * u" Biorthogonal: %s" % self.biorthogonal, * u" Symmetry: %s" % self.symmetry, # <<<<<<<<<<<<<< * u" DWT: True", * u" CWT: False" */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_symmetry); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_Symmetry_s, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_pywt.pyx":656 * def __str__(self): * s = [] * for x in [ # <<<<<<<<<<<<<< * u"Wavelet %s" % self.name, * u" Family name: %s" % self.family_name, */ __pyx_t_2 = PyTuple_New(9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_2, 5, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_2, 6, __pyx_t_8); __Pyx_INCREF(__pyx_kp_u_DWT_True); __Pyx_GIVEREF(__pyx_kp_u_DWT_True); PyTuple_SET_ITEM(__pyx_t_2, 7, __pyx_kp_u_DWT_True); __Pyx_INCREF(__pyx_kp_u_CWT_False); __Pyx_GIVEREF(__pyx_kp_u_CWT_False); PyTuple_SET_ITEM(__pyx_t_2, 8, __pyx_kp_u_CWT_False); __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_8 = __pyx_t_2; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (__pyx_t_9 >= 9) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_2); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 656, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif __Pyx_XDECREF_SET(__pyx_v_x, ((PyObject*)__pyx_t_2)); __pyx_t_2 = 0; /* "pywt/_extensions/_pywt.pyx":667 * u" CWT: False" * ]: * s.append(x.rstrip()) # <<<<<<<<<<<<<< * return u'\n'.join(s) * */ __pyx_t_2 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyUnicode_Type_rstrip, __pyx_v_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_s, __pyx_t_2); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(0, 667, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_pywt.pyx":656 * def __str__(self): * s = [] * for x in [ # <<<<<<<<<<<<<< * u"Wavelet %s" % self.name, * u" Family name: %s" % self.family_name, */ } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "pywt/_extensions/_pywt.pyx":668 * ]: * s.append(x.rstrip()) * return u'\n'.join(s) # <<<<<<<<<<<<<< * * def __repr__(self): */ __Pyx_XDECREF(__pyx_r); __pyx_t_8 = PyUnicode_Join(__pyx_kp_u__18, __pyx_v_s); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 668, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_r = __pyx_t_8; __pyx_t_8 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":654 * np.linspace(0.0, (output_length - 1) / p, output_length)] * * def __str__(self): # <<<<<<<<<<<<<< * s = [] * for x in [ */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("pywt._extensions._pywt.Wavelet.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_s); __Pyx_XDECREF(__pyx_v_x); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":670 * return u'\n'.join(s) * * def __repr__(self): # <<<<<<<<<<<<<< * repr = "{module}.{classname}(name='{name}', filter_bank={filter_bank})" * return repr.format(module=type(self).__module__, */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_15__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_15__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_14__repr__(((struct WaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_14__repr__(struct WaveletObject *__pyx_v_self) { PyObject *__pyx_v_repr = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("__repr__", 0); /* "pywt/_extensions/_pywt.pyx":671 * * def __repr__(self): * repr = "{module}.{classname}(name='{name}', filter_bank={filter_bank})" # <<<<<<<<<<<<<< * return repr.format(module=type(self).__module__, * classname=type(self).__name__, */ __Pyx_INCREF(__pyx_kp_u_module_classname_name_name_filt); __pyx_v_repr = __pyx_kp_u_module_classname_name_name_filt; /* "pywt/_extensions/_pywt.pyx":672 * def __repr__(self): * repr = "{module}.{classname}(name='{name}', filter_bank={filter_bank})" * return repr.format(module=type(self).__module__, # <<<<<<<<<<<<<< * classname=type(self).__name__, * name=self.name, */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_repr, __pyx_n_s_format); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))), __pyx_n_s_module_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_module, __pyx_t_3) < 0) __PYX_ERR(0, 672, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/_pywt.pyx":673 * repr = "{module}.{classname}(name='{name}', filter_bank={filter_bank})" * return repr.format(module=type(self).__module__, * classname=type(self).__name__, # <<<<<<<<<<<<<< * name=self.name, * filter_bank=self.filter_bank) */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))), __pyx_n_s_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 673, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_classname, __pyx_t_3) < 0) __PYX_ERR(0, 672, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/_pywt.pyx":674 * return repr.format(module=type(self).__module__, * classname=type(self).__name__, * name=self.name, # <<<<<<<<<<<<<< * filter_bank=self.filter_bank) * */ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_name, __pyx_v_self->name) < 0) __PYX_ERR(0, 672, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":675 * classname=type(self).__name__, * name=self.name, * filter_bank=self.filter_bank) # <<<<<<<<<<<<<< * * */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_filter_bank); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_filter_bank, __pyx_t_3) < 0) __PYX_ERR(0, 672, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/_pywt.pyx":672 * def __repr__(self): * repr = "{module}.{classname}(name='{name}', filter_bank={filter_bank})" * return repr.format(module=type(self).__module__, # <<<<<<<<<<<<<< * classname=type(self).__name__, * name=self.name, */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":670 * return u'\n'.join(s) * * def __repr__(self): # <<<<<<<<<<<<<< * repr = "{module}.{classname}(name='{name}', filter_bank={filter_bank})" * return repr.format(module=type(self).__module__, */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pywt._extensions._pywt.Wavelet.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_repr); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pxd":26 * cdef wavelet.DiscreteWavelet* w * * cdef readonly name # <<<<<<<<<<<<<< * cdef readonly number * */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_4name_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_4name_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_4name___get__(((struct WaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_4name___get__(struct WaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->name); __pyx_r = __pyx_v_self->name; goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pxd":27 * * cdef readonly name * cdef readonly number # <<<<<<<<<<<<<< * * cdef public class ContinuousWavelet [type ContinuousWaveletType, object ContinuousWaveletObject]: */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_6number_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_6number_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_6number___get__(((struct WaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_6number___get__(struct WaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->number); __pyx_r = __pyx_v_self->number; goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_17__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_17__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_16__reduce_cython__(((struct WaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_16__reduce_cython__(CYTHON_UNUSED struct WaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._pywt.Wavelet.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_19__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_19__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_18__setstate_cython__(((struct WaveletObject *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_7Wavelet_18__setstate_cython__(CYTHON_UNUSED struct WaveletObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__20, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._pywt.Wavelet.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":688 * """ * #cdef readonly properties * def __cinit__(self, name=u"", dtype = None, **kwargs): # <<<<<<<<<<<<<< * cdef object family_code, family_number * */ /* Python wrapper */ static int __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_name = 0; PyObject *__pyx_v_dtype = 0; CYTHON_UNUSED PyObject *__pyx_v_kwargs = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return -1; __Pyx_GOTREF(__pyx_v_kwargs); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_dtype,0}; PyObject* values[2] = {0,0}; values[0] = ((PyObject *)__pyx_kp_u__9); values[1] = ((PyObject *)Py_None); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name); if (value) { values[0] = value; kw_args--; } } CYTHON_FALLTHROUGH; case 1: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dtype); if (value) { values[1] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, pos_args, "__cinit__") < 0)) __PYX_ERR(0, 688, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_name = values[0]; __pyx_v_dtype = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 688, __pyx_L3_error) __pyx_L3_error:; __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; __Pyx_AddTraceback("pywt._extensions._pywt.ContinuousWavelet.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet___cinit__(((struct ContinuousWaveletObject *)__pyx_v_self), __pyx_v_name, __pyx_v_dtype, __pyx_v_kwargs); /* function exit code */ __Pyx_XDECREF(__pyx_v_kwargs); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet___cinit__(struct ContinuousWaveletObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_dtype, CYTHON_UNUSED PyObject *__pyx_v_kwargs) { PyObject *__pyx_v_family_code = 0; PyObject *__pyx_v_family_number = 0; PyObject *__pyx_v_base_name = NULL; PyObject *__pyx_v_msg = NULL; PyObject *__pyx_v_freqs = NULL; double __pyx_v_M; int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_t_5; Py_ssize_t __pyx_t_6; int __pyx_t_7; int __pyx_t_8; PyObject *__pyx_t_9 = NULL; PyObject *(*__pyx_t_10)(PyObject *); WAVELET_NAME __pyx_t_11; PyObject *__pyx_t_12 = NULL; double __pyx_t_13; __Pyx_RefNannySetupContext("__cinit__", 0); /* "pywt/_extensions/_pywt.pyx":692 * * # builtin wavelet * self.name = name.lower() # <<<<<<<<<<<<<< * if (dtype is None): * self.dt = np.float64 */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s_lower); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->name); __Pyx_DECREF(__pyx_v_self->name); __pyx_v_self->name = __pyx_t_1; __pyx_t_1 = 0; /* "pywt/_extensions/_pywt.pyx":693 * # builtin wavelet * self.name = name.lower() * if (dtype is None): # <<<<<<<<<<<<<< * self.dt = np.float64 * else: */ __pyx_t_4 = (__pyx_v_dtype == Py_None); __pyx_t_5 = (__pyx_t_4 != 0); if (__pyx_t_5) { /* "pywt/_extensions/_pywt.pyx":694 * self.name = name.lower() * if (dtype is None): * self.dt = np.float64 # <<<<<<<<<<<<<< * else: * self.dt = dtype */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_float64); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_self->dt); __Pyx_DECREF(__pyx_v_self->dt); __pyx_v_self->dt = __pyx_t_2; __pyx_t_2 = 0; /* "pywt/_extensions/_pywt.pyx":693 * # builtin wavelet * self.name = name.lower() * if (dtype is None): # <<<<<<<<<<<<<< * self.dt = np.float64 * else: */ goto __pyx_L3; } /* "pywt/_extensions/_pywt.pyx":696 * self.dt = np.float64 * else: * self.dt = dtype # <<<<<<<<<<<<<< * if len(self.name) >= 4 and self.name[:4] in ['cmor', 'shan', 'fbsp']: * base_name = self.name[:4] */ /*else*/ { __Pyx_INCREF(__pyx_v_dtype); __Pyx_GIVEREF(__pyx_v_dtype); __Pyx_GOTREF(__pyx_v_self->dt); __Pyx_DECREF(__pyx_v_self->dt); __pyx_v_self->dt = __pyx_v_dtype; } __pyx_L3:; /* "pywt/_extensions/_pywt.pyx":697 * else: * self.dt = dtype * if len(self.name) >= 4 and self.name[:4] in ['cmor', 'shan', 'fbsp']: # <<<<<<<<<<<<<< * base_name = self.name[:4] * if base_name == self.name: */ __pyx_t_2 = __pyx_v_self->name; __Pyx_INCREF(__pyx_t_2); __pyx_t_6 = PyObject_Length(__pyx_t_2); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 697, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = ((__pyx_t_6 >= 4) != 0); if (__pyx_t_4) { } else { __pyx_t_5 = __pyx_t_4; goto __pyx_L5_bool_binop_done; } __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_self->name, 0, 4, NULL, NULL, &__pyx_slice__4, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_cmor, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 697, __pyx_L1_error) if (!__pyx_t_7) { } else { __pyx_t_4 = __pyx_t_7; goto __pyx_L7_bool_binop_done; } __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_shan, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 697, __pyx_L1_error) if (!__pyx_t_7) { } else { __pyx_t_4 = __pyx_t_7; goto __pyx_L7_bool_binop_done; } __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_fbsp, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 697, __pyx_L1_error) __pyx_t_4 = __pyx_t_7; __pyx_L7_bool_binop_done:; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = (__pyx_t_4 != 0); __pyx_t_5 = __pyx_t_7; __pyx_L5_bool_binop_done:; if (__pyx_t_5) { /* "pywt/_extensions/_pywt.pyx":698 * self.dt = dtype * if len(self.name) >= 4 and self.name[:4] in ['cmor', 'shan', 'fbsp']: * base_name = self.name[:4] # <<<<<<<<<<<<<< * if base_name == self.name: * if base_name == 'fbsp': */ __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_self->name, 0, 4, NULL, NULL, &__pyx_slice__4, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_base_name = __pyx_t_2; __pyx_t_2 = 0; /* "pywt/_extensions/_pywt.pyx":699 * if len(self.name) >= 4 and self.name[:4] in ['cmor', 'shan', 'fbsp']: * base_name = self.name[:4] * if base_name == self.name: # <<<<<<<<<<<<<< * if base_name == 'fbsp': * msg = ( */ __pyx_t_2 = PyObject_RichCompare(__pyx_v_base_name, __pyx_v_self->name, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 699, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 699, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_5) { /* "pywt/_extensions/_pywt.pyx":700 * base_name = self.name[:4] * if base_name == self.name: * if base_name == 'fbsp': # <<<<<<<<<<<<<< * msg = ( * "Wavelets of family {0}, without parameters " */ __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_base_name, __pyx_n_u_fbsp, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 700, __pyx_L1_error) if (__pyx_t_5) { /* "pywt/_extensions/_pywt.pyx":707 * "order and B, C are floats representing the bandwidth " * "frequency and center frequency, respectively " * "(example: {0}1-1.5-1.0).").format(base_name) # <<<<<<<<<<<<<< * else: * msg = ( */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Wavelets_of_family_0_without_par, __pyx_n_s_format); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, __pyx_v_base_name) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_base_name); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_msg = __pyx_t_2; __pyx_t_2 = 0; /* "pywt/_extensions/_pywt.pyx":700 * base_name = self.name[:4] * if base_name == self.name: * if base_name == 'fbsp': # <<<<<<<<<<<<<< * msg = ( * "Wavelets of family {0}, without parameters " */ goto __pyx_L11; } /* "pywt/_extensions/_pywt.pyx":715 * "representing the bandwidth frequency and center " * "frequency, respectively (example: {0}1.5-1.0)." * ).format(base_name) # <<<<<<<<<<<<<< * warnings.warn(msg, FutureWarning) * else: */ /*else*/ { __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Wavelets_from_the_family_0_witho, __pyx_n_s_format); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, __pyx_v_base_name) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_base_name); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_msg = __pyx_t_2; __pyx_t_2 = 0; } __pyx_L11:; /* "pywt/_extensions/_pywt.pyx":716 * "frequency, respectively (example: {0}1.5-1.0)." * ).format(base_name) * warnings.warn(msg, FutureWarning) # <<<<<<<<<<<<<< * else: * base_name = self.name */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_warnings); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_warn); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_msg, __pyx_builtin_FutureWarning}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 716, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_msg, __pyx_builtin_FutureWarning}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 716, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); } else #endif { __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(__pyx_v_msg); __Pyx_GIVEREF(__pyx_v_msg); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_v_msg); __Pyx_INCREF(__pyx_builtin_FutureWarning); __Pyx_GIVEREF(__pyx_builtin_FutureWarning); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_builtin_FutureWarning); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_pywt.pyx":699 * if len(self.name) >= 4 and self.name[:4] in ['cmor', 'shan', 'fbsp']: * base_name = self.name[:4] * if base_name == self.name: # <<<<<<<<<<<<<< * if base_name == 'fbsp': * msg = ( */ } /* "pywt/_extensions/_pywt.pyx":697 * else: * self.dt = dtype * if len(self.name) >= 4 and self.name[:4] in ['cmor', 'shan', 'fbsp']: # <<<<<<<<<<<<<< * base_name = self.name[:4] * if base_name == self.name: */ goto __pyx_L4; } /* "pywt/_extensions/_pywt.pyx":718 * warnings.warn(msg, FutureWarning) * else: * base_name = self.name # <<<<<<<<<<<<<< * family_code, family_number = wname_to_code(base_name) * self.w = wavelet.continuous_wavelet( */ /*else*/ { __pyx_t_2 = __pyx_v_self->name; __Pyx_INCREF(__pyx_t_2); __pyx_v_base_name = __pyx_t_2; __pyx_t_2 = 0; } __pyx_L4:; /* "pywt/_extensions/_pywt.pyx":719 * else: * base_name = self.name * family_code, family_number = wname_to_code(base_name) # <<<<<<<<<<<<<< * self.w = wavelet.continuous_wavelet( * family_code, family_number) */ __pyx_t_2 = __pyx_f_4pywt_11_extensions_5_pywt_wname_to_code(__pyx_v_base_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 719, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_9 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_3 = PyList_GET_ITEM(sequence, 0); __pyx_t_9 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_9); #else __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_10 = Py_TYPE(__pyx_t_1)->tp_iternext; index = 0; __pyx_t_3 = __pyx_t_10(__pyx_t_1); if (unlikely(!__pyx_t_3)) goto __pyx_L12_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); index = 1; __pyx_t_9 = __pyx_t_10(__pyx_t_1); if (unlikely(!__pyx_t_9)) goto __pyx_L12_unpacking_failed; __Pyx_GOTREF(__pyx_t_9); if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_1), 2) < 0) __PYX_ERR(0, 719, __pyx_L1_error) __pyx_t_10 = NULL; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L13_unpacking_done; __pyx_L12_unpacking_failed:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_10 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 719, __pyx_L1_error) __pyx_L13_unpacking_done:; } __pyx_v_family_code = __pyx_t_3; __pyx_t_3 = 0; __pyx_v_family_number = __pyx_t_9; __pyx_t_9 = 0; /* "pywt/_extensions/_pywt.pyx":721 * family_code, family_number = wname_to_code(base_name) * self.w = wavelet.continuous_wavelet( * family_code, family_number) # <<<<<<<<<<<<<< * * if self.w is NULL: */ __pyx_t_11 = ((WAVELET_NAME)__Pyx_PyInt_As_WAVELET_NAME(__pyx_v_family_code)); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 721, __pyx_L1_error) __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_v_family_number); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 721, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":720 * base_name = self.name * family_code, family_number = wname_to_code(base_name) * self.w = wavelet.continuous_wavelet( # <<<<<<<<<<<<<< * family_code, family_number) * */ __pyx_v_self->w = ((ContinuousWavelet *)continuous_wavelet(__pyx_t_11, __pyx_t_8)); /* "pywt/_extensions/_pywt.pyx":723 * family_code, family_number) * * if self.w is NULL: # <<<<<<<<<<<<<< * raise ValueError("Invalid wavelet name '%s'." % self.name) * self.number = family_number */ __pyx_t_5 = ((__pyx_v_self->w == NULL) != 0); if (unlikely(__pyx_t_5)) { /* "pywt/_extensions/_pywt.pyx":724 * * if self.w is NULL: * raise ValueError("Invalid wavelet name '%s'." % self.name) # <<<<<<<<<<<<<< * self.number = family_number * */ __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_Invalid_wavelet_name_s, __pyx_v_self->name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 724, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_Raise(__pyx_t_9, 0, 0, 0); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __PYX_ERR(0, 724, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":723 * family_code, family_number) * * if self.w is NULL: # <<<<<<<<<<<<<< * raise ValueError("Invalid wavelet name '%s'." % self.name) * self.number = family_number */ } /* "pywt/_extensions/_pywt.pyx":725 * if self.w is NULL: * raise ValueError("Invalid wavelet name '%s'." % self.name) * self.number = family_number # <<<<<<<<<<<<<< * * # set wavelet attributes based on frequencies extracted from the name */ __Pyx_INCREF(__pyx_v_family_number); __Pyx_GIVEREF(__pyx_v_family_number); __Pyx_GOTREF(__pyx_v_self->number); __Pyx_DECREF(__pyx_v_self->number); __pyx_v_self->number = __pyx_v_family_number; /* "pywt/_extensions/_pywt.pyx":728 * * # set wavelet attributes based on frequencies extracted from the name * if base_name != self.name: # <<<<<<<<<<<<<< * freqs = re.findall(cwt_pattern, self.name) * if base_name in ['shan', 'cmor']: */ __pyx_t_9 = PyObject_RichCompare(__pyx_v_base_name, __pyx_v_self->name, Py_NE); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 728, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 728, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (__pyx_t_5) { /* "pywt/_extensions/_pywt.pyx":729 * # set wavelet attributes based on frequencies extracted from the name * if base_name != self.name: * freqs = re.findall(cwt_pattern, self.name) # <<<<<<<<<<<<<< * if base_name in ['shan', 'cmor']: * if len(freqs) != 2: */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_re); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_findall); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cwt_pattern); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_2, __pyx_v_self->name}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_2, __pyx_v_self->name}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif { __pyx_t_12 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_8, __pyx_t_2); __Pyx_INCREF(__pyx_v_self->name); __Pyx_GIVEREF(__pyx_v_self->name); PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_8, __pyx_v_self->name); __pyx_t_2 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_12, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_freqs = __pyx_t_9; __pyx_t_9 = 0; /* "pywt/_extensions/_pywt.pyx":730 * if base_name != self.name: * freqs = re.findall(cwt_pattern, self.name) * if base_name in ['shan', 'cmor']: # <<<<<<<<<<<<<< * if len(freqs) != 2: * raise ValueError( */ __Pyx_INCREF(__pyx_v_base_name); __pyx_t_9 = __pyx_v_base_name; __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_t_9, __pyx_n_u_shan, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 730, __pyx_L1_error) if (!__pyx_t_7) { } else { __pyx_t_5 = __pyx_t_7; goto __pyx_L17_bool_binop_done; } __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_t_9, __pyx_n_u_cmor, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 730, __pyx_L1_error) __pyx_t_5 = __pyx_t_7; __pyx_L17_bool_binop_done:; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_7 = (__pyx_t_5 != 0); if (__pyx_t_7) { /* "pywt/_extensions/_pywt.pyx":731 * freqs = re.findall(cwt_pattern, self.name) * if base_name in ['shan', 'cmor']: * if len(freqs) != 2: # <<<<<<<<<<<<<< * raise ValueError( * ("For wavelets of family {0}, the name should take " */ __pyx_t_6 = PyObject_Length(__pyx_v_freqs); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 731, __pyx_L1_error) __pyx_t_7 = ((__pyx_t_6 != 2) != 0); if (unlikely(__pyx_t_7)) { /* "pywt/_extensions/_pywt.pyx":737 * "representing the bandwidth frequency and center " * "frequency, respectively. (example: {0}1.5-1.0)" * ).format(base_name)) # <<<<<<<<<<<<<< * self.w.bandwidth_frequency = float(freqs[0]) * self.w.center_frequency = float(freqs[1]) */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_For_wavelets_of_family_0_the_nam, __pyx_n_s_format); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 737, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_9 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_12, __pyx_v_base_name) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_base_name); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 737, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/_pywt.pyx":732 * if base_name in ['shan', 'cmor']: * if len(freqs) != 2: * raise ValueError( # <<<<<<<<<<<<<< * ("For wavelets of family {0}, the name should take " * "the form {0}B-C where B and C are floats " */ __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 732, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 732, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":731 * freqs = re.findall(cwt_pattern, self.name) * if base_name in ['shan', 'cmor']: * if len(freqs) != 2: # <<<<<<<<<<<<<< * raise ValueError( * ("For wavelets of family {0}, the name should take " */ } /* "pywt/_extensions/_pywt.pyx":738 * "frequency, respectively. (example: {0}1.5-1.0)" * ).format(base_name)) * self.w.bandwidth_frequency = float(freqs[0]) # <<<<<<<<<<<<<< * self.w.center_frequency = float(freqs[1]) * elif base_name in ['fbsp', ]: */ __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_freqs, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_13 = __Pyx_PyObject_AsDouble(__pyx_t_3); if (unlikely(__pyx_t_13 == ((double)((double)-1)) && PyErr_Occurred())) __PYX_ERR(0, 738, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_self->w->bandwidth_frequency = __pyx_t_13; /* "pywt/_extensions/_pywt.pyx":739 * ).format(base_name)) * self.w.bandwidth_frequency = float(freqs[0]) * self.w.center_frequency = float(freqs[1]) # <<<<<<<<<<<<<< * elif base_name in ['fbsp', ]: * if len(freqs) != 3: */ __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_freqs, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 739, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_13 = __Pyx_PyObject_AsDouble(__pyx_t_3); if (unlikely(__pyx_t_13 == ((double)((double)-1)) && PyErr_Occurred())) __PYX_ERR(0, 739, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_self->w->center_frequency = __pyx_t_13; /* "pywt/_extensions/_pywt.pyx":730 * if base_name != self.name: * freqs = re.findall(cwt_pattern, self.name) * if base_name in ['shan', 'cmor']: # <<<<<<<<<<<<<< * if len(freqs) != 2: * raise ValueError( */ goto __pyx_L16; } /* "pywt/_extensions/_pywt.pyx":740 * self.w.bandwidth_frequency = float(freqs[0]) * self.w.center_frequency = float(freqs[1]) * elif base_name in ['fbsp', ]: # <<<<<<<<<<<<<< * if len(freqs) != 3: * raise ValueError( */ __Pyx_INCREF(__pyx_v_base_name); __pyx_t_3 = __pyx_v_base_name; __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_n_u_fbsp, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 740, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = (__pyx_t_7 != 0); if (likely(__pyx_t_5)) { /* "pywt/_extensions/_pywt.pyx":741 * self.w.center_frequency = float(freqs[1]) * elif base_name in ['fbsp', ]: * if len(freqs) != 3: # <<<<<<<<<<<<<< * raise ValueError( * ("For wavelets of family {0}, the name should take " */ __pyx_t_6 = PyObject_Length(__pyx_v_freqs); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 741, __pyx_L1_error) __pyx_t_5 = ((__pyx_t_6 != 3) != 0); if (unlikely(__pyx_t_5)) { /* "pywt/_extensions/_pywt.pyx":747 * ", C are floats representing the bandwidth frequency " * "and center frequency, respectively " * "(example: {0}1-1.5-1.0).").format(base_name)) # <<<<<<<<<<<<<< * M = float(freqs[0]) * self.w.bandwidth_frequency = float(freqs[1]) */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_For_wavelets_of_family_0_the_nam_2, __pyx_n_s_format); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_3 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_12, __pyx_v_base_name) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_v_base_name); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; /* "pywt/_extensions/_pywt.pyx":742 * elif base_name in ['fbsp', ]: * if len(freqs) != 3: * raise ValueError( # <<<<<<<<<<<<<< * ("For wavelets of family {0}, the name should take " * "the form {0}M-B-C where M is the spline order and B" */ __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 742, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_9, 0, 0, 0); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __PYX_ERR(0, 742, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":741 * self.w.center_frequency = float(freqs[1]) * elif base_name in ['fbsp', ]: * if len(freqs) != 3: # <<<<<<<<<<<<<< * raise ValueError( * ("For wavelets of family {0}, the name should take " */ } /* "pywt/_extensions/_pywt.pyx":748 * "and center frequency, respectively " * "(example: {0}1-1.5-1.0).").format(base_name)) * M = float(freqs[0]) # <<<<<<<<<<<<<< * self.w.bandwidth_frequency = float(freqs[1]) * self.w.center_frequency = float(freqs[2]) */ __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_freqs, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_13 = __Pyx_PyObject_AsDouble(__pyx_t_9); if (unlikely(__pyx_t_13 == ((double)((double)-1)) && PyErr_Occurred())) __PYX_ERR(0, 748, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_M = __pyx_t_13; /* "pywt/_extensions/_pywt.pyx":749 * "(example: {0}1-1.5-1.0).").format(base_name)) * M = float(freqs[0]) * self.w.bandwidth_frequency = float(freqs[1]) # <<<<<<<<<<<<<< * self.w.center_frequency = float(freqs[2]) * if M < 1 or M % 1 != 0: */ __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_freqs, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_13 = __Pyx_PyObject_AsDouble(__pyx_t_9); if (unlikely(__pyx_t_13 == ((double)((double)-1)) && PyErr_Occurred())) __PYX_ERR(0, 749, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_self->w->bandwidth_frequency = __pyx_t_13; /* "pywt/_extensions/_pywt.pyx":750 * M = float(freqs[0]) * self.w.bandwidth_frequency = float(freqs[1]) * self.w.center_frequency = float(freqs[2]) # <<<<<<<<<<<<<< * if M < 1 or M % 1 != 0: * raise ValueError( */ __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_freqs, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_13 = __Pyx_PyObject_AsDouble(__pyx_t_9); if (unlikely(__pyx_t_13 == ((double)((double)-1)) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_self->w->center_frequency = __pyx_t_13; /* "pywt/_extensions/_pywt.pyx":751 * self.w.bandwidth_frequency = float(freqs[1]) * self.w.center_frequency = float(freqs[2]) * if M < 1 or M % 1 != 0: # <<<<<<<<<<<<<< * raise ValueError( * "Wavelet spline order must be an integer >= 1.") */ __pyx_t_7 = ((__pyx_v_M < 1.0) != 0); if (!__pyx_t_7) { } else { __pyx_t_5 = __pyx_t_7; goto __pyx_L22_bool_binop_done; } __pyx_t_7 = ((__Pyx_mod_double(__pyx_v_M, 1.0) != 0.0) != 0); __pyx_t_5 = __pyx_t_7; __pyx_L22_bool_binop_done:; if (unlikely(__pyx_t_5)) { /* "pywt/_extensions/_pywt.pyx":752 * self.w.center_frequency = float(freqs[2]) * if M < 1 or M % 1 != 0: * raise ValueError( # <<<<<<<<<<<<<< * "Wavelet spline order must be an integer >= 1.") * self.w.fbsp_order = int(M) */ __pyx_t_9 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__21, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_Raise(__pyx_t_9, 0, 0, 0); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __PYX_ERR(0, 752, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":751 * self.w.bandwidth_frequency = float(freqs[1]) * self.w.center_frequency = float(freqs[2]) * if M < 1 or M % 1 != 0: # <<<<<<<<<<<<<< * raise ValueError( * "Wavelet spline order must be an integer >= 1.") */ } /* "pywt/_extensions/_pywt.pyx":754 * raise ValueError( * "Wavelet spline order must be an integer >= 1.") * self.w.fbsp_order = int(M) # <<<<<<<<<<<<<< * else: * raise ValueError( */ __pyx_v_self->w->fbsp_order = ((unsigned int)__pyx_v_M); /* "pywt/_extensions/_pywt.pyx":740 * self.w.bandwidth_frequency = float(freqs[0]) * self.w.center_frequency = float(freqs[1]) * elif base_name in ['fbsp', ]: # <<<<<<<<<<<<<< * if len(freqs) != 3: * raise ValueError( */ goto __pyx_L16; } /* "pywt/_extensions/_pywt.pyx":756 * self.w.fbsp_order = int(M) * else: * raise ValueError( # <<<<<<<<<<<<<< * "Invalid continuous wavelet name '%s'." % self.name) * */ /*else*/ { /* "pywt/_extensions/_pywt.pyx":757 * else: * raise ValueError( * "Invalid continuous wavelet name '%s'." % self.name) # <<<<<<<<<<<<<< * * */ __pyx_t_9 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_Invalid_continuous_wavelet_name, __pyx_v_self->name); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); /* "pywt/_extensions/_pywt.pyx":756 * self.w.fbsp_order = int(M) * else: * raise ValueError( # <<<<<<<<<<<<<< * "Invalid continuous wavelet name '%s'." % self.name) * */ __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 756, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 756, __pyx_L1_error) } __pyx_L16:; /* "pywt/_extensions/_pywt.pyx":728 * * # set wavelet attributes based on frequencies extracted from the name * if base_name != self.name: # <<<<<<<<<<<<<< * freqs = re.findall(cwt_pattern, self.name) * if base_name in ['shan', 'cmor']: */ } /* "pywt/_extensions/_pywt.pyx":688 * """ * #cdef readonly properties * def __cinit__(self, name=u"", dtype = None, **kwargs): # <<<<<<<<<<<<<< * cdef object family_code, family_number * */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_12); __Pyx_AddTraceback("pywt._extensions._pywt.ContinuousWavelet.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_family_code); __Pyx_XDECREF(__pyx_v_family_number); __Pyx_XDECREF(__pyx_v_base_name); __Pyx_XDECREF(__pyx_v_msg); __Pyx_XDECREF(__pyx_v_freqs); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":760 * * * def __dealloc__(self): # <<<<<<<<<<<<<< * if self.w is not NULL: * wavelet.free_continuous_wavelet(self.w) */ /* Python wrapper */ static void __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ static void __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_3__dealloc__(PyObject *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_2__dealloc__(((struct ContinuousWaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_2__dealloc__(struct ContinuousWaveletObject *__pyx_v_self) { __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("__dealloc__", 0); /* "pywt/_extensions/_pywt.pyx":761 * * def __dealloc__(self): * if self.w is not NULL: # <<<<<<<<<<<<<< * wavelet.free_continuous_wavelet(self.w) * self.w = NULL */ __pyx_t_1 = ((__pyx_v_self->w != NULL) != 0); if (__pyx_t_1) { /* "pywt/_extensions/_pywt.pyx":762 * def __dealloc__(self): * if self.w is not NULL: * wavelet.free_continuous_wavelet(self.w) # <<<<<<<<<<<<<< * self.w = NULL * */ free_continuous_wavelet(__pyx_v_self->w); /* "pywt/_extensions/_pywt.pyx":763 * if self.w is not NULL: * wavelet.free_continuous_wavelet(self.w) * self.w = NULL # <<<<<<<<<<<<<< * * property family_number: */ __pyx_v_self->w = NULL; /* "pywt/_extensions/_pywt.pyx":761 * * def __dealloc__(self): * if self.w is not NULL: # <<<<<<<<<<<<<< * wavelet.free_continuous_wavelet(self.w) * self.w = NULL */ } /* "pywt/_extensions/_pywt.pyx":760 * * * def __dealloc__(self): # <<<<<<<<<<<<<< * if self.w is not NULL: * wavelet.free_continuous_wavelet(self.w) */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "pywt/_extensions/_pywt.pyx":767 * property family_number: * "Wavelet family number" * def __get__(self): # <<<<<<<<<<<<<< * return self.number * */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_13family_number_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_13family_number_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_13family_number___get__(((struct ContinuousWaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_13family_number___get__(struct ContinuousWaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* "pywt/_extensions/_pywt.pyx":768 * "Wavelet family number" * def __get__(self): * return self.number # <<<<<<<<<<<<<< * * property family_name: */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->number); __pyx_r = __pyx_v_self->number; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":767 * property family_number: * "Wavelet family number" * def __get__(self): # <<<<<<<<<<<<<< * return self.number * */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":772 * property family_name: * "Wavelet family name" * def __get__(self): # <<<<<<<<<<<<<< * return self.w.base.family_name.decode('latin-1') * */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11family_name_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11family_name_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11family_name___get__(((struct ContinuousWaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11family_name___get__(struct ContinuousWaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations char *__pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "pywt/_extensions/_pywt.pyx":773 * "Wavelet family name" * def __get__(self): * return self.w.base.family_name.decode('latin-1') # <<<<<<<<<<<<<< * * property short_family_name: */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_v_self->w->base.family_name; __pyx_t_2 = __Pyx_decode_c_string(__pyx_t_1, 0, strlen(__pyx_t_1), NULL, NULL, PyUnicode_DecodeLatin1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_2); __pyx_r = __pyx_t_2; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":772 * property family_name: * "Wavelet family name" * def __get__(self): # <<<<<<<<<<<<<< * return self.w.base.family_name.decode('latin-1') * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pywt._extensions._pywt.ContinuousWavelet.family_name.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":777 * property short_family_name: * "Short wavelet family name" * def __get__(self): # <<<<<<<<<<<<<< * return self.w.base.short_name.decode('latin-1') * */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_17short_family_name_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_17short_family_name_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_17short_family_name___get__(((struct ContinuousWaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_17short_family_name___get__(struct ContinuousWaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations char *__pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "pywt/_extensions/_pywt.pyx":778 * "Short wavelet family name" * def __get__(self): * return self.w.base.short_name.decode('latin-1') # <<<<<<<<<<<<<< * * property orthogonal: */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_v_self->w->base.short_name; __pyx_t_2 = __Pyx_decode_c_string(__pyx_t_1, 0, strlen(__pyx_t_1), NULL, NULL, PyUnicode_DecodeLatin1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 778, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_2); __pyx_r = __pyx_t_2; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":777 * property short_family_name: * "Short wavelet family name" * def __get__(self): # <<<<<<<<<<<<<< * return self.w.base.short_name.decode('latin-1') * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pywt._extensions._pywt.ContinuousWavelet.short_family_name.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":782 * property orthogonal: * "Is orthogonal" * def __get__(self): # <<<<<<<<<<<<<< * return bool(self.w.base.orthogonal) * def __set__(self, int value): */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_10orthogonal_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_10orthogonal_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_10orthogonal___get__(((struct ContinuousWaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_10orthogonal___get__(struct ContinuousWaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; __Pyx_RefNannySetupContext("__get__", 0); /* "pywt/_extensions/_pywt.pyx":783 * "Is orthogonal" * def __get__(self): * return bool(self.w.base.orthogonal) # <<<<<<<<<<<<<< * def __set__(self, int value): * self.w.base.orthogonal = (value != 0) */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->w->base.orthogonal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 783, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 783, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyBool_FromLong((!(!__pyx_t_2))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 783, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":782 * property orthogonal: * "Is orthogonal" * def __get__(self): # <<<<<<<<<<<<<< * return bool(self.w.base.orthogonal) * def __set__(self, int value): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._pywt.ContinuousWavelet.orthogonal.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":784 * def __get__(self): * return bool(self.w.base.orthogonal) * def __set__(self, int value): # <<<<<<<<<<<<<< * self.w.base.orthogonal = (value != 0) * */ /* Python wrapper */ static int __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_10orthogonal_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_value); /*proto*/ static int __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_10orthogonal_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_value) { int __pyx_v_value; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); assert(__pyx_arg_value); { __pyx_v_value = __Pyx_PyInt_As_int(__pyx_arg_value); if (unlikely((__pyx_v_value == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 784, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._pywt.ContinuousWavelet.orthogonal.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_10orthogonal_2__set__(((struct ContinuousWaveletObject *)__pyx_v_self), ((int)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_10orthogonal_2__set__(struct ContinuousWaveletObject *__pyx_v_self, int __pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__", 0); /* "pywt/_extensions/_pywt.pyx":785 * return bool(self.w.base.orthogonal) * def __set__(self, int value): * self.w.base.orthogonal = (value != 0) # <<<<<<<<<<<<<< * * property biorthogonal: */ __pyx_v_self->w->base.orthogonal = (__pyx_v_value != 0); /* "pywt/_extensions/_pywt.pyx":784 * def __get__(self): * return bool(self.w.base.orthogonal) * def __set__(self, int value): # <<<<<<<<<<<<<< * self.w.base.orthogonal = (value != 0) * */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":789 * property biorthogonal: * "Is biorthogonal" * def __get__(self): # <<<<<<<<<<<<<< * return bool(self.w.base.biorthogonal) * def __set__(self, int value): */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_12biorthogonal_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_12biorthogonal_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_12biorthogonal___get__(((struct ContinuousWaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_12biorthogonal___get__(struct ContinuousWaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; __Pyx_RefNannySetupContext("__get__", 0); /* "pywt/_extensions/_pywt.pyx":790 * "Is biorthogonal" * def __get__(self): * return bool(self.w.base.biorthogonal) # <<<<<<<<<<<<<< * def __set__(self, int value): * self.w.base.biorthogonal = (value != 0) */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->w->base.biorthogonal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 790, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 790, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyBool_FromLong((!(!__pyx_t_2))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 790, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":789 * property biorthogonal: * "Is biorthogonal" * def __get__(self): # <<<<<<<<<<<<<< * return bool(self.w.base.biorthogonal) * def __set__(self, int value): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._pywt.ContinuousWavelet.biorthogonal.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":791 * def __get__(self): * return bool(self.w.base.biorthogonal) * def __set__(self, int value): # <<<<<<<<<<<<<< * self.w.base.biorthogonal = (value != 0) * */ /* Python wrapper */ static int __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_12biorthogonal_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_value); /*proto*/ static int __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_12biorthogonal_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_value) { int __pyx_v_value; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); assert(__pyx_arg_value); { __pyx_v_value = __Pyx_PyInt_As_int(__pyx_arg_value); if (unlikely((__pyx_v_value == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 791, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._pywt.ContinuousWavelet.biorthogonal.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_12biorthogonal_2__set__(((struct ContinuousWaveletObject *)__pyx_v_self), ((int)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_12biorthogonal_2__set__(struct ContinuousWaveletObject *__pyx_v_self, int __pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__", 0); /* "pywt/_extensions/_pywt.pyx":792 * return bool(self.w.base.biorthogonal) * def __set__(self, int value): * self.w.base.biorthogonal = (value != 0) # <<<<<<<<<<<<<< * * property complex_cwt: */ __pyx_v_self->w->base.biorthogonal = (__pyx_v_value != 0); /* "pywt/_extensions/_pywt.pyx":791 * def __get__(self): * return bool(self.w.base.biorthogonal) * def __set__(self, int value): # <<<<<<<<<<<<<< * self.w.base.biorthogonal = (value != 0) * */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":796 * property complex_cwt: * "CWT is complex" * def __get__(self): # <<<<<<<<<<<<<< * return bool(self.w.complex_cwt) * def __set__(self, int value): */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11complex_cwt_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11complex_cwt_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11complex_cwt___get__(((struct ContinuousWaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11complex_cwt___get__(struct ContinuousWaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; __Pyx_RefNannySetupContext("__get__", 0); /* "pywt/_extensions/_pywt.pyx":797 * "CWT is complex" * def __get__(self): * return bool(self.w.complex_cwt) # <<<<<<<<<<<<<< * def __set__(self, int value): * self.w.complex_cwt = (value != 0) */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->w->complex_cwt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 797, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 797, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyBool_FromLong((!(!__pyx_t_2))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 797, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":796 * property complex_cwt: * "CWT is complex" * def __get__(self): # <<<<<<<<<<<<<< * return bool(self.w.complex_cwt) * def __set__(self, int value): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._pywt.ContinuousWavelet.complex_cwt.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":798 * def __get__(self): * return bool(self.w.complex_cwt) * def __set__(self, int value): # <<<<<<<<<<<<<< * self.w.complex_cwt = (value != 0) * */ /* Python wrapper */ static int __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11complex_cwt_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_value); /*proto*/ static int __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11complex_cwt_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_value) { int __pyx_v_value; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); assert(__pyx_arg_value); { __pyx_v_value = __Pyx_PyInt_As_int(__pyx_arg_value); if (unlikely((__pyx_v_value == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 798, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._pywt.ContinuousWavelet.complex_cwt.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11complex_cwt_2__set__(((struct ContinuousWaveletObject *)__pyx_v_self), ((int)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11complex_cwt_2__set__(struct ContinuousWaveletObject *__pyx_v_self, int __pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__", 0); /* "pywt/_extensions/_pywt.pyx":799 * return bool(self.w.complex_cwt) * def __set__(self, int value): * self.w.complex_cwt = (value != 0) # <<<<<<<<<<<<<< * * property lower_bound: */ __pyx_v_self->w->complex_cwt = (__pyx_v_value != 0); /* "pywt/_extensions/_pywt.pyx":798 * def __get__(self): * return bool(self.w.complex_cwt) * def __set__(self, int value): # <<<<<<<<<<<<<< * self.w.complex_cwt = (value != 0) * */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":803 * property lower_bound: * "Lower Bound" * def __get__(self): # <<<<<<<<<<<<<< * if self.w.lower_bound != self.w.upper_bound: * return self.w.lower_bound */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11lower_bound_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11lower_bound_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11lower_bound___get__(((struct ContinuousWaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11lower_bound___get__(struct ContinuousWaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "pywt/_extensions/_pywt.pyx":804 * "Lower Bound" * def __get__(self): * if self.w.lower_bound != self.w.upper_bound: # <<<<<<<<<<<<<< * return self.w.lower_bound * def __set__(self, float value): */ __pyx_t_1 = ((__pyx_v_self->w->lower_bound != __pyx_v_self->w->upper_bound) != 0); if (__pyx_t_1) { /* "pywt/_extensions/_pywt.pyx":805 * def __get__(self): * if self.w.lower_bound != self.w.upper_bound: * return self.w.lower_bound # <<<<<<<<<<<<<< * def __set__(self, float value): * self.w.lower_bound = value */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->w->lower_bound); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":804 * "Lower Bound" * def __get__(self): * if self.w.lower_bound != self.w.upper_bound: # <<<<<<<<<<<<<< * return self.w.lower_bound * def __set__(self, float value): */ } /* "pywt/_extensions/_pywt.pyx":803 * property lower_bound: * "Lower Bound" * def __get__(self): # <<<<<<<<<<<<<< * if self.w.lower_bound != self.w.upper_bound: * return self.w.lower_bound */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pywt._extensions._pywt.ContinuousWavelet.lower_bound.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":806 * if self.w.lower_bound != self.w.upper_bound: * return self.w.lower_bound * def __set__(self, float value): # <<<<<<<<<<<<<< * self.w.lower_bound = value * */ /* Python wrapper */ static int __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11lower_bound_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_value); /*proto*/ static int __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11lower_bound_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_value) { float __pyx_v_value; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); assert(__pyx_arg_value); { __pyx_v_value = __pyx_PyFloat_AsFloat(__pyx_arg_value); if (unlikely((__pyx_v_value == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 806, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._pywt.ContinuousWavelet.lower_bound.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11lower_bound_2__set__(((struct ContinuousWaveletObject *)__pyx_v_self), ((float)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11lower_bound_2__set__(struct ContinuousWaveletObject *__pyx_v_self, float __pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__", 0); /* "pywt/_extensions/_pywt.pyx":807 * return self.w.lower_bound * def __set__(self, float value): * self.w.lower_bound = value # <<<<<<<<<<<<<< * * property upper_bound: */ __pyx_v_self->w->lower_bound = __pyx_v_value; /* "pywt/_extensions/_pywt.pyx":806 * if self.w.lower_bound != self.w.upper_bound: * return self.w.lower_bound * def __set__(self, float value): # <<<<<<<<<<<<<< * self.w.lower_bound = value * */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":811 * property upper_bound: * "Upper Bound" * def __get__(self): # <<<<<<<<<<<<<< * if self.w.upper_bound != self.w.lower_bound: * return self.w.upper_bound */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11upper_bound_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11upper_bound_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11upper_bound___get__(((struct ContinuousWaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11upper_bound___get__(struct ContinuousWaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "pywt/_extensions/_pywt.pyx":812 * "Upper Bound" * def __get__(self): * if self.w.upper_bound != self.w.lower_bound: # <<<<<<<<<<<<<< * return self.w.upper_bound * def __set__(self, float value): */ __pyx_t_1 = ((__pyx_v_self->w->upper_bound != __pyx_v_self->w->lower_bound) != 0); if (__pyx_t_1) { /* "pywt/_extensions/_pywt.pyx":813 * def __get__(self): * if self.w.upper_bound != self.w.lower_bound: * return self.w.upper_bound # <<<<<<<<<<<<<< * def __set__(self, float value): * self.w.upper_bound = value */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->w->upper_bound); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":812 * "Upper Bound" * def __get__(self): * if self.w.upper_bound != self.w.lower_bound: # <<<<<<<<<<<<<< * return self.w.upper_bound * def __set__(self, float value): */ } /* "pywt/_extensions/_pywt.pyx":811 * property upper_bound: * "Upper Bound" * def __get__(self): # <<<<<<<<<<<<<< * if self.w.upper_bound != self.w.lower_bound: * return self.w.upper_bound */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pywt._extensions._pywt.ContinuousWavelet.upper_bound.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":814 * if self.w.upper_bound != self.w.lower_bound: * return self.w.upper_bound * def __set__(self, float value): # <<<<<<<<<<<<<< * self.w.upper_bound = value * */ /* Python wrapper */ static int __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11upper_bound_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_value); /*proto*/ static int __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11upper_bound_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_value) { float __pyx_v_value; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); assert(__pyx_arg_value); { __pyx_v_value = __pyx_PyFloat_AsFloat(__pyx_arg_value); if (unlikely((__pyx_v_value == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 814, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._pywt.ContinuousWavelet.upper_bound.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11upper_bound_2__set__(((struct ContinuousWaveletObject *)__pyx_v_self), ((float)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11upper_bound_2__set__(struct ContinuousWaveletObject *__pyx_v_self, float __pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__", 0); /* "pywt/_extensions/_pywt.pyx":815 * return self.w.upper_bound * def __set__(self, float value): * self.w.upper_bound = value # <<<<<<<<<<<<<< * * property center_frequency: */ __pyx_v_self->w->upper_bound = __pyx_v_value; /* "pywt/_extensions/_pywt.pyx":814 * if self.w.upper_bound != self.w.lower_bound: * return self.w.upper_bound * def __set__(self, float value): # <<<<<<<<<<<<<< * self.w.upper_bound = value * */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":819 * property center_frequency: * "Center frequency (shan, fbsp, cmor)" * def __get__(self): # <<<<<<<<<<<<<< * if self.w.center_frequency > 0: * return self.w.center_frequency */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_16center_frequency_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_16center_frequency_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_16center_frequency___get__(((struct ContinuousWaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_16center_frequency___get__(struct ContinuousWaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "pywt/_extensions/_pywt.pyx":820 * "Center frequency (shan, fbsp, cmor)" * def __get__(self): * if self.w.center_frequency > 0: # <<<<<<<<<<<<<< * return self.w.center_frequency * def __set__(self, float value): */ __pyx_t_1 = ((__pyx_v_self->w->center_frequency > 0.0) != 0); if (__pyx_t_1) { /* "pywt/_extensions/_pywt.pyx":821 * def __get__(self): * if self.w.center_frequency > 0: * return self.w.center_frequency # <<<<<<<<<<<<<< * def __set__(self, float value): * self.w.center_frequency = value */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->w->center_frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":820 * "Center frequency (shan, fbsp, cmor)" * def __get__(self): * if self.w.center_frequency > 0: # <<<<<<<<<<<<<< * return self.w.center_frequency * def __set__(self, float value): */ } /* "pywt/_extensions/_pywt.pyx":819 * property center_frequency: * "Center frequency (shan, fbsp, cmor)" * def __get__(self): # <<<<<<<<<<<<<< * if self.w.center_frequency > 0: * return self.w.center_frequency */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pywt._extensions._pywt.ContinuousWavelet.center_frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":822 * if self.w.center_frequency > 0: * return self.w.center_frequency * def __set__(self, float value): # <<<<<<<<<<<<<< * self.w.center_frequency = value * */ /* Python wrapper */ static int __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_16center_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_value); /*proto*/ static int __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_16center_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_value) { float __pyx_v_value; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); assert(__pyx_arg_value); { __pyx_v_value = __pyx_PyFloat_AsFloat(__pyx_arg_value); if (unlikely((__pyx_v_value == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 822, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._pywt.ContinuousWavelet.center_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_16center_frequency_2__set__(((struct ContinuousWaveletObject *)__pyx_v_self), ((float)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_16center_frequency_2__set__(struct ContinuousWaveletObject *__pyx_v_self, float __pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__", 0); /* "pywt/_extensions/_pywt.pyx":823 * return self.w.center_frequency * def __set__(self, float value): * self.w.center_frequency = value # <<<<<<<<<<<<<< * * property bandwidth_frequency: */ __pyx_v_self->w->center_frequency = __pyx_v_value; /* "pywt/_extensions/_pywt.pyx":822 * if self.w.center_frequency > 0: * return self.w.center_frequency * def __set__(self, float value): # <<<<<<<<<<<<<< * self.w.center_frequency = value * */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":827 * property bandwidth_frequency: * "Bandwidth frequency (shan, fbsp, cmor)" * def __get__(self): # <<<<<<<<<<<<<< * if self.w.bandwidth_frequency > 0: * return self.w.bandwidth_frequency */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_19bandwidth_frequency_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_19bandwidth_frequency_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_19bandwidth_frequency___get__(((struct ContinuousWaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_19bandwidth_frequency___get__(struct ContinuousWaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "pywt/_extensions/_pywt.pyx":828 * "Bandwidth frequency (shan, fbsp, cmor)" * def __get__(self): * if self.w.bandwidth_frequency > 0: # <<<<<<<<<<<<<< * return self.w.bandwidth_frequency * def __set__(self, float value): */ __pyx_t_1 = ((__pyx_v_self->w->bandwidth_frequency > 0.0) != 0); if (__pyx_t_1) { /* "pywt/_extensions/_pywt.pyx":829 * def __get__(self): * if self.w.bandwidth_frequency > 0: * return self.w.bandwidth_frequency # <<<<<<<<<<<<<< * def __set__(self, float value): * self.w.bandwidth_frequency = value */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->w->bandwidth_frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":828 * "Bandwidth frequency (shan, fbsp, cmor)" * def __get__(self): * if self.w.bandwidth_frequency > 0: # <<<<<<<<<<<<<< * return self.w.bandwidth_frequency * def __set__(self, float value): */ } /* "pywt/_extensions/_pywt.pyx":827 * property bandwidth_frequency: * "Bandwidth frequency (shan, fbsp, cmor)" * def __get__(self): # <<<<<<<<<<<<<< * if self.w.bandwidth_frequency > 0: * return self.w.bandwidth_frequency */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pywt._extensions._pywt.ContinuousWavelet.bandwidth_frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":830 * if self.w.bandwidth_frequency > 0: * return self.w.bandwidth_frequency * def __set__(self, float value): # <<<<<<<<<<<<<< * self.w.bandwidth_frequency = value * */ /* Python wrapper */ static int __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_19bandwidth_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_value); /*proto*/ static int __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_19bandwidth_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_value) { float __pyx_v_value; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); assert(__pyx_arg_value); { __pyx_v_value = __pyx_PyFloat_AsFloat(__pyx_arg_value); if (unlikely((__pyx_v_value == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 830, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._pywt.ContinuousWavelet.bandwidth_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_19bandwidth_frequency_2__set__(((struct ContinuousWaveletObject *)__pyx_v_self), ((float)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_19bandwidth_frequency_2__set__(struct ContinuousWaveletObject *__pyx_v_self, float __pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__", 0); /* "pywt/_extensions/_pywt.pyx":831 * return self.w.bandwidth_frequency * def __set__(self, float value): * self.w.bandwidth_frequency = value # <<<<<<<<<<<<<< * * property fbsp_order: */ __pyx_v_self->w->bandwidth_frequency = __pyx_v_value; /* "pywt/_extensions/_pywt.pyx":830 * if self.w.bandwidth_frequency > 0: * return self.w.bandwidth_frequency * def __set__(self, float value): # <<<<<<<<<<<<<< * self.w.bandwidth_frequency = value * */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":835 * property fbsp_order: * "order parameter for fbsp" * def __get__(self): # <<<<<<<<<<<<<< * if self.w.fbsp_order != 0: * return self.w.fbsp_order */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_10fbsp_order_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_10fbsp_order_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_10fbsp_order___get__(((struct ContinuousWaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_10fbsp_order___get__(struct ContinuousWaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "pywt/_extensions/_pywt.pyx":836 * "order parameter for fbsp" * def __get__(self): * if self.w.fbsp_order != 0: # <<<<<<<<<<<<<< * return self.w.fbsp_order * def __set__(self, unsigned int value): */ __pyx_t_1 = ((__pyx_v_self->w->fbsp_order != 0) != 0); if (__pyx_t_1) { /* "pywt/_extensions/_pywt.pyx":837 * def __get__(self): * if self.w.fbsp_order != 0: * return self.w.fbsp_order # <<<<<<<<<<<<<< * def __set__(self, unsigned int value): * self.w.fbsp_order = value */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->w->fbsp_order); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 837, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":836 * "order parameter for fbsp" * def __get__(self): * if self.w.fbsp_order != 0: # <<<<<<<<<<<<<< * return self.w.fbsp_order * def __set__(self, unsigned int value): */ } /* "pywt/_extensions/_pywt.pyx":835 * property fbsp_order: * "order parameter for fbsp" * def __get__(self): # <<<<<<<<<<<<<< * if self.w.fbsp_order != 0: * return self.w.fbsp_order */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pywt._extensions._pywt.ContinuousWavelet.fbsp_order.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":838 * if self.w.fbsp_order != 0: * return self.w.fbsp_order * def __set__(self, unsigned int value): # <<<<<<<<<<<<<< * self.w.fbsp_order = value * */ /* Python wrapper */ static int __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_10fbsp_order_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_value); /*proto*/ static int __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_10fbsp_order_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_value) { unsigned int __pyx_v_value; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); assert(__pyx_arg_value); { __pyx_v_value = __Pyx_PyInt_As_unsigned_int(__pyx_arg_value); if (unlikely((__pyx_v_value == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 838, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._pywt.ContinuousWavelet.fbsp_order.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_10fbsp_order_2__set__(((struct ContinuousWaveletObject *)__pyx_v_self), ((unsigned int)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_10fbsp_order_2__set__(struct ContinuousWaveletObject *__pyx_v_self, unsigned int __pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__set__", 0); /* "pywt/_extensions/_pywt.pyx":839 * return self.w.fbsp_order * def __set__(self, unsigned int value): * self.w.fbsp_order = value # <<<<<<<<<<<<<< * * property symmetry: */ __pyx_v_self->w->fbsp_order = __pyx_v_value; /* "pywt/_extensions/_pywt.pyx":838 * if self.w.fbsp_order != 0: * return self.w.fbsp_order * def __set__(self, unsigned int value): # <<<<<<<<<<<<<< * self.w.fbsp_order = value * */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":843 * property symmetry: * "Wavelet symmetry" * def __get__(self): # <<<<<<<<<<<<<< * if self.w.base.symmetry == wavelet.ASYMMETRIC: * return "asymmetric" */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_8symmetry_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_8symmetry_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_8symmetry___get__(((struct ContinuousWaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_8symmetry___get__(struct ContinuousWaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* "pywt/_extensions/_pywt.pyx":844 * "Wavelet symmetry" * def __get__(self): * if self.w.base.symmetry == wavelet.ASYMMETRIC: # <<<<<<<<<<<<<< * return "asymmetric" * elif self.w.base.symmetry == wavelet.NEAR_SYMMETRIC: */ switch (__pyx_v_self->w->base.symmetry) { case ASYMMETRIC: /* "pywt/_extensions/_pywt.pyx":845 * def __get__(self): * if self.w.base.symmetry == wavelet.ASYMMETRIC: * return "asymmetric" # <<<<<<<<<<<<<< * elif self.w.base.symmetry == wavelet.NEAR_SYMMETRIC: * return "near symmetric" */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_n_u_asymmetric); __pyx_r = __pyx_n_u_asymmetric; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":844 * "Wavelet symmetry" * def __get__(self): * if self.w.base.symmetry == wavelet.ASYMMETRIC: # <<<<<<<<<<<<<< * return "asymmetric" * elif self.w.base.symmetry == wavelet.NEAR_SYMMETRIC: */ break; case NEAR_SYMMETRIC: /* "pywt/_extensions/_pywt.pyx":847 * return "asymmetric" * elif self.w.base.symmetry == wavelet.NEAR_SYMMETRIC: * return "near symmetric" # <<<<<<<<<<<<<< * elif self.w.base.symmetry == wavelet.SYMMETRIC: * return "symmetric" */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_kp_u_near_symmetric); __pyx_r = __pyx_kp_u_near_symmetric; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":846 * if self.w.base.symmetry == wavelet.ASYMMETRIC: * return "asymmetric" * elif self.w.base.symmetry == wavelet.NEAR_SYMMETRIC: # <<<<<<<<<<<<<< * return "near symmetric" * elif self.w.base.symmetry == wavelet.SYMMETRIC: */ break; case SYMMETRIC: /* "pywt/_extensions/_pywt.pyx":849 * return "near symmetric" * elif self.w.base.symmetry == wavelet.SYMMETRIC: * return "symmetric" # <<<<<<<<<<<<<< * elif self.w.base.symmetry == wavelet.ANTI_SYMMETRIC: * return "anti-symmetric" */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_n_u_symmetric); __pyx_r = __pyx_n_u_symmetric; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":848 * elif self.w.base.symmetry == wavelet.NEAR_SYMMETRIC: * return "near symmetric" * elif self.w.base.symmetry == wavelet.SYMMETRIC: # <<<<<<<<<<<<<< * return "symmetric" * elif self.w.base.symmetry == wavelet.ANTI_SYMMETRIC: */ break; case ANTI_SYMMETRIC: /* "pywt/_extensions/_pywt.pyx":851 * return "symmetric" * elif self.w.base.symmetry == wavelet.ANTI_SYMMETRIC: * return "anti-symmetric" # <<<<<<<<<<<<<< * else: * return "unknown" */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_kp_u_anti_symmetric); __pyx_r = __pyx_kp_u_anti_symmetric; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":850 * elif self.w.base.symmetry == wavelet.SYMMETRIC: * return "symmetric" * elif self.w.base.symmetry == wavelet.ANTI_SYMMETRIC: # <<<<<<<<<<<<<< * return "anti-symmetric" * else: */ break; default: /* "pywt/_extensions/_pywt.pyx":853 * return "anti-symmetric" * else: * return "unknown" # <<<<<<<<<<<<<< * * def wavefun(self, int level=8, length=None): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_n_u_unknown); __pyx_r = __pyx_n_u_unknown; goto __pyx_L0; break; } /* "pywt/_extensions/_pywt.pyx":843 * property symmetry: * "Wavelet symmetry" * def __get__(self): # <<<<<<<<<<<<<< * if self.w.base.symmetry == wavelet.ASYMMETRIC: * return "asymmetric" */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":855 * return "unknown" * * def wavefun(self, int level=8, length=None): # <<<<<<<<<<<<<< * """ * wavefun(self, level=8, length=None) */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_5wavefun(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_4pywt_11_extensions_5_pywt_17ContinuousWavelet_4wavefun[] = "\n wavefun(self, level=8, length=None)\n\n Calculates approximations of wavelet function (``psi``) on xgrid\n (``x``) at a given level of refinement or length itself.\n\n Parameters\n ----------\n level : int, optional\n Level of refinement (default: 8). Defines the length by\n ``2**level`` if length is not set.\n length : int, optional\n Number of samples. If set to None, the length is set to\n ``2**level`` instead.\n\n Returns\n -------\n psi : array_like\n Wavelet function computed for grid xval\n xval : array_like\n grid going from lower_bound to upper_bound\n\n Notes\n -----\n The effective support are set with ``lower_bound`` and ``upper_bound``.\n The wavelet function is complex for ``'cmor'``, ``'shan'``, ``'fbsp'``\n and ``'cgau'``.\n\n The complex frequency B-spline wavelet (``'fbsp'``) has\n ``bandwidth_frequency``, ``center_frequency`` and ``fbsp_order`` as\n additional parameters.\n\n The complex Shannon wavelet (``'shan'``) has ``bandwidth_frequency``\n and ``center_frequency`` as additional parameters.\n\n The complex Morlet wavelet (``'cmor'``) has ``bandwidth_frequency``\n and ``center_frequency`` as additional parameters.\n\n Examples\n --------\n >>> import pywt\n >>> import matplotlib.pyplot as plt\n >>> lb = -5\n >>> ub = 5\n >>> n = 1000\n >>> wavelet = pywt.ContinuousWavelet(\"gaus8\")\n >>> wavelet.upper_bound = ub\n >>> wavelet.lower_bound = lb\n >>> [psi,xval] = wavelet.wavefun(length=n)\n >>> plt.plot(xval,psi) # doctest: +ELLIPSIS\n []\n >>> plt.title(\"Gaussian Wavelet of order 8\") # doctest: +ELLIPSIS\n \n >>> plt.show() # doctes""t: +SKIP\n\n >>> import pywt\n >>> import matplotlib.pyplot as plt\n >>> lb = -5\n >>> ub = 5\n >>> n = 1000\n >>> wavelet = pywt.ContinuousWavelet(\"cgau4\")\n >>> wavelet.upper_bound = ub\n >>> wavelet.lower_bound = lb\n >>> [psi,xval] = wavelet.wavefun(length=n)\n >>> plt.subplot(211) # doctest: +ELLIPSIS\n \n >>> plt.plot(xval,np.real(psi)) # doctest: +ELLIPSIS\n []\n >>> plt.title(\"Real part\") # doctest: +ELLIPSIS\n \n >>> plt.subplot(212) # doctest: +ELLIPSIS\n \n >>> plt.plot(xval,np.imag(psi)) # doctest: +ELLIPSIS\n []\n >>> plt.title(\"Imaginary part\") # doctest: +ELLIPSIS\n \n >>> plt.show() # doctest: +SKIP\n\n "; static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_5wavefun(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { int __pyx_v_level; PyObject *__pyx_v_length = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("wavefun (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,&__pyx_n_s_length,0}; PyObject* values[2] = {0,0}; values[1] = ((PyObject *)Py_None); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level); if (value) { values[0] = value; kw_args--; } } CYTHON_FALLTHROUGH; case 1: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_length); if (value) { values[1] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "wavefun") < 0)) __PYX_ERR(0, 855, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } } if (values[0]) { __pyx_v_level = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_level == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 855, __pyx_L3_error) } else { __pyx_v_level = ((int)8); } __pyx_v_length = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("wavefun", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 855, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._pywt.ContinuousWavelet.wavefun", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_4wavefun(((struct ContinuousWaveletObject *)__pyx_v_self), __pyx_v_level, __pyx_v_length); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_4wavefun(struct ContinuousWaveletObject *__pyx_v_self, int __pyx_v_level, PyObject *__pyx_v_length) { __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t output_length; PyObject *__pyx_v_psi_i = 0; PyObject *__pyx_v_psi_r = 0; PyObject *__pyx_v_psi = 0; __Pyx_memviewslice __pyx_v_x64 = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_x32 = { 0, 0, { 0 }, { 0 }, { 0 } }; double __pyx_v_p; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; __Pyx_memviewslice __pyx_t_9 = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_t_10 = { 0, 0, { 0 }, { 0 }, { 0 } }; PyObject *(*__pyx_t_11)(PyObject *); PyObject *__pyx_t_12 = NULL; __Pyx_RefNannySetupContext("wavefun", 0); /* "pywt/_extensions/_pywt.pyx":940 * cdef np.float32_t[::1] x32, psi32 * * p = (pow(2., level)) # <<<<<<<<<<<<<< * * if self.w is not NULL: */ __pyx_v_p = pow(2., ((double)__pyx_v_level)); /* "pywt/_extensions/_pywt.pyx":942 * p = (pow(2., level)) * * if self.w is not NULL: # <<<<<<<<<<<<<< * if length is None: * output_length = p */ __pyx_t_1 = ((__pyx_v_self->w != NULL) != 0); if (__pyx_t_1) { /* "pywt/_extensions/_pywt.pyx":943 * * if self.w is not NULL: * if length is None: # <<<<<<<<<<<<<< * output_length = p * else: */ __pyx_t_1 = (__pyx_v_length == Py_None); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "pywt/_extensions/_pywt.pyx":944 * if self.w is not NULL: * if length is None: * output_length = p # <<<<<<<<<<<<<< * else: * output_length = length */ output_length = ((__pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t)__pyx_v_p); /* "pywt/_extensions/_pywt.pyx":943 * * if self.w is not NULL: * if length is None: # <<<<<<<<<<<<<< * output_length = p * else: */ goto __pyx_L4; } /* "pywt/_extensions/_pywt.pyx":946 * output_length = p * else: * output_length = length # <<<<<<<<<<<<<< * if (self.dt == np.float64): * x64 = np.linspace(self.w.lower_bound, self.w.upper_bound, output_length, dtype=self.dt) */ /*else*/ { __pyx_t_3 = __Pyx_PyIndex_AsSsize_t(__pyx_v_length); if (unlikely((__pyx_t_3 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 946, __pyx_L1_error) output_length = ((__pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t)__pyx_t_3); } __pyx_L4:; /* "pywt/_extensions/_pywt.pyx":947 * else: * output_length = length * if (self.dt == np.float64): # <<<<<<<<<<<<<< * x64 = np.linspace(self.w.lower_bound, self.w.upper_bound, output_length, dtype=self.dt) * else: */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 947, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_float64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 947, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyObject_RichCompare(__pyx_v_self->dt, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 947, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 947, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_2) { /* "pywt/_extensions/_pywt.pyx":948 * output_length = length * if (self.dt == np.float64): * x64 = np.linspace(self.w.lower_bound, self.w.upper_bound, output_length, dtype=self.dt) # <<<<<<<<<<<<<< * else: * x32 = np.linspace(self.w.lower_bound, self.w.upper_bound, output_length, dtype=self.dt) */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 948, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_linspace); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 948, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->w->lower_bound); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 948, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyFloat_FromDouble(__pyx_v_self->w->upper_bound); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 948, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyInt_FromSsize_t(output_length); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 948, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 948, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7); __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 948, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_dtype, __pyx_v_self->dt) < 0) __PYX_ERR(0, 948, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 948, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_6, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 948, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_x64 = __pyx_t_9; __pyx_t_9.memview = NULL; __pyx_t_9.data = NULL; /* "pywt/_extensions/_pywt.pyx":947 * else: * output_length = length * if (self.dt == np.float64): # <<<<<<<<<<<<<< * x64 = np.linspace(self.w.lower_bound, self.w.upper_bound, output_length, dtype=self.dt) * else: */ goto __pyx_L5; } /* "pywt/_extensions/_pywt.pyx":950 * x64 = np.linspace(self.w.lower_bound, self.w.upper_bound, output_length, dtype=self.dt) * else: * x32 = np.linspace(self.w.lower_bound, self.w.upper_bound, output_length, dtype=self.dt) # <<<<<<<<<<<<<< * if self.w.complex_cwt: * if (self.dt == np.float64): */ /*else*/ { __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_linspace); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyFloat_FromDouble(__pyx_v_self->w->lower_bound); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_8 = PyFloat_FromDouble(__pyx_v_self->w->upper_bound); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_5 = PyInt_FromSsize_t(output_length); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_5); __pyx_t_6 = 0; __pyx_t_8 = 0; __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_v_self->dt) < 0) __PYX_ERR(0, 950, __pyx_L1_error) __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_8, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 950, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_x32 = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; } __pyx_L5:; /* "pywt/_extensions/_pywt.pyx":951 * else: * x32 = np.linspace(self.w.lower_bound, self.w.upper_bound, output_length, dtype=self.dt) * if self.w.complex_cwt: # <<<<<<<<<<<<<< * if (self.dt == np.float64): * psi_r, psi_i = cwt_psi_single(x64, self, output_length) */ __pyx_t_2 = (__pyx_v_self->w->complex_cwt != 0); if (__pyx_t_2) { /* "pywt/_extensions/_pywt.pyx":952 * x32 = np.linspace(self.w.lower_bound, self.w.upper_bound, output_length, dtype=self.dt) * if self.w.complex_cwt: * if (self.dt == np.float64): # <<<<<<<<<<<<<< * psi_r, psi_i = cwt_psi_single(x64, self, output_length) * return [np.asarray(psi_r, dtype=self.dt) + 1j * np.asarray(psi_i, dtype=self.dt), */ __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_float64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyObject_RichCompare(__pyx_v_self->dt, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 952, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 952, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_2) { /* "pywt/_extensions/_pywt.pyx":953 * if self.w.complex_cwt: * if (self.dt == np.float64): * psi_r, psi_i = cwt_psi_single(x64, self, output_length) # <<<<<<<<<<<<<< * return [np.asarray(psi_r, dtype=self.dt) + 1j * np.asarray(psi_i, dtype=self.dt), * np.asarray(x64, dtype=self.dt)] */ if (unlikely(!__pyx_v_x64.memview)) { __Pyx_RaiseUnboundLocalError("x64"); __PYX_ERR(0, 953, __pyx_L1_error) } __pyx_t_8 = __pyx_fuse_1__pyx_f_4pywt_11_extensions_4_cwt_cwt_psi_single(__pyx_v_x64, __pyx_v_self, output_length, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if ((likely(PyTuple_CheckExact(__pyx_t_8))) || (PyList_CheckExact(__pyx_t_8))) { PyObject* sequence = __pyx_t_8; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 953, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_5 = PyList_GET_ITEM(sequence, 0); __pyx_t_4 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_4); #else __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else { Py_ssize_t index = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_11 = Py_TYPE(__pyx_t_7)->tp_iternext; index = 0; __pyx_t_5 = __pyx_t_11(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; __Pyx_GOTREF(__pyx_t_5); index = 1; __pyx_t_4 = __pyx_t_11(__pyx_t_7); if (unlikely(!__pyx_t_4)) goto __pyx_L8_unpacking_failed; __Pyx_GOTREF(__pyx_t_4); if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_7), 2) < 0) __PYX_ERR(0, 953, __pyx_L1_error) __pyx_t_11 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L9_unpacking_done; __pyx_L8_unpacking_failed:; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_11 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 953, __pyx_L1_error) __pyx_L9_unpacking_done:; } __pyx_v_psi_r = __pyx_t_5; __pyx_t_5 = 0; __pyx_v_psi_i = __pyx_t_4; __pyx_t_4 = 0; /* "pywt/_extensions/_pywt.pyx":954 * if (self.dt == np.float64): * psi_r, psi_i = cwt_psi_single(x64, self, output_length) * return [np.asarray(psi_r, dtype=self.dt) + 1j * np.asarray(psi_i, dtype=self.dt), # <<<<<<<<<<<<<< * np.asarray(x64, dtype=self.dt)] * else: */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_asarray); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_v_psi_r); __Pyx_GIVEREF(__pyx_v_psi_r); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_psi_r); __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_v_self->dt) < 0) __PYX_ERR(0, 954, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyComplex_FromDoubles(0.0, 1.0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_asarray); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_v_psi_i); __Pyx_GIVEREF(__pyx_v_psi_i); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_psi_i); __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_v_self->dt) < 0) __PYX_ERR(0, 954, __pyx_L1_error) __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, __pyx_t_6); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyNumber_Multiply(__pyx_t_5, __pyx_t_12); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyNumber_Add(__pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "pywt/_extensions/_pywt.pyx":955 * psi_r, psi_i = cwt_psi_single(x64, self, output_length) * return [np.asarray(psi_r, dtype=self.dt) + 1j * np.asarray(psi_i, dtype=self.dt), * np.asarray(x64, dtype=self.dt)] # <<<<<<<<<<<<<< * else: * psi_r, psi_i = cwt_psi_single(x32, self, output_length) */ __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_asarray); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_v_x64.memview)) { __Pyx_RaiseUnboundLocalError("x64"); __PYX_ERR(0, 955, __pyx_L1_error) } __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_x64, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_v_self->dt) < 0) __PYX_ERR(0, 955, __pyx_L1_error) __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "pywt/_extensions/_pywt.pyx":954 * if (self.dt == np.float64): * psi_r, psi_i = cwt_psi_single(x64, self, output_length) * return [np.asarray(psi_r, dtype=self.dt) + 1j * np.asarray(psi_i, dtype=self.dt), # <<<<<<<<<<<<<< * np.asarray(x64, dtype=self.dt)] * else: */ __pyx_t_6 = PyList_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_12); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_8); PyList_SET_ITEM(__pyx_t_6, 1, __pyx_t_8); __pyx_t_12 = 0; __pyx_t_8 = 0; __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":952 * x32 = np.linspace(self.w.lower_bound, self.w.upper_bound, output_length, dtype=self.dt) * if self.w.complex_cwt: * if (self.dt == np.float64): # <<<<<<<<<<<<<< * psi_r, psi_i = cwt_psi_single(x64, self, output_length) * return [np.asarray(psi_r, dtype=self.dt) + 1j * np.asarray(psi_i, dtype=self.dt), */ } /* "pywt/_extensions/_pywt.pyx":957 * np.asarray(x64, dtype=self.dt)] * else: * psi_r, psi_i = cwt_psi_single(x32, self, output_length) # <<<<<<<<<<<<<< * return [np.asarray(psi_r, dtype=self.dt) + 1j * np.asarray(psi_i, dtype=self.dt), * np.asarray(x32, dtype=self.dt)] */ /*else*/ { if (unlikely(!__pyx_v_x32.memview)) { __Pyx_RaiseUnboundLocalError("x32"); __PYX_ERR(0, 957, __pyx_L1_error) } __pyx_t_6 = __pyx_fuse_0__pyx_f_4pywt_11_extensions_4_cwt_cwt_psi_single(__pyx_v_x32, __pyx_v_self, output_length, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) { PyObject* sequence = __pyx_t_6; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 957, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_12 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_8 = PyList_GET_ITEM(sequence, 0); __pyx_t_12 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_12); #else __pyx_t_8 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_12 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #endif __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else { Py_ssize_t index = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_11 = Py_TYPE(__pyx_t_5)->tp_iternext; index = 0; __pyx_t_8 = __pyx_t_11(__pyx_t_5); if (unlikely(!__pyx_t_8)) goto __pyx_L10_unpacking_failed; __Pyx_GOTREF(__pyx_t_8); index = 1; __pyx_t_12 = __pyx_t_11(__pyx_t_5); if (unlikely(!__pyx_t_12)) goto __pyx_L10_unpacking_failed; __Pyx_GOTREF(__pyx_t_12); if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_5), 2) < 0) __PYX_ERR(0, 957, __pyx_L1_error) __pyx_t_11 = NULL; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L11_unpacking_done; __pyx_L10_unpacking_failed:; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_11 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 957, __pyx_L1_error) __pyx_L11_unpacking_done:; } __pyx_v_psi_r = __pyx_t_8; __pyx_t_8 = 0; __pyx_v_psi_i = __pyx_t_12; __pyx_t_12 = 0; /* "pywt/_extensions/_pywt.pyx":958 * else: * psi_r, psi_i = cwt_psi_single(x32, self, output_length) * return [np.asarray(psi_r, dtype=self.dt) + 1j * np.asarray(psi_i, dtype=self.dt), # <<<<<<<<<<<<<< * np.asarray(x32, dtype=self.dt)] * else: */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_asarray); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_v_psi_r); __Pyx_GIVEREF(__pyx_v_psi_r); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_psi_r); __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_v_self->dt) < 0) __PYX_ERR(0, 958, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_6, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyComplex_FromDoubles(0.0, 1.0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_asarray); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_v_psi_i); __Pyx_GIVEREF(__pyx_v_psi_i); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_psi_i); __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_dtype, __pyx_v_self->dt) < 0) __PYX_ERR(0, 958, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyNumber_Multiply(__pyx_t_8, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Add(__pyx_t_5, __pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "pywt/_extensions/_pywt.pyx":959 * psi_r, psi_i = cwt_psi_single(x32, self, output_length) * return [np.asarray(psi_r, dtype=self.dt) + 1j * np.asarray(psi_i, dtype=self.dt), * np.asarray(x32, dtype=self.dt)] # <<<<<<<<<<<<<< * else: * if (self.dt == np.float64): */ __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_asarray); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_v_x32.memview)) { __Pyx_RaiseUnboundLocalError("x32"); __PYX_ERR(0, 959, __pyx_L1_error) } __pyx_t_7 = __pyx_memoryview_fromslice(__pyx_v_x32, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_dtype, __pyx_v_self->dt) < 0) __PYX_ERR(0, 959, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "pywt/_extensions/_pywt.pyx":958 * else: * psi_r, psi_i = cwt_psi_single(x32, self, output_length) * return [np.asarray(psi_r, dtype=self.dt) + 1j * np.asarray(psi_i, dtype=self.dt), # <<<<<<<<<<<<<< * np.asarray(x32, dtype=self.dt)] * else: */ __pyx_t_7 = PyList_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); PyList_SET_ITEM(__pyx_t_7, 1, __pyx_t_6); __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_r = __pyx_t_7; __pyx_t_7 = 0; goto __pyx_L0; } /* "pywt/_extensions/_pywt.pyx":951 * else: * x32 = np.linspace(self.w.lower_bound, self.w.upper_bound, output_length, dtype=self.dt) * if self.w.complex_cwt: # <<<<<<<<<<<<<< * if (self.dt == np.float64): * psi_r, psi_i = cwt_psi_single(x64, self, output_length) */ } /* "pywt/_extensions/_pywt.pyx":961 * np.asarray(x32, dtype=self.dt)] * else: * if (self.dt == np.float64): # <<<<<<<<<<<<<< * psi = cwt_psi_single(x64, self, output_length) * return [np.asarray(psi, dtype=self.dt), */ /*else*/ { __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_float64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyObject_RichCompare(__pyx_v_self->dt, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 961, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 961, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (__pyx_t_2) { /* "pywt/_extensions/_pywt.pyx":962 * else: * if (self.dt == np.float64): * psi = cwt_psi_single(x64, self, output_length) # <<<<<<<<<<<<<< * return [np.asarray(psi, dtype=self.dt), * np.asarray(x64, dtype=self.dt)] */ if (unlikely(!__pyx_v_x64.memview)) { __Pyx_RaiseUnboundLocalError("x64"); __PYX_ERR(0, 962, __pyx_L1_error) } __pyx_t_7 = __pyx_fuse_1__pyx_f_4pywt_11_extensions_4_cwt_cwt_psi_single(__pyx_v_x64, __pyx_v_self, output_length, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_v_psi = __pyx_t_7; __pyx_t_7 = 0; /* "pywt/_extensions/_pywt.pyx":963 * if (self.dt == np.float64): * psi = cwt_psi_single(x64, self, output_length) * return [np.asarray(psi, dtype=self.dt), # <<<<<<<<<<<<<< * np.asarray(x64, dtype=self.dt)] * */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_asarray); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_v_psi); __Pyx_GIVEREF(__pyx_v_psi); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_psi); __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_v_self->dt) < 0) __PYX_ERR(0, 963, __pyx_L1_error) __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "pywt/_extensions/_pywt.pyx":964 * psi = cwt_psi_single(x64, self, output_length) * return [np.asarray(psi, dtype=self.dt), * np.asarray(x64, dtype=self.dt)] # <<<<<<<<<<<<<< * * else: */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 964, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_asarray); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 964, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_v_x64.memview)) { __Pyx_RaiseUnboundLocalError("x64"); __PYX_ERR(0, 964, __pyx_L1_error) } __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_x64, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 964, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 964, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 964, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_v_self->dt) < 0) __PYX_ERR(0, 964, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 964, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "pywt/_extensions/_pywt.pyx":963 * if (self.dt == np.float64): * psi = cwt_psi_single(x64, self, output_length) * return [np.asarray(psi, dtype=self.dt), # <<<<<<<<<<<<<< * np.asarray(x64, dtype=self.dt)] * */ __pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_8); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_4, 1, __pyx_t_5); __pyx_t_8 = 0; __pyx_t_5 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":961 * np.asarray(x32, dtype=self.dt)] * else: * if (self.dt == np.float64): # <<<<<<<<<<<<<< * psi = cwt_psi_single(x64, self, output_length) * return [np.asarray(psi, dtype=self.dt), */ } /* "pywt/_extensions/_pywt.pyx":967 * * else: * psi = cwt_psi_single(x32, self, output_length) # <<<<<<<<<<<<<< * return [np.asarray(psi, dtype=self.dt), * np.asarray(x32, dtype=self.dt)] */ /*else*/ { if (unlikely(!__pyx_v_x32.memview)) { __Pyx_RaiseUnboundLocalError("x32"); __PYX_ERR(0, 967, __pyx_L1_error) } __pyx_t_4 = __pyx_fuse_0__pyx_f_4pywt_11_extensions_4_cwt_cwt_psi_single(__pyx_v_x32, __pyx_v_self, output_length, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_psi = __pyx_t_4; __pyx_t_4 = 0; /* "pywt/_extensions/_pywt.pyx":968 * else: * psi = cwt_psi_single(x32, self, output_length) * return [np.asarray(psi, dtype=self.dt), # <<<<<<<<<<<<<< * np.asarray(x32, dtype=self.dt)] * */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_asarray); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v_psi); __Pyx_GIVEREF(__pyx_v_psi); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_psi); __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_v_self->dt) < 0) __PYX_ERR(0, 968, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, __pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "pywt/_extensions/_pywt.pyx":969 * psi = cwt_psi_single(x32, self, output_length) * return [np.asarray(psi, dtype=self.dt), * np.asarray(x32, dtype=self.dt)] # <<<<<<<<<<<<<< * * def __str__(self): */ __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_asarray); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_v_x32.memview)) { __Pyx_RaiseUnboundLocalError("x32"); __PYX_ERR(0, 969, __pyx_L1_error) } __pyx_t_8 = __pyx_memoryview_fromslice(__pyx_v_x32, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_v_self->dt) < 0) __PYX_ERR(0, 969, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; /* "pywt/_extensions/_pywt.pyx":968 * else: * psi = cwt_psi_single(x32, self, output_length) * return [np.asarray(psi, dtype=self.dt), # <<<<<<<<<<<<<< * np.asarray(x32, dtype=self.dt)] * */ __pyx_t_8 = PyList_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_6); PyList_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_7); PyList_SET_ITEM(__pyx_t_8, 1, __pyx_t_7); __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_r = __pyx_t_8; __pyx_t_8 = 0; goto __pyx_L0; } } /* "pywt/_extensions/_pywt.pyx":942 * p = (pow(2., level)) * * if self.w is not NULL: # <<<<<<<<<<<<<< * if length is None: * output_length = p */ } /* "pywt/_extensions/_pywt.pyx":855 * return "unknown" * * def wavefun(self, int level=8, length=None): # <<<<<<<<<<<<<< * """ * wavefun(self, level=8, length=None) */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __PYX_XDEC_MEMVIEW(&__pyx_t_9, 1); __PYX_XDEC_MEMVIEW(&__pyx_t_10, 1); __Pyx_XDECREF(__pyx_t_12); __Pyx_AddTraceback("pywt._extensions._pywt.ContinuousWavelet.wavefun", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_psi_i); __Pyx_XDECREF(__pyx_v_psi_r); __Pyx_XDECREF(__pyx_v_psi); __PYX_XDEC_MEMVIEW(&__pyx_v_x64, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_x32, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":971 * np.asarray(x32, dtype=self.dt)] * * def __str__(self): # <<<<<<<<<<<<<< * s = [] * for x in [ */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_7__str__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_7__str__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_6__str__(((struct ContinuousWaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_6__str__(struct ContinuousWaveletObject *__pyx_v_self) { PyObject *__pyx_v_s = NULL; PyObject *__pyx_v_x = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; Py_ssize_t __pyx_t_7; int __pyx_t_8; __Pyx_RefNannySetupContext("__str__", 0); /* "pywt/_extensions/_pywt.pyx":972 * * def __str__(self): * s = [] # <<<<<<<<<<<<<< * for x in [ * u"ContinuousWavelet %s" % self.name, */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_s = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_pywt.pyx":974 * s = [] * for x in [ * u"ContinuousWavelet %s" % self.name, # <<<<<<<<<<<<<< * u" Family name: %s" % self.family_name, * u" Short name: %s" % self.short_family_name, */ __pyx_t_1 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_ContinuousWavelet_s, __pyx_v_self->name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* "pywt/_extensions/_pywt.pyx":975 * for x in [ * u"ContinuousWavelet %s" % self.name, * u" Family name: %s" % self.family_name, # <<<<<<<<<<<<<< * u" Short name: %s" % self.short_family_name, * u" Symmetry: %s" % self.symmetry, */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_family_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_Family_name_s, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_pywt.pyx":976 * u"ContinuousWavelet %s" % self.name, * u" Family name: %s" % self.family_name, * u" Short name: %s" % self.short_family_name, # <<<<<<<<<<<<<< * u" Symmetry: %s" % self.symmetry, * u" DWT: False", */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_short_family_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_Short_name_s, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_pywt.pyx":977 * u" Family name: %s" % self.family_name, * u" Short name: %s" % self.short_family_name, * u" Symmetry: %s" % self.symmetry, # <<<<<<<<<<<<<< * u" DWT: False", * u" CWT: True", */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_symmetry); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 977, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_Symmetry_s, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 977, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_pywt.pyx":980 * u" DWT: False", * u" CWT: True", * u" Complex CWT: %s" % self.complex_cwt # <<<<<<<<<<<<<< * ]: * s.append(x.rstrip()) */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_complex_cwt); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 980, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_Complex_CWT_s, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 980, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_pywt.pyx":973 * def __str__(self): * s = [] * for x in [ # <<<<<<<<<<<<<< * u"ContinuousWavelet %s" % self.name, * u" Family name: %s" % self.family_name, */ __pyx_t_2 = PyTuple_New(7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 973, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_5); __Pyx_INCREF(__pyx_kp_u_DWT_False); __Pyx_GIVEREF(__pyx_kp_u_DWT_False); PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_kp_u_DWT_False); __Pyx_INCREF(__pyx_kp_u_CWT_True); __Pyx_GIVEREF(__pyx_kp_u_CWT_True); PyTuple_SET_ITEM(__pyx_t_2, 5, __pyx_kp_u_CWT_True); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_2, 6, __pyx_t_6); __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_6 = __pyx_t_2; __Pyx_INCREF(__pyx_t_6); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (__pyx_t_7 >= 7) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_2); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 973, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_6, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 973, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif __Pyx_XDECREF_SET(__pyx_v_x, ((PyObject*)__pyx_t_2)); __pyx_t_2 = 0; /* "pywt/_extensions/_pywt.pyx":982 * u" Complex CWT: %s" % self.complex_cwt * ]: * s.append(x.rstrip()) # <<<<<<<<<<<<<< * return u'\n'.join(s) * */ __pyx_t_2 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyUnicode_Type_rstrip, __pyx_v_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_s, __pyx_t_2); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 982, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_pywt.pyx":973 * def __str__(self): * s = [] * for x in [ # <<<<<<<<<<<<<< * u"ContinuousWavelet %s" % self.name, * u" Family name: %s" % self.family_name, */ } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "pywt/_extensions/_pywt.pyx":983 * ]: * s.append(x.rstrip()) * return u'\n'.join(s) # <<<<<<<<<<<<<< * * def __repr__(self): */ __Pyx_XDECREF(__pyx_r); __pyx_t_6 = PyUnicode_Join(__pyx_kp_u__18, __pyx_v_s); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":971 * np.asarray(x32, dtype=self.dt)] * * def __str__(self): # <<<<<<<<<<<<<< * s = [] * for x in [ */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("pywt._extensions._pywt.ContinuousWavelet.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_s); __Pyx_XDECREF(__pyx_v_x); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":985 * return u'\n'.join(s) * * def __repr__(self): # <<<<<<<<<<<<<< * repr = "{module}.{classname}(name='{name}')" * return repr.format(module=type(self).__module__, */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_9__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_9__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_8__repr__(((struct ContinuousWaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_8__repr__(struct ContinuousWaveletObject *__pyx_v_self) { PyObject *__pyx_v_repr = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("__repr__", 0); /* "pywt/_extensions/_pywt.pyx":986 * * def __repr__(self): * repr = "{module}.{classname}(name='{name}')" # <<<<<<<<<<<<<< * return repr.format(module=type(self).__module__, * classname=type(self).__name__, */ __Pyx_INCREF(__pyx_kp_u_module_classname_name_name); __pyx_v_repr = __pyx_kp_u_module_classname_name_name; /* "pywt/_extensions/_pywt.pyx":987 * def __repr__(self): * repr = "{module}.{classname}(name='{name}')" * return repr.format(module=type(self).__module__, # <<<<<<<<<<<<<< * classname=type(self).__name__, * name=self.name) */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_repr, __pyx_n_s_format); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))), __pyx_n_s_module_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_module, __pyx_t_3) < 0) __PYX_ERR(0, 987, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/_pywt.pyx":988 * repr = "{module}.{classname}(name='{name}')" * return repr.format(module=type(self).__module__, * classname=type(self).__name__, # <<<<<<<<<<<<<< * name=self.name) * */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))), __pyx_n_s_name_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 988, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_classname, __pyx_t_3) < 0) __PYX_ERR(0, 987, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/_pywt.pyx":989 * return repr.format(module=type(self).__module__, * classname=type(self).__name__, * name=self.name) # <<<<<<<<<<<<<< * * */ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_name, __pyx_v_self->name) < 0) __PYX_ERR(0, 987, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":987 * def __repr__(self): * repr = "{module}.{classname}(name='{name}')" * return repr.format(module=type(self).__module__, # <<<<<<<<<<<<<< * classname=type(self).__name__, * name=self.name) */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":985 * return u'\n'.join(s) * * def __repr__(self): # <<<<<<<<<<<<<< * repr = "{module}.{classname}(name='{name}')" * return repr.format(module=type(self).__module__, */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pywt._extensions._pywt.ContinuousWavelet.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_repr); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pxd":32 * cdef wavelet.ContinuousWavelet* w * * cdef readonly name # <<<<<<<<<<<<<< * cdef readonly number * cdef readonly dt */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_4name_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_4name_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_4name___get__(((struct ContinuousWaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_4name___get__(struct ContinuousWaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->name); __pyx_r = __pyx_v_self->name; goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pxd":33 * * cdef readonly name * cdef readonly number # <<<<<<<<<<<<<< * cdef readonly dt * */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_6number_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_6number_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_6number___get__(((struct ContinuousWaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_6number___get__(struct ContinuousWaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->number); __pyx_r = __pyx_v_self->number; goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pxd":34 * cdef readonly name * cdef readonly number * cdef readonly dt # <<<<<<<<<<<<<< * * cpdef np.dtype _check_dtype(data) */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_2dt_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_2dt_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_2dt___get__(((struct ContinuousWaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_2dt___get__(struct ContinuousWaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->dt); __pyx_r = __pyx_v_self->dt; goto __pyx_L0; /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_10__reduce_cython__(((struct ContinuousWaveletObject *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_10__reduce_cython__(CYTHON_UNUSED struct ContinuousWaveletObject *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__22, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._pywt.ContinuousWavelet.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_13__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_12__setstate_cython__(((struct ContinuousWaveletObject *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_17ContinuousWavelet_12__setstate_cython__(CYTHON_UNUSED struct ContinuousWaveletObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__23, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._pywt.ContinuousWavelet.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":992 * * * cdef pywt_index_t get_keep_length(pywt_index_t output_length, # <<<<<<<<<<<<<< * int level, pywt_index_t filter_length): * cdef pywt_index_t lplus "lplus" */ static __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t __pyx_f_4pywt_11_extensions_5_pywt_get_keep_length(CYTHON_UNUSED __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t __pyx_v_output_length, int __pyx_v_level, __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t __pyx_v_filter_length) { __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t lplus; __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t keep_length; CYTHON_UNUSED int i; __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; __Pyx_RefNannySetupContext("get_keep_length", 0); /* "pywt/_extensions/_pywt.pyx":997 * cdef pywt_index_t keep_length "keep_length" * cdef int i "i" * lplus = filter_length - 2 # <<<<<<<<<<<<<< * keep_length = 1 * for i in range(level): */ lplus = (__pyx_v_filter_length - 2); /* "pywt/_extensions/_pywt.pyx":998 * cdef int i "i" * lplus = filter_length - 2 * keep_length = 1 # <<<<<<<<<<<<<< * for i in range(level): * keep_length = 2*keep_length+lplus */ keep_length = 1; /* "pywt/_extensions/_pywt.pyx":999 * lplus = filter_length - 2 * keep_length = 1 * for i in range(level): # <<<<<<<<<<<<<< * keep_length = 2*keep_length+lplus * return keep_length */ __pyx_t_1 = __pyx_v_level; __pyx_t_2 = __pyx_t_1; for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { i = __pyx_t_3; /* "pywt/_extensions/_pywt.pyx":1000 * keep_length = 1 * for i in range(level): * keep_length = 2*keep_length+lplus # <<<<<<<<<<<<<< * return keep_length * */ keep_length = ((2 * keep_length) + lplus); } /* "pywt/_extensions/_pywt.pyx":1001 * for i in range(level): * keep_length = 2*keep_length+lplus * return keep_length # <<<<<<<<<<<<<< * * cdef pywt_index_t fix_output_length(pywt_index_t output_length, pywt_index_t keep_length): */ __pyx_r = keep_length; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":992 * * * cdef pywt_index_t get_keep_length(pywt_index_t output_length, # <<<<<<<<<<<<<< * int level, pywt_index_t filter_length): * cdef pywt_index_t lplus "lplus" */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":1003 * return keep_length * * cdef pywt_index_t fix_output_length(pywt_index_t output_length, pywt_index_t keep_length): # <<<<<<<<<<<<<< * if output_length-keep_length-2 < 0: * output_length = keep_length+2 */ static __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t __pyx_f_4pywt_11_extensions_5_pywt_fix_output_length(__pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t __pyx_v_output_length, __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t __pyx_v_keep_length) { __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("fix_output_length", 0); /* "pywt/_extensions/_pywt.pyx":1004 * * cdef pywt_index_t fix_output_length(pywt_index_t output_length, pywt_index_t keep_length): * if output_length-keep_length-2 < 0: # <<<<<<<<<<<<<< * output_length = keep_length+2 * return output_length */ __pyx_t_1 = ((((__pyx_v_output_length - __pyx_v_keep_length) - 2) < 0) != 0); if (__pyx_t_1) { /* "pywt/_extensions/_pywt.pyx":1005 * cdef pywt_index_t fix_output_length(pywt_index_t output_length, pywt_index_t keep_length): * if output_length-keep_length-2 < 0: * output_length = keep_length+2 # <<<<<<<<<<<<<< * return output_length * */ __pyx_v_output_length = (__pyx_v_keep_length + 2); /* "pywt/_extensions/_pywt.pyx":1004 * * cdef pywt_index_t fix_output_length(pywt_index_t output_length, pywt_index_t keep_length): * if output_length-keep_length-2 < 0: # <<<<<<<<<<<<<< * output_length = keep_length+2 * return output_length */ } /* "pywt/_extensions/_pywt.pyx":1006 * if output_length-keep_length-2 < 0: * output_length = keep_length+2 * return output_length # <<<<<<<<<<<<<< * * cdef pywt_index_t get_right_extent_length(pywt_index_t output_length, pywt_index_t keep_length): */ __pyx_r = __pyx_v_output_length; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":1003 * return keep_length * * cdef pywt_index_t fix_output_length(pywt_index_t output_length, pywt_index_t keep_length): # <<<<<<<<<<<<<< * if output_length-keep_length-2 < 0: * output_length = keep_length+2 */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":1008 * return output_length * * cdef pywt_index_t get_right_extent_length(pywt_index_t output_length, pywt_index_t keep_length): # <<<<<<<<<<<<<< * return output_length - keep_length - 1 * */ static __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t __pyx_f_4pywt_11_extensions_5_pywt_get_right_extent_length(__pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t __pyx_v_output_length, __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t __pyx_v_keep_length) { __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_right_extent_length", 0); /* "pywt/_extensions/_pywt.pyx":1009 * * cdef pywt_index_t get_right_extent_length(pywt_index_t output_length, pywt_index_t keep_length): * return output_length - keep_length - 1 # <<<<<<<<<<<<<< * * */ __pyx_r = ((__pyx_v_output_length - __pyx_v_keep_length) - 1); goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":1008 * return output_length * * cdef pywt_index_t get_right_extent_length(pywt_index_t output_length, pywt_index_t keep_length): # <<<<<<<<<<<<<< * return output_length - keep_length - 1 * */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":1012 * * * def wavelet_from_object(wavelet): # <<<<<<<<<<<<<< * return c_wavelet_from_object(wavelet) * */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7wavelet_from_object(PyObject *__pyx_self, PyObject *__pyx_v_wavelet); /*proto*/ static PyMethodDef __pyx_mdef_4pywt_11_extensions_5_pywt_7wavelet_from_object = {"wavelet_from_object", (PyCFunction)__pyx_pw_4pywt_11_extensions_5_pywt_7wavelet_from_object, METH_O, 0}; static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_7wavelet_from_object(PyObject *__pyx_self, PyObject *__pyx_v_wavelet) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("wavelet_from_object (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_6wavelet_from_object(__pyx_self, ((PyObject *)__pyx_v_wavelet)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_6wavelet_from_object(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_wavelet) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("wavelet_from_object", 0); /* "pywt/_extensions/_pywt.pyx":1013 * * def wavelet_from_object(wavelet): * return c_wavelet_from_object(wavelet) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_f_4pywt_11_extensions_5_pywt_c_wavelet_from_object(__pyx_v_wavelet); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":1012 * * * def wavelet_from_object(wavelet): # <<<<<<<<<<<<<< * return c_wavelet_from_object(wavelet) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._pywt.wavelet_from_object", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":1016 * * * cdef c_wavelet_from_object(wavelet): # <<<<<<<<<<<<<< * if isinstance(wavelet, (Wavelet, ContinuousWavelet)): * return wavelet */ static PyObject *__pyx_f_4pywt_11_extensions_5_pywt_c_wavelet_from_object(PyObject *__pyx_v_wavelet) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; __Pyx_RefNannySetupContext("c_wavelet_from_object", 0); /* "pywt/_extensions/_pywt.pyx":1017 * * cdef c_wavelet_from_object(wavelet): * if isinstance(wavelet, (Wavelet, ContinuousWavelet)): # <<<<<<<<<<<<<< * return wavelet * else: */ __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_wavelet, __pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet); __pyx_t_3 = (__pyx_t_2 != 0); if (!__pyx_t_3) { } else { __pyx_t_1 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_wavelet, __pyx_ptype_4pywt_11_extensions_5_pywt_ContinuousWavelet); __pyx_t_2 = (__pyx_t_3 != 0); __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "pywt/_extensions/_pywt.pyx":1018 * cdef c_wavelet_from_object(wavelet): * if isinstance(wavelet, (Wavelet, ContinuousWavelet)): * return wavelet # <<<<<<<<<<<<<< * else: * return Wavelet(wavelet) */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_wavelet); __pyx_r = __pyx_v_wavelet; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":1017 * * cdef c_wavelet_from_object(wavelet): * if isinstance(wavelet, (Wavelet, ContinuousWavelet)): # <<<<<<<<<<<<<< * return wavelet * else: */ } /* "pywt/_extensions/_pywt.pyx":1020 * return wavelet * else: * return Wavelet(wavelet) # <<<<<<<<<<<<<< * * */ /*else*/ { __Pyx_XDECREF(__pyx_r); __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet), __pyx_v_wavelet); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1020, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; } /* "pywt/_extensions/_pywt.pyx":1016 * * * cdef c_wavelet_from_object(wavelet): # <<<<<<<<<<<<<< * if isinstance(wavelet, (Wavelet, ContinuousWavelet)): * return wavelet */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pywt._extensions._pywt.c_wavelet_from_object", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":1023 * * * cpdef np.dtype _check_dtype(data): # <<<<<<<<<<<<<< * """Check for cA/cD input what (if any) the dtype is.""" * cdef np.dtype dt */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_9_check_dtype(PyObject *__pyx_self, PyObject *__pyx_v_data); /*proto*/ static PyArray_Descr *__pyx_f_4pywt_11_extensions_5_pywt__check_dtype(PyObject *__pyx_v_data, CYTHON_UNUSED int __pyx_skip_dispatch) { PyArray_Descr *__pyx_v_dt = 0; PyArray_Descr *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyArray_Descr *__pyx_t_5 = NULL; int __pyx_t_6; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; int __pyx_t_9; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; __Pyx_RefNannySetupContext("_check_dtype", 0); /* "pywt/_extensions/_pywt.pyx":1026 * """Check for cA/cD input what (if any) the dtype is.""" * cdef np.dtype dt * try: # <<<<<<<<<<<<<< * dt = data.dtype * if dt not in (np.float64, np.float32, np.complex64, np.complex128): */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "pywt/_extensions/_pywt.pyx":1027 * cdef np.dtype dt * try: * dt = data.dtype # <<<<<<<<<<<<<< * if dt not in (np.float64, np.float32, np.complex64, np.complex128): * if dt == np.half: */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_data, __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1027, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(0, 1027, __pyx_L3_error) __pyx_v_dt = ((PyArray_Descr *)__pyx_t_4); __pyx_t_4 = 0; /* "pywt/_extensions/_pywt.pyx":1028 * try: * dt = data.dtype * if dt not in (np.float64, np.float32, np.complex64, np.complex128): # <<<<<<<<<<<<<< * if dt == np.half: * # half-precision input converted to single precision */ __Pyx_INCREF(((PyObject *)__pyx_v_dt)); __pyx_t_5 = __pyx_v_dt; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1028, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_float64); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1028, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyObject_RichCompare(((PyObject *)__pyx_t_5), __pyx_t_7, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1028, __pyx_L3_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 1028, __pyx_L3_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_8) { } else { __pyx_t_6 = __pyx_t_8; goto __pyx_L10_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1028, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_float32); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1028, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyObject_RichCompare(((PyObject *)__pyx_t_5), __pyx_t_7, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1028, __pyx_L3_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 1028, __pyx_L3_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_8) { } else { __pyx_t_6 = __pyx_t_8; goto __pyx_L10_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1028, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_complex64); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1028, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyObject_RichCompare(((PyObject *)__pyx_t_5), __pyx_t_7, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1028, __pyx_L3_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 1028, __pyx_L3_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_8) { } else { __pyx_t_6 = __pyx_t_8; goto __pyx_L10_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1028, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_complex128); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1028, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyObject_RichCompare(((PyObject *)__pyx_t_5), __pyx_t_7, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1028, __pyx_L3_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 1028, __pyx_L3_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __pyx_t_8; __pyx_L10_bool_binop_done:; __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; __pyx_t_8 = (__pyx_t_6 != 0); if (__pyx_t_8) { /* "pywt/_extensions/_pywt.pyx":1029 * dt = data.dtype * if dt not in (np.float64, np.float32, np.complex64, np.complex128): * if dt == np.half: # <<<<<<<<<<<<<< * # half-precision input converted to single precision * dt = np.dtype('float32') */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1029, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_half); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1029, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyObject_RichCompare(((PyObject *)__pyx_v_dt), __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1029, __pyx_L3_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 1029, __pyx_L3_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_8) { /* "pywt/_extensions/_pywt.pyx":1031 * if dt == np.half: * # half-precision input converted to single precision * dt = np.dtype('float32') # <<<<<<<<<<<<<< * elif dt == np.complex256: * # complex256 is not supported. run at reduced precision */ __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5numpy_dtype), __pyx_tuple__24, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1031, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF_SET(__pyx_v_dt, ((PyArray_Descr *)__pyx_t_4)); __pyx_t_4 = 0; /* "pywt/_extensions/_pywt.pyx":1029 * dt = data.dtype * if dt not in (np.float64, np.float32, np.complex64, np.complex128): * if dt == np.half: # <<<<<<<<<<<<<< * # half-precision input converted to single precision * dt = np.dtype('float32') */ goto __pyx_L14; } /* "pywt/_extensions/_pywt.pyx":1032 * # half-precision input converted to single precision * dt = np.dtype('float32') * elif dt == np.complex256: # <<<<<<<<<<<<<< * # complex256 is not supported. run at reduced precision * dt = np.dtype('complex128') */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1032, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_complex256); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1032, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyObject_RichCompare(((PyObject *)__pyx_v_dt), __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1032, __pyx_L3_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 1032, __pyx_L3_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_8) { /* "pywt/_extensions/_pywt.pyx":1034 * elif dt == np.complex256: * # complex256 is not supported. run at reduced precision * dt = np.dtype('complex128') # <<<<<<<<<<<<<< * else: * # integer input was always accepted; convert to float64 */ __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5numpy_dtype), __pyx_tuple__25, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1034, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF_SET(__pyx_v_dt, ((PyArray_Descr *)__pyx_t_4)); __pyx_t_4 = 0; /* "pywt/_extensions/_pywt.pyx":1032 * # half-precision input converted to single precision * dt = np.dtype('float32') * elif dt == np.complex256: # <<<<<<<<<<<<<< * # complex256 is not supported. run at reduced precision * dt = np.dtype('complex128') */ goto __pyx_L14; } /* "pywt/_extensions/_pywt.pyx":1037 * else: * # integer input was always accepted; convert to float64 * dt = np.dtype('float64') # <<<<<<<<<<<<<< * except AttributeError: * dt = np.dtype('float64') */ /*else*/ { __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5numpy_dtype), __pyx_tuple__26, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1037, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF_SET(__pyx_v_dt, ((PyArray_Descr *)__pyx_t_4)); __pyx_t_4 = 0; } __pyx_L14:; /* "pywt/_extensions/_pywt.pyx":1028 * try: * dt = data.dtype * if dt not in (np.float64, np.float32, np.complex64, np.complex128): # <<<<<<<<<<<<<< * if dt == np.half: * # half-precision input converted to single precision */ } /* "pywt/_extensions/_pywt.pyx":1026 * """Check for cA/cD input what (if any) the dtype is.""" * cdef np.dtype dt * try: # <<<<<<<<<<<<<< * dt = data.dtype * if dt not in (np.float64, np.float32, np.complex64, np.complex128): */ } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L8_try_end; __pyx_L3_error:; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; /* "pywt/_extensions/_pywt.pyx":1038 * # integer input was always accepted; convert to float64 * dt = np.dtype('float64') * except AttributeError: # <<<<<<<<<<<<<< * dt = np.dtype('float64') * return dt */ __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError); if (__pyx_t_9) { __Pyx_AddTraceback("pywt._extensions._pywt._check_dtype", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_7, &__pyx_t_10) < 0) __PYX_ERR(0, 1038, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GOTREF(__pyx_t_7); __Pyx_GOTREF(__pyx_t_10); /* "pywt/_extensions/_pywt.pyx":1039 * dt = np.dtype('float64') * except AttributeError: * dt = np.dtype('float64') # <<<<<<<<<<<<<< * return dt * */ __pyx_t_11 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5numpy_dtype), __pyx_tuple__26, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1039, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_XDECREF_SET(__pyx_v_dt, ((PyArray_Descr *)__pyx_t_11)); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; goto __pyx_L4_exception_handled; } goto __pyx_L5_except_error; __pyx_L5_except_error:; /* "pywt/_extensions/_pywt.pyx":1026 * """Check for cA/cD input what (if any) the dtype is.""" * cdef np.dtype dt * try: # <<<<<<<<<<<<<< * dt = data.dtype * if dt not in (np.float64, np.float32, np.complex64, np.complex128): */ __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L4_exception_handled:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); __pyx_L8_try_end:; } /* "pywt/_extensions/_pywt.pyx":1040 * except AttributeError: * dt = np.dtype('float64') * return dt # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_dt)); __pyx_r = __pyx_v_dt; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":1023 * * * cpdef np.dtype _check_dtype(data): # <<<<<<<<<<<<<< * """Check for cA/cD input what (if any) the dtype is.""" * cdef np.dtype dt */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(((PyObject *)__pyx_t_5)); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __Pyx_AddTraceback("pywt._extensions._pywt._check_dtype", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_dt); __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_9_check_dtype(PyObject *__pyx_self, PyObject *__pyx_v_data); /*proto*/ static char __pyx_doc_4pywt_11_extensions_5_pywt_8_check_dtype[] = "Check for cA/cD input what (if any) the dtype is."; static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_9_check_dtype(PyObject *__pyx_self, PyObject *__pyx_v_data) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_check_dtype (wrapper)", 0); __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_8_check_dtype(__pyx_self, ((PyObject *)__pyx_v_data)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_8_check_dtype(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_data) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("_check_dtype", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_4pywt_11_extensions_5_pywt__check_dtype(__pyx_v_data, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1023, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._pywt._check_dtype", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":1044 * * # TODO: Can this be replaced by the take parameter of upcoef? Or vice-versa? * def keep(arr, keep_length): # <<<<<<<<<<<<<< * length = len(arr) * if keep_length < length: */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_11keep(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_4pywt_11_extensions_5_pywt_11keep = {"keep", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_5_pywt_11keep, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_4pywt_11_extensions_5_pywt_11keep(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_arr = 0; PyObject *__pyx_v_keep_length = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("keep (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_arr,&__pyx_n_s_keep_length,0}; PyObject* values[2] = {0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_arr)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_keep_length)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("keep", 1, 2, 2, 1); __PYX_ERR(0, 1044, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "keep") < 0)) __PYX_ERR(0, 1044, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); } __pyx_v_arr = values[0]; __pyx_v_keep_length = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("keep", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1044, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._pywt.keep", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_5_pywt_10keep(__pyx_self, __pyx_v_arr, __pyx_v_keep_length); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_5_pywt_10keep(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_arr, PyObject *__pyx_v_keep_length) { PyObject *__pyx_v_length = NULL; PyObject *__pyx_v_left_bound = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; __Pyx_RefNannySetupContext("keep", 0); /* "pywt/_extensions/_pywt.pyx":1045 * # TODO: Can this be replaced by the take parameter of upcoef? Or vice-versa? * def keep(arr, keep_length): * length = len(arr) # <<<<<<<<<<<<<< * if keep_length < length: * left_bound = (length - keep_length) // 2 */ __pyx_t_1 = PyObject_Length(__pyx_v_arr); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1045, __pyx_L1_error) __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_length = __pyx_t_2; __pyx_t_2 = 0; /* "pywt/_extensions/_pywt.pyx":1046 * def keep(arr, keep_length): * length = len(arr) * if keep_length < length: # <<<<<<<<<<<<<< * left_bound = (length - keep_length) // 2 * return arr[left_bound:left_bound + keep_length] */ __pyx_t_2 = PyObject_RichCompare(__pyx_v_keep_length, __pyx_v_length, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1046, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1046, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { /* "pywt/_extensions/_pywt.pyx":1047 * length = len(arr) * if keep_length < length: * left_bound = (length - keep_length) // 2 # <<<<<<<<<<<<<< * return arr[left_bound:left_bound + keep_length] * return arr */ __pyx_t_2 = PyNumber_Subtract(__pyx_v_length, __pyx_v_keep_length); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyInt_FloorDivideObjC(__pyx_t_2, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_left_bound = __pyx_t_4; __pyx_t_4 = 0; /* "pywt/_extensions/_pywt.pyx":1048 * if keep_length < length: * left_bound = (length - keep_length) // 2 * return arr[left_bound:left_bound + keep_length] # <<<<<<<<<<<<<< * return arr * */ __Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyNumber_Add(__pyx_v_left_bound, __pyx_v_keep_length); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_arr, 0, 0, &__pyx_v_left_bound, &__pyx_t_4, NULL, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":1046 * def keep(arr, keep_length): * length = len(arr) * if keep_length < length: # <<<<<<<<<<<<<< * left_bound = (length - keep_length) // 2 * return arr[left_bound:left_bound + keep_length] */ } /* "pywt/_extensions/_pywt.pyx":1049 * left_bound = (length - keep_length) // 2 * return arr[left_bound:left_bound + keep_length] * return arr # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_arr); __pyx_r = __pyx_v_arr; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":1044 * * # TODO: Can this be replaced by the take parameter of upcoef? Or vice-versa? * def keep(arr, keep_length): # <<<<<<<<<<<<<< * length = len(arr) * if keep_length < length: */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pywt._extensions._pywt.keep", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_length); __Pyx_XDECREF(__pyx_v_left_bound); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":1054 * # Some utility functions * * cdef object float64_array_to_list(double* data, pywt_index_t n): # <<<<<<<<<<<<<< * cdef pywt_index_t i * cdef object app */ static PyObject *__pyx_f_4pywt_11_extensions_5_pywt_float64_array_to_list(double *__pyx_v_data, __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t __pyx_v_n) { __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t __pyx_v_i; PyObject *__pyx_v_app = 0; PyObject *__pyx_v_ret = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t __pyx_t_2; __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t __pyx_t_3; __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t __pyx_t_4; int __pyx_t_5; __Pyx_RefNannySetupContext("float64_array_to_list", 0); /* "pywt/_extensions/_pywt.pyx":1058 * cdef object app * cdef object ret * ret = [] # <<<<<<<<<<<<<< * app = ret.append * for i in range(n): */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1058, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_ret = __pyx_t_1; __pyx_t_1 = 0; /* "pywt/_extensions/_pywt.pyx":1059 * cdef object ret * ret = [] * app = ret.append # <<<<<<<<<<<<<< * for i in range(n): * app(data[i]) */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ret, __pyx_n_s_append); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1059, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_app = __pyx_t_1; __pyx_t_1 = 0; /* "pywt/_extensions/_pywt.pyx":1060 * ret = [] * app = ret.append * for i in range(n): # <<<<<<<<<<<<<< * app(data[i]) * return ret */ __pyx_t_2 = __pyx_v_n; __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_i = __pyx_t_4; /* "pywt/_extensions/_pywt.pyx":1061 * app = ret.append * for i in range(n): * app(data[i]) # <<<<<<<<<<<<<< * return ret * */ __pyx_t_1 = PyFloat_FromDouble((__pyx_v_data[__pyx_v_i])); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_Append(__pyx_v_ret, __pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(0, 1061, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } /* "pywt/_extensions/_pywt.pyx":1062 * for i in range(n): * app(data[i]) * return ret # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_ret); __pyx_r = __pyx_v_ret; goto __pyx_L0; /* "pywt/_extensions/_pywt.pyx":1054 * # Some utility functions * * cdef object float64_array_to_list(double* data, pywt_index_t n): # <<<<<<<<<<<<<< * cdef pywt_index_t i * cdef object app */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._pywt.float64_array_to_list", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_app); __Pyx_XDECREF(__pyx_v_ret); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_pywt.pyx":1065 * * * cdef void copy_object_to_float64_array(source, double* dest) except *: # <<<<<<<<<<<<<< * cdef pywt_index_t i * cdef double x */ static void __pyx_f_4pywt_11_extensions_5_pywt_copy_object_to_float64_array(PyObject *__pyx_v_source, double *__pyx_v_dest) { __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t __pyx_v_i; double __pyx_v_x; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; PyObject *(*__pyx_t_3)(PyObject *); PyObject *__pyx_t_4 = NULL; double __pyx_t_5; __Pyx_RefNannySetupContext("copy_object_to_float64_array", 0); /* "pywt/_extensions/_pywt.pyx":1068 * cdef pywt_index_t i * cdef double x * i = 0 # <<<<<<<<<<<<<< * for x in source: * dest[i] = x */ __pyx_v_i = 0; /* "pywt/_extensions/_pywt.pyx":1069 * cdef double x * i = 0 * for x in source: # <<<<<<<<<<<<<< * dest[i] = x * i = i + 1 */ if (likely(PyList_CheckExact(__pyx_v_source)) || PyTuple_CheckExact(__pyx_v_source)) { __pyx_t_1 = __pyx_v_source; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = NULL; } else { __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_source); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1069, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_3)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1069, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1069, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } } else { __pyx_t_4 = __pyx_t_3(__pyx_t_1); if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 1069, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_4); } __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1069, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_x = __pyx_t_5; /* "pywt/_extensions/_pywt.pyx":1070 * i = 0 * for x in source: * dest[i] = x # <<<<<<<<<<<<<< * i = i + 1 * */ (__pyx_v_dest[__pyx_v_i]) = __pyx_v_x; /* "pywt/_extensions/_pywt.pyx":1071 * for x in source: * dest[i] = x * i = i + 1 # <<<<<<<<<<<<<< * * */ __pyx_v_i = (__pyx_v_i + 1); /* "pywt/_extensions/_pywt.pyx":1069 * cdef double x * i = 0 * for x in source: # <<<<<<<<<<<<<< * dest[i] = x * i = i + 1 */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_pywt.pyx":1065 * * * cdef void copy_object_to_float64_array(source, double* dest) except *: # <<<<<<<<<<<<<< * cdef pywt_index_t i * cdef double x */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pywt._extensions._pywt.copy_object_to_float64_array", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_RefNannyFinishContext(); } /* "pywt/_extensions/_pywt.pyx":1074 * * * cdef void copy_object_to_float32_array(source, float* dest) except *: # <<<<<<<<<<<<<< * cdef pywt_index_t i * cdef float x */ static void __pyx_f_4pywt_11_extensions_5_pywt_copy_object_to_float32_array(PyObject *__pyx_v_source, float *__pyx_v_dest) { __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t __pyx_v_i; float __pyx_v_x; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; PyObject *(*__pyx_t_3)(PyObject *); PyObject *__pyx_t_4 = NULL; float __pyx_t_5; __Pyx_RefNannySetupContext("copy_object_to_float32_array", 0); /* "pywt/_extensions/_pywt.pyx":1077 * cdef pywt_index_t i * cdef float x * i = 0 # <<<<<<<<<<<<<< * for x in source: * dest[i] = x */ __pyx_v_i = 0; /* "pywt/_extensions/_pywt.pyx":1078 * cdef float x * i = 0 * for x in source: # <<<<<<<<<<<<<< * dest[i] = x * i = i + 1 */ if (likely(PyList_CheckExact(__pyx_v_source)) || PyTuple_CheckExact(__pyx_v_source)) { __pyx_t_1 = __pyx_v_source; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = NULL; } else { __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_source); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1078, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_3)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1078, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1078, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1078, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } } else { __pyx_t_4 = __pyx_t_3(__pyx_t_1); if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 1078, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_4); } __pyx_t_5 = __pyx_PyFloat_AsFloat(__pyx_t_4); if (unlikely((__pyx_t_5 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 1078, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_x = __pyx_t_5; /* "pywt/_extensions/_pywt.pyx":1079 * i = 0 * for x in source: * dest[i] = x # <<<<<<<<<<<<<< * i = i + 1 */ (__pyx_v_dest[__pyx_v_i]) = __pyx_v_x; /* "pywt/_extensions/_pywt.pyx":1080 * for x in source: * dest[i] = x * i = i + 1 # <<<<<<<<<<<<<< */ __pyx_v_i = (__pyx_v_i + 1); /* "pywt/_extensions/_pywt.pyx":1078 * cdef float x * i = 0 * for x in source: # <<<<<<<<<<<<<< * dest[i] = x * i = i + 1 */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_pywt.pyx":1074 * * * cdef void copy_object_to_float32_array(source, float* dest) except *: # <<<<<<<<<<<<<< * cdef pywt_index_t i * cdef float x */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pywt._extensions._pywt.copy_object_to_float32_array", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_RefNannyFinishContext(); } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":258 * # experimental exception made for __getbuffer__ and __releasebuffer__ * # -- the details of this may change. * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< * # This implementation of getbuffer is geared towards Cython * # requirements, and does not yet fulfill the PEP. */ /* Python wrapper */ static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); __pyx_r = __pyx_pf_5numpy_7ndarray___getbuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_v_i; int __pyx_v_ndim; int __pyx_v_endian_detector; int __pyx_v_little_endian; int __pyx_v_t; char *__pyx_v_f; PyArray_Descr *__pyx_v_descr = 0; int __pyx_v_offset; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_t_5; int __pyx_t_6; PyArray_Descr *__pyx_t_7; PyObject *__pyx_t_8 = NULL; char *__pyx_t_9; if (__pyx_v_info == NULL) { PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); return -1; } __Pyx_RefNannySetupContext("__getbuffer__", 0); __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); __Pyx_GIVEREF(__pyx_v_info->obj); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":265 * * cdef int i, ndim * cdef int endian_detector = 1 # <<<<<<<<<<<<<< * cdef bint little_endian = ((&endian_detector)[0] != 0) * */ __pyx_v_endian_detector = 1; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":266 * cdef int i, ndim * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< * * ndim = PyArray_NDIM(self) */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":268 * cdef bint little_endian = ((&endian_detector)[0] != 0) * * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<< * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) */ __pyx_v_ndim = PyArray_NDIM(__pyx_v_self); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":270 * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") */ __pyx_t_2 = (((__pyx_v_flags & PyBUF_C_CONTIGUOUS) == PyBUF_C_CONTIGUOUS) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L4_bool_binop_done; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":271 * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< * raise ValueError(u"ndarray is not C contiguous") * */ __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_C_CONTIGUOUS) != 0)) != 0); __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":270 * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") */ if (unlikely(__pyx_t_1)) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":272 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__27, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 272, __pyx_L1_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":270 * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":274 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") */ __pyx_t_2 = (((__pyx_v_flags & PyBUF_F_CONTIGUOUS) == PyBUF_F_CONTIGUOUS) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L7_bool_binop_done; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":275 * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< * raise ValueError(u"ndarray is not Fortran contiguous") * */ __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_F_CONTIGUOUS) != 0)) != 0); __pyx_t_1 = __pyx_t_2; __pyx_L7_bool_binop_done:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":274 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") */ if (unlikely(__pyx_t_1)) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":276 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< * * info.buf = PyArray_DATA(self) */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__28, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 276, __pyx_L1_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":274 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":278 * raise ValueError(u"ndarray is not Fortran contiguous") * * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< * info.ndim = ndim * if sizeof(npy_intp) != sizeof(Py_ssize_t): */ __pyx_v_info->buf = PyArray_DATA(__pyx_v_self); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":279 * * info.buf = PyArray_DATA(self) * info.ndim = ndim # <<<<<<<<<<<<<< * if sizeof(npy_intp) != sizeof(Py_ssize_t): * # Allocate new buffer for strides and shape info. */ __pyx_v_info->ndim = __pyx_v_ndim; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":280 * info.buf = PyArray_DATA(self) * info.ndim = ndim * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< * # Allocate new buffer for strides and shape info. * # This is allocated as one block, strides first. */ __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); if (__pyx_t_1) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":283 * # Allocate new buffer for strides and shape info. * # This is allocated as one block, strides first. * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim) # <<<<<<<<<<<<<< * info.shape = info.strides + ndim * for i in range(ndim): */ __pyx_v_info->strides = ((Py_ssize_t *)PyObject_Malloc((((sizeof(Py_ssize_t)) * 2) * ((size_t)__pyx_v_ndim)))); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":284 * # This is allocated as one block, strides first. * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim) * info.shape = info.strides + ndim # <<<<<<<<<<<<<< * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] */ __pyx_v_info->shape = (__pyx_v_info->strides + __pyx_v_ndim); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":285 * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim) * info.shape = info.strides + ndim * for i in range(ndim): # <<<<<<<<<<<<<< * info.strides[i] = PyArray_STRIDES(self)[i] * info.shape[i] = PyArray_DIMS(self)[i] */ __pyx_t_4 = __pyx_v_ndim; __pyx_t_5 = __pyx_t_4; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":286 * info.shape = info.strides + ndim * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] # <<<<<<<<<<<<<< * info.shape[i] = PyArray_DIMS(self)[i] * else: */ (__pyx_v_info->strides[__pyx_v_i]) = (PyArray_STRIDES(__pyx_v_self)[__pyx_v_i]); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":287 * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] * info.shape[i] = PyArray_DIMS(self)[i] # <<<<<<<<<<<<<< * else: * info.strides = PyArray_STRIDES(self) */ (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":280 * info.buf = PyArray_DATA(self) * info.ndim = ndim * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< * # Allocate new buffer for strides and shape info. * # This is allocated as one block, strides first. */ goto __pyx_L9; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":289 * info.shape[i] = PyArray_DIMS(self)[i] * else: * info.strides = PyArray_STRIDES(self) # <<<<<<<<<<<<<< * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL */ /*else*/ { __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":290 * else: * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) # <<<<<<<<<<<<<< * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) */ __pyx_v_info->shape = ((Py_ssize_t *)PyArray_DIMS(__pyx_v_self)); } __pyx_L9:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":291 * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL # <<<<<<<<<<<<<< * info.itemsize = PyArray_ITEMSIZE(self) * info.readonly = not PyArray_ISWRITEABLE(self) */ __pyx_v_info->suboffsets = NULL; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":292 * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) # <<<<<<<<<<<<<< * info.readonly = not PyArray_ISWRITEABLE(self) * */ __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":293 * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) * info.readonly = not PyArray_ISWRITEABLE(self) # <<<<<<<<<<<<<< * * cdef int t */ __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0)); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":296 * * cdef int t * cdef char* f = NULL # <<<<<<<<<<<<<< * cdef dtype descr = PyArray_DESCR(self) * cdef int offset */ __pyx_v_f = NULL; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":297 * cdef int t * cdef char* f = NULL * cdef dtype descr = PyArray_DESCR(self) # <<<<<<<<<<<<<< * cdef int offset * */ __pyx_t_7 = PyArray_DESCR(__pyx_v_self); __pyx_t_3 = ((PyObject *)__pyx_t_7); __Pyx_INCREF(__pyx_t_3); __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); __pyx_t_3 = 0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":300 * cdef int offset * * info.obj = self # <<<<<<<<<<<<<< * * if not PyDataType_HASFIELDS(descr): */ __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = ((PyObject *)__pyx_v_self); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":302 * info.obj = self * * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or */ __pyx_t_1 = ((!(PyDataType_HASFIELDS(__pyx_v_descr) != 0)) != 0); if (__pyx_t_1) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":303 * * if not PyDataType_HASFIELDS(descr): * t = descr.type_num # <<<<<<<<<<<<<< * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): */ __pyx_t_4 = __pyx_v_descr->type_num; __pyx_v_t = __pyx_t_4; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":304 * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ __pyx_t_2 = ((__pyx_v_descr->byteorder == '>') != 0); if (!__pyx_t_2) { goto __pyx_L15_next_or; } else { } __pyx_t_2 = (__pyx_v_little_endian != 0); if (!__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L14_bool_binop_done; } __pyx_L15_next_or:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":305 * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" */ __pyx_t_2 = ((__pyx_v_descr->byteorder == '<') != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L14_bool_binop_done; } __pyx_t_2 = ((!(__pyx_v_little_endian != 0)) != 0); __pyx_t_1 = __pyx_t_2; __pyx_L14_bool_binop_done:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":304 * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ if (unlikely(__pyx_t_1)) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":306 * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__29, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 306, __pyx_L1_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":304 * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":307 * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" # <<<<<<<<<<<<<< * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" */ switch (__pyx_v_t) { case NPY_BYTE: __pyx_v_f = ((char *)"b"); break; case NPY_UBYTE: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":308 * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" # <<<<<<<<<<<<<< * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" */ __pyx_v_f = ((char *)"B"); break; case NPY_SHORT: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":309 * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" # <<<<<<<<<<<<<< * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" */ __pyx_v_f = ((char *)"h"); break; case NPY_USHORT: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":310 * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" # <<<<<<<<<<<<<< * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" */ __pyx_v_f = ((char *)"H"); break; case NPY_INT: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":311 * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" # <<<<<<<<<<<<<< * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" */ __pyx_v_f = ((char *)"i"); break; case NPY_UINT: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":312 * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" # <<<<<<<<<<<<<< * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" */ __pyx_v_f = ((char *)"I"); break; case NPY_LONG: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":313 * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" # <<<<<<<<<<<<<< * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" */ __pyx_v_f = ((char *)"l"); break; case NPY_ULONG: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":314 * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" # <<<<<<<<<<<<<< * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" */ __pyx_v_f = ((char *)"L"); break; case NPY_LONGLONG: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":315 * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" # <<<<<<<<<<<<<< * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" */ __pyx_v_f = ((char *)"q"); break; case NPY_ULONGLONG: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":316 * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" # <<<<<<<<<<<<<< * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" */ __pyx_v_f = ((char *)"Q"); break; case NPY_FLOAT: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":317 * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" # <<<<<<<<<<<<<< * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" */ __pyx_v_f = ((char *)"f"); break; case NPY_DOUBLE: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":318 * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" # <<<<<<<<<<<<<< * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" */ __pyx_v_f = ((char *)"d"); break; case NPY_LONGDOUBLE: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":319 * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" # <<<<<<<<<<<<<< * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" */ __pyx_v_f = ((char *)"g"); break; case NPY_CFLOAT: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":320 * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" # <<<<<<<<<<<<<< * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" */ __pyx_v_f = ((char *)"Zf"); break; case NPY_CDOUBLE: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":321 * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" # <<<<<<<<<<<<<< * elif t == NPY_CLONGDOUBLE: f = "Zg" * elif t == NPY_OBJECT: f = "O" */ __pyx_v_f = ((char *)"Zd"); break; case NPY_CLONGDOUBLE: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":322 * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" # <<<<<<<<<<<<<< * elif t == NPY_OBJECT: f = "O" * else: */ __pyx_v_f = ((char *)"Zg"); break; case NPY_OBJECT: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":323 * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" * elif t == NPY_OBJECT: f = "O" # <<<<<<<<<<<<<< * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) */ __pyx_v_f = ((char *)"O"); break; default: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":325 * elif t == NPY_OBJECT: f = "O" * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< * info.format = f * return */ __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 325, __pyx_L1_error) break; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":326 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f # <<<<<<<<<<<<<< * return * else: */ __pyx_v_info->format = __pyx_v_f; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":327 * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f * return # <<<<<<<<<<<<<< * else: * info.format = PyObject_Malloc(_buffer_format_string_len) */ __pyx_r = 0; goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":302 * info.obj = self * * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":329 * return * else: * info.format = PyObject_Malloc(_buffer_format_string_len) # <<<<<<<<<<<<<< * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 */ /*else*/ { __pyx_v_info->format = ((char *)PyObject_Malloc(0xFF)); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":330 * else: * info.format = PyObject_Malloc(_buffer_format_string_len) * info.format[0] = c'^' # Native data types, manual alignment # <<<<<<<<<<<<<< * offset = 0 * f = _util_dtypestring(descr, info.format + 1, */ (__pyx_v_info->format[0]) = '^'; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":331 * info.format = PyObject_Malloc(_buffer_format_string_len) * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 # <<<<<<<<<<<<<< * f = _util_dtypestring(descr, info.format + 1, * info.format + _buffer_format_string_len, */ __pyx_v_offset = 0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":332 * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 * f = _util_dtypestring(descr, info.format + 1, # <<<<<<<<<<<<<< * info.format + _buffer_format_string_len, * &offset) */ __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_descr, (__pyx_v_info->format + 1), (__pyx_v_info->format + 0xFF), (&__pyx_v_offset)); if (unlikely(__pyx_t_9 == ((char *)NULL))) __PYX_ERR(2, 332, __pyx_L1_error) __pyx_v_f = __pyx_t_9; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":335 * info.format + _buffer_format_string_len, * &offset) * f[0] = c'\0' # Terminate format string # <<<<<<<<<<<<<< * * def __releasebuffer__(ndarray self, Py_buffer* info): */ (__pyx_v_f[0]) = '\x00'; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":258 * # experimental exception made for __getbuffer__ and __releasebuffer__ * # -- the details of this may change. * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< * # This implementation of getbuffer is geared towards Cython * # requirements, and does not yet fulfill the PEP. */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("numpy.ndarray.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; if (__pyx_v_info->obj != NULL) { __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; } goto __pyx_L2; __pyx_L0:; if (__pyx_v_info->obj == Py_None) { __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; } __pyx_L2:; __Pyx_XDECREF((PyObject *)__pyx_v_descr); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":337 * f[0] = c'\0' # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) */ /* Python wrapper */ static CYTHON_UNUSED void __pyx_pw_5numpy_7ndarray_3__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info); /*proto*/ static CYTHON_UNUSED void __pyx_pw_5numpy_7ndarray_3__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__releasebuffer__ (wrapper)", 0); __pyx_pf_5numpy_7ndarray_2__releasebuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info) { __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("__releasebuffer__", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":338 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): */ __pyx_t_1 = (PyArray_HASFIELDS(__pyx_v_self) != 0); if (__pyx_t_1) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":339 * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) # <<<<<<<<<<<<<< * if sizeof(npy_intp) != sizeof(Py_ssize_t): * PyObject_Free(info.strides) */ PyObject_Free(__pyx_v_info->format); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":338 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":340 * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< * PyObject_Free(info.strides) * # info.shape was stored after info.strides in the same block */ __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); if (__pyx_t_1) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":341 * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): * PyObject_Free(info.strides) # <<<<<<<<<<<<<< * # info.shape was stored after info.strides in the same block * */ PyObject_Free(__pyx_v_info->strides); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":340 * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< * PyObject_Free(info.strides) * # info.shape was stored after info.strides in the same block */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":337 * f[0] = c'\0' # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":821 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(1, a) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__pyx_v_a) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":822 * * cdef inline object PyArray_MultiIterNew1(a): * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew2(a, b): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":821 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(1, a) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew1", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":824 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(2, a, b) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyObject *__pyx_v_b) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":825 * * cdef inline object PyArray_MultiIterNew2(a, b): * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew3(a, b, c): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 825, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":824 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(2, a, b) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew2", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":827 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(3, a, b, c) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":828 * * cdef inline object PyArray_MultiIterNew3(a, b, c): * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":827 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(3, a, b, c) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew3", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":830 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(4, a, b, c, d) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":831 * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): * return PyArray_MultiIterNew(4, a, b, c, d) # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 831, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":830 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(4, a, b, c, d) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew4", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":833 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(5, a, b, c, d, e) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d, PyObject *__pyx_v_e) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":834 * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): * return PyArray_MultiIterNew(5, a, b, c, d, e) # <<<<<<<<<<<<<< * * cdef inline tuple PyDataType_SHAPE(dtype d): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":833 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(5, a, b, c, d, e) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew5", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":836 * return PyArray_MultiIterNew(5, a, b, c, d, e) * * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< * if PyDataType_HASSUBARRAY(d): * return d.subarray.shape */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__pyx_v_d) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":837 * * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< * return d.subarray.shape * else: */ __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0); if (__pyx_t_1) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":838 * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): * return d.subarray.shape # <<<<<<<<<<<<<< * else: * return () */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject*)__pyx_v_d->subarray->shape)); __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape); goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":837 * * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< * return d.subarray.shape * else: */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":840 * return d.subarray.shape * else: * return () # <<<<<<<<<<<<<< * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: */ /*else*/ { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_empty_tuple); __pyx_r = __pyx_empty_tuple; goto __pyx_L0; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":836 * return PyArray_MultiIterNew(5, a, b, c, d, e) * * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< * if PyDataType_HASSUBARRAY(d): * return d.subarray.shape */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":842 * return () * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< * # Recursive utility function used in __getbuffer__ to get format * # string. The new location in the format string is returned. */ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx_v_descr, char *__pyx_v_f, char *__pyx_v_end, int *__pyx_v_offset) { PyArray_Descr *__pyx_v_child = 0; int __pyx_v_endian_detector; int __pyx_v_little_endian; PyObject *__pyx_v_fields = 0; PyObject *__pyx_v_childname = NULL; PyObject *__pyx_v_new_offset = NULL; PyObject *__pyx_v_t = NULL; char *__pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_t_6; int __pyx_t_7; long __pyx_t_8; char *__pyx_t_9; __Pyx_RefNannySetupContext("_util_dtypestring", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":847 * * cdef dtype child * cdef int endian_detector = 1 # <<<<<<<<<<<<<< * cdef bint little_endian = ((&endian_detector)[0] != 0) * cdef tuple fields */ __pyx_v_endian_detector = 1; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":848 * cdef dtype child * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< * cdef tuple fields * */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":851 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< * fields = descr.fields[childname] * child, new_offset = fields */ if (unlikely(__pyx_v_descr->names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(2, 851, __pyx_L1_error) } __pyx_t_1 = __pyx_v_descr->names; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; for (;;) { if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(2, 851, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 851, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); __pyx_t_3 = 0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":852 * * for childname in descr.names: * fields = descr.fields[childname] # <<<<<<<<<<<<<< * child, new_offset = fields * */ if (unlikely(__pyx_v_descr->fields == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(2, 852, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 852, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(2, 852, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":853 * for childname in descr.names: * fields = descr.fields[childname] * child, new_offset = fields # <<<<<<<<<<<<<< * * if (end - f) - (new_offset - offset[0]) < 15: */ if (likely(__pyx_v_fields != Py_None)) { PyObject* sequence = __pyx_v_fields; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(2, 853, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); #else __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 853, __pyx_L1_error) } if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(2, 853, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_child, ((PyArray_Descr *)__pyx_t_3)); __pyx_t_3 = 0; __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4); __pyx_t_4 = 0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":855 * child, new_offset = fields * * if (end - f) - (new_offset - offset[0]) < 15: # <<<<<<<<<<<<<< * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * */ __pyx_t_4 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 855, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0); if (unlikely(__pyx_t_6)) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":856 * * if (end - f) - (new_offset - offset[0]) < 15: * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") # <<<<<<<<<<<<<< * * if ((child.byteorder == c'>' and little_endian) or */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__30, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 856, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 856, __pyx_L1_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":855 * child, new_offset = fields * * if (end - f) - (new_offset - offset[0]) < 15: # <<<<<<<<<<<<<< * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":858 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ __pyx_t_7 = ((__pyx_v_child->byteorder == '>') != 0); if (!__pyx_t_7) { goto __pyx_L8_next_or; } else { } __pyx_t_7 = (__pyx_v_little_endian != 0); if (!__pyx_t_7) { } else { __pyx_t_6 = __pyx_t_7; goto __pyx_L7_bool_binop_done; } __pyx_L8_next_or:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":859 * * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< * raise ValueError(u"Non-native byte order not supported") * # One could encode it in the format string and have Cython */ __pyx_t_7 = ((__pyx_v_child->byteorder == '<') != 0); if (__pyx_t_7) { } else { __pyx_t_6 = __pyx_t_7; goto __pyx_L7_bool_binop_done; } __pyx_t_7 = ((!(__pyx_v_little_endian != 0)) != 0); __pyx_t_6 = __pyx_t_7; __pyx_L7_bool_binop_done:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":858 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ if (unlikely(__pyx_t_6)) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":860 * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< * # One could encode it in the format string and have Cython * # complain instead, BUT: < and > in format strings also imply */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__29, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 860, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 860, __pyx_L1_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":858 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":870 * * # Output padding bytes * while offset[0] < new_offset: # <<<<<<<<<<<<<< * f[0] = 120 # "x"; pad byte * f += 1 */ while (1) { __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 870, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_new_offset, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 870, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 870, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!__pyx_t_6) break; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":871 * # Output padding bytes * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< * f += 1 * offset[0] += 1 */ (__pyx_v_f[0]) = 0x78; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":872 * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte * f += 1 # <<<<<<<<<<<<<< * offset[0] += 1 * */ __pyx_v_f = (__pyx_v_f + 1); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":873 * f[0] = 120 # "x"; pad byte * f += 1 * offset[0] += 1 # <<<<<<<<<<<<<< * * offset[0] += child.itemsize */ __pyx_t_8 = 0; (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":875 * offset[0] += 1 * * offset[0] += child.itemsize # <<<<<<<<<<<<<< * * if not PyDataType_HASFIELDS(child): */ __pyx_t_8 = 0; (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":877 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< * t = child.type_num * if end - f < 5: */ __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); if (__pyx_t_6) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":878 * * if not PyDataType_HASFIELDS(child): * t = child.type_num # <<<<<<<<<<<<<< * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") */ __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 878, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); __pyx_t_4 = 0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":879 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< * raise RuntimeError(u"Format string allocated too short.") * */ __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); if (unlikely(__pyx_t_6)) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":880 * t = child.type_num * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< * * # Until ticket #99 is fixed, use integers to avoid warnings */ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__31, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 880, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(2, 880, __pyx_L1_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":879 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< * raise RuntimeError(u"Format string allocated too short.") * */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":883 * * # Until ticket #99 is fixed, use integers to avoid warnings * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 883, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 883, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 98; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":884 * # Until ticket #99 is fixed, use integers to avoid warnings * if t == NPY_BYTE: f[0] = 98 #"b" * elif t == NPY_UBYTE: f[0] = 66 #"B" # <<<<<<<<<<<<<< * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 884, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 884, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 884, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 66; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":885 * if t == NPY_BYTE: f[0] = 98 #"b" * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<< * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 885, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 885, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 885, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x68; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":886 * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<< * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 886, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 886, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 886, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 72; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":887 * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<< * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 887, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 887, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x69; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":888 * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<< * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 888, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 888, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 73; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":889 * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<< * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 889, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 889, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x6C; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":890 * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<< * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 890, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 890, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 76; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":891 * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<< * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 891, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 891, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x71; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":892 * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<< * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 892, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 892, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 81; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":893 * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<< * elif t == NPY_DOUBLE: f[0] = 100 #"d" * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 893, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 893, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x66; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":894 * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<< * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 894, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 894, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x64; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":895 * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<< * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 895, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 895, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 895, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x67; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":896 * elif t == NPY_DOUBLE: f[0] = 100 #"d" * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf # <<<<<<<<<<<<<< * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 896, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 896, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; (__pyx_v_f[1]) = 0x66; __pyx_v_f = (__pyx_v_f + 1); goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":897 * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd # <<<<<<<<<<<<<< * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg * elif t == NPY_OBJECT: f[0] = 79 #"O" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 897, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 897, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; (__pyx_v_f[1]) = 0x64; __pyx_v_f = (__pyx_v_f + 1); goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":898 * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg # <<<<<<<<<<<<<< * elif t == NPY_OBJECT: f[0] = 79 #"O" * else: */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 898, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 898, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; (__pyx_v_f[1]) = 0x67; __pyx_v_f = (__pyx_v_f + 1); goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":899 * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg * elif t == NPY_OBJECT: f[0] = 79 #"O" # <<<<<<<<<<<<<< * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 899, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 899, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (likely(__pyx_t_6)) { (__pyx_v_f[0]) = 79; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":901 * elif t == NPY_OBJECT: f[0] = 79 #"O" * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< * f += 1 * else: */ /*else*/ { __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(2, 901, __pyx_L1_error) } __pyx_L15:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":902 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * f += 1 # <<<<<<<<<<<<<< * else: * # Cython ignores struct boundary information ("T{...}"), */ __pyx_v_f = (__pyx_v_f + 1); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":877 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< * t = child.type_num * if end - f < 5: */ goto __pyx_L13; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":906 * # Cython ignores struct boundary information ("T{...}"), * # so don't output it * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< * return f * */ /*else*/ { __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_child, __pyx_v_f, __pyx_v_end, __pyx_v_offset); if (unlikely(__pyx_t_9 == ((char *)NULL))) __PYX_ERR(2, 906, __pyx_L1_error) __pyx_v_f = __pyx_t_9; } __pyx_L13:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":851 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< * fields = descr.fields[childname] * child, new_offset = fields */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":907 * # so don't output it * f = _util_dtypestring(child, f, end, offset) * return f # <<<<<<<<<<<<<< * * */ __pyx_r = __pyx_v_f; goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":842 * return () * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< * # Recursive utility function used in __getbuffer__ to get format * # string. The new location in the format string is returned. */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("numpy._util_dtypestring", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_child); __Pyx_XDECREF(__pyx_v_fields); __Pyx_XDECREF(__pyx_v_childname); __Pyx_XDECREF(__pyx_v_new_offset); __Pyx_XDECREF(__pyx_v_t); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1022 * int _import_umath() except -1 * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< * Py_INCREF(base) # important to do this before stealing the reference below! * PyArray_SetBaseObject(arr, base) */ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("set_array_base", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1023 * * cdef inline void set_array_base(ndarray arr, object base): * Py_INCREF(base) # important to do this before stealing the reference below! # <<<<<<<<<<<<<< * PyArray_SetBaseObject(arr, base) * */ Py_INCREF(__pyx_v_base); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1024 * cdef inline void set_array_base(ndarray arr, object base): * Py_INCREF(base) # important to do this before stealing the reference below! * PyArray_SetBaseObject(arr, base) # <<<<<<<<<<<<<< * * cdef inline object get_array_base(ndarray arr): */ (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base)); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1022 * int _import_umath() except -1 * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< * Py_INCREF(base) # important to do this before stealing the reference below! * PyArray_SetBaseObject(arr, base) */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1026 * PyArray_SetBaseObject(arr, base) * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< * base = PyArray_BASE(arr) * if base is NULL: */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) { PyObject *__pyx_v_base; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("get_array_base", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1027 * * cdef inline object get_array_base(ndarray arr): * base = PyArray_BASE(arr) # <<<<<<<<<<<<<< * if base is NULL: * return None */ __pyx_v_base = PyArray_BASE(__pyx_v_arr); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1028 * cdef inline object get_array_base(ndarray arr): * base = PyArray_BASE(arr) * if base is NULL: # <<<<<<<<<<<<<< * return None * return base */ __pyx_t_1 = ((__pyx_v_base == NULL) != 0); if (__pyx_t_1) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1029 * base = PyArray_BASE(arr) * if base is NULL: * return None # <<<<<<<<<<<<<< * return base * */ __Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1028 * cdef inline object get_array_base(ndarray arr): * base = PyArray_BASE(arr) * if base is NULL: # <<<<<<<<<<<<<< * return None * return base */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1030 * if base is NULL: * return None * return base # <<<<<<<<<<<<<< * * # Versions of the import_* functions which are more suitable for */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_base)); __pyx_r = ((PyObject *)__pyx_v_base); goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1026 * PyArray_SetBaseObject(arr, base) * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< * base = PyArray_BASE(arr) * if base is NULL: */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1034 * # Versions of the import_* functions which are more suitable for * # Cython code. * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< * try: * _import_array() */ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_array", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1035 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< * _import_array() * except Exception: */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1036 * cdef inline int import_array() except -1: * try: * _import_array() # <<<<<<<<<<<<<< * except Exception: * raise ImportError("numpy.core.multiarray failed to import") */ __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1036, __pyx_L3_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1035 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< * _import_array() * except Exception: */ } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L8_try_end; __pyx_L3_error:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1037 * try: * _import_array() * except Exception: # <<<<<<<<<<<<<< * raise ImportError("numpy.core.multiarray failed to import") * */ __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_4) { __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1037, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1038 * _import_array() * except Exception: * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< * * cdef inline int import_umath() except -1: */ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__32, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1038, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __PYX_ERR(2, 1038, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1035 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< * _import_array() * except Exception: */ __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L8_try_end:; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1034 * # Versions of the import_* functions which are more suitable for * # Cython code. * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< * try: * _import_array() */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1040 * raise ImportError("numpy.core.multiarray failed to import") * * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< * try: * _import_umath() */ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_umath", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1041 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< * _import_umath() * except Exception: */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1042 * cdef inline int import_umath() except -1: * try: * _import_umath() # <<<<<<<<<<<<<< * except Exception: * raise ImportError("numpy.core.umath failed to import") */ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1042, __pyx_L3_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1041 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< * _import_umath() * except Exception: */ } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L8_try_end; __pyx_L3_error:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1043 * try: * _import_umath() * except Exception: # <<<<<<<<<<<<<< * raise ImportError("numpy.core.umath failed to import") * */ __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_4) { __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1043, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1044 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< * * cdef inline int import_ufunc() except -1: */ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__33, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1044, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __PYX_ERR(2, 1044, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1041 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< * _import_umath() * except Exception: */ __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L8_try_end:; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1040 * raise ImportError("numpy.core.multiarray failed to import") * * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< * try: * _import_umath() */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1046 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< * try: * _import_umath() */ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_ufunc", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1047 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< * _import_umath() * except Exception: */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1048 * cdef inline int import_ufunc() except -1: * try: * _import_umath() # <<<<<<<<<<<<<< * except Exception: * raise ImportError("numpy.core.umath failed to import") */ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1048, __pyx_L3_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1047 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< * _import_umath() * except Exception: */ } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L8_try_end; __pyx_L3_error:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1049 * try: * _import_umath() * except Exception: # <<<<<<<<<<<<<< * raise ImportError("numpy.core.umath failed to import") */ __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_4) { __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1049, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1050 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< */ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__33, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1050, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __PYX_ERR(2, 1050, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1047 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< * _import_umath() * except Exception: */ __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L8_try_end:; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1046 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< * try: * _import_umath() */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":122 * cdef bint dtype_is_object * * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<< * mode="c", bint allocate_buffer=True): * */ /* Python wrapper */ static int __pyx_array___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_array___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_shape = 0; Py_ssize_t __pyx_v_itemsize; PyObject *__pyx_v_format = 0; PyObject *__pyx_v_mode = 0; int __pyx_v_allocate_buffer; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_shape,&__pyx_n_s_itemsize,&__pyx_n_s_format,&__pyx_n_s_mode,&__pyx_n_s_allocate_buffer,0}; PyObject* values[5] = {0,0,0,0,0}; values[3] = ((PyObject *)__pyx_n_s_c); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_shape)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_itemsize)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, 1); __PYX_ERR(1, 122, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_format)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, 2); __PYX_ERR(1, 122, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); if (value) { values[3] = value; kw_args--; } } CYTHON_FALLTHROUGH; case 4: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allocate_buffer); if (value) { values[4] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(1, 122, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_shape = ((PyObject*)values[0]); __pyx_v_itemsize = __Pyx_PyIndex_AsSsize_t(values[1]); if (unlikely((__pyx_v_itemsize == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 122, __pyx_L3_error) __pyx_v_format = values[2]; __pyx_v_mode = values[3]; if (values[4]) { __pyx_v_allocate_buffer = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allocate_buffer == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 123, __pyx_L3_error) } else { /* "View.MemoryView":123 * * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, * mode="c", bint allocate_buffer=True): # <<<<<<<<<<<<<< * * cdef int idx */ __pyx_v_allocate_buffer = ((int)1); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 122, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("View.MemoryView.array.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_shape), (&PyTuple_Type), 1, "shape", 1))) __PYX_ERR(1, 122, __pyx_L1_error) if (unlikely(((PyObject *)__pyx_v_format) == Py_None)) { PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "format"); __PYX_ERR(1, 122, __pyx_L1_error) } __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(((struct __pyx_array_obj *)__pyx_v_self), __pyx_v_shape, __pyx_v_itemsize, __pyx_v_format, __pyx_v_mode, __pyx_v_allocate_buffer); /* "View.MemoryView":122 * cdef bint dtype_is_object * * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<< * mode="c", bint allocate_buffer=True): * */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, PyObject *__pyx_v_format, PyObject *__pyx_v_mode, int __pyx_v_allocate_buffer) { int __pyx_v_idx; Py_ssize_t __pyx_v_i; Py_ssize_t __pyx_v_dim; PyObject **__pyx_v_p; char __pyx_v_order; int __pyx_r; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; char *__pyx_t_7; int __pyx_t_8; Py_ssize_t __pyx_t_9; PyObject *__pyx_t_10 = NULL; Py_ssize_t __pyx_t_11; __Pyx_RefNannySetupContext("__cinit__", 0); __Pyx_INCREF(__pyx_v_format); /* "View.MemoryView":129 * cdef PyObject **p * * self.ndim = len(shape) # <<<<<<<<<<<<<< * self.itemsize = itemsize * */ if (unlikely(__pyx_v_shape == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(1, 129, __pyx_L1_error) } __pyx_t_1 = PyTuple_GET_SIZE(__pyx_v_shape); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(1, 129, __pyx_L1_error) __pyx_v_self->ndim = ((int)__pyx_t_1); /* "View.MemoryView":130 * * self.ndim = len(shape) * self.itemsize = itemsize # <<<<<<<<<<<<<< * * if not self.ndim: */ __pyx_v_self->itemsize = __pyx_v_itemsize; /* "View.MemoryView":132 * self.itemsize = itemsize * * if not self.ndim: # <<<<<<<<<<<<<< * raise ValueError("Empty shape tuple for cython.array") * */ __pyx_t_2 = ((!(__pyx_v_self->ndim != 0)) != 0); if (unlikely(__pyx_t_2)) { /* "View.MemoryView":133 * * if not self.ndim: * raise ValueError("Empty shape tuple for cython.array") # <<<<<<<<<<<<<< * * if itemsize <= 0: */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__34, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 133, __pyx_L1_error) /* "View.MemoryView":132 * self.itemsize = itemsize * * if not self.ndim: # <<<<<<<<<<<<<< * raise ValueError("Empty shape tuple for cython.array") * */ } /* "View.MemoryView":135 * raise ValueError("Empty shape tuple for cython.array") * * if itemsize <= 0: # <<<<<<<<<<<<<< * raise ValueError("itemsize <= 0 for cython.array") * */ __pyx_t_2 = ((__pyx_v_itemsize <= 0) != 0); if (unlikely(__pyx_t_2)) { /* "View.MemoryView":136 * * if itemsize <= 0: * raise ValueError("itemsize <= 0 for cython.array") # <<<<<<<<<<<<<< * * if not isinstance(format, bytes): */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 136, __pyx_L1_error) /* "View.MemoryView":135 * raise ValueError("Empty shape tuple for cython.array") * * if itemsize <= 0: # <<<<<<<<<<<<<< * raise ValueError("itemsize <= 0 for cython.array") * */ } /* "View.MemoryView":138 * raise ValueError("itemsize <= 0 for cython.array") * * if not isinstance(format, bytes): # <<<<<<<<<<<<<< * format = format.encode('ASCII') * self._format = format # keep a reference to the byte string */ __pyx_t_2 = PyBytes_Check(__pyx_v_format); __pyx_t_4 = ((!(__pyx_t_2 != 0)) != 0); if (__pyx_t_4) { /* "View.MemoryView":139 * * if not isinstance(format, bytes): * format = format.encode('ASCII') # <<<<<<<<<<<<<< * self._format = format # keep a reference to the byte string * self.format = self._format */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_format, __pyx_n_s_encode); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_n_s_ASCII) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_n_s_ASCII); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF_SET(__pyx_v_format, __pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":138 * raise ValueError("itemsize <= 0 for cython.array") * * if not isinstance(format, bytes): # <<<<<<<<<<<<<< * format = format.encode('ASCII') * self._format = format # keep a reference to the byte string */ } /* "View.MemoryView":140 * if not isinstance(format, bytes): * format = format.encode('ASCII') * self._format = format # keep a reference to the byte string # <<<<<<<<<<<<<< * self.format = self._format * */ if (!(likely(PyBytes_CheckExact(__pyx_v_format))||((__pyx_v_format) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_v_format)->tp_name), 0))) __PYX_ERR(1, 140, __pyx_L1_error) __pyx_t_3 = __pyx_v_format; __Pyx_INCREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_self->_format); __Pyx_DECREF(__pyx_v_self->_format); __pyx_v_self->_format = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":141 * format = format.encode('ASCII') * self._format = format # keep a reference to the byte string * self.format = self._format # <<<<<<<<<<<<<< * * */ if (unlikely(__pyx_v_self->_format == Py_None)) { PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found"); __PYX_ERR(1, 141, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyBytes_AsWritableString(__pyx_v_self->_format); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) __PYX_ERR(1, 141, __pyx_L1_error) __pyx_v_self->format = __pyx_t_7; /* "View.MemoryView":144 * * * self._shape = PyObject_Malloc(sizeof(Py_ssize_t)*self.ndim*2) # <<<<<<<<<<<<<< * self._strides = self._shape + self.ndim * */ __pyx_v_self->_shape = ((Py_ssize_t *)PyObject_Malloc((((sizeof(Py_ssize_t)) * __pyx_v_self->ndim) * 2))); /* "View.MemoryView":145 * * self._shape = PyObject_Malloc(sizeof(Py_ssize_t)*self.ndim*2) * self._strides = self._shape + self.ndim # <<<<<<<<<<<<<< * * if not self._shape: */ __pyx_v_self->_strides = (__pyx_v_self->_shape + __pyx_v_self->ndim); /* "View.MemoryView":147 * self._strides = self._shape + self.ndim * * if not self._shape: # <<<<<<<<<<<<<< * raise MemoryError("unable to allocate shape and strides.") * */ __pyx_t_4 = ((!(__pyx_v_self->_shape != 0)) != 0); if (unlikely(__pyx_t_4)) { /* "View.MemoryView":148 * * if not self._shape: * raise MemoryError("unable to allocate shape and strides.") # <<<<<<<<<<<<<< * * */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__36, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 148, __pyx_L1_error) /* "View.MemoryView":147 * self._strides = self._shape + self.ndim * * if not self._shape: # <<<<<<<<<<<<<< * raise MemoryError("unable to allocate shape and strides.") * */ } /* "View.MemoryView":151 * * * for idx, dim in enumerate(shape): # <<<<<<<<<<<<<< * if dim <= 0: * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) */ __pyx_t_8 = 0; __pyx_t_3 = __pyx_v_shape; __Pyx_INCREF(__pyx_t_3); __pyx_t_1 = 0; for (;;) { if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_1); __Pyx_INCREF(__pyx_t_5); __pyx_t_1++; if (unlikely(0 < 0)) __PYX_ERR(1, 151, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_t_5); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 151, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_dim = __pyx_t_9; __pyx_v_idx = __pyx_t_8; __pyx_t_8 = (__pyx_t_8 + 1); /* "View.MemoryView":152 * * for idx, dim in enumerate(shape): * if dim <= 0: # <<<<<<<<<<<<<< * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) * self._shape[idx] = dim */ __pyx_t_4 = ((__pyx_v_dim <= 0) != 0); if (unlikely(__pyx_t_4)) { /* "View.MemoryView":153 * for idx, dim in enumerate(shape): * if dim <= 0: * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) # <<<<<<<<<<<<<< * self._shape[idx] = dim * */ __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_idx); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_dim); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_6); __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Invalid_shape_in_axis_d_d, __pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_6); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_Raise(__pyx_t_10, 0, 0, 0); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __PYX_ERR(1, 153, __pyx_L1_error) /* "View.MemoryView":152 * * for idx, dim in enumerate(shape): * if dim <= 0: # <<<<<<<<<<<<<< * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) * self._shape[idx] = dim */ } /* "View.MemoryView":154 * if dim <= 0: * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) * self._shape[idx] = dim # <<<<<<<<<<<<<< * * cdef char order */ (__pyx_v_self->_shape[__pyx_v_idx]) = __pyx_v_dim; /* "View.MemoryView":151 * * * for idx, dim in enumerate(shape): # <<<<<<<<<<<<<< * if dim <= 0: * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":157 * * cdef char order * if mode == 'fortran': # <<<<<<<<<<<<<< * order = b'F' * self.mode = u'fortran' */ __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_fortran, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 157, __pyx_L1_error) if (__pyx_t_4) { /* "View.MemoryView":158 * cdef char order * if mode == 'fortran': * order = b'F' # <<<<<<<<<<<<<< * self.mode = u'fortran' * elif mode == 'c': */ __pyx_v_order = 'F'; /* "View.MemoryView":159 * if mode == 'fortran': * order = b'F' * self.mode = u'fortran' # <<<<<<<<<<<<<< * elif mode == 'c': * order = b'C' */ __Pyx_INCREF(__pyx_n_u_fortran); __Pyx_GIVEREF(__pyx_n_u_fortran); __Pyx_GOTREF(__pyx_v_self->mode); __Pyx_DECREF(__pyx_v_self->mode); __pyx_v_self->mode = __pyx_n_u_fortran; /* "View.MemoryView":157 * * cdef char order * if mode == 'fortran': # <<<<<<<<<<<<<< * order = b'F' * self.mode = u'fortran' */ goto __pyx_L10; } /* "View.MemoryView":160 * order = b'F' * self.mode = u'fortran' * elif mode == 'c': # <<<<<<<<<<<<<< * order = b'C' * self.mode = u'c' */ __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_c, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(1, 160, __pyx_L1_error) if (likely(__pyx_t_4)) { /* "View.MemoryView":161 * self.mode = u'fortran' * elif mode == 'c': * order = b'C' # <<<<<<<<<<<<<< * self.mode = u'c' * else: */ __pyx_v_order = 'C'; /* "View.MemoryView":162 * elif mode == 'c': * order = b'C' * self.mode = u'c' # <<<<<<<<<<<<<< * else: * raise ValueError("Invalid mode, expected 'c' or 'fortran', got %s" % mode) */ __Pyx_INCREF(__pyx_n_u_c); __Pyx_GIVEREF(__pyx_n_u_c); __Pyx_GOTREF(__pyx_v_self->mode); __Pyx_DECREF(__pyx_v_self->mode); __pyx_v_self->mode = __pyx_n_u_c; /* "View.MemoryView":160 * order = b'F' * self.mode = u'fortran' * elif mode == 'c': # <<<<<<<<<<<<<< * order = b'C' * self.mode = u'c' */ goto __pyx_L10; } /* "View.MemoryView":164 * self.mode = u'c' * else: * raise ValueError("Invalid mode, expected 'c' or 'fortran', got %s" % mode) # <<<<<<<<<<<<<< * * self.len = fill_contig_strides_array(self._shape, self._strides, */ /*else*/ { __pyx_t_3 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Invalid_mode_expected_c_or_fortr, __pyx_v_mode); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_10, 0, 0, 0); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __PYX_ERR(1, 164, __pyx_L1_error) } __pyx_L10:; /* "View.MemoryView":166 * raise ValueError("Invalid mode, expected 'c' or 'fortran', got %s" % mode) * * self.len = fill_contig_strides_array(self._shape, self._strides, # <<<<<<<<<<<<<< * itemsize, self.ndim, order) * */ __pyx_v_self->len = __pyx_fill_contig_strides_array(__pyx_v_self->_shape, __pyx_v_self->_strides, __pyx_v_itemsize, __pyx_v_self->ndim, __pyx_v_order); /* "View.MemoryView":169 * itemsize, self.ndim, order) * * self.free_data = allocate_buffer # <<<<<<<<<<<<<< * self.dtype_is_object = format == b'O' * if allocate_buffer: */ __pyx_v_self->free_data = __pyx_v_allocate_buffer; /* "View.MemoryView":170 * * self.free_data = allocate_buffer * self.dtype_is_object = format == b'O' # <<<<<<<<<<<<<< * if allocate_buffer: * */ __pyx_t_10 = PyObject_RichCompare(__pyx_v_format, __pyx_n_b_O, Py_EQ); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 170, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 170, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_v_self->dtype_is_object = __pyx_t_4; /* "View.MemoryView":171 * self.free_data = allocate_buffer * self.dtype_is_object = format == b'O' * if allocate_buffer: # <<<<<<<<<<<<<< * * */ __pyx_t_4 = (__pyx_v_allocate_buffer != 0); if (__pyx_t_4) { /* "View.MemoryView":174 * * * self.data = malloc(self.len) # <<<<<<<<<<<<<< * if not self.data: * raise MemoryError("unable to allocate array data.") */ __pyx_v_self->data = ((char *)malloc(__pyx_v_self->len)); /* "View.MemoryView":175 * * self.data = malloc(self.len) * if not self.data: # <<<<<<<<<<<<<< * raise MemoryError("unable to allocate array data.") * */ __pyx_t_4 = ((!(__pyx_v_self->data != 0)) != 0); if (unlikely(__pyx_t_4)) { /* "View.MemoryView":176 * self.data = malloc(self.len) * if not self.data: * raise MemoryError("unable to allocate array data.") # <<<<<<<<<<<<<< * * if self.dtype_is_object: */ __pyx_t_10 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__37, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_Raise(__pyx_t_10, 0, 0, 0); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __PYX_ERR(1, 176, __pyx_L1_error) /* "View.MemoryView":175 * * self.data = malloc(self.len) * if not self.data: # <<<<<<<<<<<<<< * raise MemoryError("unable to allocate array data.") * */ } /* "View.MemoryView":178 * raise MemoryError("unable to allocate array data.") * * if self.dtype_is_object: # <<<<<<<<<<<<<< * p = self.data * for i in range(self.len / itemsize): */ __pyx_t_4 = (__pyx_v_self->dtype_is_object != 0); if (__pyx_t_4) { /* "View.MemoryView":179 * * if self.dtype_is_object: * p = self.data # <<<<<<<<<<<<<< * for i in range(self.len / itemsize): * p[i] = Py_None */ __pyx_v_p = ((PyObject **)__pyx_v_self->data); /* "View.MemoryView":180 * if self.dtype_is_object: * p = self.data * for i in range(self.len / itemsize): # <<<<<<<<<<<<<< * p[i] = Py_None * Py_INCREF(Py_None) */ if (unlikely(__pyx_v_itemsize == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero"); __PYX_ERR(1, 180, __pyx_L1_error) } else if (sizeof(Py_ssize_t) == sizeof(long) && (!(((Py_ssize_t)-1) > 0)) && unlikely(__pyx_v_itemsize == (Py_ssize_t)-1) && unlikely(UNARY_NEG_WOULD_OVERFLOW(__pyx_v_self->len))) { PyErr_SetString(PyExc_OverflowError, "value too large to perform division"); __PYX_ERR(1, 180, __pyx_L1_error) } __pyx_t_1 = __Pyx_div_Py_ssize_t(__pyx_v_self->len, __pyx_v_itemsize); __pyx_t_9 = __pyx_t_1; for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_9; __pyx_t_11+=1) { __pyx_v_i = __pyx_t_11; /* "View.MemoryView":181 * p = self.data * for i in range(self.len / itemsize): * p[i] = Py_None # <<<<<<<<<<<<<< * Py_INCREF(Py_None) * */ (__pyx_v_p[__pyx_v_i]) = Py_None; /* "View.MemoryView":182 * for i in range(self.len / itemsize): * p[i] = Py_None * Py_INCREF(Py_None) # <<<<<<<<<<<<<< * * @cname('getbuffer') */ Py_INCREF(Py_None); } /* "View.MemoryView":178 * raise MemoryError("unable to allocate array data.") * * if self.dtype_is_object: # <<<<<<<<<<<<<< * p = self.data * for i in range(self.len / itemsize): */ } /* "View.MemoryView":171 * self.free_data = allocate_buffer * self.dtype_is_object = format == b'O' * if allocate_buffer: # <<<<<<<<<<<<<< * * */ } /* "View.MemoryView":122 * cdef bint dtype_is_object * * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<< * mode="c", bint allocate_buffer=True): * */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("View.MemoryView.array.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_format); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":185 * * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< * cdef int bufmode = -1 * if self.mode == u"c": */ /* Python wrapper */ static CYTHON_UNUSED int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ static CYTHON_UNUSED int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(((struct __pyx_array_obj *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(struct __pyx_array_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_v_bufmode; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; char *__pyx_t_4; Py_ssize_t __pyx_t_5; int __pyx_t_6; Py_ssize_t *__pyx_t_7; if (__pyx_v_info == NULL) { PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); return -1; } __Pyx_RefNannySetupContext("__getbuffer__", 0); __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); __Pyx_GIVEREF(__pyx_v_info->obj); /* "View.MemoryView":186 * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): * cdef int bufmode = -1 # <<<<<<<<<<<<<< * if self.mode == u"c": * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS */ __pyx_v_bufmode = -1; /* "View.MemoryView":187 * def __getbuffer__(self, Py_buffer *info, int flags): * cdef int bufmode = -1 * if self.mode == u"c": # <<<<<<<<<<<<<< * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * elif self.mode == u"fortran": */ __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_self->mode, __pyx_n_u_c, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 187, __pyx_L1_error) __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":188 * cdef int bufmode = -1 * if self.mode == u"c": * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS # <<<<<<<<<<<<<< * elif self.mode == u"fortran": * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS */ __pyx_v_bufmode = (PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS); /* "View.MemoryView":187 * def __getbuffer__(self, Py_buffer *info, int flags): * cdef int bufmode = -1 * if self.mode == u"c": # <<<<<<<<<<<<<< * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * elif self.mode == u"fortran": */ goto __pyx_L3; } /* "View.MemoryView":189 * if self.mode == u"c": * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * elif self.mode == u"fortran": # <<<<<<<<<<<<<< * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): */ __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_self->mode, __pyx_n_u_fortran, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 189, __pyx_L1_error) __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* "View.MemoryView":190 * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * elif self.mode == u"fortran": * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS # <<<<<<<<<<<<<< * if not (flags & bufmode): * raise ValueError("Can only create a buffer that is contiguous in memory.") */ __pyx_v_bufmode = (PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS); /* "View.MemoryView":189 * if self.mode == u"c": * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * elif self.mode == u"fortran": # <<<<<<<<<<<<<< * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): */ } __pyx_L3:; /* "View.MemoryView":191 * elif self.mode == u"fortran": * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): # <<<<<<<<<<<<<< * raise ValueError("Can only create a buffer that is contiguous in memory.") * info.buf = self.data */ __pyx_t_1 = ((!((__pyx_v_flags & __pyx_v_bufmode) != 0)) != 0); if (unlikely(__pyx_t_1)) { /* "View.MemoryView":192 * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): * raise ValueError("Can only create a buffer that is contiguous in memory.") # <<<<<<<<<<<<<< * info.buf = self.data * info.len = self.len */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__38, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 192, __pyx_L1_error) /* "View.MemoryView":191 * elif self.mode == u"fortran": * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): # <<<<<<<<<<<<<< * raise ValueError("Can only create a buffer that is contiguous in memory.") * info.buf = self.data */ } /* "View.MemoryView":193 * if not (flags & bufmode): * raise ValueError("Can only create a buffer that is contiguous in memory.") * info.buf = self.data # <<<<<<<<<<<<<< * info.len = self.len * info.ndim = self.ndim */ __pyx_t_4 = __pyx_v_self->data; __pyx_v_info->buf = __pyx_t_4; /* "View.MemoryView":194 * raise ValueError("Can only create a buffer that is contiguous in memory.") * info.buf = self.data * info.len = self.len # <<<<<<<<<<<<<< * info.ndim = self.ndim * info.shape = self._shape */ __pyx_t_5 = __pyx_v_self->len; __pyx_v_info->len = __pyx_t_5; /* "View.MemoryView":195 * info.buf = self.data * info.len = self.len * info.ndim = self.ndim # <<<<<<<<<<<<<< * info.shape = self._shape * info.strides = self._strides */ __pyx_t_6 = __pyx_v_self->ndim; __pyx_v_info->ndim = __pyx_t_6; /* "View.MemoryView":196 * info.len = self.len * info.ndim = self.ndim * info.shape = self._shape # <<<<<<<<<<<<<< * info.strides = self._strides * info.suboffsets = NULL */ __pyx_t_7 = __pyx_v_self->_shape; __pyx_v_info->shape = __pyx_t_7; /* "View.MemoryView":197 * info.ndim = self.ndim * info.shape = self._shape * info.strides = self._strides # <<<<<<<<<<<<<< * info.suboffsets = NULL * info.itemsize = self.itemsize */ __pyx_t_7 = __pyx_v_self->_strides; __pyx_v_info->strides = __pyx_t_7; /* "View.MemoryView":198 * info.shape = self._shape * info.strides = self._strides * info.suboffsets = NULL # <<<<<<<<<<<<<< * info.itemsize = self.itemsize * info.readonly = 0 */ __pyx_v_info->suboffsets = NULL; /* "View.MemoryView":199 * info.strides = self._strides * info.suboffsets = NULL * info.itemsize = self.itemsize # <<<<<<<<<<<<<< * info.readonly = 0 * */ __pyx_t_5 = __pyx_v_self->itemsize; __pyx_v_info->itemsize = __pyx_t_5; /* "View.MemoryView":200 * info.suboffsets = NULL * info.itemsize = self.itemsize * info.readonly = 0 # <<<<<<<<<<<<<< * * if flags & PyBUF_FORMAT: */ __pyx_v_info->readonly = 0; /* "View.MemoryView":202 * info.readonly = 0 * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * info.format = self.format * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0); if (__pyx_t_1) { /* "View.MemoryView":203 * * if flags & PyBUF_FORMAT: * info.format = self.format # <<<<<<<<<<<<<< * else: * info.format = NULL */ __pyx_t_4 = __pyx_v_self->format; __pyx_v_info->format = __pyx_t_4; /* "View.MemoryView":202 * info.readonly = 0 * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * info.format = self.format * else: */ goto __pyx_L5; } /* "View.MemoryView":205 * info.format = self.format * else: * info.format = NULL # <<<<<<<<<<<<<< * * info.obj = self */ /*else*/ { __pyx_v_info->format = NULL; } __pyx_L5:; /* "View.MemoryView":207 * info.format = NULL * * info.obj = self # <<<<<<<<<<<<<< * * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") */ __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = ((PyObject *)__pyx_v_self); /* "View.MemoryView":185 * * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< * cdef int bufmode = -1 * if self.mode == u"c": */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.array.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; if (__pyx_v_info->obj != NULL) { __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; } goto __pyx_L2; __pyx_L0:; if (__pyx_v_info->obj == Py_None) { __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; } __pyx_L2:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":211 * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") * * def __dealloc__(array self): # <<<<<<<<<<<<<< * if self.callback_free_data != NULL: * self.callback_free_data(self.data) */ /* Python wrapper */ static void __pyx_array___dealloc__(PyObject *__pyx_v_self); /*proto*/ static void __pyx_array___dealloc__(PyObject *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(((struct __pyx_array_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(struct __pyx_array_obj *__pyx_v_self) { __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("__dealloc__", 0); /* "View.MemoryView":212 * * def __dealloc__(array self): * if self.callback_free_data != NULL: # <<<<<<<<<<<<<< * self.callback_free_data(self.data) * elif self.free_data: */ __pyx_t_1 = ((__pyx_v_self->callback_free_data != NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":213 * def __dealloc__(array self): * if self.callback_free_data != NULL: * self.callback_free_data(self.data) # <<<<<<<<<<<<<< * elif self.free_data: * if self.dtype_is_object: */ __pyx_v_self->callback_free_data(__pyx_v_self->data); /* "View.MemoryView":212 * * def __dealloc__(array self): * if self.callback_free_data != NULL: # <<<<<<<<<<<<<< * self.callback_free_data(self.data) * elif self.free_data: */ goto __pyx_L3; } /* "View.MemoryView":214 * if self.callback_free_data != NULL: * self.callback_free_data(self.data) * elif self.free_data: # <<<<<<<<<<<<<< * if self.dtype_is_object: * refcount_objects_in_slice(self.data, self._shape, */ __pyx_t_1 = (__pyx_v_self->free_data != 0); if (__pyx_t_1) { /* "View.MemoryView":215 * self.callback_free_data(self.data) * elif self.free_data: * if self.dtype_is_object: # <<<<<<<<<<<<<< * refcount_objects_in_slice(self.data, self._shape, * self._strides, self.ndim, False) */ __pyx_t_1 = (__pyx_v_self->dtype_is_object != 0); if (__pyx_t_1) { /* "View.MemoryView":216 * elif self.free_data: * if self.dtype_is_object: * refcount_objects_in_slice(self.data, self._shape, # <<<<<<<<<<<<<< * self._strides, self.ndim, False) * free(self.data) */ __pyx_memoryview_refcount_objects_in_slice(__pyx_v_self->data, __pyx_v_self->_shape, __pyx_v_self->_strides, __pyx_v_self->ndim, 0); /* "View.MemoryView":215 * self.callback_free_data(self.data) * elif self.free_data: * if self.dtype_is_object: # <<<<<<<<<<<<<< * refcount_objects_in_slice(self.data, self._shape, * self._strides, self.ndim, False) */ } /* "View.MemoryView":218 * refcount_objects_in_slice(self.data, self._shape, * self._strides, self.ndim, False) * free(self.data) # <<<<<<<<<<<<<< * PyObject_Free(self._shape) * */ free(__pyx_v_self->data); /* "View.MemoryView":214 * if self.callback_free_data != NULL: * self.callback_free_data(self.data) * elif self.free_data: # <<<<<<<<<<<<<< * if self.dtype_is_object: * refcount_objects_in_slice(self.data, self._shape, */ } __pyx_L3:; /* "View.MemoryView":219 * self._strides, self.ndim, False) * free(self.data) * PyObject_Free(self._shape) # <<<<<<<<<<<<<< * * @property */ PyObject_Free(__pyx_v_self->_shape); /* "View.MemoryView":211 * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") * * def __dealloc__(array self): # <<<<<<<<<<<<<< * if self.callback_free_data != NULL: * self.callback_free_data(self.data) */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "View.MemoryView":222 * * @property * def memview(self): # <<<<<<<<<<<<<< * return self.get_memview() * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_5array_7memview___get__(((struct __pyx_array_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_5array_7memview___get__(struct __pyx_array_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":223 * @property * def memview(self): * return self.get_memview() # <<<<<<<<<<<<<< * * @cname('get_memview') */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((struct __pyx_vtabstruct_array *)__pyx_v_self->__pyx_vtab)->get_memview(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":222 * * @property * def memview(self): # <<<<<<<<<<<<<< * return self.get_memview() * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.array.memview.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":226 * * @cname('get_memview') * cdef get_memview(self): # <<<<<<<<<<<<<< * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE * return memoryview(self, flags, self.dtype_is_object) */ static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *__pyx_v_self) { int __pyx_v_flags; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("get_memview", 0); /* "View.MemoryView":227 * @cname('get_memview') * cdef get_memview(self): * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE # <<<<<<<<<<<<<< * return memoryview(self, flags, self.dtype_is_object) * */ __pyx_v_flags = ((PyBUF_ANY_CONTIGUOUS | PyBUF_FORMAT) | PyBUF_WRITABLE); /* "View.MemoryView":228 * cdef get_memview(self): * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE * return memoryview(self, flags, self.dtype_is_object) # <<<<<<<<<<<<<< * * def __len__(self): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":226 * * @cname('get_memview') * cdef get_memview(self): # <<<<<<<<<<<<<< * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE * return memoryview(self, flags, self.dtype_is_object) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.array.get_memview", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":230 * return memoryview(self, flags, self.dtype_is_object) * * def __len__(self): # <<<<<<<<<<<<<< * return self._shape[0] * */ /* Python wrapper */ static Py_ssize_t __pyx_array___len__(PyObject *__pyx_v_self); /*proto*/ static Py_ssize_t __pyx_array___len__(PyObject *__pyx_v_self) { Py_ssize_t __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__len__ (wrapper)", 0); __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(((struct __pyx_array_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static Py_ssize_t __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(struct __pyx_array_obj *__pyx_v_self) { Py_ssize_t __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__len__", 0); /* "View.MemoryView":231 * * def __len__(self): * return self._shape[0] # <<<<<<<<<<<<<< * * def __getattr__(self, attr): */ __pyx_r = (__pyx_v_self->_shape[0]); goto __pyx_L0; /* "View.MemoryView":230 * return memoryview(self, flags, self.dtype_is_object) * * def __len__(self): # <<<<<<<<<<<<<< * return self._shape[0] * */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":233 * return self._shape[0] * * def __getattr__(self, attr): # <<<<<<<<<<<<<< * return getattr(self.memview, attr) * */ /* Python wrapper */ static PyObject *__pyx_array___getattr__(PyObject *__pyx_v_self, PyObject *__pyx_v_attr); /*proto*/ static PyObject *__pyx_array___getattr__(PyObject *__pyx_v_self, PyObject *__pyx_v_attr) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getattr__ (wrapper)", 0); __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_attr)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_attr) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__getattr__", 0); /* "View.MemoryView":234 * * def __getattr__(self, attr): * return getattr(self.memview, attr) # <<<<<<<<<<<<<< * * def __getitem__(self, item): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_GetAttr(__pyx_t_1, __pyx_v_attr); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":233 * return self._shape[0] * * def __getattr__(self, attr): # <<<<<<<<<<<<<< * return getattr(self.memview, attr) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.array.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":236 * return getattr(self.memview, attr) * * def __getitem__(self, item): # <<<<<<<<<<<<<< * return self.memview[item] * */ /* Python wrapper */ static PyObject *__pyx_array___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item); /*proto*/ static PyObject *__pyx_array___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_item)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__getitem__", 0); /* "View.MemoryView":237 * * def __getitem__(self, item): * return self.memview[item] # <<<<<<<<<<<<<< * * def __setitem__(self, item, value): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_item); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":236 * return getattr(self.memview, attr) * * def __getitem__(self, item): # <<<<<<<<<<<<<< * return self.memview[item] * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.array.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":239 * return self.memview[item] * * def __setitem__(self, item, value): # <<<<<<<<<<<<<< * self.memview[item] = value * */ /* Python wrapper */ static int __pyx_array___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value); /*proto*/ static int __pyx_array___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0); __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_item), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__setitem__", 0); /* "View.MemoryView":240 * * def __setitem__(self, item, value): * self.memview[item] = value # <<<<<<<<<<<<<< * * */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_item, __pyx_v_value) < 0)) __PYX_ERR(1, 240, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "View.MemoryView":239 * return self.memview[item] * * def __setitem__(self, item, value): # <<<<<<<<<<<<<< * self.memview[item] = value * */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.array.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_array_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw___pyx_array_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_array___reduce_cython__(((struct __pyx_array_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_array___reduce_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__39, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.array.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_array_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw___pyx_array_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_array_2__setstate_cython__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_array_2__setstate_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__40, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.array.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":244 * * @cname("__pyx_array_new") * cdef array array_cwrapper(tuple shape, Py_ssize_t itemsize, char *format, # <<<<<<<<<<<<<< * char *mode, char *buf): * cdef array result */ static struct __pyx_array_obj *__pyx_array_new(PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, char *__pyx_v_format, char *__pyx_v_mode, char *__pyx_v_buf) { struct __pyx_array_obj *__pyx_v_result = 0; struct __pyx_array_obj *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("array_cwrapper", 0); /* "View.MemoryView":248 * cdef array result * * if buf == NULL: # <<<<<<<<<<<<<< * result = array(shape, itemsize, format, mode.decode('ASCII')) * else: */ __pyx_t_1 = ((__pyx_v_buf == NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":249 * * if buf == NULL: * result = array(shape, itemsize, format, mode.decode('ASCII')) # <<<<<<<<<<<<<< * else: * result = array(shape, itemsize, format, mode.decode('ASCII'), */ __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_itemsize); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_format); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_decode_c_string(__pyx_v_mode, 0, strlen(__pyx_v_mode), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_shape); __Pyx_GIVEREF(__pyx_v_shape); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_shape); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_array_type), __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_result = ((struct __pyx_array_obj *)__pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":248 * cdef array result * * if buf == NULL: # <<<<<<<<<<<<<< * result = array(shape, itemsize, format, mode.decode('ASCII')) * else: */ goto __pyx_L3; } /* "View.MemoryView":251 * result = array(shape, itemsize, format, mode.decode('ASCII')) * else: * result = array(shape, itemsize, format, mode.decode('ASCII'), # <<<<<<<<<<<<<< * allocate_buffer=False) * result.data = buf */ /*else*/ { __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_itemsize); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_format); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_mode, 0, strlen(__pyx_v_mode), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_shape); __Pyx_GIVEREF(__pyx_v_shape); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_shape); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_3); __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_3 = 0; /* "View.MemoryView":252 * else: * result = array(shape, itemsize, format, mode.decode('ASCII'), * allocate_buffer=False) # <<<<<<<<<<<<<< * result.data = buf * */ __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_allocate_buffer, Py_False) < 0) __PYX_ERR(1, 252, __pyx_L1_error) /* "View.MemoryView":251 * result = array(shape, itemsize, format, mode.decode('ASCII')) * else: * result = array(shape, itemsize, format, mode.decode('ASCII'), # <<<<<<<<<<<<<< * allocate_buffer=False) * result.data = buf */ __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_array_type), __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_result = ((struct __pyx_array_obj *)__pyx_t_5); __pyx_t_5 = 0; /* "View.MemoryView":253 * result = array(shape, itemsize, format, mode.decode('ASCII'), * allocate_buffer=False) * result.data = buf # <<<<<<<<<<<<<< * * return result */ __pyx_v_result->data = __pyx_v_buf; } __pyx_L3:; /* "View.MemoryView":255 * result.data = buf * * return result # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_result)); __pyx_r = __pyx_v_result; goto __pyx_L0; /* "View.MemoryView":244 * * @cname("__pyx_array_new") * cdef array array_cwrapper(tuple shape, Py_ssize_t itemsize, char *format, # <<<<<<<<<<<<<< * char *mode, char *buf): * cdef array result */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.array_cwrapper", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_result); __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":281 * cdef class Enum(object): * cdef object name * def __init__(self, name): # <<<<<<<<<<<<<< * self.name = name * def __repr__(self): */ /* Python wrapper */ static int __pyx_MemviewEnum___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_MemviewEnum___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_name = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0}; PyObject* values[1] = {0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 281, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); } __pyx_v_name = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 281, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("View.MemoryView.Enum.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self), __pyx_v_name); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v_name) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); /* "View.MemoryView":282 * cdef object name * def __init__(self, name): * self.name = name # <<<<<<<<<<<<<< * def __repr__(self): * return self.name */ __Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); __Pyx_GOTREF(__pyx_v_self->name); __Pyx_DECREF(__pyx_v_self->name); __pyx_v_self->name = __pyx_v_name; /* "View.MemoryView":281 * cdef class Enum(object): * cdef object name * def __init__(self, name): # <<<<<<<<<<<<<< * self.name = name * def __repr__(self): */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":283 * def __init__(self, name): * self.name = name * def __repr__(self): # <<<<<<<<<<<<<< * return self.name * */ /* Python wrapper */ static PyObject *__pyx_MemviewEnum___repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_MemviewEnum___repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(struct __pyx_MemviewEnum_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__", 0); /* "View.MemoryView":284 * self.name = name * def __repr__(self): * return self.name # <<<<<<<<<<<<<< * * cdef generic = Enum("") */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->name); __pyx_r = __pyx_v_self->name; goto __pyx_L0; /* "View.MemoryView":283 * def __init__(self, name): * self.name = name * def __repr__(self): # <<<<<<<<<<<<<< * return self.name * */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * cdef tuple state * cdef object _dict */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_MemviewEnum_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw___pyx_MemviewEnum_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_MemviewEnum___reduce_cython__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_MemviewEnum___reduce_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self) { PyObject *__pyx_v_state = 0; PyObject *__pyx_v__dict = 0; int __pyx_v_use_setstate; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":5 * cdef object _dict * cdef bint use_setstate * state = (self.name,) # <<<<<<<<<<<<<< * _dict = getattr(self, '__dict__', None) * if _dict is not None: */ __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_self->name); __Pyx_GIVEREF(__pyx_v_self->name); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->name); __pyx_v_state = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "(tree fragment)":6 * cdef bint use_setstate * state = (self.name,) * _dict = getattr(self, '__dict__', None) # <<<<<<<<<<<<<< * if _dict is not None: * state += (_dict,) */ __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v__dict = __pyx_t_1; __pyx_t_1 = 0; /* "(tree fragment)":7 * state = (self.name,) * _dict = getattr(self, '__dict__', None) * if _dict is not None: # <<<<<<<<<<<<<< * state += (_dict,) * use_setstate = True */ __pyx_t_2 = (__pyx_v__dict != Py_None); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* "(tree fragment)":8 * _dict = getattr(self, '__dict__', None) * if _dict is not None: * state += (_dict,) # <<<<<<<<<<<<<< * use_setstate = True * else: */ __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v__dict); __Pyx_GIVEREF(__pyx_v__dict); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict); __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4)); __pyx_t_4 = 0; /* "(tree fragment)":9 * if _dict is not None: * state += (_dict,) * use_setstate = True # <<<<<<<<<<<<<< * else: * use_setstate = self.name is not None */ __pyx_v_use_setstate = 1; /* "(tree fragment)":7 * state = (self.name,) * _dict = getattr(self, '__dict__', None) * if _dict is not None: # <<<<<<<<<<<<<< * state += (_dict,) * use_setstate = True */ goto __pyx_L3; } /* "(tree fragment)":11 * use_setstate = True * else: * use_setstate = self.name is not None # <<<<<<<<<<<<<< * if use_setstate: * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state */ /*else*/ { __pyx_t_3 = (__pyx_v_self->name != Py_None); __pyx_v_use_setstate = __pyx_t_3; } __pyx_L3:; /* "(tree fragment)":12 * else: * use_setstate = self.name is not None * if use_setstate: # <<<<<<<<<<<<<< * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state * else: */ __pyx_t_3 = (__pyx_v_use_setstate != 0); if (__pyx_t_3) { /* "(tree fragment)":13 * use_setstate = self.name is not None * if use_setstate: * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state # <<<<<<<<<<<<<< * else: * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Enum); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_INCREF(__pyx_int_184977713); __Pyx_GIVEREF(__pyx_int_184977713); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_184977713); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None); __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1); __Pyx_INCREF(__pyx_v_state); __Pyx_GIVEREF(__pyx_v_state); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state); __pyx_t_4 = 0; __pyx_t_1 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0; /* "(tree fragment)":12 * else: * use_setstate = self.name is not None * if use_setstate: # <<<<<<<<<<<<<< * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state * else: */ } /* "(tree fragment)":15 * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state * else: * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * __pyx_unpickle_Enum__set_state(self, __pyx_state) */ /*else*/ { __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_Enum); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_INCREF(__pyx_int_184977713); __Pyx_GIVEREF(__pyx_int_184977713); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_184977713); __Pyx_INCREF(__pyx_v_state); __Pyx_GIVEREF(__pyx_v_state); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); __pyx_t_5 = 0; __pyx_t_1 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * cdef tuple state * cdef object _dict */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.Enum.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_state); __Pyx_XDECREF(__pyx_v__dict); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":16 * else: * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * __pyx_unpickle_Enum__set_state(self, __pyx_state) */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_MemviewEnum_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw___pyx_MemviewEnum_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_MemviewEnum_2__setstate_cython__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_MemviewEnum_2__setstate_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":17 * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) * def __setstate_cython__(self, __pyx_state): * __pyx_unpickle_Enum__set_state(self, __pyx_state) # <<<<<<<<<<<<<< */ if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(1, 17, __pyx_L1_error) __pyx_t_1 = __pyx_unpickle_Enum__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "(tree fragment)":16 * else: * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * __pyx_unpickle_Enum__set_state(self, __pyx_state) */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.Enum.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":298 * * @cname('__pyx_align_pointer') * cdef void *align_pointer(void *memory, size_t alignment) nogil: # <<<<<<<<<<<<<< * "Align pointer memory on a given boundary" * cdef Py_intptr_t aligned_p = memory */ static void *__pyx_align_pointer(void *__pyx_v_memory, size_t __pyx_v_alignment) { Py_intptr_t __pyx_v_aligned_p; size_t __pyx_v_offset; void *__pyx_r; int __pyx_t_1; /* "View.MemoryView":300 * cdef void *align_pointer(void *memory, size_t alignment) nogil: * "Align pointer memory on a given boundary" * cdef Py_intptr_t aligned_p = memory # <<<<<<<<<<<<<< * cdef size_t offset * */ __pyx_v_aligned_p = ((Py_intptr_t)__pyx_v_memory); /* "View.MemoryView":304 * * with cython.cdivision(True): * offset = aligned_p % alignment # <<<<<<<<<<<<<< * * if offset > 0: */ __pyx_v_offset = (__pyx_v_aligned_p % __pyx_v_alignment); /* "View.MemoryView":306 * offset = aligned_p % alignment * * if offset > 0: # <<<<<<<<<<<<<< * aligned_p += alignment - offset * */ __pyx_t_1 = ((__pyx_v_offset > 0) != 0); if (__pyx_t_1) { /* "View.MemoryView":307 * * if offset > 0: * aligned_p += alignment - offset # <<<<<<<<<<<<<< * * return aligned_p */ __pyx_v_aligned_p = (__pyx_v_aligned_p + (__pyx_v_alignment - __pyx_v_offset)); /* "View.MemoryView":306 * offset = aligned_p % alignment * * if offset > 0: # <<<<<<<<<<<<<< * aligned_p += alignment - offset * */ } /* "View.MemoryView":309 * aligned_p += alignment - offset * * return aligned_p # <<<<<<<<<<<<<< * * */ __pyx_r = ((void *)__pyx_v_aligned_p); goto __pyx_L0; /* "View.MemoryView":298 * * @cname('__pyx_align_pointer') * cdef void *align_pointer(void *memory, size_t alignment) nogil: # <<<<<<<<<<<<<< * "Align pointer memory on a given boundary" * cdef Py_intptr_t aligned_p = memory */ /* function exit code */ __pyx_L0:; return __pyx_r; } /* "View.MemoryView":345 * cdef __Pyx_TypeInfo *typeinfo * * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): # <<<<<<<<<<<<<< * self.obj = obj * self.flags = flags */ /* Python wrapper */ static int __pyx_memoryview___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_memoryview___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_obj = 0; int __pyx_v_flags; int __pyx_v_dtype_is_object; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_obj,&__pyx_n_s_flags,&__pyx_n_s_dtype_is_object,0}; PyObject* values[3] = {0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_obj)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, 1); __PYX_ERR(1, 345, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dtype_is_object); if (value) { values[2] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(1, 345, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_obj = values[0]; __pyx_v_flags = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_flags == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 345, __pyx_L3_error) if (values[2]) { __pyx_v_dtype_is_object = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_dtype_is_object == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 345, __pyx_L3_error) } else { __pyx_v_dtype_is_object = ((int)0); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 345, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("View.MemoryView.memoryview.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_obj, __pyx_v_flags, __pyx_v_dtype_is_object); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_v_flags, int __pyx_v_dtype_is_object) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; __Pyx_RefNannySetupContext("__cinit__", 0); /* "View.MemoryView":346 * * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): * self.obj = obj # <<<<<<<<<<<<<< * self.flags = flags * if type(self) is memoryview or obj is not None: */ __Pyx_INCREF(__pyx_v_obj); __Pyx_GIVEREF(__pyx_v_obj); __Pyx_GOTREF(__pyx_v_self->obj); __Pyx_DECREF(__pyx_v_self->obj); __pyx_v_self->obj = __pyx_v_obj; /* "View.MemoryView":347 * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): * self.obj = obj * self.flags = flags # <<<<<<<<<<<<<< * if type(self) is memoryview or obj is not None: * __Pyx_GetBuffer(obj, &self.view, flags) */ __pyx_v_self->flags = __pyx_v_flags; /* "View.MemoryView":348 * self.obj = obj * self.flags = flags * if type(self) is memoryview or obj is not None: # <<<<<<<<<<<<<< * __Pyx_GetBuffer(obj, &self.view, flags) * if self.view.obj == NULL: */ __pyx_t_2 = (((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))) == ((PyObject *)__pyx_memoryview_type)); __pyx_t_3 = (__pyx_t_2 != 0); if (!__pyx_t_3) { } else { __pyx_t_1 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = (__pyx_v_obj != Py_None); __pyx_t_2 = (__pyx_t_3 != 0); __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; if (__pyx_t_1) { /* "View.MemoryView":349 * self.flags = flags * if type(self) is memoryview or obj is not None: * __Pyx_GetBuffer(obj, &self.view, flags) # <<<<<<<<<<<<<< * if self.view.obj == NULL: * (<__pyx_buffer *> &self.view).obj = Py_None */ __pyx_t_4 = __Pyx_GetBuffer(__pyx_v_obj, (&__pyx_v_self->view), __pyx_v_flags); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 349, __pyx_L1_error) /* "View.MemoryView":350 * if type(self) is memoryview or obj is not None: * __Pyx_GetBuffer(obj, &self.view, flags) * if self.view.obj == NULL: # <<<<<<<<<<<<<< * (<__pyx_buffer *> &self.view).obj = Py_None * Py_INCREF(Py_None) */ __pyx_t_1 = ((((PyObject *)__pyx_v_self->view.obj) == NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":351 * __Pyx_GetBuffer(obj, &self.view, flags) * if self.view.obj == NULL: * (<__pyx_buffer *> &self.view).obj = Py_None # <<<<<<<<<<<<<< * Py_INCREF(Py_None) * */ ((Py_buffer *)(&__pyx_v_self->view))->obj = Py_None; /* "View.MemoryView":352 * if self.view.obj == NULL: * (<__pyx_buffer *> &self.view).obj = Py_None * Py_INCREF(Py_None) # <<<<<<<<<<<<<< * * global __pyx_memoryview_thread_locks_used */ Py_INCREF(Py_None); /* "View.MemoryView":350 * if type(self) is memoryview or obj is not None: * __Pyx_GetBuffer(obj, &self.view, flags) * if self.view.obj == NULL: # <<<<<<<<<<<<<< * (<__pyx_buffer *> &self.view).obj = Py_None * Py_INCREF(Py_None) */ } /* "View.MemoryView":348 * self.obj = obj * self.flags = flags * if type(self) is memoryview or obj is not None: # <<<<<<<<<<<<<< * __Pyx_GetBuffer(obj, &self.view, flags) * if self.view.obj == NULL: */ } /* "View.MemoryView":355 * * global __pyx_memoryview_thread_locks_used * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: # <<<<<<<<<<<<<< * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] * __pyx_memoryview_thread_locks_used += 1 */ __pyx_t_1 = ((__pyx_memoryview_thread_locks_used < 8) != 0); if (__pyx_t_1) { /* "View.MemoryView":356 * global __pyx_memoryview_thread_locks_used * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks_used += 1 * if self.lock is NULL: */ __pyx_v_self->lock = (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]); /* "View.MemoryView":357 * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] * __pyx_memoryview_thread_locks_used += 1 # <<<<<<<<<<<<<< * if self.lock is NULL: * self.lock = PyThread_allocate_lock() */ __pyx_memoryview_thread_locks_used = (__pyx_memoryview_thread_locks_used + 1); /* "View.MemoryView":355 * * global __pyx_memoryview_thread_locks_used * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: # <<<<<<<<<<<<<< * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] * __pyx_memoryview_thread_locks_used += 1 */ } /* "View.MemoryView":358 * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] * __pyx_memoryview_thread_locks_used += 1 * if self.lock is NULL: # <<<<<<<<<<<<<< * self.lock = PyThread_allocate_lock() * if self.lock is NULL: */ __pyx_t_1 = ((__pyx_v_self->lock == NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":359 * __pyx_memoryview_thread_locks_used += 1 * if self.lock is NULL: * self.lock = PyThread_allocate_lock() # <<<<<<<<<<<<<< * if self.lock is NULL: * raise MemoryError */ __pyx_v_self->lock = PyThread_allocate_lock(); /* "View.MemoryView":360 * if self.lock is NULL: * self.lock = PyThread_allocate_lock() * if self.lock is NULL: # <<<<<<<<<<<<<< * raise MemoryError * */ __pyx_t_1 = ((__pyx_v_self->lock == NULL) != 0); if (unlikely(__pyx_t_1)) { /* "View.MemoryView":361 * self.lock = PyThread_allocate_lock() * if self.lock is NULL: * raise MemoryError # <<<<<<<<<<<<<< * * if flags & PyBUF_FORMAT: */ PyErr_NoMemory(); __PYX_ERR(1, 361, __pyx_L1_error) /* "View.MemoryView":360 * if self.lock is NULL: * self.lock = PyThread_allocate_lock() * if self.lock is NULL: # <<<<<<<<<<<<<< * raise MemoryError * */ } /* "View.MemoryView":358 * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] * __pyx_memoryview_thread_locks_used += 1 * if self.lock is NULL: # <<<<<<<<<<<<<< * self.lock = PyThread_allocate_lock() * if self.lock is NULL: */ } /* "View.MemoryView":363 * raise MemoryError * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0); if (__pyx_t_1) { /* "View.MemoryView":364 * * if flags & PyBUF_FORMAT: * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') # <<<<<<<<<<<<<< * else: * self.dtype_is_object = dtype_is_object */ __pyx_t_2 = (((__pyx_v_self->view.format[0]) == 'O') != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L11_bool_binop_done; } __pyx_t_2 = (((__pyx_v_self->view.format[1]) == '\x00') != 0); __pyx_t_1 = __pyx_t_2; __pyx_L11_bool_binop_done:; __pyx_v_self->dtype_is_object = __pyx_t_1; /* "View.MemoryView":363 * raise MemoryError * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') * else: */ goto __pyx_L10; } /* "View.MemoryView":366 * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') * else: * self.dtype_is_object = dtype_is_object # <<<<<<<<<<<<<< * * self.acquisition_count_aligned_p = <__pyx_atomic_int *> align_pointer( */ /*else*/ { __pyx_v_self->dtype_is_object = __pyx_v_dtype_is_object; } __pyx_L10:; /* "View.MemoryView":368 * self.dtype_is_object = dtype_is_object * * self.acquisition_count_aligned_p = <__pyx_atomic_int *> align_pointer( # <<<<<<<<<<<<<< * &self.acquisition_count[0], sizeof(__pyx_atomic_int)) * self.typeinfo = NULL */ __pyx_v_self->acquisition_count_aligned_p = ((__pyx_atomic_int *)__pyx_align_pointer(((void *)(&(__pyx_v_self->acquisition_count[0]))), (sizeof(__pyx_atomic_int)))); /* "View.MemoryView":370 * self.acquisition_count_aligned_p = <__pyx_atomic_int *> align_pointer( * &self.acquisition_count[0], sizeof(__pyx_atomic_int)) * self.typeinfo = NULL # <<<<<<<<<<<<<< * * def __dealloc__(memoryview self): */ __pyx_v_self->typeinfo = NULL; /* "View.MemoryView":345 * cdef __Pyx_TypeInfo *typeinfo * * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): # <<<<<<<<<<<<<< * self.obj = obj * self.flags = flags */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("View.MemoryView.memoryview.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":372 * self.typeinfo = NULL * * def __dealloc__(memoryview self): # <<<<<<<<<<<<<< * if self.obj is not None: * __Pyx_ReleaseBuffer(&self.view) */ /* Python wrapper */ static void __pyx_memoryview___dealloc__(PyObject *__pyx_v_self); /*proto*/ static void __pyx_memoryview___dealloc__(PyObject *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(struct __pyx_memoryview_obj *__pyx_v_self) { int __pyx_v_i; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; int __pyx_t_5; PyThread_type_lock __pyx_t_6; PyThread_type_lock __pyx_t_7; __Pyx_RefNannySetupContext("__dealloc__", 0); /* "View.MemoryView":373 * * def __dealloc__(memoryview self): * if self.obj is not None: # <<<<<<<<<<<<<< * __Pyx_ReleaseBuffer(&self.view) * elif (<__pyx_buffer *> &self.view).obj == Py_None: */ __pyx_t_1 = (__pyx_v_self->obj != Py_None); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":374 * def __dealloc__(memoryview self): * if self.obj is not None: * __Pyx_ReleaseBuffer(&self.view) # <<<<<<<<<<<<<< * elif (<__pyx_buffer *> &self.view).obj == Py_None: * */ __Pyx_ReleaseBuffer((&__pyx_v_self->view)); /* "View.MemoryView":373 * * def __dealloc__(memoryview self): * if self.obj is not None: # <<<<<<<<<<<<<< * __Pyx_ReleaseBuffer(&self.view) * elif (<__pyx_buffer *> &self.view).obj == Py_None: */ goto __pyx_L3; } /* "View.MemoryView":375 * if self.obj is not None: * __Pyx_ReleaseBuffer(&self.view) * elif (<__pyx_buffer *> &self.view).obj == Py_None: # <<<<<<<<<<<<<< * * (<__pyx_buffer *> &self.view).obj = NULL */ __pyx_t_2 = ((((Py_buffer *)(&__pyx_v_self->view))->obj == Py_None) != 0); if (__pyx_t_2) { /* "View.MemoryView":377 * elif (<__pyx_buffer *> &self.view).obj == Py_None: * * (<__pyx_buffer *> &self.view).obj = NULL # <<<<<<<<<<<<<< * Py_DECREF(Py_None) * */ ((Py_buffer *)(&__pyx_v_self->view))->obj = NULL; /* "View.MemoryView":378 * * (<__pyx_buffer *> &self.view).obj = NULL * Py_DECREF(Py_None) # <<<<<<<<<<<<<< * * cdef int i */ Py_DECREF(Py_None); /* "View.MemoryView":375 * if self.obj is not None: * __Pyx_ReleaseBuffer(&self.view) * elif (<__pyx_buffer *> &self.view).obj == Py_None: # <<<<<<<<<<<<<< * * (<__pyx_buffer *> &self.view).obj = NULL */ } __pyx_L3:; /* "View.MemoryView":382 * cdef int i * global __pyx_memoryview_thread_locks_used * if self.lock != NULL: # <<<<<<<<<<<<<< * for i in range(__pyx_memoryview_thread_locks_used): * if __pyx_memoryview_thread_locks[i] is self.lock: */ __pyx_t_2 = ((__pyx_v_self->lock != NULL) != 0); if (__pyx_t_2) { /* "View.MemoryView":383 * global __pyx_memoryview_thread_locks_used * if self.lock != NULL: * for i in range(__pyx_memoryview_thread_locks_used): # <<<<<<<<<<<<<< * if __pyx_memoryview_thread_locks[i] is self.lock: * __pyx_memoryview_thread_locks_used -= 1 */ __pyx_t_3 = __pyx_memoryview_thread_locks_used; __pyx_t_4 = __pyx_t_3; for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_v_i = __pyx_t_5; /* "View.MemoryView":384 * if self.lock != NULL: * for i in range(__pyx_memoryview_thread_locks_used): * if __pyx_memoryview_thread_locks[i] is self.lock: # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks_used -= 1 * if i != __pyx_memoryview_thread_locks_used: */ __pyx_t_2 = (((__pyx_memoryview_thread_locks[__pyx_v_i]) == __pyx_v_self->lock) != 0); if (__pyx_t_2) { /* "View.MemoryView":385 * for i in range(__pyx_memoryview_thread_locks_used): * if __pyx_memoryview_thread_locks[i] is self.lock: * __pyx_memoryview_thread_locks_used -= 1 # <<<<<<<<<<<<<< * if i != __pyx_memoryview_thread_locks_used: * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( */ __pyx_memoryview_thread_locks_used = (__pyx_memoryview_thread_locks_used - 1); /* "View.MemoryView":386 * if __pyx_memoryview_thread_locks[i] is self.lock: * __pyx_memoryview_thread_locks_used -= 1 * if i != __pyx_memoryview_thread_locks_used: # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) */ __pyx_t_2 = ((__pyx_v_i != __pyx_memoryview_thread_locks_used) != 0); if (__pyx_t_2) { /* "View.MemoryView":388 * if i != __pyx_memoryview_thread_locks_used: * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) # <<<<<<<<<<<<<< * break * else: */ __pyx_t_6 = (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]); __pyx_t_7 = (__pyx_memoryview_thread_locks[__pyx_v_i]); /* "View.MemoryView":387 * __pyx_memoryview_thread_locks_used -= 1 * if i != __pyx_memoryview_thread_locks_used: * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) * break */ (__pyx_memoryview_thread_locks[__pyx_v_i]) = __pyx_t_6; (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]) = __pyx_t_7; /* "View.MemoryView":386 * if __pyx_memoryview_thread_locks[i] is self.lock: * __pyx_memoryview_thread_locks_used -= 1 * if i != __pyx_memoryview_thread_locks_used: # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) */ } /* "View.MemoryView":389 * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) * break # <<<<<<<<<<<<<< * else: * PyThread_free_lock(self.lock) */ goto __pyx_L6_break; /* "View.MemoryView":384 * if self.lock != NULL: * for i in range(__pyx_memoryview_thread_locks_used): * if __pyx_memoryview_thread_locks[i] is self.lock: # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks_used -= 1 * if i != __pyx_memoryview_thread_locks_used: */ } } /*else*/ { /* "View.MemoryView":391 * break * else: * PyThread_free_lock(self.lock) # <<<<<<<<<<<<<< * * cdef char *get_item_pointer(memoryview self, object index) except NULL: */ PyThread_free_lock(__pyx_v_self->lock); } __pyx_L6_break:; /* "View.MemoryView":382 * cdef int i * global __pyx_memoryview_thread_locks_used * if self.lock != NULL: # <<<<<<<<<<<<<< * for i in range(__pyx_memoryview_thread_locks_used): * if __pyx_memoryview_thread_locks[i] is self.lock: */ } /* "View.MemoryView":372 * self.typeinfo = NULL * * def __dealloc__(memoryview self): # <<<<<<<<<<<<<< * if self.obj is not None: * __Pyx_ReleaseBuffer(&self.view) */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "View.MemoryView":393 * PyThread_free_lock(self.lock) * * cdef char *get_item_pointer(memoryview self, object index) except NULL: # <<<<<<<<<<<<<< * cdef Py_ssize_t dim * cdef char *itemp = self.view.buf */ static char *__pyx_memoryview_get_item_pointer(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index) { Py_ssize_t __pyx_v_dim; char *__pyx_v_itemp; PyObject *__pyx_v_idx = NULL; char *__pyx_r; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; PyObject *__pyx_t_2 = NULL; Py_ssize_t __pyx_t_3; PyObject *(*__pyx_t_4)(PyObject *); PyObject *__pyx_t_5 = NULL; Py_ssize_t __pyx_t_6; char *__pyx_t_7; __Pyx_RefNannySetupContext("get_item_pointer", 0); /* "View.MemoryView":395 * cdef char *get_item_pointer(memoryview self, object index) except NULL: * cdef Py_ssize_t dim * cdef char *itemp = self.view.buf # <<<<<<<<<<<<<< * * for dim, idx in enumerate(index): */ __pyx_v_itemp = ((char *)__pyx_v_self->view.buf); /* "View.MemoryView":397 * cdef char *itemp = self.view.buf * * for dim, idx in enumerate(index): # <<<<<<<<<<<<<< * itemp = pybuffer_index(&self.view, itemp, idx, dim) * */ __pyx_t_1 = 0; if (likely(PyList_CheckExact(__pyx_v_index)) || PyTuple_CheckExact(__pyx_v_index)) { __pyx_t_2 = __pyx_v_index; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; __pyx_t_4 = NULL; } else { __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 397, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_4)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 397, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } else { if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(1, 397, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } } else { __pyx_t_5 = __pyx_t_4(__pyx_t_2); if (unlikely(!__pyx_t_5)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 397, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_5); } __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_5); __pyx_t_5 = 0; __pyx_v_dim = __pyx_t_1; __pyx_t_1 = (__pyx_t_1 + 1); /* "View.MemoryView":398 * * for dim, idx in enumerate(index): * itemp = pybuffer_index(&self.view, itemp, idx, dim) # <<<<<<<<<<<<<< * * return itemp */ __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_idx); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 398, __pyx_L1_error) __pyx_t_7 = __pyx_pybuffer_index((&__pyx_v_self->view), __pyx_v_itemp, __pyx_t_6, __pyx_v_dim); if (unlikely(__pyx_t_7 == ((char *)NULL))) __PYX_ERR(1, 398, __pyx_L1_error) __pyx_v_itemp = __pyx_t_7; /* "View.MemoryView":397 * cdef char *itemp = self.view.buf * * for dim, idx in enumerate(index): # <<<<<<<<<<<<<< * itemp = pybuffer_index(&self.view, itemp, idx, dim) * */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":400 * itemp = pybuffer_index(&self.view, itemp, idx, dim) * * return itemp # <<<<<<<<<<<<<< * * */ __pyx_r = __pyx_v_itemp; goto __pyx_L0; /* "View.MemoryView":393 * PyThread_free_lock(self.lock) * * cdef char *get_item_pointer(memoryview self, object index) except NULL: # <<<<<<<<<<<<<< * cdef Py_ssize_t dim * cdef char *itemp = self.view.buf */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.memoryview.get_item_pointer", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_idx); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":403 * * * def __getitem__(memoryview self, object index): # <<<<<<<<<<<<<< * if index is Ellipsis: * return self */ /* Python wrapper */ static PyObject *__pyx_memoryview___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index); /*proto*/ static PyObject *__pyx_memoryview___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v_index)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index) { PyObject *__pyx_v_have_slices = NULL; PyObject *__pyx_v_indices = NULL; char *__pyx_v_itemp; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; char *__pyx_t_6; __Pyx_RefNannySetupContext("__getitem__", 0); /* "View.MemoryView":404 * * def __getitem__(memoryview self, object index): * if index is Ellipsis: # <<<<<<<<<<<<<< * return self * */ __pyx_t_1 = (__pyx_v_index == __pyx_builtin_Ellipsis); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":405 * def __getitem__(memoryview self, object index): * if index is Ellipsis: * return self # <<<<<<<<<<<<<< * * have_slices, indices = _unellipsify(index, self.view.ndim) */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; /* "View.MemoryView":404 * * def __getitem__(memoryview self, object index): * if index is Ellipsis: # <<<<<<<<<<<<<< * return self * */ } /* "View.MemoryView":407 * return self * * have_slices, indices = _unellipsify(index, self.view.ndim) # <<<<<<<<<<<<<< * * cdef char *itemp */ __pyx_t_3 = _unellipsify(__pyx_v_index, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (likely(__pyx_t_3 != Py_None)) { PyObject* sequence = __pyx_t_3; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(1, 407, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); #else __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 407, __pyx_L1_error) } __pyx_v_have_slices = __pyx_t_4; __pyx_t_4 = 0; __pyx_v_indices = __pyx_t_5; __pyx_t_5 = 0; /* "View.MemoryView":410 * * cdef char *itemp * if have_slices: # <<<<<<<<<<<<<< * return memview_slice(self, indices) * else: */ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_have_slices); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(1, 410, __pyx_L1_error) if (__pyx_t_2) { /* "View.MemoryView":411 * cdef char *itemp * if have_slices: * return memview_slice(self, indices) # <<<<<<<<<<<<<< * else: * itemp = self.get_item_pointer(indices) */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = ((PyObject *)__pyx_memview_slice(__pyx_v_self, __pyx_v_indices)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* "View.MemoryView":410 * * cdef char *itemp * if have_slices: # <<<<<<<<<<<<<< * return memview_slice(self, indices) * else: */ } /* "View.MemoryView":413 * return memview_slice(self, indices) * else: * itemp = self.get_item_pointer(indices) # <<<<<<<<<<<<<< * return self.convert_item_to_object(itemp) * */ /*else*/ { __pyx_t_6 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->get_item_pointer(__pyx_v_self, __pyx_v_indices); if (unlikely(__pyx_t_6 == ((char *)NULL))) __PYX_ERR(1, 413, __pyx_L1_error) __pyx_v_itemp = __pyx_t_6; /* "View.MemoryView":414 * else: * itemp = self.get_item_pointer(indices) * return self.convert_item_to_object(itemp) # <<<<<<<<<<<<<< * * def __setitem__(memoryview self, object index, object value): */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->convert_item_to_object(__pyx_v_self, __pyx_v_itemp); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; } /* "View.MemoryView":403 * * * def __getitem__(memoryview self, object index): # <<<<<<<<<<<<<< * if index is Ellipsis: * return self */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.memoryview.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_have_slices); __Pyx_XDECREF(__pyx_v_indices); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":416 * return self.convert_item_to_object(itemp) * * def __setitem__(memoryview self, object index, object value): # <<<<<<<<<<<<<< * if self.view.readonly: * raise TypeError("Cannot assign to read-only memoryview") */ /* Python wrapper */ static int __pyx_memoryview___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /*proto*/ static int __pyx_memoryview___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v_index), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { PyObject *__pyx_v_have_slices = NULL; PyObject *__pyx_v_obj = NULL; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; __Pyx_RefNannySetupContext("__setitem__", 0); __Pyx_INCREF(__pyx_v_index); /* "View.MemoryView":417 * * def __setitem__(memoryview self, object index, object value): * if self.view.readonly: # <<<<<<<<<<<<<< * raise TypeError("Cannot assign to read-only memoryview") * */ __pyx_t_1 = (__pyx_v_self->view.readonly != 0); if (unlikely(__pyx_t_1)) { /* "View.MemoryView":418 * def __setitem__(memoryview self, object index, object value): * if self.view.readonly: * raise TypeError("Cannot assign to read-only memoryview") # <<<<<<<<<<<<<< * * have_slices, index = _unellipsify(index, self.view.ndim) */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__41, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 418, __pyx_L1_error) /* "View.MemoryView":417 * * def __setitem__(memoryview self, object index, object value): * if self.view.readonly: # <<<<<<<<<<<<<< * raise TypeError("Cannot assign to read-only memoryview") * */ } /* "View.MemoryView":420 * raise TypeError("Cannot assign to read-only memoryview") * * have_slices, index = _unellipsify(index, self.view.ndim) # <<<<<<<<<<<<<< * * if have_slices: */ __pyx_t_2 = _unellipsify(__pyx_v_index, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (likely(__pyx_t_2 != Py_None)) { PyObject* sequence = __pyx_t_2; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(1, 420, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); #else __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 420, __pyx_L1_error) } __pyx_v_have_slices = __pyx_t_3; __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_index, __pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":422 * have_slices, index = _unellipsify(index, self.view.ndim) * * if have_slices: # <<<<<<<<<<<<<< * obj = self.is_slice(value) * if obj: */ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_have_slices); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 422, __pyx_L1_error) if (__pyx_t_1) { /* "View.MemoryView":423 * * if have_slices: * obj = self.is_slice(value) # <<<<<<<<<<<<<< * if obj: * self.setitem_slice_assignment(self[index], obj) */ __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->is_slice(__pyx_v_self, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_obj = __pyx_t_2; __pyx_t_2 = 0; /* "View.MemoryView":424 * if have_slices: * obj = self.is_slice(value) * if obj: # <<<<<<<<<<<<<< * self.setitem_slice_assignment(self[index], obj) * else: */ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_obj); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 424, __pyx_L1_error) if (__pyx_t_1) { /* "View.MemoryView":425 * obj = self.is_slice(value) * if obj: * self.setitem_slice_assignment(self[index], obj) # <<<<<<<<<<<<<< * else: * self.setitem_slice_assign_scalar(self[index], value) */ __pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self), __pyx_v_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_slice_assignment(__pyx_v_self, __pyx_t_2, __pyx_v_obj); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":424 * if have_slices: * obj = self.is_slice(value) * if obj: # <<<<<<<<<<<<<< * self.setitem_slice_assignment(self[index], obj) * else: */ goto __pyx_L5; } /* "View.MemoryView":427 * self.setitem_slice_assignment(self[index], obj) * else: * self.setitem_slice_assign_scalar(self[index], value) # <<<<<<<<<<<<<< * else: * self.setitem_indexed(index, value) */ /*else*/ { __pyx_t_4 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self), __pyx_v_index); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_memoryview_type))))) __PYX_ERR(1, 427, __pyx_L1_error) __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_slice_assign_scalar(__pyx_v_self, ((struct __pyx_memoryview_obj *)__pyx_t_4), __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_L5:; /* "View.MemoryView":422 * have_slices, index = _unellipsify(index, self.view.ndim) * * if have_slices: # <<<<<<<<<<<<<< * obj = self.is_slice(value) * if obj: */ goto __pyx_L4; } /* "View.MemoryView":429 * self.setitem_slice_assign_scalar(self[index], value) * else: * self.setitem_indexed(index, value) # <<<<<<<<<<<<<< * * cdef is_slice(self, obj): */ /*else*/ { __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_indexed(__pyx_v_self, __pyx_v_index, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 429, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_L4:; /* "View.MemoryView":416 * return self.convert_item_to_object(itemp) * * def __setitem__(memoryview self, object index, object value): # <<<<<<<<<<<<<< * if self.view.readonly: * raise TypeError("Cannot assign to read-only memoryview") */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("View.MemoryView.memoryview.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_have_slices); __Pyx_XDECREF(__pyx_v_obj); __Pyx_XDECREF(__pyx_v_index); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":431 * self.setitem_indexed(index, value) * * cdef is_slice(self, obj): # <<<<<<<<<<<<<< * if not isinstance(obj, memoryview): * try: */ static PyObject *__pyx_memoryview_is_slice(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; int __pyx_t_9; __Pyx_RefNannySetupContext("is_slice", 0); __Pyx_INCREF(__pyx_v_obj); /* "View.MemoryView":432 * * cdef is_slice(self, obj): * if not isinstance(obj, memoryview): # <<<<<<<<<<<<<< * try: * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, */ __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_obj, __pyx_memoryview_type); __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":433 * cdef is_slice(self, obj): * if not isinstance(obj, memoryview): * try: # <<<<<<<<<<<<<< * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, * self.dtype_is_object) */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_5); /*try:*/ { /* "View.MemoryView":434 * if not isinstance(obj, memoryview): * try: * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, # <<<<<<<<<<<<<< * self.dtype_is_object) * except TypeError: */ __pyx_t_6 = __Pyx_PyInt_From_int(((__pyx_v_self->flags & (~PyBUF_WRITABLE)) | PyBUF_ANY_CONTIGUOUS)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 434, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); /* "View.MemoryView":435 * try: * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, * self.dtype_is_object) # <<<<<<<<<<<<<< * except TypeError: * return None */ __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_self->dtype_is_object); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 435, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); /* "View.MemoryView":434 * if not isinstance(obj, memoryview): * try: * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, # <<<<<<<<<<<<<< * self.dtype_is_object) * except TypeError: */ __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 434, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_v_obj); __Pyx_GIVEREF(__pyx_v_obj); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_obj); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7); __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_8, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 434, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF_SET(__pyx_v_obj, __pyx_t_7); __pyx_t_7 = 0; /* "View.MemoryView":433 * cdef is_slice(self, obj): * if not isinstance(obj, memoryview): * try: # <<<<<<<<<<<<<< * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, * self.dtype_is_object) */ } __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; /* "View.MemoryView":436 * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, * self.dtype_is_object) * except TypeError: # <<<<<<<<<<<<<< * return None * */ __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError); if (__pyx_t_9) { __Pyx_AddTraceback("View.MemoryView.memoryview.is_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_6) < 0) __PYX_ERR(1, 436, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_6); /* "View.MemoryView":437 * self.dtype_is_object) * except TypeError: * return None # <<<<<<<<<<<<<< * * return obj */ __Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L7_except_return; } goto __pyx_L6_except_error; __pyx_L6_except_error:; /* "View.MemoryView":433 * cdef is_slice(self, obj): * if not isinstance(obj, memoryview): * try: # <<<<<<<<<<<<<< * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, * self.dtype_is_object) */ __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5); goto __pyx_L1_error; __pyx_L7_except_return:; __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5); goto __pyx_L0; __pyx_L9_try_end:; } /* "View.MemoryView":432 * * cdef is_slice(self, obj): * if not isinstance(obj, memoryview): # <<<<<<<<<<<<<< * try: * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, */ } /* "View.MemoryView":439 * return None * * return obj # <<<<<<<<<<<<<< * * cdef setitem_slice_assignment(self, dst, src): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_obj); __pyx_r = __pyx_v_obj; goto __pyx_L0; /* "View.MemoryView":431 * self.setitem_indexed(index, value) * * cdef is_slice(self, obj): # <<<<<<<<<<<<<< * if not isinstance(obj, memoryview): * try: */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("View.MemoryView.memoryview.is_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_obj); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":441 * return obj * * cdef setitem_slice_assignment(self, dst, src): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice dst_slice * cdef __Pyx_memviewslice src_slice */ static PyObject *__pyx_memoryview_setitem_slice_assignment(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_dst, PyObject *__pyx_v_src) { __Pyx_memviewslice __pyx_v_dst_slice; __Pyx_memviewslice __pyx_v_src_slice; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; __Pyx_RefNannySetupContext("setitem_slice_assignment", 0); /* "View.MemoryView":445 * cdef __Pyx_memviewslice src_slice * * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], # <<<<<<<<<<<<<< * get_slice_from_memview(dst, &dst_slice)[0], * src.ndim, dst.ndim, self.dtype_is_object) */ if (!(likely(((__pyx_v_src) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_src, __pyx_memoryview_type))))) __PYX_ERR(1, 445, __pyx_L1_error) /* "View.MemoryView":446 * * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], * get_slice_from_memview(dst, &dst_slice)[0], # <<<<<<<<<<<<<< * src.ndim, dst.ndim, self.dtype_is_object) * */ if (!(likely(((__pyx_v_dst) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_dst, __pyx_memoryview_type))))) __PYX_ERR(1, 446, __pyx_L1_error) /* "View.MemoryView":447 * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], * get_slice_from_memview(dst, &dst_slice)[0], * src.ndim, dst.ndim, self.dtype_is_object) # <<<<<<<<<<<<<< * * cdef setitem_slice_assign_scalar(self, memoryview dst, value): */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_src, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 447, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dst, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 447, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "View.MemoryView":445 * cdef __Pyx_memviewslice src_slice * * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], # <<<<<<<<<<<<<< * get_slice_from_memview(dst, &dst_slice)[0], * src.ndim, dst.ndim, self.dtype_is_object) */ __pyx_t_4 = __pyx_memoryview_copy_contents((__pyx_memoryview_get_slice_from_memoryview(((struct __pyx_memoryview_obj *)__pyx_v_src), (&__pyx_v_src_slice))[0]), (__pyx_memoryview_get_slice_from_memoryview(((struct __pyx_memoryview_obj *)__pyx_v_dst), (&__pyx_v_dst_slice))[0]), __pyx_t_2, __pyx_t_3, __pyx_v_self->dtype_is_object); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 445, __pyx_L1_error) /* "View.MemoryView":441 * return obj * * cdef setitem_slice_assignment(self, dst, src): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice dst_slice * cdef __Pyx_memviewslice src_slice */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_slice_assignment", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":449 * src.ndim, dst.ndim, self.dtype_is_object) * * cdef setitem_slice_assign_scalar(self, memoryview dst, value): # <<<<<<<<<<<<<< * cdef int array[128] * cdef void *tmp = NULL */ static PyObject *__pyx_memoryview_setitem_slice_assign_scalar(struct __pyx_memoryview_obj *__pyx_v_self, struct __pyx_memoryview_obj *__pyx_v_dst, PyObject *__pyx_v_value) { int __pyx_v_array[0x80]; void *__pyx_v_tmp; void *__pyx_v_item; __Pyx_memviewslice *__pyx_v_dst_slice; __Pyx_memviewslice __pyx_v_tmp_slice; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_t_3; int __pyx_t_4; char const *__pyx_t_5; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; __Pyx_RefNannySetupContext("setitem_slice_assign_scalar", 0); /* "View.MemoryView":451 * cdef setitem_slice_assign_scalar(self, memoryview dst, value): * cdef int array[128] * cdef void *tmp = NULL # <<<<<<<<<<<<<< * cdef void *item * */ __pyx_v_tmp = NULL; /* "View.MemoryView":456 * cdef __Pyx_memviewslice *dst_slice * cdef __Pyx_memviewslice tmp_slice * dst_slice = get_slice_from_memview(dst, &tmp_slice) # <<<<<<<<<<<<<< * * if self.view.itemsize > sizeof(array): */ __pyx_v_dst_slice = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_dst, (&__pyx_v_tmp_slice)); /* "View.MemoryView":458 * dst_slice = get_slice_from_memview(dst, &tmp_slice) * * if self.view.itemsize > sizeof(array): # <<<<<<<<<<<<<< * tmp = PyMem_Malloc(self.view.itemsize) * if tmp == NULL: */ __pyx_t_1 = ((((size_t)__pyx_v_self->view.itemsize) > (sizeof(__pyx_v_array))) != 0); if (__pyx_t_1) { /* "View.MemoryView":459 * * if self.view.itemsize > sizeof(array): * tmp = PyMem_Malloc(self.view.itemsize) # <<<<<<<<<<<<<< * if tmp == NULL: * raise MemoryError */ __pyx_v_tmp = PyMem_Malloc(__pyx_v_self->view.itemsize); /* "View.MemoryView":460 * if self.view.itemsize > sizeof(array): * tmp = PyMem_Malloc(self.view.itemsize) * if tmp == NULL: # <<<<<<<<<<<<<< * raise MemoryError * item = tmp */ __pyx_t_1 = ((__pyx_v_tmp == NULL) != 0); if (unlikely(__pyx_t_1)) { /* "View.MemoryView":461 * tmp = PyMem_Malloc(self.view.itemsize) * if tmp == NULL: * raise MemoryError # <<<<<<<<<<<<<< * item = tmp * else: */ PyErr_NoMemory(); __PYX_ERR(1, 461, __pyx_L1_error) /* "View.MemoryView":460 * if self.view.itemsize > sizeof(array): * tmp = PyMem_Malloc(self.view.itemsize) * if tmp == NULL: # <<<<<<<<<<<<<< * raise MemoryError * item = tmp */ } /* "View.MemoryView":462 * if tmp == NULL: * raise MemoryError * item = tmp # <<<<<<<<<<<<<< * else: * item = array */ __pyx_v_item = __pyx_v_tmp; /* "View.MemoryView":458 * dst_slice = get_slice_from_memview(dst, &tmp_slice) * * if self.view.itemsize > sizeof(array): # <<<<<<<<<<<<<< * tmp = PyMem_Malloc(self.view.itemsize) * if tmp == NULL: */ goto __pyx_L3; } /* "View.MemoryView":464 * item = tmp * else: * item = array # <<<<<<<<<<<<<< * * try: */ /*else*/ { __pyx_v_item = ((void *)__pyx_v_array); } __pyx_L3:; /* "View.MemoryView":466 * item = array * * try: # <<<<<<<<<<<<<< * if self.dtype_is_object: * ( item)[0] = value */ /*try:*/ { /* "View.MemoryView":467 * * try: * if self.dtype_is_object: # <<<<<<<<<<<<<< * ( item)[0] = value * else: */ __pyx_t_1 = (__pyx_v_self->dtype_is_object != 0); if (__pyx_t_1) { /* "View.MemoryView":468 * try: * if self.dtype_is_object: * ( item)[0] = value # <<<<<<<<<<<<<< * else: * self.assign_item_from_object( item, value) */ (((PyObject **)__pyx_v_item)[0]) = ((PyObject *)__pyx_v_value); /* "View.MemoryView":467 * * try: * if self.dtype_is_object: # <<<<<<<<<<<<<< * ( item)[0] = value * else: */ goto __pyx_L8; } /* "View.MemoryView":470 * ( item)[0] = value * else: * self.assign_item_from_object( item, value) # <<<<<<<<<<<<<< * * */ /*else*/ { __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->assign_item_from_object(__pyx_v_self, ((char *)__pyx_v_item), __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 470, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_L8:; /* "View.MemoryView":474 * * * if self.view.suboffsets != NULL: # <<<<<<<<<<<<<< * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, */ __pyx_t_1 = ((__pyx_v_self->view.suboffsets != NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":475 * * if self.view.suboffsets != NULL: * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) # <<<<<<<<<<<<<< * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, * item, self.dtype_is_object) */ __pyx_t_2 = assert_direct_dimensions(__pyx_v_self->view.suboffsets, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 475, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":474 * * * if self.view.suboffsets != NULL: # <<<<<<<<<<<<<< * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, */ } /* "View.MemoryView":476 * if self.view.suboffsets != NULL: * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, # <<<<<<<<<<<<<< * item, self.dtype_is_object) * finally: */ __pyx_memoryview_slice_assign_scalar(__pyx_v_dst_slice, __pyx_v_dst->view.ndim, __pyx_v_self->view.itemsize, __pyx_v_item, __pyx_v_self->dtype_is_object); } /* "View.MemoryView":479 * item, self.dtype_is_object) * finally: * PyMem_Free(tmp) # <<<<<<<<<<<<<< * * cdef setitem_indexed(self, index, value): */ /*finally:*/ { /*normal exit:*/{ PyMem_Free(__pyx_v_tmp); goto __pyx_L7; } __pyx_L6_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { PyMem_Free(__pyx_v_tmp); } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); } __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L7:; } /* "View.MemoryView":449 * src.ndim, dst.ndim, self.dtype_is_object) * * cdef setitem_slice_assign_scalar(self, memoryview dst, value): # <<<<<<<<<<<<<< * cdef int array[128] * cdef void *tmp = NULL */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_slice_assign_scalar", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":481 * PyMem_Free(tmp) * * cdef setitem_indexed(self, index, value): # <<<<<<<<<<<<<< * cdef char *itemp = self.get_item_pointer(index) * self.assign_item_from_object(itemp, value) */ static PyObject *__pyx_memoryview_setitem_indexed(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { char *__pyx_v_itemp; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations char *__pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("setitem_indexed", 0); /* "View.MemoryView":482 * * cdef setitem_indexed(self, index, value): * cdef char *itemp = self.get_item_pointer(index) # <<<<<<<<<<<<<< * self.assign_item_from_object(itemp, value) * */ __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->get_item_pointer(__pyx_v_self, __pyx_v_index); if (unlikely(__pyx_t_1 == ((char *)NULL))) __PYX_ERR(1, 482, __pyx_L1_error) __pyx_v_itemp = __pyx_t_1; /* "View.MemoryView":483 * cdef setitem_indexed(self, index, value): * cdef char *itemp = self.get_item_pointer(index) * self.assign_item_from_object(itemp, value) # <<<<<<<<<<<<<< * * cdef convert_item_to_object(self, char *itemp): */ __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->assign_item_from_object(__pyx_v_self, __pyx_v_itemp, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":481 * PyMem_Free(tmp) * * cdef setitem_indexed(self, index, value): # <<<<<<<<<<<<<< * cdef char *itemp = self.get_item_pointer(index) * self.assign_item_from_object(itemp, value) */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_indexed", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":485 * self.assign_item_from_object(itemp, value) * * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" */ static PyObject *__pyx_memoryview_convert_item_to_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp) { PyObject *__pyx_v_struct = NULL; PyObject *__pyx_v_bytesitem = 0; PyObject *__pyx_v_result = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; PyObject *__pyx_t_9 = NULL; size_t __pyx_t_10; int __pyx_t_11; __Pyx_RefNannySetupContext("convert_item_to_object", 0); /* "View.MemoryView":488 * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" * import struct # <<<<<<<<<<<<<< * cdef bytes bytesitem * */ __pyx_t_1 = __Pyx_Import(__pyx_n_s_struct, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 488, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_struct = __pyx_t_1; __pyx_t_1 = 0; /* "View.MemoryView":491 * cdef bytes bytesitem * * bytesitem = itemp[:self.view.itemsize] # <<<<<<<<<<<<<< * try: * result = struct.unpack(self.view.format, bytesitem) */ __pyx_t_1 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_itemp + 0, __pyx_v_self->view.itemsize - 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_bytesitem = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "View.MemoryView":492 * * bytesitem = itemp[:self.view.itemsize] * try: # <<<<<<<<<<<<<< * result = struct.unpack(self.view.format, bytesitem) * except struct.error: */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "View.MemoryView":493 * bytesitem = itemp[:self.view.itemsize] * try: * result = struct.unpack(self.view.format, bytesitem) # <<<<<<<<<<<<<< * except struct.error: * raise ValueError("Unable to convert item to object") */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_unpack); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 493, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 493, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_6, __pyx_v_bytesitem}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 493, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_6, __pyx_v_bytesitem}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 493, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif { __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 493, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_6); __Pyx_INCREF(__pyx_v_bytesitem); __Pyx_GIVEREF(__pyx_v_bytesitem); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_bytesitem); __pyx_t_6 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 493, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_result = __pyx_t_1; __pyx_t_1 = 0; /* "View.MemoryView":492 * * bytesitem = itemp[:self.view.itemsize] * try: # <<<<<<<<<<<<<< * result = struct.unpack(self.view.format, bytesitem) * except struct.error: */ } /* "View.MemoryView":497 * raise ValueError("Unable to convert item to object") * else: * if len(self.view.format) == 1: # <<<<<<<<<<<<<< * return result[0] * return result */ /*else:*/ { __pyx_t_10 = strlen(__pyx_v_self->view.format); __pyx_t_11 = ((__pyx_t_10 == 1) != 0); if (__pyx_t_11) { /* "View.MemoryView":498 * else: * if len(self.view.format) == 1: * return result[0] # <<<<<<<<<<<<<< * return result * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_result, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 498, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L6_except_return; /* "View.MemoryView":497 * raise ValueError("Unable to convert item to object") * else: * if len(self.view.format) == 1: # <<<<<<<<<<<<<< * return result[0] * return result */ } /* "View.MemoryView":499 * if len(self.view.format) == 1: * return result[0] * return result # <<<<<<<<<<<<<< * * cdef assign_item_from_object(self, char *itemp, object value): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_result); __pyx_r = __pyx_v_result; goto __pyx_L6_except_return; } __pyx_L3_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; /* "View.MemoryView":494 * try: * result = struct.unpack(self.view.format, bytesitem) * except struct.error: # <<<<<<<<<<<<<< * raise ValueError("Unable to convert item to object") * else: */ __Pyx_ErrFetch(&__pyx_t_1, &__pyx_t_5, &__pyx_t_9); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_error); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 494, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_8 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_1, __pyx_t_6); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_ErrRestore(__pyx_t_1, __pyx_t_5, __pyx_t_9); __pyx_t_1 = 0; __pyx_t_5 = 0; __pyx_t_9 = 0; if (__pyx_t_8) { __Pyx_AddTraceback("View.MemoryView.memoryview.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_5, &__pyx_t_1) < 0) __PYX_ERR(1, 494, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_1); /* "View.MemoryView":495 * result = struct.unpack(self.view.format, bytesitem) * except struct.error: * raise ValueError("Unable to convert item to object") # <<<<<<<<<<<<<< * else: * if len(self.view.format) == 1: */ __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__42, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 495, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(1, 495, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; /* "View.MemoryView":492 * * bytesitem = itemp[:self.view.itemsize] * try: # <<<<<<<<<<<<<< * result = struct.unpack(self.view.format, bytesitem) * except struct.error: */ __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L6_except_return:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L0; } /* "View.MemoryView":485 * self.assign_item_from_object(itemp, value) * * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("View.MemoryView.memoryview.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_struct); __Pyx_XDECREF(__pyx_v_bytesitem); __Pyx_XDECREF(__pyx_v_result); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":501 * return result * * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" */ static PyObject *__pyx_memoryview_assign_item_from_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value) { PyObject *__pyx_v_struct = NULL; char __pyx_v_c; PyObject *__pyx_v_bytesvalue = 0; Py_ssize_t __pyx_v_i; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_t_7; PyObject *__pyx_t_8 = NULL; Py_ssize_t __pyx_t_9; PyObject *__pyx_t_10 = NULL; char *__pyx_t_11; char *__pyx_t_12; char *__pyx_t_13; char *__pyx_t_14; __Pyx_RefNannySetupContext("assign_item_from_object", 0); /* "View.MemoryView":504 * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" * import struct # <<<<<<<<<<<<<< * cdef char c * cdef bytes bytesvalue */ __pyx_t_1 = __Pyx_Import(__pyx_n_s_struct, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 504, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_struct = __pyx_t_1; __pyx_t_1 = 0; /* "View.MemoryView":509 * cdef Py_ssize_t i * * if isinstance(value, tuple): # <<<<<<<<<<<<<< * bytesvalue = struct.pack(self.view.format, *value) * else: */ __pyx_t_2 = PyTuple_Check(__pyx_v_value); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* "View.MemoryView":510 * * if isinstance(value, tuple): * bytesvalue = struct.pack(self.view.format, *value) # <<<<<<<<<<<<<< * else: * bytesvalue = struct.pack(self.view.format, value) */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_pack); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_v_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyNumber_Add(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(1, 510, __pyx_L1_error) __pyx_v_bytesvalue = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":509 * cdef Py_ssize_t i * * if isinstance(value, tuple): # <<<<<<<<<<<<<< * bytesvalue = struct.pack(self.view.format, *value) * else: */ goto __pyx_L3; } /* "View.MemoryView":512 * bytesvalue = struct.pack(self.view.format, *value) * else: * bytesvalue = struct.pack(self.view.format, value) # <<<<<<<<<<<<<< * * for i, c in enumerate(bytesvalue): */ /*else*/ { __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_pack); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_7 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_1, __pyx_v_value}; __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 512, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_1, __pyx_v_value}; __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 512, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_1); __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_value); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(1, 512, __pyx_L1_error) __pyx_v_bytesvalue = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; } __pyx_L3:; /* "View.MemoryView":514 * bytesvalue = struct.pack(self.view.format, value) * * for i, c in enumerate(bytesvalue): # <<<<<<<<<<<<<< * itemp[i] = c * */ __pyx_t_9 = 0; if (unlikely(__pyx_v_bytesvalue == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' is not iterable"); __PYX_ERR(1, 514, __pyx_L1_error) } __Pyx_INCREF(__pyx_v_bytesvalue); __pyx_t_10 = __pyx_v_bytesvalue; __pyx_t_12 = PyBytes_AS_STRING(__pyx_t_10); __pyx_t_13 = (__pyx_t_12 + PyBytes_GET_SIZE(__pyx_t_10)); for (__pyx_t_14 = __pyx_t_12; __pyx_t_14 < __pyx_t_13; __pyx_t_14++) { __pyx_t_11 = __pyx_t_14; __pyx_v_c = (__pyx_t_11[0]); /* "View.MemoryView":515 * * for i, c in enumerate(bytesvalue): * itemp[i] = c # <<<<<<<<<<<<<< * * @cname('getbuffer') */ __pyx_v_i = __pyx_t_9; /* "View.MemoryView":514 * bytesvalue = struct.pack(self.view.format, value) * * for i, c in enumerate(bytesvalue): # <<<<<<<<<<<<<< * itemp[i] = c * */ __pyx_t_9 = (__pyx_t_9 + 1); /* "View.MemoryView":515 * * for i, c in enumerate(bytesvalue): * itemp[i] = c # <<<<<<<<<<<<<< * * @cname('getbuffer') */ (__pyx_v_itemp[__pyx_v_i]) = __pyx_v_c; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; /* "View.MemoryView":501 * return result * * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("View.MemoryView.memoryview.assign_item_from_object", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_struct); __Pyx_XDECREF(__pyx_v_bytesvalue); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":518 * * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< * if flags & PyBUF_WRITABLE and self.view.readonly: * raise ValueError("Cannot create writable memory view from read-only memoryview") */ /* Python wrapper */ static CYTHON_UNUSED int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ static CYTHON_UNUSED int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(struct __pyx_memoryview_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; Py_ssize_t *__pyx_t_4; char *__pyx_t_5; void *__pyx_t_6; int __pyx_t_7; Py_ssize_t __pyx_t_8; if (__pyx_v_info == NULL) { PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); return -1; } __Pyx_RefNannySetupContext("__getbuffer__", 0); __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); __Pyx_GIVEREF(__pyx_v_info->obj); /* "View.MemoryView":519 * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): * if flags & PyBUF_WRITABLE and self.view.readonly: # <<<<<<<<<<<<<< * raise ValueError("Cannot create writable memory view from read-only memoryview") * */ __pyx_t_2 = ((__pyx_v_flags & PyBUF_WRITABLE) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L4_bool_binop_done; } __pyx_t_2 = (__pyx_v_self->view.readonly != 0); __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; if (unlikely(__pyx_t_1)) { /* "View.MemoryView":520 * def __getbuffer__(self, Py_buffer *info, int flags): * if flags & PyBUF_WRITABLE and self.view.readonly: * raise ValueError("Cannot create writable memory view from read-only memoryview") # <<<<<<<<<<<<<< * * if flags & PyBUF_ND: */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__43, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 520, __pyx_L1_error) /* "View.MemoryView":519 * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): * if flags & PyBUF_WRITABLE and self.view.readonly: # <<<<<<<<<<<<<< * raise ValueError("Cannot create writable memory view from read-only memoryview") * */ } /* "View.MemoryView":522 * raise ValueError("Cannot create writable memory view from read-only memoryview") * * if flags & PyBUF_ND: # <<<<<<<<<<<<<< * info.shape = self.view.shape * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_ND) != 0); if (__pyx_t_1) { /* "View.MemoryView":523 * * if flags & PyBUF_ND: * info.shape = self.view.shape # <<<<<<<<<<<<<< * else: * info.shape = NULL */ __pyx_t_4 = __pyx_v_self->view.shape; __pyx_v_info->shape = __pyx_t_4; /* "View.MemoryView":522 * raise ValueError("Cannot create writable memory view from read-only memoryview") * * if flags & PyBUF_ND: # <<<<<<<<<<<<<< * info.shape = self.view.shape * else: */ goto __pyx_L6; } /* "View.MemoryView":525 * info.shape = self.view.shape * else: * info.shape = NULL # <<<<<<<<<<<<<< * * if flags & PyBUF_STRIDES: */ /*else*/ { __pyx_v_info->shape = NULL; } __pyx_L6:; /* "View.MemoryView":527 * info.shape = NULL * * if flags & PyBUF_STRIDES: # <<<<<<<<<<<<<< * info.strides = self.view.strides * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_STRIDES) != 0); if (__pyx_t_1) { /* "View.MemoryView":528 * * if flags & PyBUF_STRIDES: * info.strides = self.view.strides # <<<<<<<<<<<<<< * else: * info.strides = NULL */ __pyx_t_4 = __pyx_v_self->view.strides; __pyx_v_info->strides = __pyx_t_4; /* "View.MemoryView":527 * info.shape = NULL * * if flags & PyBUF_STRIDES: # <<<<<<<<<<<<<< * info.strides = self.view.strides * else: */ goto __pyx_L7; } /* "View.MemoryView":530 * info.strides = self.view.strides * else: * info.strides = NULL # <<<<<<<<<<<<<< * * if flags & PyBUF_INDIRECT: */ /*else*/ { __pyx_v_info->strides = NULL; } __pyx_L7:; /* "View.MemoryView":532 * info.strides = NULL * * if flags & PyBUF_INDIRECT: # <<<<<<<<<<<<<< * info.suboffsets = self.view.suboffsets * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_INDIRECT) != 0); if (__pyx_t_1) { /* "View.MemoryView":533 * * if flags & PyBUF_INDIRECT: * info.suboffsets = self.view.suboffsets # <<<<<<<<<<<<<< * else: * info.suboffsets = NULL */ __pyx_t_4 = __pyx_v_self->view.suboffsets; __pyx_v_info->suboffsets = __pyx_t_4; /* "View.MemoryView":532 * info.strides = NULL * * if flags & PyBUF_INDIRECT: # <<<<<<<<<<<<<< * info.suboffsets = self.view.suboffsets * else: */ goto __pyx_L8; } /* "View.MemoryView":535 * info.suboffsets = self.view.suboffsets * else: * info.suboffsets = NULL # <<<<<<<<<<<<<< * * if flags & PyBUF_FORMAT: */ /*else*/ { __pyx_v_info->suboffsets = NULL; } __pyx_L8:; /* "View.MemoryView":537 * info.suboffsets = NULL * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * info.format = self.view.format * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0); if (__pyx_t_1) { /* "View.MemoryView":538 * * if flags & PyBUF_FORMAT: * info.format = self.view.format # <<<<<<<<<<<<<< * else: * info.format = NULL */ __pyx_t_5 = __pyx_v_self->view.format; __pyx_v_info->format = __pyx_t_5; /* "View.MemoryView":537 * info.suboffsets = NULL * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * info.format = self.view.format * else: */ goto __pyx_L9; } /* "View.MemoryView":540 * info.format = self.view.format * else: * info.format = NULL # <<<<<<<<<<<<<< * * info.buf = self.view.buf */ /*else*/ { __pyx_v_info->format = NULL; } __pyx_L9:; /* "View.MemoryView":542 * info.format = NULL * * info.buf = self.view.buf # <<<<<<<<<<<<<< * info.ndim = self.view.ndim * info.itemsize = self.view.itemsize */ __pyx_t_6 = __pyx_v_self->view.buf; __pyx_v_info->buf = __pyx_t_6; /* "View.MemoryView":543 * * info.buf = self.view.buf * info.ndim = self.view.ndim # <<<<<<<<<<<<<< * info.itemsize = self.view.itemsize * info.len = self.view.len */ __pyx_t_7 = __pyx_v_self->view.ndim; __pyx_v_info->ndim = __pyx_t_7; /* "View.MemoryView":544 * info.buf = self.view.buf * info.ndim = self.view.ndim * info.itemsize = self.view.itemsize # <<<<<<<<<<<<<< * info.len = self.view.len * info.readonly = self.view.readonly */ __pyx_t_8 = __pyx_v_self->view.itemsize; __pyx_v_info->itemsize = __pyx_t_8; /* "View.MemoryView":545 * info.ndim = self.view.ndim * info.itemsize = self.view.itemsize * info.len = self.view.len # <<<<<<<<<<<<<< * info.readonly = self.view.readonly * info.obj = self */ __pyx_t_8 = __pyx_v_self->view.len; __pyx_v_info->len = __pyx_t_8; /* "View.MemoryView":546 * info.itemsize = self.view.itemsize * info.len = self.view.len * info.readonly = self.view.readonly # <<<<<<<<<<<<<< * info.obj = self * */ __pyx_t_1 = __pyx_v_self->view.readonly; __pyx_v_info->readonly = __pyx_t_1; /* "View.MemoryView":547 * info.len = self.view.len * info.readonly = self.view.readonly * info.obj = self # <<<<<<<<<<<<<< * * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") */ __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = ((PyObject *)__pyx_v_self); /* "View.MemoryView":518 * * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< * if flags & PyBUF_WRITABLE and self.view.readonly: * raise ValueError("Cannot create writable memory view from read-only memoryview") */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; if (__pyx_v_info->obj != NULL) { __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; } goto __pyx_L2; __pyx_L0:; if (__pyx_v_info->obj == Py_None) { __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; } __pyx_L2:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":553 * * @property * def T(self): # <<<<<<<<<<<<<< * cdef _memoryviewslice result = memoryview_copy(self) * transpose_memslice(&result.from_slice) */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(struct __pyx_memoryview_obj *__pyx_v_self) { struct __pyx_memoryviewslice_obj *__pyx_v_result = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":554 * @property * def T(self): * cdef _memoryviewslice result = memoryview_copy(self) # <<<<<<<<<<<<<< * transpose_memslice(&result.from_slice) * return result */ __pyx_t_1 = __pyx_memoryview_copy_object(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_memoryviewslice_type))))) __PYX_ERR(1, 554, __pyx_L1_error) __pyx_v_result = ((struct __pyx_memoryviewslice_obj *)__pyx_t_1); __pyx_t_1 = 0; /* "View.MemoryView":555 * def T(self): * cdef _memoryviewslice result = memoryview_copy(self) * transpose_memslice(&result.from_slice) # <<<<<<<<<<<<<< * return result * */ __pyx_t_2 = __pyx_memslice_transpose((&__pyx_v_result->from_slice)); if (unlikely(__pyx_t_2 == ((int)0))) __PYX_ERR(1, 555, __pyx_L1_error) /* "View.MemoryView":556 * cdef _memoryviewslice result = memoryview_copy(self) * transpose_memslice(&result.from_slice) * return result # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_result)); __pyx_r = ((PyObject *)__pyx_v_result); goto __pyx_L0; /* "View.MemoryView":553 * * @property * def T(self): # <<<<<<<<<<<<<< * cdef _memoryviewslice result = memoryview_copy(self) * transpose_memslice(&result.from_slice) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.T.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_result); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":559 * * @property * def base(self): # <<<<<<<<<<<<<< * return self.obj * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":560 * @property * def base(self): * return self.obj # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->obj); __pyx_r = __pyx_v_self->obj; goto __pyx_L0; /* "View.MemoryView":559 * * @property * def base(self): # <<<<<<<<<<<<<< * return self.obj * */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":563 * * @property * def shape(self): # <<<<<<<<<<<<<< * return tuple([length for length in self.view.shape[:self.view.ndim]]) * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(struct __pyx_memoryview_obj *__pyx_v_self) { Py_ssize_t __pyx_v_length; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t *__pyx_t_2; Py_ssize_t *__pyx_t_3; Py_ssize_t *__pyx_t_4; PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":564 * @property * def shape(self): * return tuple([length for length in self.view.shape[:self.view.ndim]]) # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = (__pyx_v_self->view.shape + __pyx_v_self->view.ndim); for (__pyx_t_4 = __pyx_v_self->view.shape; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) { __pyx_t_2 = __pyx_t_4; __pyx_v_length = (__pyx_t_2[0]); __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_length); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(1, 564, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_t_5 = PyList_AsTuple(((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0; /* "View.MemoryView":563 * * @property * def shape(self): # <<<<<<<<<<<<<< * return tuple([length for length in self.view.shape[:self.view.ndim]]) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.memoryview.shape.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":567 * * @property * def strides(self): # <<<<<<<<<<<<<< * if self.view.strides == NULL: * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(struct __pyx_memoryview_obj *__pyx_v_self) { Py_ssize_t __pyx_v_stride; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; Py_ssize_t *__pyx_t_3; Py_ssize_t *__pyx_t_4; Py_ssize_t *__pyx_t_5; PyObject *__pyx_t_6 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":568 * @property * def strides(self): * if self.view.strides == NULL: # <<<<<<<<<<<<<< * * raise ValueError("Buffer view does not expose strides") */ __pyx_t_1 = ((__pyx_v_self->view.strides == NULL) != 0); if (unlikely(__pyx_t_1)) { /* "View.MemoryView":570 * if self.view.strides == NULL: * * raise ValueError("Buffer view does not expose strides") # <<<<<<<<<<<<<< * * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__44, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 570, __pyx_L1_error) /* "View.MemoryView":568 * @property * def strides(self): * if self.view.strides == NULL: # <<<<<<<<<<<<<< * * raise ValueError("Buffer view does not expose strides") */ } /* "View.MemoryView":572 * raise ValueError("Buffer view does not expose strides") * * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = (__pyx_v_self->view.strides + __pyx_v_self->view.ndim); for (__pyx_t_5 = __pyx_v_self->view.strides; __pyx_t_5 < __pyx_t_4; __pyx_t_5++) { __pyx_t_3 = __pyx_t_5; __pyx_v_stride = (__pyx_t_3[0]); __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_stride); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_6))) __PYX_ERR(1, 572, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __pyx_t_6 = PyList_AsTuple(((PyObject*)__pyx_t_2)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0; /* "View.MemoryView":567 * * @property * def strides(self): # <<<<<<<<<<<<<< * if self.view.strides == NULL: * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("View.MemoryView.memoryview.strides.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":575 * * @property * def suboffsets(self): # <<<<<<<<<<<<<< * if self.view.suboffsets == NULL: * return (-1,) * self.view.ndim */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(struct __pyx_memoryview_obj *__pyx_v_self) { Py_ssize_t __pyx_v_suboffset; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; Py_ssize_t *__pyx_t_4; Py_ssize_t *__pyx_t_5; Py_ssize_t *__pyx_t_6; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":576 * @property * def suboffsets(self): * if self.view.suboffsets == NULL: # <<<<<<<<<<<<<< * return (-1,) * self.view.ndim * */ __pyx_t_1 = ((__pyx_v_self->view.suboffsets == NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":577 * def suboffsets(self): * if self.view.suboffsets == NULL: * return (-1,) * self.view.ndim # <<<<<<<<<<<<<< * * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]]) */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_Multiply(__pyx_tuple__45, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* "View.MemoryView":576 * @property * def suboffsets(self): * if self.view.suboffsets == NULL: # <<<<<<<<<<<<<< * return (-1,) * self.view.ndim * */ } /* "View.MemoryView":579 * return (-1,) * self.view.ndim * * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]]) # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = (__pyx_v_self->view.suboffsets + __pyx_v_self->view.ndim); for (__pyx_t_6 = __pyx_v_self->view.suboffsets; __pyx_t_6 < __pyx_t_5; __pyx_t_6++) { __pyx_t_4 = __pyx_t_6; __pyx_v_suboffset = (__pyx_t_4[0]); __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_suboffset); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_2))) __PYX_ERR(1, 579, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_t_2 = PyList_AsTuple(((PyObject*)__pyx_t_3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":575 * * @property * def suboffsets(self): # <<<<<<<<<<<<<< * if self.view.suboffsets == NULL: * return (-1,) * self.view.ndim */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview.suboffsets.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":582 * * @property * def ndim(self): # <<<<<<<<<<<<<< * return self.view.ndim * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":583 * @property * def ndim(self): * return self.view.ndim # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->view.ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":582 * * @property * def ndim(self): # <<<<<<<<<<<<<< * return self.view.ndim * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.ndim.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":586 * * @property * def itemsize(self): # <<<<<<<<<<<<<< * return self.view.itemsize * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":587 * @property * def itemsize(self): * return self.view.itemsize # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->view.itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":586 * * @property * def itemsize(self): # <<<<<<<<<<<<<< * return self.view.itemsize * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.itemsize.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":590 * * @property * def nbytes(self): # <<<<<<<<<<<<<< * return self.size * self.view.itemsize * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":591 * @property * def nbytes(self): * return self.size * self.view.itemsize # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_self->view.itemsize); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* "View.MemoryView":590 * * @property * def nbytes(self): # <<<<<<<<<<<<<< * return self.size * self.view.itemsize * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview.nbytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":594 * * @property * def size(self): # <<<<<<<<<<<<<< * if self._size is None: * result = 1 */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_v_result = NULL; PyObject *__pyx_v_length = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; Py_ssize_t *__pyx_t_3; Py_ssize_t *__pyx_t_4; Py_ssize_t *__pyx_t_5; PyObject *__pyx_t_6 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":595 * @property * def size(self): * if self._size is None: # <<<<<<<<<<<<<< * result = 1 * */ __pyx_t_1 = (__pyx_v_self->_size == Py_None); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":596 * def size(self): * if self._size is None: * result = 1 # <<<<<<<<<<<<<< * * for length in self.view.shape[:self.view.ndim]: */ __Pyx_INCREF(__pyx_int_1); __pyx_v_result = __pyx_int_1; /* "View.MemoryView":598 * result = 1 * * for length in self.view.shape[:self.view.ndim]: # <<<<<<<<<<<<<< * result *= length * */ __pyx_t_4 = (__pyx_v_self->view.shape + __pyx_v_self->view.ndim); for (__pyx_t_5 = __pyx_v_self->view.shape; __pyx_t_5 < __pyx_t_4; __pyx_t_5++) { __pyx_t_3 = __pyx_t_5; __pyx_t_6 = PyInt_FromSsize_t((__pyx_t_3[0])); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_XDECREF_SET(__pyx_v_length, __pyx_t_6); __pyx_t_6 = 0; /* "View.MemoryView":599 * * for length in self.view.shape[:self.view.ndim]: * result *= length # <<<<<<<<<<<<<< * * self._size = result */ __pyx_t_6 = PyNumber_InPlaceMultiply(__pyx_v_result, __pyx_v_length); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_6); __pyx_t_6 = 0; } /* "View.MemoryView":601 * result *= length * * self._size = result # <<<<<<<<<<<<<< * * return self._size */ __Pyx_INCREF(__pyx_v_result); __Pyx_GIVEREF(__pyx_v_result); __Pyx_GOTREF(__pyx_v_self->_size); __Pyx_DECREF(__pyx_v_self->_size); __pyx_v_self->_size = __pyx_v_result; /* "View.MemoryView":595 * @property * def size(self): * if self._size is None: # <<<<<<<<<<<<<< * result = 1 * */ } /* "View.MemoryView":603 * self._size = result * * return self._size # <<<<<<<<<<<<<< * * def __len__(self): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_size); __pyx_r = __pyx_v_self->_size; goto __pyx_L0; /* "View.MemoryView":594 * * @property * def size(self): # <<<<<<<<<<<<<< * if self._size is None: * result = 1 */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("View.MemoryView.memoryview.size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_result); __Pyx_XDECREF(__pyx_v_length); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":605 * return self._size * * def __len__(self): # <<<<<<<<<<<<<< * if self.view.ndim >= 1: * return self.view.shape[0] */ /* Python wrapper */ static Py_ssize_t __pyx_memoryview___len__(PyObject *__pyx_v_self); /*proto*/ static Py_ssize_t __pyx_memoryview___len__(PyObject *__pyx_v_self) { Py_ssize_t __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__len__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static Py_ssize_t __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(struct __pyx_memoryview_obj *__pyx_v_self) { Py_ssize_t __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("__len__", 0); /* "View.MemoryView":606 * * def __len__(self): * if self.view.ndim >= 1: # <<<<<<<<<<<<<< * return self.view.shape[0] * */ __pyx_t_1 = ((__pyx_v_self->view.ndim >= 1) != 0); if (__pyx_t_1) { /* "View.MemoryView":607 * def __len__(self): * if self.view.ndim >= 1: * return self.view.shape[0] # <<<<<<<<<<<<<< * * return 0 */ __pyx_r = (__pyx_v_self->view.shape[0]); goto __pyx_L0; /* "View.MemoryView":606 * * def __len__(self): * if self.view.ndim >= 1: # <<<<<<<<<<<<<< * return self.view.shape[0] * */ } /* "View.MemoryView":609 * return self.view.shape[0] * * return 0 # <<<<<<<<<<<<<< * * def __repr__(self): */ __pyx_r = 0; goto __pyx_L0; /* "View.MemoryView":605 * return self._size * * def __len__(self): # <<<<<<<<<<<<<< * if self.view.ndim >= 1: * return self.view.shape[0] */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":611 * return 0 * * def __repr__(self): # <<<<<<<<<<<<<< * return "" % (self.base.__class__.__name__, * id(self)) */ /* Python wrapper */ static PyObject *__pyx_memoryview___repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_memoryview___repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("__repr__", 0); /* "View.MemoryView":612 * * def __repr__(self): * return "" % (self.base.__class__.__name__, # <<<<<<<<<<<<<< * id(self)) * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":613 * def __repr__(self): * return "" % (self.base.__class__.__name__, * id(self)) # <<<<<<<<<<<<<< * * def __str__(self): */ __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 613, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); /* "View.MemoryView":612 * * def __repr__(self): * return "" % (self.base.__class__.__name__, # <<<<<<<<<<<<<< * id(self)) * */ __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_MemoryView_of_r_at_0x_x, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":611 * return 0 * * def __repr__(self): # <<<<<<<<<<<<<< * return "" % (self.base.__class__.__name__, * id(self)) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":615 * id(self)) * * def __str__(self): # <<<<<<<<<<<<<< * return "" % (self.base.__class__.__name__,) * */ /* Python wrapper */ static PyObject *__pyx_memoryview___str__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_memoryview___str__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__str__", 0); /* "View.MemoryView":616 * * def __str__(self): * return "" % (self.base.__class__.__name__,) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_MemoryView_of_r_object, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":615 * id(self)) * * def __str__(self): # <<<<<<<<<<<<<< * return "" % (self.base.__class__.__name__,) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.memoryview.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":619 * * * def is_c_contig(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp */ /* Python wrapper */ static PyObject *__pyx_memoryview_is_c_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_memoryview_is_c_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("is_c_contig (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(struct __pyx_memoryview_obj *__pyx_v_self) { __Pyx_memviewslice *__pyx_v_mslice; __Pyx_memviewslice __pyx_v_tmp; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("is_c_contig", 0); /* "View.MemoryView":622 * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp * mslice = get_slice_from_memview(self, &tmp) # <<<<<<<<<<<<<< * return slice_is_contig(mslice[0], 'C', self.view.ndim) * */ __pyx_v_mslice = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_self, (&__pyx_v_tmp)); /* "View.MemoryView":623 * cdef __Pyx_memviewslice tmp * mslice = get_slice_from_memview(self, &tmp) * return slice_is_contig(mslice[0], 'C', self.view.ndim) # <<<<<<<<<<<<<< * * def is_f_contig(self): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_memviewslice_is_contig((__pyx_v_mslice[0]), 'C', __pyx_v_self->view.ndim)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":619 * * * def is_c_contig(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.is_c_contig", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":625 * return slice_is_contig(mslice[0], 'C', self.view.ndim) * * def is_f_contig(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp */ /* Python wrapper */ static PyObject *__pyx_memoryview_is_f_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_memoryview_is_f_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("is_f_contig (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(struct __pyx_memoryview_obj *__pyx_v_self) { __Pyx_memviewslice *__pyx_v_mslice; __Pyx_memviewslice __pyx_v_tmp; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("is_f_contig", 0); /* "View.MemoryView":628 * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp * mslice = get_slice_from_memview(self, &tmp) # <<<<<<<<<<<<<< * return slice_is_contig(mslice[0], 'F', self.view.ndim) * */ __pyx_v_mslice = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_self, (&__pyx_v_tmp)); /* "View.MemoryView":629 * cdef __Pyx_memviewslice tmp * mslice = get_slice_from_memview(self, &tmp) * return slice_is_contig(mslice[0], 'F', self.view.ndim) # <<<<<<<<<<<<<< * * def copy(self): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_memviewslice_is_contig((__pyx_v_mslice[0]), 'F', __pyx_v_self->view.ndim)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":625 * return slice_is_contig(mslice[0], 'C', self.view.ndim) * * def is_f_contig(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.is_f_contig", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":631 * return slice_is_contig(mslice[0], 'F', self.view.ndim) * * def copy(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice mslice * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS */ /* Python wrapper */ static PyObject *__pyx_memoryview_copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_memoryview_copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("copy (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(struct __pyx_memoryview_obj *__pyx_v_self) { __Pyx_memviewslice __pyx_v_mslice; int __pyx_v_flags; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_memviewslice __pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("copy", 0); /* "View.MemoryView":633 * def copy(self): * cdef __Pyx_memviewslice mslice * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS # <<<<<<<<<<<<<< * * slice_copy(self, &mslice) */ __pyx_v_flags = (__pyx_v_self->flags & (~PyBUF_F_CONTIGUOUS)); /* "View.MemoryView":635 * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS * * slice_copy(self, &mslice) # <<<<<<<<<<<<<< * mslice = slice_copy_contig(&mslice, "c", self.view.ndim, * self.view.itemsize, */ __pyx_memoryview_slice_copy(__pyx_v_self, (&__pyx_v_mslice)); /* "View.MemoryView":636 * * slice_copy(self, &mslice) * mslice = slice_copy_contig(&mslice, "c", self.view.ndim, # <<<<<<<<<<<<<< * self.view.itemsize, * flags|PyBUF_C_CONTIGUOUS, */ __pyx_t_1 = __pyx_memoryview_copy_new_contig((&__pyx_v_mslice), ((char *)"c"), __pyx_v_self->view.ndim, __pyx_v_self->view.itemsize, (__pyx_v_flags | PyBUF_C_CONTIGUOUS), __pyx_v_self->dtype_is_object); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 636, __pyx_L1_error) __pyx_v_mslice = __pyx_t_1; /* "View.MemoryView":641 * self.dtype_is_object) * * return memoryview_copy_from_slice(self, &mslice) # <<<<<<<<<<<<<< * * def copy_fortran(self): */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __pyx_memoryview_copy_object_from_slice(__pyx_v_self, (&__pyx_v_mslice)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":631 * return slice_is_contig(mslice[0], 'F', self.view.ndim) * * def copy(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice mslice * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.memoryview.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":643 * return memoryview_copy_from_slice(self, &mslice) * * def copy_fortran(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice src, dst * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS */ /* Python wrapper */ static PyObject *__pyx_memoryview_copy_fortran(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_memoryview_copy_fortran(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("copy_fortran (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(struct __pyx_memoryview_obj *__pyx_v_self) { __Pyx_memviewslice __pyx_v_src; __Pyx_memviewslice __pyx_v_dst; int __pyx_v_flags; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_memviewslice __pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("copy_fortran", 0); /* "View.MemoryView":645 * def copy_fortran(self): * cdef __Pyx_memviewslice src, dst * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS # <<<<<<<<<<<<<< * * slice_copy(self, &src) */ __pyx_v_flags = (__pyx_v_self->flags & (~PyBUF_C_CONTIGUOUS)); /* "View.MemoryView":647 * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS * * slice_copy(self, &src) # <<<<<<<<<<<<<< * dst = slice_copy_contig(&src, "fortran", self.view.ndim, * self.view.itemsize, */ __pyx_memoryview_slice_copy(__pyx_v_self, (&__pyx_v_src)); /* "View.MemoryView":648 * * slice_copy(self, &src) * dst = slice_copy_contig(&src, "fortran", self.view.ndim, # <<<<<<<<<<<<<< * self.view.itemsize, * flags|PyBUF_F_CONTIGUOUS, */ __pyx_t_1 = __pyx_memoryview_copy_new_contig((&__pyx_v_src), ((char *)"fortran"), __pyx_v_self->view.ndim, __pyx_v_self->view.itemsize, (__pyx_v_flags | PyBUF_F_CONTIGUOUS), __pyx_v_self->dtype_is_object); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 648, __pyx_L1_error) __pyx_v_dst = __pyx_t_1; /* "View.MemoryView":653 * self.dtype_is_object) * * return memoryview_copy_from_slice(self, &dst) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __pyx_memoryview_copy_object_from_slice(__pyx_v_self, (&__pyx_v_dst)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":643 * return memoryview_copy_from_slice(self, &mslice) * * def copy_fortran(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice src, dst * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.memoryview.copy_fortran", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_memoryview_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw___pyx_memoryview_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_memoryview___reduce_cython__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_memoryview___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__46, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_memoryview_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw___pyx_memoryview_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_memoryview_2__setstate_cython__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_memoryview_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__47, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":657 * * @cname('__pyx_memoryview_new') * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): # <<<<<<<<<<<<<< * cdef memoryview result = memoryview(o, flags, dtype_is_object) * result.typeinfo = typeinfo */ static PyObject *__pyx_memoryview_new(PyObject *__pyx_v_o, int __pyx_v_flags, int __pyx_v_dtype_is_object, __Pyx_TypeInfo *__pyx_v_typeinfo) { struct __pyx_memoryview_obj *__pyx_v_result = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("memoryview_cwrapper", 0); /* "View.MemoryView":658 * @cname('__pyx_memoryview_new') * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): * cdef memoryview result = memoryview(o, flags, dtype_is_object) # <<<<<<<<<<<<<< * result.typeinfo = typeinfo * return result */ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_o); __Pyx_GIVEREF(__pyx_v_o); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_o); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_result = ((struct __pyx_memoryview_obj *)__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":659 * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): * cdef memoryview result = memoryview(o, flags, dtype_is_object) * result.typeinfo = typeinfo # <<<<<<<<<<<<<< * return result * */ __pyx_v_result->typeinfo = __pyx_v_typeinfo; /* "View.MemoryView":660 * cdef memoryview result = memoryview(o, flags, dtype_is_object) * result.typeinfo = typeinfo * return result # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_check') */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_result)); __pyx_r = ((PyObject *)__pyx_v_result); goto __pyx_L0; /* "View.MemoryView":657 * * @cname('__pyx_memoryview_new') * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): # <<<<<<<<<<<<<< * cdef memoryview result = memoryview(o, flags, dtype_is_object) * result.typeinfo = typeinfo */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview_cwrapper", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_result); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":663 * * @cname('__pyx_memoryview_check') * cdef inline bint memoryview_check(object o): # <<<<<<<<<<<<<< * return isinstance(o, memoryview) * */ static CYTHON_INLINE int __pyx_memoryview_check(PyObject *__pyx_v_o) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("memoryview_check", 0); /* "View.MemoryView":664 * @cname('__pyx_memoryview_check') * cdef inline bint memoryview_check(object o): * return isinstance(o, memoryview) # <<<<<<<<<<<<<< * * cdef tuple _unellipsify(object index, int ndim): */ __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_o, __pyx_memoryview_type); __pyx_r = __pyx_t_1; goto __pyx_L0; /* "View.MemoryView":663 * * @cname('__pyx_memoryview_check') * cdef inline bint memoryview_check(object o): # <<<<<<<<<<<<<< * return isinstance(o, memoryview) * */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":666 * return isinstance(o, memoryview) * * cdef tuple _unellipsify(object index, int ndim): # <<<<<<<<<<<<<< * """ * Replace all ellipses with full slices and fill incomplete indices with */ static PyObject *_unellipsify(PyObject *__pyx_v_index, int __pyx_v_ndim) { PyObject *__pyx_v_tup = NULL; PyObject *__pyx_v_result = NULL; int __pyx_v_have_slices; int __pyx_v_seen_ellipsis; CYTHON_UNUSED PyObject *__pyx_v_idx = NULL; PyObject *__pyx_v_item = NULL; Py_ssize_t __pyx_v_nslices; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; Py_ssize_t __pyx_t_5; PyObject *(*__pyx_t_6)(PyObject *); PyObject *__pyx_t_7 = NULL; Py_ssize_t __pyx_t_8; int __pyx_t_9; int __pyx_t_10; PyObject *__pyx_t_11 = NULL; __Pyx_RefNannySetupContext("_unellipsify", 0); /* "View.MemoryView":671 * full slices. * """ * if not isinstance(index, tuple): # <<<<<<<<<<<<<< * tup = (index,) * else: */ __pyx_t_1 = PyTuple_Check(__pyx_v_index); __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":672 * """ * if not isinstance(index, tuple): * tup = (index,) # <<<<<<<<<<<<<< * else: * tup = index */ __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_index); __Pyx_GIVEREF(__pyx_v_index); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_index); __pyx_v_tup = __pyx_t_3; __pyx_t_3 = 0; /* "View.MemoryView":671 * full slices. * """ * if not isinstance(index, tuple): # <<<<<<<<<<<<<< * tup = (index,) * else: */ goto __pyx_L3; } /* "View.MemoryView":674 * tup = (index,) * else: * tup = index # <<<<<<<<<<<<<< * * result = [] */ /*else*/ { __Pyx_INCREF(__pyx_v_index); __pyx_v_tup = __pyx_v_index; } __pyx_L3:; /* "View.MemoryView":676 * tup = index * * result = [] # <<<<<<<<<<<<<< * have_slices = False * seen_ellipsis = False */ __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_result = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":677 * * result = [] * have_slices = False # <<<<<<<<<<<<<< * seen_ellipsis = False * for idx, item in enumerate(tup): */ __pyx_v_have_slices = 0; /* "View.MemoryView":678 * result = [] * have_slices = False * seen_ellipsis = False # <<<<<<<<<<<<<< * for idx, item in enumerate(tup): * if item is Ellipsis: */ __pyx_v_seen_ellipsis = 0; /* "View.MemoryView":679 * have_slices = False * seen_ellipsis = False * for idx, item in enumerate(tup): # <<<<<<<<<<<<<< * if item is Ellipsis: * if not seen_ellipsis: */ __Pyx_INCREF(__pyx_int_0); __pyx_t_3 = __pyx_int_0; if (likely(PyList_CheckExact(__pyx_v_tup)) || PyTuple_CheckExact(__pyx_v_tup)) { __pyx_t_4 = __pyx_v_tup; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_tup); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 679, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 679, __pyx_L1_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(1, 679, __pyx_L1_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif } } else { __pyx_t_7 = __pyx_t_6(__pyx_t_4); if (unlikely(!__pyx_t_7)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 679, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_7); } __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_7); __pyx_t_7 = 0; __Pyx_INCREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_3); __pyx_t_7 = __Pyx_PyInt_AddObjC(__pyx_t_3, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = __pyx_t_7; __pyx_t_7 = 0; /* "View.MemoryView":680 * seen_ellipsis = False * for idx, item in enumerate(tup): * if item is Ellipsis: # <<<<<<<<<<<<<< * if not seen_ellipsis: * result.extend([slice(None)] * (ndim - len(tup) + 1)) */ __pyx_t_2 = (__pyx_v_item == __pyx_builtin_Ellipsis); __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* "View.MemoryView":681 * for idx, item in enumerate(tup): * if item is Ellipsis: * if not seen_ellipsis: # <<<<<<<<<<<<<< * result.extend([slice(None)] * (ndim - len(tup) + 1)) * seen_ellipsis = True */ __pyx_t_1 = ((!(__pyx_v_seen_ellipsis != 0)) != 0); if (__pyx_t_1) { /* "View.MemoryView":682 * if item is Ellipsis: * if not seen_ellipsis: * result.extend([slice(None)] * (ndim - len(tup) + 1)) # <<<<<<<<<<<<<< * seen_ellipsis = True * else: */ __pyx_t_8 = PyObject_Length(__pyx_v_tup); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(1, 682, __pyx_L1_error) __pyx_t_7 = PyList_New(1 * ((((__pyx_v_ndim - __pyx_t_8) + 1)<0) ? 0:((__pyx_v_ndim - __pyx_t_8) + 1))); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); { Py_ssize_t __pyx_temp; for (__pyx_temp=0; __pyx_temp < ((__pyx_v_ndim - __pyx_t_8) + 1); __pyx_temp++) { __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyList_SET_ITEM(__pyx_t_7, __pyx_temp, __pyx_slice__8); } } __pyx_t_9 = __Pyx_PyList_Extend(__pyx_v_result, __pyx_t_7); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(1, 682, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "View.MemoryView":683 * if not seen_ellipsis: * result.extend([slice(None)] * (ndim - len(tup) + 1)) * seen_ellipsis = True # <<<<<<<<<<<<<< * else: * result.append(slice(None)) */ __pyx_v_seen_ellipsis = 1; /* "View.MemoryView":681 * for idx, item in enumerate(tup): * if item is Ellipsis: * if not seen_ellipsis: # <<<<<<<<<<<<<< * result.extend([slice(None)] * (ndim - len(tup) + 1)) * seen_ellipsis = True */ goto __pyx_L7; } /* "View.MemoryView":685 * seen_ellipsis = True * else: * result.append(slice(None)) # <<<<<<<<<<<<<< * have_slices = True * else: */ /*else*/ { __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_result, __pyx_slice__8); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(1, 685, __pyx_L1_error) } __pyx_L7:; /* "View.MemoryView":686 * else: * result.append(slice(None)) * have_slices = True # <<<<<<<<<<<<<< * else: * if not isinstance(item, slice) and not PyIndex_Check(item): */ __pyx_v_have_slices = 1; /* "View.MemoryView":680 * seen_ellipsis = False * for idx, item in enumerate(tup): * if item is Ellipsis: # <<<<<<<<<<<<<< * if not seen_ellipsis: * result.extend([slice(None)] * (ndim - len(tup) + 1)) */ goto __pyx_L6; } /* "View.MemoryView":688 * have_slices = True * else: * if not isinstance(item, slice) and not PyIndex_Check(item): # <<<<<<<<<<<<<< * raise TypeError("Cannot index with type '%s'" % type(item)) * */ /*else*/ { __pyx_t_2 = PySlice_Check(__pyx_v_item); __pyx_t_10 = ((!(__pyx_t_2 != 0)) != 0); if (__pyx_t_10) { } else { __pyx_t_1 = __pyx_t_10; goto __pyx_L9_bool_binop_done; } __pyx_t_10 = ((!(PyIndex_Check(__pyx_v_item) != 0)) != 0); __pyx_t_1 = __pyx_t_10; __pyx_L9_bool_binop_done:; if (unlikely(__pyx_t_1)) { /* "View.MemoryView":689 * else: * if not isinstance(item, slice) and not PyIndex_Check(item): * raise TypeError("Cannot index with type '%s'" % type(item)) # <<<<<<<<<<<<<< * * have_slices = have_slices or isinstance(item, slice) */ __pyx_t_7 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Cannot_index_with_type_s, ((PyObject *)Py_TYPE(__pyx_v_item))); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_Raise(__pyx_t_11, 0, 0, 0); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_ERR(1, 689, __pyx_L1_error) /* "View.MemoryView":688 * have_slices = True * else: * if not isinstance(item, slice) and not PyIndex_Check(item): # <<<<<<<<<<<<<< * raise TypeError("Cannot index with type '%s'" % type(item)) * */ } /* "View.MemoryView":691 * raise TypeError("Cannot index with type '%s'" % type(item)) * * have_slices = have_slices or isinstance(item, slice) # <<<<<<<<<<<<<< * result.append(item) * */ __pyx_t_10 = (__pyx_v_have_slices != 0); if (!__pyx_t_10) { } else { __pyx_t_1 = __pyx_t_10; goto __pyx_L11_bool_binop_done; } __pyx_t_10 = PySlice_Check(__pyx_v_item); __pyx_t_2 = (__pyx_t_10 != 0); __pyx_t_1 = __pyx_t_2; __pyx_L11_bool_binop_done:; __pyx_v_have_slices = __pyx_t_1; /* "View.MemoryView":692 * * have_slices = have_slices or isinstance(item, slice) * result.append(item) # <<<<<<<<<<<<<< * * nslices = ndim - len(result) */ __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_result, __pyx_v_item); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(1, 692, __pyx_L1_error) } __pyx_L6:; /* "View.MemoryView":679 * have_slices = False * seen_ellipsis = False * for idx, item in enumerate(tup): # <<<<<<<<<<<<<< * if item is Ellipsis: * if not seen_ellipsis: */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":694 * result.append(item) * * nslices = ndim - len(result) # <<<<<<<<<<<<<< * if nslices: * result.extend([slice(None)] * nslices) */ __pyx_t_5 = PyList_GET_SIZE(__pyx_v_result); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 694, __pyx_L1_error) __pyx_v_nslices = (__pyx_v_ndim - __pyx_t_5); /* "View.MemoryView":695 * * nslices = ndim - len(result) * if nslices: # <<<<<<<<<<<<<< * result.extend([slice(None)] * nslices) * */ __pyx_t_1 = (__pyx_v_nslices != 0); if (__pyx_t_1) { /* "View.MemoryView":696 * nslices = ndim - len(result) * if nslices: * result.extend([slice(None)] * nslices) # <<<<<<<<<<<<<< * * return have_slices or nslices, tuple(result) */ __pyx_t_3 = PyList_New(1 * ((__pyx_v_nslices<0) ? 0:__pyx_v_nslices)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { Py_ssize_t __pyx_temp; for (__pyx_temp=0; __pyx_temp < __pyx_v_nslices; __pyx_temp++) { __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyList_SET_ITEM(__pyx_t_3, __pyx_temp, __pyx_slice__8); } } __pyx_t_9 = __Pyx_PyList_Extend(__pyx_v_result, __pyx_t_3); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(1, 696, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":695 * * nslices = ndim - len(result) * if nslices: # <<<<<<<<<<<<<< * result.extend([slice(None)] * nslices) * */ } /* "View.MemoryView":698 * result.extend([slice(None)] * nslices) * * return have_slices or nslices, tuple(result) # <<<<<<<<<<<<<< * * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): */ __Pyx_XDECREF(__pyx_r); if (!__pyx_v_have_slices) { } else { __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_have_slices); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L14_bool_binop_done; } __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_nslices); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __pyx_t_4; __pyx_t_4 = 0; __pyx_L14_bool_binop_done:; __pyx_t_4 = PyList_AsTuple(__pyx_v_result); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_4); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_r = ((PyObject*)__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L0; /* "View.MemoryView":666 * return isinstance(o, memoryview) * * cdef tuple _unellipsify(object index, int ndim): # <<<<<<<<<<<<<< * """ * Replace all ellipses with full slices and fill incomplete indices with */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_11); __Pyx_AddTraceback("View.MemoryView._unellipsify", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_tup); __Pyx_XDECREF(__pyx_v_result); __Pyx_XDECREF(__pyx_v_idx); __Pyx_XDECREF(__pyx_v_item); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":700 * return have_slices or nslices, tuple(result) * * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): # <<<<<<<<<<<<<< * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: */ static PyObject *assert_direct_dimensions(Py_ssize_t *__pyx_v_suboffsets, int __pyx_v_ndim) { Py_ssize_t __pyx_v_suboffset; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations Py_ssize_t *__pyx_t_1; Py_ssize_t *__pyx_t_2; Py_ssize_t *__pyx_t_3; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("assert_direct_dimensions", 0); /* "View.MemoryView":701 * * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): * for suboffset in suboffsets[:ndim]: # <<<<<<<<<<<<<< * if suboffset >= 0: * raise ValueError("Indirect dimensions not supported") */ __pyx_t_2 = (__pyx_v_suboffsets + __pyx_v_ndim); for (__pyx_t_3 = __pyx_v_suboffsets; __pyx_t_3 < __pyx_t_2; __pyx_t_3++) { __pyx_t_1 = __pyx_t_3; __pyx_v_suboffset = (__pyx_t_1[0]); /* "View.MemoryView":702 * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: # <<<<<<<<<<<<<< * raise ValueError("Indirect dimensions not supported") * */ __pyx_t_4 = ((__pyx_v_suboffset >= 0) != 0); if (unlikely(__pyx_t_4)) { /* "View.MemoryView":703 * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: * raise ValueError("Indirect dimensions not supported") # <<<<<<<<<<<<<< * * */ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__48, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(1, 703, __pyx_L1_error) /* "View.MemoryView":702 * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: # <<<<<<<<<<<<<< * raise ValueError("Indirect dimensions not supported") * */ } } /* "View.MemoryView":700 * return have_slices or nslices, tuple(result) * * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): # <<<<<<<<<<<<<< * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.assert_direct_dimensions", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":710 * * @cname('__pyx_memview_slice') * cdef memoryview memview_slice(memoryview memview, object indices): # <<<<<<<<<<<<<< * cdef int new_ndim = 0, suboffset_dim = -1, dim * cdef bint negative_step */ static struct __pyx_memoryview_obj *__pyx_memview_slice(struct __pyx_memoryview_obj *__pyx_v_memview, PyObject *__pyx_v_indices) { int __pyx_v_new_ndim; int __pyx_v_suboffset_dim; int __pyx_v_dim; __Pyx_memviewslice __pyx_v_src; __Pyx_memviewslice __pyx_v_dst; __Pyx_memviewslice *__pyx_v_p_src; struct __pyx_memoryviewslice_obj *__pyx_v_memviewsliceobj = 0; __Pyx_memviewslice *__pyx_v_p_dst; int *__pyx_v_p_suboffset_dim; Py_ssize_t __pyx_v_start; Py_ssize_t __pyx_v_stop; Py_ssize_t __pyx_v_step; int __pyx_v_have_start; int __pyx_v_have_stop; int __pyx_v_have_step; PyObject *__pyx_v_index = NULL; struct __pyx_memoryview_obj *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; struct __pyx_memoryview_obj *__pyx_t_4; char *__pyx_t_5; int __pyx_t_6; Py_ssize_t __pyx_t_7; PyObject *(*__pyx_t_8)(PyObject *); PyObject *__pyx_t_9 = NULL; Py_ssize_t __pyx_t_10; int __pyx_t_11; Py_ssize_t __pyx_t_12; __Pyx_RefNannySetupContext("memview_slice", 0); /* "View.MemoryView":711 * @cname('__pyx_memview_slice') * cdef memoryview memview_slice(memoryview memview, object indices): * cdef int new_ndim = 0, suboffset_dim = -1, dim # <<<<<<<<<<<<<< * cdef bint negative_step * cdef __Pyx_memviewslice src, dst */ __pyx_v_new_ndim = 0; __pyx_v_suboffset_dim = -1; /* "View.MemoryView":718 * * * memset(&dst, 0, sizeof(dst)) # <<<<<<<<<<<<<< * * cdef _memoryviewslice memviewsliceobj */ (void)(memset((&__pyx_v_dst), 0, (sizeof(__pyx_v_dst)))); /* "View.MemoryView":722 * cdef _memoryviewslice memviewsliceobj * * assert memview.view.ndim > 0 # <<<<<<<<<<<<<< * * if isinstance(memview, _memoryviewslice): */ #ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_v_memview->view.ndim > 0) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(1, 722, __pyx_L1_error) } } #endif /* "View.MemoryView":724 * assert memview.view.ndim > 0 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * memviewsliceobj = memview * p_src = &memviewsliceobj.from_slice */ __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":725 * * if isinstance(memview, _memoryviewslice): * memviewsliceobj = memview # <<<<<<<<<<<<<< * p_src = &memviewsliceobj.from_slice * else: */ if (!(likely(((((PyObject *)__pyx_v_memview)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type))))) __PYX_ERR(1, 725, __pyx_L1_error) __pyx_t_3 = ((PyObject *)__pyx_v_memview); __Pyx_INCREF(__pyx_t_3); __pyx_v_memviewsliceobj = ((struct __pyx_memoryviewslice_obj *)__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":726 * if isinstance(memview, _memoryviewslice): * memviewsliceobj = memview * p_src = &memviewsliceobj.from_slice # <<<<<<<<<<<<<< * else: * slice_copy(memview, &src) */ __pyx_v_p_src = (&__pyx_v_memviewsliceobj->from_slice); /* "View.MemoryView":724 * assert memview.view.ndim > 0 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * memviewsliceobj = memview * p_src = &memviewsliceobj.from_slice */ goto __pyx_L3; } /* "View.MemoryView":728 * p_src = &memviewsliceobj.from_slice * else: * slice_copy(memview, &src) # <<<<<<<<<<<<<< * p_src = &src * */ /*else*/ { __pyx_memoryview_slice_copy(__pyx_v_memview, (&__pyx_v_src)); /* "View.MemoryView":729 * else: * slice_copy(memview, &src) * p_src = &src # <<<<<<<<<<<<<< * * */ __pyx_v_p_src = (&__pyx_v_src); } __pyx_L3:; /* "View.MemoryView":735 * * * dst.memview = p_src.memview # <<<<<<<<<<<<<< * dst.data = p_src.data * */ __pyx_t_4 = __pyx_v_p_src->memview; __pyx_v_dst.memview = __pyx_t_4; /* "View.MemoryView":736 * * dst.memview = p_src.memview * dst.data = p_src.data # <<<<<<<<<<<<<< * * */ __pyx_t_5 = __pyx_v_p_src->data; __pyx_v_dst.data = __pyx_t_5; /* "View.MemoryView":741 * * * cdef __Pyx_memviewslice *p_dst = &dst # <<<<<<<<<<<<<< * cdef int *p_suboffset_dim = &suboffset_dim * cdef Py_ssize_t start, stop, step */ __pyx_v_p_dst = (&__pyx_v_dst); /* "View.MemoryView":742 * * cdef __Pyx_memviewslice *p_dst = &dst * cdef int *p_suboffset_dim = &suboffset_dim # <<<<<<<<<<<<<< * cdef Py_ssize_t start, stop, step * cdef bint have_start, have_stop, have_step */ __pyx_v_p_suboffset_dim = (&__pyx_v_suboffset_dim); /* "View.MemoryView":746 * cdef bint have_start, have_stop, have_step * * for dim, index in enumerate(indices): # <<<<<<<<<<<<<< * if PyIndex_Check(index): * slice_memviewslice( */ __pyx_t_6 = 0; if (likely(PyList_CheckExact(__pyx_v_indices)) || PyTuple_CheckExact(__pyx_v_indices)) { __pyx_t_3 = __pyx_v_indices; __Pyx_INCREF(__pyx_t_3); __pyx_t_7 = 0; __pyx_t_8 = NULL; } else { __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_indices); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 746, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_8)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_9 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(1, 746, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif } else { if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(1, 746, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif } } else { __pyx_t_9 = __pyx_t_8(__pyx_t_3); if (unlikely(!__pyx_t_9)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 746, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_9); } __Pyx_XDECREF_SET(__pyx_v_index, __pyx_t_9); __pyx_t_9 = 0; __pyx_v_dim = __pyx_t_6; __pyx_t_6 = (__pyx_t_6 + 1); /* "View.MemoryView":747 * * for dim, index in enumerate(indices): * if PyIndex_Check(index): # <<<<<<<<<<<<<< * slice_memviewslice( * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], */ __pyx_t_2 = (PyIndex_Check(__pyx_v_index) != 0); if (__pyx_t_2) { /* "View.MemoryView":751 * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], * dim, new_ndim, p_suboffset_dim, * index, 0, 0, # start, stop, step # <<<<<<<<<<<<<< * 0, 0, 0, # have_{start,stop,step} * False) */ __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_v_index); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 751, __pyx_L1_error) /* "View.MemoryView":748 * for dim, index in enumerate(indices): * if PyIndex_Check(index): * slice_memviewslice( # <<<<<<<<<<<<<< * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], * dim, new_ndim, p_suboffset_dim, */ __pyx_t_11 = __pyx_memoryview_slice_memviewslice(__pyx_v_p_dst, (__pyx_v_p_src->shape[__pyx_v_dim]), (__pyx_v_p_src->strides[__pyx_v_dim]), (__pyx_v_p_src->suboffsets[__pyx_v_dim]), __pyx_v_dim, __pyx_v_new_ndim, __pyx_v_p_suboffset_dim, __pyx_t_10, 0, 0, 0, 0, 0, 0); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(1, 748, __pyx_L1_error) /* "View.MemoryView":747 * * for dim, index in enumerate(indices): * if PyIndex_Check(index): # <<<<<<<<<<<<<< * slice_memviewslice( * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], */ goto __pyx_L6; } /* "View.MemoryView":754 * 0, 0, 0, # have_{start,stop,step} * False) * elif index is None: # <<<<<<<<<<<<<< * p_dst.shape[new_ndim] = 1 * p_dst.strides[new_ndim] = 0 */ __pyx_t_2 = (__pyx_v_index == Py_None); __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* "View.MemoryView":755 * False) * elif index is None: * p_dst.shape[new_ndim] = 1 # <<<<<<<<<<<<<< * p_dst.strides[new_ndim] = 0 * p_dst.suboffsets[new_ndim] = -1 */ (__pyx_v_p_dst->shape[__pyx_v_new_ndim]) = 1; /* "View.MemoryView":756 * elif index is None: * p_dst.shape[new_ndim] = 1 * p_dst.strides[new_ndim] = 0 # <<<<<<<<<<<<<< * p_dst.suboffsets[new_ndim] = -1 * new_ndim += 1 */ (__pyx_v_p_dst->strides[__pyx_v_new_ndim]) = 0; /* "View.MemoryView":757 * p_dst.shape[new_ndim] = 1 * p_dst.strides[new_ndim] = 0 * p_dst.suboffsets[new_ndim] = -1 # <<<<<<<<<<<<<< * new_ndim += 1 * else: */ (__pyx_v_p_dst->suboffsets[__pyx_v_new_ndim]) = -1L; /* "View.MemoryView":758 * p_dst.strides[new_ndim] = 0 * p_dst.suboffsets[new_ndim] = -1 * new_ndim += 1 # <<<<<<<<<<<<<< * else: * start = index.start or 0 */ __pyx_v_new_ndim = (__pyx_v_new_ndim + 1); /* "View.MemoryView":754 * 0, 0, 0, # have_{start,stop,step} * False) * elif index is None: # <<<<<<<<<<<<<< * p_dst.shape[new_ndim] = 1 * p_dst.strides[new_ndim] = 0 */ goto __pyx_L6; } /* "View.MemoryView":760 * new_ndim += 1 * else: * start = index.start or 0 # <<<<<<<<<<<<<< * stop = index.stop or 0 * step = index.step or 0 */ /*else*/ { __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_start); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 760, __pyx_L1_error) if (!__pyx_t_1) { __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else { __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 760, __pyx_L1_error) __pyx_t_10 = __pyx_t_12; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L7_bool_binop_done; } __pyx_t_10 = 0; __pyx_L7_bool_binop_done:; __pyx_v_start = __pyx_t_10; /* "View.MemoryView":761 * else: * start = index.start or 0 * stop = index.stop or 0 # <<<<<<<<<<<<<< * step = index.step or 0 * */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_stop); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 761, __pyx_L1_error) if (!__pyx_t_1) { __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else { __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 761, __pyx_L1_error) __pyx_t_10 = __pyx_t_12; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L9_bool_binop_done; } __pyx_t_10 = 0; __pyx_L9_bool_binop_done:; __pyx_v_stop = __pyx_t_10; /* "View.MemoryView":762 * start = index.start or 0 * stop = index.stop or 0 * step = index.step or 0 # <<<<<<<<<<<<<< * * have_start = index.start is not None */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_step); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 762, __pyx_L1_error) if (!__pyx_t_1) { __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else { __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 762, __pyx_L1_error) __pyx_t_10 = __pyx_t_12; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L11_bool_binop_done; } __pyx_t_10 = 0; __pyx_L11_bool_binop_done:; __pyx_v_step = __pyx_t_10; /* "View.MemoryView":764 * step = index.step or 0 * * have_start = index.start is not None # <<<<<<<<<<<<<< * have_stop = index.stop is not None * have_step = index.step is not None */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_start); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = (__pyx_t_9 != Py_None); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_have_start = __pyx_t_1; /* "View.MemoryView":765 * * have_start = index.start is not None * have_stop = index.stop is not None # <<<<<<<<<<<<<< * have_step = index.step is not None * */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_stop); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 765, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = (__pyx_t_9 != Py_None); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_have_stop = __pyx_t_1; /* "View.MemoryView":766 * have_start = index.start is not None * have_stop = index.stop is not None * have_step = index.step is not None # <<<<<<<<<<<<<< * * slice_memviewslice( */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_step); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 766, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = (__pyx_t_9 != Py_None); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_have_step = __pyx_t_1; /* "View.MemoryView":768 * have_step = index.step is not None * * slice_memviewslice( # <<<<<<<<<<<<<< * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], * dim, new_ndim, p_suboffset_dim, */ __pyx_t_11 = __pyx_memoryview_slice_memviewslice(__pyx_v_p_dst, (__pyx_v_p_src->shape[__pyx_v_dim]), (__pyx_v_p_src->strides[__pyx_v_dim]), (__pyx_v_p_src->suboffsets[__pyx_v_dim]), __pyx_v_dim, __pyx_v_new_ndim, __pyx_v_p_suboffset_dim, __pyx_v_start, __pyx_v_stop, __pyx_v_step, __pyx_v_have_start, __pyx_v_have_stop, __pyx_v_have_step, 1); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(1, 768, __pyx_L1_error) /* "View.MemoryView":774 * have_start, have_stop, have_step, * True) * new_ndim += 1 # <<<<<<<<<<<<<< * * if isinstance(memview, _memoryviewslice): */ __pyx_v_new_ndim = (__pyx_v_new_ndim + 1); } __pyx_L6:; /* "View.MemoryView":746 * cdef bint have_start, have_stop, have_step * * for dim, index in enumerate(indices): # <<<<<<<<<<<<<< * if PyIndex_Check(index): * slice_memviewslice( */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":776 * new_ndim += 1 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * return memoryview_fromslice(dst, new_ndim, * memviewsliceobj.to_object_func, */ __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":777 * * if isinstance(memview, _memoryviewslice): * return memoryview_fromslice(dst, new_ndim, # <<<<<<<<<<<<<< * memviewsliceobj.to_object_func, * memviewsliceobj.to_dtype_func, */ __Pyx_XDECREF(((PyObject *)__pyx_r)); /* "View.MemoryView":778 * if isinstance(memview, _memoryviewslice): * return memoryview_fromslice(dst, new_ndim, * memviewsliceobj.to_object_func, # <<<<<<<<<<<<<< * memviewsliceobj.to_dtype_func, * memview.dtype_is_object) */ if (unlikely(!__pyx_v_memviewsliceobj)) { __Pyx_RaiseUnboundLocalError("memviewsliceobj"); __PYX_ERR(1, 778, __pyx_L1_error) } /* "View.MemoryView":779 * return memoryview_fromslice(dst, new_ndim, * memviewsliceobj.to_object_func, * memviewsliceobj.to_dtype_func, # <<<<<<<<<<<<<< * memview.dtype_is_object) * else: */ if (unlikely(!__pyx_v_memviewsliceobj)) { __Pyx_RaiseUnboundLocalError("memviewsliceobj"); __PYX_ERR(1, 779, __pyx_L1_error) } /* "View.MemoryView":777 * * if isinstance(memview, _memoryviewslice): * return memoryview_fromslice(dst, new_ndim, # <<<<<<<<<<<<<< * memviewsliceobj.to_object_func, * memviewsliceobj.to_dtype_func, */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_dst, __pyx_v_new_ndim, __pyx_v_memviewsliceobj->to_object_func, __pyx_v_memviewsliceobj->to_dtype_func, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 777, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_memoryview_type))))) __PYX_ERR(1, 777, __pyx_L1_error) __pyx_r = ((struct __pyx_memoryview_obj *)__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L0; /* "View.MemoryView":776 * new_ndim += 1 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * return memoryview_fromslice(dst, new_ndim, * memviewsliceobj.to_object_func, */ } /* "View.MemoryView":782 * memview.dtype_is_object) * else: * return memoryview_fromslice(dst, new_ndim, NULL, NULL, # <<<<<<<<<<<<<< * memview.dtype_is_object) * */ /*else*/ { __Pyx_XDECREF(((PyObject *)__pyx_r)); /* "View.MemoryView":783 * else: * return memoryview_fromslice(dst, new_ndim, NULL, NULL, * memview.dtype_is_object) # <<<<<<<<<<<<<< * * */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_dst, __pyx_v_new_ndim, NULL, NULL, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); /* "View.MemoryView":782 * memview.dtype_is_object) * else: * return memoryview_fromslice(dst, new_ndim, NULL, NULL, # <<<<<<<<<<<<<< * memview.dtype_is_object) * */ if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_memoryview_type))))) __PYX_ERR(1, 782, __pyx_L1_error) __pyx_r = ((struct __pyx_memoryview_obj *)__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L0; } /* "View.MemoryView":710 * * @cname('__pyx_memview_slice') * cdef memoryview memview_slice(memoryview memview, object indices): # <<<<<<<<<<<<<< * cdef int new_ndim = 0, suboffset_dim = -1, dim * cdef bint negative_step */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("View.MemoryView.memview_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_memviewsliceobj); __Pyx_XDECREF(__pyx_v_index); __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":807 * * @cname('__pyx_memoryview_slice_memviewslice') * cdef int slice_memviewslice( # <<<<<<<<<<<<<< * __Pyx_memviewslice *dst, * Py_ssize_t shape, Py_ssize_t stride, Py_ssize_t suboffset, */ static int __pyx_memoryview_slice_memviewslice(__Pyx_memviewslice *__pyx_v_dst, Py_ssize_t __pyx_v_shape, Py_ssize_t __pyx_v_stride, Py_ssize_t __pyx_v_suboffset, int __pyx_v_dim, int __pyx_v_new_ndim, int *__pyx_v_suboffset_dim, Py_ssize_t __pyx_v_start, Py_ssize_t __pyx_v_stop, Py_ssize_t __pyx_v_step, int __pyx_v_have_start, int __pyx_v_have_stop, int __pyx_v_have_step, int __pyx_v_is_slice) { Py_ssize_t __pyx_v_new_shape; int __pyx_v_negative_step; int __pyx_r; int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; /* "View.MemoryView":827 * cdef bint negative_step * * if not is_slice: # <<<<<<<<<<<<<< * * if start < 0: */ __pyx_t_1 = ((!(__pyx_v_is_slice != 0)) != 0); if (__pyx_t_1) { /* "View.MemoryView":829 * if not is_slice: * * if start < 0: # <<<<<<<<<<<<<< * start += shape * if not 0 <= start < shape: */ __pyx_t_1 = ((__pyx_v_start < 0) != 0); if (__pyx_t_1) { /* "View.MemoryView":830 * * if start < 0: * start += shape # <<<<<<<<<<<<<< * if not 0 <= start < shape: * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) */ __pyx_v_start = (__pyx_v_start + __pyx_v_shape); /* "View.MemoryView":829 * if not is_slice: * * if start < 0: # <<<<<<<<<<<<<< * start += shape * if not 0 <= start < shape: */ } /* "View.MemoryView":831 * if start < 0: * start += shape * if not 0 <= start < shape: # <<<<<<<<<<<<<< * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) * else: */ __pyx_t_1 = (0 <= __pyx_v_start); if (__pyx_t_1) { __pyx_t_1 = (__pyx_v_start < __pyx_v_shape); } __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":832 * start += shape * if not 0 <= start < shape: * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) # <<<<<<<<<<<<<< * else: * */ __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_IndexError, ((char *)"Index out of bounds (axis %d)"), __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 832, __pyx_L1_error) /* "View.MemoryView":831 * if start < 0: * start += shape * if not 0 <= start < shape: # <<<<<<<<<<<<<< * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) * else: */ } /* "View.MemoryView":827 * cdef bint negative_step * * if not is_slice: # <<<<<<<<<<<<<< * * if start < 0: */ goto __pyx_L3; } /* "View.MemoryView":835 * else: * * negative_step = have_step != 0 and step < 0 # <<<<<<<<<<<<<< * * if have_step and step == 0: */ /*else*/ { __pyx_t_1 = ((__pyx_v_have_step != 0) != 0); if (__pyx_t_1) { } else { __pyx_t_2 = __pyx_t_1; goto __pyx_L6_bool_binop_done; } __pyx_t_1 = ((__pyx_v_step < 0) != 0); __pyx_t_2 = __pyx_t_1; __pyx_L6_bool_binop_done:; __pyx_v_negative_step = __pyx_t_2; /* "View.MemoryView":837 * negative_step = have_step != 0 and step < 0 * * if have_step and step == 0: # <<<<<<<<<<<<<< * _err_dim(ValueError, "Step may not be zero (axis %d)", dim) * */ __pyx_t_1 = (__pyx_v_have_step != 0); if (__pyx_t_1) { } else { __pyx_t_2 = __pyx_t_1; goto __pyx_L9_bool_binop_done; } __pyx_t_1 = ((__pyx_v_step == 0) != 0); __pyx_t_2 = __pyx_t_1; __pyx_L9_bool_binop_done:; if (__pyx_t_2) { /* "View.MemoryView":838 * * if have_step and step == 0: * _err_dim(ValueError, "Step may not be zero (axis %d)", dim) # <<<<<<<<<<<<<< * * */ __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_ValueError, ((char *)"Step may not be zero (axis %d)"), __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 838, __pyx_L1_error) /* "View.MemoryView":837 * negative_step = have_step != 0 and step < 0 * * if have_step and step == 0: # <<<<<<<<<<<<<< * _err_dim(ValueError, "Step may not be zero (axis %d)", dim) * */ } /* "View.MemoryView":841 * * * if have_start: # <<<<<<<<<<<<<< * if start < 0: * start += shape */ __pyx_t_2 = (__pyx_v_have_start != 0); if (__pyx_t_2) { /* "View.MemoryView":842 * * if have_start: * if start < 0: # <<<<<<<<<<<<<< * start += shape * if start < 0: */ __pyx_t_2 = ((__pyx_v_start < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":843 * if have_start: * if start < 0: * start += shape # <<<<<<<<<<<<<< * if start < 0: * start = 0 */ __pyx_v_start = (__pyx_v_start + __pyx_v_shape); /* "View.MemoryView":844 * if start < 0: * start += shape * if start < 0: # <<<<<<<<<<<<<< * start = 0 * elif start >= shape: */ __pyx_t_2 = ((__pyx_v_start < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":845 * start += shape * if start < 0: * start = 0 # <<<<<<<<<<<<<< * elif start >= shape: * if negative_step: */ __pyx_v_start = 0; /* "View.MemoryView":844 * if start < 0: * start += shape * if start < 0: # <<<<<<<<<<<<<< * start = 0 * elif start >= shape: */ } /* "View.MemoryView":842 * * if have_start: * if start < 0: # <<<<<<<<<<<<<< * start += shape * if start < 0: */ goto __pyx_L12; } /* "View.MemoryView":846 * if start < 0: * start = 0 * elif start >= shape: # <<<<<<<<<<<<<< * if negative_step: * start = shape - 1 */ __pyx_t_2 = ((__pyx_v_start >= __pyx_v_shape) != 0); if (__pyx_t_2) { /* "View.MemoryView":847 * start = 0 * elif start >= shape: * if negative_step: # <<<<<<<<<<<<<< * start = shape - 1 * else: */ __pyx_t_2 = (__pyx_v_negative_step != 0); if (__pyx_t_2) { /* "View.MemoryView":848 * elif start >= shape: * if negative_step: * start = shape - 1 # <<<<<<<<<<<<<< * else: * start = shape */ __pyx_v_start = (__pyx_v_shape - 1); /* "View.MemoryView":847 * start = 0 * elif start >= shape: * if negative_step: # <<<<<<<<<<<<<< * start = shape - 1 * else: */ goto __pyx_L14; } /* "View.MemoryView":850 * start = shape - 1 * else: * start = shape # <<<<<<<<<<<<<< * else: * if negative_step: */ /*else*/ { __pyx_v_start = __pyx_v_shape; } __pyx_L14:; /* "View.MemoryView":846 * if start < 0: * start = 0 * elif start >= shape: # <<<<<<<<<<<<<< * if negative_step: * start = shape - 1 */ } __pyx_L12:; /* "View.MemoryView":841 * * * if have_start: # <<<<<<<<<<<<<< * if start < 0: * start += shape */ goto __pyx_L11; } /* "View.MemoryView":852 * start = shape * else: * if negative_step: # <<<<<<<<<<<<<< * start = shape - 1 * else: */ /*else*/ { __pyx_t_2 = (__pyx_v_negative_step != 0); if (__pyx_t_2) { /* "View.MemoryView":853 * else: * if negative_step: * start = shape - 1 # <<<<<<<<<<<<<< * else: * start = 0 */ __pyx_v_start = (__pyx_v_shape - 1); /* "View.MemoryView":852 * start = shape * else: * if negative_step: # <<<<<<<<<<<<<< * start = shape - 1 * else: */ goto __pyx_L15; } /* "View.MemoryView":855 * start = shape - 1 * else: * start = 0 # <<<<<<<<<<<<<< * * if have_stop: */ /*else*/ { __pyx_v_start = 0; } __pyx_L15:; } __pyx_L11:; /* "View.MemoryView":857 * start = 0 * * if have_stop: # <<<<<<<<<<<<<< * if stop < 0: * stop += shape */ __pyx_t_2 = (__pyx_v_have_stop != 0); if (__pyx_t_2) { /* "View.MemoryView":858 * * if have_stop: * if stop < 0: # <<<<<<<<<<<<<< * stop += shape * if stop < 0: */ __pyx_t_2 = ((__pyx_v_stop < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":859 * if have_stop: * if stop < 0: * stop += shape # <<<<<<<<<<<<<< * if stop < 0: * stop = 0 */ __pyx_v_stop = (__pyx_v_stop + __pyx_v_shape); /* "View.MemoryView":860 * if stop < 0: * stop += shape * if stop < 0: # <<<<<<<<<<<<<< * stop = 0 * elif stop > shape: */ __pyx_t_2 = ((__pyx_v_stop < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":861 * stop += shape * if stop < 0: * stop = 0 # <<<<<<<<<<<<<< * elif stop > shape: * stop = shape */ __pyx_v_stop = 0; /* "View.MemoryView":860 * if stop < 0: * stop += shape * if stop < 0: # <<<<<<<<<<<<<< * stop = 0 * elif stop > shape: */ } /* "View.MemoryView":858 * * if have_stop: * if stop < 0: # <<<<<<<<<<<<<< * stop += shape * if stop < 0: */ goto __pyx_L17; } /* "View.MemoryView":862 * if stop < 0: * stop = 0 * elif stop > shape: # <<<<<<<<<<<<<< * stop = shape * else: */ __pyx_t_2 = ((__pyx_v_stop > __pyx_v_shape) != 0); if (__pyx_t_2) { /* "View.MemoryView":863 * stop = 0 * elif stop > shape: * stop = shape # <<<<<<<<<<<<<< * else: * if negative_step: */ __pyx_v_stop = __pyx_v_shape; /* "View.MemoryView":862 * if stop < 0: * stop = 0 * elif stop > shape: # <<<<<<<<<<<<<< * stop = shape * else: */ } __pyx_L17:; /* "View.MemoryView":857 * start = 0 * * if have_stop: # <<<<<<<<<<<<<< * if stop < 0: * stop += shape */ goto __pyx_L16; } /* "View.MemoryView":865 * stop = shape * else: * if negative_step: # <<<<<<<<<<<<<< * stop = -1 * else: */ /*else*/ { __pyx_t_2 = (__pyx_v_negative_step != 0); if (__pyx_t_2) { /* "View.MemoryView":866 * else: * if negative_step: * stop = -1 # <<<<<<<<<<<<<< * else: * stop = shape */ __pyx_v_stop = -1L; /* "View.MemoryView":865 * stop = shape * else: * if negative_step: # <<<<<<<<<<<<<< * stop = -1 * else: */ goto __pyx_L19; } /* "View.MemoryView":868 * stop = -1 * else: * stop = shape # <<<<<<<<<<<<<< * * if not have_step: */ /*else*/ { __pyx_v_stop = __pyx_v_shape; } __pyx_L19:; } __pyx_L16:; /* "View.MemoryView":870 * stop = shape * * if not have_step: # <<<<<<<<<<<<<< * step = 1 * */ __pyx_t_2 = ((!(__pyx_v_have_step != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":871 * * if not have_step: * step = 1 # <<<<<<<<<<<<<< * * */ __pyx_v_step = 1; /* "View.MemoryView":870 * stop = shape * * if not have_step: # <<<<<<<<<<<<<< * step = 1 * */ } /* "View.MemoryView":875 * * with cython.cdivision(True): * new_shape = (stop - start) // step # <<<<<<<<<<<<<< * * if (stop - start) - step * new_shape: */ __pyx_v_new_shape = ((__pyx_v_stop - __pyx_v_start) / __pyx_v_step); /* "View.MemoryView":877 * new_shape = (stop - start) // step * * if (stop - start) - step * new_shape: # <<<<<<<<<<<<<< * new_shape += 1 * */ __pyx_t_2 = (((__pyx_v_stop - __pyx_v_start) - (__pyx_v_step * __pyx_v_new_shape)) != 0); if (__pyx_t_2) { /* "View.MemoryView":878 * * if (stop - start) - step * new_shape: * new_shape += 1 # <<<<<<<<<<<<<< * * if new_shape < 0: */ __pyx_v_new_shape = (__pyx_v_new_shape + 1); /* "View.MemoryView":877 * new_shape = (stop - start) // step * * if (stop - start) - step * new_shape: # <<<<<<<<<<<<<< * new_shape += 1 * */ } /* "View.MemoryView":880 * new_shape += 1 * * if new_shape < 0: # <<<<<<<<<<<<<< * new_shape = 0 * */ __pyx_t_2 = ((__pyx_v_new_shape < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":881 * * if new_shape < 0: * new_shape = 0 # <<<<<<<<<<<<<< * * */ __pyx_v_new_shape = 0; /* "View.MemoryView":880 * new_shape += 1 * * if new_shape < 0: # <<<<<<<<<<<<<< * new_shape = 0 * */ } /* "View.MemoryView":884 * * * dst.strides[new_ndim] = stride * step # <<<<<<<<<<<<<< * dst.shape[new_ndim] = new_shape * dst.suboffsets[new_ndim] = suboffset */ (__pyx_v_dst->strides[__pyx_v_new_ndim]) = (__pyx_v_stride * __pyx_v_step); /* "View.MemoryView":885 * * dst.strides[new_ndim] = stride * step * dst.shape[new_ndim] = new_shape # <<<<<<<<<<<<<< * dst.suboffsets[new_ndim] = suboffset * */ (__pyx_v_dst->shape[__pyx_v_new_ndim]) = __pyx_v_new_shape; /* "View.MemoryView":886 * dst.strides[new_ndim] = stride * step * dst.shape[new_ndim] = new_shape * dst.suboffsets[new_ndim] = suboffset # <<<<<<<<<<<<<< * * */ (__pyx_v_dst->suboffsets[__pyx_v_new_ndim]) = __pyx_v_suboffset; } __pyx_L3:; /* "View.MemoryView":889 * * * if suboffset_dim[0] < 0: # <<<<<<<<<<<<<< * dst.data += start * stride * else: */ __pyx_t_2 = (((__pyx_v_suboffset_dim[0]) < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":890 * * if suboffset_dim[0] < 0: * dst.data += start * stride # <<<<<<<<<<<<<< * else: * dst.suboffsets[suboffset_dim[0]] += start * stride */ __pyx_v_dst->data = (__pyx_v_dst->data + (__pyx_v_start * __pyx_v_stride)); /* "View.MemoryView":889 * * * if suboffset_dim[0] < 0: # <<<<<<<<<<<<<< * dst.data += start * stride * else: */ goto __pyx_L23; } /* "View.MemoryView":892 * dst.data += start * stride * else: * dst.suboffsets[suboffset_dim[0]] += start * stride # <<<<<<<<<<<<<< * * if suboffset >= 0: */ /*else*/ { __pyx_t_3 = (__pyx_v_suboffset_dim[0]); (__pyx_v_dst->suboffsets[__pyx_t_3]) = ((__pyx_v_dst->suboffsets[__pyx_t_3]) + (__pyx_v_start * __pyx_v_stride)); } __pyx_L23:; /* "View.MemoryView":894 * dst.suboffsets[suboffset_dim[0]] += start * stride * * if suboffset >= 0: # <<<<<<<<<<<<<< * if not is_slice: * if new_ndim == 0: */ __pyx_t_2 = ((__pyx_v_suboffset >= 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":895 * * if suboffset >= 0: * if not is_slice: # <<<<<<<<<<<<<< * if new_ndim == 0: * dst.data = ( dst.data)[0] + suboffset */ __pyx_t_2 = ((!(__pyx_v_is_slice != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":896 * if suboffset >= 0: * if not is_slice: * if new_ndim == 0: # <<<<<<<<<<<<<< * dst.data = ( dst.data)[0] + suboffset * else: */ __pyx_t_2 = ((__pyx_v_new_ndim == 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":897 * if not is_slice: * if new_ndim == 0: * dst.data = ( dst.data)[0] + suboffset # <<<<<<<<<<<<<< * else: * _err_dim(IndexError, "All dimensions preceding dimension %d " */ __pyx_v_dst->data = ((((char **)__pyx_v_dst->data)[0]) + __pyx_v_suboffset); /* "View.MemoryView":896 * if suboffset >= 0: * if not is_slice: * if new_ndim == 0: # <<<<<<<<<<<<<< * dst.data = ( dst.data)[0] + suboffset * else: */ goto __pyx_L26; } /* "View.MemoryView":899 * dst.data = ( dst.data)[0] + suboffset * else: * _err_dim(IndexError, "All dimensions preceding dimension %d " # <<<<<<<<<<<<<< * "must be indexed and not sliced", dim) * else: */ /*else*/ { /* "View.MemoryView":900 * else: * _err_dim(IndexError, "All dimensions preceding dimension %d " * "must be indexed and not sliced", dim) # <<<<<<<<<<<<<< * else: * suboffset_dim[0] = new_ndim */ __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_IndexError, ((char *)"All dimensions preceding dimension %d must be indexed and not sliced"), __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 899, __pyx_L1_error) } __pyx_L26:; /* "View.MemoryView":895 * * if suboffset >= 0: * if not is_slice: # <<<<<<<<<<<<<< * if new_ndim == 0: * dst.data = ( dst.data)[0] + suboffset */ goto __pyx_L25; } /* "View.MemoryView":902 * "must be indexed and not sliced", dim) * else: * suboffset_dim[0] = new_ndim # <<<<<<<<<<<<<< * * return 0 */ /*else*/ { (__pyx_v_suboffset_dim[0]) = __pyx_v_new_ndim; } __pyx_L25:; /* "View.MemoryView":894 * dst.suboffsets[suboffset_dim[0]] += start * stride * * if suboffset >= 0: # <<<<<<<<<<<<<< * if not is_slice: * if new_ndim == 0: */ } /* "View.MemoryView":904 * suboffset_dim[0] = new_ndim * * return 0 # <<<<<<<<<<<<<< * * */ __pyx_r = 0; goto __pyx_L0; /* "View.MemoryView":807 * * @cname('__pyx_memoryview_slice_memviewslice') * cdef int slice_memviewslice( # <<<<<<<<<<<<<< * __Pyx_memviewslice *dst, * Py_ssize_t shape, Py_ssize_t stride, Py_ssize_t suboffset, */ /* function exit code */ __pyx_L1_error:; { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_AddTraceback("View.MemoryView.slice_memviewslice", __pyx_clineno, __pyx_lineno, __pyx_filename); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif } __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "View.MemoryView":910 * * @cname('__pyx_pybuffer_index') * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, # <<<<<<<<<<<<<< * Py_ssize_t dim) except NULL: * cdef Py_ssize_t shape, stride, suboffset = -1 */ static char *__pyx_pybuffer_index(Py_buffer *__pyx_v_view, char *__pyx_v_bufp, Py_ssize_t __pyx_v_index, Py_ssize_t __pyx_v_dim) { Py_ssize_t __pyx_v_shape; Py_ssize_t __pyx_v_stride; Py_ssize_t __pyx_v_suboffset; Py_ssize_t __pyx_v_itemsize; char *__pyx_v_resultp; char *__pyx_r; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; __Pyx_RefNannySetupContext("pybuffer_index", 0); /* "View.MemoryView":912 * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, * Py_ssize_t dim) except NULL: * cdef Py_ssize_t shape, stride, suboffset = -1 # <<<<<<<<<<<<<< * cdef Py_ssize_t itemsize = view.itemsize * cdef char *resultp */ __pyx_v_suboffset = -1L; /* "View.MemoryView":913 * Py_ssize_t dim) except NULL: * cdef Py_ssize_t shape, stride, suboffset = -1 * cdef Py_ssize_t itemsize = view.itemsize # <<<<<<<<<<<<<< * cdef char *resultp * */ __pyx_t_1 = __pyx_v_view->itemsize; __pyx_v_itemsize = __pyx_t_1; /* "View.MemoryView":916 * cdef char *resultp * * if view.ndim == 0: # <<<<<<<<<<<<<< * shape = view.len / itemsize * stride = itemsize */ __pyx_t_2 = ((__pyx_v_view->ndim == 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":917 * * if view.ndim == 0: * shape = view.len / itemsize # <<<<<<<<<<<<<< * stride = itemsize * else: */ if (unlikely(__pyx_v_itemsize == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero"); __PYX_ERR(1, 917, __pyx_L1_error) } else if (sizeof(Py_ssize_t) == sizeof(long) && (!(((Py_ssize_t)-1) > 0)) && unlikely(__pyx_v_itemsize == (Py_ssize_t)-1) && unlikely(UNARY_NEG_WOULD_OVERFLOW(__pyx_v_view->len))) { PyErr_SetString(PyExc_OverflowError, "value too large to perform division"); __PYX_ERR(1, 917, __pyx_L1_error) } __pyx_v_shape = __Pyx_div_Py_ssize_t(__pyx_v_view->len, __pyx_v_itemsize); /* "View.MemoryView":918 * if view.ndim == 0: * shape = view.len / itemsize * stride = itemsize # <<<<<<<<<<<<<< * else: * shape = view.shape[dim] */ __pyx_v_stride = __pyx_v_itemsize; /* "View.MemoryView":916 * cdef char *resultp * * if view.ndim == 0: # <<<<<<<<<<<<<< * shape = view.len / itemsize * stride = itemsize */ goto __pyx_L3; } /* "View.MemoryView":920 * stride = itemsize * else: * shape = view.shape[dim] # <<<<<<<<<<<<<< * stride = view.strides[dim] * if view.suboffsets != NULL: */ /*else*/ { __pyx_v_shape = (__pyx_v_view->shape[__pyx_v_dim]); /* "View.MemoryView":921 * else: * shape = view.shape[dim] * stride = view.strides[dim] # <<<<<<<<<<<<<< * if view.suboffsets != NULL: * suboffset = view.suboffsets[dim] */ __pyx_v_stride = (__pyx_v_view->strides[__pyx_v_dim]); /* "View.MemoryView":922 * shape = view.shape[dim] * stride = view.strides[dim] * if view.suboffsets != NULL: # <<<<<<<<<<<<<< * suboffset = view.suboffsets[dim] * */ __pyx_t_2 = ((__pyx_v_view->suboffsets != NULL) != 0); if (__pyx_t_2) { /* "View.MemoryView":923 * stride = view.strides[dim] * if view.suboffsets != NULL: * suboffset = view.suboffsets[dim] # <<<<<<<<<<<<<< * * if index < 0: */ __pyx_v_suboffset = (__pyx_v_view->suboffsets[__pyx_v_dim]); /* "View.MemoryView":922 * shape = view.shape[dim] * stride = view.strides[dim] * if view.suboffsets != NULL: # <<<<<<<<<<<<<< * suboffset = view.suboffsets[dim] * */ } } __pyx_L3:; /* "View.MemoryView":925 * suboffset = view.suboffsets[dim] * * if index < 0: # <<<<<<<<<<<<<< * index += view.shape[dim] * if index < 0: */ __pyx_t_2 = ((__pyx_v_index < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":926 * * if index < 0: * index += view.shape[dim] # <<<<<<<<<<<<<< * if index < 0: * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) */ __pyx_v_index = (__pyx_v_index + (__pyx_v_view->shape[__pyx_v_dim])); /* "View.MemoryView":927 * if index < 0: * index += view.shape[dim] * if index < 0: # <<<<<<<<<<<<<< * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * */ __pyx_t_2 = ((__pyx_v_index < 0) != 0); if (unlikely(__pyx_t_2)) { /* "View.MemoryView":928 * index += view.shape[dim] * if index < 0: * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) # <<<<<<<<<<<<<< * * if index >= shape: */ __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_dim); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_IndexError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 928, __pyx_L1_error) /* "View.MemoryView":927 * if index < 0: * index += view.shape[dim] * if index < 0: # <<<<<<<<<<<<<< * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * */ } /* "View.MemoryView":925 * suboffset = view.suboffsets[dim] * * if index < 0: # <<<<<<<<<<<<<< * index += view.shape[dim] * if index < 0: */ } /* "View.MemoryView":930 * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * * if index >= shape: # <<<<<<<<<<<<<< * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * */ __pyx_t_2 = ((__pyx_v_index >= __pyx_v_shape) != 0); if (unlikely(__pyx_t_2)) { /* "View.MemoryView":931 * * if index >= shape: * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) # <<<<<<<<<<<<<< * * resultp = bufp + index * stride */ __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_dim); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_IndexError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 931, __pyx_L1_error) /* "View.MemoryView":930 * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * * if index >= shape: # <<<<<<<<<<<<<< * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * */ } /* "View.MemoryView":933 * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * * resultp = bufp + index * stride # <<<<<<<<<<<<<< * if suboffset >= 0: * resultp = ( resultp)[0] + suboffset */ __pyx_v_resultp = (__pyx_v_bufp + (__pyx_v_index * __pyx_v_stride)); /* "View.MemoryView":934 * * resultp = bufp + index * stride * if suboffset >= 0: # <<<<<<<<<<<<<< * resultp = ( resultp)[0] + suboffset * */ __pyx_t_2 = ((__pyx_v_suboffset >= 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":935 * resultp = bufp + index * stride * if suboffset >= 0: * resultp = ( resultp)[0] + suboffset # <<<<<<<<<<<<<< * * return resultp */ __pyx_v_resultp = ((((char **)__pyx_v_resultp)[0]) + __pyx_v_suboffset); /* "View.MemoryView":934 * * resultp = bufp + index * stride * if suboffset >= 0: # <<<<<<<<<<<<<< * resultp = ( resultp)[0] + suboffset * */ } /* "View.MemoryView":937 * resultp = ( resultp)[0] + suboffset * * return resultp # <<<<<<<<<<<<<< * * */ __pyx_r = __pyx_v_resultp; goto __pyx_L0; /* "View.MemoryView":910 * * @cname('__pyx_pybuffer_index') * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, # <<<<<<<<<<<<<< * Py_ssize_t dim) except NULL: * cdef Py_ssize_t shape, stride, suboffset = -1 */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("View.MemoryView.pybuffer_index", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":943 * * @cname('__pyx_memslice_transpose') * cdef int transpose_memslice(__Pyx_memviewslice *memslice) nogil except 0: # <<<<<<<<<<<<<< * cdef int ndim = memslice.memview.view.ndim * */ static int __pyx_memslice_transpose(__Pyx_memviewslice *__pyx_v_memslice) { int __pyx_v_ndim; Py_ssize_t *__pyx_v_shape; Py_ssize_t *__pyx_v_strides; int __pyx_v_i; int __pyx_v_j; int __pyx_r; int __pyx_t_1; Py_ssize_t *__pyx_t_2; long __pyx_t_3; long __pyx_t_4; Py_ssize_t __pyx_t_5; Py_ssize_t __pyx_t_6; int __pyx_t_7; int __pyx_t_8; int __pyx_t_9; /* "View.MemoryView":944 * @cname('__pyx_memslice_transpose') * cdef int transpose_memslice(__Pyx_memviewslice *memslice) nogil except 0: * cdef int ndim = memslice.memview.view.ndim # <<<<<<<<<<<<<< * * cdef Py_ssize_t *shape = memslice.shape */ __pyx_t_1 = __pyx_v_memslice->memview->view.ndim; __pyx_v_ndim = __pyx_t_1; /* "View.MemoryView":946 * cdef int ndim = memslice.memview.view.ndim * * cdef Py_ssize_t *shape = memslice.shape # <<<<<<<<<<<<<< * cdef Py_ssize_t *strides = memslice.strides * */ __pyx_t_2 = __pyx_v_memslice->shape; __pyx_v_shape = __pyx_t_2; /* "View.MemoryView":947 * * cdef Py_ssize_t *shape = memslice.shape * cdef Py_ssize_t *strides = memslice.strides # <<<<<<<<<<<<<< * * */ __pyx_t_2 = __pyx_v_memslice->strides; __pyx_v_strides = __pyx_t_2; /* "View.MemoryView":951 * * cdef int i, j * for i in range(ndim / 2): # <<<<<<<<<<<<<< * j = ndim - 1 - i * strides[i], strides[j] = strides[j], strides[i] */ __pyx_t_3 = __Pyx_div_long(__pyx_v_ndim, 2); __pyx_t_4 = __pyx_t_3; for (__pyx_t_1 = 0; __pyx_t_1 < __pyx_t_4; __pyx_t_1+=1) { __pyx_v_i = __pyx_t_1; /* "View.MemoryView":952 * cdef int i, j * for i in range(ndim / 2): * j = ndim - 1 - i # <<<<<<<<<<<<<< * strides[i], strides[j] = strides[j], strides[i] * shape[i], shape[j] = shape[j], shape[i] */ __pyx_v_j = ((__pyx_v_ndim - 1) - __pyx_v_i); /* "View.MemoryView":953 * for i in range(ndim / 2): * j = ndim - 1 - i * strides[i], strides[j] = strides[j], strides[i] # <<<<<<<<<<<<<< * shape[i], shape[j] = shape[j], shape[i] * */ __pyx_t_5 = (__pyx_v_strides[__pyx_v_j]); __pyx_t_6 = (__pyx_v_strides[__pyx_v_i]); (__pyx_v_strides[__pyx_v_i]) = __pyx_t_5; (__pyx_v_strides[__pyx_v_j]) = __pyx_t_6; /* "View.MemoryView":954 * j = ndim - 1 - i * strides[i], strides[j] = strides[j], strides[i] * shape[i], shape[j] = shape[j], shape[i] # <<<<<<<<<<<<<< * * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: */ __pyx_t_6 = (__pyx_v_shape[__pyx_v_j]); __pyx_t_5 = (__pyx_v_shape[__pyx_v_i]); (__pyx_v_shape[__pyx_v_i]) = __pyx_t_6; (__pyx_v_shape[__pyx_v_j]) = __pyx_t_5; /* "View.MemoryView":956 * shape[i], shape[j] = shape[j], shape[i] * * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: # <<<<<<<<<<<<<< * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") * */ __pyx_t_8 = (((__pyx_v_memslice->suboffsets[__pyx_v_i]) >= 0) != 0); if (!__pyx_t_8) { } else { __pyx_t_7 = __pyx_t_8; goto __pyx_L6_bool_binop_done; } __pyx_t_8 = (((__pyx_v_memslice->suboffsets[__pyx_v_j]) >= 0) != 0); __pyx_t_7 = __pyx_t_8; __pyx_L6_bool_binop_done:; if (__pyx_t_7) { /* "View.MemoryView":957 * * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") # <<<<<<<<<<<<<< * * return 1 */ __pyx_t_9 = __pyx_memoryview_err(__pyx_builtin_ValueError, ((char *)"Cannot transpose memoryview with indirect dimensions")); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(1, 957, __pyx_L1_error) /* "View.MemoryView":956 * shape[i], shape[j] = shape[j], shape[i] * * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: # <<<<<<<<<<<<<< * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") * */ } } /* "View.MemoryView":959 * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") * * return 1 # <<<<<<<<<<<<<< * * */ __pyx_r = 1; goto __pyx_L0; /* "View.MemoryView":943 * * @cname('__pyx_memslice_transpose') * cdef int transpose_memslice(__Pyx_memviewslice *memslice) nogil except 0: # <<<<<<<<<<<<<< * cdef int ndim = memslice.memview.view.ndim * */ /* function exit code */ __pyx_L1_error:; { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_AddTraceback("View.MemoryView.transpose_memslice", __pyx_clineno, __pyx_lineno, __pyx_filename); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif } __pyx_r = 0; __pyx_L0:; return __pyx_r; } /* "View.MemoryView":976 * cdef int (*to_dtype_func)(char *, object) except 0 * * def __dealloc__(self): # <<<<<<<<<<<<<< * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) * */ /* Python wrapper */ static void __pyx_memoryviewslice___dealloc__(PyObject *__pyx_v_self); /*proto*/ static void __pyx_memoryviewslice___dealloc__(PyObject *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(struct __pyx_memoryviewslice_obj *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__", 0); /* "View.MemoryView":977 * * def __dealloc__(self): * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) # <<<<<<<<<<<<<< * * cdef convert_item_to_object(self, char *itemp): */ __PYX_XDEC_MEMVIEW((&__pyx_v_self->from_slice), 1); /* "View.MemoryView":976 * cdef int (*to_dtype_func)(char *, object) except 0 * * def __dealloc__(self): # <<<<<<<<<<<<<< * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) * */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "View.MemoryView":979 * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) * * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< * if self.to_object_func != NULL: * return self.to_object_func(itemp) */ static PyObject *__pyx_memoryviewslice_convert_item_to_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("convert_item_to_object", 0); /* "View.MemoryView":980 * * cdef convert_item_to_object(self, char *itemp): * if self.to_object_func != NULL: # <<<<<<<<<<<<<< * return self.to_object_func(itemp) * else: */ __pyx_t_1 = ((__pyx_v_self->to_object_func != NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":981 * cdef convert_item_to_object(self, char *itemp): * if self.to_object_func != NULL: * return self.to_object_func(itemp) # <<<<<<<<<<<<<< * else: * return memoryview.convert_item_to_object(self, itemp) */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __pyx_v_self->to_object_func(__pyx_v_itemp); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":980 * * cdef convert_item_to_object(self, char *itemp): * if self.to_object_func != NULL: # <<<<<<<<<<<<<< * return self.to_object_func(itemp) * else: */ } /* "View.MemoryView":983 * return self.to_object_func(itemp) * else: * return memoryview.convert_item_to_object(self, itemp) # <<<<<<<<<<<<<< * * cdef assign_item_from_object(self, char *itemp, object value): */ /*else*/ { __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __pyx_memoryview_convert_item_to_object(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_itemp); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; } /* "View.MemoryView":979 * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) * * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< * if self.to_object_func != NULL: * return self.to_object_func(itemp) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView._memoryviewslice.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":985 * return memoryview.convert_item_to_object(self, itemp) * * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< * if self.to_dtype_func != NULL: * self.to_dtype_func(itemp, value) */ static PyObject *__pyx_memoryviewslice_assign_item_from_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("assign_item_from_object", 0); /* "View.MemoryView":986 * * cdef assign_item_from_object(self, char *itemp, object value): * if self.to_dtype_func != NULL: # <<<<<<<<<<<<<< * self.to_dtype_func(itemp, value) * else: */ __pyx_t_1 = ((__pyx_v_self->to_dtype_func != NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":987 * cdef assign_item_from_object(self, char *itemp, object value): * if self.to_dtype_func != NULL: * self.to_dtype_func(itemp, value) # <<<<<<<<<<<<<< * else: * memoryview.assign_item_from_object(self, itemp, value) */ __pyx_t_2 = __pyx_v_self->to_dtype_func(__pyx_v_itemp, __pyx_v_value); if (unlikely(__pyx_t_2 == ((int)0))) __PYX_ERR(1, 987, __pyx_L1_error) /* "View.MemoryView":986 * * cdef assign_item_from_object(self, char *itemp, object value): * if self.to_dtype_func != NULL: # <<<<<<<<<<<<<< * self.to_dtype_func(itemp, value) * else: */ goto __pyx_L3; } /* "View.MemoryView":989 * self.to_dtype_func(itemp, value) * else: * memoryview.assign_item_from_object(self, itemp, value) # <<<<<<<<<<<<<< * * @property */ /*else*/ { __pyx_t_3 = __pyx_memoryview_assign_item_from_object(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_itemp, __pyx_v_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_L3:; /* "View.MemoryView":985 * return memoryview.convert_item_to_object(self, itemp) * * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< * if self.to_dtype_func != NULL: * self.to_dtype_func(itemp, value) */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView._memoryviewslice.assign_item_from_object", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":992 * * @property * def base(self): # <<<<<<<<<<<<<< * return self.from_object * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(struct __pyx_memoryviewslice_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":993 * @property * def base(self): * return self.from_object # <<<<<<<<<<<<<< * * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->from_object); __pyx_r = __pyx_v_self->from_object; goto __pyx_L0; /* "View.MemoryView":992 * * @property * def base(self): # <<<<<<<<<<<<<< * return self.from_object * */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_memoryviewslice_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw___pyx_memoryviewslice_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_memoryviewslice___reduce_cython__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_memoryviewslice___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__49, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView._memoryviewslice.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_memoryviewslice_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw___pyx_memoryviewslice_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_memoryviewslice_2__setstate_cython__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_memoryviewslice_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__50, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView._memoryviewslice.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":999 * * @cname('__pyx_memoryview_fromslice') * cdef memoryview_fromslice(__Pyx_memviewslice memviewslice, # <<<<<<<<<<<<<< * int ndim, * object (*to_object_func)(char *), */ static PyObject *__pyx_memoryview_fromslice(__Pyx_memviewslice __pyx_v_memviewslice, int __pyx_v_ndim, PyObject *(*__pyx_v_to_object_func)(char *), int (*__pyx_v_to_dtype_func)(char *, PyObject *), int __pyx_v_dtype_is_object) { struct __pyx_memoryviewslice_obj *__pyx_v_result = 0; Py_ssize_t __pyx_v_suboffset; PyObject *__pyx_v_length = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_TypeInfo *__pyx_t_4; Py_buffer __pyx_t_5; Py_ssize_t *__pyx_t_6; Py_ssize_t *__pyx_t_7; Py_ssize_t *__pyx_t_8; Py_ssize_t __pyx_t_9; __Pyx_RefNannySetupContext("memoryview_fromslice", 0); /* "View.MemoryView":1007 * cdef _memoryviewslice result * * if memviewslice.memview == Py_None: # <<<<<<<<<<<<<< * return None * */ __pyx_t_1 = ((((PyObject *)__pyx_v_memviewslice.memview) == Py_None) != 0); if (__pyx_t_1) { /* "View.MemoryView":1008 * * if memviewslice.memview == Py_None: * return None # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; /* "View.MemoryView":1007 * cdef _memoryviewslice result * * if memviewslice.memview == Py_None: # <<<<<<<<<<<<<< * return None * */ } /* "View.MemoryView":1013 * * * result = _memoryviewslice(None, 0, dtype_is_object) # <<<<<<<<<<<<<< * * result.from_slice = memviewslice */ __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_3, 0, Py_None); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryviewslice_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_result = ((struct __pyx_memoryviewslice_obj *)__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":1015 * result = _memoryviewslice(None, 0, dtype_is_object) * * result.from_slice = memviewslice # <<<<<<<<<<<<<< * __PYX_INC_MEMVIEW(&memviewslice, 1) * */ __pyx_v_result->from_slice = __pyx_v_memviewslice; /* "View.MemoryView":1016 * * result.from_slice = memviewslice * __PYX_INC_MEMVIEW(&memviewslice, 1) # <<<<<<<<<<<<<< * * result.from_object = ( memviewslice.memview).base */ __PYX_INC_MEMVIEW((&__pyx_v_memviewslice), 1); /* "View.MemoryView":1018 * __PYX_INC_MEMVIEW(&memviewslice, 1) * * result.from_object = ( memviewslice.memview).base # <<<<<<<<<<<<<< * result.typeinfo = memviewslice.memview.typeinfo * */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_memviewslice.memview), __pyx_n_s_base); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_result->from_object); __Pyx_DECREF(__pyx_v_result->from_object); __pyx_v_result->from_object = __pyx_t_2; __pyx_t_2 = 0; /* "View.MemoryView":1019 * * result.from_object = ( memviewslice.memview).base * result.typeinfo = memviewslice.memview.typeinfo # <<<<<<<<<<<<<< * * result.view = memviewslice.memview.view */ __pyx_t_4 = __pyx_v_memviewslice.memview->typeinfo; __pyx_v_result->__pyx_base.typeinfo = __pyx_t_4; /* "View.MemoryView":1021 * result.typeinfo = memviewslice.memview.typeinfo * * result.view = memviewslice.memview.view # <<<<<<<<<<<<<< * result.view.buf = memviewslice.data * result.view.ndim = ndim */ __pyx_t_5 = __pyx_v_memviewslice.memview->view; __pyx_v_result->__pyx_base.view = __pyx_t_5; /* "View.MemoryView":1022 * * result.view = memviewslice.memview.view * result.view.buf = memviewslice.data # <<<<<<<<<<<<<< * result.view.ndim = ndim * (<__pyx_buffer *> &result.view).obj = Py_None */ __pyx_v_result->__pyx_base.view.buf = ((void *)__pyx_v_memviewslice.data); /* "View.MemoryView":1023 * result.view = memviewslice.memview.view * result.view.buf = memviewslice.data * result.view.ndim = ndim # <<<<<<<<<<<<<< * (<__pyx_buffer *> &result.view).obj = Py_None * Py_INCREF(Py_None) */ __pyx_v_result->__pyx_base.view.ndim = __pyx_v_ndim; /* "View.MemoryView":1024 * result.view.buf = memviewslice.data * result.view.ndim = ndim * (<__pyx_buffer *> &result.view).obj = Py_None # <<<<<<<<<<<<<< * Py_INCREF(Py_None) * */ ((Py_buffer *)(&__pyx_v_result->__pyx_base.view))->obj = Py_None; /* "View.MemoryView":1025 * result.view.ndim = ndim * (<__pyx_buffer *> &result.view).obj = Py_None * Py_INCREF(Py_None) # <<<<<<<<<<<<<< * * if (memviewslice.memview).flags & PyBUF_WRITABLE: */ Py_INCREF(Py_None); /* "View.MemoryView":1027 * Py_INCREF(Py_None) * * if (memviewslice.memview).flags & PyBUF_WRITABLE: # <<<<<<<<<<<<<< * result.flags = PyBUF_RECORDS * else: */ __pyx_t_1 = ((((struct __pyx_memoryview_obj *)__pyx_v_memviewslice.memview)->flags & PyBUF_WRITABLE) != 0); if (__pyx_t_1) { /* "View.MemoryView":1028 * * if (memviewslice.memview).flags & PyBUF_WRITABLE: * result.flags = PyBUF_RECORDS # <<<<<<<<<<<<<< * else: * result.flags = PyBUF_RECORDS_RO */ __pyx_v_result->__pyx_base.flags = PyBUF_RECORDS; /* "View.MemoryView":1027 * Py_INCREF(Py_None) * * if (memviewslice.memview).flags & PyBUF_WRITABLE: # <<<<<<<<<<<<<< * result.flags = PyBUF_RECORDS * else: */ goto __pyx_L4; } /* "View.MemoryView":1030 * result.flags = PyBUF_RECORDS * else: * result.flags = PyBUF_RECORDS_RO # <<<<<<<<<<<<<< * * result.view.shape = result.from_slice.shape */ /*else*/ { __pyx_v_result->__pyx_base.flags = PyBUF_RECORDS_RO; } __pyx_L4:; /* "View.MemoryView":1032 * result.flags = PyBUF_RECORDS_RO * * result.view.shape = result.from_slice.shape # <<<<<<<<<<<<<< * result.view.strides = result.from_slice.strides * */ __pyx_v_result->__pyx_base.view.shape = ((Py_ssize_t *)__pyx_v_result->from_slice.shape); /* "View.MemoryView":1033 * * result.view.shape = result.from_slice.shape * result.view.strides = result.from_slice.strides # <<<<<<<<<<<<<< * * */ __pyx_v_result->__pyx_base.view.strides = ((Py_ssize_t *)__pyx_v_result->from_slice.strides); /* "View.MemoryView":1036 * * * result.view.suboffsets = NULL # <<<<<<<<<<<<<< * for suboffset in result.from_slice.suboffsets[:ndim]: * if suboffset >= 0: */ __pyx_v_result->__pyx_base.view.suboffsets = NULL; /* "View.MemoryView":1037 * * result.view.suboffsets = NULL * for suboffset in result.from_slice.suboffsets[:ndim]: # <<<<<<<<<<<<<< * if suboffset >= 0: * result.view.suboffsets = result.from_slice.suboffsets */ __pyx_t_7 = (__pyx_v_result->from_slice.suboffsets + __pyx_v_ndim); for (__pyx_t_8 = __pyx_v_result->from_slice.suboffsets; __pyx_t_8 < __pyx_t_7; __pyx_t_8++) { __pyx_t_6 = __pyx_t_8; __pyx_v_suboffset = (__pyx_t_6[0]); /* "View.MemoryView":1038 * result.view.suboffsets = NULL * for suboffset in result.from_slice.suboffsets[:ndim]: * if suboffset >= 0: # <<<<<<<<<<<<<< * result.view.suboffsets = result.from_slice.suboffsets * break */ __pyx_t_1 = ((__pyx_v_suboffset >= 0) != 0); if (__pyx_t_1) { /* "View.MemoryView":1039 * for suboffset in result.from_slice.suboffsets[:ndim]: * if suboffset >= 0: * result.view.suboffsets = result.from_slice.suboffsets # <<<<<<<<<<<<<< * break * */ __pyx_v_result->__pyx_base.view.suboffsets = ((Py_ssize_t *)__pyx_v_result->from_slice.suboffsets); /* "View.MemoryView":1040 * if suboffset >= 0: * result.view.suboffsets = result.from_slice.suboffsets * break # <<<<<<<<<<<<<< * * result.view.len = result.view.itemsize */ goto __pyx_L6_break; /* "View.MemoryView":1038 * result.view.suboffsets = NULL * for suboffset in result.from_slice.suboffsets[:ndim]: * if suboffset >= 0: # <<<<<<<<<<<<<< * result.view.suboffsets = result.from_slice.suboffsets * break */ } } __pyx_L6_break:; /* "View.MemoryView":1042 * break * * result.view.len = result.view.itemsize # <<<<<<<<<<<<<< * for length in result.view.shape[:ndim]: * result.view.len *= length */ __pyx_t_9 = __pyx_v_result->__pyx_base.view.itemsize; __pyx_v_result->__pyx_base.view.len = __pyx_t_9; /* "View.MemoryView":1043 * * result.view.len = result.view.itemsize * for length in result.view.shape[:ndim]: # <<<<<<<<<<<<<< * result.view.len *= length * */ __pyx_t_7 = (__pyx_v_result->__pyx_base.view.shape + __pyx_v_ndim); for (__pyx_t_8 = __pyx_v_result->__pyx_base.view.shape; __pyx_t_8 < __pyx_t_7; __pyx_t_8++) { __pyx_t_6 = __pyx_t_8; __pyx_t_2 = PyInt_FromSsize_t((__pyx_t_6[0])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XDECREF_SET(__pyx_v_length, __pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":1044 * result.view.len = result.view.itemsize * for length in result.view.shape[:ndim]: * result.view.len *= length # <<<<<<<<<<<<<< * * result.to_object_func = to_object_func */ __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_result->__pyx_base.view.len); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_InPlaceMultiply(__pyx_t_2, __pyx_v_length); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 1044, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_result->__pyx_base.view.len = __pyx_t_9; } /* "View.MemoryView":1046 * result.view.len *= length * * result.to_object_func = to_object_func # <<<<<<<<<<<<<< * result.to_dtype_func = to_dtype_func * */ __pyx_v_result->to_object_func = __pyx_v_to_object_func; /* "View.MemoryView":1047 * * result.to_object_func = to_object_func * result.to_dtype_func = to_dtype_func # <<<<<<<<<<<<<< * * return result */ __pyx_v_result->to_dtype_func = __pyx_v_to_dtype_func; /* "View.MemoryView":1049 * result.to_dtype_func = to_dtype_func * * return result # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_get_slice_from_memoryview') */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_result)); __pyx_r = ((PyObject *)__pyx_v_result); goto __pyx_L0; /* "View.MemoryView":999 * * @cname('__pyx_memoryview_fromslice') * cdef memoryview_fromslice(__Pyx_memviewslice memviewslice, # <<<<<<<<<<<<<< * int ndim, * object (*to_object_func)(char *), */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview_fromslice", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_result); __Pyx_XDECREF(__pyx_v_length); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":1052 * * @cname('__pyx_memoryview_get_slice_from_memoryview') * cdef __Pyx_memviewslice *get_slice_from_memview(memoryview memview, # <<<<<<<<<<<<<< * __Pyx_memviewslice *mslice): * cdef _memoryviewslice obj */ static __Pyx_memviewslice *__pyx_memoryview_get_slice_from_memoryview(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_mslice) { struct __pyx_memoryviewslice_obj *__pyx_v_obj = 0; __Pyx_memviewslice *__pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("get_slice_from_memview", 0); /* "View.MemoryView":1055 * __Pyx_memviewslice *mslice): * cdef _memoryviewslice obj * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * obj = memview * return &obj.from_slice */ __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":1056 * cdef _memoryviewslice obj * if isinstance(memview, _memoryviewslice): * obj = memview # <<<<<<<<<<<<<< * return &obj.from_slice * else: */ if (!(likely(((((PyObject *)__pyx_v_memview)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type))))) __PYX_ERR(1, 1056, __pyx_L1_error) __pyx_t_3 = ((PyObject *)__pyx_v_memview); __Pyx_INCREF(__pyx_t_3); __pyx_v_obj = ((struct __pyx_memoryviewslice_obj *)__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":1057 * if isinstance(memview, _memoryviewslice): * obj = memview * return &obj.from_slice # <<<<<<<<<<<<<< * else: * slice_copy(memview, mslice) */ __pyx_r = (&__pyx_v_obj->from_slice); goto __pyx_L0; /* "View.MemoryView":1055 * __Pyx_memviewslice *mslice): * cdef _memoryviewslice obj * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * obj = memview * return &obj.from_slice */ } /* "View.MemoryView":1059 * return &obj.from_slice * else: * slice_copy(memview, mslice) # <<<<<<<<<<<<<< * return mslice * */ /*else*/ { __pyx_memoryview_slice_copy(__pyx_v_memview, __pyx_v_mslice); /* "View.MemoryView":1060 * else: * slice_copy(memview, mslice) * return mslice # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_slice_copy') */ __pyx_r = __pyx_v_mslice; goto __pyx_L0; } /* "View.MemoryView":1052 * * @cname('__pyx_memoryview_get_slice_from_memoryview') * cdef __Pyx_memviewslice *get_slice_from_memview(memoryview memview, # <<<<<<<<<<<<<< * __Pyx_memviewslice *mslice): * cdef _memoryviewslice obj */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_WriteUnraisable("View.MemoryView.get_slice_from_memview", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_obj); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":1063 * * @cname('__pyx_memoryview_slice_copy') * cdef void slice_copy(memoryview memview, __Pyx_memviewslice *dst): # <<<<<<<<<<<<<< * cdef int dim * cdef (Py_ssize_t*) shape, strides, suboffsets */ static void __pyx_memoryview_slice_copy(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_dst) { int __pyx_v_dim; Py_ssize_t *__pyx_v_shape; Py_ssize_t *__pyx_v_strides; Py_ssize_t *__pyx_v_suboffsets; __Pyx_RefNannyDeclarations Py_ssize_t *__pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; Py_ssize_t __pyx_t_5; __Pyx_RefNannySetupContext("slice_copy", 0); /* "View.MemoryView":1067 * cdef (Py_ssize_t*) shape, strides, suboffsets * * shape = memview.view.shape # <<<<<<<<<<<<<< * strides = memview.view.strides * suboffsets = memview.view.suboffsets */ __pyx_t_1 = __pyx_v_memview->view.shape; __pyx_v_shape = __pyx_t_1; /* "View.MemoryView":1068 * * shape = memview.view.shape * strides = memview.view.strides # <<<<<<<<<<<<<< * suboffsets = memview.view.suboffsets * */ __pyx_t_1 = __pyx_v_memview->view.strides; __pyx_v_strides = __pyx_t_1; /* "View.MemoryView":1069 * shape = memview.view.shape * strides = memview.view.strides * suboffsets = memview.view.suboffsets # <<<<<<<<<<<<<< * * dst.memview = <__pyx_memoryview *> memview */ __pyx_t_1 = __pyx_v_memview->view.suboffsets; __pyx_v_suboffsets = __pyx_t_1; /* "View.MemoryView":1071 * suboffsets = memview.view.suboffsets * * dst.memview = <__pyx_memoryview *> memview # <<<<<<<<<<<<<< * dst.data = memview.view.buf * */ __pyx_v_dst->memview = ((struct __pyx_memoryview_obj *)__pyx_v_memview); /* "View.MemoryView":1072 * * dst.memview = <__pyx_memoryview *> memview * dst.data = memview.view.buf # <<<<<<<<<<<<<< * * for dim in range(memview.view.ndim): */ __pyx_v_dst->data = ((char *)__pyx_v_memview->view.buf); /* "View.MemoryView":1074 * dst.data = memview.view.buf * * for dim in range(memview.view.ndim): # <<<<<<<<<<<<<< * dst.shape[dim] = shape[dim] * dst.strides[dim] = strides[dim] */ __pyx_t_2 = __pyx_v_memview->view.ndim; __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_dim = __pyx_t_4; /* "View.MemoryView":1075 * * for dim in range(memview.view.ndim): * dst.shape[dim] = shape[dim] # <<<<<<<<<<<<<< * dst.strides[dim] = strides[dim] * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1 */ (__pyx_v_dst->shape[__pyx_v_dim]) = (__pyx_v_shape[__pyx_v_dim]); /* "View.MemoryView":1076 * for dim in range(memview.view.ndim): * dst.shape[dim] = shape[dim] * dst.strides[dim] = strides[dim] # <<<<<<<<<<<<<< * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1 * */ (__pyx_v_dst->strides[__pyx_v_dim]) = (__pyx_v_strides[__pyx_v_dim]); /* "View.MemoryView":1077 * dst.shape[dim] = shape[dim] * dst.strides[dim] = strides[dim] * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1 # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_copy_object') */ if ((__pyx_v_suboffsets != 0)) { __pyx_t_5 = (__pyx_v_suboffsets[__pyx_v_dim]); } else { __pyx_t_5 = -1L; } (__pyx_v_dst->suboffsets[__pyx_v_dim]) = __pyx_t_5; } /* "View.MemoryView":1063 * * @cname('__pyx_memoryview_slice_copy') * cdef void slice_copy(memoryview memview, __Pyx_memviewslice *dst): # <<<<<<<<<<<<<< * cdef int dim * cdef (Py_ssize_t*) shape, strides, suboffsets */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "View.MemoryView":1080 * * @cname('__pyx_memoryview_copy_object') * cdef memoryview_copy(memoryview memview): # <<<<<<<<<<<<<< * "Create a new memoryview object" * cdef __Pyx_memviewslice memviewslice */ static PyObject *__pyx_memoryview_copy_object(struct __pyx_memoryview_obj *__pyx_v_memview) { __Pyx_memviewslice __pyx_v_memviewslice; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("memoryview_copy", 0); /* "View.MemoryView":1083 * "Create a new memoryview object" * cdef __Pyx_memviewslice memviewslice * slice_copy(memview, &memviewslice) # <<<<<<<<<<<<<< * return memoryview_copy_from_slice(memview, &memviewslice) * */ __pyx_memoryview_slice_copy(__pyx_v_memview, (&__pyx_v_memviewslice)); /* "View.MemoryView":1084 * cdef __Pyx_memviewslice memviewslice * slice_copy(memview, &memviewslice) * return memoryview_copy_from_slice(memview, &memviewslice) # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_copy_object_from_slice') */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_memoryview_copy_object_from_slice(__pyx_v_memview, (&__pyx_v_memviewslice)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":1080 * * @cname('__pyx_memoryview_copy_object') * cdef memoryview_copy(memoryview memview): # <<<<<<<<<<<<<< * "Create a new memoryview object" * cdef __Pyx_memviewslice memviewslice */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview_copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":1087 * * @cname('__pyx_memoryview_copy_object_from_slice') * cdef memoryview_copy_from_slice(memoryview memview, __Pyx_memviewslice *memviewslice): # <<<<<<<<<<<<<< * """ * Create a new memoryview object from a given memoryview object and slice. */ static PyObject *__pyx_memoryview_copy_object_from_slice(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_memviewslice) { PyObject *(*__pyx_v_to_object_func)(char *); int (*__pyx_v_to_dtype_func)(char *, PyObject *); PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *(*__pyx_t_3)(char *); int (*__pyx_t_4)(char *, PyObject *); PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("memoryview_copy_from_slice", 0); /* "View.MemoryView":1094 * cdef int (*to_dtype_func)(char *, object) except 0 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * to_object_func = (<_memoryviewslice> memview).to_object_func * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func */ __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":1095 * * if isinstance(memview, _memoryviewslice): * to_object_func = (<_memoryviewslice> memview).to_object_func # <<<<<<<<<<<<<< * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func * else: */ __pyx_t_3 = ((struct __pyx_memoryviewslice_obj *)__pyx_v_memview)->to_object_func; __pyx_v_to_object_func = __pyx_t_3; /* "View.MemoryView":1096 * if isinstance(memview, _memoryviewslice): * to_object_func = (<_memoryviewslice> memview).to_object_func * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func # <<<<<<<<<<<<<< * else: * to_object_func = NULL */ __pyx_t_4 = ((struct __pyx_memoryviewslice_obj *)__pyx_v_memview)->to_dtype_func; __pyx_v_to_dtype_func = __pyx_t_4; /* "View.MemoryView":1094 * cdef int (*to_dtype_func)(char *, object) except 0 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * to_object_func = (<_memoryviewslice> memview).to_object_func * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func */ goto __pyx_L3; } /* "View.MemoryView":1098 * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func * else: * to_object_func = NULL # <<<<<<<<<<<<<< * to_dtype_func = NULL * */ /*else*/ { __pyx_v_to_object_func = NULL; /* "View.MemoryView":1099 * else: * to_object_func = NULL * to_dtype_func = NULL # <<<<<<<<<<<<<< * * return memoryview_fromslice(memviewslice[0], memview.view.ndim, */ __pyx_v_to_dtype_func = NULL; } __pyx_L3:; /* "View.MemoryView":1101 * to_dtype_func = NULL * * return memoryview_fromslice(memviewslice[0], memview.view.ndim, # <<<<<<<<<<<<<< * to_object_func, to_dtype_func, * memview.dtype_is_object) */ __Pyx_XDECREF(__pyx_r); /* "View.MemoryView":1103 * return memoryview_fromslice(memviewslice[0], memview.view.ndim, * to_object_func, to_dtype_func, * memview.dtype_is_object) # <<<<<<<<<<<<<< * * */ __pyx_t_5 = __pyx_memoryview_fromslice((__pyx_v_memviewslice[0]), __pyx_v_memview->view.ndim, __pyx_v_to_object_func, __pyx_v_to_dtype_func, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0; /* "View.MemoryView":1087 * * @cname('__pyx_memoryview_copy_object_from_slice') * cdef memoryview_copy_from_slice(memoryview memview, __Pyx_memviewslice *memviewslice): # <<<<<<<<<<<<<< * """ * Create a new memoryview object from a given memoryview object and slice. */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.memoryview_copy_from_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":1109 * * * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: # <<<<<<<<<<<<<< * if arg < 0: * return -arg */ static Py_ssize_t abs_py_ssize_t(Py_ssize_t __pyx_v_arg) { Py_ssize_t __pyx_r; int __pyx_t_1; /* "View.MemoryView":1110 * * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: * if arg < 0: # <<<<<<<<<<<<<< * return -arg * else: */ __pyx_t_1 = ((__pyx_v_arg < 0) != 0); if (__pyx_t_1) { /* "View.MemoryView":1111 * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: * if arg < 0: * return -arg # <<<<<<<<<<<<<< * else: * return arg */ __pyx_r = (-__pyx_v_arg); goto __pyx_L0; /* "View.MemoryView":1110 * * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: * if arg < 0: # <<<<<<<<<<<<<< * return -arg * else: */ } /* "View.MemoryView":1113 * return -arg * else: * return arg # <<<<<<<<<<<<<< * * @cname('__pyx_get_best_slice_order') */ /*else*/ { __pyx_r = __pyx_v_arg; goto __pyx_L0; } /* "View.MemoryView":1109 * * * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: # <<<<<<<<<<<<<< * if arg < 0: * return -arg */ /* function exit code */ __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1116 * * @cname('__pyx_get_best_slice_order') * cdef char get_best_order(__Pyx_memviewslice *mslice, int ndim) nogil: # <<<<<<<<<<<<<< * """ * Figure out the best memory access order for a given slice. */ static char __pyx_get_best_slice_order(__Pyx_memviewslice *__pyx_v_mslice, int __pyx_v_ndim) { int __pyx_v_i; Py_ssize_t __pyx_v_c_stride; Py_ssize_t __pyx_v_f_stride; char __pyx_r; int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; /* "View.MemoryView":1121 * """ * cdef int i * cdef Py_ssize_t c_stride = 0 # <<<<<<<<<<<<<< * cdef Py_ssize_t f_stride = 0 * */ __pyx_v_c_stride = 0; /* "View.MemoryView":1122 * cdef int i * cdef Py_ssize_t c_stride = 0 * cdef Py_ssize_t f_stride = 0 # <<<<<<<<<<<<<< * * for i in range(ndim - 1, -1, -1): */ __pyx_v_f_stride = 0; /* "View.MemoryView":1124 * cdef Py_ssize_t f_stride = 0 * * for i in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<< * if mslice.shape[i] > 1: * c_stride = mslice.strides[i] */ for (__pyx_t_1 = (__pyx_v_ndim - 1); __pyx_t_1 > -1; __pyx_t_1-=1) { __pyx_v_i = __pyx_t_1; /* "View.MemoryView":1125 * * for i in range(ndim - 1, -1, -1): * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< * c_stride = mslice.strides[i] * break */ __pyx_t_2 = (((__pyx_v_mslice->shape[__pyx_v_i]) > 1) != 0); if (__pyx_t_2) { /* "View.MemoryView":1126 * for i in range(ndim - 1, -1, -1): * if mslice.shape[i] > 1: * c_stride = mslice.strides[i] # <<<<<<<<<<<<<< * break * */ __pyx_v_c_stride = (__pyx_v_mslice->strides[__pyx_v_i]); /* "View.MemoryView":1127 * if mslice.shape[i] > 1: * c_stride = mslice.strides[i] * break # <<<<<<<<<<<<<< * * for i in range(ndim): */ goto __pyx_L4_break; /* "View.MemoryView":1125 * * for i in range(ndim - 1, -1, -1): * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< * c_stride = mslice.strides[i] * break */ } } __pyx_L4_break:; /* "View.MemoryView":1129 * break * * for i in range(ndim): # <<<<<<<<<<<<<< * if mslice.shape[i] > 1: * f_stride = mslice.strides[i] */ __pyx_t_1 = __pyx_v_ndim; __pyx_t_3 = __pyx_t_1; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_i = __pyx_t_4; /* "View.MemoryView":1130 * * for i in range(ndim): * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< * f_stride = mslice.strides[i] * break */ __pyx_t_2 = (((__pyx_v_mslice->shape[__pyx_v_i]) > 1) != 0); if (__pyx_t_2) { /* "View.MemoryView":1131 * for i in range(ndim): * if mslice.shape[i] > 1: * f_stride = mslice.strides[i] # <<<<<<<<<<<<<< * break * */ __pyx_v_f_stride = (__pyx_v_mslice->strides[__pyx_v_i]); /* "View.MemoryView":1132 * if mslice.shape[i] > 1: * f_stride = mslice.strides[i] * break # <<<<<<<<<<<<<< * * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): */ goto __pyx_L7_break; /* "View.MemoryView":1130 * * for i in range(ndim): * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< * f_stride = mslice.strides[i] * break */ } } __pyx_L7_break:; /* "View.MemoryView":1134 * break * * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): # <<<<<<<<<<<<<< * return 'C' * else: */ __pyx_t_2 = ((abs_py_ssize_t(__pyx_v_c_stride) <= abs_py_ssize_t(__pyx_v_f_stride)) != 0); if (__pyx_t_2) { /* "View.MemoryView":1135 * * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): * return 'C' # <<<<<<<<<<<<<< * else: * return 'F' */ __pyx_r = 'C'; goto __pyx_L0; /* "View.MemoryView":1134 * break * * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): # <<<<<<<<<<<<<< * return 'C' * else: */ } /* "View.MemoryView":1137 * return 'C' * else: * return 'F' # <<<<<<<<<<<<<< * * @cython.cdivision(True) */ /*else*/ { __pyx_r = 'F'; goto __pyx_L0; } /* "View.MemoryView":1116 * * @cname('__pyx_get_best_slice_order') * cdef char get_best_order(__Pyx_memviewslice *mslice, int ndim) nogil: # <<<<<<<<<<<<<< * """ * Figure out the best memory access order for a given slice. */ /* function exit code */ __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1140 * * @cython.cdivision(True) * cdef void _copy_strided_to_strided(char *src_data, Py_ssize_t *src_strides, # <<<<<<<<<<<<<< * char *dst_data, Py_ssize_t *dst_strides, * Py_ssize_t *src_shape, Py_ssize_t *dst_shape, */ static void _copy_strided_to_strided(char *__pyx_v_src_data, Py_ssize_t *__pyx_v_src_strides, char *__pyx_v_dst_data, Py_ssize_t *__pyx_v_dst_strides, Py_ssize_t *__pyx_v_src_shape, Py_ssize_t *__pyx_v_dst_shape, int __pyx_v_ndim, size_t __pyx_v_itemsize) { CYTHON_UNUSED Py_ssize_t __pyx_v_i; CYTHON_UNUSED Py_ssize_t __pyx_v_src_extent; Py_ssize_t __pyx_v_dst_extent; Py_ssize_t __pyx_v_src_stride; Py_ssize_t __pyx_v_dst_stride; int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; Py_ssize_t __pyx_t_4; Py_ssize_t __pyx_t_5; Py_ssize_t __pyx_t_6; /* "View.MemoryView":1147 * * cdef Py_ssize_t i * cdef Py_ssize_t src_extent = src_shape[0] # <<<<<<<<<<<<<< * cdef Py_ssize_t dst_extent = dst_shape[0] * cdef Py_ssize_t src_stride = src_strides[0] */ __pyx_v_src_extent = (__pyx_v_src_shape[0]); /* "View.MemoryView":1148 * cdef Py_ssize_t i * cdef Py_ssize_t src_extent = src_shape[0] * cdef Py_ssize_t dst_extent = dst_shape[0] # <<<<<<<<<<<<<< * cdef Py_ssize_t src_stride = src_strides[0] * cdef Py_ssize_t dst_stride = dst_strides[0] */ __pyx_v_dst_extent = (__pyx_v_dst_shape[0]); /* "View.MemoryView":1149 * cdef Py_ssize_t src_extent = src_shape[0] * cdef Py_ssize_t dst_extent = dst_shape[0] * cdef Py_ssize_t src_stride = src_strides[0] # <<<<<<<<<<<<<< * cdef Py_ssize_t dst_stride = dst_strides[0] * */ __pyx_v_src_stride = (__pyx_v_src_strides[0]); /* "View.MemoryView":1150 * cdef Py_ssize_t dst_extent = dst_shape[0] * cdef Py_ssize_t src_stride = src_strides[0] * cdef Py_ssize_t dst_stride = dst_strides[0] # <<<<<<<<<<<<<< * * if ndim == 1: */ __pyx_v_dst_stride = (__pyx_v_dst_strides[0]); /* "View.MemoryView":1152 * cdef Py_ssize_t dst_stride = dst_strides[0] * * if ndim == 1: # <<<<<<<<<<<<<< * if (src_stride > 0 and dst_stride > 0 and * src_stride == itemsize == dst_stride): */ __pyx_t_1 = ((__pyx_v_ndim == 1) != 0); if (__pyx_t_1) { /* "View.MemoryView":1153 * * if ndim == 1: * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<< * src_stride == itemsize == dst_stride): * memcpy(dst_data, src_data, itemsize * dst_extent) */ __pyx_t_2 = ((__pyx_v_src_stride > 0) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L5_bool_binop_done; } __pyx_t_2 = ((__pyx_v_dst_stride > 0) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L5_bool_binop_done; } /* "View.MemoryView":1154 * if ndim == 1: * if (src_stride > 0 and dst_stride > 0 and * src_stride == itemsize == dst_stride): # <<<<<<<<<<<<<< * memcpy(dst_data, src_data, itemsize * dst_extent) * else: */ __pyx_t_2 = (((size_t)__pyx_v_src_stride) == __pyx_v_itemsize); if (__pyx_t_2) { __pyx_t_2 = (__pyx_v_itemsize == ((size_t)__pyx_v_dst_stride)); } __pyx_t_3 = (__pyx_t_2 != 0); __pyx_t_1 = __pyx_t_3; __pyx_L5_bool_binop_done:; /* "View.MemoryView":1153 * * if ndim == 1: * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<< * src_stride == itemsize == dst_stride): * memcpy(dst_data, src_data, itemsize * dst_extent) */ if (__pyx_t_1) { /* "View.MemoryView":1155 * if (src_stride > 0 and dst_stride > 0 and * src_stride == itemsize == dst_stride): * memcpy(dst_data, src_data, itemsize * dst_extent) # <<<<<<<<<<<<<< * else: * for i in range(dst_extent): */ (void)(memcpy(__pyx_v_dst_data, __pyx_v_src_data, (__pyx_v_itemsize * __pyx_v_dst_extent))); /* "View.MemoryView":1153 * * if ndim == 1: * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<< * src_stride == itemsize == dst_stride): * memcpy(dst_data, src_data, itemsize * dst_extent) */ goto __pyx_L4; } /* "View.MemoryView":1157 * memcpy(dst_data, src_data, itemsize * dst_extent) * else: * for i in range(dst_extent): # <<<<<<<<<<<<<< * memcpy(dst_data, src_data, itemsize) * src_data += src_stride */ /*else*/ { __pyx_t_4 = __pyx_v_dst_extent; __pyx_t_5 = __pyx_t_4; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6; /* "View.MemoryView":1158 * else: * for i in range(dst_extent): * memcpy(dst_data, src_data, itemsize) # <<<<<<<<<<<<<< * src_data += src_stride * dst_data += dst_stride */ (void)(memcpy(__pyx_v_dst_data, __pyx_v_src_data, __pyx_v_itemsize)); /* "View.MemoryView":1159 * for i in range(dst_extent): * memcpy(dst_data, src_data, itemsize) * src_data += src_stride # <<<<<<<<<<<<<< * dst_data += dst_stride * else: */ __pyx_v_src_data = (__pyx_v_src_data + __pyx_v_src_stride); /* "View.MemoryView":1160 * memcpy(dst_data, src_data, itemsize) * src_data += src_stride * dst_data += dst_stride # <<<<<<<<<<<<<< * else: * for i in range(dst_extent): */ __pyx_v_dst_data = (__pyx_v_dst_data + __pyx_v_dst_stride); } } __pyx_L4:; /* "View.MemoryView":1152 * cdef Py_ssize_t dst_stride = dst_strides[0] * * if ndim == 1: # <<<<<<<<<<<<<< * if (src_stride > 0 and dst_stride > 0 and * src_stride == itemsize == dst_stride): */ goto __pyx_L3; } /* "View.MemoryView":1162 * dst_data += dst_stride * else: * for i in range(dst_extent): # <<<<<<<<<<<<<< * _copy_strided_to_strided(src_data, src_strides + 1, * dst_data, dst_strides + 1, */ /*else*/ { __pyx_t_4 = __pyx_v_dst_extent; __pyx_t_5 = __pyx_t_4; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6; /* "View.MemoryView":1163 * else: * for i in range(dst_extent): * _copy_strided_to_strided(src_data, src_strides + 1, # <<<<<<<<<<<<<< * dst_data, dst_strides + 1, * src_shape + 1, dst_shape + 1, */ _copy_strided_to_strided(__pyx_v_src_data, (__pyx_v_src_strides + 1), __pyx_v_dst_data, (__pyx_v_dst_strides + 1), (__pyx_v_src_shape + 1), (__pyx_v_dst_shape + 1), (__pyx_v_ndim - 1), __pyx_v_itemsize); /* "View.MemoryView":1167 * src_shape + 1, dst_shape + 1, * ndim - 1, itemsize) * src_data += src_stride # <<<<<<<<<<<<<< * dst_data += dst_stride * */ __pyx_v_src_data = (__pyx_v_src_data + __pyx_v_src_stride); /* "View.MemoryView":1168 * ndim - 1, itemsize) * src_data += src_stride * dst_data += dst_stride # <<<<<<<<<<<<<< * * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, */ __pyx_v_dst_data = (__pyx_v_dst_data + __pyx_v_dst_stride); } } __pyx_L3:; /* "View.MemoryView":1140 * * @cython.cdivision(True) * cdef void _copy_strided_to_strided(char *src_data, Py_ssize_t *src_strides, # <<<<<<<<<<<<<< * char *dst_data, Py_ssize_t *dst_strides, * Py_ssize_t *src_shape, Py_ssize_t *dst_shape, */ /* function exit code */ } /* "View.MemoryView":1170 * dst_data += dst_stride * * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< * __Pyx_memviewslice *dst, * int ndim, size_t itemsize) nogil: */ static void copy_strided_to_strided(__Pyx_memviewslice *__pyx_v_src, __Pyx_memviewslice *__pyx_v_dst, int __pyx_v_ndim, size_t __pyx_v_itemsize) { /* "View.MemoryView":1173 * __Pyx_memviewslice *dst, * int ndim, size_t itemsize) nogil: * _copy_strided_to_strided(src.data, src.strides, dst.data, dst.strides, # <<<<<<<<<<<<<< * src.shape, dst.shape, ndim, itemsize) * */ _copy_strided_to_strided(__pyx_v_src->data, __pyx_v_src->strides, __pyx_v_dst->data, __pyx_v_dst->strides, __pyx_v_src->shape, __pyx_v_dst->shape, __pyx_v_ndim, __pyx_v_itemsize); /* "View.MemoryView":1170 * dst_data += dst_stride * * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< * __Pyx_memviewslice *dst, * int ndim, size_t itemsize) nogil: */ /* function exit code */ } /* "View.MemoryView":1177 * * @cname('__pyx_memoryview_slice_get_size') * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) nogil: # <<<<<<<<<<<<<< * "Return the size of the memory occupied by the slice in number of bytes" * cdef int i */ static Py_ssize_t __pyx_memoryview_slice_get_size(__Pyx_memviewslice *__pyx_v_src, int __pyx_v_ndim) { int __pyx_v_i; Py_ssize_t __pyx_v_size; Py_ssize_t __pyx_r; Py_ssize_t __pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; /* "View.MemoryView":1180 * "Return the size of the memory occupied by the slice in number of bytes" * cdef int i * cdef Py_ssize_t size = src.memview.view.itemsize # <<<<<<<<<<<<<< * * for i in range(ndim): */ __pyx_t_1 = __pyx_v_src->memview->view.itemsize; __pyx_v_size = __pyx_t_1; /* "View.MemoryView":1182 * cdef Py_ssize_t size = src.memview.view.itemsize * * for i in range(ndim): # <<<<<<<<<<<<<< * size *= src.shape[i] * */ __pyx_t_2 = __pyx_v_ndim; __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_i = __pyx_t_4; /* "View.MemoryView":1183 * * for i in range(ndim): * size *= src.shape[i] # <<<<<<<<<<<<<< * * return size */ __pyx_v_size = (__pyx_v_size * (__pyx_v_src->shape[__pyx_v_i])); } /* "View.MemoryView":1185 * size *= src.shape[i] * * return size # <<<<<<<<<<<<<< * * @cname('__pyx_fill_contig_strides_array') */ __pyx_r = __pyx_v_size; goto __pyx_L0; /* "View.MemoryView":1177 * * @cname('__pyx_memoryview_slice_get_size') * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) nogil: # <<<<<<<<<<<<<< * "Return the size of the memory occupied by the slice in number of bytes" * cdef int i */ /* function exit code */ __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1188 * * @cname('__pyx_fill_contig_strides_array') * cdef Py_ssize_t fill_contig_strides_array( # <<<<<<<<<<<<<< * Py_ssize_t *shape, Py_ssize_t *strides, Py_ssize_t stride, * int ndim, char order) nogil: */ static Py_ssize_t __pyx_fill_contig_strides_array(Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, Py_ssize_t __pyx_v_stride, int __pyx_v_ndim, char __pyx_v_order) { int __pyx_v_idx; Py_ssize_t __pyx_r; int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; /* "View.MemoryView":1197 * cdef int idx * * if order == 'F': # <<<<<<<<<<<<<< * for idx in range(ndim): * strides[idx] = stride */ __pyx_t_1 = ((__pyx_v_order == 'F') != 0); if (__pyx_t_1) { /* "View.MemoryView":1198 * * if order == 'F': * for idx in range(ndim): # <<<<<<<<<<<<<< * strides[idx] = stride * stride = stride * shape[idx] */ __pyx_t_2 = __pyx_v_ndim; __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_idx = __pyx_t_4; /* "View.MemoryView":1199 * if order == 'F': * for idx in range(ndim): * strides[idx] = stride # <<<<<<<<<<<<<< * stride = stride * shape[idx] * else: */ (__pyx_v_strides[__pyx_v_idx]) = __pyx_v_stride; /* "View.MemoryView":1200 * for idx in range(ndim): * strides[idx] = stride * stride = stride * shape[idx] # <<<<<<<<<<<<<< * else: * for idx in range(ndim - 1, -1, -1): */ __pyx_v_stride = (__pyx_v_stride * (__pyx_v_shape[__pyx_v_idx])); } /* "View.MemoryView":1197 * cdef int idx * * if order == 'F': # <<<<<<<<<<<<<< * for idx in range(ndim): * strides[idx] = stride */ goto __pyx_L3; } /* "View.MemoryView":1202 * stride = stride * shape[idx] * else: * for idx in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<< * strides[idx] = stride * stride = stride * shape[idx] */ /*else*/ { for (__pyx_t_2 = (__pyx_v_ndim - 1); __pyx_t_2 > -1; __pyx_t_2-=1) { __pyx_v_idx = __pyx_t_2; /* "View.MemoryView":1203 * else: * for idx in range(ndim - 1, -1, -1): * strides[idx] = stride # <<<<<<<<<<<<<< * stride = stride * shape[idx] * */ (__pyx_v_strides[__pyx_v_idx]) = __pyx_v_stride; /* "View.MemoryView":1204 * for idx in range(ndim - 1, -1, -1): * strides[idx] = stride * stride = stride * shape[idx] # <<<<<<<<<<<<<< * * return stride */ __pyx_v_stride = (__pyx_v_stride * (__pyx_v_shape[__pyx_v_idx])); } } __pyx_L3:; /* "View.MemoryView":1206 * stride = stride * shape[idx] * * return stride # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_copy_data_to_temp') */ __pyx_r = __pyx_v_stride; goto __pyx_L0; /* "View.MemoryView":1188 * * @cname('__pyx_fill_contig_strides_array') * cdef Py_ssize_t fill_contig_strides_array( # <<<<<<<<<<<<<< * Py_ssize_t *shape, Py_ssize_t *strides, Py_ssize_t stride, * int ndim, char order) nogil: */ /* function exit code */ __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1209 * * @cname('__pyx_memoryview_copy_data_to_temp') * cdef void *copy_data_to_temp(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< * __Pyx_memviewslice *tmpslice, * char order, */ static void *__pyx_memoryview_copy_data_to_temp(__Pyx_memviewslice *__pyx_v_src, __Pyx_memviewslice *__pyx_v_tmpslice, char __pyx_v_order, int __pyx_v_ndim) { int __pyx_v_i; void *__pyx_v_result; size_t __pyx_v_itemsize; size_t __pyx_v_size; void *__pyx_r; Py_ssize_t __pyx_t_1; int __pyx_t_2; int __pyx_t_3; struct __pyx_memoryview_obj *__pyx_t_4; int __pyx_t_5; int __pyx_t_6; /* "View.MemoryView":1220 * cdef void *result * * cdef size_t itemsize = src.memview.view.itemsize # <<<<<<<<<<<<<< * cdef size_t size = slice_get_size(src, ndim) * */ __pyx_t_1 = __pyx_v_src->memview->view.itemsize; __pyx_v_itemsize = __pyx_t_1; /* "View.MemoryView":1221 * * cdef size_t itemsize = src.memview.view.itemsize * cdef size_t size = slice_get_size(src, ndim) # <<<<<<<<<<<<<< * * result = malloc(size) */ __pyx_v_size = __pyx_memoryview_slice_get_size(__pyx_v_src, __pyx_v_ndim); /* "View.MemoryView":1223 * cdef size_t size = slice_get_size(src, ndim) * * result = malloc(size) # <<<<<<<<<<<<<< * if not result: * _err(MemoryError, NULL) */ __pyx_v_result = malloc(__pyx_v_size); /* "View.MemoryView":1224 * * result = malloc(size) * if not result: # <<<<<<<<<<<<<< * _err(MemoryError, NULL) * */ __pyx_t_2 = ((!(__pyx_v_result != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":1225 * result = malloc(size) * if not result: * _err(MemoryError, NULL) # <<<<<<<<<<<<<< * * */ __pyx_t_3 = __pyx_memoryview_err(__pyx_builtin_MemoryError, NULL); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 1225, __pyx_L1_error) /* "View.MemoryView":1224 * * result = malloc(size) * if not result: # <<<<<<<<<<<<<< * _err(MemoryError, NULL) * */ } /* "View.MemoryView":1228 * * * tmpslice.data = result # <<<<<<<<<<<<<< * tmpslice.memview = src.memview * for i in range(ndim): */ __pyx_v_tmpslice->data = ((char *)__pyx_v_result); /* "View.MemoryView":1229 * * tmpslice.data = result * tmpslice.memview = src.memview # <<<<<<<<<<<<<< * for i in range(ndim): * tmpslice.shape[i] = src.shape[i] */ __pyx_t_4 = __pyx_v_src->memview; __pyx_v_tmpslice->memview = __pyx_t_4; /* "View.MemoryView":1230 * tmpslice.data = result * tmpslice.memview = src.memview * for i in range(ndim): # <<<<<<<<<<<<<< * tmpslice.shape[i] = src.shape[i] * tmpslice.suboffsets[i] = -1 */ __pyx_t_3 = __pyx_v_ndim; __pyx_t_5 = __pyx_t_3; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6; /* "View.MemoryView":1231 * tmpslice.memview = src.memview * for i in range(ndim): * tmpslice.shape[i] = src.shape[i] # <<<<<<<<<<<<<< * tmpslice.suboffsets[i] = -1 * */ (__pyx_v_tmpslice->shape[__pyx_v_i]) = (__pyx_v_src->shape[__pyx_v_i]); /* "View.MemoryView":1232 * for i in range(ndim): * tmpslice.shape[i] = src.shape[i] * tmpslice.suboffsets[i] = -1 # <<<<<<<<<<<<<< * * fill_contig_strides_array(&tmpslice.shape[0], &tmpslice.strides[0], itemsize, */ (__pyx_v_tmpslice->suboffsets[__pyx_v_i]) = -1L; } /* "View.MemoryView":1234 * tmpslice.suboffsets[i] = -1 * * fill_contig_strides_array(&tmpslice.shape[0], &tmpslice.strides[0], itemsize, # <<<<<<<<<<<<<< * ndim, order) * */ (void)(__pyx_fill_contig_strides_array((&(__pyx_v_tmpslice->shape[0])), (&(__pyx_v_tmpslice->strides[0])), __pyx_v_itemsize, __pyx_v_ndim, __pyx_v_order)); /* "View.MemoryView":1238 * * * for i in range(ndim): # <<<<<<<<<<<<<< * if tmpslice.shape[i] == 1: * tmpslice.strides[i] = 0 */ __pyx_t_3 = __pyx_v_ndim; __pyx_t_5 = __pyx_t_3; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6; /* "View.MemoryView":1239 * * for i in range(ndim): * if tmpslice.shape[i] == 1: # <<<<<<<<<<<<<< * tmpslice.strides[i] = 0 * */ __pyx_t_2 = (((__pyx_v_tmpslice->shape[__pyx_v_i]) == 1) != 0); if (__pyx_t_2) { /* "View.MemoryView":1240 * for i in range(ndim): * if tmpslice.shape[i] == 1: * tmpslice.strides[i] = 0 # <<<<<<<<<<<<<< * * if slice_is_contig(src[0], order, ndim): */ (__pyx_v_tmpslice->strides[__pyx_v_i]) = 0; /* "View.MemoryView":1239 * * for i in range(ndim): * if tmpslice.shape[i] == 1: # <<<<<<<<<<<<<< * tmpslice.strides[i] = 0 * */ } } /* "View.MemoryView":1242 * tmpslice.strides[i] = 0 * * if slice_is_contig(src[0], order, ndim): # <<<<<<<<<<<<<< * memcpy(result, src.data, size) * else: */ __pyx_t_2 = (__pyx_memviewslice_is_contig((__pyx_v_src[0]), __pyx_v_order, __pyx_v_ndim) != 0); if (__pyx_t_2) { /* "View.MemoryView":1243 * * if slice_is_contig(src[0], order, ndim): * memcpy(result, src.data, size) # <<<<<<<<<<<<<< * else: * copy_strided_to_strided(src, tmpslice, ndim, itemsize) */ (void)(memcpy(__pyx_v_result, __pyx_v_src->data, __pyx_v_size)); /* "View.MemoryView":1242 * tmpslice.strides[i] = 0 * * if slice_is_contig(src[0], order, ndim): # <<<<<<<<<<<<<< * memcpy(result, src.data, size) * else: */ goto __pyx_L9; } /* "View.MemoryView":1245 * memcpy(result, src.data, size) * else: * copy_strided_to_strided(src, tmpslice, ndim, itemsize) # <<<<<<<<<<<<<< * * return result */ /*else*/ { copy_strided_to_strided(__pyx_v_src, __pyx_v_tmpslice, __pyx_v_ndim, __pyx_v_itemsize); } __pyx_L9:; /* "View.MemoryView":1247 * copy_strided_to_strided(src, tmpslice, ndim, itemsize) * * return result # <<<<<<<<<<<<<< * * */ __pyx_r = __pyx_v_result; goto __pyx_L0; /* "View.MemoryView":1209 * * @cname('__pyx_memoryview_copy_data_to_temp') * cdef void *copy_data_to_temp(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< * __Pyx_memviewslice *tmpslice, * char order, */ /* function exit code */ __pyx_L1_error:; { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_AddTraceback("View.MemoryView.copy_data_to_temp", __pyx_clineno, __pyx_lineno, __pyx_filename); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif } __pyx_r = NULL; __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1252 * * @cname('__pyx_memoryview_err_extents') * cdef int _err_extents(int i, Py_ssize_t extent1, # <<<<<<<<<<<<<< * Py_ssize_t extent2) except -1 with gil: * raise ValueError("got differing extents in dimension %d (got %d and %d)" % */ static int __pyx_memoryview_err_extents(int __pyx_v_i, Py_ssize_t __pyx_v_extent1, Py_ssize_t __pyx_v_extent2) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_RefNannySetupContext("_err_extents", 0); /* "View.MemoryView":1255 * Py_ssize_t extent2) except -1 with gil: * raise ValueError("got differing extents in dimension %d (got %d and %d)" % * (i, extent1, extent2)) # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_err_dim') */ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_extent1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_extent2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; /* "View.MemoryView":1254 * cdef int _err_extents(int i, Py_ssize_t extent1, * Py_ssize_t extent2) except -1 with gil: * raise ValueError("got differing extents in dimension %d (got %d and %d)" % # <<<<<<<<<<<<<< * (i, extent1, extent2)) * */ __pyx_t_3 = __Pyx_PyString_Format(__pyx_kp_s_got_differing_extents_in_dimensi, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 1254, __pyx_L1_error) /* "View.MemoryView":1252 * * @cname('__pyx_memoryview_err_extents') * cdef int _err_extents(int i, Py_ssize_t extent1, # <<<<<<<<<<<<<< * Py_ssize_t extent2) except -1 with gil: * raise ValueError("got differing extents in dimension %d (got %d and %d)" % */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("View.MemoryView._err_extents", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __Pyx_RefNannyFinishContext(); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif return __pyx_r; } /* "View.MemoryView":1258 * * @cname('__pyx_memoryview_err_dim') * cdef int _err_dim(object error, char *msg, int dim) except -1 with gil: # <<<<<<<<<<<<<< * raise error(msg.decode('ascii') % dim) * */ static int __pyx_memoryview_err_dim(PyObject *__pyx_v_error, char *__pyx_v_msg, int __pyx_v_dim) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_RefNannySetupContext("_err_dim", 0); __Pyx_INCREF(__pyx_v_error); /* "View.MemoryView":1259 * @cname('__pyx_memoryview_err_dim') * cdef int _err_dim(object error, char *msg, int dim) except -1 with gil: * raise error(msg.decode('ascii') % dim) # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_err') */ __pyx_t_2 = __Pyx_decode_c_string(__pyx_v_msg, 0, strlen(__pyx_v_msg), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_dim); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyUnicode_Format(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_INCREF(__pyx_v_error); __pyx_t_3 = __pyx_v_error; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 1259, __pyx_L1_error) /* "View.MemoryView":1258 * * @cname('__pyx_memoryview_err_dim') * cdef int _err_dim(object error, char *msg, int dim) except -1 with gil: # <<<<<<<<<<<<<< * raise error(msg.decode('ascii') % dim) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("View.MemoryView._err_dim", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __Pyx_XDECREF(__pyx_v_error); __Pyx_RefNannyFinishContext(); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif return __pyx_r; } /* "View.MemoryView":1262 * * @cname('__pyx_memoryview_err') * cdef int _err(object error, char *msg) except -1 with gil: # <<<<<<<<<<<<<< * if msg != NULL: * raise error(msg.decode('ascii')) */ static int __pyx_memoryview_err(PyObject *__pyx_v_error, char *__pyx_v_msg) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_RefNannySetupContext("_err", 0); __Pyx_INCREF(__pyx_v_error); /* "View.MemoryView":1263 * @cname('__pyx_memoryview_err') * cdef int _err(object error, char *msg) except -1 with gil: * if msg != NULL: # <<<<<<<<<<<<<< * raise error(msg.decode('ascii')) * else: */ __pyx_t_1 = ((__pyx_v_msg != NULL) != 0); if (unlikely(__pyx_t_1)) { /* "View.MemoryView":1264 * cdef int _err(object error, char *msg) except -1 with gil: * if msg != NULL: * raise error(msg.decode('ascii')) # <<<<<<<<<<<<<< * else: * raise error */ __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_msg, 0, strlen(__pyx_v_msg), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_error); __pyx_t_4 = __pyx_v_error; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(1, 1264, __pyx_L1_error) /* "View.MemoryView":1263 * @cname('__pyx_memoryview_err') * cdef int _err(object error, char *msg) except -1 with gil: * if msg != NULL: # <<<<<<<<<<<<<< * raise error(msg.decode('ascii')) * else: */ } /* "View.MemoryView":1266 * raise error(msg.decode('ascii')) * else: * raise error # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_copy_contents') */ /*else*/ { __Pyx_Raise(__pyx_v_error, 0, 0, 0); __PYX_ERR(1, 1266, __pyx_L1_error) } /* "View.MemoryView":1262 * * @cname('__pyx_memoryview_err') * cdef int _err(object error, char *msg) except -1 with gil: # <<<<<<<<<<<<<< * if msg != NULL: * raise error(msg.decode('ascii')) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView._err", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __Pyx_XDECREF(__pyx_v_error); __Pyx_RefNannyFinishContext(); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif return __pyx_r; } /* "View.MemoryView":1269 * * @cname('__pyx_memoryview_copy_contents') * cdef int memoryview_copy_contents(__Pyx_memviewslice src, # <<<<<<<<<<<<<< * __Pyx_memviewslice dst, * int src_ndim, int dst_ndim, */ static int __pyx_memoryview_copy_contents(__Pyx_memviewslice __pyx_v_src, __Pyx_memviewslice __pyx_v_dst, int __pyx_v_src_ndim, int __pyx_v_dst_ndim, int __pyx_v_dtype_is_object) { void *__pyx_v_tmpdata; size_t __pyx_v_itemsize; int __pyx_v_i; char __pyx_v_order; int __pyx_v_broadcasting; int __pyx_v_direct_copy; __Pyx_memviewslice __pyx_v_tmp; int __pyx_v_ndim; int __pyx_r; Py_ssize_t __pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; int __pyx_t_5; int __pyx_t_6; void *__pyx_t_7; int __pyx_t_8; /* "View.MemoryView":1277 * Check for overlapping memory and verify the shapes. * """ * cdef void *tmpdata = NULL # <<<<<<<<<<<<<< * cdef size_t itemsize = src.memview.view.itemsize * cdef int i */ __pyx_v_tmpdata = NULL; /* "View.MemoryView":1278 * """ * cdef void *tmpdata = NULL * cdef size_t itemsize = src.memview.view.itemsize # <<<<<<<<<<<<<< * cdef int i * cdef char order = get_best_order(&src, src_ndim) */ __pyx_t_1 = __pyx_v_src.memview->view.itemsize; __pyx_v_itemsize = __pyx_t_1; /* "View.MemoryView":1280 * cdef size_t itemsize = src.memview.view.itemsize * cdef int i * cdef char order = get_best_order(&src, src_ndim) # <<<<<<<<<<<<<< * cdef bint broadcasting = False * cdef bint direct_copy = False */ __pyx_v_order = __pyx_get_best_slice_order((&__pyx_v_src), __pyx_v_src_ndim); /* "View.MemoryView":1281 * cdef int i * cdef char order = get_best_order(&src, src_ndim) * cdef bint broadcasting = False # <<<<<<<<<<<<<< * cdef bint direct_copy = False * cdef __Pyx_memviewslice tmp */ __pyx_v_broadcasting = 0; /* "View.MemoryView":1282 * cdef char order = get_best_order(&src, src_ndim) * cdef bint broadcasting = False * cdef bint direct_copy = False # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice tmp * */ __pyx_v_direct_copy = 0; /* "View.MemoryView":1285 * cdef __Pyx_memviewslice tmp * * if src_ndim < dst_ndim: # <<<<<<<<<<<<<< * broadcast_leading(&src, src_ndim, dst_ndim) * elif dst_ndim < src_ndim: */ __pyx_t_2 = ((__pyx_v_src_ndim < __pyx_v_dst_ndim) != 0); if (__pyx_t_2) { /* "View.MemoryView":1286 * * if src_ndim < dst_ndim: * broadcast_leading(&src, src_ndim, dst_ndim) # <<<<<<<<<<<<<< * elif dst_ndim < src_ndim: * broadcast_leading(&dst, dst_ndim, src_ndim) */ __pyx_memoryview_broadcast_leading((&__pyx_v_src), __pyx_v_src_ndim, __pyx_v_dst_ndim); /* "View.MemoryView":1285 * cdef __Pyx_memviewslice tmp * * if src_ndim < dst_ndim: # <<<<<<<<<<<<<< * broadcast_leading(&src, src_ndim, dst_ndim) * elif dst_ndim < src_ndim: */ goto __pyx_L3; } /* "View.MemoryView":1287 * if src_ndim < dst_ndim: * broadcast_leading(&src, src_ndim, dst_ndim) * elif dst_ndim < src_ndim: # <<<<<<<<<<<<<< * broadcast_leading(&dst, dst_ndim, src_ndim) * */ __pyx_t_2 = ((__pyx_v_dst_ndim < __pyx_v_src_ndim) != 0); if (__pyx_t_2) { /* "View.MemoryView":1288 * broadcast_leading(&src, src_ndim, dst_ndim) * elif dst_ndim < src_ndim: * broadcast_leading(&dst, dst_ndim, src_ndim) # <<<<<<<<<<<<<< * * cdef int ndim = max(src_ndim, dst_ndim) */ __pyx_memoryview_broadcast_leading((&__pyx_v_dst), __pyx_v_dst_ndim, __pyx_v_src_ndim); /* "View.MemoryView":1287 * if src_ndim < dst_ndim: * broadcast_leading(&src, src_ndim, dst_ndim) * elif dst_ndim < src_ndim: # <<<<<<<<<<<<<< * broadcast_leading(&dst, dst_ndim, src_ndim) * */ } __pyx_L3:; /* "View.MemoryView":1290 * broadcast_leading(&dst, dst_ndim, src_ndim) * * cdef int ndim = max(src_ndim, dst_ndim) # <<<<<<<<<<<<<< * * for i in range(ndim): */ __pyx_t_3 = __pyx_v_dst_ndim; __pyx_t_4 = __pyx_v_src_ndim; if (((__pyx_t_3 > __pyx_t_4) != 0)) { __pyx_t_5 = __pyx_t_3; } else { __pyx_t_5 = __pyx_t_4; } __pyx_v_ndim = __pyx_t_5; /* "View.MemoryView":1292 * cdef int ndim = max(src_ndim, dst_ndim) * * for i in range(ndim): # <<<<<<<<<<<<<< * if src.shape[i] != dst.shape[i]: * if src.shape[i] == 1: */ __pyx_t_5 = __pyx_v_ndim; __pyx_t_3 = __pyx_t_5; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_i = __pyx_t_4; /* "View.MemoryView":1293 * * for i in range(ndim): * if src.shape[i] != dst.shape[i]: # <<<<<<<<<<<<<< * if src.shape[i] == 1: * broadcasting = True */ __pyx_t_2 = (((__pyx_v_src.shape[__pyx_v_i]) != (__pyx_v_dst.shape[__pyx_v_i])) != 0); if (__pyx_t_2) { /* "View.MemoryView":1294 * for i in range(ndim): * if src.shape[i] != dst.shape[i]: * if src.shape[i] == 1: # <<<<<<<<<<<<<< * broadcasting = True * src.strides[i] = 0 */ __pyx_t_2 = (((__pyx_v_src.shape[__pyx_v_i]) == 1) != 0); if (__pyx_t_2) { /* "View.MemoryView":1295 * if src.shape[i] != dst.shape[i]: * if src.shape[i] == 1: * broadcasting = True # <<<<<<<<<<<<<< * src.strides[i] = 0 * else: */ __pyx_v_broadcasting = 1; /* "View.MemoryView":1296 * if src.shape[i] == 1: * broadcasting = True * src.strides[i] = 0 # <<<<<<<<<<<<<< * else: * _err_extents(i, dst.shape[i], src.shape[i]) */ (__pyx_v_src.strides[__pyx_v_i]) = 0; /* "View.MemoryView":1294 * for i in range(ndim): * if src.shape[i] != dst.shape[i]: * if src.shape[i] == 1: # <<<<<<<<<<<<<< * broadcasting = True * src.strides[i] = 0 */ goto __pyx_L7; } /* "View.MemoryView":1298 * src.strides[i] = 0 * else: * _err_extents(i, dst.shape[i], src.shape[i]) # <<<<<<<<<<<<<< * * if src.suboffsets[i] >= 0: */ /*else*/ { __pyx_t_6 = __pyx_memoryview_err_extents(__pyx_v_i, (__pyx_v_dst.shape[__pyx_v_i]), (__pyx_v_src.shape[__pyx_v_i])); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 1298, __pyx_L1_error) } __pyx_L7:; /* "View.MemoryView":1293 * * for i in range(ndim): * if src.shape[i] != dst.shape[i]: # <<<<<<<<<<<<<< * if src.shape[i] == 1: * broadcasting = True */ } /* "View.MemoryView":1300 * _err_extents(i, dst.shape[i], src.shape[i]) * * if src.suboffsets[i] >= 0: # <<<<<<<<<<<<<< * _err_dim(ValueError, "Dimension %d is not direct", i) * */ __pyx_t_2 = (((__pyx_v_src.suboffsets[__pyx_v_i]) >= 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":1301 * * if src.suboffsets[i] >= 0: * _err_dim(ValueError, "Dimension %d is not direct", i) # <<<<<<<<<<<<<< * * if slices_overlap(&src, &dst, ndim, itemsize): */ __pyx_t_6 = __pyx_memoryview_err_dim(__pyx_builtin_ValueError, ((char *)"Dimension %d is not direct"), __pyx_v_i); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 1301, __pyx_L1_error) /* "View.MemoryView":1300 * _err_extents(i, dst.shape[i], src.shape[i]) * * if src.suboffsets[i] >= 0: # <<<<<<<<<<<<<< * _err_dim(ValueError, "Dimension %d is not direct", i) * */ } } /* "View.MemoryView":1303 * _err_dim(ValueError, "Dimension %d is not direct", i) * * if slices_overlap(&src, &dst, ndim, itemsize): # <<<<<<<<<<<<<< * * if not slice_is_contig(src, order, ndim): */ __pyx_t_2 = (__pyx_slices_overlap((&__pyx_v_src), (&__pyx_v_dst), __pyx_v_ndim, __pyx_v_itemsize) != 0); if (__pyx_t_2) { /* "View.MemoryView":1305 * if slices_overlap(&src, &dst, ndim, itemsize): * * if not slice_is_contig(src, order, ndim): # <<<<<<<<<<<<<< * order = get_best_order(&dst, ndim) * */ __pyx_t_2 = ((!(__pyx_memviewslice_is_contig(__pyx_v_src, __pyx_v_order, __pyx_v_ndim) != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":1306 * * if not slice_is_contig(src, order, ndim): * order = get_best_order(&dst, ndim) # <<<<<<<<<<<<<< * * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim) */ __pyx_v_order = __pyx_get_best_slice_order((&__pyx_v_dst), __pyx_v_ndim); /* "View.MemoryView":1305 * if slices_overlap(&src, &dst, ndim, itemsize): * * if not slice_is_contig(src, order, ndim): # <<<<<<<<<<<<<< * order = get_best_order(&dst, ndim) * */ } /* "View.MemoryView":1308 * order = get_best_order(&dst, ndim) * * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim) # <<<<<<<<<<<<<< * src = tmp * */ __pyx_t_7 = __pyx_memoryview_copy_data_to_temp((&__pyx_v_src), (&__pyx_v_tmp), __pyx_v_order, __pyx_v_ndim); if (unlikely(__pyx_t_7 == ((void *)NULL))) __PYX_ERR(1, 1308, __pyx_L1_error) __pyx_v_tmpdata = __pyx_t_7; /* "View.MemoryView":1309 * * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim) * src = tmp # <<<<<<<<<<<<<< * * if not broadcasting: */ __pyx_v_src = __pyx_v_tmp; /* "View.MemoryView":1303 * _err_dim(ValueError, "Dimension %d is not direct", i) * * if slices_overlap(&src, &dst, ndim, itemsize): # <<<<<<<<<<<<<< * * if not slice_is_contig(src, order, ndim): */ } /* "View.MemoryView":1311 * src = tmp * * if not broadcasting: # <<<<<<<<<<<<<< * * */ __pyx_t_2 = ((!(__pyx_v_broadcasting != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":1314 * * * if slice_is_contig(src, 'C', ndim): # <<<<<<<<<<<<<< * direct_copy = slice_is_contig(dst, 'C', ndim) * elif slice_is_contig(src, 'F', ndim): */ __pyx_t_2 = (__pyx_memviewslice_is_contig(__pyx_v_src, 'C', __pyx_v_ndim) != 0); if (__pyx_t_2) { /* "View.MemoryView":1315 * * if slice_is_contig(src, 'C', ndim): * direct_copy = slice_is_contig(dst, 'C', ndim) # <<<<<<<<<<<<<< * elif slice_is_contig(src, 'F', ndim): * direct_copy = slice_is_contig(dst, 'F', ndim) */ __pyx_v_direct_copy = __pyx_memviewslice_is_contig(__pyx_v_dst, 'C', __pyx_v_ndim); /* "View.MemoryView":1314 * * * if slice_is_contig(src, 'C', ndim): # <<<<<<<<<<<<<< * direct_copy = slice_is_contig(dst, 'C', ndim) * elif slice_is_contig(src, 'F', ndim): */ goto __pyx_L12; } /* "View.MemoryView":1316 * if slice_is_contig(src, 'C', ndim): * direct_copy = slice_is_contig(dst, 'C', ndim) * elif slice_is_contig(src, 'F', ndim): # <<<<<<<<<<<<<< * direct_copy = slice_is_contig(dst, 'F', ndim) * */ __pyx_t_2 = (__pyx_memviewslice_is_contig(__pyx_v_src, 'F', __pyx_v_ndim) != 0); if (__pyx_t_2) { /* "View.MemoryView":1317 * direct_copy = slice_is_contig(dst, 'C', ndim) * elif slice_is_contig(src, 'F', ndim): * direct_copy = slice_is_contig(dst, 'F', ndim) # <<<<<<<<<<<<<< * * if direct_copy: */ __pyx_v_direct_copy = __pyx_memviewslice_is_contig(__pyx_v_dst, 'F', __pyx_v_ndim); /* "View.MemoryView":1316 * if slice_is_contig(src, 'C', ndim): * direct_copy = slice_is_contig(dst, 'C', ndim) * elif slice_is_contig(src, 'F', ndim): # <<<<<<<<<<<<<< * direct_copy = slice_is_contig(dst, 'F', ndim) * */ } __pyx_L12:; /* "View.MemoryView":1319 * direct_copy = slice_is_contig(dst, 'F', ndim) * * if direct_copy: # <<<<<<<<<<<<<< * * refcount_copying(&dst, dtype_is_object, ndim, False) */ __pyx_t_2 = (__pyx_v_direct_copy != 0); if (__pyx_t_2) { /* "View.MemoryView":1321 * if direct_copy: * * refcount_copying(&dst, dtype_is_object, ndim, False) # <<<<<<<<<<<<<< * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) * refcount_copying(&dst, dtype_is_object, ndim, True) */ __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 0); /* "View.MemoryView":1322 * * refcount_copying(&dst, dtype_is_object, ndim, False) * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) # <<<<<<<<<<<<<< * refcount_copying(&dst, dtype_is_object, ndim, True) * free(tmpdata) */ (void)(memcpy(__pyx_v_dst.data, __pyx_v_src.data, __pyx_memoryview_slice_get_size((&__pyx_v_src), __pyx_v_ndim))); /* "View.MemoryView":1323 * refcount_copying(&dst, dtype_is_object, ndim, False) * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) * refcount_copying(&dst, dtype_is_object, ndim, True) # <<<<<<<<<<<<<< * free(tmpdata) * return 0 */ __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 1); /* "View.MemoryView":1324 * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) * refcount_copying(&dst, dtype_is_object, ndim, True) * free(tmpdata) # <<<<<<<<<<<<<< * return 0 * */ free(__pyx_v_tmpdata); /* "View.MemoryView":1325 * refcount_copying(&dst, dtype_is_object, ndim, True) * free(tmpdata) * return 0 # <<<<<<<<<<<<<< * * if order == 'F' == get_best_order(&dst, ndim): */ __pyx_r = 0; goto __pyx_L0; /* "View.MemoryView":1319 * direct_copy = slice_is_contig(dst, 'F', ndim) * * if direct_copy: # <<<<<<<<<<<<<< * * refcount_copying(&dst, dtype_is_object, ndim, False) */ } /* "View.MemoryView":1311 * src = tmp * * if not broadcasting: # <<<<<<<<<<<<<< * * */ } /* "View.MemoryView":1327 * return 0 * * if order == 'F' == get_best_order(&dst, ndim): # <<<<<<<<<<<<<< * * */ __pyx_t_2 = (__pyx_v_order == 'F'); if (__pyx_t_2) { __pyx_t_2 = ('F' == __pyx_get_best_slice_order((&__pyx_v_dst), __pyx_v_ndim)); } __pyx_t_8 = (__pyx_t_2 != 0); if (__pyx_t_8) { /* "View.MemoryView":1330 * * * transpose_memslice(&src) # <<<<<<<<<<<<<< * transpose_memslice(&dst) * */ __pyx_t_5 = __pyx_memslice_transpose((&__pyx_v_src)); if (unlikely(__pyx_t_5 == ((int)0))) __PYX_ERR(1, 1330, __pyx_L1_error) /* "View.MemoryView":1331 * * transpose_memslice(&src) * transpose_memslice(&dst) # <<<<<<<<<<<<<< * * refcount_copying(&dst, dtype_is_object, ndim, False) */ __pyx_t_5 = __pyx_memslice_transpose((&__pyx_v_dst)); if (unlikely(__pyx_t_5 == ((int)0))) __PYX_ERR(1, 1331, __pyx_L1_error) /* "View.MemoryView":1327 * return 0 * * if order == 'F' == get_best_order(&dst, ndim): # <<<<<<<<<<<<<< * * */ } /* "View.MemoryView":1333 * transpose_memslice(&dst) * * refcount_copying(&dst, dtype_is_object, ndim, False) # <<<<<<<<<<<<<< * copy_strided_to_strided(&src, &dst, ndim, itemsize) * refcount_copying(&dst, dtype_is_object, ndim, True) */ __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 0); /* "View.MemoryView":1334 * * refcount_copying(&dst, dtype_is_object, ndim, False) * copy_strided_to_strided(&src, &dst, ndim, itemsize) # <<<<<<<<<<<<<< * refcount_copying(&dst, dtype_is_object, ndim, True) * */ copy_strided_to_strided((&__pyx_v_src), (&__pyx_v_dst), __pyx_v_ndim, __pyx_v_itemsize); /* "View.MemoryView":1335 * refcount_copying(&dst, dtype_is_object, ndim, False) * copy_strided_to_strided(&src, &dst, ndim, itemsize) * refcount_copying(&dst, dtype_is_object, ndim, True) # <<<<<<<<<<<<<< * * free(tmpdata) */ __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 1); /* "View.MemoryView":1337 * refcount_copying(&dst, dtype_is_object, ndim, True) * * free(tmpdata) # <<<<<<<<<<<<<< * return 0 * */ free(__pyx_v_tmpdata); /* "View.MemoryView":1338 * * free(tmpdata) * return 0 # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_broadcast_leading') */ __pyx_r = 0; goto __pyx_L0; /* "View.MemoryView":1269 * * @cname('__pyx_memoryview_copy_contents') * cdef int memoryview_copy_contents(__Pyx_memviewslice src, # <<<<<<<<<<<<<< * __Pyx_memviewslice dst, * int src_ndim, int dst_ndim, */ /* function exit code */ __pyx_L1_error:; { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_AddTraceback("View.MemoryView.memoryview_copy_contents", __pyx_clineno, __pyx_lineno, __pyx_filename); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif } __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1341 * * @cname('__pyx_memoryview_broadcast_leading') * cdef void broadcast_leading(__Pyx_memviewslice *mslice, # <<<<<<<<<<<<<< * int ndim, * int ndim_other) nogil: */ static void __pyx_memoryview_broadcast_leading(__Pyx_memviewslice *__pyx_v_mslice, int __pyx_v_ndim, int __pyx_v_ndim_other) { int __pyx_v_i; int __pyx_v_offset; int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; /* "View.MemoryView":1345 * int ndim_other) nogil: * cdef int i * cdef int offset = ndim_other - ndim # <<<<<<<<<<<<<< * * for i in range(ndim - 1, -1, -1): */ __pyx_v_offset = (__pyx_v_ndim_other - __pyx_v_ndim); /* "View.MemoryView":1347 * cdef int offset = ndim_other - ndim * * for i in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<< * mslice.shape[i + offset] = mslice.shape[i] * mslice.strides[i + offset] = mslice.strides[i] */ for (__pyx_t_1 = (__pyx_v_ndim - 1); __pyx_t_1 > -1; __pyx_t_1-=1) { __pyx_v_i = __pyx_t_1; /* "View.MemoryView":1348 * * for i in range(ndim - 1, -1, -1): * mslice.shape[i + offset] = mslice.shape[i] # <<<<<<<<<<<<<< * mslice.strides[i + offset] = mslice.strides[i] * mslice.suboffsets[i + offset] = mslice.suboffsets[i] */ (__pyx_v_mslice->shape[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->shape[__pyx_v_i]); /* "View.MemoryView":1349 * for i in range(ndim - 1, -1, -1): * mslice.shape[i + offset] = mslice.shape[i] * mslice.strides[i + offset] = mslice.strides[i] # <<<<<<<<<<<<<< * mslice.suboffsets[i + offset] = mslice.suboffsets[i] * */ (__pyx_v_mslice->strides[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->strides[__pyx_v_i]); /* "View.MemoryView":1350 * mslice.shape[i + offset] = mslice.shape[i] * mslice.strides[i + offset] = mslice.strides[i] * mslice.suboffsets[i + offset] = mslice.suboffsets[i] # <<<<<<<<<<<<<< * * for i in range(offset): */ (__pyx_v_mslice->suboffsets[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->suboffsets[__pyx_v_i]); } /* "View.MemoryView":1352 * mslice.suboffsets[i + offset] = mslice.suboffsets[i] * * for i in range(offset): # <<<<<<<<<<<<<< * mslice.shape[i] = 1 * mslice.strides[i] = mslice.strides[0] */ __pyx_t_1 = __pyx_v_offset; __pyx_t_2 = __pyx_t_1; for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_i = __pyx_t_3; /* "View.MemoryView":1353 * * for i in range(offset): * mslice.shape[i] = 1 # <<<<<<<<<<<<<< * mslice.strides[i] = mslice.strides[0] * mslice.suboffsets[i] = -1 */ (__pyx_v_mslice->shape[__pyx_v_i]) = 1; /* "View.MemoryView":1354 * for i in range(offset): * mslice.shape[i] = 1 * mslice.strides[i] = mslice.strides[0] # <<<<<<<<<<<<<< * mslice.suboffsets[i] = -1 * */ (__pyx_v_mslice->strides[__pyx_v_i]) = (__pyx_v_mslice->strides[0]); /* "View.MemoryView":1355 * mslice.shape[i] = 1 * mslice.strides[i] = mslice.strides[0] * mslice.suboffsets[i] = -1 # <<<<<<<<<<<<<< * * */ (__pyx_v_mslice->suboffsets[__pyx_v_i]) = -1L; } /* "View.MemoryView":1341 * * @cname('__pyx_memoryview_broadcast_leading') * cdef void broadcast_leading(__Pyx_memviewslice *mslice, # <<<<<<<<<<<<<< * int ndim, * int ndim_other) nogil: */ /* function exit code */ } /* "View.MemoryView":1363 * * @cname('__pyx_memoryview_refcount_copying') * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, # <<<<<<<<<<<<<< * int ndim, bint inc) nogil: * */ static void __pyx_memoryview_refcount_copying(__Pyx_memviewslice *__pyx_v_dst, int __pyx_v_dtype_is_object, int __pyx_v_ndim, int __pyx_v_inc) { int __pyx_t_1; /* "View.MemoryView":1367 * * * if dtype_is_object: # <<<<<<<<<<<<<< * refcount_objects_in_slice_with_gil(dst.data, dst.shape, * dst.strides, ndim, inc) */ __pyx_t_1 = (__pyx_v_dtype_is_object != 0); if (__pyx_t_1) { /* "View.MemoryView":1368 * * if dtype_is_object: * refcount_objects_in_slice_with_gil(dst.data, dst.shape, # <<<<<<<<<<<<<< * dst.strides, ndim, inc) * */ __pyx_memoryview_refcount_objects_in_slice_with_gil(__pyx_v_dst->data, __pyx_v_dst->shape, __pyx_v_dst->strides, __pyx_v_ndim, __pyx_v_inc); /* "View.MemoryView":1367 * * * if dtype_is_object: # <<<<<<<<<<<<<< * refcount_objects_in_slice_with_gil(dst.data, dst.shape, * dst.strides, ndim, inc) */ } /* "View.MemoryView":1363 * * @cname('__pyx_memoryview_refcount_copying') * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, # <<<<<<<<<<<<<< * int ndim, bint inc) nogil: * */ /* function exit code */ } /* "View.MemoryView":1372 * * @cname('__pyx_memoryview_refcount_objects_in_slice_with_gil') * cdef void refcount_objects_in_slice_with_gil(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, * bint inc) with gil: */ static void __pyx_memoryview_refcount_objects_in_slice_with_gil(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, int __pyx_v_inc) { __Pyx_RefNannyDeclarations #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_RefNannySetupContext("refcount_objects_in_slice_with_gil", 0); /* "View.MemoryView":1375 * Py_ssize_t *strides, int ndim, * bint inc) with gil: * refcount_objects_in_slice(data, shape, strides, ndim, inc) # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_refcount_objects_in_slice') */ __pyx_memoryview_refcount_objects_in_slice(__pyx_v_data, __pyx_v_shape, __pyx_v_strides, __pyx_v_ndim, __pyx_v_inc); /* "View.MemoryView":1372 * * @cname('__pyx_memoryview_refcount_objects_in_slice_with_gil') * cdef void refcount_objects_in_slice_with_gil(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, * bint inc) with gil: */ /* function exit code */ __Pyx_RefNannyFinishContext(); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif } /* "View.MemoryView":1378 * * @cname('__pyx_memoryview_refcount_objects_in_slice') * cdef void refcount_objects_in_slice(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, bint inc): * cdef Py_ssize_t i */ static void __pyx_memoryview_refcount_objects_in_slice(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, int __pyx_v_inc) { CYTHON_UNUSED Py_ssize_t __pyx_v_i; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; Py_ssize_t __pyx_t_2; Py_ssize_t __pyx_t_3; int __pyx_t_4; __Pyx_RefNannySetupContext("refcount_objects_in_slice", 0); /* "View.MemoryView":1382 * cdef Py_ssize_t i * * for i in range(shape[0]): # <<<<<<<<<<<<<< * if ndim == 1: * if inc: */ __pyx_t_1 = (__pyx_v_shape[0]); __pyx_t_2 = __pyx_t_1; for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_i = __pyx_t_3; /* "View.MemoryView":1383 * * for i in range(shape[0]): * if ndim == 1: # <<<<<<<<<<<<<< * if inc: * Py_INCREF(( data)[0]) */ __pyx_t_4 = ((__pyx_v_ndim == 1) != 0); if (__pyx_t_4) { /* "View.MemoryView":1384 * for i in range(shape[0]): * if ndim == 1: * if inc: # <<<<<<<<<<<<<< * Py_INCREF(( data)[0]) * else: */ __pyx_t_4 = (__pyx_v_inc != 0); if (__pyx_t_4) { /* "View.MemoryView":1385 * if ndim == 1: * if inc: * Py_INCREF(( data)[0]) # <<<<<<<<<<<<<< * else: * Py_DECREF(( data)[0]) */ Py_INCREF((((PyObject **)__pyx_v_data)[0])); /* "View.MemoryView":1384 * for i in range(shape[0]): * if ndim == 1: * if inc: # <<<<<<<<<<<<<< * Py_INCREF(( data)[0]) * else: */ goto __pyx_L6; } /* "View.MemoryView":1387 * Py_INCREF(( data)[0]) * else: * Py_DECREF(( data)[0]) # <<<<<<<<<<<<<< * else: * refcount_objects_in_slice(data, shape + 1, strides + 1, */ /*else*/ { Py_DECREF((((PyObject **)__pyx_v_data)[0])); } __pyx_L6:; /* "View.MemoryView":1383 * * for i in range(shape[0]): * if ndim == 1: # <<<<<<<<<<<<<< * if inc: * Py_INCREF(( data)[0]) */ goto __pyx_L5; } /* "View.MemoryView":1389 * Py_DECREF(( data)[0]) * else: * refcount_objects_in_slice(data, shape + 1, strides + 1, # <<<<<<<<<<<<<< * ndim - 1, inc) * */ /*else*/ { /* "View.MemoryView":1390 * else: * refcount_objects_in_slice(data, shape + 1, strides + 1, * ndim - 1, inc) # <<<<<<<<<<<<<< * * data += strides[0] */ __pyx_memoryview_refcount_objects_in_slice(__pyx_v_data, (__pyx_v_shape + 1), (__pyx_v_strides + 1), (__pyx_v_ndim - 1), __pyx_v_inc); } __pyx_L5:; /* "View.MemoryView":1392 * ndim - 1, inc) * * data += strides[0] # <<<<<<<<<<<<<< * * */ __pyx_v_data = (__pyx_v_data + (__pyx_v_strides[0])); } /* "View.MemoryView":1378 * * @cname('__pyx_memoryview_refcount_objects_in_slice') * cdef void refcount_objects_in_slice(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, bint inc): * cdef Py_ssize_t i */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "View.MemoryView":1398 * * @cname('__pyx_memoryview_slice_assign_scalar') * cdef void slice_assign_scalar(__Pyx_memviewslice *dst, int ndim, # <<<<<<<<<<<<<< * size_t itemsize, void *item, * bint dtype_is_object) nogil: */ static void __pyx_memoryview_slice_assign_scalar(__Pyx_memviewslice *__pyx_v_dst, int __pyx_v_ndim, size_t __pyx_v_itemsize, void *__pyx_v_item, int __pyx_v_dtype_is_object) { /* "View.MemoryView":1401 * size_t itemsize, void *item, * bint dtype_is_object) nogil: * refcount_copying(dst, dtype_is_object, ndim, False) # <<<<<<<<<<<<<< * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, * itemsize, item) */ __pyx_memoryview_refcount_copying(__pyx_v_dst, __pyx_v_dtype_is_object, __pyx_v_ndim, 0); /* "View.MemoryView":1402 * bint dtype_is_object) nogil: * refcount_copying(dst, dtype_is_object, ndim, False) * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, # <<<<<<<<<<<<<< * itemsize, item) * refcount_copying(dst, dtype_is_object, ndim, True) */ __pyx_memoryview__slice_assign_scalar(__pyx_v_dst->data, __pyx_v_dst->shape, __pyx_v_dst->strides, __pyx_v_ndim, __pyx_v_itemsize, __pyx_v_item); /* "View.MemoryView":1404 * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, * itemsize, item) * refcount_copying(dst, dtype_is_object, ndim, True) # <<<<<<<<<<<<<< * * */ __pyx_memoryview_refcount_copying(__pyx_v_dst, __pyx_v_dtype_is_object, __pyx_v_ndim, 1); /* "View.MemoryView":1398 * * @cname('__pyx_memoryview_slice_assign_scalar') * cdef void slice_assign_scalar(__Pyx_memviewslice *dst, int ndim, # <<<<<<<<<<<<<< * size_t itemsize, void *item, * bint dtype_is_object) nogil: */ /* function exit code */ } /* "View.MemoryView":1408 * * @cname('__pyx_memoryview__slice_assign_scalar') * cdef void _slice_assign_scalar(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, * size_t itemsize, void *item) nogil: */ static void __pyx_memoryview__slice_assign_scalar(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, size_t __pyx_v_itemsize, void *__pyx_v_item) { CYTHON_UNUSED Py_ssize_t __pyx_v_i; Py_ssize_t __pyx_v_stride; Py_ssize_t __pyx_v_extent; int __pyx_t_1; Py_ssize_t __pyx_t_2; Py_ssize_t __pyx_t_3; Py_ssize_t __pyx_t_4; /* "View.MemoryView":1412 * size_t itemsize, void *item) nogil: * cdef Py_ssize_t i * cdef Py_ssize_t stride = strides[0] # <<<<<<<<<<<<<< * cdef Py_ssize_t extent = shape[0] * */ __pyx_v_stride = (__pyx_v_strides[0]); /* "View.MemoryView":1413 * cdef Py_ssize_t i * cdef Py_ssize_t stride = strides[0] * cdef Py_ssize_t extent = shape[0] # <<<<<<<<<<<<<< * * if ndim == 1: */ __pyx_v_extent = (__pyx_v_shape[0]); /* "View.MemoryView":1415 * cdef Py_ssize_t extent = shape[0] * * if ndim == 1: # <<<<<<<<<<<<<< * for i in range(extent): * memcpy(data, item, itemsize) */ __pyx_t_1 = ((__pyx_v_ndim == 1) != 0); if (__pyx_t_1) { /* "View.MemoryView":1416 * * if ndim == 1: * for i in range(extent): # <<<<<<<<<<<<<< * memcpy(data, item, itemsize) * data += stride */ __pyx_t_2 = __pyx_v_extent; __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_i = __pyx_t_4; /* "View.MemoryView":1417 * if ndim == 1: * for i in range(extent): * memcpy(data, item, itemsize) # <<<<<<<<<<<<<< * data += stride * else: */ (void)(memcpy(__pyx_v_data, __pyx_v_item, __pyx_v_itemsize)); /* "View.MemoryView":1418 * for i in range(extent): * memcpy(data, item, itemsize) * data += stride # <<<<<<<<<<<<<< * else: * for i in range(extent): */ __pyx_v_data = (__pyx_v_data + __pyx_v_stride); } /* "View.MemoryView":1415 * cdef Py_ssize_t extent = shape[0] * * if ndim == 1: # <<<<<<<<<<<<<< * for i in range(extent): * memcpy(data, item, itemsize) */ goto __pyx_L3; } /* "View.MemoryView":1420 * data += stride * else: * for i in range(extent): # <<<<<<<<<<<<<< * _slice_assign_scalar(data, shape + 1, strides + 1, * ndim - 1, itemsize, item) */ /*else*/ { __pyx_t_2 = __pyx_v_extent; __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_i = __pyx_t_4; /* "View.MemoryView":1421 * else: * for i in range(extent): * _slice_assign_scalar(data, shape + 1, strides + 1, # <<<<<<<<<<<<<< * ndim - 1, itemsize, item) * data += stride */ __pyx_memoryview__slice_assign_scalar(__pyx_v_data, (__pyx_v_shape + 1), (__pyx_v_strides + 1), (__pyx_v_ndim - 1), __pyx_v_itemsize, __pyx_v_item); /* "View.MemoryView":1423 * _slice_assign_scalar(data, shape + 1, strides + 1, * ndim - 1, itemsize, item) * data += stride # <<<<<<<<<<<<<< * * */ __pyx_v_data = (__pyx_v_data + __pyx_v_stride); } } __pyx_L3:; /* "View.MemoryView":1408 * * @cname('__pyx_memoryview__slice_assign_scalar') * cdef void _slice_assign_scalar(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, * size_t itemsize, void *item) nogil: */ /* function exit code */ } /* "(tree fragment)":1 * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_PickleError * cdef object __pyx_result */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_15View_dot_MemoryView_1__pyx_unpickle_Enum = {"__pyx_unpickle_Enum", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_unpickle_Enum (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0}; PyObject* values[3] = {0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_type)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_checksum)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Enum") < 0)) __PYX_ERR(1, 1, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); } __pyx_v___pyx_type = values[0]; __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error) __pyx_v___pyx_state = values[2]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 1, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_t_6; __Pyx_RefNannySetupContext("__pyx_unpickle_Enum", 0); /* "(tree fragment)":4 * cdef object __pyx_PickleError * cdef object __pyx_result * if __pyx_checksum != 0xb068931: # <<<<<<<<<<<<<< * from pickle import PickleError as __pyx_PickleError * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) */ __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xb068931) != 0); if (__pyx_t_1) { /* "(tree fragment)":5 * cdef object __pyx_result * if __pyx_checksum != 0xb068931: * from pickle import PickleError as __pyx_PickleError # <<<<<<<<<<<<<< * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) * __pyx_result = Enum.__new__(__pyx_type) */ __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_PickleError); __Pyx_GIVEREF(__pyx_n_s_PickleError); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError); __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_2); __pyx_v___pyx_PickleError = __pyx_t_2; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "(tree fragment)":6 * if __pyx_checksum != 0xb068931: * from pickle import PickleError as __pyx_PickleError * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) # <<<<<<<<<<<<<< * __pyx_result = Enum.__new__(__pyx_type) * if __pyx_state is not None: */ __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xb0, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_INCREF(__pyx_v___pyx_PickleError); __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 6, __pyx_L1_error) /* "(tree fragment)":4 * cdef object __pyx_PickleError * cdef object __pyx_result * if __pyx_checksum != 0xb068931: # <<<<<<<<<<<<<< * from pickle import PickleError as __pyx_PickleError * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) */ } /* "(tree fragment)":7 * from pickle import PickleError as __pyx_PickleError * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) * __pyx_result = Enum.__new__(__pyx_type) # <<<<<<<<<<<<<< * if __pyx_state is not None: * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_MemviewEnum_type), __pyx_n_s_new_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 7, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v___pyx_result = __pyx_t_3; __pyx_t_3 = 0; /* "(tree fragment)":8 * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) * __pyx_result = Enum.__new__(__pyx_type) * if __pyx_state is not None: # <<<<<<<<<<<<<< * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) * return __pyx_result */ __pyx_t_1 = (__pyx_v___pyx_state != Py_None); __pyx_t_6 = (__pyx_t_1 != 0); if (__pyx_t_6) { /* "(tree fragment)":9 * __pyx_result = Enum.__new__(__pyx_type) * if __pyx_state is not None: * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) # <<<<<<<<<<<<<< * return __pyx_result * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): */ if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(1, 9, __pyx_L1_error) __pyx_t_3 = __pyx_unpickle_Enum__set_state(((struct __pyx_MemviewEnum_obj *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "(tree fragment)":8 * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) * __pyx_result = Enum.__new__(__pyx_type) * if __pyx_state is not None: # <<<<<<<<<<<<<< * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) * return __pyx_result */ } /* "(tree fragment)":10 * if __pyx_state is not None: * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) * return __pyx_result # <<<<<<<<<<<<<< * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): * __pyx_result.name = __pyx_state[0] */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v___pyx_result); __pyx_r = __pyx_v___pyx_result; goto __pyx_L0; /* "(tree fragment)":1 * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_PickleError * cdef object __pyx_result */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v___pyx_PickleError); __Pyx_XDECREF(__pyx_v___pyx_result); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":11 * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) * return __pyx_result * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< * __pyx_result.name = __pyx_state[0] * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): */ static PyObject *__pyx_unpickle_Enum__set_state(struct __pyx_MemviewEnum_obj *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; Py_ssize_t __pyx_t_3; int __pyx_t_4; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("__pyx_unpickle_Enum__set_state", 0); /* "(tree fragment)":12 * return __pyx_result * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): * __pyx_result.name = __pyx_state[0] # <<<<<<<<<<<<<< * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): * __pyx_result.__dict__.update(__pyx_state[1]) */ if (unlikely(__pyx_v___pyx_state == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(1, 12, __pyx_L1_error) } __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v___pyx_result->name); __Pyx_DECREF(__pyx_v___pyx_result->name); __pyx_v___pyx_result->name = __pyx_t_1; __pyx_t_1 = 0; /* "(tree fragment)":13 * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): * __pyx_result.name = __pyx_state[0] * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< * __pyx_result.__dict__.update(__pyx_state[1]) */ if (unlikely(__pyx_v___pyx_state == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(1, 13, __pyx_L1_error) } __pyx_t_3 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error) __pyx_t_4 = ((__pyx_t_3 > 1) != 0); if (__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L4_bool_binop_done; } __pyx_t_4 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error) __pyx_t_5 = (__pyx_t_4 != 0); __pyx_t_2 = __pyx_t_5; __pyx_L4_bool_binop_done:; if (__pyx_t_2) { /* "(tree fragment)":14 * __pyx_result.name = __pyx_state[0] * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): * __pyx_result.__dict__.update(__pyx_state[1]) # <<<<<<<<<<<<<< */ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(__pyx_v___pyx_state == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(1, 14, __pyx_L1_error) } __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "(tree fragment)":13 * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): * __pyx_result.name = __pyx_state[0] * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< * __pyx_result.__dict__.update(__pyx_state[1]) */ } /* "(tree fragment)":11 * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) * return __pyx_result * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< * __pyx_result.name = __pyx_state[0] * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "BufferFormatFromTypeInfo":1464 * * @cname('__pyx_format_from_typeinfo') * cdef bytes format_from_typeinfo(__Pyx_TypeInfo *type): # <<<<<<<<<<<<<< * cdef __Pyx_StructField *field * cdef __pyx_typeinfo_string fmt */ static PyObject *__pyx_format_from_typeinfo(__Pyx_TypeInfo *__pyx_v_type) { __Pyx_StructField *__pyx_v_field; struct __pyx_typeinfo_string __pyx_v_fmt; PyObject *__pyx_v_part = 0; PyObject *__pyx_v_result = 0; PyObject *__pyx_v_alignment = NULL; PyObject *__pyx_v_parts = NULL; PyObject *__pyx_v_extents = NULL; int __pyx_v_i; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; __Pyx_StructField *__pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_t_7; int __pyx_t_8; int __pyx_t_9; int __pyx_t_10; __Pyx_RefNannySetupContext("format_from_typeinfo", 0); /* "BufferFormatFromTypeInfo":1469 * cdef bytes part, result * * if type.typegroup == 'S': # <<<<<<<<<<<<<< * assert type.fields != NULL and type.fields.type != NULL * */ __pyx_t_1 = ((__pyx_v_type->typegroup == 'S') != 0); if (__pyx_t_1) { /* "BufferFormatFromTypeInfo":1470 * * if type.typegroup == 'S': * assert type.fields != NULL and type.fields.type != NULL # <<<<<<<<<<<<<< * * if type.flags & __PYX_BUF_FLAGS_PACKED_STRUCT: */ #ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { __pyx_t_2 = ((__pyx_v_type->fields != NULL) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L4_bool_binop_done; } __pyx_t_2 = ((__pyx_v_type->fields->type != NULL) != 0); __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; if (unlikely(!__pyx_t_1)) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(1, 1470, __pyx_L1_error) } } #endif /* "BufferFormatFromTypeInfo":1472 * assert type.fields != NULL and type.fields.type != NULL * * if type.flags & __PYX_BUF_FLAGS_PACKED_STRUCT: # <<<<<<<<<<<<<< * alignment = b'^' * else: */ __pyx_t_1 = ((__pyx_v_type->flags & __PYX_BUF_FLAGS_PACKED_STRUCT) != 0); if (__pyx_t_1) { /* "BufferFormatFromTypeInfo":1473 * * if type.flags & __PYX_BUF_FLAGS_PACKED_STRUCT: * alignment = b'^' # <<<<<<<<<<<<<< * else: * alignment = b'' */ __Pyx_INCREF(__pyx_kp_b__51); __pyx_v_alignment = __pyx_kp_b__51; /* "BufferFormatFromTypeInfo":1472 * assert type.fields != NULL and type.fields.type != NULL * * if type.flags & __PYX_BUF_FLAGS_PACKED_STRUCT: # <<<<<<<<<<<<<< * alignment = b'^' * else: */ goto __pyx_L6; } /* "BufferFormatFromTypeInfo":1475 * alignment = b'^' * else: * alignment = b'' # <<<<<<<<<<<<<< * * parts = [b"T{"] */ /*else*/ { __Pyx_INCREF(__pyx_kp_b__9); __pyx_v_alignment = __pyx_kp_b__9; } __pyx_L6:; /* "BufferFormatFromTypeInfo":1477 * alignment = b'' * * parts = [b"T{"] # <<<<<<<<<<<<<< * field = type.fields * */ __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1477, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_kp_b_T); __Pyx_GIVEREF(__pyx_kp_b_T); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_kp_b_T); __pyx_v_parts = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; /* "BufferFormatFromTypeInfo":1478 * * parts = [b"T{"] * field = type.fields # <<<<<<<<<<<<<< * * while field.type: */ __pyx_t_4 = __pyx_v_type->fields; __pyx_v_field = __pyx_t_4; /* "BufferFormatFromTypeInfo":1480 * field = type.fields * * while field.type: # <<<<<<<<<<<<<< * part = format_from_typeinfo(field.type) * parts.append(part + b':' + field.name + b':') */ while (1) { __pyx_t_1 = (__pyx_v_field->type != 0); if (!__pyx_t_1) break; /* "BufferFormatFromTypeInfo":1481 * * while field.type: * part = format_from_typeinfo(field.type) # <<<<<<<<<<<<<< * parts.append(part + b':' + field.name + b':') * field += 1 */ __pyx_t_3 = __pyx_format_from_typeinfo(__pyx_v_field->type); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_part, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; /* "BufferFormatFromTypeInfo":1482 * while field.type: * part = format_from_typeinfo(field.type) * parts.append(part + b':' + field.name + b':') # <<<<<<<<<<<<<< * field += 1 * */ __pyx_t_3 = PyNumber_Add(__pyx_v_part, __pyx_kp_b__52); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_field->name); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyNumber_Add(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Add(__pyx_t_6, __pyx_kp_b__52); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_parts, __pyx_t_5); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(1, 1482, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "BufferFormatFromTypeInfo":1483 * part = format_from_typeinfo(field.type) * parts.append(part + b':' + field.name + b':') * field += 1 # <<<<<<<<<<<<<< * * result = alignment.join(parts) + b'}' */ __pyx_v_field = (__pyx_v_field + 1); } /* "BufferFormatFromTypeInfo":1485 * field += 1 * * result = alignment.join(parts) + b'}' # <<<<<<<<<<<<<< * else: * fmt = __Pyx_TypeInfoToFormat(type) */ __pyx_t_5 = __Pyx_PyBytes_Join(__pyx_v_alignment, __pyx_v_parts); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyNumber_Add(__pyx_t_5, __pyx_kp_b__53); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(PyBytes_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(1, 1485, __pyx_L1_error) __pyx_v_result = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0; /* "BufferFormatFromTypeInfo":1469 * cdef bytes part, result * * if type.typegroup == 'S': # <<<<<<<<<<<<<< * assert type.fields != NULL and type.fields.type != NULL * */ goto __pyx_L3; } /* "BufferFormatFromTypeInfo":1487 * result = alignment.join(parts) + b'}' * else: * fmt = __Pyx_TypeInfoToFormat(type) # <<<<<<<<<<<<<< * if type.arraysize[0]: * extents = [unicode(type.arraysize[i]) for i in range(type.ndim)] */ /*else*/ { __pyx_v_fmt = __Pyx_TypeInfoToFormat(__pyx_v_type); /* "BufferFormatFromTypeInfo":1488 * else: * fmt = __Pyx_TypeInfoToFormat(type) * if type.arraysize[0]: # <<<<<<<<<<<<<< * extents = [unicode(type.arraysize[i]) for i in range(type.ndim)] * result = (u"(%s)" % u','.join(extents)).encode('ascii') + fmt.string */ __pyx_t_1 = ((__pyx_v_type->arraysize[0]) != 0); if (__pyx_t_1) { /* "BufferFormatFromTypeInfo":1489 * fmt = __Pyx_TypeInfoToFormat(type) * if type.arraysize[0]: * extents = [unicode(type.arraysize[i]) for i in range(type.ndim)] # <<<<<<<<<<<<<< * result = (u"(%s)" % u','.join(extents)).encode('ascii') + fmt.string * else: */ __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_8 = __pyx_v_type->ndim; __pyx_t_9 = __pyx_t_8; for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) { __pyx_v_i = __pyx_t_10; __pyx_t_5 = __Pyx_PyInt_FromSize_t((__pyx_v_type->arraysize[__pyx_v_i])); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_Unicode(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_6, (PyObject*)__pyx_t_3))) __PYX_ERR(1, 1489, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_v_extents = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0; /* "BufferFormatFromTypeInfo":1490 * if type.arraysize[0]: * extents = [unicode(type.arraysize[i]) for i in range(type.ndim)] * result = (u"(%s)" % u','.join(extents)).encode('ascii') + fmt.string # <<<<<<<<<<<<<< * else: * result = fmt.string */ __pyx_t_6 = PyUnicode_Join(__pyx_kp_u__54, __pyx_v_extents); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_s, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyUnicode_AsASCIIString(((PyObject*)__pyx_t_3)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 1490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_FromString(__pyx_v_fmt.string); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyNumber_Add(__pyx_t_6, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(PyBytes_CheckExact(__pyx_t_5))||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(1, 1490, __pyx_L1_error) __pyx_v_result = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; /* "BufferFormatFromTypeInfo":1488 * else: * fmt = __Pyx_TypeInfoToFormat(type) * if type.arraysize[0]: # <<<<<<<<<<<<<< * extents = [unicode(type.arraysize[i]) for i in range(type.ndim)] * result = (u"(%s)" % u','.join(extents)).encode('ascii') + fmt.string */ goto __pyx_L9; } /* "BufferFormatFromTypeInfo":1492 * result = (u"(%s)" % u','.join(extents)).encode('ascii') + fmt.string * else: * result = fmt.string # <<<<<<<<<<<<<< * * return result */ /*else*/ { __pyx_t_5 = __Pyx_PyObject_FromString(__pyx_v_fmt.string); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 1492, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_v_result = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; } __pyx_L9:; } __pyx_L3:; /* "BufferFormatFromTypeInfo":1494 * result = fmt.string * * return result # <<<<<<<<<<<<<< */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_result); __pyx_r = __pyx_v_result; goto __pyx_L0; /* "BufferFormatFromTypeInfo":1464 * * @cname('__pyx_format_from_typeinfo') * cdef bytes format_from_typeinfo(__Pyx_TypeInfo *type): # <<<<<<<<<<<<<< * cdef __Pyx_StructField *field * cdef __pyx_typeinfo_string fmt */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("BufferFormatFromTypeInfo.format_from_typeinfo", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_part); __Pyx_XDECREF(__pyx_v_result); __Pyx_XDECREF(__pyx_v_alignment); __Pyx_XDECREF(__pyx_v_parts); __Pyx_XDECREF(__pyx_v_extents); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_tp_new_4pywt_11_extensions_5_pywt_Wavelet(PyTypeObject *t, PyObject *a, PyObject *k) { struct WaveletObject *p; PyObject *o; if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { o = (*t->tp_alloc)(t, 0); } else { o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); } if (unlikely(!o)) return 0; p = ((struct WaveletObject *)o); p->name = Py_None; Py_INCREF(Py_None); p->number = Py_None; Py_INCREF(Py_None); if (unlikely(__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_1__cinit__(o, a, k) < 0)) goto bad; return o; bad: Py_DECREF(o); o = 0; return NULL; } static void __pyx_tp_dealloc_4pywt_11_extensions_5_pywt_Wavelet(PyObject *o) { struct WaveletObject *p = (struct WaveletObject *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif PyObject_GC_UnTrack(o); { PyObject *etype, *eval, *etb; PyErr_Fetch(&etype, &eval, &etb); ++Py_REFCNT(o); __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_3__dealloc__(o); --Py_REFCNT(o); PyErr_Restore(etype, eval, etb); } Py_CLEAR(p->name); Py_CLEAR(p->number); (*Py_TYPE(o)->tp_free)(o); } static int __pyx_tp_traverse_4pywt_11_extensions_5_pywt_Wavelet(PyObject *o, visitproc v, void *a) { int e; struct WaveletObject *p = (struct WaveletObject *)o; if (p->name) { e = (*v)(p->name, a); if (e) return e; } if (p->number) { e = (*v)(p->number, a); if (e) return e; } return 0; } static int __pyx_tp_clear_4pywt_11_extensions_5_pywt_Wavelet(PyObject *o) { PyObject* tmp; struct WaveletObject *p = (struct WaveletObject *)o; tmp = ((PyObject*)p->name); p->name = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->number); p->number = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_dec_lo(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_6dec_lo_1__get__(o); } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_dec_hi(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_6dec_hi_1__get__(o); } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_rec_lo(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_6rec_lo_1__get__(o); } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_rec_hi(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_6rec_hi_1__get__(o); } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_rec_len(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_7rec_len_1__get__(o); } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_dec_len(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_7dec_len_1__get__(o); } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_family_number(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_13family_number_1__get__(o); } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_family_name(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_11family_name_1__get__(o); } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_short_family_name(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_17short_family_name_1__get__(o); } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_orthogonal(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_10orthogonal_1__get__(o); } static int __pyx_setprop_4pywt_11_extensions_5_pywt_7Wavelet_orthogonal(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_10orthogonal_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_biorthogonal(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_12biorthogonal_1__get__(o); } static int __pyx_setprop_4pywt_11_extensions_5_pywt_7Wavelet_biorthogonal(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_12biorthogonal_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_symmetry(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_8symmetry_1__get__(o); } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_vanishing_moments_psi(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_21vanishing_moments_psi_1__get__(o); } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_vanishing_moments_phi(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_21vanishing_moments_phi_1__get__(o); } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_filter_bank(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_11filter_bank_1__get__(o); } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_inverse_filter_bank(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_19inverse_filter_bank_1__get__(o); } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_name(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_4name_1__get__(o); } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_number(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_6number_1__get__(o); } static PyMethodDef __pyx_methods_4pywt_11_extensions_5_pywt_Wavelet[] = { {"get_filters_coeffs", (PyCFunction)__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_7get_filters_coeffs, METH_NOARGS, 0}, {"get_reverse_filters_coeffs", (PyCFunction)__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_9get_reverse_filters_coeffs, METH_NOARGS, 0}, {"wavefun", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_11wavefun, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4pywt_11_extensions_5_pywt_7Wavelet_10wavefun}, {"__reduce_cython__", (PyCFunction)__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_17__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_19__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_4pywt_11_extensions_5_pywt_Wavelet[] = { {(char *)"dec_lo", __pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_dec_lo, 0, (char *)"Lowpass decomposition filter", 0}, {(char *)"dec_hi", __pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_dec_hi, 0, (char *)"Highpass decomposition filter", 0}, {(char *)"rec_lo", __pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_rec_lo, 0, (char *)"Lowpass reconstruction filter", 0}, {(char *)"rec_hi", __pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_rec_hi, 0, (char *)"Highpass reconstruction filter", 0}, {(char *)"rec_len", __pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_rec_len, 0, (char *)"Reconstruction filters length", 0}, {(char *)"dec_len", __pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_dec_len, 0, (char *)"Decomposition filters length", 0}, {(char *)"family_number", __pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_family_number, 0, (char *)"Wavelet family number", 0}, {(char *)"family_name", __pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_family_name, 0, (char *)"Wavelet family name", 0}, {(char *)"short_family_name", __pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_short_family_name, 0, (char *)"Short wavelet family name", 0}, {(char *)"orthogonal", __pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_orthogonal, __pyx_setprop_4pywt_11_extensions_5_pywt_7Wavelet_orthogonal, (char *)"Is orthogonal", 0}, {(char *)"biorthogonal", __pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_biorthogonal, __pyx_setprop_4pywt_11_extensions_5_pywt_7Wavelet_biorthogonal, (char *)"Is biorthogonal", 0}, {(char *)"symmetry", __pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_symmetry, 0, (char *)"Wavelet symmetry", 0}, {(char *)"vanishing_moments_psi", __pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_vanishing_moments_psi, 0, (char *)"Number of vanishing moments for wavelet function", 0}, {(char *)"vanishing_moments_phi", __pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_vanishing_moments_phi, 0, (char *)"Number of vanishing moments for scaling function", 0}, {(char *)"filter_bank", __pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_filter_bank, 0, (char *)"Returns tuple of wavelet filters coefficients\n (dec_lo, dec_hi, rec_lo, rec_hi)\n ", 0}, {(char *)"inverse_filter_bank", __pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_inverse_filter_bank, 0, (char *)"Tuple of inverse wavelet filters coefficients\n (rec_lo[::-1], rec_hi[::-1], dec_lo[::-1], dec_hi[::-1])\n ", 0}, {(char *)"name", __pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_name, 0, (char *)0, 0}, {(char *)"number", __pyx_getprop_4pywt_11_extensions_5_pywt_7Wavelet_number, 0, (char *)0, 0}, {0, 0, 0, 0, 0} }; static PySequenceMethods __pyx_tp_as_sequence_Wavelet = { __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_5__len__, /*sq_length*/ 0, /*sq_concat*/ 0, /*sq_repeat*/ 0, /*sq_item*/ 0, /*sq_slice*/ 0, /*sq_ass_item*/ 0, /*sq_ass_slice*/ 0, /*sq_contains*/ 0, /*sq_inplace_concat*/ 0, /*sq_inplace_repeat*/ }; static PyMappingMethods __pyx_tp_as_mapping_Wavelet = { __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_5__len__, /*mp_length*/ 0, /*mp_subscript*/ 0, /*mp_ass_subscript*/ }; DL_EXPORT(PyTypeObject) WaveletType = { PyVarObject_HEAD_INIT(0, 0) "pywt._extensions._pywt.Wavelet", /*tp_name*/ sizeof(struct WaveletObject), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_4pywt_11_extensions_5_pywt_Wavelet, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_15__repr__, /*tp_repr*/ 0, /*tp_as_number*/ &__pyx_tp_as_sequence_Wavelet, /*tp_as_sequence*/ &__pyx_tp_as_mapping_Wavelet, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ __pyx_pw_4pywt_11_extensions_5_pywt_7Wavelet_13__str__, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ "\n Wavelet(name, filter_bank=None) object describe properties of\n a wavelet identified by name.\n\n In order to use a built-in wavelet the parameter name must be\n a valid name from the wavelist() list.\n To create a custom wavelet object, filter_bank parameter must\n be specified. It can be either a list of four filters or an object\n that a `filter_bank` attribute which returns a list of four\n filters - just like the Wavelet instance itself.\n\n ", /*tp_doc*/ __pyx_tp_traverse_4pywt_11_extensions_5_pywt_Wavelet, /*tp_traverse*/ __pyx_tp_clear_4pywt_11_extensions_5_pywt_Wavelet, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_4pywt_11_extensions_5_pywt_Wavelet, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_4pywt_11_extensions_5_pywt_Wavelet, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_4pywt_11_extensions_5_pywt_Wavelet, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif }; static PyObject *__pyx_tp_new_4pywt_11_extensions_5_pywt_ContinuousWavelet(PyTypeObject *t, PyObject *a, PyObject *k) { struct ContinuousWaveletObject *p; PyObject *o; if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { o = (*t->tp_alloc)(t, 0); } else { o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); } if (unlikely(!o)) return 0; p = ((struct ContinuousWaveletObject *)o); p->name = Py_None; Py_INCREF(Py_None); p->number = Py_None; Py_INCREF(Py_None); p->dt = Py_None; Py_INCREF(Py_None); if (unlikely(__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_1__cinit__(o, a, k) < 0)) goto bad; return o; bad: Py_DECREF(o); o = 0; return NULL; } static void __pyx_tp_dealloc_4pywt_11_extensions_5_pywt_ContinuousWavelet(PyObject *o) { struct ContinuousWaveletObject *p = (struct ContinuousWaveletObject *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif PyObject_GC_UnTrack(o); { PyObject *etype, *eval, *etb; PyErr_Fetch(&etype, &eval, &etb); ++Py_REFCNT(o); __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_3__dealloc__(o); --Py_REFCNT(o); PyErr_Restore(etype, eval, etb); } Py_CLEAR(p->name); Py_CLEAR(p->number); Py_CLEAR(p->dt); (*Py_TYPE(o)->tp_free)(o); } static int __pyx_tp_traverse_4pywt_11_extensions_5_pywt_ContinuousWavelet(PyObject *o, visitproc v, void *a) { int e; struct ContinuousWaveletObject *p = (struct ContinuousWaveletObject *)o; if (p->name) { e = (*v)(p->name, a); if (e) return e; } if (p->number) { e = (*v)(p->number, a); if (e) return e; } if (p->dt) { e = (*v)(p->dt, a); if (e) return e; } return 0; } static int __pyx_tp_clear_4pywt_11_extensions_5_pywt_ContinuousWavelet(PyObject *o) { PyObject* tmp; struct ContinuousWaveletObject *p = (struct ContinuousWaveletObject *)o; tmp = ((PyObject*)p->name); p->name = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->number); p->number = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->dt); p->dt = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_family_number(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_13family_number_1__get__(o); } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_family_name(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11family_name_1__get__(o); } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_short_family_name(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_17short_family_name_1__get__(o); } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_orthogonal(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_10orthogonal_1__get__(o); } static int __pyx_setprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_orthogonal(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_10orthogonal_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_biorthogonal(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_12biorthogonal_1__get__(o); } static int __pyx_setprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_biorthogonal(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_12biorthogonal_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_complex_cwt(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11complex_cwt_1__get__(o); } static int __pyx_setprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_complex_cwt(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11complex_cwt_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_lower_bound(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11lower_bound_1__get__(o); } static int __pyx_setprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_lower_bound(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11lower_bound_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_upper_bound(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11upper_bound_1__get__(o); } static int __pyx_setprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_upper_bound(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11upper_bound_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_center_frequency(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_16center_frequency_1__get__(o); } static int __pyx_setprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_center_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_16center_frequency_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_bandwidth_frequency(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_19bandwidth_frequency_1__get__(o); } static int __pyx_setprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_bandwidth_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_19bandwidth_frequency_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_fbsp_order(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_10fbsp_order_1__get__(o); } static int __pyx_setprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_fbsp_order(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { if (v) { return __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_10fbsp_order_3__set__(o, v); } else { PyErr_SetString(PyExc_NotImplementedError, "__del__"); return -1; } } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_symmetry(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_8symmetry_1__get__(o); } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_name(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_4name_1__get__(o); } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_number(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_6number_1__get__(o); } static PyObject *__pyx_getprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_dt(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_2dt_1__get__(o); } static PyMethodDef __pyx_methods_4pywt_11_extensions_5_pywt_ContinuousWavelet[] = { {"wavefun", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_5wavefun, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4pywt_11_extensions_5_pywt_17ContinuousWavelet_4wavefun}, {"__reduce_cython__", (PyCFunction)__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_11__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_13__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_4pywt_11_extensions_5_pywt_ContinuousWavelet[] = { {(char *)"family_number", __pyx_getprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_family_number, 0, (char *)"Wavelet family number", 0}, {(char *)"family_name", __pyx_getprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_family_name, 0, (char *)"Wavelet family name", 0}, {(char *)"short_family_name", __pyx_getprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_short_family_name, 0, (char *)"Short wavelet family name", 0}, {(char *)"orthogonal", __pyx_getprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_orthogonal, __pyx_setprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_orthogonal, (char *)"Is orthogonal", 0}, {(char *)"biorthogonal", __pyx_getprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_biorthogonal, __pyx_setprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_biorthogonal, (char *)"Is biorthogonal", 0}, {(char *)"complex_cwt", __pyx_getprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_complex_cwt, __pyx_setprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_complex_cwt, (char *)"CWT is complex", 0}, {(char *)"lower_bound", __pyx_getprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_lower_bound, __pyx_setprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_lower_bound, (char *)"Lower Bound", 0}, {(char *)"upper_bound", __pyx_getprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_upper_bound, __pyx_setprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_upper_bound, (char *)"Upper Bound", 0}, {(char *)"center_frequency", __pyx_getprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_center_frequency, __pyx_setprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_center_frequency, (char *)"Center frequency (shan, fbsp, cmor)", 0}, {(char *)"bandwidth_frequency", __pyx_getprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_bandwidth_frequency, __pyx_setprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_bandwidth_frequency, (char *)"Bandwidth frequency (shan, fbsp, cmor)", 0}, {(char *)"fbsp_order", __pyx_getprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_fbsp_order, __pyx_setprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_fbsp_order, (char *)"order parameter for fbsp", 0}, {(char *)"symmetry", __pyx_getprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_symmetry, 0, (char *)"Wavelet symmetry", 0}, {(char *)"name", __pyx_getprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_name, 0, (char *)0, 0}, {(char *)"number", __pyx_getprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_number, 0, (char *)0, 0}, {(char *)"dt", __pyx_getprop_4pywt_11_extensions_5_pywt_17ContinuousWavelet_dt, 0, (char *)0, 0}, {0, 0, 0, 0, 0} }; DL_EXPORT(PyTypeObject) ContinuousWaveletType = { PyVarObject_HEAD_INIT(0, 0) "pywt._extensions._pywt.ContinuousWavelet", /*tp_name*/ sizeof(struct ContinuousWaveletObject), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_4pywt_11_extensions_5_pywt_ContinuousWavelet, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_9__repr__, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ __pyx_pw_4pywt_11_extensions_5_pywt_17ContinuousWavelet_7__str__, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ "\n ContinuousWavelet(name) object describe properties of\n a continuous wavelet identified by name.\n\n In order to use a built-in wavelet the parameter name must be\n a valid name from the wavelist() list.\n\n ", /*tp_doc*/ __pyx_tp_traverse_4pywt_11_extensions_5_pywt_ContinuousWavelet, /*tp_traverse*/ __pyx_tp_clear_4pywt_11_extensions_5_pywt_ContinuousWavelet, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_4pywt_11_extensions_5_pywt_ContinuousWavelet, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_4pywt_11_extensions_5_pywt_ContinuousWavelet, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_4pywt_11_extensions_5_pywt_ContinuousWavelet, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif }; static struct __pyx_vtabstruct_array __pyx_vtable_array; static PyObject *__pyx_tp_new_array(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_array_obj *p; PyObject *o; if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { o = (*t->tp_alloc)(t, 0); } else { o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); } if (unlikely(!o)) return 0; p = ((struct __pyx_array_obj *)o); p->__pyx_vtab = __pyx_vtabptr_array; p->mode = ((PyObject*)Py_None); Py_INCREF(Py_None); p->_format = ((PyObject*)Py_None); Py_INCREF(Py_None); if (unlikely(__pyx_array___cinit__(o, a, k) < 0)) goto bad; return o; bad: Py_DECREF(o); o = 0; return NULL; } static void __pyx_tp_dealloc_array(PyObject *o) { struct __pyx_array_obj *p = (struct __pyx_array_obj *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif { PyObject *etype, *eval, *etb; PyErr_Fetch(&etype, &eval, &etb); ++Py_REFCNT(o); __pyx_array___dealloc__(o); --Py_REFCNT(o); PyErr_Restore(etype, eval, etb); } Py_CLEAR(p->mode); Py_CLEAR(p->_format); (*Py_TYPE(o)->tp_free)(o); } static PyObject *__pyx_sq_item_array(PyObject *o, Py_ssize_t i) { PyObject *r; PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0; r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x); Py_DECREF(x); return r; } static int __pyx_mp_ass_subscript_array(PyObject *o, PyObject *i, PyObject *v) { if (v) { return __pyx_array___setitem__(o, i, v); } else { PyErr_Format(PyExc_NotImplementedError, "Subscript deletion not supported by %.200s", Py_TYPE(o)->tp_name); return -1; } } static PyObject *__pyx_tp_getattro_array(PyObject *o, PyObject *n) { PyObject *v = __Pyx_PyObject_GenericGetAttr(o, n); if (!v && PyErr_ExceptionMatches(PyExc_AttributeError)) { PyErr_Clear(); v = __pyx_array___getattr__(o, n); } return v; } static PyObject *__pyx_getprop___pyx_array_memview(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(o); } static PyMethodDef __pyx_methods_array[] = { {"__getattr__", (PyCFunction)__pyx_array___getattr__, METH_O|METH_COEXIST, 0}, {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_array_1__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_array_3__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_array[] = { {(char *)"memview", __pyx_getprop___pyx_array_memview, 0, (char *)0, 0}, {0, 0, 0, 0, 0} }; static PySequenceMethods __pyx_tp_as_sequence_array = { __pyx_array___len__, /*sq_length*/ 0, /*sq_concat*/ 0, /*sq_repeat*/ __pyx_sq_item_array, /*sq_item*/ 0, /*sq_slice*/ 0, /*sq_ass_item*/ 0, /*sq_ass_slice*/ 0, /*sq_contains*/ 0, /*sq_inplace_concat*/ 0, /*sq_inplace_repeat*/ }; static PyMappingMethods __pyx_tp_as_mapping_array = { __pyx_array___len__, /*mp_length*/ __pyx_array___getitem__, /*mp_subscript*/ __pyx_mp_ass_subscript_array, /*mp_ass_subscript*/ }; static PyBufferProcs __pyx_tp_as_buffer_array = { #if PY_MAJOR_VERSION < 3 0, /*bf_getreadbuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getwritebuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getsegcount*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getcharbuffer*/ #endif __pyx_array_getbuffer, /*bf_getbuffer*/ 0, /*bf_releasebuffer*/ }; static PyTypeObject __pyx_type___pyx_array = { PyVarObject_HEAD_INIT(0, 0) "pywt._extensions._pywt.array", /*tp_name*/ sizeof(struct __pyx_array_obj), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_array, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ &__pyx_tp_as_sequence_array, /*tp_as_sequence*/ &__pyx_tp_as_mapping_array, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ __pyx_tp_getattro_array, /*tp_getattro*/ 0, /*tp_setattro*/ &__pyx_tp_as_buffer_array, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ 0, /*tp_doc*/ 0, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_array, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_array, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_array, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif }; static PyObject *__pyx_tp_new_Enum(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { struct __pyx_MemviewEnum_obj *p; PyObject *o; if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { o = (*t->tp_alloc)(t, 0); } else { o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); } if (unlikely(!o)) return 0; p = ((struct __pyx_MemviewEnum_obj *)o); p->name = Py_None; Py_INCREF(Py_None); return o; } static void __pyx_tp_dealloc_Enum(PyObject *o) { struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->name); (*Py_TYPE(o)->tp_free)(o); } static int __pyx_tp_traverse_Enum(PyObject *o, visitproc v, void *a) { int e; struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o; if (p->name) { e = (*v)(p->name, a); if (e) return e; } return 0; } static int __pyx_tp_clear_Enum(PyObject *o) { PyObject* tmp; struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o; tmp = ((PyObject*)p->name); p->name = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyMethodDef __pyx_methods_Enum[] = { {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_MemviewEnum_1__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_MemviewEnum_3__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static PyTypeObject __pyx_type___pyx_MemviewEnum = { PyVarObject_HEAD_INIT(0, 0) "pywt._extensions._pywt.Enum", /*tp_name*/ sizeof(struct __pyx_MemviewEnum_obj), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_Enum, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif __pyx_MemviewEnum___repr__, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_Enum, /*tp_traverse*/ __pyx_tp_clear_Enum, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_Enum, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ __pyx_MemviewEnum___init__, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_Enum, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif }; static struct __pyx_vtabstruct_memoryview __pyx_vtable_memoryview; static PyObject *__pyx_tp_new_memoryview(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_memoryview_obj *p; PyObject *o; if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { o = (*t->tp_alloc)(t, 0); } else { o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); } if (unlikely(!o)) return 0; p = ((struct __pyx_memoryview_obj *)o); p->__pyx_vtab = __pyx_vtabptr_memoryview; p->obj = Py_None; Py_INCREF(Py_None); p->_size = Py_None; Py_INCREF(Py_None); p->_array_interface = Py_None; Py_INCREF(Py_None); p->view.obj = NULL; if (unlikely(__pyx_memoryview___cinit__(o, a, k) < 0)) goto bad; return o; bad: Py_DECREF(o); o = 0; return NULL; } static void __pyx_tp_dealloc_memoryview(PyObject *o) { struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif PyObject_GC_UnTrack(o); { PyObject *etype, *eval, *etb; PyErr_Fetch(&etype, &eval, &etb); ++Py_REFCNT(o); __pyx_memoryview___dealloc__(o); --Py_REFCNT(o); PyErr_Restore(etype, eval, etb); } Py_CLEAR(p->obj); Py_CLEAR(p->_size); Py_CLEAR(p->_array_interface); (*Py_TYPE(o)->tp_free)(o); } static int __pyx_tp_traverse_memoryview(PyObject *o, visitproc v, void *a) { int e; struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o; if (p->obj) { e = (*v)(p->obj, a); if (e) return e; } if (p->_size) { e = (*v)(p->_size, a); if (e) return e; } if (p->_array_interface) { e = (*v)(p->_array_interface, a); if (e) return e; } if (p->view.obj) { e = (*v)(p->view.obj, a); if (e) return e; } return 0; } static int __pyx_tp_clear_memoryview(PyObject *o) { PyObject* tmp; struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o; tmp = ((PyObject*)p->obj); p->obj = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->_size); p->_size = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->_array_interface); p->_array_interface = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); Py_CLEAR(p->view.obj); return 0; } static PyObject *__pyx_sq_item_memoryview(PyObject *o, Py_ssize_t i) { PyObject *r; PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0; r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x); Py_DECREF(x); return r; } static int __pyx_mp_ass_subscript_memoryview(PyObject *o, PyObject *i, PyObject *v) { if (v) { return __pyx_memoryview___setitem__(o, i, v); } else { PyErr_Format(PyExc_NotImplementedError, "Subscript deletion not supported by %.200s", Py_TYPE(o)->tp_name); return -1; } } static PyObject *__pyx_getprop___pyx_memoryview_T(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_base(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_shape(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_strides(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_suboffsets(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_ndim(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_itemsize(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_nbytes(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_size(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(o); } static PyMethodDef __pyx_methods_memoryview[] = { {"is_c_contig", (PyCFunction)__pyx_memoryview_is_c_contig, METH_NOARGS, 0}, {"is_f_contig", (PyCFunction)__pyx_memoryview_is_f_contig, METH_NOARGS, 0}, {"copy", (PyCFunction)__pyx_memoryview_copy, METH_NOARGS, 0}, {"copy_fortran", (PyCFunction)__pyx_memoryview_copy_fortran, METH_NOARGS, 0}, {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_memoryview_1__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_memoryview_3__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_memoryview[] = { {(char *)"T", __pyx_getprop___pyx_memoryview_T, 0, (char *)0, 0}, {(char *)"base", __pyx_getprop___pyx_memoryview_base, 0, (char *)0, 0}, {(char *)"shape", __pyx_getprop___pyx_memoryview_shape, 0, (char *)0, 0}, {(char *)"strides", __pyx_getprop___pyx_memoryview_strides, 0, (char *)0, 0}, {(char *)"suboffsets", __pyx_getprop___pyx_memoryview_suboffsets, 0, (char *)0, 0}, {(char *)"ndim", __pyx_getprop___pyx_memoryview_ndim, 0, (char *)0, 0}, {(char *)"itemsize", __pyx_getprop___pyx_memoryview_itemsize, 0, (char *)0, 0}, {(char *)"nbytes", __pyx_getprop___pyx_memoryview_nbytes, 0, (char *)0, 0}, {(char *)"size", __pyx_getprop___pyx_memoryview_size, 0, (char *)0, 0}, {0, 0, 0, 0, 0} }; static PySequenceMethods __pyx_tp_as_sequence_memoryview = { __pyx_memoryview___len__, /*sq_length*/ 0, /*sq_concat*/ 0, /*sq_repeat*/ __pyx_sq_item_memoryview, /*sq_item*/ 0, /*sq_slice*/ 0, /*sq_ass_item*/ 0, /*sq_ass_slice*/ 0, /*sq_contains*/ 0, /*sq_inplace_concat*/ 0, /*sq_inplace_repeat*/ }; static PyMappingMethods __pyx_tp_as_mapping_memoryview = { __pyx_memoryview___len__, /*mp_length*/ __pyx_memoryview___getitem__, /*mp_subscript*/ __pyx_mp_ass_subscript_memoryview, /*mp_ass_subscript*/ }; static PyBufferProcs __pyx_tp_as_buffer_memoryview = { #if PY_MAJOR_VERSION < 3 0, /*bf_getreadbuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getwritebuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getsegcount*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getcharbuffer*/ #endif __pyx_memoryview_getbuffer, /*bf_getbuffer*/ 0, /*bf_releasebuffer*/ }; static PyTypeObject __pyx_type___pyx_memoryview = { PyVarObject_HEAD_INIT(0, 0) "pywt._extensions._pywt.memoryview", /*tp_name*/ sizeof(struct __pyx_memoryview_obj), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_memoryview, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif __pyx_memoryview___repr__, /*tp_repr*/ 0, /*tp_as_number*/ &__pyx_tp_as_sequence_memoryview, /*tp_as_sequence*/ &__pyx_tp_as_mapping_memoryview, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ __pyx_memoryview___str__, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ &__pyx_tp_as_buffer_memoryview, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_memoryview, /*tp_traverse*/ __pyx_tp_clear_memoryview, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_memoryview, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_memoryview, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_memoryview, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif }; static struct __pyx_vtabstruct__memoryviewslice __pyx_vtable__memoryviewslice; static PyObject *__pyx_tp_new__memoryviewslice(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_memoryviewslice_obj *p; PyObject *o = __pyx_tp_new_memoryview(t, a, k); if (unlikely(!o)) return 0; p = ((struct __pyx_memoryviewslice_obj *)o); p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_memoryview*)__pyx_vtabptr__memoryviewslice; p->from_object = Py_None; Py_INCREF(Py_None); p->from_slice.memview = NULL; return o; } static void __pyx_tp_dealloc__memoryviewslice(PyObject *o) { struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif PyObject_GC_UnTrack(o); { PyObject *etype, *eval, *etb; PyErr_Fetch(&etype, &eval, &etb); ++Py_REFCNT(o); __pyx_memoryviewslice___dealloc__(o); --Py_REFCNT(o); PyErr_Restore(etype, eval, etb); } Py_CLEAR(p->from_object); PyObject_GC_Track(o); __pyx_tp_dealloc_memoryview(o); } static int __pyx_tp_traverse__memoryviewslice(PyObject *o, visitproc v, void *a) { int e; struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o; e = __pyx_tp_traverse_memoryview(o, v, a); if (e) return e; if (p->from_object) { e = (*v)(p->from_object, a); if (e) return e; } return 0; } static int __pyx_tp_clear__memoryviewslice(PyObject *o) { PyObject* tmp; struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o; __pyx_tp_clear_memoryview(o); tmp = ((PyObject*)p->from_object); p->from_object = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); __PYX_XDEC_MEMVIEW(&p->from_slice, 1); return 0; } static PyObject *__pyx_getprop___pyx_memoryviewslice_base(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(o); } static PyMethodDef __pyx_methods__memoryviewslice[] = { {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_memoryviewslice_1__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_memoryviewslice_3__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets__memoryviewslice[] = { {(char *)"base", __pyx_getprop___pyx_memoryviewslice_base, 0, (char *)0, 0}, {0, 0, 0, 0, 0} }; static PyTypeObject __pyx_type___pyx_memoryviewslice = { PyVarObject_HEAD_INIT(0, 0) "pywt._extensions._pywt._memoryviewslice", /*tp_name*/ sizeof(struct __pyx_memoryviewslice_obj), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc__memoryviewslice, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif #if CYTHON_COMPILING_IN_PYPY __pyx_memoryview___repr__, /*tp_repr*/ #else 0, /*tp_repr*/ #endif 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ #if CYTHON_COMPILING_IN_PYPY __pyx_memoryview___str__, /*tp_str*/ #else 0, /*tp_str*/ #endif 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ "Internal class for passing memoryview slices to Python", /*tp_doc*/ __pyx_tp_traverse__memoryviewslice, /*tp_traverse*/ __pyx_tp_clear__memoryviewslice, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods__memoryviewslice, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets__memoryviewslice, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new__memoryviewslice, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif }; static PyMethodDef __pyx_methods[] = { {"_check_dtype", (PyCFunction)__pyx_pw_4pywt_11_extensions_5_pywt_9_check_dtype, METH_O, __pyx_doc_4pywt_11_extensions_5_pywt_8_check_dtype}, {0, 0, 0, 0} }; #if PY_MAJOR_VERSION >= 3 #if CYTHON_PEP489_MULTI_PHASE_INIT static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/ static int __pyx_pymod_exec__pywt(PyObject* module); /*proto*/ static PyModuleDef_Slot __pyx_moduledef_slots[] = { {Py_mod_create, (void*)__pyx_pymod_create}, {Py_mod_exec, (void*)__pyx_pymod_exec__pywt}, {0, NULL} }; #endif static struct PyModuleDef __pyx_moduledef = { PyModuleDef_HEAD_INIT, "_pywt", 0, /* m_doc */ #if CYTHON_PEP489_MULTI_PHASE_INIT 0, /* m_size */ #else -1, /* m_size */ #endif __pyx_methods /* m_methods */, #if CYTHON_PEP489_MULTI_PHASE_INIT __pyx_moduledef_slots, /* m_slots */ #else NULL, /* m_reload */ #endif NULL, /* m_traverse */ NULL, /* m_clear */ NULL /* m_free */ }; #endif #ifndef CYTHON_SMALL_CODE #if defined(__clang__) #define CYTHON_SMALL_CODE #elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) #define CYTHON_SMALL_CODE __attribute__((cold)) #else #define CYTHON_SMALL_CODE #endif #endif static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_ASCII, __pyx_k_ASCII, sizeof(__pyx_k_ASCII), 0, 0, 1, 1}, {&__pyx_kp_u_All_filters_in_filter_bank_must, __pyx_k_All_filters_in_filter_bank_must, sizeof(__pyx_k_All_filters_in_filter_bank_must), 0, 1, 0, 0}, {&__pyx_kp_u_All_filters_in_filter_bank_must_2, __pyx_k_All_filters_in_filter_bank_must_2, sizeof(__pyx_k_All_filters_in_filter_bank_must_2), 0, 1, 0, 0}, {&__pyx_n_s_AttributeError, __pyx_k_AttributeError, sizeof(__pyx_k_AttributeError), 0, 0, 1, 1}, {&__pyx_kp_s_Because_the_most_common_and_pra, __pyx_k_Because_the_most_common_and_pra, sizeof(__pyx_k_Because_the_most_common_and_pra), 0, 0, 1, 0}, {&__pyx_n_u_Biorthogonal, __pyx_k_Biorthogonal, sizeof(__pyx_k_Biorthogonal), 0, 1, 0, 1}, {&__pyx_kp_u_Biorthogonal_s, __pyx_k_Biorthogonal_s, sizeof(__pyx_k_Biorthogonal_s), 0, 1, 0, 0}, {&__pyx_kp_s_Buffer_view_does_not_expose_stri, __pyx_k_Buffer_view_does_not_expose_stri, sizeof(__pyx_k_Buffer_view_does_not_expose_stri), 0, 0, 1, 0}, {&__pyx_kp_u_CWT_False, __pyx_k_CWT_False, sizeof(__pyx_k_CWT_False), 0, 1, 0, 0}, {&__pyx_kp_u_CWT_True, __pyx_k_CWT_True, sizeof(__pyx_k_CWT_True), 0, 1, 0, 0}, {&__pyx_kp_s_Can_only_create_a_buffer_that_is, __pyx_k_Can_only_create_a_buffer_that_is, sizeof(__pyx_k_Can_only_create_a_buffer_that_is), 0, 0, 1, 0}, {&__pyx_kp_s_Cannot_assign_to_read_only_memor, __pyx_k_Cannot_assign_to_read_only_memor, sizeof(__pyx_k_Cannot_assign_to_read_only_memor), 0, 0, 1, 0}, {&__pyx_kp_s_Cannot_create_writable_memory_vi, __pyx_k_Cannot_create_writable_memory_vi, sizeof(__pyx_k_Cannot_create_writable_memory_vi), 0, 0, 1, 0}, {&__pyx_kp_s_Cannot_index_with_type_s, __pyx_k_Cannot_index_with_type_s, sizeof(__pyx_k_Cannot_index_with_type_s), 0, 0, 1, 0}, {&__pyx_n_u_Coiflets, __pyx_k_Coiflets, sizeof(__pyx_k_Coiflets), 0, 1, 0, 1}, {&__pyx_kp_u_Complex_CWT_s, __pyx_k_Complex_CWT_s, sizeof(__pyx_k_Complex_CWT_s), 0, 1, 0, 0}, {&__pyx_kp_u_Complex_Gaussian_wavelets, __pyx_k_Complex_Gaussian_wavelets, sizeof(__pyx_k_Complex_Gaussian_wavelets), 0, 1, 0, 0}, {&__pyx_kp_u_Complex_Morlet_wavelets, __pyx_k_Complex_Morlet_wavelets, sizeof(__pyx_k_Complex_Morlet_wavelets), 0, 1, 0, 0}, {&__pyx_n_s_ContinuousWavelet, __pyx_k_ContinuousWavelet, sizeof(__pyx_k_ContinuousWavelet), 0, 0, 1, 1}, {&__pyx_n_u_ContinuousWavelet, __pyx_k_ContinuousWavelet, sizeof(__pyx_k_ContinuousWavelet), 0, 1, 0, 1}, {&__pyx_kp_u_ContinuousWavelet_s, __pyx_k_ContinuousWavelet_s, sizeof(__pyx_k_ContinuousWavelet_s), 0, 1, 0, 0}, {&__pyx_kp_u_ContinuousWavelet_wavefun_line_8, __pyx_k_ContinuousWavelet_wavefun_line_8, sizeof(__pyx_k_ContinuousWavelet_wavefun_line_8), 0, 1, 0, 0}, {&__pyx_kp_u_Could_not_allocate_memory_for_gi, __pyx_k_Could_not_allocate_memory_for_gi, sizeof(__pyx_k_Could_not_allocate_memory_for_gi), 0, 1, 0, 0}, {&__pyx_kp_u_Creating_custom_Wavelets_using_o, __pyx_k_Creating_custom_Wavelets_using_o, sizeof(__pyx_k_Creating_custom_Wavelets_using_o), 0, 1, 0, 0}, {&__pyx_kp_u_Cython_wrapper_for_low_level_C_w, __pyx_k_Cython_wrapper_for_low_level_C_w, sizeof(__pyx_k_Cython_wrapper_for_low_level_C_w), 0, 1, 0, 0}, {&__pyx_kp_u_DWT_False, __pyx_k_DWT_False, sizeof(__pyx_k_DWT_False), 0, 1, 0, 0}, {&__pyx_kp_u_DWT_True, __pyx_k_DWT_True, sizeof(__pyx_k_DWT_True), 0, 1, 0, 0}, {&__pyx_kp_u_D_d_d, __pyx_k_D_d_d, sizeof(__pyx_k_D_d_d), 0, 1, 0, 0}, {&__pyx_n_u_Daubechies, __pyx_k_Daubechies, sizeof(__pyx_k_Daubechies), 0, 1, 0, 1}, {&__pyx_n_s_DeprecatedMODES, __pyx_k_DeprecatedMODES, sizeof(__pyx_k_DeprecatedMODES), 0, 0, 1, 1}, {&__pyx_n_s_DeprecatedMODES___getattr, __pyx_k_DeprecatedMODES___getattr, sizeof(__pyx_k_DeprecatedMODES___getattr), 0, 0, 1, 1}, {&__pyx_n_s_DeprecatedMODES___getattribute, __pyx_k_DeprecatedMODES___getattribute, sizeof(__pyx_k_DeprecatedMODES___getattribute), 0, 0, 1, 1}, {&__pyx_n_s_DeprecationWarning, __pyx_k_DeprecationWarning, sizeof(__pyx_k_DeprecationWarning), 0, 0, 1, 1}, {&__pyx_n_s_DiscreteContinuousWavelet, __pyx_k_DiscreteContinuousWavelet, sizeof(__pyx_k_DiscreteContinuousWavelet), 0, 0, 1, 1}, {&__pyx_n_u_DiscreteContinuousWavelet, __pyx_k_DiscreteContinuousWavelet, sizeof(__pyx_k_DiscreteContinuousWavelet), 0, 1, 0, 1}, {&__pyx_kp_u_Discrete_Meyer_FIR_Approximation, __pyx_k_Discrete_Meyer_FIR_Approximation, sizeof(__pyx_k_Discrete_Meyer_FIR_Approximation), 0, 1, 0, 0}, {&__pyx_n_s_Ellipsis, __pyx_k_Ellipsis, sizeof(__pyx_k_Ellipsis), 0, 0, 1, 1}, {&__pyx_kp_s_Empty_shape_tuple_for_cython_arr, __pyx_k_Empty_shape_tuple_for_cython_arr, sizeof(__pyx_k_Empty_shape_tuple_for_cython_arr), 0, 0, 1, 0}, {&__pyx_kp_u_Expected_filter_bank_with_4_filt, __pyx_k_Expected_filter_bank_with_4_filt, sizeof(__pyx_k_Expected_filter_bank_with_4_filt), 0, 1, 0, 0}, {&__pyx_kp_u_Expected_list_of_4_filters_coeff, __pyx_k_Expected_list_of_4_filters_coeff, sizeof(__pyx_k_Expected_list_of_4_filters_coeff), 0, 1, 0, 0}, {&__pyx_kp_u_Family_name_s, __pyx_k_Family_name_s, sizeof(__pyx_k_Family_name_s), 0, 1, 0, 0}, {&__pyx_kp_u_Filter_bank_with_numeric_values, __pyx_k_Filter_bank_with_numeric_values, sizeof(__pyx_k_Filter_bank_with_numeric_values), 0, 1, 0, 0}, {&__pyx_kp_u_Filters_length_d, __pyx_k_Filters_length_d, sizeof(__pyx_k_Filters_length_d), 0, 1, 0, 0}, {&__pyx_kp_u_For_wavelets_of_family_0_the_nam, __pyx_k_For_wavelets_of_family_0_the_nam, sizeof(__pyx_k_For_wavelets_of_family_0_the_nam), 0, 1, 0, 0}, {&__pyx_kp_u_For_wavelets_of_family_0_the_nam_2, __pyx_k_For_wavelets_of_family_0_the_nam_2, sizeof(__pyx_k_For_wavelets_of_family_0_the_nam_2), 0, 1, 0, 0}, {&__pyx_kp_u_Format_string_allocated_too_shor, __pyx_k_Format_string_allocated_too_shor, sizeof(__pyx_k_Format_string_allocated_too_shor), 0, 1, 0, 0}, {&__pyx_kp_u_Format_string_allocated_too_shor_2, __pyx_k_Format_string_allocated_too_shor_2, sizeof(__pyx_k_Format_string_allocated_too_shor_2), 0, 1, 0, 0}, {&__pyx_kp_u_Frequency_B_Spline_wavelets, __pyx_k_Frequency_B_Spline_wavelets, sizeof(__pyx_k_Frequency_B_Spline_wavelets), 0, 1, 0, 0}, {&__pyx_n_s_FutureWarning, __pyx_k_FutureWarning, sizeof(__pyx_k_FutureWarning), 0, 0, 1, 1}, {&__pyx_n_u_Gaussian, __pyx_k_Gaussian, sizeof(__pyx_k_Gaussian), 0, 1, 0, 1}, {&__pyx_n_u_Haar, __pyx_k_Haar, sizeof(__pyx_k_Haar), 0, 1, 0, 1}, {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, {&__pyx_kp_s_Incompatible_checksums_s_vs_0xb0, __pyx_k_Incompatible_checksums_s_vs_0xb0, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xb0), 0, 0, 1, 0}, {&__pyx_n_s_IndexError, __pyx_k_IndexError, sizeof(__pyx_k_IndexError), 0, 0, 1, 1}, {&__pyx_kp_s_Indirect_dimensions_not_supporte, __pyx_k_Indirect_dimensions_not_supporte, sizeof(__pyx_k_Indirect_dimensions_not_supporte), 0, 0, 1, 0}, {&__pyx_kp_u_Invalid_continuous_wavelet_name, __pyx_k_Invalid_continuous_wavelet_name, sizeof(__pyx_k_Invalid_continuous_wavelet_name), 0, 1, 0, 0}, {&__pyx_kp_u_Invalid_mode, __pyx_k_Invalid_mode, sizeof(__pyx_k_Invalid_mode), 0, 1, 0, 0}, {&__pyx_kp_s_Invalid_mode_expected_c_or_fortr, __pyx_k_Invalid_mode_expected_c_or_fortr, sizeof(__pyx_k_Invalid_mode_expected_c_or_fortr), 0, 0, 1, 0}, {&__pyx_kp_s_Invalid_shape_in_axis_d_d, __pyx_k_Invalid_shape_in_axis_d_d, sizeof(__pyx_k_Invalid_shape_in_axis_d_d), 0, 0, 1, 0}, {&__pyx_kp_u_Invalid_short_family_name_s, __pyx_k_Invalid_short_family_name_s, sizeof(__pyx_k_Invalid_short_family_name_s), 0, 1, 0, 0}, {&__pyx_kp_u_Invalid_wavelet_name_s, __pyx_k_Invalid_wavelet_name_s, sizeof(__pyx_k_Invalid_wavelet_name_s), 0, 1, 0, 0}, {&__pyx_n_s_KeyError, __pyx_k_KeyError, sizeof(__pyx_k_KeyError), 0, 0, 1, 1}, {&__pyx_n_s_MODES, __pyx_k_MODES, sizeof(__pyx_k_MODES), 0, 0, 1, 1}, {&__pyx_n_u_MODES, __pyx_k_MODES, sizeof(__pyx_k_MODES), 0, 1, 0, 1}, {&__pyx_kp_u_MODES_has_been_renamed_to_Modes, __pyx_k_MODES_has_been_renamed_to_Modes, sizeof(__pyx_k_MODES_has_been_renamed_to_Modes), 0, 1, 0, 0}, {&__pyx_n_s_MemoryError, __pyx_k_MemoryError, sizeof(__pyx_k_MemoryError), 0, 0, 1, 1}, {&__pyx_kp_s_MemoryView_of_r_at_0x_x, __pyx_k_MemoryView_of_r_at_0x_x, sizeof(__pyx_k_MemoryView_of_r_at_0x_x), 0, 0, 1, 0}, {&__pyx_kp_s_MemoryView_of_r_object, __pyx_k_MemoryView_of_r_object, sizeof(__pyx_k_MemoryView_of_r_object), 0, 0, 1, 0}, {&__pyx_kp_u_Mexican_hat_wavelet, __pyx_k_Mexican_hat_wavelet, sizeof(__pyx_k_Mexican_hat_wavelet), 0, 1, 0, 0}, {&__pyx_n_s_Modes, __pyx_k_Modes, sizeof(__pyx_k_Modes), 0, 0, 1, 1}, {&__pyx_n_u_Modes, __pyx_k_Modes, sizeof(__pyx_k_Modes), 0, 1, 0, 1}, {&__pyx_n_s_Modes_2, __pyx_k_Modes_2, sizeof(__pyx_k_Modes_2), 0, 0, 1, 1}, {&__pyx_n_s_Modes___getattr, __pyx_k_Modes___getattr, sizeof(__pyx_k_Modes___getattr), 0, 0, 1, 1}, {&__pyx_n_s_Modes_from_object, __pyx_k_Modes_from_object, sizeof(__pyx_k_Modes_from_object), 0, 0, 1, 1}, {&__pyx_kp_u_Morlet_wavelet, __pyx_k_Morlet_wavelet, sizeof(__pyx_k_Morlet_wavelet), 0, 1, 0, 0}, {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0}, {&__pyx_n_b_O, __pyx_k_O, sizeof(__pyx_k_O), 0, 0, 0, 1}, {&__pyx_kp_u_Orthogonal_s, __pyx_k_Orthogonal_s, sizeof(__pyx_k_Orthogonal_s), 0, 1, 0, 0}, {&__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_k_Out_of_bounds_on_buffer_access_a, sizeof(__pyx_k_Out_of_bounds_on_buffer_access_a), 0, 0, 1, 0}, {&__pyx_n_s_PickleError, __pyx_k_PickleError, sizeof(__pyx_k_PickleError), 0, 0, 1, 1}, {&__pyx_kp_u_Reverse_biorthogonal, __pyx_k_Reverse_biorthogonal, sizeof(__pyx_k_Reverse_biorthogonal), 0, 1, 0, 0}, {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, {&__pyx_kp_u_Shannon_wavelets, __pyx_k_Shannon_wavelets, sizeof(__pyx_k_Shannon_wavelets), 0, 1, 0, 0}, {&__pyx_kp_u_Short_name_s, __pyx_k_Short_name_s, sizeof(__pyx_k_Short_name_s), 0, 1, 0, 0}, {&__pyx_n_u_Symlets, __pyx_k_Symlets, sizeof(__pyx_k_Symlets), 0, 1, 0, 1}, {&__pyx_kp_u_Symmetry_s, __pyx_k_Symmetry_s, sizeof(__pyx_k_Symmetry_s), 0, 1, 0, 0}, {&__pyx_kp_b_T, __pyx_k_T, sizeof(__pyx_k_T), 0, 0, 0, 0}, {&__pyx_kp_u_The_Wavelet_class_is_for_discret, __pyx_k_The_Wavelet_class_is_for_discret, sizeof(__pyx_k_The_Wavelet_class_is_for_discret), 0, 1, 0, 0}, {&__pyx_kp_u_The_get_filters_coeffs_method_is, __pyx_k_The_get_filters_coeffs_method_is, sizeof(__pyx_k_The_get_filters_coeffs_method_is), 0, 1, 0, 0}, {&__pyx_kp_u_The_get_reverse_filters_coeffs_m, __pyx_k_The_get_reverse_filters_coeffs_m, sizeof(__pyx_k_The_get_reverse_filters_coeffs_m), 0, 1, 0, 0}, {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, {&__pyx_kp_s_Unable_to_convert_item_to_object, __pyx_k_Unable_to_convert_item_to_object, sizeof(__pyx_k_Unable_to_convert_item_to_object), 0, 0, 1, 0}, {&__pyx_kp_u_Unknown_mode_name_s, __pyx_k_Unknown_mode_name_s, sizeof(__pyx_k_Unknown_mode_name_s), 0, 1, 0, 0}, {&__pyx_kp_u_Unknown_wavelet_name_s_check_wav, __pyx_k_Unknown_wavelet_name_s_check_wav, sizeof(__pyx_k_Unknown_wavelet_name_s_check_wav), 0, 1, 0, 0}, {&__pyx_kp_u_Unrecognized_value_for_kind_s, __pyx_k_Unrecognized_value_for_kind_s, sizeof(__pyx_k_Unrecognized_value_for_kind_s), 0, 1, 0, 0}, {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, {&__pyx_n_s_View_MemoryView, __pyx_k_View_MemoryView, sizeof(__pyx_k_View_MemoryView), 0, 0, 1, 1}, {&__pyx_n_s_Wavelet, __pyx_k_Wavelet, sizeof(__pyx_k_Wavelet), 0, 0, 1, 1}, {&__pyx_n_u_Wavelet, __pyx_k_Wavelet, sizeof(__pyx_k_Wavelet), 0, 1, 0, 1}, {&__pyx_kp_u_Wavelet_name_or_filter_bank_must, __pyx_k_Wavelet_name_or_filter_bank_must, sizeof(__pyx_k_Wavelet_name_or_filter_bank_must), 0, 1, 0, 0}, {&__pyx_kp_u_Wavelet_s, __pyx_k_Wavelet_s, sizeof(__pyx_k_Wavelet_s), 0, 1, 0, 0}, {&__pyx_kp_u_Wavelet_spline_order_must_be_an, __pyx_k_Wavelet_spline_order_must_be_an, sizeof(__pyx_k_Wavelet_spline_order_must_be_an), 0, 1, 0, 0}, {&__pyx_kp_u_Wavelet_wavefun_line_547, __pyx_k_Wavelet_wavefun_line_547, sizeof(__pyx_k_Wavelet_wavefun_line_547), 0, 1, 0, 0}, {&__pyx_kp_u_Wavelets_from_the_family_0_witho, __pyx_k_Wavelets_from_the_family_0_witho, sizeof(__pyx_k_Wavelets_from_the_family_0_witho), 0, 1, 0, 0}, {&__pyx_kp_u_Wavelets_of_family_0_without_par, __pyx_k_Wavelets_of_family_0_without_par, sizeof(__pyx_k_Wavelets_of_family_0_without_par), 0, 1, 0, 0}, {&__pyx_kp_u__18, __pyx_k__18, sizeof(__pyx_k__18), 0, 1, 0, 0}, {&__pyx_n_u__3, __pyx_k__3, sizeof(__pyx_k__3), 0, 1, 0, 1}, {&__pyx_kp_b__51, __pyx_k__51, sizeof(__pyx_k__51), 0, 0, 0, 0}, {&__pyx_kp_b__52, __pyx_k__52, sizeof(__pyx_k__52), 0, 0, 0, 0}, {&__pyx_kp_b__53, __pyx_k__53, sizeof(__pyx_k__53), 0, 0, 0, 0}, {&__pyx_kp_u__54, __pyx_k__54, sizeof(__pyx_k__54), 0, 1, 0, 0}, {&__pyx_kp_b__9, __pyx_k__9, sizeof(__pyx_k__9), 0, 0, 0, 0}, {&__pyx_kp_u__9, __pyx_k__9, sizeof(__pyx_k__9), 0, 1, 0, 0}, {&__pyx_n_u_all, __pyx_k_all, sizeof(__pyx_k_all), 0, 1, 0, 1}, {&__pyx_n_s_all_2, __pyx_k_all_2, sizeof(__pyx_k_all_2), 0, 0, 1, 1}, {&__pyx_n_s_allocate_buffer, __pyx_k_allocate_buffer, sizeof(__pyx_k_allocate_buffer), 0, 0, 1, 1}, {&__pyx_kp_u_anti_symmetric, __pyx_k_anti_symmetric, sizeof(__pyx_k_anti_symmetric), 0, 1, 0, 0}, {&__pyx_n_s_antireflect, __pyx_k_antireflect, sizeof(__pyx_k_antireflect), 0, 0, 1, 1}, {&__pyx_n_u_antireflect, __pyx_k_antireflect, sizeof(__pyx_k_antireflect), 0, 1, 0, 1}, {&__pyx_n_s_antisymmetric, __pyx_k_antisymmetric, sizeof(__pyx_k_antisymmetric), 0, 0, 1, 1}, {&__pyx_n_u_antisymmetric, __pyx_k_antisymmetric, sizeof(__pyx_k_antisymmetric), 0, 1, 0, 1}, {&__pyx_n_s_append, __pyx_k_append, sizeof(__pyx_k_append), 0, 0, 1, 1}, {&__pyx_n_s_arr, __pyx_k_arr, sizeof(__pyx_k_arr), 0, 0, 1, 1}, {&__pyx_n_s_asarray, __pyx_k_asarray, sizeof(__pyx_k_asarray), 0, 0, 1, 1}, {&__pyx_n_u_asymmetric, __pyx_k_asymmetric, sizeof(__pyx_k_asymmetric), 0, 1, 0, 1}, {&__pyx_n_s_attr, __pyx_k_attr, sizeof(__pyx_k_attr), 0, 0, 1, 1}, {&__pyx_n_s_attr_deprecation_msg, __pyx_k_attr_deprecation_msg, sizeof(__pyx_k_attr_deprecation_msg), 0, 0, 1, 1}, {&__pyx_n_s_base, __pyx_k_base, sizeof(__pyx_k_base), 0, 0, 1, 1}, {&__pyx_n_u_bior, __pyx_k_bior, sizeof(__pyx_k_bior), 0, 1, 0, 1}, {&__pyx_kp_u_bior1_1, __pyx_k_bior1_1, sizeof(__pyx_k_bior1_1), 0, 1, 0, 0}, {&__pyx_kp_u_bior1_3, __pyx_k_bior1_3, sizeof(__pyx_k_bior1_3), 0, 1, 0, 0}, {&__pyx_kp_u_bior1_5, __pyx_k_bior1_5, sizeof(__pyx_k_bior1_5), 0, 1, 0, 0}, {&__pyx_kp_u_bior2_2, __pyx_k_bior2_2, sizeof(__pyx_k_bior2_2), 0, 1, 0, 0}, {&__pyx_kp_u_bior2_4, __pyx_k_bior2_4, sizeof(__pyx_k_bior2_4), 0, 1, 0, 0}, {&__pyx_kp_u_bior2_6, __pyx_k_bior2_6, sizeof(__pyx_k_bior2_6), 0, 1, 0, 0}, {&__pyx_kp_u_bior2_8, __pyx_k_bior2_8, sizeof(__pyx_k_bior2_8), 0, 1, 0, 0}, {&__pyx_kp_u_bior3_1, __pyx_k_bior3_1, sizeof(__pyx_k_bior3_1), 0, 1, 0, 0}, {&__pyx_kp_u_bior3_3, __pyx_k_bior3_3, sizeof(__pyx_k_bior3_3), 0, 1, 0, 0}, {&__pyx_kp_u_bior3_5, __pyx_k_bior3_5, sizeof(__pyx_k_bior3_5), 0, 1, 0, 0}, {&__pyx_kp_u_bior3_7, __pyx_k_bior3_7, sizeof(__pyx_k_bior3_7), 0, 1, 0, 0}, {&__pyx_kp_u_bior3_9, __pyx_k_bior3_9, sizeof(__pyx_k_bior3_9), 0, 1, 0, 0}, {&__pyx_kp_u_bior4_4, __pyx_k_bior4_4, sizeof(__pyx_k_bior4_4), 0, 1, 0, 0}, {&__pyx_kp_u_bior5_5, __pyx_k_bior5_5, sizeof(__pyx_k_bior5_5), 0, 1, 0, 0}, {&__pyx_kp_u_bior6_8, __pyx_k_bior6_8, sizeof(__pyx_k_bior6_8), 0, 1, 0, 0}, {&__pyx_n_s_biorthogonal, __pyx_k_biorthogonal, sizeof(__pyx_k_biorthogonal), 0, 0, 1, 1}, {&__pyx_n_s_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 0, 1, 1}, {&__pyx_n_u_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 1, 0, 1}, {&__pyx_n_u_cgau, __pyx_k_cgau, sizeof(__pyx_k_cgau), 0, 1, 0, 1}, {&__pyx_n_u_cgau1, __pyx_k_cgau1, sizeof(__pyx_k_cgau1), 0, 1, 0, 1}, {&__pyx_n_u_cgau2, __pyx_k_cgau2, sizeof(__pyx_k_cgau2), 0, 1, 0, 1}, {&__pyx_n_u_cgau3, __pyx_k_cgau3, sizeof(__pyx_k_cgau3), 0, 1, 0, 1}, {&__pyx_n_u_cgau4, __pyx_k_cgau4, sizeof(__pyx_k_cgau4), 0, 1, 0, 1}, {&__pyx_n_u_cgau5, __pyx_k_cgau5, sizeof(__pyx_k_cgau5), 0, 1, 0, 1}, {&__pyx_n_u_cgau6, __pyx_k_cgau6, sizeof(__pyx_k_cgau6), 0, 1, 0, 1}, {&__pyx_n_u_cgau7, __pyx_k_cgau7, sizeof(__pyx_k_cgau7), 0, 1, 0, 1}, {&__pyx_n_u_cgau8, __pyx_k_cgau8, sizeof(__pyx_k_cgau8), 0, 1, 0, 1}, {&__pyx_n_s_check_kind, __pyx_k_check_kind, sizeof(__pyx_k_check_kind), 0, 0, 1, 1}, {&__pyx_n_s_class, __pyx_k_class, sizeof(__pyx_k_class), 0, 0, 1, 1}, {&__pyx_n_s_classname, __pyx_k_classname, sizeof(__pyx_k_classname), 0, 0, 1, 1}, {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, {&__pyx_n_u_cmor, __pyx_k_cmor, sizeof(__pyx_k_cmor), 0, 1, 0, 1}, {&__pyx_n_u_coif, __pyx_k_coif, sizeof(__pyx_k_coif), 0, 1, 0, 1}, {&__pyx_n_u_coif1, __pyx_k_coif1, sizeof(__pyx_k_coif1), 0, 1, 0, 1}, {&__pyx_n_u_coif10, __pyx_k_coif10, sizeof(__pyx_k_coif10), 0, 1, 0, 1}, {&__pyx_n_u_coif11, __pyx_k_coif11, sizeof(__pyx_k_coif11), 0, 1, 0, 1}, {&__pyx_n_u_coif12, __pyx_k_coif12, sizeof(__pyx_k_coif12), 0, 1, 0, 1}, {&__pyx_n_u_coif13, __pyx_k_coif13, sizeof(__pyx_k_coif13), 0, 1, 0, 1}, {&__pyx_n_u_coif14, __pyx_k_coif14, sizeof(__pyx_k_coif14), 0, 1, 0, 1}, {&__pyx_n_u_coif15, __pyx_k_coif15, sizeof(__pyx_k_coif15), 0, 1, 0, 1}, {&__pyx_n_u_coif16, __pyx_k_coif16, sizeof(__pyx_k_coif16), 0, 1, 0, 1}, {&__pyx_n_u_coif17, __pyx_k_coif17, sizeof(__pyx_k_coif17), 0, 1, 0, 1}, {&__pyx_n_u_coif2, __pyx_k_coif2, sizeof(__pyx_k_coif2), 0, 1, 0, 1}, {&__pyx_n_u_coif3, __pyx_k_coif3, sizeof(__pyx_k_coif3), 0, 1, 0, 1}, {&__pyx_n_u_coif4, __pyx_k_coif4, sizeof(__pyx_k_coif4), 0, 1, 0, 1}, {&__pyx_n_u_coif5, __pyx_k_coif5, sizeof(__pyx_k_coif5), 0, 1, 0, 1}, {&__pyx_n_u_coif6, __pyx_k_coif6, sizeof(__pyx_k_coif6), 0, 1, 0, 1}, {&__pyx_n_u_coif7, __pyx_k_coif7, sizeof(__pyx_k_coif7), 0, 1, 0, 1}, {&__pyx_n_u_coif8, __pyx_k_coif8, sizeof(__pyx_k_coif8), 0, 1, 0, 1}, {&__pyx_n_u_coif9, __pyx_k_coif9, sizeof(__pyx_k_coif9), 0, 1, 0, 1}, {&__pyx_n_s_compile, __pyx_k_compile, sizeof(__pyx_k_compile), 0, 0, 1, 1}, {&__pyx_n_s_complex128, __pyx_k_complex128, sizeof(__pyx_k_complex128), 0, 0, 1, 1}, {&__pyx_n_u_complex128, __pyx_k_complex128, sizeof(__pyx_k_complex128), 0, 1, 0, 1}, {&__pyx_n_s_complex256, __pyx_k_complex256, sizeof(__pyx_k_complex256), 0, 0, 1, 1}, {&__pyx_n_s_complex64, __pyx_k_complex64, sizeof(__pyx_k_complex64), 0, 0, 1, 1}, {&__pyx_n_s_complex_cwt, __pyx_k_complex_cwt, sizeof(__pyx_k_complex_cwt), 0, 0, 1, 1}, {&__pyx_n_s_concatenate, __pyx_k_concatenate, sizeof(__pyx_k_concatenate), 0, 0, 1, 1}, {&__pyx_n_s_constant, __pyx_k_constant, sizeof(__pyx_k_constant), 0, 0, 1, 1}, {&__pyx_n_u_constant, __pyx_k_constant, sizeof(__pyx_k_constant), 0, 1, 0, 1}, {&__pyx_kp_s_contiguous_and_direct, __pyx_k_contiguous_and_direct, sizeof(__pyx_k_contiguous_and_direct), 0, 0, 1, 0}, {&__pyx_kp_s_contiguous_and_indirect, __pyx_k_contiguous_and_indirect, sizeof(__pyx_k_contiguous_and_indirect), 0, 0, 1, 0}, {&__pyx_n_u_continuous, __pyx_k_continuous, sizeof(__pyx_k_continuous), 0, 1, 0, 1}, {&__pyx_n_u_cpd, __pyx_k_cpd, sizeof(__pyx_k_cpd), 0, 1, 0, 1}, {&__pyx_n_s_cwt_pattern, __pyx_k_cwt_pattern, sizeof(__pyx_k_cwt_pattern), 0, 0, 1, 1}, {&__pyx_n_u_db, __pyx_k_db, sizeof(__pyx_k_db), 0, 1, 0, 1}, {&__pyx_n_u_db1, __pyx_k_db1, sizeof(__pyx_k_db1), 0, 1, 0, 1}, {&__pyx_n_u_db10, __pyx_k_db10, sizeof(__pyx_k_db10), 0, 1, 0, 1}, {&__pyx_n_u_db11, __pyx_k_db11, sizeof(__pyx_k_db11), 0, 1, 0, 1}, {&__pyx_n_u_db12, __pyx_k_db12, sizeof(__pyx_k_db12), 0, 1, 0, 1}, {&__pyx_n_u_db13, __pyx_k_db13, sizeof(__pyx_k_db13), 0, 1, 0, 1}, {&__pyx_n_u_db14, __pyx_k_db14, sizeof(__pyx_k_db14), 0, 1, 0, 1}, {&__pyx_n_u_db15, __pyx_k_db15, sizeof(__pyx_k_db15), 0, 1, 0, 1}, {&__pyx_n_u_db16, __pyx_k_db16, sizeof(__pyx_k_db16), 0, 1, 0, 1}, {&__pyx_n_u_db17, __pyx_k_db17, sizeof(__pyx_k_db17), 0, 1, 0, 1}, {&__pyx_n_u_db18, __pyx_k_db18, sizeof(__pyx_k_db18), 0, 1, 0, 1}, {&__pyx_n_u_db19, __pyx_k_db19, sizeof(__pyx_k_db19), 0, 1, 0, 1}, {&__pyx_n_u_db2, __pyx_k_db2, sizeof(__pyx_k_db2), 0, 1, 0, 1}, {&__pyx_n_u_db20, __pyx_k_db20, sizeof(__pyx_k_db20), 0, 1, 0, 1}, {&__pyx_n_u_db21, __pyx_k_db21, sizeof(__pyx_k_db21), 0, 1, 0, 1}, {&__pyx_n_u_db22, __pyx_k_db22, sizeof(__pyx_k_db22), 0, 1, 0, 1}, {&__pyx_n_u_db23, __pyx_k_db23, sizeof(__pyx_k_db23), 0, 1, 0, 1}, {&__pyx_n_u_db24, __pyx_k_db24, sizeof(__pyx_k_db24), 0, 1, 0, 1}, {&__pyx_n_u_db25, __pyx_k_db25, sizeof(__pyx_k_db25), 0, 1, 0, 1}, {&__pyx_n_u_db26, __pyx_k_db26, sizeof(__pyx_k_db26), 0, 1, 0, 1}, {&__pyx_n_u_db27, __pyx_k_db27, sizeof(__pyx_k_db27), 0, 1, 0, 1}, {&__pyx_n_u_db28, __pyx_k_db28, sizeof(__pyx_k_db28), 0, 1, 0, 1}, {&__pyx_n_u_db29, __pyx_k_db29, sizeof(__pyx_k_db29), 0, 1, 0, 1}, {&__pyx_n_u_db3, __pyx_k_db3, sizeof(__pyx_k_db3), 0, 1, 0, 1}, {&__pyx_n_u_db30, __pyx_k_db30, sizeof(__pyx_k_db30), 0, 1, 0, 1}, {&__pyx_n_u_db31, __pyx_k_db31, sizeof(__pyx_k_db31), 0, 1, 0, 1}, {&__pyx_n_u_db32, __pyx_k_db32, sizeof(__pyx_k_db32), 0, 1, 0, 1}, {&__pyx_n_u_db33, __pyx_k_db33, sizeof(__pyx_k_db33), 0, 1, 0, 1}, {&__pyx_n_u_db34, __pyx_k_db34, sizeof(__pyx_k_db34), 0, 1, 0, 1}, {&__pyx_n_u_db35, __pyx_k_db35, sizeof(__pyx_k_db35), 0, 1, 0, 1}, {&__pyx_n_u_db36, __pyx_k_db36, sizeof(__pyx_k_db36), 0, 1, 0, 1}, {&__pyx_n_u_db37, __pyx_k_db37, sizeof(__pyx_k_db37), 0, 1, 0, 1}, {&__pyx_n_u_db38, __pyx_k_db38, sizeof(__pyx_k_db38), 0, 1, 0, 1}, {&__pyx_n_u_db4, __pyx_k_db4, sizeof(__pyx_k_db4), 0, 1, 0, 1}, {&__pyx_n_u_db5, __pyx_k_db5, sizeof(__pyx_k_db5), 0, 1, 0, 1}, {&__pyx_n_u_db6, __pyx_k_db6, sizeof(__pyx_k_db6), 0, 1, 0, 1}, {&__pyx_n_u_db7, __pyx_k_db7, sizeof(__pyx_k_db7), 0, 1, 0, 1}, {&__pyx_n_u_db8, __pyx_k_db8, sizeof(__pyx_k_db8), 0, 1, 0, 1}, {&__pyx_n_u_db9, __pyx_k_db9, sizeof(__pyx_k_db9), 0, 1, 0, 1}, {&__pyx_n_s_dec_hi, __pyx_k_dec_hi, sizeof(__pyx_k_dec_hi), 0, 0, 1, 1}, {&__pyx_n_s_dec_len, __pyx_k_dec_len, sizeof(__pyx_k_dec_len), 0, 0, 1, 1}, {&__pyx_n_s_dec_lo, __pyx_k_dec_lo, sizeof(__pyx_k_dec_lo), 0, 0, 1, 1}, {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1}, {&__pyx_n_u_discrete, __pyx_k_discrete, sizeof(__pyx_k_discrete), 0, 1, 0, 1}, {&__pyx_n_u_dmey, __pyx_k_dmey, sizeof(__pyx_k_dmey), 0, 1, 0, 1}, {&__pyx_n_s_doc, __pyx_k_doc, sizeof(__pyx_k_doc), 0, 0, 1, 1}, {&__pyx_n_s_dtype, __pyx_k_dtype, sizeof(__pyx_k_dtype), 0, 0, 1, 1}, {&__pyx_n_s_dtype_is_object, __pyx_k_dtype_is_object, sizeof(__pyx_k_dtype_is_object), 0, 0, 1, 1}, {&__pyx_n_s_encode, __pyx_k_encode, sizeof(__pyx_k_encode), 0, 0, 1, 1}, {&__pyx_n_s_enumerate, __pyx_k_enumerate, sizeof(__pyx_k_enumerate), 0, 0, 1, 1}, {&__pyx_n_s_error, __pyx_k_error, sizeof(__pyx_k_error), 0, 0, 1, 1}, {&__pyx_n_s_families, __pyx_k_families, sizeof(__pyx_k_families), 0, 0, 1, 1}, {&__pyx_n_u_families, __pyx_k_families, sizeof(__pyx_k_families), 0, 1, 0, 1}, {&__pyx_kp_u_families_line_256, __pyx_k_families_line_256, sizeof(__pyx_k_families_line_256), 0, 1, 0, 0}, {&__pyx_kp_u_families_short_True_Returns_a_l, __pyx_k_families_short_True_Returns_a_l, sizeof(__pyx_k_families_short_True_Returns_a_l), 0, 1, 0, 0}, {&__pyx_n_s_family, __pyx_k_family, sizeof(__pyx_k_family), 0, 0, 1, 1}, {&__pyx_n_s_family_code, __pyx_k_family_code, sizeof(__pyx_k_family_code), 0, 0, 1, 1}, {&__pyx_n_s_family_name, __pyx_k_family_name, sizeof(__pyx_k_family_name), 0, 0, 1, 1}, {&__pyx_n_s_family_number, __pyx_k_family_number, sizeof(__pyx_k_family_number), 0, 0, 1, 1}, {&__pyx_n_u_fbsp, __pyx_k_fbsp, sizeof(__pyx_k_fbsp), 0, 1, 0, 1}, {&__pyx_n_s_filter_bank, __pyx_k_filter_bank, sizeof(__pyx_k_filter_bank), 0, 0, 1, 1}, {&__pyx_n_u_filter_bank, __pyx_k_filter_bank, sizeof(__pyx_k_filter_bank), 0, 1, 0, 1}, {&__pyx_n_s_findall, __pyx_k_findall, sizeof(__pyx_k_findall), 0, 0, 1, 1}, {&__pyx_n_s_flags, __pyx_k_flags, sizeof(__pyx_k_flags), 0, 0, 1, 1}, {&__pyx_n_s_float32, __pyx_k_float32, sizeof(__pyx_k_float32), 0, 0, 1, 1}, {&__pyx_n_u_float32, __pyx_k_float32, sizeof(__pyx_k_float32), 0, 1, 0, 1}, {&__pyx_n_s_float64, __pyx_k_float64, sizeof(__pyx_k_float64), 0, 0, 1, 1}, {&__pyx_n_u_float64, __pyx_k_float64, sizeof(__pyx_k_float64), 0, 1, 0, 1}, {&__pyx_n_s_format, __pyx_k_format, sizeof(__pyx_k_format), 0, 0, 1, 1}, {&__pyx_n_s_fortran, __pyx_k_fortran, sizeof(__pyx_k_fortran), 0, 0, 1, 1}, {&__pyx_n_u_fortran, __pyx_k_fortran, sizeof(__pyx_k_fortran), 0, 1, 0, 1}, {&__pyx_n_s_from_object, __pyx_k_from_object, sizeof(__pyx_k_from_object), 0, 0, 1, 1}, {&__pyx_n_u_gaus, __pyx_k_gaus, sizeof(__pyx_k_gaus), 0, 1, 0, 1}, {&__pyx_n_u_gaus1, __pyx_k_gaus1, sizeof(__pyx_k_gaus1), 0, 1, 0, 1}, {&__pyx_n_u_gaus2, __pyx_k_gaus2, sizeof(__pyx_k_gaus2), 0, 1, 0, 1}, {&__pyx_n_u_gaus3, __pyx_k_gaus3, sizeof(__pyx_k_gaus3), 0, 1, 0, 1}, {&__pyx_n_u_gaus4, __pyx_k_gaus4, sizeof(__pyx_k_gaus4), 0, 1, 0, 1}, {&__pyx_n_u_gaus5, __pyx_k_gaus5, sizeof(__pyx_k_gaus5), 0, 1, 0, 1}, {&__pyx_n_u_gaus6, __pyx_k_gaus6, sizeof(__pyx_k_gaus6), 0, 1, 0, 1}, {&__pyx_n_u_gaus7, __pyx_k_gaus7, sizeof(__pyx_k_gaus7), 0, 1, 0, 1}, {&__pyx_n_u_gaus8, __pyx_k_gaus8, sizeof(__pyx_k_gaus8), 0, 1, 0, 1}, {&__pyx_n_s_get_filters_coeffs, __pyx_k_get_filters_coeffs, sizeof(__pyx_k_get_filters_coeffs), 0, 0, 1, 1}, {&__pyx_n_u_get_filters_coeffs, __pyx_k_get_filters_coeffs, sizeof(__pyx_k_get_filters_coeffs), 0, 1, 0, 1}, {&__pyx_n_s_getattr, __pyx_k_getattr, sizeof(__pyx_k_getattr), 0, 0, 1, 1}, {&__pyx_n_s_getattribute, __pyx_k_getattribute, sizeof(__pyx_k_getattribute), 0, 0, 1, 1}, {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1}, {&__pyx_kp_s_got_differing_extents_in_dimensi, __pyx_k_got_differing_extents_in_dimensi, sizeof(__pyx_k_got_differing_extents_in_dimensi), 0, 0, 1, 0}, {&__pyx_n_u_haar, __pyx_k_haar, sizeof(__pyx_k_haar), 0, 1, 0, 1}, {&__pyx_n_s_half, __pyx_k_half, sizeof(__pyx_k_half), 0, 0, 1, 1}, {&__pyx_n_s_have_c99_complex, __pyx_k_have_c99_complex, sizeof(__pyx_k_have_c99_complex), 0, 0, 1, 1}, {&__pyx_n_s_id, __pyx_k_id, sizeof(__pyx_k_id), 0, 0, 1, 1}, {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, {&__pyx_n_s_index, __pyx_k_index, sizeof(__pyx_k_index), 0, 0, 1, 1}, {&__pyx_n_s_inverse_filter_bank, __pyx_k_inverse_filter_bank, sizeof(__pyx_k_inverse_filter_bank), 0, 0, 1, 1}, {&__pyx_n_s_is_discrete, __pyx_k_is_discrete, sizeof(__pyx_k_is_discrete), 0, 0, 1, 1}, {&__pyx_n_s_itemsize, __pyx_k_itemsize, sizeof(__pyx_k_itemsize), 0, 0, 1, 1}, {&__pyx_kp_s_itemsize_0_for_cython_array, __pyx_k_itemsize_0_for_cython_array, sizeof(__pyx_k_itemsize_0_for_cython_array), 0, 0, 1, 0}, {&__pyx_n_s_join, __pyx_k_join, sizeof(__pyx_k_join), 0, 0, 1, 1}, {&__pyx_n_s_keep, __pyx_k_keep, sizeof(__pyx_k_keep), 0, 0, 1, 1}, {&__pyx_n_s_keep_length, __pyx_k_keep_length, sizeof(__pyx_k_keep_length), 0, 0, 1, 1}, {&__pyx_n_s_kind, __pyx_k_kind, sizeof(__pyx_k_kind), 0, 0, 1, 1}, {&__pyx_n_s_left_bound, __pyx_k_left_bound, sizeof(__pyx_k_left_bound), 0, 0, 1, 1}, {&__pyx_n_s_length, __pyx_k_length, sizeof(__pyx_k_length), 0, 0, 1, 1}, {&__pyx_n_s_level, __pyx_k_level, sizeof(__pyx_k_level), 0, 0, 1, 1}, {&__pyx_n_s_linspace, __pyx_k_linspace, sizeof(__pyx_k_linspace), 0, 0, 1, 1}, {&__pyx_n_s_lower, __pyx_k_lower, sizeof(__pyx_k_lower), 0, 0, 1, 1}, {&__pyx_n_s_m, __pyx_k_m, sizeof(__pyx_k_m), 0, 0, 1, 1}, {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, {&__pyx_n_s_memview, __pyx_k_memview, sizeof(__pyx_k_memview), 0, 0, 1, 1}, {&__pyx_n_s_metaclass, __pyx_k_metaclass, sizeof(__pyx_k_metaclass), 0, 0, 1, 1}, {&__pyx_n_u_mexh, __pyx_k_mexh, sizeof(__pyx_k_mexh), 0, 1, 0, 1}, {&__pyx_n_s_mode, __pyx_k_mode, sizeof(__pyx_k_mode), 0, 0, 1, 1}, {&__pyx_n_s_modes, __pyx_k_modes, sizeof(__pyx_k_modes), 0, 0, 1, 1}, {&__pyx_n_s_module, __pyx_k_module, sizeof(__pyx_k_module), 0, 0, 1, 1}, {&__pyx_n_s_module_2, __pyx_k_module_2, sizeof(__pyx_k_module_2), 0, 0, 1, 1}, {&__pyx_kp_u_module_classname_name_name, __pyx_k_module_classname_name_name, sizeof(__pyx_k_module_classname_name_name), 0, 1, 0, 0}, {&__pyx_kp_u_module_classname_name_name_filt, __pyx_k_module_classname_name_name_filt, sizeof(__pyx_k_module_classname_name_name_filt), 0, 1, 0, 0}, {&__pyx_n_u_morl, __pyx_k_morl, sizeof(__pyx_k_morl), 0, 1, 0, 1}, {&__pyx_n_s_msg, __pyx_k_msg, sizeof(__pyx_k_msg), 0, 0, 1, 1}, {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1}, {&__pyx_kp_u_ndarray_is_not_C_contiguous, __pyx_k_ndarray_is_not_C_contiguous, sizeof(__pyx_k_ndarray_is_not_C_contiguous), 0, 1, 0, 0}, {&__pyx_kp_u_ndarray_is_not_Fortran_contiguou, __pyx_k_ndarray_is_not_Fortran_contiguou, sizeof(__pyx_k_ndarray_is_not_Fortran_contiguou), 0, 1, 0, 0}, {&__pyx_n_s_ndim, __pyx_k_ndim, sizeof(__pyx_k_ndim), 0, 0, 1, 1}, {&__pyx_kp_u_near_symmetric, __pyx_k_near_symmetric, sizeof(__pyx_k_near_symmetric), 0, 1, 0, 0}, {&__pyx_n_s_new, __pyx_k_new, sizeof(__pyx_k_new), 0, 0, 1, 1}, {&__pyx_n_s_new_2, __pyx_k_new_2, sizeof(__pyx_k_new_2), 0, 0, 1, 1}, {&__pyx_n_s_new_mode, __pyx_k_new_mode, sizeof(__pyx_k_new_mode), 0, 0, 1, 1}, {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0}, {&__pyx_n_s_np, __pyx_k_np, sizeof(__pyx_k_np), 0, 0, 1, 1}, {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1}, {&__pyx_kp_u_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 1, 0, 0}, {&__pyx_kp_u_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 1, 0, 0}, {&__pyx_n_s_obj, __pyx_k_obj, sizeof(__pyx_k_obj), 0, 0, 1, 1}, {&__pyx_n_s_object, __pyx_k_object, sizeof(__pyx_k_object), 0, 0, 1, 1}, {&__pyx_n_s_old, __pyx_k_old, sizeof(__pyx_k_old), 0, 0, 1, 1}, {&__pyx_kp_u_old_has_been_renamed_to_new_and, __pyx_k_old_has_been_renamed_to_new_and, sizeof(__pyx_k_old_has_been_renamed_to_new_and), 0, 1, 0, 0}, {&__pyx_n_s_old_modes, __pyx_k_old_modes, sizeof(__pyx_k_old_modes), 0, 0, 1, 1}, {&__pyx_n_s_orthogonal, __pyx_k_orthogonal, sizeof(__pyx_k_orthogonal), 0, 0, 1, 1}, {&__pyx_n_s_pack, __pyx_k_pack, sizeof(__pyx_k_pack), 0, 0, 1, 1}, {&__pyx_n_u_per, __pyx_k_per, sizeof(__pyx_k_per), 0, 1, 0, 1}, {&__pyx_n_s_periodic, __pyx_k_periodic, sizeof(__pyx_k_periodic), 0, 0, 1, 1}, {&__pyx_n_u_periodic, __pyx_k_periodic, sizeof(__pyx_k_periodic), 0, 1, 0, 1}, {&__pyx_n_s_periodization, __pyx_k_periodization, sizeof(__pyx_k_periodization), 0, 0, 1, 1}, {&__pyx_n_u_periodization, __pyx_k_periodization, sizeof(__pyx_k_periodization), 0, 1, 0, 1}, {&__pyx_n_s_pickle, __pyx_k_pickle, sizeof(__pyx_k_pickle), 0, 0, 1, 1}, {&__pyx_n_u_ppd, __pyx_k_ppd, sizeof(__pyx_k_ppd), 0, 1, 0, 1}, {&__pyx_n_s_prepare, __pyx_k_prepare, sizeof(__pyx_k_prepare), 0, 0, 1, 1}, {&__pyx_n_s_pywt__extensions__pywt, __pyx_k_pywt__extensions__pywt, sizeof(__pyx_k_pywt__extensions__pywt), 0, 0, 1, 1}, {&__pyx_kp_s_pywt__extensions__pywt_pyx, __pyx_k_pywt__extensions__pywt_pyx, sizeof(__pyx_k_pywt__extensions__pywt_pyx), 0, 0, 1, 0}, {&__pyx_n_s_pyx_PickleError, __pyx_k_pyx_PickleError, sizeof(__pyx_k_pyx_PickleError), 0, 0, 1, 1}, {&__pyx_n_s_pyx_capi, __pyx_k_pyx_capi, sizeof(__pyx_k_pyx_capi), 0, 0, 1, 1}, {&__pyx_n_s_pyx_checksum, __pyx_k_pyx_checksum, sizeof(__pyx_k_pyx_checksum), 0, 0, 1, 1}, {&__pyx_n_s_pyx_getbuffer, __pyx_k_pyx_getbuffer, sizeof(__pyx_k_pyx_getbuffer), 0, 0, 1, 1}, {&__pyx_n_s_pyx_result, __pyx_k_pyx_result, sizeof(__pyx_k_pyx_result), 0, 0, 1, 1}, {&__pyx_n_s_pyx_state, __pyx_k_pyx_state, sizeof(__pyx_k_pyx_state), 0, 0, 1, 1}, {&__pyx_n_s_pyx_type, __pyx_k_pyx_type, sizeof(__pyx_k_pyx_type), 0, 0, 1, 1}, {&__pyx_n_s_pyx_unpickle_Enum, __pyx_k_pyx_unpickle_Enum, sizeof(__pyx_k_pyx_unpickle_Enum), 0, 0, 1, 1}, {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, {&__pyx_n_s_qualname, __pyx_k_qualname, sizeof(__pyx_k_qualname), 0, 0, 1, 1}, {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, {&__pyx_n_u_rbio, __pyx_k_rbio, sizeof(__pyx_k_rbio), 0, 1, 0, 1}, {&__pyx_kp_u_rbio1_1, __pyx_k_rbio1_1, sizeof(__pyx_k_rbio1_1), 0, 1, 0, 0}, {&__pyx_kp_u_rbio1_3, __pyx_k_rbio1_3, sizeof(__pyx_k_rbio1_3), 0, 1, 0, 0}, {&__pyx_kp_u_rbio1_5, __pyx_k_rbio1_5, sizeof(__pyx_k_rbio1_5), 0, 1, 0, 0}, {&__pyx_kp_u_rbio2_2, __pyx_k_rbio2_2, sizeof(__pyx_k_rbio2_2), 0, 1, 0, 0}, {&__pyx_kp_u_rbio2_4, __pyx_k_rbio2_4, sizeof(__pyx_k_rbio2_4), 0, 1, 0, 0}, {&__pyx_kp_u_rbio2_6, __pyx_k_rbio2_6, sizeof(__pyx_k_rbio2_6), 0, 1, 0, 0}, {&__pyx_kp_u_rbio2_8, __pyx_k_rbio2_8, sizeof(__pyx_k_rbio2_8), 0, 1, 0, 0}, {&__pyx_kp_u_rbio3_1, __pyx_k_rbio3_1, sizeof(__pyx_k_rbio3_1), 0, 1, 0, 0}, {&__pyx_kp_u_rbio3_3, __pyx_k_rbio3_3, sizeof(__pyx_k_rbio3_3), 0, 1, 0, 0}, {&__pyx_kp_u_rbio3_5, __pyx_k_rbio3_5, sizeof(__pyx_k_rbio3_5), 0, 1, 0, 0}, {&__pyx_kp_u_rbio3_7, __pyx_k_rbio3_7, sizeof(__pyx_k_rbio3_7), 0, 1, 0, 0}, {&__pyx_kp_u_rbio3_9, __pyx_k_rbio3_9, sizeof(__pyx_k_rbio3_9), 0, 1, 0, 0}, {&__pyx_kp_u_rbio4_4, __pyx_k_rbio4_4, sizeof(__pyx_k_rbio4_4), 0, 1, 0, 0}, {&__pyx_kp_u_rbio5_5, __pyx_k_rbio5_5, sizeof(__pyx_k_rbio5_5), 0, 1, 0, 0}, {&__pyx_kp_u_rbio6_8, __pyx_k_rbio6_8, sizeof(__pyx_k_rbio6_8), 0, 1, 0, 0}, {&__pyx_n_s_re, __pyx_k_re, sizeof(__pyx_k_re), 0, 0, 1, 1}, {&__pyx_n_s_rec_hi, __pyx_k_rec_hi, sizeof(__pyx_k_rec_hi), 0, 0, 1, 1}, {&__pyx_n_s_rec_lo, __pyx_k_rec_lo, sizeof(__pyx_k_rec_lo), 0, 0, 1, 1}, {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, {&__pyx_n_s_reflect, __pyx_k_reflect, sizeof(__pyx_k_reflect), 0, 0, 1, 1}, {&__pyx_n_u_reflect, __pyx_k_reflect, sizeof(__pyx_k_reflect), 0, 1, 0, 1}, {&__pyx_n_s_rstrip, __pyx_k_rstrip, sizeof(__pyx_k_rstrip), 0, 0, 1, 1}, {&__pyx_kp_u_s, __pyx_k_s, sizeof(__pyx_k_s), 0, 1, 0, 0}, {&__pyx_n_s_self, __pyx_k_self, sizeof(__pyx_k_self), 0, 0, 1, 1}, {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, {&__pyx_n_u_shan, __pyx_k_shan, sizeof(__pyx_k_shan), 0, 1, 0, 1}, {&__pyx_n_s_shape, __pyx_k_shape, sizeof(__pyx_k_shape), 0, 0, 1, 1}, {&__pyx_n_s_short, __pyx_k_short, sizeof(__pyx_k_short), 0, 0, 1, 1}, {&__pyx_n_s_short_family_name, __pyx_k_short_family_name, sizeof(__pyx_k_short_family_name), 0, 0, 1, 1}, {&__pyx_n_s_size, __pyx_k_size, sizeof(__pyx_k_size), 0, 0, 1, 1}, {&__pyx_n_s_smooth, __pyx_k_smooth, sizeof(__pyx_k_smooth), 0, 0, 1, 1}, {&__pyx_n_u_smooth, __pyx_k_smooth, sizeof(__pyx_k_smooth), 0, 1, 0, 1}, {&__pyx_n_s_sort, __pyx_k_sort, sizeof(__pyx_k_sort), 0, 0, 1, 1}, {&__pyx_n_s_sorting_list, __pyx_k_sorting_list, sizeof(__pyx_k_sorting_list), 0, 0, 1, 1}, {&__pyx_n_u_sp1, __pyx_k_sp1, sizeof(__pyx_k_sp1), 0, 1, 0, 1}, {&__pyx_n_s_start, __pyx_k_start, sizeof(__pyx_k_start), 0, 0, 1, 1}, {&__pyx_n_s_startswith, __pyx_k_startswith, sizeof(__pyx_k_startswith), 0, 0, 1, 1}, {&__pyx_n_s_step, __pyx_k_step, sizeof(__pyx_k_step), 0, 0, 1, 1}, {&__pyx_n_s_stop, __pyx_k_stop, sizeof(__pyx_k_stop), 0, 0, 1, 1}, {&__pyx_kp_s_strided_and_direct, __pyx_k_strided_and_direct, sizeof(__pyx_k_strided_and_direct), 0, 0, 1, 0}, {&__pyx_kp_s_strided_and_direct_or_indirect, __pyx_k_strided_and_direct_or_indirect, sizeof(__pyx_k_strided_and_direct_or_indirect), 0, 0, 1, 0}, {&__pyx_kp_s_strided_and_indirect, __pyx_k_strided_and_indirect, sizeof(__pyx_k_strided_and_indirect), 0, 0, 1, 0}, {&__pyx_kp_s_stringsource, __pyx_k_stringsource, sizeof(__pyx_k_stringsource), 0, 0, 1, 0}, {&__pyx_n_s_struct, __pyx_k_struct, sizeof(__pyx_k_struct), 0, 0, 1, 1}, {&__pyx_n_u_sym, __pyx_k_sym, sizeof(__pyx_k_sym), 0, 1, 0, 1}, {&__pyx_n_u_sym10, __pyx_k_sym10, sizeof(__pyx_k_sym10), 0, 1, 0, 1}, {&__pyx_n_u_sym11, __pyx_k_sym11, sizeof(__pyx_k_sym11), 0, 1, 0, 1}, {&__pyx_n_u_sym12, __pyx_k_sym12, sizeof(__pyx_k_sym12), 0, 1, 0, 1}, {&__pyx_n_u_sym13, __pyx_k_sym13, sizeof(__pyx_k_sym13), 0, 1, 0, 1}, {&__pyx_n_u_sym14, __pyx_k_sym14, sizeof(__pyx_k_sym14), 0, 1, 0, 1}, {&__pyx_n_u_sym15, __pyx_k_sym15, sizeof(__pyx_k_sym15), 0, 1, 0, 1}, {&__pyx_n_u_sym16, __pyx_k_sym16, sizeof(__pyx_k_sym16), 0, 1, 0, 1}, {&__pyx_n_u_sym17, __pyx_k_sym17, sizeof(__pyx_k_sym17), 0, 1, 0, 1}, {&__pyx_n_u_sym18, __pyx_k_sym18, sizeof(__pyx_k_sym18), 0, 1, 0, 1}, {&__pyx_n_u_sym19, __pyx_k_sym19, sizeof(__pyx_k_sym19), 0, 1, 0, 1}, {&__pyx_n_u_sym2, __pyx_k_sym2, sizeof(__pyx_k_sym2), 0, 1, 0, 1}, {&__pyx_n_u_sym20, __pyx_k_sym20, sizeof(__pyx_k_sym20), 0, 1, 0, 1}, {&__pyx_n_u_sym3, __pyx_k_sym3, sizeof(__pyx_k_sym3), 0, 1, 0, 1}, {&__pyx_n_u_sym4, __pyx_k_sym4, sizeof(__pyx_k_sym4), 0, 1, 0, 1}, {&__pyx_n_u_sym5, __pyx_k_sym5, sizeof(__pyx_k_sym5), 0, 1, 0, 1}, {&__pyx_n_u_sym6, __pyx_k_sym6, sizeof(__pyx_k_sym6), 0, 1, 0, 1}, {&__pyx_n_u_sym7, __pyx_k_sym7, sizeof(__pyx_k_sym7), 0, 1, 0, 1}, {&__pyx_n_u_sym8, __pyx_k_sym8, sizeof(__pyx_k_sym8), 0, 1, 0, 1}, {&__pyx_n_u_sym9, __pyx_k_sym9, sizeof(__pyx_k_sym9), 0, 1, 0, 1}, {&__pyx_n_s_symmetric, __pyx_k_symmetric, sizeof(__pyx_k_symmetric), 0, 0, 1, 1}, {&__pyx_n_u_symmetric, __pyx_k_symmetric, sizeof(__pyx_k_symmetric), 0, 1, 0, 1}, {&__pyx_n_s_symmetry, __pyx_k_symmetry, sizeof(__pyx_k_symmetry), 0, 0, 1, 1}, {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, {&__pyx_kp_s_unable_to_allocate_array_data, __pyx_k_unable_to_allocate_array_data, sizeof(__pyx_k_unable_to_allocate_array_data), 0, 0, 1, 0}, {&__pyx_kp_s_unable_to_allocate_shape_and_str, __pyx_k_unable_to_allocate_shape_and_str, sizeof(__pyx_k_unable_to_allocate_shape_and_str), 0, 0, 1, 0}, {&__pyx_n_u_unknown, __pyx_k_unknown, sizeof(__pyx_k_unknown), 0, 1, 0, 1}, {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0}, {&__pyx_n_s_unpack, __pyx_k_unpack, sizeof(__pyx_k_unpack), 0, 0, 1, 1}, {&__pyx_kp_u_unrecognized_wavelet_family_name, __pyx_k_unrecognized_wavelet_family_name, sizeof(__pyx_k_unrecognized_wavelet_family_name), 0, 1, 0, 0}, {&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1}, {&__pyx_n_s_warn, __pyx_k_warn, sizeof(__pyx_k_warn), 0, 0, 1, 1}, {&__pyx_n_s_warnings, __pyx_k_warnings, sizeof(__pyx_k_warnings), 0, 0, 1, 1}, {&__pyx_kp_u_wavefun_self_level_8_Calculates, __pyx_k_wavefun_self_level_8_Calculates, sizeof(__pyx_k_wavefun_self_level_8_Calculates), 0, 1, 0, 0}, {&__pyx_kp_u_wavefun_self_level_8_length_Non, __pyx_k_wavefun_self_level_8_length_Non, sizeof(__pyx_k_wavefun_self_level_8_length_Non), 0, 1, 0, 0}, {&__pyx_n_s_wavelet, __pyx_k_wavelet, sizeof(__pyx_k_wavelet), 0, 0, 1, 1}, {&__pyx_n_s_wavelet_from_object, __pyx_k_wavelet_from_object, sizeof(__pyx_k_wavelet_from_object), 0, 0, 1, 1}, {&__pyx_n_s_wavelets, __pyx_k_wavelets, sizeof(__pyx_k_wavelets), 0, 0, 1, 1}, {&__pyx_n_s_wavelist, __pyx_k_wavelist, sizeof(__pyx_k_wavelist), 0, 0, 1, 1}, {&__pyx_n_u_wavelist, __pyx_k_wavelist, sizeof(__pyx_k_wavelist), 0, 1, 0, 1}, {&__pyx_kp_u_wavelist_family_None_kind_all_R, __pyx_k_wavelist_family_None_kind_all_R, sizeof(__pyx_k_wavelist_family_None_kind_all_R), 0, 1, 0, 0}, {&__pyx_kp_u_wavelist_line_184, __pyx_k_wavelist_line_184, sizeof(__pyx_k_wavelist_line_184), 0, 1, 0, 0}, {&__pyx_n_s_wavelist_locals__check_kind, __pyx_k_wavelist_locals__check_kind, sizeof(__pyx_k_wavelist_locals__check_kind), 0, 0, 1, 1}, {&__pyx_n_s_x, __pyx_k_x, sizeof(__pyx_k_x), 0, 0, 1, 1}, {&__pyx_n_s_zero, __pyx_k_zero, sizeof(__pyx_k_zero), 0, 0, 1, 1}, {&__pyx_n_u_zero, __pyx_k_zero, sizeof(__pyx_k_zero), 0, 1, 0, 1}, {&__pyx_n_s_zeros, __pyx_k_zeros, sizeof(__pyx_k_zeros), 0, 0, 1, 1}, {&__pyx_n_u_zpd, __pyx_k_zpd, sizeof(__pyx_k_zpd), 0, 1, 0, 1}, {0, 0, 0, 0, 0, 0, 0} }; static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_n_s_object); if (!__pyx_builtin_object) __PYX_ERR(0, 51, __pyx_L1_error) __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(0, 47, __pyx_L1_error) __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s_AttributeError); if (!__pyx_builtin_AttributeError) __PYX_ERR(0, 124, __pyx_L1_error) __pyx_builtin_DeprecationWarning = __Pyx_GetBuiltinName(__pyx_n_s_DeprecationWarning); if (!__pyx_builtin_DeprecationWarning) __PYX_ERR(0, 134, __pyx_L1_error) __pyx_builtin_KeyError = __Pyx_GetBuiltinName(__pyx_n_s_KeyError); if (!__pyx_builtin_KeyError) __PYX_ERR(0, 179, __pyx_L1_error) __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 319, __pyx_L1_error) __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s_MemoryError); if (!__pyx_builtin_MemoryError) __PYX_ERR(0, 412, __pyx_L1_error) __pyx_builtin_FutureWarning = __Pyx_GetBuiltinName(__pyx_n_s_FutureWarning); if (!__pyx_builtin_FutureWarning) __PYX_ERR(0, 716, __pyx_L1_error) __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 999, __pyx_L1_error) __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(2, 856, __pyx_L1_error) __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 1038, __pyx_L1_error) __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(1, 151, __pyx_L1_error) __pyx_builtin_Ellipsis = __Pyx_GetBuiltinName(__pyx_n_s_Ellipsis); if (!__pyx_builtin_Ellipsis) __PYX_ERR(1, 404, __pyx_L1_error) __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_n_s_id); if (!__pyx_builtin_id) __PYX_ERR(1, 613, __pyx_L1_error) __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) __PYX_ERR(1, 832, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; } static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); /* "pywt/_extensions/_pywt.pyx":47 * discrete = wavelet.is_discrete_wavelet(name) * if discrete == -1: * raise ValueError("unrecognized wavelet family name") # <<<<<<<<<<<<<< * return discrete * */ __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_u_unrecognized_wavelet_family_name); if (unlikely(!__pyx_tuple_)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple_); __Pyx_GIVEREF(__pyx_tuple_); /* "pywt/_extensions/_pywt.pyx":119 * if isinstance(mode, int): * if mode <= common.MODE_INVALID or mode >= common.MODE_MAX: * raise ValueError("Invalid mode.") # <<<<<<<<<<<<<< * m = mode * else: */ __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_u_Invalid_mode); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__2); __Pyx_GIVEREF(__pyx_tuple__2); /* "pywt/_extensions/_pywt.pyx":175 * cdef object code_number * try: * if len(name) > 4 and name[:4] in ['cmor', 'shan', 'fbsp']: # <<<<<<<<<<<<<< * name = name[:4] * code_number = __wname_to_code[name] */ __pyx_slice__4 = PySlice_New(Py_None, __pyx_int_4, Py_None); if (unlikely(!__pyx_slice__4)) __PYX_ERR(0, 175, __pyx_L1_error) __Pyx_GOTREF(__pyx_slice__4); __Pyx_GIVEREF(__pyx_slice__4); /* "pywt/_extensions/_pywt.pyx":225 * raise ValueError("Unrecognized value for `kind`: %s" % kind) * * def _check_kind(name, kind): # <<<<<<<<<<<<<< * if kind == 'all': * return True */ __pyx_tuple__5 = PyTuple_Pack(5, __pyx_n_s_name, __pyx_n_s_kind, __pyx_n_s_family_code, __pyx_n_s_family_number, __pyx_n_s_is_discrete); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__5); __Pyx_GIVEREF(__pyx_tuple__5); __pyx_codeobj__6 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__5, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pywt__extensions__pywt_pyx, __pyx_n_s_check_kind, 225, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__6)) __PYX_ERR(0, 225, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":242 * for name in __wname_to_code: * if _check_kind(name, kind): * sorting_list.append((name[:2], len(name), name)) # <<<<<<<<<<<<<< * elif family in __wfamily_list_short: * for name in __wname_to_code: */ __pyx_slice__7 = PySlice_New(Py_None, __pyx_int_2, Py_None); if (unlikely(!__pyx_slice__7)) __PYX_ERR(0, 242, __pyx_L1_error) __Pyx_GOTREF(__pyx_slice__7); __Pyx_GIVEREF(__pyx_slice__7); /* "pywt/_extensions/_pywt.pyx":299 * """ * if short: * return __wfamily_list_short[:] # <<<<<<<<<<<<<< * return __wfamily_list_long[:] * */ __pyx_slice__8 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__8)) __PYX_ERR(0, 299, __pyx_L1_error) __Pyx_GOTREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); /* "pywt/_extensions/_pywt.pyx":319 * """ * if not name and filter_bank is None: * raise TypeError("Wavelet name or filter bank must be specified.") # <<<<<<<<<<<<<< * if filter_bank is None: * name = name.lower() */ __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_u_Wavelet_name_or_filter_bank_must); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(0, 319, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__10); __Pyx_GIVEREF(__pyx_tuple__10); /* "pywt/_extensions/_pywt.pyx":398 * rec_hi = np.asarray(filters[3], dtype=np.float64) * except TypeError: * raise ValueError("Filter bank with numeric values required.") # <<<<<<<<<<<<<< * * if not (1 == dec_lo.ndim == dec_hi.ndim == */ __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_u_Filter_bank_with_numeric_values); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__11); __Pyx_GIVEREF(__pyx_tuple__11); /* "pywt/_extensions/_pywt.pyx":402 * if not (1 == dec_lo.ndim == dec_hi.ndim == * rec_lo.ndim == rec_hi.ndim): * raise ValueError("All filters in filter bank must be 1D.") # <<<<<<<<<<<<<< * * filter_length = len(dec_lo) */ __pyx_tuple__12 = PyTuple_Pack(1, __pyx_kp_u_All_filters_in_filter_bank_must); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 402, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__12); __Pyx_GIVEREF(__pyx_tuple__12); /* "pywt/_extensions/_pywt.pyx":407 * if not (0 < filter_length == len(dec_hi) == len(rec_lo) == * len(rec_hi)) > 0: * raise ValueError("All filters in filter bank must have " # <<<<<<<<<<<<<< * "length greater than 0.") * */ __pyx_tuple__13 = PyTuple_Pack(1, __pyx_kp_u_All_filters_in_filter_bank_must_2); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(0, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__13); __Pyx_GIVEREF(__pyx_tuple__13); /* "pywt/_extensions/_pywt.pyx":412 * self.w = wavelet.blank_discrete_wavelet(filter_length) * if self.w is NULL: * raise MemoryError("Could not allocate memory for given " # <<<<<<<<<<<<<< * "filter bank.") * */ __pyx_tuple__14 = PyTuple_Pack(1, __pyx_kp_u_Could_not_allocate_memory_for_gi); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 412, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__14); __Pyx_GIVEREF(__pyx_tuple__14); /* "pywt/_extensions/_pywt.pyx":529 * * def get_filters_coeffs(self): * warnings.warn("The `get_filters_coeffs` method is deprecated. " # <<<<<<<<<<<<<< * "Use `filter_bank` attribute instead.", DeprecationWarning) * return self.filter_bank */ __pyx_tuple__15 = PyTuple_Pack(2, __pyx_kp_u_The_get_filters_coeffs_method_is, __pyx_builtin_DeprecationWarning); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(0, 529, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__15); __Pyx_GIVEREF(__pyx_tuple__15); /* "pywt/_extensions/_pywt.pyx":538 * """ * def __get__(self): * return (self.rec_lo[::-1], self.rec_hi[::-1], self.dec_lo[::-1], # <<<<<<<<<<<<<< * self.dec_hi[::-1]) * */ __pyx_slice__16 = PySlice_New(Py_None, Py_None, __pyx_int_neg_1); if (unlikely(!__pyx_slice__16)) __PYX_ERR(0, 538, __pyx_L1_error) __Pyx_GOTREF(__pyx_slice__16); __Pyx_GIVEREF(__pyx_slice__16); /* "pywt/_extensions/_pywt.pyx":542 * * def get_reverse_filters_coeffs(self): * warnings.warn("The `get_reverse_filters_coeffs` method is deprecated. " # <<<<<<<<<<<<<< * "Use `inverse_filter_bank` attribute instead.", * DeprecationWarning) */ __pyx_tuple__17 = PyTuple_Pack(2, __pyx_kp_u_The_get_reverse_filters_coeffs_m, __pyx_builtin_DeprecationWarning); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(0, 542, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__17); __Pyx_GIVEREF(__pyx_tuple__17); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ __pyx_tuple__19 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(1, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__19); __Pyx_GIVEREF(__pyx_tuple__19); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ __pyx_tuple__20 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(1, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__20); __Pyx_GIVEREF(__pyx_tuple__20); /* "pywt/_extensions/_pywt.pyx":752 * self.w.center_frequency = float(freqs[2]) * if M < 1 or M % 1 != 0: * raise ValueError( # <<<<<<<<<<<<<< * "Wavelet spline order must be an integer >= 1.") * self.w.fbsp_order = int(M) */ __pyx_tuple__21 = PyTuple_Pack(1, __pyx_kp_u_Wavelet_spline_order_must_be_an); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(0, 752, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__21); __Pyx_GIVEREF(__pyx_tuple__21); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ __pyx_tuple__22 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(1, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__22); __Pyx_GIVEREF(__pyx_tuple__22); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ __pyx_tuple__23 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(1, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__23); __Pyx_GIVEREF(__pyx_tuple__23); /* "pywt/_extensions/_pywt.pyx":1031 * if dt == np.half: * # half-precision input converted to single precision * dt = np.dtype('float32') # <<<<<<<<<<<<<< * elif dt == np.complex256: * # complex256 is not supported. run at reduced precision */ __pyx_tuple__24 = PyTuple_Pack(1, __pyx_n_u_float32); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(0, 1031, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__24); __Pyx_GIVEREF(__pyx_tuple__24); /* "pywt/_extensions/_pywt.pyx":1034 * elif dt == np.complex256: * # complex256 is not supported. run at reduced precision * dt = np.dtype('complex128') # <<<<<<<<<<<<<< * else: * # integer input was always accepted; convert to float64 */ __pyx_tuple__25 = PyTuple_Pack(1, __pyx_n_u_complex128); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 1034, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__25); __Pyx_GIVEREF(__pyx_tuple__25); /* "pywt/_extensions/_pywt.pyx":1037 * else: * # integer input was always accepted; convert to float64 * dt = np.dtype('float64') # <<<<<<<<<<<<<< * except AttributeError: * dt = np.dtype('float64') */ __pyx_tuple__26 = PyTuple_Pack(1, __pyx_n_u_float64); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(0, 1037, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__26); __Pyx_GIVEREF(__pyx_tuple__26); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":272 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) */ __pyx_tuple__27 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(2, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__27); __Pyx_GIVEREF(__pyx_tuple__27); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":276 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< * * info.buf = PyArray_DATA(self) */ __pyx_tuple__28 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(2, 276, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__28); __Pyx_GIVEREF(__pyx_tuple__28); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":306 * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" */ __pyx_tuple__29 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(2, 306, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__29); __Pyx_GIVEREF(__pyx_tuple__29); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":856 * * if (end - f) - (new_offset - offset[0]) < 15: * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") # <<<<<<<<<<<<<< * * if ((child.byteorder == c'>' and little_endian) or */ __pyx_tuple__30 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(2, 856, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__30); __Pyx_GIVEREF(__pyx_tuple__30); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":880 * t = child.type_num * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< * * # Until ticket #99 is fixed, use integers to avoid warnings */ __pyx_tuple__31 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(2, 880, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__31); __Pyx_GIVEREF(__pyx_tuple__31); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1038 * _import_array() * except Exception: * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< * * cdef inline int import_umath() except -1: */ __pyx_tuple__32 = PyTuple_Pack(1, __pyx_kp_u_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(2, 1038, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__32); __Pyx_GIVEREF(__pyx_tuple__32); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1044 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< * * cdef inline int import_ufunc() except -1: */ __pyx_tuple__33 = PyTuple_Pack(1, __pyx_kp_u_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(2, 1044, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__33); __Pyx_GIVEREF(__pyx_tuple__33); /* "View.MemoryView":133 * * if not self.ndim: * raise ValueError("Empty shape tuple for cython.array") # <<<<<<<<<<<<<< * * if itemsize <= 0: */ __pyx_tuple__34 = PyTuple_Pack(1, __pyx_kp_s_Empty_shape_tuple_for_cython_arr); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(1, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__34); __Pyx_GIVEREF(__pyx_tuple__34); /* "View.MemoryView":136 * * if itemsize <= 0: * raise ValueError("itemsize <= 0 for cython.array") # <<<<<<<<<<<<<< * * if not isinstance(format, bytes): */ __pyx_tuple__35 = PyTuple_Pack(1, __pyx_kp_s_itemsize_0_for_cython_array); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(1, 136, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__35); __Pyx_GIVEREF(__pyx_tuple__35); /* "View.MemoryView":148 * * if not self._shape: * raise MemoryError("unable to allocate shape and strides.") # <<<<<<<<<<<<<< * * */ __pyx_tuple__36 = PyTuple_Pack(1, __pyx_kp_s_unable_to_allocate_shape_and_str); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(1, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__36); __Pyx_GIVEREF(__pyx_tuple__36); /* "View.MemoryView":176 * self.data = malloc(self.len) * if not self.data: * raise MemoryError("unable to allocate array data.") # <<<<<<<<<<<<<< * * if self.dtype_is_object: */ __pyx_tuple__37 = PyTuple_Pack(1, __pyx_kp_s_unable_to_allocate_array_data); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(1, 176, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__37); __Pyx_GIVEREF(__pyx_tuple__37); /* "View.MemoryView":192 * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): * raise ValueError("Can only create a buffer that is contiguous in memory.") # <<<<<<<<<<<<<< * info.buf = self.data * info.len = self.len */ __pyx_tuple__38 = PyTuple_Pack(1, __pyx_kp_s_Can_only_create_a_buffer_that_is); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(1, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__38); __Pyx_GIVEREF(__pyx_tuple__38); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ __pyx_tuple__39 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(1, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__39); __Pyx_GIVEREF(__pyx_tuple__39); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ __pyx_tuple__40 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__40)) __PYX_ERR(1, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__40); __Pyx_GIVEREF(__pyx_tuple__40); /* "View.MemoryView":418 * def __setitem__(memoryview self, object index, object value): * if self.view.readonly: * raise TypeError("Cannot assign to read-only memoryview") # <<<<<<<<<<<<<< * * have_slices, index = _unellipsify(index, self.view.ndim) */ __pyx_tuple__41 = PyTuple_Pack(1, __pyx_kp_s_Cannot_assign_to_read_only_memor); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(1, 418, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__41); __Pyx_GIVEREF(__pyx_tuple__41); /* "View.MemoryView":495 * result = struct.unpack(self.view.format, bytesitem) * except struct.error: * raise ValueError("Unable to convert item to object") # <<<<<<<<<<<<<< * else: * if len(self.view.format) == 1: */ __pyx_tuple__42 = PyTuple_Pack(1, __pyx_kp_s_Unable_to_convert_item_to_object); if (unlikely(!__pyx_tuple__42)) __PYX_ERR(1, 495, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__42); __Pyx_GIVEREF(__pyx_tuple__42); /* "View.MemoryView":520 * def __getbuffer__(self, Py_buffer *info, int flags): * if flags & PyBUF_WRITABLE and self.view.readonly: * raise ValueError("Cannot create writable memory view from read-only memoryview") # <<<<<<<<<<<<<< * * if flags & PyBUF_ND: */ __pyx_tuple__43 = PyTuple_Pack(1, __pyx_kp_s_Cannot_create_writable_memory_vi); if (unlikely(!__pyx_tuple__43)) __PYX_ERR(1, 520, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__43); __Pyx_GIVEREF(__pyx_tuple__43); /* "View.MemoryView":570 * if self.view.strides == NULL: * * raise ValueError("Buffer view does not expose strides") # <<<<<<<<<<<<<< * * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) */ __pyx_tuple__44 = PyTuple_Pack(1, __pyx_kp_s_Buffer_view_does_not_expose_stri); if (unlikely(!__pyx_tuple__44)) __PYX_ERR(1, 570, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__44); __Pyx_GIVEREF(__pyx_tuple__44); /* "View.MemoryView":577 * def suboffsets(self): * if self.view.suboffsets == NULL: * return (-1,) * self.view.ndim # <<<<<<<<<<<<<< * * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]]) */ __pyx_tuple__45 = PyTuple_New(1); if (unlikely(!__pyx_tuple__45)) __PYX_ERR(1, 577, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__45); __Pyx_INCREF(__pyx_int_neg_1); __Pyx_GIVEREF(__pyx_int_neg_1); PyTuple_SET_ITEM(__pyx_tuple__45, 0, __pyx_int_neg_1); __Pyx_GIVEREF(__pyx_tuple__45); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ __pyx_tuple__46 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__46)) __PYX_ERR(1, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__46); __Pyx_GIVEREF(__pyx_tuple__46); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ __pyx_tuple__47 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__47)) __PYX_ERR(1, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__47); __Pyx_GIVEREF(__pyx_tuple__47); /* "View.MemoryView":703 * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: * raise ValueError("Indirect dimensions not supported") # <<<<<<<<<<<<<< * * */ __pyx_tuple__48 = PyTuple_Pack(1, __pyx_kp_s_Indirect_dimensions_not_supporte); if (unlikely(!__pyx_tuple__48)) __PYX_ERR(1, 703, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__48); __Pyx_GIVEREF(__pyx_tuple__48); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ __pyx_tuple__49 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__49)) __PYX_ERR(1, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__49); __Pyx_GIVEREF(__pyx_tuple__49); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ __pyx_tuple__50 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__50)) __PYX_ERR(1, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__50); __Pyx_GIVEREF(__pyx_tuple__50); /* "pywt/_extensions/_pywt.pyx":39 * # Extract float/int parameters from a wavelet name. Examples: * # re.findall(cwt_pattern, 'fbsp1-1.5-1') -> ['1', 1.5', '1'] * cwt_pattern = re.compile(r'\D+(\d+\.*\d*)+') # <<<<<<<<<<<<<< * * */ __pyx_tuple__55 = PyTuple_Pack(1, __pyx_kp_u_D_d_d); if (unlikely(!__pyx_tuple__55)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__55); __Pyx_GIVEREF(__pyx_tuple__55); /* "pywt/_extensions/_pywt.pyx":51 * * * class _Modes(object): # <<<<<<<<<<<<<< * """ * Because the most common and practical way of representing digital signals */ __pyx_tuple__56 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__56)) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__56); __Pyx_GIVEREF(__pyx_tuple__56); /* "pywt/_extensions/_pywt.pyx":116 * "periodization", "reflect", "antisymmetric", "antireflect"] * * def from_object(self, mode): # <<<<<<<<<<<<<< * if isinstance(mode, int): * if mode <= common.MODE_INVALID or mode >= common.MODE_MAX: */ __pyx_tuple__57 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_mode, __pyx_n_s_m); if (unlikely(!__pyx_tuple__57)) __PYX_ERR(0, 116, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__57); __Pyx_GIVEREF(__pyx_tuple__57); __pyx_codeobj__58 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__57, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pywt__extensions__pywt_pyx, __pyx_n_s_from_object, 116, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__58)) __PYX_ERR(0, 116, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":129 * return m * * def __getattr__(self, mode): # <<<<<<<<<<<<<< * # catch deprecated mode names * if mode in _old_modes: */ __pyx_tuple__59 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_mode, __pyx_n_s_new_mode); if (unlikely(!__pyx_tuple__59)) __PYX_ERR(0, 129, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__59); __Pyx_GIVEREF(__pyx_tuple__59); __pyx_codeobj__60 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__59, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pywt__extensions__pywt_pyx, __pyx_n_s_getattr, 129, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__60)) __PYX_ERR(0, 129, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":146 * "removed in a future version of pywt.") * * def __getattribute__(self, attr): # <<<<<<<<<<<<<< * """Override so that deprecation warning is shown * every time MODES is used. */ __pyx_tuple__61 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_attr); if (unlikely(!__pyx_tuple__61)) __PYX_ERR(0, 146, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__61); __Pyx_GIVEREF(__pyx_tuple__61); __pyx_codeobj__62 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__61, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pywt__extensions__pywt_pyx, __pyx_n_s_getattribute, 146, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__62)) __PYX_ERR(0, 146, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":157 * return _Modes.__getattribute__(self, attr) * * def __getattr__(self, attr): # <<<<<<<<<<<<<< * """Override so that deprecation warning is shown * every time MODES is used. */ __pyx_tuple__63 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_attr); if (unlikely(!__pyx_tuple__63)) __PYX_ERR(0, 157, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__63); __Pyx_GIVEREF(__pyx_tuple__63); __pyx_codeobj__64 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__63, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pywt__extensions__pywt_pyx, __pyx_n_s_getattr, 157, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__64)) __PYX_ERR(0, 157, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":184 * * * def wavelist(family=None, kind='all'): # <<<<<<<<<<<<<< * """ * wavelist(family=None, kind='all') */ __pyx_tuple__65 = PyTuple_Pack(8, __pyx_n_s_family, __pyx_n_s_kind, __pyx_n_s_wavelets, __pyx_n_s_sorting_list, __pyx_n_s_check_kind, __pyx_n_s_check_kind, __pyx_n_s_name, __pyx_n_s_x); if (unlikely(!__pyx_tuple__65)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__65); __Pyx_GIVEREF(__pyx_tuple__65); __pyx_codeobj__66 = (PyObject*)__Pyx_PyCode_New(2, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__65, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pywt__extensions__pywt_pyx, __pyx_n_s_wavelist, 184, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__66)) __PYX_ERR(0, 184, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":256 * * * def families(int short=True): # <<<<<<<<<<<<<< * """ * families(short=True) */ __pyx_tuple__67 = PyTuple_Pack(1, __pyx_n_s_short); if (unlikely(!__pyx_tuple__67)) __PYX_ERR(0, 256, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__67); __Pyx_GIVEREF(__pyx_tuple__67); __pyx_codeobj__68 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__67, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pywt__extensions__pywt_pyx, __pyx_n_s_families, 256, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__68)) __PYX_ERR(0, 256, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":303 * * * def DiscreteContinuousWavelet(name=u"", object filter_bank=None): # <<<<<<<<<<<<<< * """ * DiscreteContinuousWavelet(name, filter_bank=None) returns a */ __pyx_tuple__69 = PyTuple_Pack(4, __pyx_n_s_name, __pyx_n_s_filter_bank, __pyx_n_s_family_code, __pyx_n_s_family_number); if (unlikely(!__pyx_tuple__69)) __PYX_ERR(0, 303, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__69); __Pyx_GIVEREF(__pyx_tuple__69); __pyx_codeobj__70 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pywt__extensions__pywt_pyx, __pyx_n_s_DiscreteContinuousWavelet, 303, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__70)) __PYX_ERR(0, 303, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":1012 * * * def wavelet_from_object(wavelet): # <<<<<<<<<<<<<< * return c_wavelet_from_object(wavelet) * */ __pyx_tuple__71 = PyTuple_Pack(1, __pyx_n_s_wavelet); if (unlikely(!__pyx_tuple__71)) __PYX_ERR(0, 1012, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__71); __Pyx_GIVEREF(__pyx_tuple__71); __pyx_codeobj__72 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__71, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pywt__extensions__pywt_pyx, __pyx_n_s_wavelet_from_object, 1012, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__72)) __PYX_ERR(0, 1012, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":1044 * * # TODO: Can this be replaced by the take parameter of upcoef? Or vice-versa? * def keep(arr, keep_length): # <<<<<<<<<<<<<< * length = len(arr) * if keep_length < length: */ __pyx_tuple__73 = PyTuple_Pack(4, __pyx_n_s_arr, __pyx_n_s_keep_length, __pyx_n_s_length, __pyx_n_s_left_bound); if (unlikely(!__pyx_tuple__73)) __PYX_ERR(0, 1044, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__73); __Pyx_GIVEREF(__pyx_tuple__73); __pyx_codeobj__74 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__73, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pywt__extensions__pywt_pyx, __pyx_n_s_keep, 1044, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__74)) __PYX_ERR(0, 1044, __pyx_L1_error) /* "View.MemoryView":286 * return self.name * * cdef generic = Enum("") # <<<<<<<<<<<<<< * cdef strided = Enum("") # default * cdef indirect = Enum("") */ __pyx_tuple__75 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct_or_indirect); if (unlikely(!__pyx_tuple__75)) __PYX_ERR(1, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__75); __Pyx_GIVEREF(__pyx_tuple__75); /* "View.MemoryView":287 * * cdef generic = Enum("") * cdef strided = Enum("") # default # <<<<<<<<<<<<<< * cdef indirect = Enum("") * */ __pyx_tuple__76 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct); if (unlikely(!__pyx_tuple__76)) __PYX_ERR(1, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__76); __Pyx_GIVEREF(__pyx_tuple__76); /* "View.MemoryView":288 * cdef generic = Enum("") * cdef strided = Enum("") # default * cdef indirect = Enum("") # <<<<<<<<<<<<<< * * */ __pyx_tuple__77 = PyTuple_Pack(1, __pyx_kp_s_strided_and_indirect); if (unlikely(!__pyx_tuple__77)) __PYX_ERR(1, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__77); __Pyx_GIVEREF(__pyx_tuple__77); /* "View.MemoryView":291 * * * cdef contiguous = Enum("") # <<<<<<<<<<<<<< * cdef indirect_contiguous = Enum("") * */ __pyx_tuple__78 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_direct); if (unlikely(!__pyx_tuple__78)) __PYX_ERR(1, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__78); __Pyx_GIVEREF(__pyx_tuple__78); /* "View.MemoryView":292 * * cdef contiguous = Enum("") * cdef indirect_contiguous = Enum("") # <<<<<<<<<<<<<< * * */ __pyx_tuple__79 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_indirect); if (unlikely(!__pyx_tuple__79)) __PYX_ERR(1, 292, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__79); __Pyx_GIVEREF(__pyx_tuple__79); /* "(tree fragment)":1 * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_PickleError * cdef object __pyx_result */ __pyx_tuple__80 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__80)) __PYX_ERR(1, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__80); __Pyx_GIVEREF(__pyx_tuple__80); __pyx_codeobj__81 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Enum, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__81)) __PYX_ERR(1, 1, __pyx_L1_error) __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_RefNannyFinishContext(); return -1; } static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { __pyx_umethod_PyUnicode_Type_rstrip.type = (PyObject*)&PyUnicode_Type; if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error); __pyx_float_0_ = PyFloat_FromDouble(0.); if (unlikely(!__pyx_float_0_)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_float_0_0 = PyFloat_FromDouble(0.0); if (unlikely(!__pyx_float_0_0)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_4 = PyInt_FromLong(4); if (unlikely(!__pyx_int_4)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_5 = PyInt_FromLong(5); if (unlikely(!__pyx_int_5)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_6 = PyInt_FromLong(6); if (unlikely(!__pyx_int_6)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_7 = PyInt_FromLong(7); if (unlikely(!__pyx_int_7)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_8 = PyInt_FromLong(8); if (unlikely(!__pyx_int_8)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_9 = PyInt_FromLong(9); if (unlikely(!__pyx_int_9)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_10 = PyInt_FromLong(10); if (unlikely(!__pyx_int_10)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_11 = PyInt_FromLong(11); if (unlikely(!__pyx_int_11)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_12 = PyInt_FromLong(12); if (unlikely(!__pyx_int_12)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_13 = PyInt_FromLong(13); if (unlikely(!__pyx_int_13)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_14 = PyInt_FromLong(14); if (unlikely(!__pyx_int_14)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_15 = PyInt_FromLong(15); if (unlikely(!__pyx_int_15)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_16 = PyInt_FromLong(16); if (unlikely(!__pyx_int_16)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_17 = PyInt_FromLong(17); if (unlikely(!__pyx_int_17)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_18 = PyInt_FromLong(18); if (unlikely(!__pyx_int_18)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_19 = PyInt_FromLong(19); if (unlikely(!__pyx_int_19)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_20 = PyInt_FromLong(20); if (unlikely(!__pyx_int_20)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_21 = PyInt_FromLong(21); if (unlikely(!__pyx_int_21)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_22 = PyInt_FromLong(22); if (unlikely(!__pyx_int_22)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_23 = PyInt_FromLong(23); if (unlikely(!__pyx_int_23)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_24 = PyInt_FromLong(24); if (unlikely(!__pyx_int_24)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_25 = PyInt_FromLong(25); if (unlikely(!__pyx_int_25)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_26 = PyInt_FromLong(26); if (unlikely(!__pyx_int_26)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_27 = PyInt_FromLong(27); if (unlikely(!__pyx_int_27)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_28 = PyInt_FromLong(28); if (unlikely(!__pyx_int_28)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_29 = PyInt_FromLong(29); if (unlikely(!__pyx_int_29)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_30 = PyInt_FromLong(30); if (unlikely(!__pyx_int_30)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_31 = PyInt_FromLong(31); if (unlikely(!__pyx_int_31)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_32 = PyInt_FromLong(32); if (unlikely(!__pyx_int_32)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_33 = PyInt_FromLong(33); if (unlikely(!__pyx_int_33)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_34 = PyInt_FromLong(34); if (unlikely(!__pyx_int_34)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_35 = PyInt_FromLong(35); if (unlikely(!__pyx_int_35)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_36 = PyInt_FromLong(36); if (unlikely(!__pyx_int_36)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_37 = PyInt_FromLong(37); if (unlikely(!__pyx_int_37)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_38 = PyInt_FromLong(38); if (unlikely(!__pyx_int_38)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_39 = PyInt_FromLong(39); if (unlikely(!__pyx_int_39)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_44 = PyInt_FromLong(44); if (unlikely(!__pyx_int_44)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_55 = PyInt_FromLong(55); if (unlikely(!__pyx_int_55)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_68 = PyInt_FromLong(68); if (unlikely(!__pyx_int_68)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_184977713 = PyInt_FromLong(184977713L); if (unlikely(!__pyx_int_184977713)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) __PYX_ERR(0, 1, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; } static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/ static int __Pyx_modinit_global_init_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0); /*--- Global init code ---*/ __pyx_v_4pywt_11_extensions_5_pywt___wname_to_code = Py_None; Py_INCREF(Py_None); __pyx_v_4pywt_11_extensions_5_pywt___wfamily_list_short = Py_None; Py_INCREF(Py_None); __pyx_v_4pywt_11_extensions_5_pywt___wfamily_list_long = Py_None; Py_INCREF(Py_None); generic = Py_None; Py_INCREF(Py_None); strided = Py_None; Py_INCREF(Py_None); indirect = Py_None; Py_INCREF(Py_None); contiguous = Py_None; Py_INCREF(Py_None); indirect_contiguous = Py_None; Py_INCREF(Py_None); __Pyx_RefNannyFinishContext(); return 0; } static int __Pyx_modinit_variable_export_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0); /*--- Variable export code ---*/ if (__Pyx_ExportVoidPtr(__pyx_n_s_have_c99_complex, (void *)&__pyx_v_4pywt_11_extensions_5_pywt_have_c99_complex, "int") < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_RefNannyFinishContext(); return -1; } static int __Pyx_modinit_function_export_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); /*--- Function export code ---*/ if (__Pyx_ExportFunction("_check_dtype", (void (*)(void))__pyx_f_4pywt_11_extensions_5_pywt__check_dtype, "PyArray_Descr *(PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error) if (__Pyx_ExportFunction("c_wavelet_from_object", (void (*)(void))__pyx_f_4pywt_11_extensions_5_pywt_c_wavelet_from_object, "PyObject *(PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_RefNannyFinishContext(); return -1; } static int __Pyx_modinit_type_init_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); /*--- Type init code ---*/ if (PyType_Ready(&WaveletType) < 0) __PYX_ERR(0, 331, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 WaveletType.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!WaveletType.tp_dictoffset && WaveletType.tp_getattro == PyObject_GenericGetAttr)) { WaveletType.tp_getattro = __Pyx_PyObject_GenericGetAttr; } if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Wavelet, (PyObject *)&WaveletType) < 0) __PYX_ERR(0, 331, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject*)&WaveletType) < 0) __PYX_ERR(0, 331, __pyx_L1_error) __pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet = &WaveletType; if (PyType_Ready(&ContinuousWaveletType) < 0) __PYX_ERR(0, 678, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 ContinuousWaveletType.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!ContinuousWaveletType.tp_dictoffset && ContinuousWaveletType.tp_getattro == PyObject_GenericGetAttr)) { ContinuousWaveletType.tp_getattro = __Pyx_PyObject_GenericGetAttr; } if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ContinuousWavelet, (PyObject *)&ContinuousWaveletType) < 0) __PYX_ERR(0, 678, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject*)&ContinuousWaveletType) < 0) __PYX_ERR(0, 678, __pyx_L1_error) __pyx_ptype_4pywt_11_extensions_5_pywt_ContinuousWavelet = &ContinuousWaveletType; __pyx_vtabptr_array = &__pyx_vtable_array; __pyx_vtable_array.get_memview = (PyObject *(*)(struct __pyx_array_obj *))__pyx_array_get_memview; if (PyType_Ready(&__pyx_type___pyx_array) < 0) __PYX_ERR(1, 105, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type___pyx_array.tp_print = 0; #endif if (__Pyx_SetVtable(__pyx_type___pyx_array.tp_dict, __pyx_vtabptr_array) < 0) __PYX_ERR(1, 105, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_array) < 0) __PYX_ERR(1, 105, __pyx_L1_error) __pyx_array_type = &__pyx_type___pyx_array; if (PyType_Ready(&__pyx_type___pyx_MemviewEnum) < 0) __PYX_ERR(1, 279, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type___pyx_MemviewEnum.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type___pyx_MemviewEnum.tp_dictoffset && __pyx_type___pyx_MemviewEnum.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type___pyx_MemviewEnum.tp_getattro = __Pyx_PyObject_GenericGetAttr; } if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_MemviewEnum) < 0) __PYX_ERR(1, 279, __pyx_L1_error) __pyx_MemviewEnum_type = &__pyx_type___pyx_MemviewEnum; __pyx_vtabptr_memoryview = &__pyx_vtable_memoryview; __pyx_vtable_memoryview.get_item_pointer = (char *(*)(struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_get_item_pointer; __pyx_vtable_memoryview.is_slice = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_is_slice; __pyx_vtable_memoryview.setitem_slice_assignment = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *, PyObject *))__pyx_memoryview_setitem_slice_assignment; __pyx_vtable_memoryview.setitem_slice_assign_scalar = (PyObject *(*)(struct __pyx_memoryview_obj *, struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_setitem_slice_assign_scalar; __pyx_vtable_memoryview.setitem_indexed = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *, PyObject *))__pyx_memoryview_setitem_indexed; __pyx_vtable_memoryview.convert_item_to_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *))__pyx_memoryview_convert_item_to_object; __pyx_vtable_memoryview.assign_item_from_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *, PyObject *))__pyx_memoryview_assign_item_from_object; if (PyType_Ready(&__pyx_type___pyx_memoryview) < 0) __PYX_ERR(1, 330, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type___pyx_memoryview.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type___pyx_memoryview.tp_dictoffset && __pyx_type___pyx_memoryview.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type___pyx_memoryview.tp_getattro = __Pyx_PyObject_GenericGetAttr; } if (__Pyx_SetVtable(__pyx_type___pyx_memoryview.tp_dict, __pyx_vtabptr_memoryview) < 0) __PYX_ERR(1, 330, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_memoryview) < 0) __PYX_ERR(1, 330, __pyx_L1_error) __pyx_memoryview_type = &__pyx_type___pyx_memoryview; __pyx_vtabptr__memoryviewslice = &__pyx_vtable__memoryviewslice; __pyx_vtable__memoryviewslice.__pyx_base = *__pyx_vtabptr_memoryview; __pyx_vtable__memoryviewslice.__pyx_base.convert_item_to_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *))__pyx_memoryviewslice_convert_item_to_object; __pyx_vtable__memoryviewslice.__pyx_base.assign_item_from_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *, PyObject *))__pyx_memoryviewslice_assign_item_from_object; __pyx_type___pyx_memoryviewslice.tp_base = __pyx_memoryview_type; if (PyType_Ready(&__pyx_type___pyx_memoryviewslice) < 0) __PYX_ERR(1, 965, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type___pyx_memoryviewslice.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type___pyx_memoryviewslice.tp_dictoffset && __pyx_type___pyx_memoryviewslice.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type___pyx_memoryviewslice.tp_getattro = __Pyx_PyObject_GenericGetAttr; } if (__Pyx_SetVtable(__pyx_type___pyx_memoryviewslice.tp_dict, __pyx_vtabptr__memoryviewslice) < 0) __PYX_ERR(1, 965, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_memoryviewslice) < 0) __PYX_ERR(1, 965, __pyx_L1_error) __pyx_memoryviewslice_type = &__pyx_type___pyx_memoryviewslice; __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_RefNannyFinishContext(); return -1; } static int __Pyx_modinit_type_import_code(void) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); /*--- Type import code ---*/ __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type", #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 sizeof(PyTypeObject), #else sizeof(PyHeapTypeObject), #endif __Pyx_ImportType_CheckSize_Warn); if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(3, 9, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore); if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 206, __pyx_L1_error) __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Warn); if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 229, __pyx_L1_error) __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Warn); if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 233, __pyx_L1_error) __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore); if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 242, __pyx_L1_error) __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Warn); if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 918, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); return -1; } static int __Pyx_modinit_variable_import_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0); /*--- Variable import code ---*/ __Pyx_RefNannyFinishContext(); return 0; } static int __Pyx_modinit_function_import_code(void) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); /*--- Function import code ---*/ __pyx_t_1 = PyImport_ImportModule("pywt._extensions._dwt"); if (!__pyx_t_1) __PYX_ERR(0, 1, __pyx_L1_error) if (__Pyx_ImportFunction(__pyx_t_1, "__pyx_fuse_0upcoef", (void (**)(void))&__pyx_fuse_0__pyx_f_4pywt_11_extensions_4_dwt_upcoef, "PyObject *(int, __Pyx_memviewslice, struct WaveletObject *, int, size_t, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error) if (__Pyx_ImportFunction(__pyx_t_1, "__pyx_fuse_1upcoef", (void (**)(void))&__pyx_fuse_1__pyx_f_4pywt_11_extensions_4_dwt_upcoef, "PyObject *(int, __Pyx_memviewslice, struct WaveletObject *, int, size_t, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error) if (__Pyx_ImportFunction(__pyx_t_1, "__pyx_fuse_2upcoef", (void (**)(void))&__pyx_fuse_2__pyx_f_4pywt_11_extensions_4_dwt_upcoef, "PyObject *(int, __Pyx_memviewslice, struct WaveletObject *, int, size_t, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error) if (__Pyx_ImportFunction(__pyx_t_1, "__pyx_fuse_3upcoef", (void (**)(void))&__pyx_fuse_3__pyx_f_4pywt_11_extensions_4_dwt_upcoef, "PyObject *(int, __Pyx_memviewslice, struct WaveletObject *, int, size_t, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error) Py_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = PyImport_ImportModule("pywt._extensions._cwt"); if (!__pyx_t_2) __PYX_ERR(0, 1, __pyx_L1_error) if (__Pyx_ImportFunction(__pyx_t_2, "__pyx_fuse_0cwt_psi_single", (void (**)(void))&__pyx_fuse_0__pyx_f_4pywt_11_extensions_4_cwt_cwt_psi_single, "PyObject *(__Pyx_memviewslice, struct ContinuousWaveletObject *, size_t, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error) if (__Pyx_ImportFunction(__pyx_t_2, "__pyx_fuse_1cwt_psi_single", (void (**)(void))&__pyx_fuse_1__pyx_f_4pywt_11_extensions_4_cwt_cwt_psi_single, "PyObject *(__Pyx_memviewslice, struct ContinuousWaveletObject *, size_t, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error) Py_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_RefNannyFinishContext(); return -1; } #if PY_MAJOR_VERSION < 3 #ifdef CYTHON_NO_PYINIT_EXPORT #define __Pyx_PyMODINIT_FUNC void #else #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC #endif #else #ifdef CYTHON_NO_PYINIT_EXPORT #define __Pyx_PyMODINIT_FUNC PyObject * #else #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC #endif #endif #if PY_MAJOR_VERSION < 3 __Pyx_PyMODINIT_FUNC init_pywt(void) CYTHON_SMALL_CODE; /*proto*/ __Pyx_PyMODINIT_FUNC init_pywt(void) #else __Pyx_PyMODINIT_FUNC PyInit__pywt(void) CYTHON_SMALL_CODE; /*proto*/ __Pyx_PyMODINIT_FUNC PyInit__pywt(void) #if CYTHON_PEP489_MULTI_PHASE_INIT { return PyModuleDef_Init(&__pyx_moduledef); } static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) { #if PY_VERSION_HEX >= 0x030700A1 static PY_INT64_T main_interpreter_id = -1; PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp); if (main_interpreter_id == -1) { main_interpreter_id = current_id; return (unlikely(current_id == -1)) ? -1 : 0; } else if (unlikely(main_interpreter_id != current_id)) #else static PyInterpreterState *main_interpreter = NULL; PyInterpreterState *current_interpreter = PyThreadState_Get()->interp; if (!main_interpreter) { main_interpreter = current_interpreter; } else if (unlikely(main_interpreter != current_interpreter)) #endif { PyErr_SetString( PyExc_ImportError, "Interpreter change detected - this module can only be loaded into one interpreter per process."); return -1; } return 0; } static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) { PyObject *value = PyObject_GetAttrString(spec, from_name); int result = 0; if (likely(value)) { if (allow_none || value != Py_None) { result = PyDict_SetItemString(moddict, to_name, value); } Py_DECREF(value); } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) { PyErr_Clear(); } else { result = -1; } return result; } static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) { PyObject *module = NULL, *moddict, *modname; if (__Pyx_check_single_interpreter()) return NULL; if (__pyx_m) return __Pyx_NewRef(__pyx_m); modname = PyObject_GetAttrString(spec, "name"); if (unlikely(!modname)) goto bad; module = PyModule_NewObject(modname); Py_DECREF(modname); if (unlikely(!module)) goto bad; moddict = PyModule_GetDict(module); if (unlikely(!moddict)) goto bad; if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad; if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad; if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad; if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad; return module; bad: Py_XDECREF(module); return NULL; } static CYTHON_SMALL_CODE int __pyx_pymod_exec__pywt(PyObject *__pyx_pyinit_module) #endif #endif { PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; static PyThread_type_lock __pyx_t_5[8]; __Pyx_RefNannyDeclarations #if CYTHON_PEP489_MULTI_PHASE_INIT if (__pyx_m) { if (__pyx_m == __pyx_pyinit_module) return 0; PyErr_SetString(PyExc_RuntimeError, "Module '_pywt' has already been imported. Re-initialisation is not supported."); return -1; } #elif PY_MAJOR_VERSION >= 3 if (__pyx_m) return __Pyx_NewRef(__pyx_m); #endif #if CYTHON_REFNANNY __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); if (!__Pyx_RefNanny) { PyErr_Clear(); __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); if (!__Pyx_RefNanny) Py_FatalError("failed to import 'refnanny' module"); } #endif __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit__pywt(void)", 0); if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #ifdef __Pxy_PyFrame_Initialize_Offsets __Pxy_PyFrame_Initialize_Offsets(); #endif __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error) #ifdef __Pyx_CyFunction_USED if (__pyx_CyFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_FusedFunction_USED if (__pyx_FusedFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_Coroutine_USED if (__pyx_Coroutine_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_Generator_USED if (__pyx_Generator_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_AsyncGen_USED if (__pyx_AsyncGen_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_StopAsyncIteration_USED if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif /*--- Library function declarations ---*/ /*--- Threads initialization code ---*/ #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS #ifdef WITH_THREAD /* Python build with threading support? */ PyEval_InitThreads(); #endif #endif /*--- Module creation code ---*/ #if CYTHON_PEP489_MULTI_PHASE_INIT __pyx_m = __pyx_pyinit_module; Py_INCREF(__pyx_m); #else #if PY_MAJOR_VERSION < 3 __pyx_m = Py_InitModule4("_pywt", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); #else __pyx_m = PyModule_Create(&__pyx_moduledef); #endif if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error) #endif __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error) Py_INCREF(__pyx_d); __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error) Py_INCREF(__pyx_b); __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error) Py_INCREF(__pyx_cython_runtime); if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error); /*--- Initialize various global constants etc. ---*/ if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif if (__pyx_module_is_main_pywt___extensions___pywt) { if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name_2, __pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error) } #if PY_MAJOR_VERSION >= 3 { PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error) if (!PyDict_GetItemString(modules, "pywt._extensions._pywt")) { if (unlikely(PyDict_SetItemString(modules, "pywt._extensions._pywt", __pyx_m) < 0)) __PYX_ERR(0, 1, __pyx_L1_error) } } #endif /*--- Builtin init code ---*/ if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; /*--- Constants init code ---*/ if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; /*--- Global type/function init code ---*/ (void)__Pyx_modinit_global_init_code(); if (unlikely(__Pyx_modinit_variable_export_code() != 0)) goto __pyx_L1_error; if (unlikely(__Pyx_modinit_function_export_code() != 0)) goto __pyx_L1_error; if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; (void)__Pyx_modinit_variable_import_code(); if (unlikely(__Pyx_modinit_function_import_code() != 0)) goto __pyx_L1_error; /*--- Execution code ---*/ #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif /* "pywt/_extensions/_pywt.pyx":6 * # See COPYING for license details. * * __doc__ = """Cython wrapper for low-level C wavelet transform implementation.""" # <<<<<<<<<<<<<< * __all__ = ['MODES', 'Modes', 'DiscreteContinuousWavelet', 'Wavelet', * 'ContinuousWavelet', 'wavelist', 'families'] */ if (PyDict_SetItem(__pyx_d, __pyx_n_s_doc, __pyx_kp_u_Cython_wrapper_for_low_level_C_w) < 0) __PYX_ERR(0, 6, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":7 * * __doc__ = """Cython wrapper for low-level C wavelet transform implementation.""" * __all__ = ['MODES', 'Modes', 'DiscreteContinuousWavelet', 'Wavelet', # <<<<<<<<<<<<<< * 'ContinuousWavelet', 'wavelist', 'families'] * */ __pyx_t_1 = PyList_New(7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_u_MODES); __Pyx_GIVEREF(__pyx_n_u_MODES); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_MODES); __Pyx_INCREF(__pyx_n_u_Modes); __Pyx_GIVEREF(__pyx_n_u_Modes); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_Modes); __Pyx_INCREF(__pyx_n_u_DiscreteContinuousWavelet); __Pyx_GIVEREF(__pyx_n_u_DiscreteContinuousWavelet); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_DiscreteContinuousWavelet); __Pyx_INCREF(__pyx_n_u_Wavelet); __Pyx_GIVEREF(__pyx_n_u_Wavelet); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_u_Wavelet); __Pyx_INCREF(__pyx_n_u_ContinuousWavelet); __Pyx_GIVEREF(__pyx_n_u_ContinuousWavelet); PyList_SET_ITEM(__pyx_t_1, 4, __pyx_n_u_ContinuousWavelet); __Pyx_INCREF(__pyx_n_u_wavelist); __Pyx_GIVEREF(__pyx_n_u_wavelist); PyList_SET_ITEM(__pyx_t_1, 5, __pyx_n_u_wavelist); __Pyx_INCREF(__pyx_n_u_families); __Pyx_GIVEREF(__pyx_n_u_families); PyList_SET_ITEM(__pyx_t_1, 6, __pyx_n_u_families); if (PyDict_SetItem(__pyx_d, __pyx_n_s_all_2, __pyx_t_1) < 0) __PYX_ERR(0, 7, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_pywt.pyx":11 * * * import warnings # <<<<<<<<<<<<<< * import re * */ __pyx_t_1 = __Pyx_Import(__pyx_n_s_warnings, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_warnings, __pyx_t_1) < 0) __PYX_ERR(0, 11, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_pywt.pyx":12 * * import warnings * import re # <<<<<<<<<<<<<< * * from . cimport c_wt */ __pyx_t_1 = __Pyx_Import(__pyx_n_s_re, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_re, __pyx_t_1) < 0) __PYX_ERR(0, 12, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_pywt.pyx":21 * from libc.math cimport pow, sqrt * * import numpy as np # <<<<<<<<<<<<<< * * */ __pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_1) < 0) __PYX_ERR(0, 21, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_pywt.pyx":25 * * # Caution: order of _old_modes entries must match _Modes.modes below * _old_modes = ['zpd', # <<<<<<<<<<<<<< * 'cpd', * 'sym', */ __pyx_t_1 = PyList_New(6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_u_zpd); __Pyx_GIVEREF(__pyx_n_u_zpd); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_zpd); __Pyx_INCREF(__pyx_n_u_cpd); __Pyx_GIVEREF(__pyx_n_u_cpd); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_cpd); __Pyx_INCREF(__pyx_n_u_sym); __Pyx_GIVEREF(__pyx_n_u_sym); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_sym); __Pyx_INCREF(__pyx_n_u_ppd); __Pyx_GIVEREF(__pyx_n_u_ppd); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_u_ppd); __Pyx_INCREF(__pyx_n_u_sp1); __Pyx_GIVEREF(__pyx_n_u_sp1); PyList_SET_ITEM(__pyx_t_1, 4, __pyx_n_u_sp1); __Pyx_INCREF(__pyx_n_u_per); __Pyx_GIVEREF(__pyx_n_u_per); PyList_SET_ITEM(__pyx_t_1, 5, __pyx_n_u_per); if (PyDict_SetItem(__pyx_d, __pyx_n_s_old_modes, __pyx_t_1) < 0) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_pywt.pyx":33 * ] * * _attr_deprecation_msg = ('{old} has been renamed to {new} and will ' # <<<<<<<<<<<<<< * 'be unavailable in a future version ' * 'of pywt.') */ if (PyDict_SetItem(__pyx_d, __pyx_n_s_attr_deprecation_msg, __pyx_kp_u_old_has_been_renamed_to_new_and) < 0) __PYX_ERR(0, 33, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":39 * # Extract float/int parameters from a wavelet name. Examples: * # re.findall(cwt_pattern, 'fbsp1-1.5-1') -> ['1', 1.5', '1'] * cwt_pattern = re.compile(r'\D+(\d+\.*\d*)+') # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_re); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_compile); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__55, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_d, __pyx_n_s_cwt_pattern, __pyx_t_1) < 0) __PYX_ERR(0, 39, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_pywt.pyx":51 * * * class _Modes(object): # <<<<<<<<<<<<<< * """ * Because the most common and practical way of representing digital signals */ __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__56); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_tuple__56, __pyx_n_s_Modes_2, __pyx_n_s_Modes_2, (PyObject *) NULL, __pyx_n_s_pywt__extensions__pywt, __pyx_kp_s_Because_the_most_common_and_pra); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); /* "pywt/_extensions/_pywt.pyx":102 * * """ * zero = common.MODE_ZEROPAD # <<<<<<<<<<<<<< * constant = common.MODE_CONSTANT_EDGE * symmetric = common.MODE_SYMMETRIC */ __pyx_t_3 = __Pyx_PyInt_From_MODE(MODE_ZEROPAD); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_zero, __pyx_t_3) < 0) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/_pywt.pyx":103 * """ * zero = common.MODE_ZEROPAD * constant = common.MODE_CONSTANT_EDGE # <<<<<<<<<<<<<< * symmetric = common.MODE_SYMMETRIC * reflect = common.MODE_REFLECT */ __pyx_t_3 = __Pyx_PyInt_From_MODE(MODE_CONSTANT_EDGE); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_constant, __pyx_t_3) < 0) __PYX_ERR(0, 103, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/_pywt.pyx":104 * zero = common.MODE_ZEROPAD * constant = common.MODE_CONSTANT_EDGE * symmetric = common.MODE_SYMMETRIC # <<<<<<<<<<<<<< * reflect = common.MODE_REFLECT * periodic = common.MODE_PERIODIC */ __pyx_t_3 = __Pyx_PyInt_From_MODE(MODE_SYMMETRIC); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_symmetric, __pyx_t_3) < 0) __PYX_ERR(0, 104, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/_pywt.pyx":105 * constant = common.MODE_CONSTANT_EDGE * symmetric = common.MODE_SYMMETRIC * reflect = common.MODE_REFLECT # <<<<<<<<<<<<<< * periodic = common.MODE_PERIODIC * smooth = common.MODE_SMOOTH */ __pyx_t_3 = __Pyx_PyInt_From_MODE(MODE_REFLECT); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_reflect, __pyx_t_3) < 0) __PYX_ERR(0, 105, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/_pywt.pyx":106 * symmetric = common.MODE_SYMMETRIC * reflect = common.MODE_REFLECT * periodic = common.MODE_PERIODIC # <<<<<<<<<<<<<< * smooth = common.MODE_SMOOTH * periodization = common.MODE_PERIODIZATION */ __pyx_t_3 = __Pyx_PyInt_From_MODE(MODE_PERIODIC); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_periodic, __pyx_t_3) < 0) __PYX_ERR(0, 106, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/_pywt.pyx":107 * reflect = common.MODE_REFLECT * periodic = common.MODE_PERIODIC * smooth = common.MODE_SMOOTH # <<<<<<<<<<<<<< * periodization = common.MODE_PERIODIZATION * antisymmetric = common.MODE_ANTISYMMETRIC */ __pyx_t_3 = __Pyx_PyInt_From_MODE(MODE_SMOOTH); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_smooth, __pyx_t_3) < 0) __PYX_ERR(0, 107, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/_pywt.pyx":108 * periodic = common.MODE_PERIODIC * smooth = common.MODE_SMOOTH * periodization = common.MODE_PERIODIZATION # <<<<<<<<<<<<<< * antisymmetric = common.MODE_ANTISYMMETRIC * antireflect = common.MODE_ANTIREFLECT */ __pyx_t_3 = __Pyx_PyInt_From_MODE(MODE_PERIODIZATION); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_periodization, __pyx_t_3) < 0) __PYX_ERR(0, 108, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/_pywt.pyx":109 * smooth = common.MODE_SMOOTH * periodization = common.MODE_PERIODIZATION * antisymmetric = common.MODE_ANTISYMMETRIC # <<<<<<<<<<<<<< * antireflect = common.MODE_ANTIREFLECT * */ __pyx_t_3 = __Pyx_PyInt_From_MODE(MODE_ANTISYMMETRIC); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_antisymmetric, __pyx_t_3) < 0) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/_pywt.pyx":110 * periodization = common.MODE_PERIODIZATION * antisymmetric = common.MODE_ANTISYMMETRIC * antireflect = common.MODE_ANTIREFLECT # <<<<<<<<<<<<<< * * # Caution: order in modes list below must match _old_modes above */ __pyx_t_3 = __Pyx_PyInt_From_MODE(MODE_ANTIREFLECT); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_antireflect, __pyx_t_3) < 0) __PYX_ERR(0, 110, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/_pywt.pyx":113 * * # Caution: order in modes list below must match _old_modes above * modes = ["zero", "constant", "symmetric", "periodic", "smooth", # <<<<<<<<<<<<<< * "periodization", "reflect", "antisymmetric", "antireflect"] * */ __pyx_t_3 = PyList_New(9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_n_u_zero); __Pyx_GIVEREF(__pyx_n_u_zero); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_u_zero); __Pyx_INCREF(__pyx_n_u_constant); __Pyx_GIVEREF(__pyx_n_u_constant); PyList_SET_ITEM(__pyx_t_3, 1, __pyx_n_u_constant); __Pyx_INCREF(__pyx_n_u_symmetric); __Pyx_GIVEREF(__pyx_n_u_symmetric); PyList_SET_ITEM(__pyx_t_3, 2, __pyx_n_u_symmetric); __Pyx_INCREF(__pyx_n_u_periodic); __Pyx_GIVEREF(__pyx_n_u_periodic); PyList_SET_ITEM(__pyx_t_3, 3, __pyx_n_u_periodic); __Pyx_INCREF(__pyx_n_u_smooth); __Pyx_GIVEREF(__pyx_n_u_smooth); PyList_SET_ITEM(__pyx_t_3, 4, __pyx_n_u_smooth); __Pyx_INCREF(__pyx_n_u_periodization); __Pyx_GIVEREF(__pyx_n_u_periodization); PyList_SET_ITEM(__pyx_t_3, 5, __pyx_n_u_periodization); __Pyx_INCREF(__pyx_n_u_reflect); __Pyx_GIVEREF(__pyx_n_u_reflect); PyList_SET_ITEM(__pyx_t_3, 6, __pyx_n_u_reflect); __Pyx_INCREF(__pyx_n_u_antisymmetric); __Pyx_GIVEREF(__pyx_n_u_antisymmetric); PyList_SET_ITEM(__pyx_t_3, 7, __pyx_n_u_antisymmetric); __Pyx_INCREF(__pyx_n_u_antireflect); __Pyx_GIVEREF(__pyx_n_u_antireflect); PyList_SET_ITEM(__pyx_t_3, 8, __pyx_n_u_antireflect); if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_modes, __pyx_t_3) < 0) __PYX_ERR(0, 113, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/_pywt.pyx":116 * "periodization", "reflect", "antisymmetric", "antireflect"] * * def from_object(self, mode): # <<<<<<<<<<<<<< * if isinstance(mode, int): * if mode <= common.MODE_INVALID or mode >= common.MODE_MAX: */ __pyx_t_3 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4pywt_11_extensions_5_pywt_6_Modes_1from_object, 0, __pyx_n_s_Modes_from_object, NULL, __pyx_n_s_pywt__extensions__pywt, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_from_object, __pyx_t_3) < 0) __PYX_ERR(0, 116, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/_pywt.pyx":129 * return m * * def __getattr__(self, mode): # <<<<<<<<<<<<<< * # catch deprecated mode names * if mode in _old_modes: */ __pyx_t_3 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4pywt_11_extensions_5_pywt_6_Modes_3__getattr__, 0, __pyx_n_s_Modes___getattr, NULL, __pyx_n_s_pywt__extensions__pywt, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_getattr, __pyx_t_3) < 0) __PYX_ERR(0, 129, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/_pywt.pyx":51 * * * class _Modes(object): # <<<<<<<<<<<<<< * """ * Because the most common and practical way of representing digital signals */ __pyx_t_3 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_Modes_2, __pyx_tuple__56, __pyx_t_2, NULL, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_d, __pyx_n_s_Modes_2, __pyx_t_3) < 0) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_pywt.pyx":139 * * * Modes = _Modes() # <<<<<<<<<<<<<< * * */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Modes_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_d, __pyx_n_s_Modes, __pyx_t_2) < 0) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_pywt.pyx":142 * * * class _DeprecatedMODES(_Modes): # <<<<<<<<<<<<<< * msg = ("MODES has been renamed to Modes and will be " * "removed in a future version of pywt.") */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Modes_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_DeprecatedMODES, __pyx_n_s_DeprecatedMODES, (PyObject *) NULL, __pyx_n_s_pywt__extensions__pywt, (PyObject *) NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); /* "pywt/_extensions/_pywt.pyx":143 * * class _DeprecatedMODES(_Modes): * msg = ("MODES has been renamed to Modes and will be " # <<<<<<<<<<<<<< * "removed in a future version of pywt.") * */ if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_msg, __pyx_kp_u_MODES_has_been_renamed_to_Modes) < 0) __PYX_ERR(0, 143, __pyx_L1_error) /* "pywt/_extensions/_pywt.pyx":146 * "removed in a future version of pywt.") * * def __getattribute__(self, attr): # <<<<<<<<<<<<<< * """Override so that deprecation warning is shown * every time MODES is used. */ __pyx_t_4 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4pywt_11_extensions_5_pywt_16_DeprecatedMODES_1__getattribute__, 0, __pyx_n_s_DeprecatedMODES___getattribute, NULL, __pyx_n_s_pywt__extensions__pywt, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_getattribute, __pyx_t_4) < 0) __PYX_ERR(0, 146, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "pywt/_extensions/_pywt.pyx":157 * return _Modes.__getattribute__(self, attr) * * def __getattr__(self, attr): # <<<<<<<<<<<<<< * """Override so that deprecation warning is shown * every time MODES is used. */ __pyx_t_4 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4pywt_11_extensions_5_pywt_16_DeprecatedMODES_3__getattr__, 0, __pyx_n_s_DeprecatedMODES___getattr, NULL, __pyx_n_s_pywt__extensions__pywt, __pyx_d, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 157, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_getattr, __pyx_t_4) < 0) __PYX_ERR(0, 157, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "pywt/_extensions/_pywt.pyx":142 * * * class _DeprecatedMODES(_Modes): # <<<<<<<<<<<<<< * msg = ("MODES has been renamed to Modes and will be " * "removed in a future version of pywt.") */ __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_DeprecatedMODES, __pyx_t_1, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_d, __pyx_n_s_DeprecatedMODES, __pyx_t_4) < 0) __PYX_ERR(0, 142, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_pywt.pyx":165 * * * MODES = _DeprecatedMODES() # <<<<<<<<<<<<<< * * ############################################################################### */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_DeprecatedMODES); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_d, __pyx_n_s_MODES, __pyx_t_2) < 0) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/wavelets_list.pxi":27 * cdef __wname_to_code * __wname_to_code = { * "haar": (HAAR, 0), # <<<<<<<<<<<<<< * * "db1": (DB, 1), */ __pyx_t_2 = __Pyx_PyDict_NewPresized(127); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(HAAR); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_0); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_haar, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":29 * "haar": (HAAR, 0), * * "db1": (DB, 1), # <<<<<<<<<<<<<< * "db2": (DB, 2), * "db3": (DB, 3), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 29, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 29, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_1); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db1, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":30 * * "db1": (DB, 1), * "db2": (DB, 2), # <<<<<<<<<<<<<< * "db3": (DB, 3), * "db4": (DB, 4), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 30, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 30, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_2); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db2, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":31 * "db1": (DB, 1), * "db2": (DB, 2), * "db3": (DB, 3), # <<<<<<<<<<<<<< * "db4": (DB, 4), * "db5": (DB, 5), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 31, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 31, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_3); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db3, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":32 * "db2": (DB, 2), * "db3": (DB, 3), * "db4": (DB, 4), # <<<<<<<<<<<<<< * "db5": (DB, 5), * "db6": (DB, 6), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 32, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 32, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_4); __Pyx_GIVEREF(__pyx_int_4); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_4); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db4, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":33 * "db3": (DB, 3), * "db4": (DB, 4), * "db5": (DB, 5), # <<<<<<<<<<<<<< * "db6": (DB, 6), * "db7": (DB, 7), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 33, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 33, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_5); __Pyx_GIVEREF(__pyx_int_5); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_5); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db5, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":34 * "db4": (DB, 4), * "db5": (DB, 5), * "db6": (DB, 6), # <<<<<<<<<<<<<< * "db7": (DB, 7), * "db8": (DB, 8), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 34, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 34, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_6); __Pyx_GIVEREF(__pyx_int_6); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_6); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db6, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":35 * "db5": (DB, 5), * "db6": (DB, 6), * "db7": (DB, 7), # <<<<<<<<<<<<<< * "db8": (DB, 8), * "db9": (DB, 9), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 35, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 35, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_7); __Pyx_GIVEREF(__pyx_int_7); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_7); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db7, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":36 * "db6": (DB, 6), * "db7": (DB, 7), * "db8": (DB, 8), # <<<<<<<<<<<<<< * "db9": (DB, 9), * */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 36, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_8); __Pyx_GIVEREF(__pyx_int_8); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_8); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db8, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":37 * "db7": (DB, 7), * "db8": (DB, 8), * "db9": (DB, 9), # <<<<<<<<<<<<<< * * "db10": (DB, 10), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_9); __Pyx_GIVEREF(__pyx_int_9); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_9); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db9, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":39 * "db9": (DB, 9), * * "db10": (DB, 10), # <<<<<<<<<<<<<< * "db11": (DB, 11), * "db12": (DB, 12), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 39, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 39, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_10); __Pyx_GIVEREF(__pyx_int_10); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_10); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db10, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":40 * * "db10": (DB, 10), * "db11": (DB, 11), # <<<<<<<<<<<<<< * "db12": (DB, 12), * "db13": (DB, 13), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 40, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 40, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_11); __Pyx_GIVEREF(__pyx_int_11); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_11); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db11, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":41 * "db10": (DB, 10), * "db11": (DB, 11), * "db12": (DB, 12), # <<<<<<<<<<<<<< * "db13": (DB, 13), * "db14": (DB, 14), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 41, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 41, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_12); __Pyx_GIVEREF(__pyx_int_12); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_12); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db12, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":42 * "db11": (DB, 11), * "db12": (DB, 12), * "db13": (DB, 13), # <<<<<<<<<<<<<< * "db14": (DB, 14), * "db15": (DB, 15), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 42, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 42, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_13); __Pyx_GIVEREF(__pyx_int_13); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_13); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db13, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":43 * "db12": (DB, 12), * "db13": (DB, 13), * "db14": (DB, 14), # <<<<<<<<<<<<<< * "db15": (DB, 15), * "db16": (DB, 16), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 43, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 43, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_14); __Pyx_GIVEREF(__pyx_int_14); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_14); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db14, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":44 * "db13": (DB, 13), * "db14": (DB, 14), * "db15": (DB, 15), # <<<<<<<<<<<<<< * "db16": (DB, 16), * "db17": (DB, 17), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 44, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 44, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_15); __Pyx_GIVEREF(__pyx_int_15); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_15); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db15, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":45 * "db14": (DB, 14), * "db15": (DB, 15), * "db16": (DB, 16), # <<<<<<<<<<<<<< * "db17": (DB, 17), * "db18": (DB, 18), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 45, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 45, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_16); __Pyx_GIVEREF(__pyx_int_16); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_16); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db16, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":46 * "db15": (DB, 15), * "db16": (DB, 16), * "db17": (DB, 17), # <<<<<<<<<<<<<< * "db18": (DB, 18), * "db19": (DB, 19), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_17); __Pyx_GIVEREF(__pyx_int_17); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_17); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db17, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":47 * "db16": (DB, 16), * "db17": (DB, 17), * "db18": (DB, 18), # <<<<<<<<<<<<<< * "db19": (DB, 19), * */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_18); __Pyx_GIVEREF(__pyx_int_18); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_18); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db18, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":48 * "db17": (DB, 17), * "db18": (DB, 18), * "db19": (DB, 19), # <<<<<<<<<<<<<< * * "db20": (DB, 20), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_19); __Pyx_GIVEREF(__pyx_int_19); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_19); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db19, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":50 * "db19": (DB, 19), * * "db20": (DB, 20), # <<<<<<<<<<<<<< * "db21": (DB, 21), * "db22": (DB, 22), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 50, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 50, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_20); __Pyx_GIVEREF(__pyx_int_20); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_20); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db20, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":51 * * "db20": (DB, 20), * "db21": (DB, 21), # <<<<<<<<<<<<<< * "db22": (DB, 22), * "db23": (DB, 23), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_21); __Pyx_GIVEREF(__pyx_int_21); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_21); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db21, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":52 * "db20": (DB, 20), * "db21": (DB, 21), * "db22": (DB, 22), # <<<<<<<<<<<<<< * "db23": (DB, 23), * "db24": (DB, 24), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_22); __Pyx_GIVEREF(__pyx_int_22); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_22); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db22, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":53 * "db21": (DB, 21), * "db22": (DB, 22), * "db23": (DB, 23), # <<<<<<<<<<<<<< * "db24": (DB, 24), * "db25": (DB, 25), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 53, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 53, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_23); __Pyx_GIVEREF(__pyx_int_23); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_23); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db23, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":54 * "db22": (DB, 22), * "db23": (DB, 23), * "db24": (DB, 24), # <<<<<<<<<<<<<< * "db25": (DB, 25), * "db26": (DB, 26), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 54, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 54, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_24); __Pyx_GIVEREF(__pyx_int_24); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_24); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db24, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":55 * "db23": (DB, 23), * "db24": (DB, 24), * "db25": (DB, 25), # <<<<<<<<<<<<<< * "db26": (DB, 26), * "db27": (DB, 27), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_25); __Pyx_GIVEREF(__pyx_int_25); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_25); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db25, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":56 * "db24": (DB, 24), * "db25": (DB, 25), * "db26": (DB, 26), # <<<<<<<<<<<<<< * "db27": (DB, 27), * "db28": (DB, 28), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 56, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 56, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_26); __Pyx_GIVEREF(__pyx_int_26); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_26); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db26, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":57 * "db25": (DB, 25), * "db26": (DB, 26), * "db27": (DB, 27), # <<<<<<<<<<<<<< * "db28": (DB, 28), * "db29": (DB, 29), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 57, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_27); __Pyx_GIVEREF(__pyx_int_27); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_27); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db27, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":58 * "db26": (DB, 26), * "db27": (DB, 27), * "db28": (DB, 28), # <<<<<<<<<<<<<< * "db29": (DB, 29), * */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 58, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 58, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_28); __Pyx_GIVEREF(__pyx_int_28); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_28); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db28, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":59 * "db27": (DB, 27), * "db28": (DB, 28), * "db29": (DB, 29), # <<<<<<<<<<<<<< * * "db30": (DB, 30), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 59, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 59, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_29); __Pyx_GIVEREF(__pyx_int_29); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_29); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db29, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":61 * "db29": (DB, 29), * * "db30": (DB, 30), # <<<<<<<<<<<<<< * "db31": (DB, 31), * "db32": (DB, 32), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 61, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 61, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_30); __Pyx_GIVEREF(__pyx_int_30); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_30); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db30, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":62 * * "db30": (DB, 30), * "db31": (DB, 31), # <<<<<<<<<<<<<< * "db32": (DB, 32), * "db33": (DB, 33), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_31); __Pyx_GIVEREF(__pyx_int_31); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_31); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db31, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":63 * "db30": (DB, 30), * "db31": (DB, 31), * "db32": (DB, 32), # <<<<<<<<<<<<<< * "db33": (DB, 33), * "db34": (DB, 34), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 63, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 63, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_32); __Pyx_GIVEREF(__pyx_int_32); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_32); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db32, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":64 * "db31": (DB, 31), * "db32": (DB, 32), * "db33": (DB, 33), # <<<<<<<<<<<<<< * "db34": (DB, 34), * "db35": (DB, 35), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 64, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 64, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_33); __Pyx_GIVEREF(__pyx_int_33); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_33); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db33, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":65 * "db32": (DB, 32), * "db33": (DB, 33), * "db34": (DB, 34), # <<<<<<<<<<<<<< * "db35": (DB, 35), * "db36": (DB, 36), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 65, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 65, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_34); __Pyx_GIVEREF(__pyx_int_34); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_34); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db34, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":66 * "db33": (DB, 33), * "db34": (DB, 34), * "db35": (DB, 35), # <<<<<<<<<<<<<< * "db36": (DB, 36), * "db37": (DB, 37), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 66, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 66, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_35); __Pyx_GIVEREF(__pyx_int_35); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_35); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db35, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":67 * "db34": (DB, 34), * "db35": (DB, 35), * "db36": (DB, 36), # <<<<<<<<<<<<<< * "db37": (DB, 37), * "db38": (DB, 38), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_36); __Pyx_GIVEREF(__pyx_int_36); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_36); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db36, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":68 * "db35": (DB, 35), * "db36": (DB, 36), * "db37": (DB, 37), # <<<<<<<<<<<<<< * "db38": (DB, 38), * */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_37); __Pyx_GIVEREF(__pyx_int_37); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_37); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db37, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":69 * "db36": (DB, 36), * "db37": (DB, 37), * "db38": (DB, 38), # <<<<<<<<<<<<<< * * "sym2": (SYM, 2), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(DB); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_38); __Pyx_GIVEREF(__pyx_int_38); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_38); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_db38, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":71 * "db38": (DB, 38), * * "sym2": (SYM, 2), # <<<<<<<<<<<<<< * "sym3": (SYM, 3), * "sym4": (SYM, 4), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(SYM); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_2); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_sym2, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":72 * * "sym2": (SYM, 2), * "sym3": (SYM, 3), # <<<<<<<<<<<<<< * "sym4": (SYM, 4), * "sym5": (SYM, 5), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(SYM); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_3); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_sym3, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":73 * "sym2": (SYM, 2), * "sym3": (SYM, 3), * "sym4": (SYM, 4), # <<<<<<<<<<<<<< * "sym5": (SYM, 5), * "sym6": (SYM, 6), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(SYM); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_4); __Pyx_GIVEREF(__pyx_int_4); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_4); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_sym4, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":74 * "sym3": (SYM, 3), * "sym4": (SYM, 4), * "sym5": (SYM, 5), # <<<<<<<<<<<<<< * "sym6": (SYM, 6), * "sym7": (SYM, 7), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(SYM); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_5); __Pyx_GIVEREF(__pyx_int_5); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_5); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_sym5, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":75 * "sym4": (SYM, 4), * "sym5": (SYM, 5), * "sym6": (SYM, 6), # <<<<<<<<<<<<<< * "sym7": (SYM, 7), * "sym8": (SYM, 8), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(SYM); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_6); __Pyx_GIVEREF(__pyx_int_6); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_6); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_sym6, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":76 * "sym5": (SYM, 5), * "sym6": (SYM, 6), * "sym7": (SYM, 7), # <<<<<<<<<<<<<< * "sym8": (SYM, 8), * "sym9": (SYM, 9), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(SYM); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 76, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_7); __Pyx_GIVEREF(__pyx_int_7); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_7); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_sym7, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":77 * "sym6": (SYM, 6), * "sym7": (SYM, 7), * "sym8": (SYM, 8), # <<<<<<<<<<<<<< * "sym9": (SYM, 9), * */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(SYM); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_8); __Pyx_GIVEREF(__pyx_int_8); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_8); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_sym8, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":78 * "sym7": (SYM, 7), * "sym8": (SYM, 8), * "sym9": (SYM, 9), # <<<<<<<<<<<<<< * * "sym10": (SYM, 10), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(SYM); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_9); __Pyx_GIVEREF(__pyx_int_9); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_9); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_sym9, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":80 * "sym9": (SYM, 9), * * "sym10": (SYM, 10), # <<<<<<<<<<<<<< * "sym11": (SYM, 11), * "sym12": (SYM, 12), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(SYM); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_10); __Pyx_GIVEREF(__pyx_int_10); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_10); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_sym10, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":81 * * "sym10": (SYM, 10), * "sym11": (SYM, 11), # <<<<<<<<<<<<<< * "sym12": (SYM, 12), * "sym13": (SYM, 13), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(SYM); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 81, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_11); __Pyx_GIVEREF(__pyx_int_11); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_11); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_sym11, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":82 * "sym10": (SYM, 10), * "sym11": (SYM, 11), * "sym12": (SYM, 12), # <<<<<<<<<<<<<< * "sym13": (SYM, 13), * "sym14": (SYM, 14), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(SYM); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 82, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 82, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_12); __Pyx_GIVEREF(__pyx_int_12); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_12); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_sym12, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":83 * "sym11": (SYM, 11), * "sym12": (SYM, 12), * "sym13": (SYM, 13), # <<<<<<<<<<<<<< * "sym14": (SYM, 14), * "sym15": (SYM, 15), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(SYM); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 83, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 83, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_13); __Pyx_GIVEREF(__pyx_int_13); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_13); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_sym13, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":84 * "sym12": (SYM, 12), * "sym13": (SYM, 13), * "sym14": (SYM, 14), # <<<<<<<<<<<<<< * "sym15": (SYM, 15), * "sym16": (SYM, 16), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(SYM); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_14); __Pyx_GIVEREF(__pyx_int_14); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_14); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_sym14, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":85 * "sym13": (SYM, 13), * "sym14": (SYM, 14), * "sym15": (SYM, 15), # <<<<<<<<<<<<<< * "sym16": (SYM, 16), * "sym17": (SYM, 17), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(SYM); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 85, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 85, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_15); __Pyx_GIVEREF(__pyx_int_15); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_15); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_sym15, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":86 * "sym14": (SYM, 14), * "sym15": (SYM, 15), * "sym16": (SYM, 16), # <<<<<<<<<<<<<< * "sym17": (SYM, 17), * "sym18": (SYM, 18), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(SYM); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 86, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 86, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_16); __Pyx_GIVEREF(__pyx_int_16); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_16); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_sym16, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":87 * "sym15": (SYM, 15), * "sym16": (SYM, 16), * "sym17": (SYM, 17), # <<<<<<<<<<<<<< * "sym18": (SYM, 18), * "sym19": (SYM, 19), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(SYM); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_17); __Pyx_GIVEREF(__pyx_int_17); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_17); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_sym17, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":88 * "sym16": (SYM, 16), * "sym17": (SYM, 17), * "sym18": (SYM, 18), # <<<<<<<<<<<<<< * "sym19": (SYM, 19), * "sym20": (SYM, 20), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(SYM); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 88, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 88, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_18); __Pyx_GIVEREF(__pyx_int_18); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_18); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_sym18, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":89 * "sym17": (SYM, 17), * "sym18": (SYM, 18), * "sym19": (SYM, 19), # <<<<<<<<<<<<<< * "sym20": (SYM, 20), * */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(SYM); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 89, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 89, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_19); __Pyx_GIVEREF(__pyx_int_19); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_19); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_sym19, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":90 * "sym18": (SYM, 18), * "sym19": (SYM, 19), * "sym20": (SYM, 20), # <<<<<<<<<<<<<< * * "coif1": (COIF, 1), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(SYM); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 90, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 90, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_20); __Pyx_GIVEREF(__pyx_int_20); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_20); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_sym20, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":92 * "sym20": (SYM, 20), * * "coif1": (COIF, 1), # <<<<<<<<<<<<<< * "coif2": (COIF, 2), * "coif3": (COIF, 3), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(COIF); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_coif1, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":93 * * "coif1": (COIF, 1), * "coif2": (COIF, 2), # <<<<<<<<<<<<<< * "coif3": (COIF, 3), * "coif4": (COIF, 4), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(COIF); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 93, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 93, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_2); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_coif2, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":94 * "coif1": (COIF, 1), * "coif2": (COIF, 2), * "coif3": (COIF, 3), # <<<<<<<<<<<<<< * "coif4": (COIF, 4), * "coif5": (COIF, 5), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(COIF); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 94, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 94, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_3); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_coif3, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":95 * "coif2": (COIF, 2), * "coif3": (COIF, 3), * "coif4": (COIF, 4), # <<<<<<<<<<<<<< * "coif5": (COIF, 5), * "coif6": (COIF, 6), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(COIF); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 95, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 95, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_4); __Pyx_GIVEREF(__pyx_int_4); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_4); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_coif4, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":96 * "coif3": (COIF, 3), * "coif4": (COIF, 4), * "coif5": (COIF, 5), # <<<<<<<<<<<<<< * "coif6": (COIF, 6), * "coif7": (COIF, 7), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(COIF); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_5); __Pyx_GIVEREF(__pyx_int_5); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_5); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_coif5, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":97 * "coif4": (COIF, 4), * "coif5": (COIF, 5), * "coif6": (COIF, 6), # <<<<<<<<<<<<<< * "coif7": (COIF, 7), * "coif8": (COIF, 8), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(COIF); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 97, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 97, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_6); __Pyx_GIVEREF(__pyx_int_6); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_6); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_coif6, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":98 * "coif5": (COIF, 5), * "coif6": (COIF, 6), * "coif7": (COIF, 7), # <<<<<<<<<<<<<< * "coif8": (COIF, 8), * "coif9": (COIF, 9), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(COIF); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 98, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 98, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_7); __Pyx_GIVEREF(__pyx_int_7); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_7); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_coif7, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":99 * "coif6": (COIF, 6), * "coif7": (COIF, 7), * "coif8": (COIF, 8), # <<<<<<<<<<<<<< * "coif9": (COIF, 9), * */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(COIF); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 99, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 99, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_8); __Pyx_GIVEREF(__pyx_int_8); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_8); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_coif8, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":100 * "coif7": (COIF, 7), * "coif8": (COIF, 8), * "coif9": (COIF, 9), # <<<<<<<<<<<<<< * * "coif10": (COIF, 10), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(COIF); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_9); __Pyx_GIVEREF(__pyx_int_9); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_9); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_coif9, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":102 * "coif9": (COIF, 9), * * "coif10": (COIF, 10), # <<<<<<<<<<<<<< * "coif11": (COIF, 11), * "coif12": (COIF, 12), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(COIF); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_10); __Pyx_GIVEREF(__pyx_int_10); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_10); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_coif10, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":103 * * "coif10": (COIF, 10), * "coif11": (COIF, 11), # <<<<<<<<<<<<<< * "coif12": (COIF, 12), * "coif13": (COIF, 13), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(COIF); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_11); __Pyx_GIVEREF(__pyx_int_11); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_11); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_coif11, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":104 * "coif10": (COIF, 10), * "coif11": (COIF, 11), * "coif12": (COIF, 12), # <<<<<<<<<<<<<< * "coif13": (COIF, 13), * "coif14": (COIF, 14), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(COIF); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_12); __Pyx_GIVEREF(__pyx_int_12); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_12); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_coif12, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":105 * "coif11": (COIF, 11), * "coif12": (COIF, 12), * "coif13": (COIF, 13), # <<<<<<<<<<<<<< * "coif14": (COIF, 14), * "coif15": (COIF, 15), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(COIF); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_13); __Pyx_GIVEREF(__pyx_int_13); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_13); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_coif13, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":106 * "coif12": (COIF, 12), * "coif13": (COIF, 13), * "coif14": (COIF, 14), # <<<<<<<<<<<<<< * "coif15": (COIF, 15), * "coif16": (COIF, 16), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(COIF); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_14); __Pyx_GIVEREF(__pyx_int_14); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_14); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_coif14, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":107 * "coif13": (COIF, 13), * "coif14": (COIF, 14), * "coif15": (COIF, 15), # <<<<<<<<<<<<<< * "coif16": (COIF, 16), * "coif17": (COIF, 17), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(COIF); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_15); __Pyx_GIVEREF(__pyx_int_15); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_15); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_coif15, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":108 * "coif14": (COIF, 14), * "coif15": (COIF, 15), * "coif16": (COIF, 16), # <<<<<<<<<<<<<< * "coif17": (COIF, 17), * */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(COIF); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_16); __Pyx_GIVEREF(__pyx_int_16); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_16); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_coif16, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":109 * "coif15": (COIF, 15), * "coif16": (COIF, 16), * "coif17": (COIF, 17), # <<<<<<<<<<<<<< * * */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(COIF); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_17); __Pyx_GIVEREF(__pyx_int_17); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_17); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_coif17, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":112 * * * "bior1.1": (BIOR, 11), # <<<<<<<<<<<<<< * "bior1.3": (BIOR, 13), * "bior1.5": (BIOR, 15), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(BIOR); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_11); __Pyx_GIVEREF(__pyx_int_11); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_11); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_bior1_1, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":113 * * "bior1.1": (BIOR, 11), * "bior1.3": (BIOR, 13), # <<<<<<<<<<<<<< * "bior1.5": (BIOR, 15), * "bior2.2": (BIOR, 22), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(BIOR); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_13); __Pyx_GIVEREF(__pyx_int_13); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_13); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_bior1_3, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":114 * "bior1.1": (BIOR, 11), * "bior1.3": (BIOR, 13), * "bior1.5": (BIOR, 15), # <<<<<<<<<<<<<< * "bior2.2": (BIOR, 22), * "bior2.4": (BIOR, 24), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(BIOR); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_15); __Pyx_GIVEREF(__pyx_int_15); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_15); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_bior1_5, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":115 * "bior1.3": (BIOR, 13), * "bior1.5": (BIOR, 15), * "bior2.2": (BIOR, 22), # <<<<<<<<<<<<<< * "bior2.4": (BIOR, 24), * "bior2.6": (BIOR, 26), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(BIOR); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 115, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 115, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_22); __Pyx_GIVEREF(__pyx_int_22); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_22); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_bior2_2, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":116 * "bior1.5": (BIOR, 15), * "bior2.2": (BIOR, 22), * "bior2.4": (BIOR, 24), # <<<<<<<<<<<<<< * "bior2.6": (BIOR, 26), * "bior2.8": (BIOR, 28), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(BIOR); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_24); __Pyx_GIVEREF(__pyx_int_24); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_24); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_bior2_4, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":117 * "bior2.2": (BIOR, 22), * "bior2.4": (BIOR, 24), * "bior2.6": (BIOR, 26), # <<<<<<<<<<<<<< * "bior2.8": (BIOR, 28), * "bior3.1": (BIOR, 31), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(BIOR); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_26); __Pyx_GIVEREF(__pyx_int_26); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_26); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_bior2_6, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":118 * "bior2.4": (BIOR, 24), * "bior2.6": (BIOR, 26), * "bior2.8": (BIOR, 28), # <<<<<<<<<<<<<< * "bior3.1": (BIOR, 31), * "bior3.3": (BIOR, 33), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(BIOR); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_28); __Pyx_GIVEREF(__pyx_int_28); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_28); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_bior2_8, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":119 * "bior2.6": (BIOR, 26), * "bior2.8": (BIOR, 28), * "bior3.1": (BIOR, 31), # <<<<<<<<<<<<<< * "bior3.3": (BIOR, 33), * "bior3.5": (BIOR, 35), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(BIOR); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_31); __Pyx_GIVEREF(__pyx_int_31); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_31); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_bior3_1, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":120 * "bior2.8": (BIOR, 28), * "bior3.1": (BIOR, 31), * "bior3.3": (BIOR, 33), # <<<<<<<<<<<<<< * "bior3.5": (BIOR, 35), * "bior3.7": (BIOR, 37), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(BIOR); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_33); __Pyx_GIVEREF(__pyx_int_33); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_33); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_bior3_3, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":121 * "bior3.1": (BIOR, 31), * "bior3.3": (BIOR, 33), * "bior3.5": (BIOR, 35), # <<<<<<<<<<<<<< * "bior3.7": (BIOR, 37), * "bior3.9": (BIOR, 39), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(BIOR); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_35); __Pyx_GIVEREF(__pyx_int_35); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_35); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_bior3_5, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":122 * "bior3.3": (BIOR, 33), * "bior3.5": (BIOR, 35), * "bior3.7": (BIOR, 37), # <<<<<<<<<<<<<< * "bior3.9": (BIOR, 39), * "bior4.4": (BIOR, 44), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(BIOR); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_37); __Pyx_GIVEREF(__pyx_int_37); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_37); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_bior3_7, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":123 * "bior3.5": (BIOR, 35), * "bior3.7": (BIOR, 37), * "bior3.9": (BIOR, 39), # <<<<<<<<<<<<<< * "bior4.4": (BIOR, 44), * "bior5.5": (BIOR, 55), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(BIOR); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_39); __Pyx_GIVEREF(__pyx_int_39); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_39); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_bior3_9, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":124 * "bior3.7": (BIOR, 37), * "bior3.9": (BIOR, 39), * "bior4.4": (BIOR, 44), # <<<<<<<<<<<<<< * "bior5.5": (BIOR, 55), * "bior6.8": (BIOR, 68), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(BIOR); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_44); __Pyx_GIVEREF(__pyx_int_44); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_44); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_bior4_4, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":125 * "bior3.9": (BIOR, 39), * "bior4.4": (BIOR, 44), * "bior5.5": (BIOR, 55), # <<<<<<<<<<<<<< * "bior6.8": (BIOR, 68), * */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(BIOR); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_55); __Pyx_GIVEREF(__pyx_int_55); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_55); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_bior5_5, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":126 * "bior4.4": (BIOR, 44), * "bior5.5": (BIOR, 55), * "bior6.8": (BIOR, 68), # <<<<<<<<<<<<<< * * "rbio1.1": (RBIO, 11), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(BIOR); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_68); __Pyx_GIVEREF(__pyx_int_68); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_68); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_bior6_8, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":128 * "bior6.8": (BIOR, 68), * * "rbio1.1": (RBIO, 11), # <<<<<<<<<<<<<< * "rbio1.3": (RBIO, 13), * "rbio1.5": (RBIO, 15), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(RBIO); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_11); __Pyx_GIVEREF(__pyx_int_11); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_11); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_rbio1_1, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":129 * * "rbio1.1": (RBIO, 11), * "rbio1.3": (RBIO, 13), # <<<<<<<<<<<<<< * "rbio1.5": (RBIO, 15), * "rbio2.2": (RBIO, 22), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(RBIO); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_13); __Pyx_GIVEREF(__pyx_int_13); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_13); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_rbio1_3, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":130 * "rbio1.1": (RBIO, 11), * "rbio1.3": (RBIO, 13), * "rbio1.5": (RBIO, 15), # <<<<<<<<<<<<<< * "rbio2.2": (RBIO, 22), * "rbio2.4": (RBIO, 24), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(RBIO); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_15); __Pyx_GIVEREF(__pyx_int_15); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_15); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_rbio1_5, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":131 * "rbio1.3": (RBIO, 13), * "rbio1.5": (RBIO, 15), * "rbio2.2": (RBIO, 22), # <<<<<<<<<<<<<< * "rbio2.4": (RBIO, 24), * "rbio2.6": (RBIO, 26), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(RBIO); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_22); __Pyx_GIVEREF(__pyx_int_22); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_22); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_rbio2_2, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":132 * "rbio1.5": (RBIO, 15), * "rbio2.2": (RBIO, 22), * "rbio2.4": (RBIO, 24), # <<<<<<<<<<<<<< * "rbio2.6": (RBIO, 26), * "rbio2.8": (RBIO, 28), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(RBIO); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_24); __Pyx_GIVEREF(__pyx_int_24); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_24); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_rbio2_4, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":133 * "rbio2.2": (RBIO, 22), * "rbio2.4": (RBIO, 24), * "rbio2.6": (RBIO, 26), # <<<<<<<<<<<<<< * "rbio2.8": (RBIO, 28), * "rbio3.1": (RBIO, 31), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(RBIO); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_26); __Pyx_GIVEREF(__pyx_int_26); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_26); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_rbio2_6, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":134 * "rbio2.4": (RBIO, 24), * "rbio2.6": (RBIO, 26), * "rbio2.8": (RBIO, 28), # <<<<<<<<<<<<<< * "rbio3.1": (RBIO, 31), * "rbio3.3": (RBIO, 33), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(RBIO); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_28); __Pyx_GIVEREF(__pyx_int_28); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_28); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_rbio2_8, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":135 * "rbio2.6": (RBIO, 26), * "rbio2.8": (RBIO, 28), * "rbio3.1": (RBIO, 31), # <<<<<<<<<<<<<< * "rbio3.3": (RBIO, 33), * "rbio3.5": (RBIO, 35), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(RBIO); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_31); __Pyx_GIVEREF(__pyx_int_31); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_31); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_rbio3_1, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":136 * "rbio2.8": (RBIO, 28), * "rbio3.1": (RBIO, 31), * "rbio3.3": (RBIO, 33), # <<<<<<<<<<<<<< * "rbio3.5": (RBIO, 35), * "rbio3.7": (RBIO, 37), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(RBIO); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_33); __Pyx_GIVEREF(__pyx_int_33); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_33); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_rbio3_3, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":137 * "rbio3.1": (RBIO, 31), * "rbio3.3": (RBIO, 33), * "rbio3.5": (RBIO, 35), # <<<<<<<<<<<<<< * "rbio3.7": (RBIO, 37), * "rbio3.9": (RBIO, 39), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(RBIO); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_35); __Pyx_GIVEREF(__pyx_int_35); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_35); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_rbio3_5, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":138 * "rbio3.3": (RBIO, 33), * "rbio3.5": (RBIO, 35), * "rbio3.7": (RBIO, 37), # <<<<<<<<<<<<<< * "rbio3.9": (RBIO, 39), * "rbio4.4": (RBIO, 44), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(RBIO); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_37); __Pyx_GIVEREF(__pyx_int_37); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_37); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_rbio3_7, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":139 * "rbio3.5": (RBIO, 35), * "rbio3.7": (RBIO, 37), * "rbio3.9": (RBIO, 39), # <<<<<<<<<<<<<< * "rbio4.4": (RBIO, 44), * "rbio5.5": (RBIO, 55), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(RBIO); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_39); __Pyx_GIVEREF(__pyx_int_39); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_39); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_rbio3_9, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":140 * "rbio3.7": (RBIO, 37), * "rbio3.9": (RBIO, 39), * "rbio4.4": (RBIO, 44), # <<<<<<<<<<<<<< * "rbio5.5": (RBIO, 55), * "rbio6.8": (RBIO, 68), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(RBIO); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_44); __Pyx_GIVEREF(__pyx_int_44); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_44); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_rbio4_4, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":141 * "rbio3.9": (RBIO, 39), * "rbio4.4": (RBIO, 44), * "rbio5.5": (RBIO, 55), # <<<<<<<<<<<<<< * "rbio6.8": (RBIO, 68), * */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(RBIO); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_55); __Pyx_GIVEREF(__pyx_int_55); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_55); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_rbio5_5, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":142 * "rbio4.4": (RBIO, 44), * "rbio5.5": (RBIO, 55), * "rbio6.8": (RBIO, 68), # <<<<<<<<<<<<<< * * "dmey": (DMEY, 0), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(RBIO); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 142, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_68); __Pyx_GIVEREF(__pyx_int_68); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_68); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_rbio6_8, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":144 * "rbio6.8": (RBIO, 68), * * "dmey": (DMEY, 0), # <<<<<<<<<<<<<< * * "gaus1": (GAUS, 1), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(DMEY); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_0); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_dmey, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":146 * "dmey": (DMEY, 0), * * "gaus1": (GAUS, 1), # <<<<<<<<<<<<<< * "gaus2": (GAUS, 2), * "gaus3": (GAUS, 3), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(GAUS); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_gaus1, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":147 * * "gaus1": (GAUS, 1), * "gaus2": (GAUS, 2), # <<<<<<<<<<<<<< * "gaus3": (GAUS, 3), * "gaus4": (GAUS, 4), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(GAUS); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_2); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_gaus2, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":148 * "gaus1": (GAUS, 1), * "gaus2": (GAUS, 2), * "gaus3": (GAUS, 3), # <<<<<<<<<<<<<< * "gaus4": (GAUS, 4), * "gaus5": (GAUS, 5), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(GAUS); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_3); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_gaus3, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":149 * "gaus2": (GAUS, 2), * "gaus3": (GAUS, 3), * "gaus4": (GAUS, 4), # <<<<<<<<<<<<<< * "gaus5": (GAUS, 5), * "gaus6": (GAUS, 6), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(GAUS); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_4); __Pyx_GIVEREF(__pyx_int_4); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_4); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_gaus4, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":150 * "gaus3": (GAUS, 3), * "gaus4": (GAUS, 4), * "gaus5": (GAUS, 5), # <<<<<<<<<<<<<< * "gaus6": (GAUS, 6), * "gaus7": (GAUS, 7), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(GAUS); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_5); __Pyx_GIVEREF(__pyx_int_5); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_5); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_gaus5, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":151 * "gaus4": (GAUS, 4), * "gaus5": (GAUS, 5), * "gaus6": (GAUS, 6), # <<<<<<<<<<<<<< * "gaus7": (GAUS, 7), * "gaus8": (GAUS, 8), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(GAUS); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_6); __Pyx_GIVEREF(__pyx_int_6); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_6); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_gaus6, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":152 * "gaus5": (GAUS, 5), * "gaus6": (GAUS, 6), * "gaus7": (GAUS, 7), # <<<<<<<<<<<<<< * "gaus8": (GAUS, 8), * */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(GAUS); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_7); __Pyx_GIVEREF(__pyx_int_7); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_7); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_gaus7, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":153 * "gaus6": (GAUS, 6), * "gaus7": (GAUS, 7), * "gaus8": (GAUS, 8), # <<<<<<<<<<<<<< * * "mexh": (MEXH, 0), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(GAUS); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_8); __Pyx_GIVEREF(__pyx_int_8); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_8); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_gaus8, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":155 * "gaus8": (GAUS, 8), * * "mexh": (MEXH, 0), # <<<<<<<<<<<<<< * * "morl": (MORL, 0), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(MEXH); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 155, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 155, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_0); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_mexh, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":157 * "mexh": (MEXH, 0), * * "morl": (MORL, 0), # <<<<<<<<<<<<<< * * "cgau1": (CGAU, 1), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(MORL); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 157, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 157, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_0); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_morl, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":159 * "morl": (MORL, 0), * * "cgau1": (CGAU, 1), # <<<<<<<<<<<<<< * "cgau2": (CGAU, 2), * "cgau3": (CGAU, 3), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(CGAU); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_cgau1, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":160 * * "cgau1": (CGAU, 1), * "cgau2": (CGAU, 2), # <<<<<<<<<<<<<< * "cgau3": (CGAU, 3), * "cgau4": (CGAU, 4), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(CGAU); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_2); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_cgau2, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":161 * "cgau1": (CGAU, 1), * "cgau2": (CGAU, 2), * "cgau3": (CGAU, 3), # <<<<<<<<<<<<<< * "cgau4": (CGAU, 4), * "cgau5": (CGAU, 5), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(CGAU); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_3); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_cgau3, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":162 * "cgau2": (CGAU, 2), * "cgau3": (CGAU, 3), * "cgau4": (CGAU, 4), # <<<<<<<<<<<<<< * "cgau5": (CGAU, 5), * "cgau6": (CGAU, 6), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(CGAU); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_4); __Pyx_GIVEREF(__pyx_int_4); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_4); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_cgau4, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":163 * "cgau3": (CGAU, 3), * "cgau4": (CGAU, 4), * "cgau5": (CGAU, 5), # <<<<<<<<<<<<<< * "cgau6": (CGAU, 6), * "cgau7": (CGAU, 7), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(CGAU); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_5); __Pyx_GIVEREF(__pyx_int_5); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_5); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_cgau5, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":164 * "cgau4": (CGAU, 4), * "cgau5": (CGAU, 5), * "cgau6": (CGAU, 6), # <<<<<<<<<<<<<< * "cgau7": (CGAU, 7), * "cgau8": (CGAU, 8), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(CGAU); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_6); __Pyx_GIVEREF(__pyx_int_6); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_6); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_cgau6, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":165 * "cgau5": (CGAU, 5), * "cgau6": (CGAU, 6), * "cgau7": (CGAU, 7), # <<<<<<<<<<<<<< * "cgau8": (CGAU, 8), * */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(CGAU); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_7); __Pyx_GIVEREF(__pyx_int_7); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_7); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_cgau7, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":166 * "cgau6": (CGAU, 6), * "cgau7": (CGAU, 7), * "cgau8": (CGAU, 8), # <<<<<<<<<<<<<< * * "shan": (SHAN, 0), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(CGAU); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_8); __Pyx_GIVEREF(__pyx_int_8); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_8); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_cgau8, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":168 * "cgau8": (CGAU, 8), * * "shan": (SHAN, 0), # <<<<<<<<<<<<<< * * "fbsp": (FBSP, 0), */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(SHAN); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_0); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_shan, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/wavelets_list.pxi":170 * "shan": (SHAN, 0), * * "fbsp": (FBSP, 0), # <<<<<<<<<<<<<< * * "cmor": (CMOR, 0), */ __pyx_t_3 = __Pyx_PyInt_From_WAVELET_NAME(FBSP); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_0); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_fbsp, __pyx_t_1) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/wavelets_list.pxi":172 * "fbsp": (FBSP, 0), * * "cmor": (CMOR, 0), # <<<<<<<<<<<<<< * } * */ __pyx_t_1 = __Pyx_PyInt_From_WAVELET_NAME(CMOR); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_0); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_u_cmor, __pyx_t_3) < 0) __PYX_ERR(4, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XGOTREF(__pyx_v_4pywt_11_extensions_5_pywt___wname_to_code); __Pyx_DECREF_SET(__pyx_v_4pywt_11_extensions_5_pywt___wname_to_code, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/wavelets_list.pxi":178 * * cdef __wfamily_list_short, __wfamily_list_long * __wfamily_list_short = [ # <<<<<<<<<<<<<< * "haar", "db", "sym", "coif", "bior", "rbio", "dmey", "gaus", "mexh", * "morl", "cgau", "shan", "fbsp", "cmor"] */ __pyx_t_2 = PyList_New(14); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_u_haar); __Pyx_GIVEREF(__pyx_n_u_haar); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_u_haar); __Pyx_INCREF(__pyx_n_u_db); __Pyx_GIVEREF(__pyx_n_u_db); PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_db); __Pyx_INCREF(__pyx_n_u_sym); __Pyx_GIVEREF(__pyx_n_u_sym); PyList_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_sym); __Pyx_INCREF(__pyx_n_u_coif); __Pyx_GIVEREF(__pyx_n_u_coif); PyList_SET_ITEM(__pyx_t_2, 3, __pyx_n_u_coif); __Pyx_INCREF(__pyx_n_u_bior); __Pyx_GIVEREF(__pyx_n_u_bior); PyList_SET_ITEM(__pyx_t_2, 4, __pyx_n_u_bior); __Pyx_INCREF(__pyx_n_u_rbio); __Pyx_GIVEREF(__pyx_n_u_rbio); PyList_SET_ITEM(__pyx_t_2, 5, __pyx_n_u_rbio); __Pyx_INCREF(__pyx_n_u_dmey); __Pyx_GIVEREF(__pyx_n_u_dmey); PyList_SET_ITEM(__pyx_t_2, 6, __pyx_n_u_dmey); __Pyx_INCREF(__pyx_n_u_gaus); __Pyx_GIVEREF(__pyx_n_u_gaus); PyList_SET_ITEM(__pyx_t_2, 7, __pyx_n_u_gaus); __Pyx_INCREF(__pyx_n_u_mexh); __Pyx_GIVEREF(__pyx_n_u_mexh); PyList_SET_ITEM(__pyx_t_2, 8, __pyx_n_u_mexh); __Pyx_INCREF(__pyx_n_u_morl); __Pyx_GIVEREF(__pyx_n_u_morl); PyList_SET_ITEM(__pyx_t_2, 9, __pyx_n_u_morl); __Pyx_INCREF(__pyx_n_u_cgau); __Pyx_GIVEREF(__pyx_n_u_cgau); PyList_SET_ITEM(__pyx_t_2, 10, __pyx_n_u_cgau); __Pyx_INCREF(__pyx_n_u_shan); __Pyx_GIVEREF(__pyx_n_u_shan); PyList_SET_ITEM(__pyx_t_2, 11, __pyx_n_u_shan); __Pyx_INCREF(__pyx_n_u_fbsp); __Pyx_GIVEREF(__pyx_n_u_fbsp); PyList_SET_ITEM(__pyx_t_2, 12, __pyx_n_u_fbsp); __Pyx_INCREF(__pyx_n_u_cmor); __Pyx_GIVEREF(__pyx_n_u_cmor); PyList_SET_ITEM(__pyx_t_2, 13, __pyx_n_u_cmor); __Pyx_XGOTREF(__pyx_v_4pywt_11_extensions_5_pywt___wfamily_list_short); __Pyx_DECREF_SET(__pyx_v_4pywt_11_extensions_5_pywt___wfamily_list_short, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/wavelets_list.pxi":181 * "haar", "db", "sym", "coif", "bior", "rbio", "dmey", "gaus", "mexh", * "morl", "cgau", "shan", "fbsp", "cmor"] * __wfamily_list_long = [ # <<<<<<<<<<<<<< * "Haar", "Daubechies", "Symlets", "Coiflets", "Biorthogonal", * "Reverse biorthogonal", "Discrete Meyer (FIR Approximation)", "Gaussian", */ __pyx_t_2 = PyList_New(14); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_u_Haar); __Pyx_GIVEREF(__pyx_n_u_Haar); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_u_Haar); __Pyx_INCREF(__pyx_n_u_Daubechies); __Pyx_GIVEREF(__pyx_n_u_Daubechies); PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_Daubechies); __Pyx_INCREF(__pyx_n_u_Symlets); __Pyx_GIVEREF(__pyx_n_u_Symlets); PyList_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_Symlets); __Pyx_INCREF(__pyx_n_u_Coiflets); __Pyx_GIVEREF(__pyx_n_u_Coiflets); PyList_SET_ITEM(__pyx_t_2, 3, __pyx_n_u_Coiflets); __Pyx_INCREF(__pyx_n_u_Biorthogonal); __Pyx_GIVEREF(__pyx_n_u_Biorthogonal); PyList_SET_ITEM(__pyx_t_2, 4, __pyx_n_u_Biorthogonal); __Pyx_INCREF(__pyx_kp_u_Reverse_biorthogonal); __Pyx_GIVEREF(__pyx_kp_u_Reverse_biorthogonal); PyList_SET_ITEM(__pyx_t_2, 5, __pyx_kp_u_Reverse_biorthogonal); __Pyx_INCREF(__pyx_kp_u_Discrete_Meyer_FIR_Approximation); __Pyx_GIVEREF(__pyx_kp_u_Discrete_Meyer_FIR_Approximation); PyList_SET_ITEM(__pyx_t_2, 6, __pyx_kp_u_Discrete_Meyer_FIR_Approximation); __Pyx_INCREF(__pyx_n_u_Gaussian); __Pyx_GIVEREF(__pyx_n_u_Gaussian); PyList_SET_ITEM(__pyx_t_2, 7, __pyx_n_u_Gaussian); __Pyx_INCREF(__pyx_kp_u_Mexican_hat_wavelet); __Pyx_GIVEREF(__pyx_kp_u_Mexican_hat_wavelet); PyList_SET_ITEM(__pyx_t_2, 8, __pyx_kp_u_Mexican_hat_wavelet); __Pyx_INCREF(__pyx_kp_u_Morlet_wavelet); __Pyx_GIVEREF(__pyx_kp_u_Morlet_wavelet); PyList_SET_ITEM(__pyx_t_2, 9, __pyx_kp_u_Morlet_wavelet); __Pyx_INCREF(__pyx_kp_u_Complex_Gaussian_wavelets); __Pyx_GIVEREF(__pyx_kp_u_Complex_Gaussian_wavelets); PyList_SET_ITEM(__pyx_t_2, 10, __pyx_kp_u_Complex_Gaussian_wavelets); __Pyx_INCREF(__pyx_kp_u_Shannon_wavelets); __Pyx_GIVEREF(__pyx_kp_u_Shannon_wavelets); PyList_SET_ITEM(__pyx_t_2, 11, __pyx_kp_u_Shannon_wavelets); __Pyx_INCREF(__pyx_kp_u_Frequency_B_Spline_wavelets); __Pyx_GIVEREF(__pyx_kp_u_Frequency_B_Spline_wavelets); PyList_SET_ITEM(__pyx_t_2, 12, __pyx_kp_u_Frequency_B_Spline_wavelets); __Pyx_INCREF(__pyx_kp_u_Complex_Morlet_wavelets); __Pyx_GIVEREF(__pyx_kp_u_Complex_Morlet_wavelets); PyList_SET_ITEM(__pyx_t_2, 13, __pyx_kp_u_Complex_Morlet_wavelets); __Pyx_XGOTREF(__pyx_v_4pywt_11_extensions_5_pywt___wfamily_list_long); __Pyx_DECREF_SET(__pyx_v_4pywt_11_extensions_5_pywt___wfamily_list_long, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_pywt.pyx":184 * * * def wavelist(family=None, kind='all'): # <<<<<<<<<<<<<< * """ * wavelist(family=None, kind='all') */ __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pywt_11_extensions_5_pywt_1wavelist, NULL, __pyx_n_s_pywt__extensions__pywt); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_wavelist, __pyx_t_2) < 0) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_pywt.pyx":256 * * * def families(int short=True): # <<<<<<<<<<<<<< * """ * families(short=True) */ __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pywt_11_extensions_5_pywt_3families, NULL, __pyx_n_s_pywt__extensions__pywt); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_families, __pyx_t_2) < 0) __PYX_ERR(0, 256, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_pywt.pyx":303 * * * def DiscreteContinuousWavelet(name=u"", object filter_bank=None): # <<<<<<<<<<<<<< * """ * DiscreteContinuousWavelet(name, filter_bank=None) returns a */ __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pywt_11_extensions_5_pywt_5DiscreteContinuousWavelet, NULL, __pyx_n_s_pywt__extensions__pywt); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_DiscreteContinuousWavelet, __pyx_t_2) < 0) __PYX_ERR(0, 303, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_pywt.pyx":1012 * * * def wavelet_from_object(wavelet): # <<<<<<<<<<<<<< * return c_wavelet_from_object(wavelet) * */ __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pywt_11_extensions_5_pywt_7wavelet_from_object, NULL, __pyx_n_s_pywt__extensions__pywt); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1012, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_wavelet_from_object, __pyx_t_2) < 0) __PYX_ERR(0, 1012, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_pywt.pyx":1044 * * # TODO: Can this be replaced by the take parameter of upcoef? Or vice-versa? * def keep(arr, keep_length): # <<<<<<<<<<<<<< * length = len(arr) * if keep_length < length: */ __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4pywt_11_extensions_5_pywt_11keep, NULL, __pyx_n_s_pywt__extensions__pywt); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_keep, __pyx_t_2) < 0) __PYX_ERR(0, 1044, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_pywt.pyx":1 * # Copyright (c) 2006-2012 Filip Wasilewski # <<<<<<<<<<<<<< * # Copyright (c) 2012-2018 The PyWavelets Developers * # */ __pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_wavelist_line_184, __pyx_kp_u_wavelist_family_None_kind_all_R) < 0) __PYX_ERR(0, 1, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_families_line_256, __pyx_kp_u_families_short_True_Returns_a_l) < 0) __PYX_ERR(0, 1, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_Wavelet_wavefun_line_547, __pyx_kp_u_wavefun_self_level_8_Calculates) < 0) __PYX_ERR(0, 1, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_2, __pyx_kp_u_ContinuousWavelet_wavefun_line_8, __pyx_kp_u_wavefun_self_level_8_length_Non) < 0) __PYX_ERR(0, 1, __pyx_L1_error) if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_2) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":209 * info.obj = self * * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") # <<<<<<<<<<<<<< * * def __dealloc__(array self): */ __pyx_t_2 = __pyx_capsule_create(((void *)(&__pyx_array_getbuffer)), ((char *)"getbuffer(obj, view, flags)")); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem((PyObject *)__pyx_array_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_2) < 0) __PYX_ERR(1, 209, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; PyType_Modified(__pyx_array_type); /* "View.MemoryView":286 * return self.name * * cdef generic = Enum("") # <<<<<<<<<<<<<< * cdef strided = Enum("") # default * cdef indirect = Enum("") */ __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__75, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XGOTREF(generic); __Pyx_DECREF_SET(generic, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":287 * * cdef generic = Enum("") * cdef strided = Enum("") # default # <<<<<<<<<<<<<< * cdef indirect = Enum("") * */ __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__76, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XGOTREF(strided); __Pyx_DECREF_SET(strided, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":288 * cdef generic = Enum("") * cdef strided = Enum("") # default * cdef indirect = Enum("") # <<<<<<<<<<<<<< * * */ __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__77, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XGOTREF(indirect); __Pyx_DECREF_SET(indirect, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":291 * * * cdef contiguous = Enum("") # <<<<<<<<<<<<<< * cdef indirect_contiguous = Enum("") * */ __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__78, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XGOTREF(contiguous); __Pyx_DECREF_SET(contiguous, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":292 * * cdef contiguous = Enum("") * cdef indirect_contiguous = Enum("") # <<<<<<<<<<<<<< * * */ __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__79, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XGOTREF(indirect_contiguous); __Pyx_DECREF_SET(indirect_contiguous, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":316 * * DEF THREAD_LOCKS_PREALLOCATED = 8 * cdef int __pyx_memoryview_thread_locks_used = 0 # <<<<<<<<<<<<<< * cdef PyThread_type_lock[THREAD_LOCKS_PREALLOCATED] __pyx_memoryview_thread_locks = [ * PyThread_allocate_lock(), */ __pyx_memoryview_thread_locks_used = 0; /* "View.MemoryView":317 * DEF THREAD_LOCKS_PREALLOCATED = 8 * cdef int __pyx_memoryview_thread_locks_used = 0 * cdef PyThread_type_lock[THREAD_LOCKS_PREALLOCATED] __pyx_memoryview_thread_locks = [ # <<<<<<<<<<<<<< * PyThread_allocate_lock(), * PyThread_allocate_lock(), */ __pyx_t_5[0] = PyThread_allocate_lock(); __pyx_t_5[1] = PyThread_allocate_lock(); __pyx_t_5[2] = PyThread_allocate_lock(); __pyx_t_5[3] = PyThread_allocate_lock(); __pyx_t_5[4] = PyThread_allocate_lock(); __pyx_t_5[5] = PyThread_allocate_lock(); __pyx_t_5[6] = PyThread_allocate_lock(); __pyx_t_5[7] = PyThread_allocate_lock(); memcpy(&(__pyx_memoryview_thread_locks[0]), __pyx_t_5, sizeof(__pyx_memoryview_thread_locks[0]) * (8)); /* "View.MemoryView":549 * info.obj = self * * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") # <<<<<<<<<<<<<< * * */ __pyx_t_2 = __pyx_capsule_create(((void *)(&__pyx_memoryview_getbuffer)), ((char *)"getbuffer(obj, view, flags)")); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem((PyObject *)__pyx_memoryview_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_2) < 0) __PYX_ERR(1, 549, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; PyType_Modified(__pyx_memoryview_type); /* "View.MemoryView":995 * return self.from_object * * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") # <<<<<<<<<<<<<< * * */ __pyx_t_2 = __pyx_capsule_create(((void *)(&__pyx_memoryview_getbuffer)), ((char *)"getbuffer(obj, view, flags)")); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem((PyObject *)__pyx_memoryviewslice_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_2) < 0) __PYX_ERR(1, 995, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; PyType_Modified(__pyx_memoryviewslice_type); /* "(tree fragment)":1 * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_PickleError * cdef object __pyx_result */ __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_15View_dot_MemoryView_1__pyx_unpickle_Enum, NULL, __pyx_n_s_View_MemoryView); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Enum, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "BufferFormatFromTypeInfo":1464 * * @cname('__pyx_format_from_typeinfo') * cdef bytes format_from_typeinfo(__Pyx_TypeInfo *type): # <<<<<<<<<<<<<< * cdef __Pyx_StructField *field * cdef __pyx_typeinfo_string fmt */ /*--- Wrapped vars code ---*/ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); if (__pyx_m) { if (__pyx_d) { __Pyx_AddTraceback("init pywt._extensions._pywt", __pyx_clineno, __pyx_lineno, __pyx_filename); } Py_CLEAR(__pyx_m); } else if (!PyErr_Occurred()) { PyErr_SetString(PyExc_ImportError, "init pywt._extensions._pywt"); } __pyx_L0:; __Pyx_RefNannyFinishContext(); #if CYTHON_PEP489_MULTI_PHASE_INIT return (__pyx_m != NULL) ? 0 : -1; #elif PY_MAJOR_VERSION >= 3 return __pyx_m; #else return; #endif } /* --- Runtime support code --- */ /* Refnanny */ #if CYTHON_REFNANNY static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { PyObject *m = NULL, *p = NULL; void *r = NULL; m = PyImport_ImportModule(modname); if (!m) goto end; p = PyObject_GetAttrString(m, "RefNannyAPI"); if (!p) goto end; r = PyLong_AsVoidPtr(p); end: Py_XDECREF(p); Py_XDECREF(m); return (__Pyx_RefNannyAPIStruct *)r; } #endif /* PyObjectGetAttrStr */ #if CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) { PyTypeObject* tp = Py_TYPE(obj); if (likely(tp->tp_getattro)) return tp->tp_getattro(obj, attr_name); #if PY_MAJOR_VERSION < 3 if (likely(tp->tp_getattr)) return tp->tp_getattr(obj, PyString_AS_STRING(attr_name)); #endif return PyObject_GetAttr(obj, attr_name); } #endif /* GetBuiltinName */ static PyObject *__Pyx_GetBuiltinName(PyObject *name) { PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name); if (unlikely(!result)) { PyErr_Format(PyExc_NameError, #if PY_MAJOR_VERSION >= 3 "name '%U' is not defined", name); #else "name '%.200s' is not defined", PyString_AS_STRING(name)); #endif } return result; } /* PyObjectCall */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { PyObject *result; ternaryfunc call = func->ob_type->tp_call; if (unlikely(!call)) return PyObject_Call(func, arg, kw); if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) return NULL; result = (*call)(func, arg, kw); Py_LeaveRecursiveCall(); if (unlikely(!result) && unlikely(!PyErr_Occurred())) { PyErr_SetString( PyExc_SystemError, "NULL result without error in PyObject_Call"); } return result; } #endif /* PyErrFetchRestore */ #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; tmp_type = tstate->curexc_type; tmp_value = tstate->curexc_value; tmp_tb = tstate->curexc_traceback; tstate->curexc_type = type; tstate->curexc_value = value; tstate->curexc_traceback = tb; Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); } static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { *type = tstate->curexc_type; *value = tstate->curexc_value; *tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; } #endif /* RaiseException */ #if PY_MAJOR_VERSION < 3 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, CYTHON_UNUSED PyObject *cause) { __Pyx_PyThreadState_declare Py_XINCREF(type); if (!value || value == Py_None) value = NULL; else Py_INCREF(value); if (!tb || tb == Py_None) tb = NULL; else { Py_INCREF(tb); if (!PyTraceBack_Check(tb)) { PyErr_SetString(PyExc_TypeError, "raise: arg 3 must be a traceback or None"); goto raise_error; } } if (PyType_Check(type)) { #if CYTHON_COMPILING_IN_PYPY if (!value) { Py_INCREF(Py_None); value = Py_None; } #endif PyErr_NormalizeException(&type, &value, &tb); } else { if (value) { PyErr_SetString(PyExc_TypeError, "instance exception may not have a separate value"); goto raise_error; } value = type; type = (PyObject*) Py_TYPE(type); Py_INCREF(type); if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { PyErr_SetString(PyExc_TypeError, "raise: exception class must be a subclass of BaseException"); goto raise_error; } } __Pyx_PyThreadState_assign __Pyx_ErrRestore(type, value, tb); return; raise_error: Py_XDECREF(value); Py_XDECREF(type); Py_XDECREF(tb); return; } #else static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { PyObject* owned_instance = NULL; if (tb == Py_None) { tb = 0; } else if (tb && !PyTraceBack_Check(tb)) { PyErr_SetString(PyExc_TypeError, "raise: arg 3 must be a traceback or None"); goto bad; } if (value == Py_None) value = 0; if (PyExceptionInstance_Check(type)) { if (value) { PyErr_SetString(PyExc_TypeError, "instance exception may not have a separate value"); goto bad; } value = type; type = (PyObject*) Py_TYPE(value); } else if (PyExceptionClass_Check(type)) { PyObject *instance_class = NULL; if (value && PyExceptionInstance_Check(value)) { instance_class = (PyObject*) Py_TYPE(value); if (instance_class != type) { int is_subclass = PyObject_IsSubclass(instance_class, type); if (!is_subclass) { instance_class = NULL; } else if (unlikely(is_subclass == -1)) { goto bad; } else { type = instance_class; } } } if (!instance_class) { PyObject *args; if (!value) args = PyTuple_New(0); else if (PyTuple_Check(value)) { Py_INCREF(value); args = value; } else args = PyTuple_Pack(1, value); if (!args) goto bad; owned_instance = PyObject_Call(type, args, NULL); Py_DECREF(args); if (!owned_instance) goto bad; value = owned_instance; if (!PyExceptionInstance_Check(value)) { PyErr_Format(PyExc_TypeError, "calling %R should have returned an instance of " "BaseException, not %R", type, Py_TYPE(value)); goto bad; } } } else { PyErr_SetString(PyExc_TypeError, "raise: exception class must be a subclass of BaseException"); goto bad; } if (cause) { PyObject *fixed_cause; if (cause == Py_None) { fixed_cause = NULL; } else if (PyExceptionClass_Check(cause)) { fixed_cause = PyObject_CallObject(cause, NULL); if (fixed_cause == NULL) goto bad; } else if (PyExceptionInstance_Check(cause)) { fixed_cause = cause; Py_INCREF(fixed_cause); } else { PyErr_SetString(PyExc_TypeError, "exception causes must derive from " "BaseException"); goto bad; } PyException_SetCause(value, fixed_cause); } PyErr_SetObject(type, value); if (tb) { #if CYTHON_COMPILING_IN_PYPY PyObject *tmp_type, *tmp_value, *tmp_tb; PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb); Py_INCREF(tb); PyErr_Restore(tmp_type, tmp_value, tb); Py_XDECREF(tmp_tb); #else PyThreadState *tstate = __Pyx_PyThreadState_Current; PyObject* tmp_tb = tstate->curexc_traceback; if (tb != tmp_tb) { Py_INCREF(tb); tstate->curexc_traceback = tb; Py_XDECREF(tmp_tb); } #endif } bad: Py_XDECREF(owned_instance); return; } #endif /* WriteUnraisableException */ static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno, CYTHON_UNUSED int lineno, CYTHON_UNUSED const char *filename, int full_traceback, CYTHON_UNUSED int nogil) { PyObject *old_exc, *old_val, *old_tb; PyObject *ctx; __Pyx_PyThreadState_declare #ifdef WITH_THREAD PyGILState_STATE state; if (nogil) state = PyGILState_Ensure(); #ifdef _MSC_VER else state = (PyGILState_STATE)-1; #endif #endif __Pyx_PyThreadState_assign __Pyx_ErrFetch(&old_exc, &old_val, &old_tb); if (full_traceback) { Py_XINCREF(old_exc); Py_XINCREF(old_val); Py_XINCREF(old_tb); __Pyx_ErrRestore(old_exc, old_val, old_tb); PyErr_PrintEx(1); } #if PY_MAJOR_VERSION < 3 ctx = PyString_FromString(name); #else ctx = PyUnicode_FromString(name); #endif __Pyx_ErrRestore(old_exc, old_val, old_tb); if (!ctx) { PyErr_WriteUnraisable(Py_None); } else { PyErr_WriteUnraisable(ctx); Py_DECREF(ctx); } #ifdef WITH_THREAD if (nogil) PyGILState_Release(state); #endif } /* RaiseArgTupleInvalid */ static void __Pyx_RaiseArgtupleInvalid( const char* func_name, int exact, Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found) { Py_ssize_t num_expected; const char *more_or_less; if (num_found < num_min) { num_expected = num_min; more_or_less = "at least"; } else { num_expected = num_max; more_or_less = "at most"; } if (exact) { more_or_less = "exactly"; } PyErr_Format(PyExc_TypeError, "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)", func_name, more_or_less, num_expected, (num_expected == 1) ? "" : "s", num_found); } /* RaiseDoubleKeywords */ static void __Pyx_RaiseDoubleKeywordsError( const char* func_name, PyObject* kw_name) { PyErr_Format(PyExc_TypeError, #if PY_MAJOR_VERSION >= 3 "%s() got multiple values for keyword argument '%U'", func_name, kw_name); #else "%s() got multiple values for keyword argument '%s'", func_name, PyString_AsString(kw_name)); #endif } /* ParseKeywords */ static int __Pyx_ParseOptionalKeywords( PyObject *kwds, PyObject **argnames[], PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, const char* function_name) { PyObject *key = 0, *value = 0; Py_ssize_t pos = 0; PyObject*** name; PyObject*** first_kw_arg = argnames + num_pos_args; while (PyDict_Next(kwds, &pos, &key, &value)) { name = first_kw_arg; while (*name && (**name != key)) name++; if (*name) { values[name-argnames] = value; continue; } name = first_kw_arg; #if PY_MAJOR_VERSION < 3 if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { while (*name) { if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) && _PyString_Eq(**name, key)) { values[name-argnames] = value; break; } name++; } if (*name) continue; else { PyObject*** argname = argnames; while (argname != first_kw_arg) { if ((**argname == key) || ( (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key)) && _PyString_Eq(**argname, key))) { goto arg_passed_twice; } argname++; } } } else #endif if (likely(PyUnicode_Check(key))) { while (*name) { int cmp = (**name == key) ? 0 : #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : #endif PyUnicode_Compare(**name, key); if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; if (cmp == 0) { values[name-argnames] = value; break; } name++; } if (*name) continue; else { PyObject*** argname = argnames; while (argname != first_kw_arg) { int cmp = (**argname == key) ? 0 : #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : #endif PyUnicode_Compare(**argname, key); if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; if (cmp == 0) goto arg_passed_twice; argname++; } } } else goto invalid_keyword_type; if (kwds2) { if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; } else { goto invalid_keyword; } } return 0; arg_passed_twice: __Pyx_RaiseDoubleKeywordsError(function_name, key); goto bad; invalid_keyword_type: PyErr_Format(PyExc_TypeError, "%.200s() keywords must be strings", function_name); goto bad; invalid_keyword: PyErr_Format(PyExc_TypeError, #if PY_MAJOR_VERSION < 3 "%.200s() got an unexpected keyword argument '%.200s'", function_name, PyString_AsString(key)); #else "%s() got an unexpected keyword argument '%U'", function_name, key); #endif bad: return -1; } /* GetAttr */ static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) { #if CYTHON_USE_TYPE_SLOTS #if PY_MAJOR_VERSION >= 3 if (likely(PyUnicode_Check(n))) #else if (likely(PyString_Check(n))) #endif return __Pyx_PyObject_GetAttrStr(o, n); #endif return PyObject_GetAttr(o, n); } /* PyDictVersioning */ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) { PyObject *dict = Py_TYPE(obj)->tp_dict; return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0; } static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) { PyObject **dictptr = NULL; Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset; if (offset) { #if CYTHON_COMPILING_IN_CPYTHON dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj); #else dictptr = _PyObject_GetDictPtr(obj); #endif } return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0; } static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) { PyObject *dict = Py_TYPE(obj)->tp_dict; if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict))) return 0; return obj_dict_version == __Pyx_get_object_dict_version(obj); } #endif /* GetModuleGlobalName */ #if CYTHON_USE_DICT_VERSIONS static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value) #else static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name) #endif { PyObject *result; #if !CYTHON_AVOID_BORROWED_REFS #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash); __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) if (likely(result)) { return __Pyx_NewRef(result); } else if (unlikely(PyErr_Occurred())) { return NULL; } #else result = PyDict_GetItem(__pyx_d, name); __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) if (likely(result)) { return __Pyx_NewRef(result); } #endif #else result = PyObject_GetItem(__pyx_d, name); __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) if (likely(result)) { return __Pyx_NewRef(result); } PyErr_Clear(); #endif return __Pyx_GetBuiltinName(name); } /* GetTopmostException */ #if CYTHON_USE_EXC_INFO_STACK static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate) { _PyErr_StackItem *exc_info = tstate->exc_info; while ((exc_info->exc_type == NULL || exc_info->exc_type == Py_None) && exc_info->previous_item != NULL) { exc_info = exc_info->previous_item; } return exc_info; } #endif /* SaveResetException */ #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { #if CYTHON_USE_EXC_INFO_STACK _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate); *type = exc_info->exc_type; *value = exc_info->exc_value; *tb = exc_info->exc_traceback; #else *type = tstate->exc_type; *value = tstate->exc_value; *tb = tstate->exc_traceback; #endif Py_XINCREF(*type); Py_XINCREF(*value); Py_XINCREF(*tb); } static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; #if CYTHON_USE_EXC_INFO_STACK _PyErr_StackItem *exc_info = tstate->exc_info; tmp_type = exc_info->exc_type; tmp_value = exc_info->exc_value; tmp_tb = exc_info->exc_traceback; exc_info->exc_type = type; exc_info->exc_value = value; exc_info->exc_traceback = tb; #else tmp_type = tstate->exc_type; tmp_value = tstate->exc_value; tmp_tb = tstate->exc_traceback; tstate->exc_type = type; tstate->exc_value = value; tstate->exc_traceback = tb; #endif Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); } #endif /* PyErrExceptionMatches */ #if CYTHON_FAST_THREAD_STATE static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { Py_ssize_t i, n; n = PyTuple_GET_SIZE(tuple); #if PY_MAJOR_VERSION >= 3 for (i=0; icurexc_type; if (exc_type == err) return 1; if (unlikely(!exc_type)) return 0; if (unlikely(PyTuple_Check(err))) return __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err); return __Pyx_PyErr_GivenExceptionMatches(exc_type, err); } #endif /* GetException */ #if CYTHON_FAST_THREAD_STATE static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) #else static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) #endif { PyObject *local_type, *local_value, *local_tb; #if CYTHON_FAST_THREAD_STATE PyObject *tmp_type, *tmp_value, *tmp_tb; local_type = tstate->curexc_type; local_value = tstate->curexc_value; local_tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; #else PyErr_Fetch(&local_type, &local_value, &local_tb); #endif PyErr_NormalizeException(&local_type, &local_value, &local_tb); #if CYTHON_FAST_THREAD_STATE if (unlikely(tstate->curexc_type)) #else if (unlikely(PyErr_Occurred())) #endif goto bad; #if PY_MAJOR_VERSION >= 3 if (local_tb) { if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0)) goto bad; } #endif Py_XINCREF(local_tb); Py_XINCREF(local_type); Py_XINCREF(local_value); *type = local_type; *value = local_value; *tb = local_tb; #if CYTHON_FAST_THREAD_STATE #if CYTHON_USE_EXC_INFO_STACK { _PyErr_StackItem *exc_info = tstate->exc_info; tmp_type = exc_info->exc_type; tmp_value = exc_info->exc_value; tmp_tb = exc_info->exc_traceback; exc_info->exc_type = local_type; exc_info->exc_value = local_value; exc_info->exc_traceback = local_tb; } #else tmp_type = tstate->exc_type; tmp_value = tstate->exc_value; tmp_tb = tstate->exc_traceback; tstate->exc_type = local_type; tstate->exc_value = local_value; tstate->exc_traceback = local_tb; #endif Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); #else PyErr_SetExcInfo(local_type, local_value, local_tb); #endif return 0; bad: *type = 0; *value = 0; *tb = 0; Py_XDECREF(local_type); Py_XDECREF(local_value); Py_XDECREF(local_tb); return -1; } /* PyCFunctionFastCall */ #if CYTHON_FAST_PYCCALL static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) { PyCFunctionObject *func = (PyCFunctionObject*)func_obj; PyCFunction meth = PyCFunction_GET_FUNCTION(func); PyObject *self = PyCFunction_GET_SELF(func); int flags = PyCFunction_GET_FLAGS(func); assert(PyCFunction_Check(func)); assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))); assert(nargs >= 0); assert(nargs == 0 || args != NULL); /* _PyCFunction_FastCallDict() must not be called with an exception set, because it may clear it (directly or indirectly) and so the caller loses its exception */ assert(!PyErr_Occurred()); if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) { return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL); } else { return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs); } } #endif /* PyFunctionFastCall */ #if CYTHON_FAST_PYCALL static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, PyObject *globals) { PyFrameObject *f; PyThreadState *tstate = __Pyx_PyThreadState_Current; PyObject **fastlocals; Py_ssize_t i; PyObject *result; assert(globals != NULL); /* XXX Perhaps we should create a specialized PyFrame_New() that doesn't take locals, but does take builtins without sanity checking them. */ assert(tstate != NULL); f = PyFrame_New(tstate, co, globals, NULL); if (f == NULL) { return NULL; } fastlocals = __Pyx_PyFrame_GetLocalsplus(f); for (i = 0; i < na; i++) { Py_INCREF(*args); fastlocals[i] = *args++; } result = PyEval_EvalFrameEx(f,0); ++tstate->recursion_depth; Py_DECREF(f); --tstate->recursion_depth; return result; } #if 1 || PY_VERSION_HEX < 0x030600B1 static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) { PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func); PyObject *globals = PyFunction_GET_GLOBALS(func); PyObject *argdefs = PyFunction_GET_DEFAULTS(func); PyObject *closure; #if PY_MAJOR_VERSION >= 3 PyObject *kwdefs; #endif PyObject *kwtuple, **k; PyObject **d; Py_ssize_t nd; Py_ssize_t nk; PyObject *result; assert(kwargs == NULL || PyDict_Check(kwargs)); nk = kwargs ? PyDict_Size(kwargs) : 0; if (Py_EnterRecursiveCall((char*)" while calling a Python object")) { return NULL; } if ( #if PY_MAJOR_VERSION >= 3 co->co_kwonlyargcount == 0 && #endif likely(kwargs == NULL || nk == 0) && co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) { if (argdefs == NULL && co->co_argcount == nargs) { result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals); goto done; } else if (nargs == 0 && argdefs != NULL && co->co_argcount == Py_SIZE(argdefs)) { /* function called with no arguments, but all parameters have a default value: use default values as arguments .*/ args = &PyTuple_GET_ITEM(argdefs, 0); result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals); goto done; } } if (kwargs != NULL) { Py_ssize_t pos, i; kwtuple = PyTuple_New(2 * nk); if (kwtuple == NULL) { result = NULL; goto done; } k = &PyTuple_GET_ITEM(kwtuple, 0); pos = i = 0; while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) { Py_INCREF(k[i]); Py_INCREF(k[i+1]); i += 2; } nk = i / 2; } else { kwtuple = NULL; k = NULL; } closure = PyFunction_GET_CLOSURE(func); #if PY_MAJOR_VERSION >= 3 kwdefs = PyFunction_GET_KW_DEFAULTS(func); #endif if (argdefs != NULL) { d = &PyTuple_GET_ITEM(argdefs, 0); nd = Py_SIZE(argdefs); } else { d = NULL; nd = 0; } #if PY_MAJOR_VERSION >= 3 result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, args, (int)nargs, k, (int)nk, d, (int)nd, kwdefs, closure); #else result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, args, (int)nargs, k, (int)nk, d, (int)nd, closure); #endif Py_XDECREF(kwtuple); done: Py_LeaveRecursiveCall(); return result; } #endif #endif /* PyObjectCallMethO */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { PyObject *self, *result; PyCFunction cfunc; cfunc = PyCFunction_GET_FUNCTION(func); self = PyCFunction_GET_SELF(func); if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) return NULL; result = cfunc(self, arg); Py_LeaveRecursiveCall(); if (unlikely(!result) && unlikely(!PyErr_Occurred())) { PyErr_SetString( PyExc_SystemError, "NULL result without error in PyObject_Call"); } return result; } #endif /* PyObjectCallOneArg */ #if CYTHON_COMPILING_IN_CPYTHON static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { PyObject *result; PyObject *args = PyTuple_New(1); if (unlikely(!args)) return NULL; Py_INCREF(arg); PyTuple_SET_ITEM(args, 0, arg); result = __Pyx_PyObject_Call(func, args, NULL); Py_DECREF(args); return result; } static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { #if CYTHON_FAST_PYCALL if (PyFunction_Check(func)) { return __Pyx_PyFunction_FastCall(func, &arg, 1); } #endif if (likely(PyCFunction_Check(func))) { if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { return __Pyx_PyObject_CallMethO(func, arg); #if CYTHON_FAST_PYCCALL } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { return __Pyx_PyCFunction_FastCall(func, &arg, 1); #endif } } return __Pyx__PyObject_CallOneArg(func, arg); } #else static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { PyObject *result; PyObject *args = PyTuple_Pack(1, arg); if (unlikely(!args)) return NULL; result = __Pyx_PyObject_Call(func, args, NULL); Py_DECREF(args); return result; } #endif /* PyObjectCall2Args */ static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) { PyObject *args, *result = NULL; #if CYTHON_FAST_PYCALL if (PyFunction_Check(function)) { PyObject *args[2] = {arg1, arg2}; return __Pyx_PyFunction_FastCall(function, args, 2); } #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(function)) { PyObject *args[2] = {arg1, arg2}; return __Pyx_PyCFunction_FastCall(function, args, 2); } #endif args = PyTuple_New(2); if (unlikely(!args)) goto done; Py_INCREF(arg1); PyTuple_SET_ITEM(args, 0, arg1); Py_INCREF(arg2); PyTuple_SET_ITEM(args, 1, arg2); Py_INCREF(function); result = __Pyx_PyObject_Call(function, args, NULL); Py_DECREF(args); Py_DECREF(function); done: return result; } /* GetItemInt */ static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) { PyObject *r; if (!j) return NULL; r = PyObject_GetItem(o, j); Py_DECREF(j); return r; } static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS Py_ssize_t wrapped_i = i; if (wraparound & unlikely(i < 0)) { wrapped_i += PyList_GET_SIZE(o); } if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) { PyObject *r = PyList_GET_ITEM(o, wrapped_i); Py_INCREF(r); return r; } return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); #else return PySequence_GetItem(o, i); #endif } static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS Py_ssize_t wrapped_i = i; if (wraparound & unlikely(i < 0)) { wrapped_i += PyTuple_GET_SIZE(o); } if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) { PyObject *r = PyTuple_GET_ITEM(o, wrapped_i); Py_INCREF(r); return r; } return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); #else return PySequence_GetItem(o, i); #endif } static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS if (is_list || PyList_CheckExact(o)) { Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o); if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) { PyObject *r = PyList_GET_ITEM(o, n); Py_INCREF(r); return r; } } else if (PyTuple_CheckExact(o)) { Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o); if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) { PyObject *r = PyTuple_GET_ITEM(o, n); Py_INCREF(r); return r; } } else { PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence; if (likely(m && m->sq_item)) { if (wraparound && unlikely(i < 0) && likely(m->sq_length)) { Py_ssize_t l = m->sq_length(o); if (likely(l >= 0)) { i += l; } else { if (!PyErr_ExceptionMatches(PyExc_OverflowError)) return NULL; PyErr_Clear(); } } return m->sq_item(o, i); } } #else if (is_list || PySequence_Check(o)) { return PySequence_GetItem(o, i); } #endif return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); } /* ObjectGetItem */ #if CYTHON_USE_TYPE_SLOTS static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject* index) { PyObject *runerr; Py_ssize_t key_value; PySequenceMethods *m = Py_TYPE(obj)->tp_as_sequence; if (unlikely(!(m && m->sq_item))) { PyErr_Format(PyExc_TypeError, "'%.200s' object is not subscriptable", Py_TYPE(obj)->tp_name); return NULL; } key_value = __Pyx_PyIndex_AsSsize_t(index); if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) { return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1); } if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) { PyErr_Clear(); PyErr_Format(PyExc_IndexError, "cannot fit '%.200s' into an index-sized integer", Py_TYPE(index)->tp_name); } return NULL; } static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key) { PyMappingMethods *m = Py_TYPE(obj)->tp_as_mapping; if (likely(m && m->mp_subscript)) { return m->mp_subscript(obj, key); } return __Pyx_PyObject_GetIndex(obj, key); } #endif /* SliceObject */ static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop, PyObject** _py_start, PyObject** _py_stop, PyObject** _py_slice, int has_cstart, int has_cstop, CYTHON_UNUSED int wraparound) { #if CYTHON_USE_TYPE_SLOTS PyMappingMethods* mp; #if PY_MAJOR_VERSION < 3 PySequenceMethods* ms = Py_TYPE(obj)->tp_as_sequence; if (likely(ms && ms->sq_slice)) { if (!has_cstart) { if (_py_start && (*_py_start != Py_None)) { cstart = __Pyx_PyIndex_AsSsize_t(*_py_start); if ((cstart == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad; } else cstart = 0; } if (!has_cstop) { if (_py_stop && (*_py_stop != Py_None)) { cstop = __Pyx_PyIndex_AsSsize_t(*_py_stop); if ((cstop == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad; } else cstop = PY_SSIZE_T_MAX; } if (wraparound && unlikely((cstart < 0) | (cstop < 0)) && likely(ms->sq_length)) { Py_ssize_t l = ms->sq_length(obj); if (likely(l >= 0)) { if (cstop < 0) { cstop += l; if (cstop < 0) cstop = 0; } if (cstart < 0) { cstart += l; if (cstart < 0) cstart = 0; } } else { if (!PyErr_ExceptionMatches(PyExc_OverflowError)) goto bad; PyErr_Clear(); } } return ms->sq_slice(obj, cstart, cstop); } #endif mp = Py_TYPE(obj)->tp_as_mapping; if (likely(mp && mp->mp_subscript)) #endif { PyObject* result; PyObject *py_slice, *py_start, *py_stop; if (_py_slice) { py_slice = *_py_slice; } else { PyObject* owned_start = NULL; PyObject* owned_stop = NULL; if (_py_start) { py_start = *_py_start; } else { if (has_cstart) { owned_start = py_start = PyInt_FromSsize_t(cstart); if (unlikely(!py_start)) goto bad; } else py_start = Py_None; } if (_py_stop) { py_stop = *_py_stop; } else { if (has_cstop) { owned_stop = py_stop = PyInt_FromSsize_t(cstop); if (unlikely(!py_stop)) { Py_XDECREF(owned_start); goto bad; } } else py_stop = Py_None; } py_slice = PySlice_New(py_start, py_stop, Py_None); Py_XDECREF(owned_start); Py_XDECREF(owned_stop); if (unlikely(!py_slice)) goto bad; } #if CYTHON_USE_TYPE_SLOTS result = mp->mp_subscript(obj, py_slice); #else result = PyObject_GetItem(obj, py_slice); #endif if (!_py_slice) { Py_DECREF(py_slice); } return result; } PyErr_Format(PyExc_TypeError, "'%.200s' object is unsliceable", Py_TYPE(obj)->tp_name); bad: return NULL; } /* BytesEquals */ static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) { #if CYTHON_COMPILING_IN_PYPY return PyObject_RichCompareBool(s1, s2, equals); #else if (s1 == s2) { return (equals == Py_EQ); } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) { const char *ps1, *ps2; Py_ssize_t length = PyBytes_GET_SIZE(s1); if (length != PyBytes_GET_SIZE(s2)) return (equals == Py_NE); ps1 = PyBytes_AS_STRING(s1); ps2 = PyBytes_AS_STRING(s2); if (ps1[0] != ps2[0]) { return (equals == Py_NE); } else if (length == 1) { return (equals == Py_EQ); } else { int result; #if CYTHON_USE_UNICODE_INTERNALS Py_hash_t hash1, hash2; hash1 = ((PyBytesObject*)s1)->ob_shash; hash2 = ((PyBytesObject*)s2)->ob_shash; if (hash1 != hash2 && hash1 != -1 && hash2 != -1) { return (equals == Py_NE); } #endif result = memcmp(ps1, ps2, (size_t)length); return (equals == Py_EQ) ? (result == 0) : (result != 0); } } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) { return (equals == Py_NE); } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) { return (equals == Py_NE); } else { int result; PyObject* py_result = PyObject_RichCompare(s1, s2, equals); if (!py_result) return -1; result = __Pyx_PyObject_IsTrue(py_result); Py_DECREF(py_result); return result; } #endif } /* UnicodeEquals */ static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) { #if CYTHON_COMPILING_IN_PYPY return PyObject_RichCompareBool(s1, s2, equals); #else #if PY_MAJOR_VERSION < 3 PyObject* owned_ref = NULL; #endif int s1_is_unicode, s2_is_unicode; if (s1 == s2) { goto return_eq; } s1_is_unicode = PyUnicode_CheckExact(s1); s2_is_unicode = PyUnicode_CheckExact(s2); #if PY_MAJOR_VERSION < 3 if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) { owned_ref = PyUnicode_FromObject(s2); if (unlikely(!owned_ref)) return -1; s2 = owned_ref; s2_is_unicode = 1; } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) { owned_ref = PyUnicode_FromObject(s1); if (unlikely(!owned_ref)) return -1; s1 = owned_ref; s1_is_unicode = 1; } else if (((!s2_is_unicode) & (!s1_is_unicode))) { return __Pyx_PyBytes_Equals(s1, s2, equals); } #endif if (s1_is_unicode & s2_is_unicode) { Py_ssize_t length; int kind; void *data1, *data2; if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0)) return -1; length = __Pyx_PyUnicode_GET_LENGTH(s1); if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) { goto return_ne; } #if CYTHON_USE_UNICODE_INTERNALS { Py_hash_t hash1, hash2; #if CYTHON_PEP393_ENABLED hash1 = ((PyASCIIObject*)s1)->hash; hash2 = ((PyASCIIObject*)s2)->hash; #else hash1 = ((PyUnicodeObject*)s1)->hash; hash2 = ((PyUnicodeObject*)s2)->hash; #endif if (hash1 != hash2 && hash1 != -1 && hash2 != -1) { goto return_ne; } } #endif kind = __Pyx_PyUnicode_KIND(s1); if (kind != __Pyx_PyUnicode_KIND(s2)) { goto return_ne; } data1 = __Pyx_PyUnicode_DATA(s1); data2 = __Pyx_PyUnicode_DATA(s2); if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) { goto return_ne; } else if (length == 1) { goto return_eq; } else { int result = memcmp(data1, data2, (size_t)(length * kind)); #if PY_MAJOR_VERSION < 3 Py_XDECREF(owned_ref); #endif return (equals == Py_EQ) ? (result == 0) : (result != 0); } } else if ((s1 == Py_None) & s2_is_unicode) { goto return_ne; } else if ((s2 == Py_None) & s1_is_unicode) { goto return_ne; } else { int result; PyObject* py_result = PyObject_RichCompare(s1, s2, equals); #if PY_MAJOR_VERSION < 3 Py_XDECREF(owned_ref); #endif if (!py_result) return -1; result = __Pyx_PyObject_IsTrue(py_result); Py_DECREF(py_result); return result; } return_eq: #if PY_MAJOR_VERSION < 3 Py_XDECREF(owned_ref); #endif return (equals == Py_EQ); return_ne: #if PY_MAJOR_VERSION < 3 Py_XDECREF(owned_ref); #endif return (equals == Py_NE); #endif } /* RaiseTooManyValuesToUnpack */ static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { PyErr_Format(PyExc_ValueError, "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); } /* RaiseNeedMoreValuesToUnpack */ static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { PyErr_Format(PyExc_ValueError, "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", index, (index == 1) ? "" : "s"); } /* IterFinish */ static CYTHON_INLINE int __Pyx_IterFinish(void) { #if CYTHON_FAST_THREAD_STATE PyThreadState *tstate = __Pyx_PyThreadState_Current; PyObject* exc_type = tstate->curexc_type; if (unlikely(exc_type)) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) { PyObject *exc_value, *exc_tb; exc_value = tstate->curexc_value; exc_tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; Py_DECREF(exc_type); Py_XDECREF(exc_value); Py_XDECREF(exc_tb); return 0; } else { return -1; } } return 0; #else if (unlikely(PyErr_Occurred())) { if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) { PyErr_Clear(); return 0; } else { return -1; } } return 0; #endif } /* UnpackItemEndCheck */ static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) { if (unlikely(retval)) { Py_DECREF(retval); __Pyx_RaiseTooManyValuesError(expected); return -1; } else { return __Pyx_IterFinish(); } return 0; } /* FetchCommonType */ static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) { PyObject* fake_module; PyTypeObject* cached_type = NULL; fake_module = PyImport_AddModule((char*) "_cython_" CYTHON_ABI); if (!fake_module) return NULL; Py_INCREF(fake_module); cached_type = (PyTypeObject*) PyObject_GetAttrString(fake_module, type->tp_name); if (cached_type) { if (!PyType_Check((PyObject*)cached_type)) { PyErr_Format(PyExc_TypeError, "Shared Cython type %.200s is not a type object", type->tp_name); goto bad; } if (cached_type->tp_basicsize != type->tp_basicsize) { PyErr_Format(PyExc_TypeError, "Shared Cython type %.200s has the wrong size, try recompiling", type->tp_name); goto bad; } } else { if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad; PyErr_Clear(); if (PyType_Ready(type) < 0) goto bad; if (PyObject_SetAttrString(fake_module, type->tp_name, (PyObject*) type) < 0) goto bad; Py_INCREF(type); cached_type = type; } done: Py_DECREF(fake_module); return cached_type; bad: Py_XDECREF(cached_type); cached_type = NULL; goto done; } /* CythonFunction */ #include static PyObject * __Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *closure) { if (unlikely(op->func_doc == NULL)) { if (op->func.m_ml->ml_doc) { #if PY_MAJOR_VERSION >= 3 op->func_doc = PyUnicode_FromString(op->func.m_ml->ml_doc); #else op->func_doc = PyString_FromString(op->func.m_ml->ml_doc); #endif if (unlikely(op->func_doc == NULL)) return NULL; } else { Py_INCREF(Py_None); return Py_None; } } Py_INCREF(op->func_doc); return op->func_doc; } static int __Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context) { PyObject *tmp = op->func_doc; if (value == NULL) { value = Py_None; } Py_INCREF(value); op->func_doc = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { if (unlikely(op->func_name == NULL)) { #if PY_MAJOR_VERSION >= 3 op->func_name = PyUnicode_InternFromString(op->func.m_ml->ml_name); #else op->func_name = PyString_InternFromString(op->func.m_ml->ml_name); #endif if (unlikely(op->func_name == NULL)) return NULL; } Py_INCREF(op->func_name); return op->func_name; } static int __Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context) { PyObject *tmp; #if PY_MAJOR_VERSION >= 3 if (unlikely(value == NULL || !PyUnicode_Check(value))) #else if (unlikely(value == NULL || !PyString_Check(value))) #endif { PyErr_SetString(PyExc_TypeError, "__name__ must be set to a string object"); return -1; } tmp = op->func_name; Py_INCREF(value); op->func_name = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { Py_INCREF(op->func_qualname); return op->func_qualname; } static int __Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context) { PyObject *tmp; #if PY_MAJOR_VERSION >= 3 if (unlikely(value == NULL || !PyUnicode_Check(value))) #else if (unlikely(value == NULL || !PyString_Check(value))) #endif { PyErr_SetString(PyExc_TypeError, "__qualname__ must be set to a string object"); return -1; } tmp = op->func_qualname; Py_INCREF(value); op->func_qualname = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_self(__pyx_CyFunctionObject *m, CYTHON_UNUSED void *closure) { PyObject *self; self = m->func_closure; if (self == NULL) self = Py_None; Py_INCREF(self); return self; } static PyObject * __Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { if (unlikely(op->func_dict == NULL)) { op->func_dict = PyDict_New(); if (unlikely(op->func_dict == NULL)) return NULL; } Py_INCREF(op->func_dict); return op->func_dict; } static int __Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context) { PyObject *tmp; if (unlikely(value == NULL)) { PyErr_SetString(PyExc_TypeError, "function's dictionary may not be deleted"); return -1; } if (unlikely(!PyDict_Check(value))) { PyErr_SetString(PyExc_TypeError, "setting function's dictionary to a non-dict"); return -1; } tmp = op->func_dict; Py_INCREF(value); op->func_dict = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { Py_INCREF(op->func_globals); return op->func_globals; } static PyObject * __Pyx_CyFunction_get_closure(CYTHON_UNUSED __pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { Py_INCREF(Py_None); return Py_None; } static PyObject * __Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { PyObject* result = (op->func_code) ? op->func_code : Py_None; Py_INCREF(result); return result; } static int __Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) { int result = 0; PyObject *res = op->defaults_getter((PyObject *) op); if (unlikely(!res)) return -1; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS op->defaults_tuple = PyTuple_GET_ITEM(res, 0); Py_INCREF(op->defaults_tuple); op->defaults_kwdict = PyTuple_GET_ITEM(res, 1); Py_INCREF(op->defaults_kwdict); #else op->defaults_tuple = PySequence_ITEM(res, 0); if (unlikely(!op->defaults_tuple)) result = -1; else { op->defaults_kwdict = PySequence_ITEM(res, 1); if (unlikely(!op->defaults_kwdict)) result = -1; } #endif Py_DECREF(res); return result; } static int __Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) { PyObject* tmp; if (!value) { value = Py_None; } else if (value != Py_None && !PyTuple_Check(value)) { PyErr_SetString(PyExc_TypeError, "__defaults__ must be set to a tuple object"); return -1; } Py_INCREF(value); tmp = op->defaults_tuple; op->defaults_tuple = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { PyObject* result = op->defaults_tuple; if (unlikely(!result)) { if (op->defaults_getter) { if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL; result = op->defaults_tuple; } else { result = Py_None; } } Py_INCREF(result); return result; } static int __Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) { PyObject* tmp; if (!value) { value = Py_None; } else if (value != Py_None && !PyDict_Check(value)) { PyErr_SetString(PyExc_TypeError, "__kwdefaults__ must be set to a dict object"); return -1; } Py_INCREF(value); tmp = op->defaults_kwdict; op->defaults_kwdict = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { PyObject* result = op->defaults_kwdict; if (unlikely(!result)) { if (op->defaults_getter) { if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL; result = op->defaults_kwdict; } else { result = Py_None; } } Py_INCREF(result); return result; } static int __Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) { PyObject* tmp; if (!value || value == Py_None) { value = NULL; } else if (!PyDict_Check(value)) { PyErr_SetString(PyExc_TypeError, "__annotations__ must be set to a dict object"); return -1; } Py_XINCREF(value); tmp = op->func_annotations; op->func_annotations = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { PyObject* result = op->func_annotations; if (unlikely(!result)) { result = PyDict_New(); if (unlikely(!result)) return NULL; op->func_annotations = result; } Py_INCREF(result); return result; } static PyGetSetDef __pyx_CyFunction_getsets[] = { {(char *) "func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0}, {(char *) "__doc__", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0}, {(char *) "func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0}, {(char *) "__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0}, {(char *) "__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0}, {(char *) "__self__", (getter)__Pyx_CyFunction_get_self, 0, 0, 0}, {(char *) "func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0}, {(char *) "__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0}, {(char *) "func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0}, {(char *) "__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0}, {(char *) "func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0}, {(char *) "__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0}, {(char *) "func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0}, {(char *) "__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0}, {(char *) "func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0}, {(char *) "__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0}, {(char *) "__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0}, {(char *) "__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0}, {0, 0, 0, 0, 0} }; static PyMemberDef __pyx_CyFunction_members[] = { {(char *) "__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), PY_WRITE_RESTRICTED, 0}, {0, 0, 0, 0, 0} }; static PyObject * __Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, CYTHON_UNUSED PyObject *args) { #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(m->func.m_ml->ml_name); #else return PyString_FromString(m->func.m_ml->ml_name); #endif } static PyMethodDef __pyx_CyFunction_methods[] = { {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0}, {0, 0, 0, 0} }; #if PY_VERSION_HEX < 0x030500A0 #define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist) #else #define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func.m_weakreflist) #endif static PyObject *__Pyx_CyFunction_New(PyTypeObject *type, PyMethodDef *ml, int flags, PyObject* qualname, PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) { __pyx_CyFunctionObject *op = PyObject_GC_New(__pyx_CyFunctionObject, type); if (op == NULL) return NULL; op->flags = flags; __Pyx_CyFunction_weakreflist(op) = NULL; op->func.m_ml = ml; op->func.m_self = (PyObject *) op; Py_XINCREF(closure); op->func_closure = closure; Py_XINCREF(module); op->func.m_module = module; op->func_dict = NULL; op->func_name = NULL; Py_INCREF(qualname); op->func_qualname = qualname; op->func_doc = NULL; op->func_classobj = NULL; op->func_globals = globals; Py_INCREF(op->func_globals); Py_XINCREF(code); op->func_code = code; op->defaults_pyobjects = 0; op->defaults = NULL; op->defaults_tuple = NULL; op->defaults_kwdict = NULL; op->defaults_getter = NULL; op->func_annotations = NULL; PyObject_GC_Track(op); return (PyObject *) op; } static int __Pyx_CyFunction_clear(__pyx_CyFunctionObject *m) { Py_CLEAR(m->func_closure); Py_CLEAR(m->func.m_module); Py_CLEAR(m->func_dict); Py_CLEAR(m->func_name); Py_CLEAR(m->func_qualname); Py_CLEAR(m->func_doc); Py_CLEAR(m->func_globals); Py_CLEAR(m->func_code); Py_CLEAR(m->func_classobj); Py_CLEAR(m->defaults_tuple); Py_CLEAR(m->defaults_kwdict); Py_CLEAR(m->func_annotations); if (m->defaults) { PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m); int i; for (i = 0; i < m->defaults_pyobjects; i++) Py_XDECREF(pydefaults[i]); PyObject_Free(m->defaults); m->defaults = NULL; } return 0; } static void __Pyx__CyFunction_dealloc(__pyx_CyFunctionObject *m) { if (__Pyx_CyFunction_weakreflist(m) != NULL) PyObject_ClearWeakRefs((PyObject *) m); __Pyx_CyFunction_clear(m); PyObject_GC_Del(m); } static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m) { PyObject_GC_UnTrack(m); __Pyx__CyFunction_dealloc(m); } static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg) { Py_VISIT(m->func_closure); Py_VISIT(m->func.m_module); Py_VISIT(m->func_dict); Py_VISIT(m->func_name); Py_VISIT(m->func_qualname); Py_VISIT(m->func_doc); Py_VISIT(m->func_globals); Py_VISIT(m->func_code); Py_VISIT(m->func_classobj); Py_VISIT(m->defaults_tuple); Py_VISIT(m->defaults_kwdict); if (m->defaults) { PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m); int i; for (i = 0; i < m->defaults_pyobjects; i++) Py_VISIT(pydefaults[i]); } return 0; } static PyObject *__Pyx_CyFunction_descr_get(PyObject *func, PyObject *obj, PyObject *type) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; if (m->flags & __Pyx_CYFUNCTION_STATICMETHOD) { Py_INCREF(func); return func; } if (m->flags & __Pyx_CYFUNCTION_CLASSMETHOD) { if (type == NULL) type = (PyObject *)(Py_TYPE(obj)); return __Pyx_PyMethod_New(func, type, (PyObject *)(Py_TYPE(type))); } if (obj == Py_None) obj = NULL; return __Pyx_PyMethod_New(func, obj, type); } static PyObject* __Pyx_CyFunction_repr(__pyx_CyFunctionObject *op) { #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromFormat("", op->func_qualname, (void *)op); #else return PyString_FromFormat("", PyString_AsString(op->func_qualname), (void *)op); #endif } static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) { PyCFunctionObject* f = (PyCFunctionObject*)func; PyCFunction meth = f->m_ml->ml_meth; Py_ssize_t size; switch (f->m_ml->ml_flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) { case METH_VARARGS: if (likely(kw == NULL || PyDict_Size(kw) == 0)) return (*meth)(self, arg); break; case METH_VARARGS | METH_KEYWORDS: return (*(PyCFunctionWithKeywords)(void*)meth)(self, arg, kw); case METH_NOARGS: if (likely(kw == NULL || PyDict_Size(kw) == 0)) { size = PyTuple_GET_SIZE(arg); if (likely(size == 0)) return (*meth)(self, NULL); PyErr_Format(PyExc_TypeError, "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)", f->m_ml->ml_name, size); return NULL; } break; case METH_O: if (likely(kw == NULL || PyDict_Size(kw) == 0)) { size = PyTuple_GET_SIZE(arg); if (likely(size == 1)) { PyObject *result, *arg0; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS arg0 = PyTuple_GET_ITEM(arg, 0); #else arg0 = PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL; #endif result = (*meth)(self, arg0); #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS) Py_DECREF(arg0); #endif return result; } PyErr_Format(PyExc_TypeError, "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)", f->m_ml->ml_name, size); return NULL; } break; default: PyErr_SetString(PyExc_SystemError, "Bad call flags in " "__Pyx_CyFunction_Call. METH_OLDARGS is no " "longer supported!"); return NULL; } PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments", f->m_ml->ml_name); return NULL; } static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) { return __Pyx_CyFunction_CallMethod(func, ((PyCFunctionObject*)func)->m_self, arg, kw); } static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) { PyObject *result; __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func; if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) { Py_ssize_t argc; PyObject *new_args; PyObject *self; argc = PyTuple_GET_SIZE(args); new_args = PyTuple_GetSlice(args, 1, argc); if (unlikely(!new_args)) return NULL; self = PyTuple_GetItem(args, 0); if (unlikely(!self)) { Py_DECREF(new_args); return NULL; } result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw); Py_DECREF(new_args); } else { result = __Pyx_CyFunction_Call(func, args, kw); } return result; } static PyTypeObject __pyx_CyFunctionType_type = { PyVarObject_HEAD_INIT(0, 0) "cython_function_or_method", sizeof(__pyx_CyFunctionObject), 0, (destructor) __Pyx_CyFunction_dealloc, 0, 0, 0, #if PY_MAJOR_VERSION < 3 0, #else 0, #endif (reprfunc) __Pyx_CyFunction_repr, 0, 0, 0, 0, __Pyx_CyFunction_CallAsMethod, 0, 0, 0, 0, Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, 0, (traverseproc) __Pyx_CyFunction_traverse, (inquiry) __Pyx_CyFunction_clear, 0, #if PY_VERSION_HEX < 0x030500A0 offsetof(__pyx_CyFunctionObject, func_weakreflist), #else offsetof(PyCFunctionObject, m_weakreflist), #endif 0, 0, __pyx_CyFunction_methods, __pyx_CyFunction_members, __pyx_CyFunction_getsets, 0, 0, __Pyx_CyFunction_descr_get, 0, offsetof(__pyx_CyFunctionObject, func_dict), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, #if PY_VERSION_HEX >= 0x030400a1 0, #endif #if PY_VERSION_HEX >= 0x030800b1 0, #endif }; static int __pyx_CyFunction_init(void) { __pyx_CyFunctionType = __Pyx_FetchCommonType(&__pyx_CyFunctionType_type); if (unlikely(__pyx_CyFunctionType == NULL)) { return -1; } return 0; } static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *func, size_t size, int pyobjects) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->defaults = PyObject_Malloc(size); if (unlikely(!m->defaults)) return PyErr_NoMemory(); memset(m->defaults, 0, size); m->defaults_pyobjects = pyobjects; return m->defaults; } static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->defaults_tuple = tuple; Py_INCREF(tuple); } static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->defaults_kwdict = dict; Py_INCREF(dict); } static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->func_annotations = dict; Py_INCREF(dict); } /* PyObjectGetMethod */ static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) { PyObject *attr; #if CYTHON_UNPACK_METHODS && CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_PYTYPE_LOOKUP PyTypeObject *tp = Py_TYPE(obj); PyObject *descr; descrgetfunc f = NULL; PyObject **dictptr, *dict; int meth_found = 0; assert (*method == NULL); if (unlikely(tp->tp_getattro != PyObject_GenericGetAttr)) { attr = __Pyx_PyObject_GetAttrStr(obj, name); goto try_unpack; } if (unlikely(tp->tp_dict == NULL) && unlikely(PyType_Ready(tp) < 0)) { return 0; } descr = _PyType_Lookup(tp, name); if (likely(descr != NULL)) { Py_INCREF(descr); #if PY_MAJOR_VERSION >= 3 #ifdef __Pyx_CyFunction_USED if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr))) #else if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type))) #endif #else #ifdef __Pyx_CyFunction_USED if (likely(PyFunction_Check(descr) || __Pyx_CyFunction_Check(descr))) #else if (likely(PyFunction_Check(descr))) #endif #endif { meth_found = 1; } else { f = Py_TYPE(descr)->tp_descr_get; if (f != NULL && PyDescr_IsData(descr)) { attr = f(descr, obj, (PyObject *)Py_TYPE(obj)); Py_DECREF(descr); goto try_unpack; } } } dictptr = _PyObject_GetDictPtr(obj); if (dictptr != NULL && (dict = *dictptr) != NULL) { Py_INCREF(dict); attr = __Pyx_PyDict_GetItemStr(dict, name); if (attr != NULL) { Py_INCREF(attr); Py_DECREF(dict); Py_XDECREF(descr); goto try_unpack; } Py_DECREF(dict); } if (meth_found) { *method = descr; return 1; } if (f != NULL) { attr = f(descr, obj, (PyObject *)Py_TYPE(obj)); Py_DECREF(descr); goto try_unpack; } if (descr != NULL) { *method = descr; return 0; } PyErr_Format(PyExc_AttributeError, #if PY_MAJOR_VERSION >= 3 "'%.50s' object has no attribute '%U'", tp->tp_name, name); #else "'%.50s' object has no attribute '%.400s'", tp->tp_name, PyString_AS_STRING(name)); #endif return 0; #else attr = __Pyx_PyObject_GetAttrStr(obj, name); goto try_unpack; #endif try_unpack: #if CYTHON_UNPACK_METHODS if (likely(attr) && PyMethod_Check(attr) && likely(PyMethod_GET_SELF(attr) == obj)) { PyObject *function = PyMethod_GET_FUNCTION(attr); Py_INCREF(function); Py_DECREF(attr); *method = function; return 1; } #endif *method = attr; return 0; } /* PyObjectCallMethod1 */ static PyObject* __Pyx__PyObject_CallMethod1(PyObject* method, PyObject* arg) { PyObject *result = __Pyx_PyObject_CallOneArg(method, arg); Py_DECREF(method); return result; } static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg) { PyObject *method = NULL, *result; int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method); if (likely(is_method)) { result = __Pyx_PyObject_Call2Args(method, obj, arg); Py_DECREF(method); return result; } if (unlikely(!method)) return NULL; return __Pyx__PyObject_CallMethod1(method, arg); } /* append */ static CYTHON_INLINE int __Pyx_PyObject_Append(PyObject* L, PyObject* x) { if (likely(PyList_CheckExact(L))) { if (unlikely(__Pyx_PyList_Append(L, x) < 0)) return -1; } else { PyObject* retval = __Pyx_PyObject_CallMethod1(L, __pyx_n_s_append, x); if (unlikely(!retval)) return -1; Py_DECREF(retval); } return 0; } /* PyObjectCallNoArg */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { #if CYTHON_FAST_PYCALL if (PyFunction_Check(func)) { return __Pyx_PyFunction_FastCall(func, NULL, 0); } #endif #ifdef __Pyx_CyFunction_USED if (likely(PyCFunction_Check(func) || __Pyx_CyFunction_Check(func))) #else if (likely(PyCFunction_Check(func))) #endif { if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) { return __Pyx_PyObject_CallMethO(func, NULL); } } return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL); } #endif /* HasAttr */ static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) { PyObject *r; if (unlikely(!__Pyx_PyBaseString_Check(n))) { PyErr_SetString(PyExc_TypeError, "hasattr(): attribute name must be string"); return -1; } r = __Pyx_GetAttr(o, n); if (unlikely(!r)) { PyErr_Clear(); return 0; } else { Py_DECREF(r); return 1; } } /* decode_c_string */ static CYTHON_INLINE PyObject* __Pyx_decode_c_string( const char* cstring, Py_ssize_t start, Py_ssize_t stop, const char* encoding, const char* errors, PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)) { Py_ssize_t length; if (unlikely((start < 0) | (stop < 0))) { size_t slen = strlen(cstring); if (unlikely(slen > (size_t) PY_SSIZE_T_MAX)) { PyErr_SetString(PyExc_OverflowError, "c-string too long to convert to Python"); return NULL; } length = (Py_ssize_t) slen; if (start < 0) { start += length; if (start < 0) start = 0; } if (stop < 0) stop += length; } length = stop - start; if (unlikely(length <= 0)) return PyUnicode_FromUnicode(NULL, 0); cstring += start; if (decode_func) { return decode_func(cstring, length, errors); } else { return PyUnicode_Decode(cstring, length, encoding, errors); } } /* None */ static CYTHON_INLINE long __Pyx_mod_long(long a, long b) { long r = a % b; r += ((r != 0) & ((r ^ b) < 0)) * b; return r; } /* MemviewSliceInit */ static int __Pyx_init_memviewslice(struct __pyx_memoryview_obj *memview, int ndim, __Pyx_memviewslice *memviewslice, int memview_is_new_reference) { __Pyx_RefNannyDeclarations int i, retval=-1; Py_buffer *buf = &memview->view; __Pyx_RefNannySetupContext("init_memviewslice", 0); if (memviewslice->memview || memviewslice->data) { PyErr_SetString(PyExc_ValueError, "memviewslice is already initialized!"); goto fail; } if (buf->strides) { for (i = 0; i < ndim; i++) { memviewslice->strides[i] = buf->strides[i]; } } else { Py_ssize_t stride = buf->itemsize; for (i = ndim - 1; i >= 0; i--) { memviewslice->strides[i] = stride; stride *= buf->shape[i]; } } for (i = 0; i < ndim; i++) { memviewslice->shape[i] = buf->shape[i]; if (buf->suboffsets) { memviewslice->suboffsets[i] = buf->suboffsets[i]; } else { memviewslice->suboffsets[i] = -1; } } memviewslice->memview = memview; memviewslice->data = (char *)buf->buf; if (__pyx_add_acquisition_count(memview) == 0 && !memview_is_new_reference) { Py_INCREF(memview); } retval = 0; goto no_fail; fail: memviewslice->memview = 0; memviewslice->data = 0; retval = -1; no_fail: __Pyx_RefNannyFinishContext(); return retval; } #ifndef Py_NO_RETURN #define Py_NO_RETURN #endif static void __pyx_fatalerror(const char *fmt, ...) Py_NO_RETURN { va_list vargs; char msg[200]; #ifdef HAVE_STDARG_PROTOTYPES va_start(vargs, fmt); #else va_start(vargs); #endif vsnprintf(msg, 200, fmt, vargs); va_end(vargs); Py_FatalError(msg); } static CYTHON_INLINE int __pyx_add_acquisition_count_locked(__pyx_atomic_int *acquisition_count, PyThread_type_lock lock) { int result; PyThread_acquire_lock(lock, 1); result = (*acquisition_count)++; PyThread_release_lock(lock); return result; } static CYTHON_INLINE int __pyx_sub_acquisition_count_locked(__pyx_atomic_int *acquisition_count, PyThread_type_lock lock) { int result; PyThread_acquire_lock(lock, 1); result = (*acquisition_count)--; PyThread_release_lock(lock); return result; } static CYTHON_INLINE void __Pyx_INC_MEMVIEW(__Pyx_memviewslice *memslice, int have_gil, int lineno) { int first_time; struct __pyx_memoryview_obj *memview = memslice->memview; if (!memview || (PyObject *) memview == Py_None) return; if (__pyx_get_slice_count(memview) < 0) __pyx_fatalerror("Acquisition count is %d (line %d)", __pyx_get_slice_count(memview), lineno); first_time = __pyx_add_acquisition_count(memview) == 0; if (first_time) { if (have_gil) { Py_INCREF((PyObject *) memview); } else { PyGILState_STATE _gilstate = PyGILState_Ensure(); Py_INCREF((PyObject *) memview); PyGILState_Release(_gilstate); } } } static CYTHON_INLINE void __Pyx_XDEC_MEMVIEW(__Pyx_memviewslice *memslice, int have_gil, int lineno) { int last_time; struct __pyx_memoryview_obj *memview = memslice->memview; if (!memview ) { return; } else if ((PyObject *) memview == Py_None) { memslice->memview = NULL; return; } if (__pyx_get_slice_count(memview) <= 0) __pyx_fatalerror("Acquisition count is %d (line %d)", __pyx_get_slice_count(memview), lineno); last_time = __pyx_sub_acquisition_count(memview) == 1; memslice->data = NULL; if (last_time) { if (have_gil) { Py_CLEAR(memslice->memview); } else { PyGILState_STATE _gilstate = PyGILState_Ensure(); Py_CLEAR(memslice->memview); PyGILState_Release(_gilstate); } } else { memslice->memview = NULL; } } /* UnpackUnboundCMethod */ static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target) { PyObject *method; method = __Pyx_PyObject_GetAttrStr(target->type, *target->method_name); if (unlikely(!method)) return -1; target->method = method; #if CYTHON_COMPILING_IN_CPYTHON #if PY_MAJOR_VERSION >= 3 if (likely(__Pyx_TypeCheck(method, &PyMethodDescr_Type))) #endif { PyMethodDescrObject *descr = (PyMethodDescrObject*) method; target->func = descr->d_method->ml_meth; target->flag = descr->d_method->ml_flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_STACKLESS); } #endif return 0; } /* CallUnboundCMethod0 */ static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) { PyObject *args, *result = NULL; if (unlikely(!cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL; #if CYTHON_ASSUME_SAFE_MACROS args = PyTuple_New(1); if (unlikely(!args)) goto bad; Py_INCREF(self); PyTuple_SET_ITEM(args, 0, self); #else args = PyTuple_Pack(1, self); if (unlikely(!args)) goto bad; #endif result = __Pyx_PyObject_Call(cfunc->method, args, NULL); Py_DECREF(args); bad: return result; } /* pyobject_as_double */ static double __Pyx__PyObject_AsDouble(PyObject* obj) { PyObject* float_value; #if !CYTHON_USE_TYPE_SLOTS float_value = PyNumber_Float(obj); if ((0)) goto bad; #else PyNumberMethods *nb = Py_TYPE(obj)->tp_as_number; if (likely(nb) && likely(nb->nb_float)) { float_value = nb->nb_float(obj); if (likely(float_value) && unlikely(!PyFloat_Check(float_value))) { PyErr_Format(PyExc_TypeError, "__float__ returned non-float (type %.200s)", Py_TYPE(float_value)->tp_name); Py_DECREF(float_value); goto bad; } } else if (PyUnicode_CheckExact(obj) || PyBytes_CheckExact(obj)) { #if PY_MAJOR_VERSION >= 3 float_value = PyFloat_FromString(obj); #else float_value = PyFloat_FromString(obj, 0); #endif } else { PyObject* args = PyTuple_New(1); if (unlikely(!args)) goto bad; PyTuple_SET_ITEM(args, 0, obj); float_value = PyObject_Call((PyObject*)&PyFloat_Type, args, 0); PyTuple_SET_ITEM(args, 0, 0); Py_DECREF(args); } #endif if (likely(float_value)) { double value = PyFloat_AS_DOUBLE(float_value); Py_DECREF(float_value); return value; } bad: return (double)-1; } /* None */ static CYTHON_INLINE double __Pyx_mod_double(double a, double b) { double r = fmod(a, b); r += ((r != 0) & ((r < 0) ^ (b < 0))) * b; return r; } /* None */ static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) { PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname); } /* ExtTypeTest */ static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { if (unlikely(!type)) { PyErr_SetString(PyExc_SystemError, "Missing type object"); return 0; } if (likely(__Pyx_TypeCheck(obj, type))) return 1; PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s", Py_TYPE(obj)->tp_name, type->tp_name); return 0; } /* PyIntBinop */ #if !CYTHON_COMPILING_IN_PYPY #if PY_MAJOR_VERSION < 3 || CYTHON_USE_PYLONG_INTERNALS #define __Pyx_PyInt_FloorDivideObjC_ZeroDivisionError(operand)\ if (unlikely(zerodivision_check && ((operand) == 0))) {\ PyErr_SetString(PyExc_ZeroDivisionError, "integer division by zero");\ return NULL;\ } #endif static PyObject* __Pyx_PyInt_FloorDivideObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, int inplace, int zerodivision_check) { (void)inplace; (void)zerodivision_check; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_CheckExact(op1))) { const long b = intval; long x; long a = PyInt_AS_LONG(op1); __Pyx_PyInt_FloorDivideObjC_ZeroDivisionError(b) if (unlikely(b == -1 && ((unsigned long)a) == 0-(unsigned long)a)) return PyInt_Type.tp_as_number->nb_floor_divide(op1, op2); else { long q, r; q = a / b; r = a - q*b; q -= ((r != 0) & ((r ^ b) < 0)); x = q; } return PyInt_FromLong(x); } #endif #if CYTHON_USE_PYLONG_INTERNALS if (likely(PyLong_CheckExact(op1))) { const long b = intval; long a, x; #ifdef HAVE_LONG_LONG const PY_LONG_LONG llb = intval; PY_LONG_LONG lla, llx; #endif const digit* digits = ((PyLongObject*)op1)->ob_digit; const Py_ssize_t size = Py_SIZE(op1); if (likely(__Pyx_sst_abs(size) <= 1)) { a = likely(size) ? digits[0] : 0; if (size == -1) a = -a; } else { switch (size) { case -2: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case 2: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case -3: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case 3: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case -4: if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case 4: if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; default: return PyLong_Type.tp_as_number->nb_floor_divide(op1, op2); } } __Pyx_PyInt_FloorDivideObjC_ZeroDivisionError(b) { long q, r; q = a / b; r = a - q*b; q -= ((r != 0) & ((r ^ b) < 0)); x = q; } return PyLong_FromLong(x); #ifdef HAVE_LONG_LONG long_long: { PY_LONG_LONG q, r; q = lla / llb; r = lla - q*llb; q -= ((r != 0) & ((r ^ llb) < 0)); llx = q; } return PyLong_FromLongLong(llx); #endif } #endif return (inplace ? PyNumber_InPlaceFloorDivide : PyNumber_FloorDivide)(op1, op2); } #endif /* DictGetItem */ #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) { PyObject *value; value = PyDict_GetItemWithError(d, key); if (unlikely(!value)) { if (!PyErr_Occurred()) { if (unlikely(PyTuple_Check(key))) { PyObject* args = PyTuple_Pack(1, key); if (likely(args)) { PyErr_SetObject(PyExc_KeyError, args); Py_DECREF(args); } } else { PyErr_SetObject(PyExc_KeyError, key); } } return NULL; } Py_INCREF(value); return value; } #endif /* RaiseNoneIterError */ static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); } /* ArgTypeTest */ static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact) { if (unlikely(!type)) { PyErr_SetString(PyExc_SystemError, "Missing type object"); return 0; } else if (exact) { #if PY_MAJOR_VERSION == 2 if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1; #endif } else { if (likely(__Pyx_TypeCheck(obj, type))) return 1; } PyErr_Format(PyExc_TypeError, "Argument '%.200s' has incorrect type (expected %.200s, got %.200s)", name, type->tp_name, Py_TYPE(obj)->tp_name); return 0; } /* None */ static CYTHON_INLINE Py_ssize_t __Pyx_div_Py_ssize_t(Py_ssize_t a, Py_ssize_t b) { Py_ssize_t q = a / b; Py_ssize_t r = a - q*b; q -= ((r != 0) & ((r ^ b) < 0)); return q; } /* GetAttr3 */ static PyObject *__Pyx_GetAttr3Default(PyObject *d) { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) return NULL; __Pyx_PyErr_Clear(); Py_INCREF(d); return d; } static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *o, PyObject *n, PyObject *d) { PyObject *r = __Pyx_GetAttr(o, n); return (likely(r)) ? r : __Pyx_GetAttr3Default(d); } /* SwapException */ #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; #if CYTHON_USE_EXC_INFO_STACK _PyErr_StackItem *exc_info = tstate->exc_info; tmp_type = exc_info->exc_type; tmp_value = exc_info->exc_value; tmp_tb = exc_info->exc_traceback; exc_info->exc_type = *type; exc_info->exc_value = *value; exc_info->exc_traceback = *tb; #else tmp_type = tstate->exc_type; tmp_value = tstate->exc_value; tmp_tb = tstate->exc_traceback; tstate->exc_type = *type; tstate->exc_value = *value; tstate->exc_traceback = *tb; #endif *type = tmp_type; *value = tmp_value; *tb = tmp_tb; } #else static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb); PyErr_SetExcInfo(*type, *value, *tb); *type = tmp_type; *value = tmp_value; *tb = tmp_tb; } #endif /* Import */ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { PyObject *empty_list = 0; PyObject *module = 0; PyObject *global_dict = 0; PyObject *empty_dict = 0; PyObject *list; #if PY_MAJOR_VERSION < 3 PyObject *py_import; py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import); if (!py_import) goto bad; #endif if (from_list) list = from_list; else { empty_list = PyList_New(0); if (!empty_list) goto bad; list = empty_list; } global_dict = PyModule_GetDict(__pyx_m); if (!global_dict) goto bad; empty_dict = PyDict_New(); if (!empty_dict) goto bad; { #if PY_MAJOR_VERSION >= 3 if (level == -1) { if (strchr(__Pyx_MODULE_NAME, '.')) { module = PyImport_ImportModuleLevelObject( name, global_dict, empty_dict, list, 1); if (!module) { if (!PyErr_ExceptionMatches(PyExc_ImportError)) goto bad; PyErr_Clear(); } } level = 0; } #endif if (!module) { #if PY_MAJOR_VERSION < 3 PyObject *py_level = PyInt_FromLong(level); if (!py_level) goto bad; module = PyObject_CallFunctionObjArgs(py_import, name, global_dict, empty_dict, list, py_level, (PyObject *)NULL); Py_DECREF(py_level); #else module = PyImport_ImportModuleLevelObject( name, global_dict, empty_dict, list, level); #endif } } bad: #if PY_MAJOR_VERSION < 3 Py_XDECREF(py_import); #endif Py_XDECREF(empty_list); Py_XDECREF(empty_dict); return module; } /* FastTypeChecks */ #if CYTHON_COMPILING_IN_CPYTHON static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { while (a) { a = a->tp_base; if (a == b) return 1; } return b == &PyBaseObject_Type; } static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) { PyObject *mro; if (a == b) return 1; mro = a->tp_mro; if (likely(mro)) { Py_ssize_t i, n; n = PyTuple_GET_SIZE(mro); for (i = 0; i < n; i++) { if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b) return 1; } return 0; } return __Pyx_InBases(a, b); } #if PY_MAJOR_VERSION == 2 static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) { PyObject *exception, *value, *tb; int res; __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ErrFetch(&exception, &value, &tb); res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0; if (unlikely(res == -1)) { PyErr_WriteUnraisable(err); res = 0; } if (!res) { res = PyObject_IsSubclass(err, exc_type2); if (unlikely(res == -1)) { PyErr_WriteUnraisable(err); res = 0; } } __Pyx_ErrRestore(exception, value, tb); return res; } #else static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) { int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0; if (!res) { res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2); } return res; } #endif static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { Py_ssize_t i, n; assert(PyExceptionClass_Check(exc_type)); n = PyTuple_GET_SIZE(tuple); #if PY_MAJOR_VERSION >= 3 for (i=0; i= 0 || (x^b) >= 0)) return PyInt_FromLong(x); return PyLong_Type.tp_as_number->nb_add(op1, op2); } #endif #if CYTHON_USE_PYLONG_INTERNALS if (likely(PyLong_CheckExact(op1))) { const long b = intval; long a, x; #ifdef HAVE_LONG_LONG const PY_LONG_LONG llb = intval; PY_LONG_LONG lla, llx; #endif const digit* digits = ((PyLongObject*)op1)->ob_digit; const Py_ssize_t size = Py_SIZE(op1); if (likely(__Pyx_sst_abs(size) <= 1)) { a = likely(size) ? digits[0] : 0; if (size == -1) a = -a; } else { switch (size) { case -2: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case 2: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case -3: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case 3: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case -4: if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case 4: if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; default: return PyLong_Type.tp_as_number->nb_add(op1, op2); } } x = a + b; return PyLong_FromLong(x); #ifdef HAVE_LONG_LONG long_long: llx = lla + llb; return PyLong_FromLongLong(llx); #endif } #endif if (PyFloat_CheckExact(op1)) { const long b = intval; double a = PyFloat_AS_DOUBLE(op1); double result; PyFPE_START_PROTECT("add", return NULL) result = ((double)a) + (double)b; PyFPE_END_PROTECT(result) return PyFloat_FromDouble(result); } return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2); } #endif /* None */ static CYTHON_INLINE long __Pyx_div_long(long a, long b) { long q = a / b; long r = a - q*b; q -= ((r != 0) & ((r ^ b) < 0)); return q; } /* ImportFrom */ static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) { PyObject* value = __Pyx_PyObject_GetAttrStr(module, name); if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) { PyErr_Format(PyExc_ImportError, #if PY_MAJOR_VERSION < 3 "cannot import name %.230s", PyString_AS_STRING(name)); #else "cannot import name %S", name); #endif } return value; } /* StringJoin */ #if !CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyBytes_Join(PyObject* sep, PyObject* values) { return PyObject_CallMethodObjArgs(sep, __pyx_n_s_join, values, NULL); } #endif /* PyObject_GenericGetAttrNoDict */ #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) { PyErr_Format(PyExc_AttributeError, #if PY_MAJOR_VERSION >= 3 "'%.50s' object has no attribute '%U'", tp->tp_name, attr_name); #else "'%.50s' object has no attribute '%.400s'", tp->tp_name, PyString_AS_STRING(attr_name)); #endif return NULL; } static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) { PyObject *descr; PyTypeObject *tp = Py_TYPE(obj); if (unlikely(!PyString_Check(attr_name))) { return PyObject_GenericGetAttr(obj, attr_name); } assert(!tp->tp_dictoffset); descr = _PyType_Lookup(tp, attr_name); if (unlikely(!descr)) { return __Pyx_RaiseGenericGetAttributeError(tp, attr_name); } Py_INCREF(descr); #if PY_MAJOR_VERSION < 3 if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS))) #endif { descrgetfunc f = Py_TYPE(descr)->tp_descr_get; if (unlikely(f)) { PyObject *res = f(descr, obj, (PyObject *)tp); Py_DECREF(descr); return res; } } return descr; } #endif /* PyObject_GenericGetAttr */ #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) { if (unlikely(Py_TYPE(obj)->tp_dictoffset)) { return PyObject_GenericGetAttr(obj, attr_name); } return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name); } #endif /* SetupReduce */ static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { int ret; PyObject *name_attr; name_attr = __Pyx_PyObject_GetAttrStr(meth, __pyx_n_s_name_2); if (likely(name_attr)) { ret = PyObject_RichCompareBool(name_attr, name, Py_EQ); } else { ret = -1; } if (unlikely(ret < 0)) { PyErr_Clear(); ret = 0; } Py_XDECREF(name_attr); return ret; } static int __Pyx_setup_reduce(PyObject* type_obj) { int ret = 0; PyObject *object_reduce = NULL; PyObject *object_reduce_ex = NULL; PyObject *reduce = NULL; PyObject *reduce_ex = NULL; PyObject *reduce_cython = NULL; PyObject *setstate = NULL; PyObject *setstate_cython = NULL; #if CYTHON_USE_PYTYPE_LOOKUP if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD; #else if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD; #endif #if CYTHON_USE_PYTYPE_LOOKUP object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; #else object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; #endif reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto BAD; if (reduce_ex == object_reduce_ex) { #if CYTHON_USE_PYTYPE_LOOKUP object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; #else object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; #endif reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD; if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD; ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD; ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD; setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); if (!setstate) PyErr_Clear(); if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD; ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD; ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD; } PyType_Modified((PyTypeObject*)type_obj); } } goto GOOD; BAD: if (!PyErr_Occurred()) PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); ret = -1; GOOD: #if !CYTHON_USE_PYTYPE_LOOKUP Py_XDECREF(object_reduce); Py_XDECREF(object_reduce_ex); #endif Py_XDECREF(reduce); Py_XDECREF(reduce_ex); Py_XDECREF(reduce_cython); Py_XDECREF(setstate); Py_XDECREF(setstate_cython); return ret; } /* SetVTable */ static int __Pyx_SetVtable(PyObject *dict, void *vtable) { #if PY_VERSION_HEX >= 0x02070000 PyObject *ob = PyCapsule_New(vtable, 0, 0); #else PyObject *ob = PyCObject_FromVoidPtr(vtable, 0); #endif if (!ob) goto bad; if (PyDict_SetItem(dict, __pyx_n_s_pyx_vtable, ob) < 0) goto bad; Py_DECREF(ob); return 0; bad: Py_XDECREF(ob); return -1; } /* TypeImport */ #ifndef __PYX_HAVE_RT_ImportType #define __PYX_HAVE_RT_ImportType static PyTypeObject *__Pyx_ImportType(PyObject *module, const char *module_name, const char *class_name, size_t size, enum __Pyx_ImportType_CheckSize check_size) { PyObject *result = 0; char warning[200]; Py_ssize_t basicsize; #ifdef Py_LIMITED_API PyObject *py_basicsize; #endif result = PyObject_GetAttrString(module, class_name); if (!result) goto bad; if (!PyType_Check(result)) { PyErr_Format(PyExc_TypeError, "%.200s.%.200s is not a type object", module_name, class_name); goto bad; } #ifndef Py_LIMITED_API basicsize = ((PyTypeObject *)result)->tp_basicsize; #else py_basicsize = PyObject_GetAttrString(result, "__basicsize__"); if (!py_basicsize) goto bad; basicsize = PyLong_AsSsize_t(py_basicsize); Py_DECREF(py_basicsize); py_basicsize = 0; if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred()) goto bad; #endif if ((size_t)basicsize < size) { PyErr_Format(PyExc_ValueError, "%.200s.%.200s size changed, may indicate binary incompatibility. " "Expected %zd from C header, got %zd from PyObject", module_name, class_name, size, basicsize); goto bad; } if (check_size == __Pyx_ImportType_CheckSize_Error && (size_t)basicsize != size) { PyErr_Format(PyExc_ValueError, "%.200s.%.200s size changed, may indicate binary incompatibility. " "Expected %zd from C header, got %zd from PyObject", module_name, class_name, size, basicsize); goto bad; } else if (check_size == __Pyx_ImportType_CheckSize_Warn && (size_t)basicsize > size) { PyOS_snprintf(warning, sizeof(warning), "%s.%s size changed, may indicate binary incompatibility. " "Expected %zd from C header, got %zd from PyObject", module_name, class_name, size, basicsize); if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad; } return (PyTypeObject *)result; bad: Py_XDECREF(result); return NULL; } #endif /* CalculateMetaclass */ static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases) { Py_ssize_t i, nbases = PyTuple_GET_SIZE(bases); for (i=0; i < nbases; i++) { PyTypeObject *tmptype; PyObject *tmp = PyTuple_GET_ITEM(bases, i); tmptype = Py_TYPE(tmp); #if PY_MAJOR_VERSION < 3 if (tmptype == &PyClass_Type) continue; #endif if (!metaclass) { metaclass = tmptype; continue; } if (PyType_IsSubtype(metaclass, tmptype)) continue; if (PyType_IsSubtype(tmptype, metaclass)) { metaclass = tmptype; continue; } PyErr_SetString(PyExc_TypeError, "metaclass conflict: " "the metaclass of a derived class " "must be a (non-strict) subclass " "of the metaclasses of all its bases"); return NULL; } if (!metaclass) { #if PY_MAJOR_VERSION < 3 metaclass = &PyClass_Type; #else metaclass = &PyType_Type; #endif } Py_INCREF((PyObject*) metaclass); return (PyObject*) metaclass; } /* Py3ClassCreate */ static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc) { PyObject *ns; if (metaclass) { PyObject *prep = __Pyx_PyObject_GetAttrStr(metaclass, __pyx_n_s_prepare); if (prep) { PyObject *pargs = PyTuple_Pack(2, name, bases); if (unlikely(!pargs)) { Py_DECREF(prep); return NULL; } ns = PyObject_Call(prep, pargs, mkw); Py_DECREF(prep); Py_DECREF(pargs); } else { if (unlikely(!PyErr_ExceptionMatches(PyExc_AttributeError))) return NULL; PyErr_Clear(); ns = PyDict_New(); } } else { ns = PyDict_New(); } if (unlikely(!ns)) return NULL; if (unlikely(PyObject_SetItem(ns, __pyx_n_s_module_2, modname) < 0)) goto bad; if (unlikely(PyObject_SetItem(ns, __pyx_n_s_qualname, qualname) < 0)) goto bad; if (unlikely(doc && PyObject_SetItem(ns, __pyx_n_s_doc, doc) < 0)) goto bad; return ns; bad: Py_DECREF(ns); return NULL; } static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict, PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass) { PyObject *result, *margs; PyObject *owned_metaclass = NULL; if (allow_py2_metaclass) { owned_metaclass = PyObject_GetItem(dict, __pyx_n_s_metaclass); if (owned_metaclass) { metaclass = owned_metaclass; } else if (likely(PyErr_ExceptionMatches(PyExc_KeyError))) { PyErr_Clear(); } else { return NULL; } } if (calculate_metaclass && (!metaclass || PyType_Check(metaclass))) { metaclass = __Pyx_CalculateMetaclass((PyTypeObject*) metaclass, bases); Py_XDECREF(owned_metaclass); if (unlikely(!metaclass)) return NULL; owned_metaclass = metaclass; } margs = PyTuple_Pack(3, name, bases, dict); if (unlikely(!margs)) { result = NULL; } else { result = PyObject_Call(metaclass, margs, mkw); Py_DECREF(margs); } Py_XDECREF(owned_metaclass); return result; } /* CLineInTraceback */ #ifndef CYTHON_CLINE_IN_TRACEBACK static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { PyObject *use_cline; PyObject *ptype, *pvalue, *ptraceback; #if CYTHON_COMPILING_IN_CPYTHON PyObject **cython_runtime_dict; #endif if (unlikely(!__pyx_cython_runtime)) { return c_line; } __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); #if CYTHON_COMPILING_IN_CPYTHON cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime); if (likely(cython_runtime_dict)) { __PYX_PY_DICT_LOOKUP_IF_MODIFIED( use_cline, *cython_runtime_dict, __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback)) } else #endif { PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback); if (use_cline_obj) { use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True; Py_DECREF(use_cline_obj); } else { PyErr_Clear(); use_cline = NULL; } } if (!use_cline) { c_line = 0; PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); } else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { c_line = 0; } __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); return c_line; } #endif /* CodeObjectCache */ static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { int start = 0, mid = 0, end = count - 1; if (end >= 0 && code_line > entries[end].code_line) { return count; } while (start < end) { mid = start + (end - start) / 2; if (code_line < entries[mid].code_line) { end = mid; } else if (code_line > entries[mid].code_line) { start = mid + 1; } else { return mid; } } if (code_line <= entries[mid].code_line) { return mid; } else { return mid + 1; } } static PyCodeObject *__pyx_find_code_object(int code_line) { PyCodeObject* code_object; int pos; if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) { return NULL; } pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) { return NULL; } code_object = __pyx_code_cache.entries[pos].code_object; Py_INCREF(code_object); return code_object; } static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { int pos, i; __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; if (unlikely(!code_line)) { return; } if (unlikely(!entries)) { entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); if (likely(entries)) { __pyx_code_cache.entries = entries; __pyx_code_cache.max_count = 64; __pyx_code_cache.count = 1; entries[0].code_line = code_line; entries[0].code_object = code_object; Py_INCREF(code_object); } return; } pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) { PyCodeObject* tmp = entries[pos].code_object; entries[pos].code_object = code_object; Py_DECREF(tmp); return; } if (__pyx_code_cache.count == __pyx_code_cache.max_count) { int new_max = __pyx_code_cache.max_count + 64; entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); if (unlikely(!entries)) { return; } __pyx_code_cache.entries = entries; __pyx_code_cache.max_count = new_max; } for (i=__pyx_code_cache.count; i>pos; i--) { entries[i] = entries[i-1]; } entries[pos].code_line = code_line; entries[pos].code_object = code_object; __pyx_code_cache.count++; Py_INCREF(code_object); } /* AddTraceback */ #include "compile.h" #include "frameobject.h" #include "traceback.h" static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( const char *funcname, int c_line, int py_line, const char *filename) { PyCodeObject *py_code = 0; PyObject *py_srcfile = 0; PyObject *py_funcname = 0; #if PY_MAJOR_VERSION < 3 py_srcfile = PyString_FromString(filename); #else py_srcfile = PyUnicode_FromString(filename); #endif if (!py_srcfile) goto bad; if (c_line) { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); #else py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); #endif } else { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromString(funcname); #else py_funcname = PyUnicode_FromString(funcname); #endif } if (!py_funcname) goto bad; py_code = __Pyx_PyCode_New( 0, 0, 0, 0, 0, __pyx_empty_bytes, /*PyObject *code,*/ __pyx_empty_tuple, /*PyObject *consts,*/ __pyx_empty_tuple, /*PyObject *names,*/ __pyx_empty_tuple, /*PyObject *varnames,*/ __pyx_empty_tuple, /*PyObject *freevars,*/ __pyx_empty_tuple, /*PyObject *cellvars,*/ py_srcfile, /*PyObject *filename,*/ py_funcname, /*PyObject *name,*/ py_line, __pyx_empty_bytes /*PyObject *lnotab*/ ); Py_DECREF(py_srcfile); Py_DECREF(py_funcname); return py_code; bad: Py_XDECREF(py_srcfile); Py_XDECREF(py_funcname); return NULL; } static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename) { PyCodeObject *py_code = 0; PyFrameObject *py_frame = 0; PyThreadState *tstate = __Pyx_PyThreadState_Current; if (c_line) { c_line = __Pyx_CLineForTraceback(tstate, c_line); } py_code = __pyx_find_code_object(c_line ? -c_line : py_line); if (!py_code) { py_code = __Pyx_CreateCodeObjectForTraceback( funcname, c_line, py_line, filename); if (!py_code) goto bad; __pyx_insert_code_object(c_line ? -c_line : py_line, py_code); } py_frame = PyFrame_New( tstate, /*PyThreadState *tstate,*/ py_code, /*PyCodeObject *code,*/ __pyx_d, /*PyObject *globals,*/ 0 /*PyObject *locals*/ ); if (!py_frame) goto bad; __Pyx_PyFrame_SetLineNumber(py_frame, py_line); PyTraceBack_Here(py_frame); bad: Py_XDECREF(py_code); Py_XDECREF(py_frame); } #if PY_MAJOR_VERSION < 3 static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags) { if (PyObject_CheckBuffer(obj)) return PyObject_GetBuffer(obj, view, flags); if (__Pyx_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) return __pyx_pw_5numpy_7ndarray_1__getbuffer__(obj, view, flags); if (__Pyx_TypeCheck(obj, __pyx_array_type)) return __pyx_array_getbuffer(obj, view, flags); if (__Pyx_TypeCheck(obj, __pyx_memoryview_type)) return __pyx_memoryview_getbuffer(obj, view, flags); PyErr_Format(PyExc_TypeError, "'%.200s' does not have the buffer interface", Py_TYPE(obj)->tp_name); return -1; } static void __Pyx_ReleaseBuffer(Py_buffer *view) { PyObject *obj = view->obj; if (!obj) return; if (PyObject_CheckBuffer(obj)) { PyBuffer_Release(view); return; } if ((0)) {} else if (__Pyx_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) __pyx_pw_5numpy_7ndarray_3__releasebuffer__(obj, view); view->obj = NULL; Py_DECREF(obj); } #endif /* MemviewSliceIsContig */ static int __pyx_memviewslice_is_contig(const __Pyx_memviewslice mvs, char order, int ndim) { int i, index, step, start; Py_ssize_t itemsize = mvs.memview->view.itemsize; if (order == 'F') { step = 1; start = 0; } else { step = -1; start = ndim - 1; } for (i = 0; i < ndim; i++) { index = start + step * i; if (mvs.suboffsets[index] >= 0 || mvs.strides[index] != itemsize) return 0; itemsize *= mvs.shape[index]; } return 1; } /* OverlappingSlices */ static void __pyx_get_array_memory_extents(__Pyx_memviewslice *slice, void **out_start, void **out_end, int ndim, size_t itemsize) { char *start, *end; int i; start = end = slice->data; for (i = 0; i < ndim; i++) { Py_ssize_t stride = slice->strides[i]; Py_ssize_t extent = slice->shape[i]; if (extent == 0) { *out_start = *out_end = start; return; } else { if (stride > 0) end += stride * (extent - 1); else start += stride * (extent - 1); } } *out_start = start; *out_end = end + itemsize; } static int __pyx_slices_overlap(__Pyx_memviewslice *slice1, __Pyx_memviewslice *slice2, int ndim, size_t itemsize) { void *start1, *end1, *start2, *end2; __pyx_get_array_memory_extents(slice1, &start1, &end1, ndim, itemsize); __pyx_get_array_memory_extents(slice2, &start2, &end2, ndim, itemsize); return (start1 < end2) && (start2 < end1); } /* Capsule */ static CYTHON_INLINE PyObject * __pyx_capsule_create(void *p, CYTHON_UNUSED const char *sig) { PyObject *cobj; #if PY_VERSION_HEX >= 0x02070000 cobj = PyCapsule_New(p, sig, NULL); #else cobj = PyCObject_FromVoidPtr(p, NULL); #endif return cobj; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_MODE(MODE value) { const MODE neg_one = (MODE) ((MODE) 0 - (MODE) 1), const_zero = (MODE) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(MODE) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(MODE) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(MODE) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(MODE) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(MODE) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(MODE), little, !is_unsigned); } } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_WAVELET_NAME(WAVELET_NAME value) { const WAVELET_NAME neg_one = (WAVELET_NAME) ((WAVELET_NAME) 0 - (WAVELET_NAME) 1), const_zero = (WAVELET_NAME) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(WAVELET_NAME) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(WAVELET_NAME) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(WAVELET_NAME) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(WAVELET_NAME) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(WAVELET_NAME) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(WAVELET_NAME), little, !is_unsigned); } } /* CIntFromPyVerify */ #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) #define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) #define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\ {\ func_type value = func_value;\ if (sizeof(target_type) < sizeof(func_type)) {\ if (unlikely(value != (func_type) (target_type) value)) {\ func_type zero = 0;\ if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\ return (target_type) -1;\ if (is_unsigned && unlikely(value < zero))\ goto raise_neg_overflow;\ else\ goto raise_overflow;\ }\ }\ return (target_type) value;\ } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(int) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(int) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(int) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(int), little, !is_unsigned); } } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(long) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(long) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(long) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(long), little, !is_unsigned); } } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value) { const unsigned int neg_one = (unsigned int) ((unsigned int) 0 - (unsigned int) 1), const_zero = (unsigned int) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(unsigned int) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(unsigned int) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(unsigned int) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(unsigned int), little, !is_unsigned); } } /* Declarations */ #if CYTHON_CCOMPLEX #ifdef __cplusplus static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) { return ::std::complex< double >(x, y); } #else static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) { return x + y*(__pyx_t_double_complex)_Complex_I; } #endif #else static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) { __pyx_t_double_complex z; z.real = x; z.imag = y; return z; } #endif /* Arithmetic */ #if CYTHON_CCOMPLEX #else static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { return (a.real == b.real) && (a.imag == b.imag); } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; z.real = a.real + b.real; z.imag = a.imag + b.imag; return z; } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; z.real = a.real - b.real; z.imag = a.imag - b.imag; return z; } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; z.real = a.real * b.real - a.imag * b.imag; z.imag = a.real * b.imag + a.imag * b.real; return z; } #if 1 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { if (b.imag == 0) { return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real); } else if (fabs(b.real) >= fabs(b.imag)) { if (b.real == 0 && b.imag == 0) { return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.imag); } else { double r = b.imag / b.real; double s = (double)(1.0) / (b.real + b.imag * r); return __pyx_t_double_complex_from_parts( (a.real + a.imag * r) * s, (a.imag - a.real * r) * s); } } else { double r = b.real / b.imag; double s = (double)(1.0) / (b.imag + b.real * r); return __pyx_t_double_complex_from_parts( (a.real * r + a.imag) * s, (a.imag * r - a.real) * s); } } #else static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { if (b.imag == 0) { return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real); } else { double denom = b.real * b.real + b.imag * b.imag; return __pyx_t_double_complex_from_parts( (a.real * b.real + a.imag * b.imag) / denom, (a.imag * b.real - a.real * b.imag) / denom); } } #endif static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex a) { __pyx_t_double_complex z; z.real = -a.real; z.imag = -a.imag; return z; } static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex a) { return (a.real == 0) && (a.imag == 0); } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex a) { __pyx_t_double_complex z; z.real = a.real; z.imag = -a.imag; return z; } #if 1 static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex z) { #if !defined(HAVE_HYPOT) || defined(_MSC_VER) return sqrt(z.real*z.real + z.imag*z.imag); #else return hypot(z.real, z.imag); #endif } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; double r, lnr, theta, z_r, z_theta; if (b.imag == 0 && b.real == (int)b.real) { if (b.real < 0) { double denom = a.real * a.real + a.imag * a.imag; a.real = a.real / denom; a.imag = -a.imag / denom; b.real = -b.real; } switch ((int)b.real) { case 0: z.real = 1; z.imag = 0; return z; case 1: return a; case 2: z = __Pyx_c_prod_double(a, a); return __Pyx_c_prod_double(a, a); case 3: z = __Pyx_c_prod_double(a, a); return __Pyx_c_prod_double(z, a); case 4: z = __Pyx_c_prod_double(a, a); return __Pyx_c_prod_double(z, z); } } if (a.imag == 0) { if (a.real == 0) { return a; } else if (b.imag == 0) { z.real = pow(a.real, b.real); z.imag = 0; return z; } else if (a.real > 0) { r = a.real; theta = 0; } else { r = -a.real; theta = atan2(0.0, -1.0); } } else { r = __Pyx_c_abs_double(a); theta = atan2(a.imag, a.real); } lnr = log(r); z_r = exp(lnr * b.real - theta * b.imag); z_theta = theta * b.real + lnr * b.imag; z.real = z_r * cos(z_theta); z.imag = z_r * sin(z_theta); return z; } #endif #endif /* MemviewDtypeToObject */ static CYTHON_INLINE PyObject *__pyx_memview_get_nn___pyx_t_5numpy_float64_t(const char *itemp) { return (PyObject *) PyFloat_FromDouble(*(__pyx_t_5numpy_float64_t *) itemp); } static CYTHON_INLINE int __pyx_memview_set_nn___pyx_t_5numpy_float64_t(const char *itemp, PyObject *obj) { __pyx_t_5numpy_float64_t value = __pyx_PyFloat_AsDouble(obj); if ((value == ((npy_float64)-1)) && PyErr_Occurred()) return 0; *(__pyx_t_5numpy_float64_t *) itemp = value; return 1; } /* MemviewDtypeToObject */ static CYTHON_INLINE PyObject *__pyx_memview_get_nn___pyx_t_5numpy_float32_t(const char *itemp) { return (PyObject *) PyFloat_FromDouble(*(__pyx_t_5numpy_float32_t *) itemp); } static CYTHON_INLINE int __pyx_memview_set_nn___pyx_t_5numpy_float32_t(const char *itemp, PyObject *obj) { __pyx_t_5numpy_float32_t value = __pyx_PyFloat_AsFloat(obj); if ((value == ((npy_float32)-1)) && PyErr_Occurred()) return 0; *(__pyx_t_5numpy_float32_t *) itemp = value; return 1; } /* Declarations */ #if CYTHON_CCOMPLEX #ifdef __cplusplus static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { return ::std::complex< float >(x, y); } #else static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { return x + y*(__pyx_t_float_complex)_Complex_I; } #endif #else static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { __pyx_t_float_complex z; z.real = x; z.imag = y; return z; } #endif /* Arithmetic */ #if CYTHON_CCOMPLEX #else static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { return (a.real == b.real) && (a.imag == b.imag); } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; z.real = a.real + b.real; z.imag = a.imag + b.imag; return z; } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; z.real = a.real - b.real; z.imag = a.imag - b.imag; return z; } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; z.real = a.real * b.real - a.imag * b.imag; z.imag = a.real * b.imag + a.imag * b.real; return z; } #if 1 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { if (b.imag == 0) { return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real); } else if (fabsf(b.real) >= fabsf(b.imag)) { if (b.real == 0 && b.imag == 0) { return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.imag); } else { float r = b.imag / b.real; float s = (float)(1.0) / (b.real + b.imag * r); return __pyx_t_float_complex_from_parts( (a.real + a.imag * r) * s, (a.imag - a.real * r) * s); } } else { float r = b.real / b.imag; float s = (float)(1.0) / (b.imag + b.real * r); return __pyx_t_float_complex_from_parts( (a.real * r + a.imag) * s, (a.imag * r - a.real) * s); } } #else static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { if (b.imag == 0) { return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real); } else { float denom = b.real * b.real + b.imag * b.imag; return __pyx_t_float_complex_from_parts( (a.real * b.real + a.imag * b.imag) / denom, (a.imag * b.real - a.real * b.imag) / denom); } } #endif static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex a) { __pyx_t_float_complex z; z.real = -a.real; z.imag = -a.imag; return z; } static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex a) { return (a.real == 0) && (a.imag == 0); } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex a) { __pyx_t_float_complex z; z.real = a.real; z.imag = -a.imag; return z; } #if 1 static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex z) { #if !defined(HAVE_HYPOT) || defined(_MSC_VER) return sqrtf(z.real*z.real + z.imag*z.imag); #else return hypotf(z.real, z.imag); #endif } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; float r, lnr, theta, z_r, z_theta; if (b.imag == 0 && b.real == (int)b.real) { if (b.real < 0) { float denom = a.real * a.real + a.imag * a.imag; a.real = a.real / denom; a.imag = -a.imag / denom; b.real = -b.real; } switch ((int)b.real) { case 0: z.real = 1; z.imag = 0; return z; case 1: return a; case 2: z = __Pyx_c_prod_float(a, a); return __Pyx_c_prod_float(a, a); case 3: z = __Pyx_c_prod_float(a, a); return __Pyx_c_prod_float(z, a); case 4: z = __Pyx_c_prod_float(a, a); return __Pyx_c_prod_float(z, z); } } if (a.imag == 0) { if (a.real == 0) { return a; } else if (b.imag == 0) { z.real = powf(a.real, b.real); z.imag = 0; return z; } else if (a.real > 0) { r = a.real; theta = 0; } else { r = -a.real; theta = atan2f(0.0, -1.0); } } else { r = __Pyx_c_abs_float(a); theta = atan2f(a.imag, a.real); } lnr = logf(r); z_r = expf(lnr * b.real - theta * b.imag); z_theta = theta * b.real + lnr * b.imag; z.real = z_r * cosf(z_theta); z.imag = z_r * sinf(z_theta); return z; } #endif #endif /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { const enum NPY_TYPES neg_one = (enum NPY_TYPES) ((enum NPY_TYPES) 0 - (enum NPY_TYPES) 1), const_zero = (enum NPY_TYPES) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(enum NPY_TYPES) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(enum NPY_TYPES) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(enum NPY_TYPES) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(enum NPY_TYPES), little, !is_unsigned); } } /* MemviewSliceCopyTemplate */ static __Pyx_memviewslice __pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs, const char *mode, int ndim, size_t sizeof_dtype, int contig_flag, int dtype_is_object) { __Pyx_RefNannyDeclarations int i; __Pyx_memviewslice new_mvs = { 0, 0, { 0 }, { 0 }, { 0 } }; struct __pyx_memoryview_obj *from_memview = from_mvs->memview; Py_buffer *buf = &from_memview->view; PyObject *shape_tuple = NULL; PyObject *temp_int = NULL; struct __pyx_array_obj *array_obj = NULL; struct __pyx_memoryview_obj *memview_obj = NULL; __Pyx_RefNannySetupContext("__pyx_memoryview_copy_new_contig", 0); for (i = 0; i < ndim; i++) { if (from_mvs->suboffsets[i] >= 0) { PyErr_Format(PyExc_ValueError, "Cannot copy memoryview slice with " "indirect dimensions (axis %d)", i); goto fail; } } shape_tuple = PyTuple_New(ndim); if (unlikely(!shape_tuple)) { goto fail; } __Pyx_GOTREF(shape_tuple); for(i = 0; i < ndim; i++) { temp_int = PyInt_FromSsize_t(from_mvs->shape[i]); if(unlikely(!temp_int)) { goto fail; } else { PyTuple_SET_ITEM(shape_tuple, i, temp_int); temp_int = NULL; } } array_obj = __pyx_array_new(shape_tuple, sizeof_dtype, buf->format, (char *) mode, NULL); if (unlikely(!array_obj)) { goto fail; } __Pyx_GOTREF(array_obj); memview_obj = (struct __pyx_memoryview_obj *) __pyx_memoryview_new( (PyObject *) array_obj, contig_flag, dtype_is_object, from_mvs->memview->typeinfo); if (unlikely(!memview_obj)) goto fail; if (unlikely(__Pyx_init_memviewslice(memview_obj, ndim, &new_mvs, 1) < 0)) goto fail; if (unlikely(__pyx_memoryview_copy_contents(*from_mvs, new_mvs, ndim, ndim, dtype_is_object) < 0)) goto fail; goto no_fail; fail: __Pyx_XDECREF(new_mvs.memview); new_mvs.memview = NULL; new_mvs.data = NULL; no_fail: __Pyx_XDECREF(shape_tuple); __Pyx_XDECREF(temp_int); __Pyx_XDECREF(array_obj); __Pyx_RefNannyFinishContext(); return new_mvs; } /* TypeInfoToFormat */ static struct __pyx_typeinfo_string __Pyx_TypeInfoToFormat(__Pyx_TypeInfo *type) { struct __pyx_typeinfo_string result = { {0} }; char *buf = (char *) result.string; size_t size = type->size; switch (type->typegroup) { case 'H': *buf = 'c'; break; case 'I': case 'U': if (size == 1) *buf = (type->is_unsigned) ? 'B' : 'b'; else if (size == 2) *buf = (type->is_unsigned) ? 'H' : 'h'; else if (size == 4) *buf = (type->is_unsigned) ? 'I' : 'i'; else if (size == 8) *buf = (type->is_unsigned) ? 'Q' : 'q'; break; case 'P': *buf = 'P'; break; case 'C': { __Pyx_TypeInfo complex_type = *type; complex_type.typegroup = 'R'; complex_type.size /= 2; *buf++ = 'Z'; *buf = __Pyx_TypeInfoToFormat(&complex_type).string[0]; break; } case 'R': if (size == 4) *buf = 'f'; else if (size == 8) *buf = 'd'; else *buf = 'g'; break; } return result; } /* CIntFromPy */ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(int) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (int) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (int) 0; case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) case 2: if (8 * sizeof(int) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); } } break; case 3: if (8 * sizeof(int) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); } } break; case 4: if (8 * sizeof(int) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (int) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(int) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (int) 0; case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) case -2: if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case 2: if (8 * sizeof(int) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case -3: if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case 3: if (8 * sizeof(int) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case -4: if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case 4: if (8 * sizeof(int) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; } #endif if (sizeof(int) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else int val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (int) -1; } } else { int val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (int) -1; val = __Pyx_PyInt_As_int(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to int"); return (int) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to int"); return (int) -1; } /* CIntFromPy */ static CYTHON_INLINE unsigned int __Pyx_PyInt_As_unsigned_int(PyObject *x) { const unsigned int neg_one = (unsigned int) ((unsigned int) 0 - (unsigned int) 1), const_zero = (unsigned int) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(unsigned int) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(unsigned int, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (unsigned int) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (unsigned int) 0; case 1: __PYX_VERIFY_RETURN_INT(unsigned int, digit, digits[0]) case 2: if (8 * sizeof(unsigned int) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) >= 2 * PyLong_SHIFT) { return (unsigned int) (((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])); } } break; case 3: if (8 * sizeof(unsigned int) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) >= 3 * PyLong_SHIFT) { return (unsigned int) (((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])); } } break; case 4: if (8 * sizeof(unsigned int) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) >= 4 * PyLong_SHIFT) { return (unsigned int) (((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (unsigned int) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(unsigned int) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (unsigned int) 0; case -1: __PYX_VERIFY_RETURN_INT(unsigned int, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(unsigned int, digit, +digits[0]) case -2: if (8 * sizeof(unsigned int) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT) { return (unsigned int) (((unsigned int)-1)*(((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; case 2: if (8 * sizeof(unsigned int) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT) { return (unsigned int) ((((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; case -3: if (8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT) { return (unsigned int) (((unsigned int)-1)*(((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; case 3: if (8 * sizeof(unsigned int) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT) { return (unsigned int) ((((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; case -4: if (8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT) { return (unsigned int) (((unsigned int)-1)*(((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; case 4: if (8 * sizeof(unsigned int) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT) { return (unsigned int) ((((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; } #endif if (sizeof(unsigned int) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(unsigned int, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(unsigned int, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else unsigned int val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (unsigned int) -1; } } else { unsigned int val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (unsigned int) -1; val = __Pyx_PyInt_As_unsigned_int(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to unsigned int"); return (unsigned int) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to unsigned int"); return (unsigned int) -1; } /* CIntFromPy */ static CYTHON_INLINE WAVELET_NAME __Pyx_PyInt_As_WAVELET_NAME(PyObject *x) { const WAVELET_NAME neg_one = (WAVELET_NAME) ((WAVELET_NAME) 0 - (WAVELET_NAME) 1), const_zero = (WAVELET_NAME) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(WAVELET_NAME) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(WAVELET_NAME, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (WAVELET_NAME) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (WAVELET_NAME) 0; case 1: __PYX_VERIFY_RETURN_INT(WAVELET_NAME, digit, digits[0]) case 2: if (8 * sizeof(WAVELET_NAME) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(WAVELET_NAME, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(WAVELET_NAME) >= 2 * PyLong_SHIFT) { return (WAVELET_NAME) (((((WAVELET_NAME)digits[1]) << PyLong_SHIFT) | (WAVELET_NAME)digits[0])); } } break; case 3: if (8 * sizeof(WAVELET_NAME) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(WAVELET_NAME, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(WAVELET_NAME) >= 3 * PyLong_SHIFT) { return (WAVELET_NAME) (((((((WAVELET_NAME)digits[2]) << PyLong_SHIFT) | (WAVELET_NAME)digits[1]) << PyLong_SHIFT) | (WAVELET_NAME)digits[0])); } } break; case 4: if (8 * sizeof(WAVELET_NAME) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(WAVELET_NAME, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(WAVELET_NAME) >= 4 * PyLong_SHIFT) { return (WAVELET_NAME) (((((((((WAVELET_NAME)digits[3]) << PyLong_SHIFT) | (WAVELET_NAME)digits[2]) << PyLong_SHIFT) | (WAVELET_NAME)digits[1]) << PyLong_SHIFT) | (WAVELET_NAME)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (WAVELET_NAME) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(WAVELET_NAME) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(WAVELET_NAME, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(WAVELET_NAME) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(WAVELET_NAME, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (WAVELET_NAME) 0; case -1: __PYX_VERIFY_RETURN_INT(WAVELET_NAME, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(WAVELET_NAME, digit, +digits[0]) case -2: if (8 * sizeof(WAVELET_NAME) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(WAVELET_NAME, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(WAVELET_NAME) - 1 > 2 * PyLong_SHIFT) { return (WAVELET_NAME) (((WAVELET_NAME)-1)*(((((WAVELET_NAME)digits[1]) << PyLong_SHIFT) | (WAVELET_NAME)digits[0]))); } } break; case 2: if (8 * sizeof(WAVELET_NAME) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(WAVELET_NAME, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(WAVELET_NAME) - 1 > 2 * PyLong_SHIFT) { return (WAVELET_NAME) ((((((WAVELET_NAME)digits[1]) << PyLong_SHIFT) | (WAVELET_NAME)digits[0]))); } } break; case -3: if (8 * sizeof(WAVELET_NAME) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(WAVELET_NAME, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(WAVELET_NAME) - 1 > 3 * PyLong_SHIFT) { return (WAVELET_NAME) (((WAVELET_NAME)-1)*(((((((WAVELET_NAME)digits[2]) << PyLong_SHIFT) | (WAVELET_NAME)digits[1]) << PyLong_SHIFT) | (WAVELET_NAME)digits[0]))); } } break; case 3: if (8 * sizeof(WAVELET_NAME) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(WAVELET_NAME, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(WAVELET_NAME) - 1 > 3 * PyLong_SHIFT) { return (WAVELET_NAME) ((((((((WAVELET_NAME)digits[2]) << PyLong_SHIFT) | (WAVELET_NAME)digits[1]) << PyLong_SHIFT) | (WAVELET_NAME)digits[0]))); } } break; case -4: if (8 * sizeof(WAVELET_NAME) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(WAVELET_NAME, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(WAVELET_NAME) - 1 > 4 * PyLong_SHIFT) { return (WAVELET_NAME) (((WAVELET_NAME)-1)*(((((((((WAVELET_NAME)digits[3]) << PyLong_SHIFT) | (WAVELET_NAME)digits[2]) << PyLong_SHIFT) | (WAVELET_NAME)digits[1]) << PyLong_SHIFT) | (WAVELET_NAME)digits[0]))); } } break; case 4: if (8 * sizeof(WAVELET_NAME) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(WAVELET_NAME, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(WAVELET_NAME) - 1 > 4 * PyLong_SHIFT) { return (WAVELET_NAME) ((((((((((WAVELET_NAME)digits[3]) << PyLong_SHIFT) | (WAVELET_NAME)digits[2]) << PyLong_SHIFT) | (WAVELET_NAME)digits[1]) << PyLong_SHIFT) | (WAVELET_NAME)digits[0]))); } } break; } #endif if (sizeof(WAVELET_NAME) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(WAVELET_NAME, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(WAVELET_NAME) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(WAVELET_NAME, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else WAVELET_NAME val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (WAVELET_NAME) -1; } } else { WAVELET_NAME val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (WAVELET_NAME) -1; val = __Pyx_PyInt_As_WAVELET_NAME(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to WAVELET_NAME"); return (WAVELET_NAME) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to WAVELET_NAME"); return (WAVELET_NAME) -1; } /* CIntFromPy */ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(long) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (long) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (long) 0; case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) case 2: if (8 * sizeof(long) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); } } break; case 3: if (8 * sizeof(long) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); } } break; case 4: if (8 * sizeof(long) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (long) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(long) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (long) 0; case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) case -2: if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case 2: if (8 * sizeof(long) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case -3: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case 3: if (8 * sizeof(long) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case -4: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case 4: if (8 * sizeof(long) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; } #endif if (sizeof(long) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else long val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (long) -1; } } else { long val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (long) -1; val = __Pyx_PyInt_As_long(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to long"); return (long) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to long"); return (long) -1; } /* CIntFromPy */ static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *x) { const char neg_one = (char) ((char) 0 - (char) 1), const_zero = (char) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(char) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(char, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (char) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (char) 0; case 1: __PYX_VERIFY_RETURN_INT(char, digit, digits[0]) case 2: if (8 * sizeof(char) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) >= 2 * PyLong_SHIFT) { return (char) (((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0])); } } break; case 3: if (8 * sizeof(char) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) >= 3 * PyLong_SHIFT) { return (char) (((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])); } } break; case 4: if (8 * sizeof(char) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) >= 4 * PyLong_SHIFT) { return (char) (((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (char) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(char) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(char, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(char) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(char, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (char) 0; case -1: __PYX_VERIFY_RETURN_INT(char, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(char, digit, +digits[0]) case -2: if (8 * sizeof(char) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) { return (char) (((char)-1)*(((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; case 2: if (8 * sizeof(char) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) { return (char) ((((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; case -3: if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) { return (char) (((char)-1)*(((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; case 3: if (8 * sizeof(char) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) { return (char) ((((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; case -4: if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 4 * PyLong_SHIFT) { return (char) (((char)-1)*(((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; case 4: if (8 * sizeof(char) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 4 * PyLong_SHIFT) { return (char) ((((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; } #endif if (sizeof(char) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(char, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(char) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(char, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else char val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (char) -1; } } else { char val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (char) -1; val = __Pyx_PyInt_As_char(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to char"); return (char) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to char"); return (char) -1; } /* IsLittleEndian */ static CYTHON_INLINE int __Pyx_Is_Little_Endian(void) { union { uint32_t u32; uint8_t u8[4]; } S; S.u32 = 0x01020304; return S.u8[0] == 4; } /* BufferFormatCheck */ static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx, __Pyx_BufFmt_StackElem* stack, __Pyx_TypeInfo* type) { stack[0].field = &ctx->root; stack[0].parent_offset = 0; ctx->root.type = type; ctx->root.name = "buffer dtype"; ctx->root.offset = 0; ctx->head = stack; ctx->head->field = &ctx->root; ctx->fmt_offset = 0; ctx->head->parent_offset = 0; ctx->new_packmode = '@'; ctx->enc_packmode = '@'; ctx->new_count = 1; ctx->enc_count = 0; ctx->enc_type = 0; ctx->is_complex = 0; ctx->is_valid_array = 0; ctx->struct_alignment = 0; while (type->typegroup == 'S') { ++ctx->head; ctx->head->field = type->fields; ctx->head->parent_offset = 0; type = type->fields->type; } } static int __Pyx_BufFmt_ParseNumber(const char** ts) { int count; const char* t = *ts; if (*t < '0' || *t > '9') { return -1; } else { count = *t++ - '0'; while (*t >= '0' && *t <= '9') { count *= 10; count += *t++ - '0'; } } *ts = t; return count; } static int __Pyx_BufFmt_ExpectNumber(const char **ts) { int number = __Pyx_BufFmt_ParseNumber(ts); if (number == -1) PyErr_Format(PyExc_ValueError,\ "Does not understand character buffer dtype format string ('%c')", **ts); return number; } static void __Pyx_BufFmt_RaiseUnexpectedChar(char ch) { PyErr_Format(PyExc_ValueError, "Unexpected format string character: '%c'", ch); } static const char* __Pyx_BufFmt_DescribeTypeChar(char ch, int is_complex) { switch (ch) { case 'c': return "'char'"; case 'b': return "'signed char'"; case 'B': return "'unsigned char'"; case 'h': return "'short'"; case 'H': return "'unsigned short'"; case 'i': return "'int'"; case 'I': return "'unsigned int'"; case 'l': return "'long'"; case 'L': return "'unsigned long'"; case 'q': return "'long long'"; case 'Q': return "'unsigned long long'"; case 'f': return (is_complex ? "'complex float'" : "'float'"); case 'd': return (is_complex ? "'complex double'" : "'double'"); case 'g': return (is_complex ? "'complex long double'" : "'long double'"); case 'T': return "a struct"; case 'O': return "Python object"; case 'P': return "a pointer"; case 's': case 'p': return "a string"; case 0: return "end"; default: return "unparseable format string"; } } static size_t __Pyx_BufFmt_TypeCharToStandardSize(char ch, int is_complex) { switch (ch) { case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; case 'h': case 'H': return 2; case 'i': case 'I': case 'l': case 'L': return 4; case 'q': case 'Q': return 8; case 'f': return (is_complex ? 8 : 4); case 'd': return (is_complex ? 16 : 8); case 'g': { PyErr_SetString(PyExc_ValueError, "Python does not define a standard format string size for long double ('g').."); return 0; } case 'O': case 'P': return sizeof(void*); default: __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } static size_t __Pyx_BufFmt_TypeCharToNativeSize(char ch, int is_complex) { switch (ch) { case 'c': case 'b': case 'B': case 's': case 'p': return 1; case 'h': case 'H': return sizeof(short); case 'i': case 'I': return sizeof(int); case 'l': case 'L': return sizeof(long); #ifdef HAVE_LONG_LONG case 'q': case 'Q': return sizeof(PY_LONG_LONG); #endif case 'f': return sizeof(float) * (is_complex ? 2 : 1); case 'd': return sizeof(double) * (is_complex ? 2 : 1); case 'g': return sizeof(long double) * (is_complex ? 2 : 1); case 'O': case 'P': return sizeof(void*); default: { __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } } typedef struct { char c; short x; } __Pyx_st_short; typedef struct { char c; int x; } __Pyx_st_int; typedef struct { char c; long x; } __Pyx_st_long; typedef struct { char c; float x; } __Pyx_st_float; typedef struct { char c; double x; } __Pyx_st_double; typedef struct { char c; long double x; } __Pyx_st_longdouble; typedef struct { char c; void *x; } __Pyx_st_void_p; #ifdef HAVE_LONG_LONG typedef struct { char c; PY_LONG_LONG x; } __Pyx_st_longlong; #endif static size_t __Pyx_BufFmt_TypeCharToAlignment(char ch, CYTHON_UNUSED int is_complex) { switch (ch) { case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; case 'h': case 'H': return sizeof(__Pyx_st_short) - sizeof(short); case 'i': case 'I': return sizeof(__Pyx_st_int) - sizeof(int); case 'l': case 'L': return sizeof(__Pyx_st_long) - sizeof(long); #ifdef HAVE_LONG_LONG case 'q': case 'Q': return sizeof(__Pyx_st_longlong) - sizeof(PY_LONG_LONG); #endif case 'f': return sizeof(__Pyx_st_float) - sizeof(float); case 'd': return sizeof(__Pyx_st_double) - sizeof(double); case 'g': return sizeof(__Pyx_st_longdouble) - sizeof(long double); case 'P': case 'O': return sizeof(__Pyx_st_void_p) - sizeof(void*); default: __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } /* These are for computing the padding at the end of the struct to align on the first member of the struct. This will probably the same as above, but we don't have any guarantees. */ typedef struct { short x; char c; } __Pyx_pad_short; typedef struct { int x; char c; } __Pyx_pad_int; typedef struct { long x; char c; } __Pyx_pad_long; typedef struct { float x; char c; } __Pyx_pad_float; typedef struct { double x; char c; } __Pyx_pad_double; typedef struct { long double x; char c; } __Pyx_pad_longdouble; typedef struct { void *x; char c; } __Pyx_pad_void_p; #ifdef HAVE_LONG_LONG typedef struct { PY_LONG_LONG x; char c; } __Pyx_pad_longlong; #endif static size_t __Pyx_BufFmt_TypeCharToPadding(char ch, CYTHON_UNUSED int is_complex) { switch (ch) { case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; case 'h': case 'H': return sizeof(__Pyx_pad_short) - sizeof(short); case 'i': case 'I': return sizeof(__Pyx_pad_int) - sizeof(int); case 'l': case 'L': return sizeof(__Pyx_pad_long) - sizeof(long); #ifdef HAVE_LONG_LONG case 'q': case 'Q': return sizeof(__Pyx_pad_longlong) - sizeof(PY_LONG_LONG); #endif case 'f': return sizeof(__Pyx_pad_float) - sizeof(float); case 'd': return sizeof(__Pyx_pad_double) - sizeof(double); case 'g': return sizeof(__Pyx_pad_longdouble) - sizeof(long double); case 'P': case 'O': return sizeof(__Pyx_pad_void_p) - sizeof(void*); default: __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } static char __Pyx_BufFmt_TypeCharToGroup(char ch, int is_complex) { switch (ch) { case 'c': return 'H'; case 'b': case 'h': case 'i': case 'l': case 'q': case 's': case 'p': return 'I'; case 'B': case 'H': case 'I': case 'L': case 'Q': return 'U'; case 'f': case 'd': case 'g': return (is_complex ? 'C' : 'R'); case 'O': return 'O'; case 'P': return 'P'; default: { __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } } static void __Pyx_BufFmt_RaiseExpected(__Pyx_BufFmt_Context* ctx) { if (ctx->head == NULL || ctx->head->field == &ctx->root) { const char* expected; const char* quote; if (ctx->head == NULL) { expected = "end"; quote = ""; } else { expected = ctx->head->field->type->name; quote = "'"; } PyErr_Format(PyExc_ValueError, "Buffer dtype mismatch, expected %s%s%s but got %s", quote, expected, quote, __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex)); } else { __Pyx_StructField* field = ctx->head->field; __Pyx_StructField* parent = (ctx->head - 1)->field; PyErr_Format(PyExc_ValueError, "Buffer dtype mismatch, expected '%s' but got %s in '%s.%s'", field->type->name, __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex), parent->type->name, field->name); } } static int __Pyx_BufFmt_ProcessTypeChunk(__Pyx_BufFmt_Context* ctx) { char group; size_t size, offset, arraysize = 1; if (ctx->enc_type == 0) return 0; if (ctx->head->field->type->arraysize[0]) { int i, ndim = 0; if (ctx->enc_type == 's' || ctx->enc_type == 'p') { ctx->is_valid_array = ctx->head->field->type->ndim == 1; ndim = 1; if (ctx->enc_count != ctx->head->field->type->arraysize[0]) { PyErr_Format(PyExc_ValueError, "Expected a dimension of size %zu, got %zu", ctx->head->field->type->arraysize[0], ctx->enc_count); return -1; } } if (!ctx->is_valid_array) { PyErr_Format(PyExc_ValueError, "Expected %d dimensions, got %d", ctx->head->field->type->ndim, ndim); return -1; } for (i = 0; i < ctx->head->field->type->ndim; i++) { arraysize *= ctx->head->field->type->arraysize[i]; } ctx->is_valid_array = 0; ctx->enc_count = 1; } group = __Pyx_BufFmt_TypeCharToGroup(ctx->enc_type, ctx->is_complex); do { __Pyx_StructField* field = ctx->head->field; __Pyx_TypeInfo* type = field->type; if (ctx->enc_packmode == '@' || ctx->enc_packmode == '^') { size = __Pyx_BufFmt_TypeCharToNativeSize(ctx->enc_type, ctx->is_complex); } else { size = __Pyx_BufFmt_TypeCharToStandardSize(ctx->enc_type, ctx->is_complex); } if (ctx->enc_packmode == '@') { size_t align_at = __Pyx_BufFmt_TypeCharToAlignment(ctx->enc_type, ctx->is_complex); size_t align_mod_offset; if (align_at == 0) return -1; align_mod_offset = ctx->fmt_offset % align_at; if (align_mod_offset > 0) ctx->fmt_offset += align_at - align_mod_offset; if (ctx->struct_alignment == 0) ctx->struct_alignment = __Pyx_BufFmt_TypeCharToPadding(ctx->enc_type, ctx->is_complex); } if (type->size != size || type->typegroup != group) { if (type->typegroup == 'C' && type->fields != NULL) { size_t parent_offset = ctx->head->parent_offset + field->offset; ++ctx->head; ctx->head->field = type->fields; ctx->head->parent_offset = parent_offset; continue; } if ((type->typegroup == 'H' || group == 'H') && type->size == size) { } else { __Pyx_BufFmt_RaiseExpected(ctx); return -1; } } offset = ctx->head->parent_offset + field->offset; if (ctx->fmt_offset != offset) { PyErr_Format(PyExc_ValueError, "Buffer dtype mismatch; next field is at offset %" CYTHON_FORMAT_SSIZE_T "d but %" CYTHON_FORMAT_SSIZE_T "d expected", (Py_ssize_t)ctx->fmt_offset, (Py_ssize_t)offset); return -1; } ctx->fmt_offset += size; if (arraysize) ctx->fmt_offset += (arraysize - 1) * size; --ctx->enc_count; while (1) { if (field == &ctx->root) { ctx->head = NULL; if (ctx->enc_count != 0) { __Pyx_BufFmt_RaiseExpected(ctx); return -1; } break; } ctx->head->field = ++field; if (field->type == NULL) { --ctx->head; field = ctx->head->field; continue; } else if (field->type->typegroup == 'S') { size_t parent_offset = ctx->head->parent_offset + field->offset; if (field->type->fields->type == NULL) continue; field = field->type->fields; ++ctx->head; ctx->head->field = field; ctx->head->parent_offset = parent_offset; break; } else { break; } } } while (ctx->enc_count); ctx->enc_type = 0; ctx->is_complex = 0; return 0; } static PyObject * __pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp) { const char *ts = *tsp; int i = 0, number; int ndim = ctx->head->field->type->ndim; ; ++ts; if (ctx->new_count != 1) { PyErr_SetString(PyExc_ValueError, "Cannot handle repeated arrays in format string"); return NULL; } if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; while (*ts && *ts != ')') { switch (*ts) { case ' ': case '\f': case '\r': case '\n': case '\t': case '\v': continue; default: break; } number = __Pyx_BufFmt_ExpectNumber(&ts); if (number == -1) return NULL; if (i < ndim && (size_t) number != ctx->head->field->type->arraysize[i]) return PyErr_Format(PyExc_ValueError, "Expected a dimension of size %zu, got %d", ctx->head->field->type->arraysize[i], number); if (*ts != ',' && *ts != ')') return PyErr_Format(PyExc_ValueError, "Expected a comma in format string, got '%c'", *ts); if (*ts == ',') ts++; i++; } if (i != ndim) return PyErr_Format(PyExc_ValueError, "Expected %d dimension(s), got %d", ctx->head->field->type->ndim, i); if (!*ts) { PyErr_SetString(PyExc_ValueError, "Unexpected end of format string, expected ')'"); return NULL; } ctx->is_valid_array = 1; ctx->new_count = 1; *tsp = ++ts; return Py_None; } static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts) { int got_Z = 0; while (1) { switch(*ts) { case 0: if (ctx->enc_type != 0 && ctx->head == NULL) { __Pyx_BufFmt_RaiseExpected(ctx); return NULL; } if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; if (ctx->head != NULL) { __Pyx_BufFmt_RaiseExpected(ctx); return NULL; } return ts; case ' ': case '\r': case '\n': ++ts; break; case '<': if (!__Pyx_Is_Little_Endian()) { PyErr_SetString(PyExc_ValueError, "Little-endian buffer not supported on big-endian compiler"); return NULL; } ctx->new_packmode = '='; ++ts; break; case '>': case '!': if (__Pyx_Is_Little_Endian()) { PyErr_SetString(PyExc_ValueError, "Big-endian buffer not supported on little-endian compiler"); return NULL; } ctx->new_packmode = '='; ++ts; break; case '=': case '@': case '^': ctx->new_packmode = *ts++; break; case 'T': { const char* ts_after_sub; size_t i, struct_count = ctx->new_count; size_t struct_alignment = ctx->struct_alignment; ctx->new_count = 1; ++ts; if (*ts != '{') { PyErr_SetString(PyExc_ValueError, "Buffer acquisition: Expected '{' after 'T'"); return NULL; } if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; ctx->enc_type = 0; ctx->enc_count = 0; ctx->struct_alignment = 0; ++ts; ts_after_sub = ts; for (i = 0; i != struct_count; ++i) { ts_after_sub = __Pyx_BufFmt_CheckString(ctx, ts); if (!ts_after_sub) return NULL; } ts = ts_after_sub; if (struct_alignment) ctx->struct_alignment = struct_alignment; } break; case '}': { size_t alignment = ctx->struct_alignment; ++ts; if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; ctx->enc_type = 0; if (alignment && ctx->fmt_offset % alignment) { ctx->fmt_offset += alignment - (ctx->fmt_offset % alignment); } } return ts; case 'x': if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; ctx->fmt_offset += ctx->new_count; ctx->new_count = 1; ctx->enc_count = 0; ctx->enc_type = 0; ctx->enc_packmode = ctx->new_packmode; ++ts; break; case 'Z': got_Z = 1; ++ts; if (*ts != 'f' && *ts != 'd' && *ts != 'g') { __Pyx_BufFmt_RaiseUnexpectedChar('Z'); return NULL; } CYTHON_FALLTHROUGH; case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I': case 'l': case 'L': case 'q': case 'Q': case 'f': case 'd': case 'g': case 'O': case 'p': if (ctx->enc_type == *ts && got_Z == ctx->is_complex && ctx->enc_packmode == ctx->new_packmode) { ctx->enc_count += ctx->new_count; ctx->new_count = 1; got_Z = 0; ++ts; break; } CYTHON_FALLTHROUGH; case 's': if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; ctx->enc_count = ctx->new_count; ctx->enc_packmode = ctx->new_packmode; ctx->enc_type = *ts; ctx->is_complex = got_Z; ++ts; ctx->new_count = 1; got_Z = 0; break; case ':': ++ts; while(*ts != ':') ++ts; ++ts; break; case '(': if (!__pyx_buffmt_parse_array(ctx, &ts)) return NULL; break; default: { int number = __Pyx_BufFmt_ExpectNumber(&ts); if (number == -1) return NULL; ctx->new_count = (size_t)number; } } } } /* TypeInfoCompare */ static int __pyx_typeinfo_cmp(__Pyx_TypeInfo *a, __Pyx_TypeInfo *b) { int i; if (!a || !b) return 0; if (a == b) return 1; if (a->size != b->size || a->typegroup != b->typegroup || a->is_unsigned != b->is_unsigned || a->ndim != b->ndim) { if (a->typegroup == 'H' || b->typegroup == 'H') { return a->size == b->size; } else { return 0; } } if (a->ndim) { for (i = 0; i < a->ndim; i++) if (a->arraysize[i] != b->arraysize[i]) return 0; } if (a->typegroup == 'S') { if (a->flags != b->flags) return 0; if (a->fields || b->fields) { if (!(a->fields && b->fields)) return 0; for (i = 0; a->fields[i].type && b->fields[i].type; i++) { __Pyx_StructField *field_a = a->fields + i; __Pyx_StructField *field_b = b->fields + i; if (field_a->offset != field_b->offset || !__pyx_typeinfo_cmp(field_a->type, field_b->type)) return 0; } return !a->fields[i].type && !b->fields[i].type; } } return 1; } /* MemviewSliceValidateAndInit */ static int __pyx_check_strides(Py_buffer *buf, int dim, int ndim, int spec) { if (buf->shape[dim] <= 1) return 1; if (buf->strides) { if (spec & __Pyx_MEMVIEW_CONTIG) { if (spec & (__Pyx_MEMVIEW_PTR|__Pyx_MEMVIEW_FULL)) { if (buf->strides[dim] != sizeof(void *)) { PyErr_Format(PyExc_ValueError, "Buffer is not indirectly contiguous " "in dimension %d.", dim); goto fail; } } else if (buf->strides[dim] != buf->itemsize) { PyErr_SetString(PyExc_ValueError, "Buffer and memoryview are not contiguous " "in the same dimension."); goto fail; } } if (spec & __Pyx_MEMVIEW_FOLLOW) { Py_ssize_t stride = buf->strides[dim]; if (stride < 0) stride = -stride; if (stride < buf->itemsize) { PyErr_SetString(PyExc_ValueError, "Buffer and memoryview are not contiguous " "in the same dimension."); goto fail; } } } else { if (spec & __Pyx_MEMVIEW_CONTIG && dim != ndim - 1) { PyErr_Format(PyExc_ValueError, "C-contiguous buffer is not contiguous in " "dimension %d", dim); goto fail; } else if (spec & (__Pyx_MEMVIEW_PTR)) { PyErr_Format(PyExc_ValueError, "C-contiguous buffer is not indirect in " "dimension %d", dim); goto fail; } else if (buf->suboffsets) { PyErr_SetString(PyExc_ValueError, "Buffer exposes suboffsets but no strides"); goto fail; } } return 1; fail: return 0; } static int __pyx_check_suboffsets(Py_buffer *buf, int dim, CYTHON_UNUSED int ndim, int spec) { if (spec & __Pyx_MEMVIEW_DIRECT) { if (buf->suboffsets && buf->suboffsets[dim] >= 0) { PyErr_Format(PyExc_ValueError, "Buffer not compatible with direct access " "in dimension %d.", dim); goto fail; } } if (spec & __Pyx_MEMVIEW_PTR) { if (!buf->suboffsets || (buf->suboffsets[dim] < 0)) { PyErr_Format(PyExc_ValueError, "Buffer is not indirectly accessible " "in dimension %d.", dim); goto fail; } } return 1; fail: return 0; } static int __pyx_verify_contig(Py_buffer *buf, int ndim, int c_or_f_flag) { int i; if (c_or_f_flag & __Pyx_IS_F_CONTIG) { Py_ssize_t stride = 1; for (i = 0; i < ndim; i++) { if (stride * buf->itemsize != buf->strides[i] && buf->shape[i] > 1) { PyErr_SetString(PyExc_ValueError, "Buffer not fortran contiguous."); goto fail; } stride = stride * buf->shape[i]; } } else if (c_or_f_flag & __Pyx_IS_C_CONTIG) { Py_ssize_t stride = 1; for (i = ndim - 1; i >- 1; i--) { if (stride * buf->itemsize != buf->strides[i] && buf->shape[i] > 1) { PyErr_SetString(PyExc_ValueError, "Buffer not C contiguous."); goto fail; } stride = stride * buf->shape[i]; } } return 1; fail: return 0; } static int __Pyx_ValidateAndInit_memviewslice( int *axes_specs, int c_or_f_flag, int buf_flags, int ndim, __Pyx_TypeInfo *dtype, __Pyx_BufFmt_StackElem stack[], __Pyx_memviewslice *memviewslice, PyObject *original_obj) { struct __pyx_memoryview_obj *memview, *new_memview; __Pyx_RefNannyDeclarations Py_buffer *buf; int i, spec = 0, retval = -1; __Pyx_BufFmt_Context ctx; int from_memoryview = __pyx_memoryview_check(original_obj); __Pyx_RefNannySetupContext("ValidateAndInit_memviewslice", 0); if (from_memoryview && __pyx_typeinfo_cmp(dtype, ((struct __pyx_memoryview_obj *) original_obj)->typeinfo)) { memview = (struct __pyx_memoryview_obj *) original_obj; new_memview = NULL; } else { memview = (struct __pyx_memoryview_obj *) __pyx_memoryview_new( original_obj, buf_flags, 0, dtype); new_memview = memview; if (unlikely(!memview)) goto fail; } buf = &memview->view; if (buf->ndim != ndim) { PyErr_Format(PyExc_ValueError, "Buffer has wrong number of dimensions (expected %d, got %d)", ndim, buf->ndim); goto fail; } if (new_memview) { __Pyx_BufFmt_Init(&ctx, stack, dtype); if (!__Pyx_BufFmt_CheckString(&ctx, buf->format)) goto fail; } if ((unsigned) buf->itemsize != dtype->size) { PyErr_Format(PyExc_ValueError, "Item size of buffer (%" CYTHON_FORMAT_SSIZE_T "u byte%s) " "does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "u byte%s)", buf->itemsize, (buf->itemsize > 1) ? "s" : "", dtype->name, dtype->size, (dtype->size > 1) ? "s" : ""); goto fail; } for (i = 0; i < ndim; i++) { spec = axes_specs[i]; if (!__pyx_check_strides(buf, i, ndim, spec)) goto fail; if (!__pyx_check_suboffsets(buf, i, ndim, spec)) goto fail; } if (buf->strides && !__pyx_verify_contig(buf, ndim, c_or_f_flag)) goto fail; if (unlikely(__Pyx_init_memviewslice(memview, ndim, memviewslice, new_memview != NULL) == -1)) { goto fail; } retval = 0; goto no_fail; fail: Py_XDECREF(new_memview); retval = -1; no_fail: __Pyx_RefNannyFinishContext(); return retval; } /* ObjectToMemviewSlice */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(PyObject *obj, int writable_flag) { __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_BufFmt_StackElem stack[1]; int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) }; int retcode; if (obj == Py_None) { result.memview = (struct __pyx_memoryview_obj *) Py_None; return result; } retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG, (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 1, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, stack, &result, obj); if (unlikely(retcode == -1)) goto __pyx_fail; return result; __pyx_fail: result.memview = NULL; result.data = NULL; return result; } /* ObjectToMemviewSlice */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(PyObject *obj, int writable_flag) { __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_BufFmt_StackElem stack[1]; int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) }; int retcode; if (obj == Py_None) { result.memview = (struct __pyx_memoryview_obj *) Py_None; return result; } retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG, (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 1, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, stack, &result, obj); if (unlikely(retcode == -1)) goto __pyx_fail; return result; __pyx_fail: result.memview = NULL; result.data = NULL; return result; } /* CheckBinaryVersion */ static int __Pyx_check_binary_version(void) { char ctversion[4], rtversion[4]; PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion()); if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) { char message[200]; PyOS_snprintf(message, sizeof(message), "compiletime version %s of module '%.100s' " "does not match runtime version %s", ctversion, __Pyx_MODULE_NAME, rtversion); return PyErr_WarnEx(NULL, message, 1); } return 0; } /* PyObjectSetAttrStr */ #if CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) { PyTypeObject* tp = Py_TYPE(obj); if (likely(tp->tp_setattro)) return tp->tp_setattro(obj, attr_name, value); #if PY_MAJOR_VERSION < 3 if (likely(tp->tp_setattr)) return tp->tp_setattr(obj, PyString_AS_STRING(attr_name), value); #endif return PyObject_SetAttr(obj, attr_name, value); } #endif /* VoidPtrExport */ static int __Pyx_ExportVoidPtr(PyObject *name, void *p, const char *sig) { PyObject *d; PyObject *cobj = 0; d = PyDict_GetItem(__pyx_d, __pyx_n_s_pyx_capi); Py_XINCREF(d); if (!d) { d = PyDict_New(); if (!d) goto bad; if (__Pyx_PyObject_SetAttrStr(__pyx_m, __pyx_n_s_pyx_capi, d) < 0) goto bad; } #if PY_VERSION_HEX >= 0x02070000 cobj = PyCapsule_New(p, sig, 0); #else cobj = PyCObject_FromVoidPtrAndDesc(p, (void *)sig, 0); #endif if (!cobj) goto bad; if (PyDict_SetItem(d, name, cobj) < 0) goto bad; Py_DECREF(cobj); Py_DECREF(d); return 0; bad: Py_XDECREF(cobj); Py_XDECREF(d); return -1; } /* FunctionExport */ static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *sig) { PyObject *d = 0; PyObject *cobj = 0; union { void (*fp)(void); void *p; } tmp; d = PyObject_GetAttrString(__pyx_m, (char *)"__pyx_capi__"); if (!d) { PyErr_Clear(); d = PyDict_New(); if (!d) goto bad; Py_INCREF(d); if (PyModule_AddObject(__pyx_m, (char *)"__pyx_capi__", d) < 0) goto bad; } tmp.fp = f; #if PY_VERSION_HEX >= 0x02070000 cobj = PyCapsule_New(tmp.p, sig, 0); #else cobj = PyCObject_FromVoidPtrAndDesc(tmp.p, (void *)sig, 0); #endif if (!cobj) goto bad; if (PyDict_SetItemString(d, name, cobj) < 0) goto bad; Py_DECREF(cobj); Py_DECREF(d); return 0; bad: Py_XDECREF(cobj); Py_XDECREF(d); return -1; } /* FunctionImport */ #ifndef __PYX_HAVE_RT_ImportFunction #define __PYX_HAVE_RT_ImportFunction static int __Pyx_ImportFunction(PyObject *module, const char *funcname, void (**f)(void), const char *sig) { PyObject *d = 0; PyObject *cobj = 0; union { void (*fp)(void); void *p; } tmp; d = PyObject_GetAttrString(module, (char *)"__pyx_capi__"); if (!d) goto bad; cobj = PyDict_GetItemString(d, funcname); if (!cobj) { PyErr_Format(PyExc_ImportError, "%.200s does not export expected C function %.200s", PyModule_GetName(module), funcname); goto bad; } #if PY_VERSION_HEX >= 0x02070000 if (!PyCapsule_IsValid(cobj, sig)) { PyErr_Format(PyExc_TypeError, "C function %.200s.%.200s has wrong signature (expected %.500s, got %.500s)", PyModule_GetName(module), funcname, sig, PyCapsule_GetName(cobj)); goto bad; } tmp.p = PyCapsule_GetPointer(cobj, sig); #else {const char *desc, *s1, *s2; desc = (const char *)PyCObject_GetDesc(cobj); if (!desc) goto bad; s1 = desc; s2 = sig; while (*s1 != '\0' && *s1 == *s2) { s1++; s2++; } if (*s1 != *s2) { PyErr_Format(PyExc_TypeError, "C function %.200s.%.200s has wrong signature (expected %.500s, got %.500s)", PyModule_GetName(module), funcname, sig, desc); goto bad; } tmp.p = PyCObject_AsVoidPtr(cobj);} #endif *f = tmp.fp; if (!(*f)) goto bad; Py_DECREF(d); return 0; bad: Py_XDECREF(d); return -1; } #endif /* InitStrings */ static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { while (t->p) { #if PY_MAJOR_VERSION < 3 if (t->is_unicode) { *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); } else if (t->intern) { *t->p = PyString_InternFromString(t->s); } else { *t->p = PyString_FromStringAndSize(t->s, t->n - 1); } #else if (t->is_unicode | t->is_str) { if (t->intern) { *t->p = PyUnicode_InternFromString(t->s); } else if (t->encoding) { *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL); } else { *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1); } } else { *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1); } #endif if (!*t->p) return -1; if (PyObject_Hash(*t->p) == -1) return -1; ++t; } return 0; } static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) { return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str)); } static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) { Py_ssize_t ignore; return __Pyx_PyObject_AsStringAndSize(o, &ignore); } #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT #if !CYTHON_PEP393_ENABLED static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { char* defenc_c; PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL); if (!defenc) return NULL; defenc_c = PyBytes_AS_STRING(defenc); #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII { char* end = defenc_c + PyBytes_GET_SIZE(defenc); char* c; for (c = defenc_c; c < end; c++) { if ((unsigned char) (*c) >= 128) { PyUnicode_AsASCIIString(o); return NULL; } } } #endif *length = PyBytes_GET_SIZE(defenc); return defenc_c; } #else static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL; #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII if (likely(PyUnicode_IS_ASCII(o))) { *length = PyUnicode_GET_LENGTH(o); return PyUnicode_AsUTF8(o); } else { PyUnicode_AsASCIIString(o); return NULL; } #else return PyUnicode_AsUTF8AndSize(o, length); #endif } #endif #endif static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) { #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT if ( #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII __Pyx_sys_getdefaultencoding_not_ascii && #endif PyUnicode_Check(o)) { return __Pyx_PyUnicode_AsStringAndSize(o, length); } else #endif #if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)) if (PyByteArray_Check(o)) { *length = PyByteArray_GET_SIZE(o); return PyByteArray_AS_STRING(o); } else #endif { char* result; int r = PyBytes_AsStringAndSize(o, &result, length); if (unlikely(r < 0)) { return NULL; } else { return result; } } } static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { int is_true = x == Py_True; if (is_true | (x == Py_False) | (x == Py_None)) return is_true; else return PyObject_IsTrue(x); } static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) { int retval; if (unlikely(!x)) return -1; retval = __Pyx_PyObject_IsTrue(x); Py_DECREF(x); return retval; } static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) { #if PY_MAJOR_VERSION >= 3 if (PyLong_Check(result)) { if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, "__int__ returned non-int (type %.200s). " "The ability to return an instance of a strict subclass of int " "is deprecated, and may be removed in a future version of Python.", Py_TYPE(result)->tp_name)) { Py_DECREF(result); return NULL; } return result; } #endif PyErr_Format(PyExc_TypeError, "__%.4s__ returned non-%.4s (type %.200s)", type_name, type_name, Py_TYPE(result)->tp_name); Py_DECREF(result); return NULL; } static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) { #if CYTHON_USE_TYPE_SLOTS PyNumberMethods *m; #endif const char *name = NULL; PyObject *res = NULL; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x) || PyLong_Check(x))) #else if (likely(PyLong_Check(x))) #endif return __Pyx_NewRef(x); #if CYTHON_USE_TYPE_SLOTS m = Py_TYPE(x)->tp_as_number; #if PY_MAJOR_VERSION < 3 if (m && m->nb_int) { name = "int"; res = m->nb_int(x); } else if (m && m->nb_long) { name = "long"; res = m->nb_long(x); } #else if (likely(m && m->nb_int)) { name = "int"; res = m->nb_int(x); } #endif #else if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) { res = PyNumber_Int(x); } #endif if (likely(res)) { #if PY_MAJOR_VERSION < 3 if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) { #else if (unlikely(!PyLong_CheckExact(res))) { #endif return __Pyx_PyNumber_IntOrLongWrongResultType(res, name); } } else if (!PyErr_Occurred()) { PyErr_SetString(PyExc_TypeError, "an integer is required"); } return res; } static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { Py_ssize_t ival; PyObject *x; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_CheckExact(b))) { if (sizeof(Py_ssize_t) >= sizeof(long)) return PyInt_AS_LONG(b); else return PyInt_AsSsize_t(b); } #endif if (likely(PyLong_CheckExact(b))) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)b)->ob_digit; const Py_ssize_t size = Py_SIZE(b); if (likely(__Pyx_sst_abs(size) <= 1)) { ival = likely(size) ? digits[0] : 0; if (size == -1) ival = -ival; return ival; } else { switch (size) { case 2: if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case -2: if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case 3: if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case -3: if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case 4: if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case -4: if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; } } #endif return PyLong_AsSsize_t(b); } x = PyNumber_Index(b); if (!x) return -1; ival = PyInt_AsSsize_t(x); Py_DECREF(x); return ival; } static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); } static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { return PyInt_FromSize_t(ival); } #endif /* Py_PYTHON_H */ PyWavelets-1.1.1/pywt/_extensions/_pywt.h0000644000175000017500000000310513552543071021135 0ustar lee8rxlee8rx00000000000000/* Generated by Cython 0.29.13 */ #ifndef __PYX_HAVE__pywt___extensions___pywt #define __PYX_HAVE__pywt___extensions___pywt struct WaveletObject; struct ContinuousWaveletObject; /* "pywt/_extensions/_pywt.pxd":23 * have_c99_complex = 0 * * cdef public class Wavelet [type WaveletType, object WaveletObject]: # <<<<<<<<<<<<<< * cdef wavelet.DiscreteWavelet* w * */ struct WaveletObject { PyObject_HEAD DiscreteWavelet *w; PyObject *name; PyObject *number; }; /* "pywt/_extensions/_pywt.pxd":29 * cdef readonly number * * cdef public class ContinuousWavelet [type ContinuousWaveletType, object ContinuousWaveletObject]: # <<<<<<<<<<<<<< * cdef wavelet.ContinuousWavelet* w * */ struct ContinuousWaveletObject { PyObject_HEAD ContinuousWavelet *w; PyObject *name; PyObject *number; PyObject *dt; }; #ifndef __PYX_HAVE_API__pywt___extensions___pywt #ifndef __PYX_EXTERN_C #ifdef __cplusplus #define __PYX_EXTERN_C extern "C" #else #define __PYX_EXTERN_C extern #endif #endif #ifndef DL_IMPORT #define DL_IMPORT(_T) _T #endif __PYX_EXTERN_C DL_IMPORT(PyTypeObject) WaveletType; __PYX_EXTERN_C DL_IMPORT(PyTypeObject) ContinuousWaveletType; #endif /* !__PYX_HAVE_API__pywt___extensions___pywt */ /* WARNING: the interface of the module init function changed in CPython 3.5. */ /* It now returns a PyModuleDef instance instead of a PyModule instance. */ #if PY_MAJOR_VERSION < 3 PyMODINIT_FUNC init_pywt(void); #else PyMODINIT_FUNC PyInit__pywt(void); #endif #endif /* !__PYX_HAVE__pywt___extensions___pywt */ PyWavelets-1.1.1/pywt/_extensions/_pywt.pxd0000664000175000017500000000153213453134055021503 0ustar lee8rxlee8rx00000000000000from . cimport wavelet cimport numpy as np include "config.pxi" ctypedef Py_ssize_t pywt_index_t ctypedef fused data_t: np.float32_t np.float64_t cdef int have_c99_complex IF HAVE_C99_CPLX: ctypedef fused cdata_t: np.float32_t np.float64_t np.complex64_t np.complex128_t have_c99_complex = 1 ELSE: ctypedef data_t cdata_t have_c99_complex = 0 cdef public class Wavelet [type WaveletType, object WaveletObject]: cdef wavelet.DiscreteWavelet* w cdef readonly name cdef readonly number cdef public class ContinuousWavelet [type ContinuousWaveletType, object ContinuousWaveletObject]: cdef wavelet.ContinuousWavelet* w cdef readonly name cdef readonly number cdef readonly dt cpdef np.dtype _check_dtype(data) # FIXME: To be removed cdef c_wavelet_from_object(wavelet) PyWavelets-1.1.1/pywt/_extensions/_pywt.pyx0000664000175000017500000011770113453134055021536 0ustar lee8rxlee8rx00000000000000# Copyright (c) 2006-2012 Filip Wasilewski # Copyright (c) 2012-2018 The PyWavelets Developers # # See COPYING for license details. __doc__ = """Cython wrapper for low-level C wavelet transform implementation.""" __all__ = ['MODES', 'Modes', 'DiscreteContinuousWavelet', 'Wavelet', 'ContinuousWavelet', 'wavelist', 'families'] import warnings import re from . cimport c_wt from . cimport common from ._dwt cimport upcoef from ._cwt cimport cwt_psi_single from libc.math cimport pow, sqrt import numpy as np # Caution: order of _old_modes entries must match _Modes.modes below _old_modes = ['zpd', 'cpd', 'sym', 'ppd', 'sp1', 'per', ] _attr_deprecation_msg = ('{old} has been renamed to {new} and will ' 'be unavailable in a future version ' 'of pywt.') # Extract float/int parameters from a wavelet name. Examples: # re.findall(cwt_pattern, 'fbsp1-1.5-1') -> ['1', 1.5', '1'] cwt_pattern = re.compile(r'\D+(\d+\.*\d*)+') # raises exception if the wavelet name is undefined cdef int is_discrete_wav(WAVELET_NAME name): cdef int is_discrete discrete = wavelet.is_discrete_wavelet(name) if discrete == -1: raise ValueError("unrecognized wavelet family name") return discrete class _Modes(object): """ Because the most common and practical way of representing digital signals in computer science is with finite arrays of values, some extrapolation of the input data has to be performed in order to extend the signal before computing the :ref:`Discrete Wavelet Transform ` using the cascading filter banks algorithm. Depending on the extrapolation method, significant artifacts at the signal's borders can be introduced during that process, which in turn may lead to inaccurate computations of the :ref:`DWT ` at the signal's ends. PyWavelets provides several methods of signal extrapolation that can be used to minimize this negative effect: zero - zero-padding 0 0 | x1 x2 ... xn | 0 0 constant - constant-padding x1 x1 | x1 x2 ... xn | xn xn symmetric - symmetric-padding x2 x1 | x1 x2 ... xn | xn xn-1 reflect - reflect-padding x3 x2 | x1 x2 ... xn | xn-1 xn-2 periodic - periodic-padding xn-1 xn | x1 x2 ... xn | x1 x2 smooth - smooth-padding (1st derivative interpolation) antisymmetric - -x2 -x1 | x1 x2 ... xn | -xn -xn-1 antireflect - -x3 -x2 | x1 x2 ... xn | -xn-1 -xn-2 DWT performed for these extension modes is slightly redundant, but ensure a perfect reconstruction for IDWT. To receive the smallest possible number of coefficients, computations can be performed with the periodization mode: periodization - like periodic-padding but gives the smallest possible number of decomposition coefficients. IDWT must be performed with the same mode. Examples -------- >>> import pywt >>> pywt.Modes.modes ['zero', 'constant', 'symmetric', 'reflect', 'periodic', 'smooth', 'periodization', 'antisymmetric', 'antireflect'] >>> # The different ways of passing wavelet and mode parameters >>> (a, d) = pywt.dwt([1,2,3,4,5,6], 'db2', 'smooth') >>> (a, d) = pywt.dwt([1,2,3,4,5,6], pywt.Wavelet('db2'), pywt.Modes.smooth) Notes ----- Extending data in context of PyWavelets does not mean reallocation of the data in computer's physical memory and copying values, but rather computing the extra values only when they are needed. This feature saves extra memory and CPU resources and helps to avoid page swapping when handling relatively big data arrays on computers with low physical memory. """ zero = common.MODE_ZEROPAD constant = common.MODE_CONSTANT_EDGE symmetric = common.MODE_SYMMETRIC reflect = common.MODE_REFLECT periodic = common.MODE_PERIODIC smooth = common.MODE_SMOOTH periodization = common.MODE_PERIODIZATION antisymmetric = common.MODE_ANTISYMMETRIC antireflect = common.MODE_ANTIREFLECT # Caution: order in modes list below must match _old_modes above modes = ["zero", "constant", "symmetric", "periodic", "smooth", "periodization", "reflect", "antisymmetric", "antireflect"] def from_object(self, mode): if isinstance(mode, int): if mode <= common.MODE_INVALID or mode >= common.MODE_MAX: raise ValueError("Invalid mode.") m = mode else: try: m = getattr(Modes, mode) except AttributeError: raise ValueError("Unknown mode name '%s'." % mode) return m def __getattr__(self, mode): # catch deprecated mode names if mode in _old_modes: new_mode = Modes.modes[_old_modes.index(mode)] warnings.warn(_attr_deprecation_msg.format(old=mode, new=new_mode), DeprecationWarning) mode = new_mode return Modes.__getattribute__(mode) Modes = _Modes() class _DeprecatedMODES(_Modes): msg = ("MODES has been renamed to Modes and will be " "removed in a future version of pywt.") def __getattribute__(self, attr): """Override so that deprecation warning is shown every time MODES is used. N.B. have to use __getattribute__ as well as __getattr__ to ensure warning on e.g. `MODES.symmetric`. """ if not attr.startswith('_'): warnings.warn(_DeprecatedMODES.msg, DeprecationWarning) return _Modes.__getattribute__(self, attr) def __getattr__(self, attr): """Override so that deprecation warning is shown every time MODES is used. """ warnings.warn(_DeprecatedMODES.msg, DeprecationWarning) return _Modes.__getattr__(self, attr) MODES = _DeprecatedMODES() ############################################################################### # Wavelet include "wavelets_list.pxi" # __wname_to_code cdef object wname_to_code(name): cdef object code_number try: if len(name) > 4 and name[:4] in ['cmor', 'shan', 'fbsp']: name = name[:4] code_number = __wname_to_code[name] return code_number except KeyError: raise ValueError("Unknown wavelet name '%s', check wavelist() for the " "list of available builtin wavelets." % name) def wavelist(family=None, kind='all'): """ wavelist(family=None, kind='all') Returns list of available wavelet names for the given family name. Parameters ---------- family : str, optional Short family name. If the family name is None (default) then names of all the built-in wavelets are returned. Otherwise the function returns names of wavelets that belong to the given family. Valid names are:: 'haar', 'db', 'sym', 'coif', 'bior', 'rbio', 'dmey', 'gaus', 'mexh', 'morl', 'cgau', 'shan', 'fbsp', 'cmor' kind : {'all', 'continuous', 'discrete'}, optional Whether to return only wavelet names of discrete or continuous wavelets, or all wavelets. Default is ``'all'``. Ignored if ``family`` is specified. Returns ------- wavelist : list of str List of available wavelet names. Examples -------- >>> import pywt >>> pywt.wavelist('coif') ['coif1', 'coif2', 'coif3', 'coif4', 'coif5', 'coif6', 'coif7', ... >>> pywt.wavelist(kind='continuous') ['cgau1', 'cgau2', 'cgau3', 'cgau4', 'cgau5', 'cgau6', 'cgau7', ... """ cdef object wavelets, sorting_list if kind not in ('all', 'continuous', 'discrete'): raise ValueError("Unrecognized value for `kind`: %s" % kind) def _check_kind(name, kind): if kind == 'all': return True family_code, family_number = wname_to_code(name) is_discrete = is_discrete_wav(family_code) if kind == 'discrete': return is_discrete else: return not is_discrete sorting_list = [] # for natural sorting order wavelets = [] cdef object name if family is None: for name in __wname_to_code: if _check_kind(name, kind): sorting_list.append((name[:2], len(name), name)) elif family in __wfamily_list_short: for name in __wname_to_code: if name.startswith(family): sorting_list.append((name[:2], len(name), name)) else: raise ValueError("Invalid short family name '%s'." % family) sorting_list.sort() for x, x, name in sorting_list: wavelets.append(name) return wavelets def families(int short=True): """ families(short=True) Returns a list of available built-in wavelet families. Currently the built-in families are: * Haar (``haar``) * Daubechies (``db``) * Symlets (``sym``) * Coiflets (``coif``) * Biorthogonal (``bior``) * Reverse biorthogonal (``rbio``) * `"Discrete"` FIR approximation of Meyer wavelet (``dmey``) * Gaussian wavelets (``gaus``) * Mexican hat wavelet (``mexh``) * Morlet wavelet (``morl``) * Complex Gaussian wavelets (``cgau``) * Shannon wavelets (``shan``) * Frequency B-Spline wavelets (``fbsp``) * Complex Morlet wavelets (``cmor``) Parameters ---------- short : bool, optional Use short names (default: True). Returns ------- families : list List of available wavelet families. Examples -------- >>> import pywt >>> pywt.families() ['haar', 'db', 'sym', 'coif', 'bior', 'rbio', 'dmey', 'gaus', 'mexh', 'morl', 'cgau', 'shan', 'fbsp', 'cmor'] >>> pywt.families(short=False) ['Haar', 'Daubechies', 'Symlets', 'Coiflets', 'Biorthogonal', 'Reverse biorthogonal', 'Discrete Meyer (FIR Approximation)', 'Gaussian', 'Mexican hat wavelet', 'Morlet wavelet', 'Complex Gaussian wavelets', 'Shannon wavelets', 'Frequency B-Spline wavelets', 'Complex Morlet wavelets'] """ if short: return __wfamily_list_short[:] return __wfamily_list_long[:] def DiscreteContinuousWavelet(name=u"", object filter_bank=None): """ DiscreteContinuousWavelet(name, filter_bank=None) returns a Wavelet or a ContinuousWavelet object depending of the given name. In order to use a built-in wavelet the parameter name must be a valid name from the wavelist() list. To create a custom wavelet object, filter_bank parameter must be specified. It can be either a list of four filters or an object that a `filter_bank` attribute which returns a list of four filters - just like the Wavelet instance itself. For a ContinuousWavelet, filter_bank cannot be used and must remain unset. """ if not name and filter_bank is None: raise TypeError("Wavelet name or filter bank must be specified.") if filter_bank is None: name = name.lower() family_code, family_number = wname_to_code(name) if is_discrete_wav(family_code): return Wavelet(name, filter_bank) else: return ContinuousWavelet(name) else: return Wavelet(name, filter_bank) cdef public class Wavelet [type WaveletType, object WaveletObject]: """ Wavelet(name, filter_bank=None) object describe properties of a wavelet identified by name. In order to use a built-in wavelet the parameter name must be a valid name from the wavelist() list. To create a custom wavelet object, filter_bank parameter must be specified. It can be either a list of four filters or an object that a `filter_bank` attribute which returns a list of four filters - just like the Wavelet instance itself. """ #cdef readonly properties def __cinit__(self, name=u"", object filter_bank=None): cdef object family_code, family_number cdef object filters cdef pywt_index_t filter_length cdef object dec_lo, dec_hi, rec_lo, rec_hi if not name and filter_bank is None: raise TypeError("Wavelet name or filter bank must be specified.") if filter_bank is None: # builtin wavelet self.name = name.lower() family_code, family_number = wname_to_code(self.name) if is_discrete_wav(family_code): self.w = wavelet.discrete_wavelet(family_code, family_number) if self.w is NULL: if self.name in wavelist(kind='continuous'): raise ValueError("The `Wavelet` class is for discrete " "wavelets, %s is a continuous wavelet. Use " "pywt.ContinuousWavelet instead" % self.name) else: raise ValueError("Invalid wavelet name '%s'." % self.name) self.number = family_number else: if hasattr(filter_bank, "filter_bank"): filters = filter_bank.filter_bank if len(filters) != 4: raise ValueError("Expected filter bank with 4 filters, " "got filter bank with %d filters." % len(filters)) elif hasattr(filter_bank, "get_filters_coeffs"): msg = ("Creating custom Wavelets using objects that define " "`get_filters_coeffs` method is deprecated. " "The `filter_bank` parameter should define a " "`filter_bank` attribute instead of " "`get_filters_coeffs` method.") warnings.warn(msg, DeprecationWarning) filters = filter_bank.get_filters_coeffs() if len(filters) != 4: msg = ("Expected filter bank with 4 filters, got filter " "bank with %d filters." % len(filters)) raise ValueError(msg) else: filters = filter_bank if len(filters) != 4: msg = ("Expected list of 4 filters coefficients, " "got %d filters." % len(filters)) raise ValueError(msg) try: dec_lo = np.asarray(filters[0], dtype=np.float64) dec_hi = np.asarray(filters[1], dtype=np.float64) rec_lo = np.asarray(filters[2], dtype=np.float64) rec_hi = np.asarray(filters[3], dtype=np.float64) except TypeError: raise ValueError("Filter bank with numeric values required.") if not (1 == dec_lo.ndim == dec_hi.ndim == rec_lo.ndim == rec_hi.ndim): raise ValueError("All filters in filter bank must be 1D.") filter_length = len(dec_lo) if not (0 < filter_length == len(dec_hi) == len(rec_lo) == len(rec_hi)) > 0: raise ValueError("All filters in filter bank must have " "length greater than 0.") self.w = wavelet.blank_discrete_wavelet(filter_length) if self.w is NULL: raise MemoryError("Could not allocate memory for given " "filter bank.") # copy values to struct copy_object_to_float32_array(dec_lo, self.w.dec_lo_float) copy_object_to_float32_array(dec_hi, self.w.dec_hi_float) copy_object_to_float32_array(rec_lo, self.w.rec_lo_float) copy_object_to_float32_array(rec_hi, self.w.rec_hi_float) copy_object_to_float64_array(dec_lo, self.w.dec_lo_double) copy_object_to_float64_array(dec_hi, self.w.dec_hi_double) copy_object_to_float64_array(rec_lo, self.w.rec_lo_double) copy_object_to_float64_array(rec_hi, self.w.rec_hi_double) self.name = name def __dealloc__(self): if self.w is not NULL: wavelet.free_discrete_wavelet(self.w) self.w = NULL def __len__(self): return self.w.dec_len property dec_lo: "Lowpass decomposition filter" def __get__(self): return float64_array_to_list(self.w.dec_lo_double, self.w.dec_len) property dec_hi: "Highpass decomposition filter" def __get__(self): return float64_array_to_list(self.w.dec_hi_double, self.w.dec_len) property rec_lo: "Lowpass reconstruction filter" def __get__(self): return float64_array_to_list(self.w.rec_lo_double, self.w.rec_len) property rec_hi: "Highpass reconstruction filter" def __get__(self): return float64_array_to_list(self.w.rec_hi_double, self.w.rec_len) property rec_len: "Reconstruction filters length" def __get__(self): return self.w.rec_len property dec_len: "Decomposition filters length" def __get__(self): return self.w.dec_len property family_number: "Wavelet family number" def __get__(self): return self.number property family_name: "Wavelet family name" def __get__(self): return self.w.base.family_name.decode('latin-1') property short_family_name: "Short wavelet family name" def __get__(self): return self.w.base.short_name.decode('latin-1') property orthogonal: "Is orthogonal" def __get__(self): return bool(self.w.base.orthogonal) def __set__(self, int value): self.w.base.orthogonal = (value != 0) property biorthogonal: "Is biorthogonal" def __get__(self): return bool(self.w.base.biorthogonal) def __set__(self, int value): self.w.base.biorthogonal = (value != 0) property symmetry: "Wavelet symmetry" def __get__(self): if self.w.base.symmetry == wavelet.ASYMMETRIC: return "asymmetric" elif self.w.base.symmetry == wavelet.NEAR_SYMMETRIC: return "near symmetric" elif self.w.base.symmetry == wavelet.SYMMETRIC: return "symmetric" elif self.w.base.symmetry == wavelet.ANTI_SYMMETRIC: return "anti-symmetric" else: return "unknown" property vanishing_moments_psi: "Number of vanishing moments for wavelet function" def __get__(self): if self.w.vanishing_moments_psi >= 0: return self.w.vanishing_moments_psi property vanishing_moments_phi: "Number of vanishing moments for scaling function" def __get__(self): if self.w.vanishing_moments_phi >= 0: return self.w.vanishing_moments_phi property filter_bank: """Returns tuple of wavelet filters coefficients (dec_lo, dec_hi, rec_lo, rec_hi) """ def __get__(self): return (self.dec_lo, self.dec_hi, self.rec_lo, self.rec_hi) def get_filters_coeffs(self): warnings.warn("The `get_filters_coeffs` method is deprecated. " "Use `filter_bank` attribute instead.", DeprecationWarning) return self.filter_bank property inverse_filter_bank: """Tuple of inverse wavelet filters coefficients (rec_lo[::-1], rec_hi[::-1], dec_lo[::-1], dec_hi[::-1]) """ def __get__(self): return (self.rec_lo[::-1], self.rec_hi[::-1], self.dec_lo[::-1], self.dec_hi[::-1]) def get_reverse_filters_coeffs(self): warnings.warn("The `get_reverse_filters_coeffs` method is deprecated. " "Use `inverse_filter_bank` attribute instead.", DeprecationWarning) return self.inverse_filter_bank def wavefun(self, int level=8): """ wavefun(self, level=8) Calculates approximations of scaling function (`phi`) and wavelet function (`psi`) on xgrid (`x`) at a given level of refinement. Parameters ---------- level : int, optional Level of refinement (default: 8). Returns ------- [phi, psi, x] : array_like For orthogonal wavelets returns scaling function, wavelet function and xgrid - [phi, psi, x]. [phi_d, psi_d, phi_r, psi_r, x] : array_like For biorthogonal wavelets returns scaling and wavelet function both for decomposition and reconstruction and xgrid Examples -------- >>> import pywt >>> # Orthogonal >>> wavelet = pywt.Wavelet('db2') >>> phi, psi, x = wavelet.wavefun(level=5) >>> # Biorthogonal >>> wavelet = pywt.Wavelet('bior3.5') >>> phi_d, psi_d, phi_r, psi_r, x = wavelet.wavefun(level=5) """ cdef pywt_index_t filter_length "filter_length" cdef pywt_index_t right_extent_length "right_extent_length" cdef pywt_index_t output_length "output_length" cdef pywt_index_t keep_length "keep_length" cdef np.float64_t n, n_mul cdef np.float64_t[::1] n_arr = &n, cdef np.float64_t[::1] n_mul_arr = &n_mul cdef double p "p" cdef double mul "mul" cdef Wavelet other "other" cdef phi_d, psi_d, phi_r, psi_r cdef psi_i cdef np.float64_t[::1] x, psi n = pow(sqrt(2.), level) p = (pow(2., level)) if self.w.base.orthogonal: filter_length = self.w.dec_len output_length = ((filter_length-1) * p + 1) keep_length = get_keep_length(output_length, level, filter_length) output_length = fix_output_length(output_length, keep_length) right_extent_length = get_right_extent_length(output_length, keep_length) # phi, psi, x return [np.concatenate(([0.], keep(upcoef(True, n_arr, self, level, 0), keep_length), np.zeros(right_extent_length))), np.concatenate(([0.], keep(upcoef(False, n_arr, self, level, 0), keep_length), np.zeros(right_extent_length))), np.linspace(0.0, (output_length-1)/p, output_length)] else: if self.w.base.biorthogonal and (self.w.vanishing_moments_psi % 4) != 1: # FIXME: I don't think this branch is well tested n_mul = -n else: n_mul = n other = Wavelet(filter_bank=self.inverse_filter_bank) filter_length = other.w.dec_len output_length = ((filter_length-1) * p) keep_length = get_keep_length(output_length, level, filter_length) output_length = fix_output_length(output_length, keep_length) right_extent_length = get_right_extent_length(output_length, keep_length) phi_d = np.concatenate(([0.], keep(upcoef(True, n_arr, other, level, 0), keep_length), np.zeros(right_extent_length))) psi_d = np.concatenate(([0.], keep(upcoef(False, n_mul_arr, other, level, 0), keep_length), np.zeros(right_extent_length))) filter_length = self.w.dec_len output_length = ((filter_length-1) * p) keep_length = get_keep_length(output_length, level, filter_length) output_length = fix_output_length(output_length, keep_length) right_extent_length = get_right_extent_length(output_length, keep_length) phi_r = np.concatenate(([0.], keep(upcoef(True, n_arr, self, level, 0), keep_length), np.zeros(right_extent_length))) psi_r = np.concatenate(([0.], keep(upcoef(False, n_mul_arr, self, level, 0), keep_length), np.zeros(right_extent_length))) return [phi_d, psi_d, phi_r, psi_r, np.linspace(0.0, (output_length - 1) / p, output_length)] def __str__(self): s = [] for x in [ u"Wavelet %s" % self.name, u" Family name: %s" % self.family_name, u" Short name: %s" % self.short_family_name, u" Filters length: %d" % self.dec_len, u" Orthogonal: %s" % self.orthogonal, u" Biorthogonal: %s" % self.biorthogonal, u" Symmetry: %s" % self.symmetry, u" DWT: True", u" CWT: False" ]: s.append(x.rstrip()) return u'\n'.join(s) def __repr__(self): repr = "{module}.{classname}(name='{name}', filter_bank={filter_bank})" return repr.format(module=type(self).__module__, classname=type(self).__name__, name=self.name, filter_bank=self.filter_bank) cdef public class ContinuousWavelet [type ContinuousWaveletType, object ContinuousWaveletObject]: """ ContinuousWavelet(name) object describe properties of a continuous wavelet identified by name. In order to use a built-in wavelet the parameter name must be a valid name from the wavelist() list. """ #cdef readonly properties def __cinit__(self, name=u"", dtype = None, **kwargs): cdef object family_code, family_number # builtin wavelet self.name = name.lower() if (dtype is None): self.dt = np.float64 else: self.dt = dtype if len(self.name) >= 4 and self.name[:4] in ['cmor', 'shan', 'fbsp']: base_name = self.name[:4] if base_name == self.name: if base_name == 'fbsp': msg = ( "Wavelets of family {0}, without parameters " "specified in the name are deprecated. The name " "should take the form {0}M-B-C where M is the spline " "order and B, C are floats representing the bandwidth " "frequency and center frequency, respectively " "(example: {0}1-1.5-1.0).").format(base_name) else: msg = ( "Wavelets from the family {0}, without parameters " "specified in the name are deprecated. The name " "should takethe form {0}B-C where B and C are floats " "representing the bandwidth frequency and center " "frequency, respectively (example: {0}1.5-1.0)." ).format(base_name) warnings.warn(msg, FutureWarning) else: base_name = self.name family_code, family_number = wname_to_code(base_name) self.w = wavelet.continuous_wavelet( family_code, family_number) if self.w is NULL: raise ValueError("Invalid wavelet name '%s'." % self.name) self.number = family_number # set wavelet attributes based on frequencies extracted from the name if base_name != self.name: freqs = re.findall(cwt_pattern, self.name) if base_name in ['shan', 'cmor']: if len(freqs) != 2: raise ValueError( ("For wavelets of family {0}, the name should take " "the form {0}B-C where B and C are floats " "representing the bandwidth frequency and center " "frequency, respectively. (example: {0}1.5-1.0)" ).format(base_name)) self.w.bandwidth_frequency = float(freqs[0]) self.w.center_frequency = float(freqs[1]) elif base_name in ['fbsp', ]: if len(freqs) != 3: raise ValueError( ("For wavelets of family {0}, the name should take " "the form {0}M-B-C where M is the spline order and B" ", C are floats representing the bandwidth frequency " "and center frequency, respectively " "(example: {0}1-1.5-1.0).").format(base_name)) M = float(freqs[0]) self.w.bandwidth_frequency = float(freqs[1]) self.w.center_frequency = float(freqs[2]) if M < 1 or M % 1 != 0: raise ValueError( "Wavelet spline order must be an integer >= 1.") self.w.fbsp_order = int(M) else: raise ValueError( "Invalid continuous wavelet name '%s'." % self.name) def __dealloc__(self): if self.w is not NULL: wavelet.free_continuous_wavelet(self.w) self.w = NULL property family_number: "Wavelet family number" def __get__(self): return self.number property family_name: "Wavelet family name" def __get__(self): return self.w.base.family_name.decode('latin-1') property short_family_name: "Short wavelet family name" def __get__(self): return self.w.base.short_name.decode('latin-1') property orthogonal: "Is orthogonal" def __get__(self): return bool(self.w.base.orthogonal) def __set__(self, int value): self.w.base.orthogonal = (value != 0) property biorthogonal: "Is biorthogonal" def __get__(self): return bool(self.w.base.biorthogonal) def __set__(self, int value): self.w.base.biorthogonal = (value != 0) property complex_cwt: "CWT is complex" def __get__(self): return bool(self.w.complex_cwt) def __set__(self, int value): self.w.complex_cwt = (value != 0) property lower_bound: "Lower Bound" def __get__(self): if self.w.lower_bound != self.w.upper_bound: return self.w.lower_bound def __set__(self, float value): self.w.lower_bound = value property upper_bound: "Upper Bound" def __get__(self): if self.w.upper_bound != self.w.lower_bound: return self.w.upper_bound def __set__(self, float value): self.w.upper_bound = value property center_frequency: "Center frequency (shan, fbsp, cmor)" def __get__(self): if self.w.center_frequency > 0: return self.w.center_frequency def __set__(self, float value): self.w.center_frequency = value property bandwidth_frequency: "Bandwidth frequency (shan, fbsp, cmor)" def __get__(self): if self.w.bandwidth_frequency > 0: return self.w.bandwidth_frequency def __set__(self, float value): self.w.bandwidth_frequency = value property fbsp_order: "order parameter for fbsp" def __get__(self): if self.w.fbsp_order != 0: return self.w.fbsp_order def __set__(self, unsigned int value): self.w.fbsp_order = value property symmetry: "Wavelet symmetry" def __get__(self): if self.w.base.symmetry == wavelet.ASYMMETRIC: return "asymmetric" elif self.w.base.symmetry == wavelet.NEAR_SYMMETRIC: return "near symmetric" elif self.w.base.symmetry == wavelet.SYMMETRIC: return "symmetric" elif self.w.base.symmetry == wavelet.ANTI_SYMMETRIC: return "anti-symmetric" else: return "unknown" def wavefun(self, int level=8, length=None): """ wavefun(self, level=8, length=None) Calculates approximations of wavelet function (``psi``) on xgrid (``x``) at a given level of refinement or length itself. Parameters ---------- level : int, optional Level of refinement (default: 8). Defines the length by ``2**level`` if length is not set. length : int, optional Number of samples. If set to None, the length is set to ``2**level`` instead. Returns ------- psi : array_like Wavelet function computed for grid xval xval : array_like grid going from lower_bound to upper_bound Notes ----- The effective support are set with ``lower_bound`` and ``upper_bound``. The wavelet function is complex for ``'cmor'``, ``'shan'``, ``'fbsp'`` and ``'cgau'``. The complex frequency B-spline wavelet (``'fbsp'``) has ``bandwidth_frequency``, ``center_frequency`` and ``fbsp_order`` as additional parameters. The complex Shannon wavelet (``'shan'``) has ``bandwidth_frequency`` and ``center_frequency`` as additional parameters. The complex Morlet wavelet (``'cmor'``) has ``bandwidth_frequency`` and ``center_frequency`` as additional parameters. Examples -------- >>> import pywt >>> import matplotlib.pyplot as plt >>> lb = -5 >>> ub = 5 >>> n = 1000 >>> wavelet = pywt.ContinuousWavelet("gaus8") >>> wavelet.upper_bound = ub >>> wavelet.lower_bound = lb >>> [psi,xval] = wavelet.wavefun(length=n) >>> plt.plot(xval,psi) # doctest: +ELLIPSIS [] >>> plt.title("Gaussian Wavelet of order 8") # doctest: +ELLIPSIS >>> plt.show() # doctest: +SKIP >>> import pywt >>> import matplotlib.pyplot as plt >>> lb = -5 >>> ub = 5 >>> n = 1000 >>> wavelet = pywt.ContinuousWavelet("cgau4") >>> wavelet.upper_bound = ub >>> wavelet.lower_bound = lb >>> [psi,xval] = wavelet.wavefun(length=n) >>> plt.subplot(211) # doctest: +ELLIPSIS >>> plt.plot(xval,np.real(psi)) # doctest: +ELLIPSIS [] >>> plt.title("Real part") # doctest: +ELLIPSIS >>> plt.subplot(212) # doctest: +ELLIPSIS >>> plt.plot(xval,np.imag(psi)) # doctest: +ELLIPSIS [] >>> plt.title("Imaginary part") # doctest: +ELLIPSIS >>> plt.show() # doctest: +SKIP """ cdef pywt_index_t output_length "output_length" cdef psi_i, psi_r, psi cdef np.float64_t[::1] x64, psi64 cdef np.float32_t[::1] x32, psi32 p = (pow(2., level)) if self.w is not NULL: if length is None: output_length = p else: output_length = length if (self.dt == np.float64): x64 = np.linspace(self.w.lower_bound, self.w.upper_bound, output_length, dtype=self.dt) else: x32 = np.linspace(self.w.lower_bound, self.w.upper_bound, output_length, dtype=self.dt) if self.w.complex_cwt: if (self.dt == np.float64): psi_r, psi_i = cwt_psi_single(x64, self, output_length) return [np.asarray(psi_r, dtype=self.dt) + 1j * np.asarray(psi_i, dtype=self.dt), np.asarray(x64, dtype=self.dt)] else: psi_r, psi_i = cwt_psi_single(x32, self, output_length) return [np.asarray(psi_r, dtype=self.dt) + 1j * np.asarray(psi_i, dtype=self.dt), np.asarray(x32, dtype=self.dt)] else: if (self.dt == np.float64): psi = cwt_psi_single(x64, self, output_length) return [np.asarray(psi, dtype=self.dt), np.asarray(x64, dtype=self.dt)] else: psi = cwt_psi_single(x32, self, output_length) return [np.asarray(psi, dtype=self.dt), np.asarray(x32, dtype=self.dt)] def __str__(self): s = [] for x in [ u"ContinuousWavelet %s" % self.name, u" Family name: %s" % self.family_name, u" Short name: %s" % self.short_family_name, u" Symmetry: %s" % self.symmetry, u" DWT: False", u" CWT: True", u" Complex CWT: %s" % self.complex_cwt ]: s.append(x.rstrip()) return u'\n'.join(s) def __repr__(self): repr = "{module}.{classname}(name='{name}')" return repr.format(module=type(self).__module__, classname=type(self).__name__, name=self.name) cdef pywt_index_t get_keep_length(pywt_index_t output_length, int level, pywt_index_t filter_length): cdef pywt_index_t lplus "lplus" cdef pywt_index_t keep_length "keep_length" cdef int i "i" lplus = filter_length - 2 keep_length = 1 for i in range(level): keep_length = 2*keep_length+lplus return keep_length cdef pywt_index_t fix_output_length(pywt_index_t output_length, pywt_index_t keep_length): if output_length-keep_length-2 < 0: output_length = keep_length+2 return output_length cdef pywt_index_t get_right_extent_length(pywt_index_t output_length, pywt_index_t keep_length): return output_length - keep_length - 1 def wavelet_from_object(wavelet): return c_wavelet_from_object(wavelet) cdef c_wavelet_from_object(wavelet): if isinstance(wavelet, (Wavelet, ContinuousWavelet)): return wavelet else: return Wavelet(wavelet) cpdef np.dtype _check_dtype(data): """Check for cA/cD input what (if any) the dtype is.""" cdef np.dtype dt try: dt = data.dtype if dt not in (np.float64, np.float32, np.complex64, np.complex128): if dt == np.half: # half-precision input converted to single precision dt = np.dtype('float32') elif dt == np.complex256: # complex256 is not supported. run at reduced precision dt = np.dtype('complex128') else: # integer input was always accepted; convert to float64 dt = np.dtype('float64') except AttributeError: dt = np.dtype('float64') return dt # TODO: Can this be replaced by the take parameter of upcoef? Or vice-versa? def keep(arr, keep_length): length = len(arr) if keep_length < length: left_bound = (length - keep_length) // 2 return arr[left_bound:left_bound + keep_length] return arr # Some utility functions cdef object float64_array_to_list(double* data, pywt_index_t n): cdef pywt_index_t i cdef object app cdef object ret ret = [] app = ret.append for i in range(n): app(data[i]) return ret cdef void copy_object_to_float64_array(source, double* dest) except *: cdef pywt_index_t i cdef double x i = 0 for x in source: dest[i] = x i = i + 1 cdef void copy_object_to_float32_array(source, float* dest) except *: cdef pywt_index_t i cdef float x i = 0 for x in source: dest[i] = x i = i + 1 PyWavelets-1.1.1/pywt/_extensions/_swt.c0000644000175000017500000512200513552543067020755 0ustar lee8rxlee8rx00000000000000/* Generated by Cython 0.29.13 */ /* BEGIN: Cython Metadata { "distutils": { "define_macros": [ [ "PY_EXTENSION", null ], [ "HAVE_C99_COMPLEX", null ], [ "CYTHON_CCOMPLEX", 1 ] ], "depends": [ "/home/lee8rx/miniconda3/envs/pyir/lib/python3.7/site-packages/numpy/core/include/numpy/arrayobject.h", "/home/lee8rx/miniconda3/envs/pyir/lib/python3.7/site-packages/numpy/core/include/numpy/ufuncobject.h", "pywt/_extensions/c/common.c", "pywt/_extensions/c/common.h", "pywt/_extensions/c/convolution.c", "pywt/_extensions/c/convolution.h", "pywt/_extensions/c/convolution.template.c", "pywt/_extensions/c/convolution.template.h", "pywt/_extensions/c/cwt.c", "pywt/_extensions/c/cwt.h", "pywt/_extensions/c/cwt.template.c", "pywt/_extensions/c/cwt.template.h", "pywt/_extensions/c/templating.h", "pywt/_extensions/c/wavelets.c", "pywt/_extensions/c/wavelets.h", "pywt/_extensions/c/wavelets_coeffs.h", "pywt/_extensions/c/wavelets_coeffs.template.h", "pywt/_extensions/c/wt.c", "pywt/_extensions/c/wt.h", "pywt/_extensions/c/wt.template.c", "pywt/_extensions/c/wt.template.h" ], "include_dirs": [ "./pywt/_extensions", "pywt/_extensions/c", "/home/lee8rx/miniconda3/envs/pyir/lib/python3.7/site-packages/numpy/core/include" ], "libraries": [ "c_wt" ], "name": "pywt._extensions._swt", "sources": [ "pywt/_extensions/_swt.pyx" ] }, "module_name": "pywt._extensions._swt" } END: Cython Metadata */ #define PY_SSIZE_T_CLEAN #include "Python.h" #ifndef Py_PYTHON_H #error Python headers needed to compile C extensions, please install development version of Python. #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000) #error Cython requires Python 2.6+ or Python 3.3+. #else #define CYTHON_ABI "0_29_13" #define CYTHON_HEX_VERSION 0x001D0DF0 #define CYTHON_FUTURE_DIVISION 1 #include #ifndef offsetof #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) #endif #if !defined(WIN32) && !defined(MS_WINDOWS) #ifndef __stdcall #define __stdcall #endif #ifndef __cdecl #define __cdecl #endif #ifndef __fastcall #define __fastcall #endif #endif #ifndef DL_IMPORT #define DL_IMPORT(t) t #endif #ifndef DL_EXPORT #define DL_EXPORT(t) t #endif #define __PYX_COMMA , #ifndef HAVE_LONG_LONG #if PY_VERSION_HEX >= 0x02070000 #define HAVE_LONG_LONG #endif #endif #ifndef PY_LONG_LONG #define PY_LONG_LONG LONG_LONG #endif #ifndef Py_HUGE_VAL #define Py_HUGE_VAL HUGE_VAL #endif #ifdef PYPY_VERSION #define CYTHON_COMPILING_IN_PYPY 1 #define CYTHON_COMPILING_IN_PYSTON 0 #define CYTHON_COMPILING_IN_CPYTHON 0 #undef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 0 #undef CYTHON_USE_PYTYPE_LOOKUP #define CYTHON_USE_PYTYPE_LOOKUP 0 #if PY_VERSION_HEX < 0x03050000 #undef CYTHON_USE_ASYNC_SLOTS #define CYTHON_USE_ASYNC_SLOTS 0 #elif !defined(CYTHON_USE_ASYNC_SLOTS) #define CYTHON_USE_ASYNC_SLOTS 1 #endif #undef CYTHON_USE_PYLIST_INTERNALS #define CYTHON_USE_PYLIST_INTERNALS 0 #undef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 0 #undef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #undef CYTHON_USE_PYLONG_INTERNALS #define CYTHON_USE_PYLONG_INTERNALS 0 #undef CYTHON_AVOID_BORROWED_REFS #define CYTHON_AVOID_BORROWED_REFS 1 #undef CYTHON_ASSUME_SAFE_MACROS #define CYTHON_ASSUME_SAFE_MACROS 0 #undef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 0 #undef CYTHON_FAST_THREAD_STATE #define CYTHON_FAST_THREAD_STATE 0 #undef CYTHON_FAST_PYCALL #define CYTHON_FAST_PYCALL 0 #undef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT 0 #undef CYTHON_USE_TP_FINALIZE #define CYTHON_USE_TP_FINALIZE 0 #undef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 #elif defined(PYSTON_VERSION) #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_PYSTON 1 #define CYTHON_COMPILING_IN_CPYTHON 0 #ifndef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 1 #endif #undef CYTHON_USE_PYTYPE_LOOKUP #define CYTHON_USE_PYTYPE_LOOKUP 0 #undef CYTHON_USE_ASYNC_SLOTS #define CYTHON_USE_ASYNC_SLOTS 0 #undef CYTHON_USE_PYLIST_INTERNALS #define CYTHON_USE_PYLIST_INTERNALS 0 #ifndef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 1 #endif #undef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #undef CYTHON_USE_PYLONG_INTERNALS #define CYTHON_USE_PYLONG_INTERNALS 0 #ifndef CYTHON_AVOID_BORROWED_REFS #define CYTHON_AVOID_BORROWED_REFS 0 #endif #ifndef CYTHON_ASSUME_SAFE_MACROS #define CYTHON_ASSUME_SAFE_MACROS 1 #endif #ifndef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 1 #endif #undef CYTHON_FAST_THREAD_STATE #define CYTHON_FAST_THREAD_STATE 0 #undef CYTHON_FAST_PYCALL #define CYTHON_FAST_PYCALL 0 #undef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT 0 #undef CYTHON_USE_TP_FINALIZE #define CYTHON_USE_TP_FINALIZE 0 #undef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 #else #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_PYSTON 0 #define CYTHON_COMPILING_IN_CPYTHON 1 #ifndef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 1 #endif #if PY_VERSION_HEX < 0x02070000 #undef CYTHON_USE_PYTYPE_LOOKUP #define CYTHON_USE_PYTYPE_LOOKUP 0 #elif !defined(CYTHON_USE_PYTYPE_LOOKUP) #define CYTHON_USE_PYTYPE_LOOKUP 1 #endif #if PY_MAJOR_VERSION < 3 #undef CYTHON_USE_ASYNC_SLOTS #define CYTHON_USE_ASYNC_SLOTS 0 #elif !defined(CYTHON_USE_ASYNC_SLOTS) #define CYTHON_USE_ASYNC_SLOTS 1 #endif #if PY_VERSION_HEX < 0x02070000 #undef CYTHON_USE_PYLONG_INTERNALS #define CYTHON_USE_PYLONG_INTERNALS 0 #elif !defined(CYTHON_USE_PYLONG_INTERNALS) #define CYTHON_USE_PYLONG_INTERNALS 1 #endif #ifndef CYTHON_USE_PYLIST_INTERNALS #define CYTHON_USE_PYLIST_INTERNALS 1 #endif #ifndef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 1 #endif #if PY_VERSION_HEX < 0x030300F0 #undef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #elif !defined(CYTHON_USE_UNICODE_WRITER) #define CYTHON_USE_UNICODE_WRITER 1 #endif #ifndef CYTHON_AVOID_BORROWED_REFS #define CYTHON_AVOID_BORROWED_REFS 0 #endif #ifndef CYTHON_ASSUME_SAFE_MACROS #define CYTHON_ASSUME_SAFE_MACROS 1 #endif #ifndef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 1 #endif #ifndef CYTHON_FAST_THREAD_STATE #define CYTHON_FAST_THREAD_STATE 1 #endif #ifndef CYTHON_FAST_PYCALL #define CYTHON_FAST_PYCALL 1 #endif #ifndef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000) #endif #ifndef CYTHON_USE_TP_FINALIZE #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1) #endif #ifndef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1) #endif #ifndef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3) #endif #endif #if !defined(CYTHON_FAST_PYCCALL) #define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) #endif #if CYTHON_USE_PYLONG_INTERNALS #include "longintrepr.h" #undef SHIFT #undef BASE #undef MASK #ifdef SIZEOF_VOID_P enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) }; #endif #endif #ifndef __has_attribute #define __has_attribute(x) 0 #endif #ifndef __has_cpp_attribute #define __has_cpp_attribute(x) 0 #endif #ifndef CYTHON_RESTRICT #if defined(__GNUC__) #define CYTHON_RESTRICT __restrict__ #elif defined(_MSC_VER) && _MSC_VER >= 1400 #define CYTHON_RESTRICT __restrict #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define CYTHON_RESTRICT restrict #else #define CYTHON_RESTRICT #endif #endif #ifndef CYTHON_UNUSED # if defined(__GNUC__) # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) # define CYTHON_UNUSED __attribute__ ((__unused__)) # else # define CYTHON_UNUSED # endif # elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) # define CYTHON_UNUSED __attribute__ ((__unused__)) # else # define CYTHON_UNUSED # endif #endif #ifndef CYTHON_MAYBE_UNUSED_VAR # if defined(__cplusplus) template void CYTHON_MAYBE_UNUSED_VAR( const T& ) { } # else # define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x) # endif #endif #ifndef CYTHON_NCP_UNUSED # if CYTHON_COMPILING_IN_CPYTHON # define CYTHON_NCP_UNUSED # else # define CYTHON_NCP_UNUSED CYTHON_UNUSED # endif #endif #define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None) #ifdef _MSC_VER #ifndef _MSC_STDINT_H_ #if _MSC_VER < 1300 typedef unsigned char uint8_t; typedef unsigned int uint32_t; #else typedef unsigned __int8 uint8_t; typedef unsigned __int32 uint32_t; #endif #endif #else #include #endif #ifndef CYTHON_FALLTHROUGH #if defined(__cplusplus) && __cplusplus >= 201103L #if __has_cpp_attribute(fallthrough) #define CYTHON_FALLTHROUGH [[fallthrough]] #elif __has_cpp_attribute(clang::fallthrough) #define CYTHON_FALLTHROUGH [[clang::fallthrough]] #elif __has_cpp_attribute(gnu::fallthrough) #define CYTHON_FALLTHROUGH [[gnu::fallthrough]] #endif #endif #ifndef CYTHON_FALLTHROUGH #if __has_attribute(fallthrough) #define CYTHON_FALLTHROUGH __attribute__((fallthrough)) #else #define CYTHON_FALLTHROUGH #endif #endif #if defined(__clang__ ) && defined(__apple_build_version__) #if __apple_build_version__ < 7000000 #undef CYTHON_FALLTHROUGH #define CYTHON_FALLTHROUGH #endif #endif #endif #ifndef CYTHON_INLINE #if defined(__clang__) #define CYTHON_INLINE __inline__ __attribute__ ((__unused__)) #elif defined(__GNUC__) #define CYTHON_INLINE __inline__ #elif defined(_MSC_VER) #define CYTHON_INLINE __inline #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define CYTHON_INLINE inline #else #define CYTHON_INLINE #endif #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag) #define Py_OptimizeFlag 0 #endif #define __PYX_BUILD_PY_SSIZE_T "n" #define CYTHON_FORMAT_SSIZE_T "z" #if PY_MAJOR_VERSION < 3 #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #define __Pyx_DefaultClassType PyClass_Type #else #define __Pyx_BUILTIN_MODULE_NAME "builtins" #if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2 #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #else #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #endif #define __Pyx_DefaultClassType PyType_Type #endif #ifndef Py_TPFLAGS_CHECKTYPES #define Py_TPFLAGS_CHECKTYPES 0 #endif #ifndef Py_TPFLAGS_HAVE_INDEX #define Py_TPFLAGS_HAVE_INDEX 0 #endif #ifndef Py_TPFLAGS_HAVE_NEWBUFFER #define Py_TPFLAGS_HAVE_NEWBUFFER 0 #endif #ifndef Py_TPFLAGS_HAVE_FINALIZE #define Py_TPFLAGS_HAVE_FINALIZE 0 #endif #ifndef METH_STACKLESS #define METH_STACKLESS 0 #endif #if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL) #ifndef METH_FASTCALL #define METH_FASTCALL 0x80 #endif typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs); typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames); #else #define __Pyx_PyCFunctionFast _PyCFunctionFast #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords #endif #if CYTHON_FAST_PYCCALL #define __Pyx_PyFastCFunction_Check(func)\ ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))))) #else #define __Pyx_PyFastCFunction_Check(func) 0 #endif #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc) #define PyObject_Malloc(s) PyMem_Malloc(s) #define PyObject_Free(p) PyMem_Free(p) #define PyObject_Realloc(p) PyMem_Realloc(p) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030400A1 #define PyMem_RawMalloc(n) PyMem_Malloc(n) #define PyMem_RawRealloc(p, n) PyMem_Realloc(p, n) #define PyMem_RawFree(p) PyMem_Free(p) #endif #if CYTHON_COMPILING_IN_PYSTON #define __Pyx_PyCode_HasFreeVars(co) PyCode_HasFreeVars(co) #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno) #else #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno) #endif #if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000 #define __Pyx_PyThreadState_Current PyThreadState_GET() #elif PY_VERSION_HEX >= 0x03060000 #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet() #elif PY_VERSION_HEX >= 0x03000000 #define __Pyx_PyThreadState_Current PyThreadState_GET() #else #define __Pyx_PyThreadState_Current _PyThreadState_Current #endif #if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT) #include "pythread.h" #define Py_tss_NEEDS_INIT 0 typedef int Py_tss_t; static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) { *key = PyThread_create_key(); return 0; } static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) { Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t)); *key = Py_tss_NEEDS_INIT; return key; } static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) { PyObject_Free(key); } static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) { return *key != Py_tss_NEEDS_INIT; } static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) { PyThread_delete_key(*key); *key = Py_tss_NEEDS_INIT; } static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) { return PyThread_set_key_value(*key, value); } static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { return PyThread_get_key_value(*key); } #endif #if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized) #define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n)) #else #define __Pyx_PyDict_NewPresized(n) PyDict_New() #endif #if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) #else #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS #define __Pyx_PyDict_GetItemStr(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash) #else #define __Pyx_PyDict_GetItemStr(dict, name) PyDict_GetItem(dict, name) #endif #if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) #define CYTHON_PEP393_ENABLED 1 #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ 0 : _PyUnicode_Ready((PyObject *)(op))) #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u) #define __Pyx_PyUnicode_KIND(u) PyUnicode_KIND(u) #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) #else #define CYTHON_PEP393_ENABLED 0 #define PyUnicode_1BYTE_KIND 1 #define PyUnicode_2BYTE_KIND 2 #define PyUnicode_4BYTE_KIND 4 #define __Pyx_PyUnicode_READY(op) (0) #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u) #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111) #define __Pyx_PyUnicode_KIND(u) (sizeof(Py_UNICODE)) #define __Pyx_PyUnicode_DATA(u) ((void*)PyUnicode_AS_UNICODE(u)) #define __Pyx_PyUnicode_READ(k, d, i) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i])) #define __Pyx_PyUnicode_WRITE(k, d, i, ch) (((void)(k)), ((Py_UNICODE*)d)[i] = ch) #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_SIZE(u)) #endif #if CYTHON_COMPILING_IN_PYPY #define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b) #define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b) #else #define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b) #define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\ PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b)) #endif #if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains) #define PyUnicode_Contains(u, s) PySequence_Contains(u, s) #endif #if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check) #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type) #endif #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format) #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) #endif #define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) #define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyString_Format(a, b) PyUnicode_Format(a, b) #else #define __Pyx_PyString_Format(a, b) PyString_Format(a, b) #endif #if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII) #define PyObject_ASCII(o) PyObject_Repr(o) #endif #if PY_MAJOR_VERSION >= 3 #define PyBaseString_Type PyUnicode_Type #define PyStringObject PyUnicodeObject #define PyString_Type PyUnicode_Type #define PyString_Check PyUnicode_Check #define PyString_CheckExact PyUnicode_CheckExact #define PyObject_Unicode PyObject_Str #endif #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) #else #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj)) #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj)) #endif #ifndef PySet_CheckExact #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) #endif #if CYTHON_ASSUME_SAFE_MACROS #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) #else #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq) #endif #if PY_MAJOR_VERSION >= 3 #define PyIntObject PyLongObject #define PyInt_Type PyLong_Type #define PyInt_Check(op) PyLong_Check(op) #define PyInt_CheckExact(op) PyLong_CheckExact(op) #define PyInt_FromString PyLong_FromString #define PyInt_FromUnicode PyLong_FromUnicode #define PyInt_FromLong PyLong_FromLong #define PyInt_FromSize_t PyLong_FromSize_t #define PyInt_FromSsize_t PyLong_FromSsize_t #define PyInt_AsLong PyLong_AsLong #define PyInt_AS_LONG PyLong_AS_LONG #define PyInt_AsSsize_t PyLong_AsSsize_t #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask #define PyNumber_Int PyNumber_Long #endif #if PY_MAJOR_VERSION >= 3 #define PyBoolObject PyLongObject #endif #if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY #ifndef PyUnicode_InternFromString #define PyUnicode_InternFromString(s) PyUnicode_FromString(s) #endif #endif #if PY_VERSION_HEX < 0x030200A4 typedef long Py_hash_t; #define __Pyx_PyInt_FromHash_t PyInt_FromLong #define __Pyx_PyInt_AsHash_t PyInt_AsLong #else #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t #endif #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) #else #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) #endif #if CYTHON_USE_ASYNC_SLOTS #if PY_VERSION_HEX >= 0x030500B1 #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async) #else #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved)) #endif #else #define __Pyx_PyType_AsAsync(obj) NULL #endif #ifndef __Pyx_PyAsyncMethodsStruct typedef struct { unaryfunc am_await; unaryfunc am_aiter; unaryfunc am_anext; } __Pyx_PyAsyncMethodsStruct; #endif #if defined(WIN32) || defined(MS_WINDOWS) #define _USE_MATH_DEFINES #endif #include #ifdef NAN #define __PYX_NAN() ((float) NAN) #else static CYTHON_INLINE float __PYX_NAN() { float value; memset(&value, 0xFF, sizeof(value)); return value; } #endif #if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL) #define __Pyx_truncl trunc #else #define __Pyx_truncl truncl #endif #define __PYX_ERR(f_index, lineno, Ln_error) \ { \ __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ } #ifndef __PYX_EXTERN_C #ifdef __cplusplus #define __PYX_EXTERN_C extern "C" #else #define __PYX_EXTERN_C extern #endif #endif #define __PYX_HAVE__pywt___extensions___swt #define __PYX_HAVE_API__pywt___extensions___swt /* Early includes */ #include "c/common.h" #include "c/wavelets.h" #include "c/wt.h" #include "c/cwt.h" #include #include #include "pythread.h" #include "numpy/arrayobject.h" #include "numpy/ufuncobject.h" #include #include "pystate.h" #ifdef _OPENMP #include #endif /* _OPENMP */ #if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS) #define CYTHON_WITHOUT_ASSERTIONS #endif typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding; const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; #define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0 #define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0 #define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8) #define __PYX_DEFAULT_STRING_ENCODING "" #define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString #define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize #define __Pyx_uchar_cast(c) ((unsigned char)c) #define __Pyx_long_cast(x) ((long)x) #define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\ (sizeof(type) < sizeof(Py_ssize_t)) ||\ (sizeof(type) > sizeof(Py_ssize_t) &&\ likely(v < (type)PY_SSIZE_T_MAX ||\ v == (type)PY_SSIZE_T_MAX) &&\ (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\ v == (type)PY_SSIZE_T_MIN))) ||\ (sizeof(type) == sizeof(Py_ssize_t) &&\ (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\ v == (type)PY_SSIZE_T_MAX))) ) static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) { return (size_t) i < (size_t) limit; } #if defined (__cplusplus) && __cplusplus >= 201103L #include #define __Pyx_sst_abs(value) std::abs(value) #elif SIZEOF_INT >= SIZEOF_SIZE_T #define __Pyx_sst_abs(value) abs(value) #elif SIZEOF_LONG >= SIZEOF_SIZE_T #define __Pyx_sst_abs(value) labs(value) #elif defined (_MSC_VER) #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value)) #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define __Pyx_sst_abs(value) llabs(value) #elif defined (__GNUC__) #define __Pyx_sst_abs(value) __builtin_llabs(value) #else #define __Pyx_sst_abs(value) ((value<0) ? -value : value) #endif static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*); static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length); #define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s)) #define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l) #define __Pyx_PyBytes_FromString PyBytes_FromString #define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*); #if PY_MAJOR_VERSION < 3 #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize #else #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize #endif #define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AS_STRING(s)) #define __Pyx_PyObject_AsWritableString(s) ((char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsWritableSString(s) ((signed char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsSString(s) ((const signed char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsUString(s) ((const unsigned char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s) #define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s) #define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s) #define __Pyx_PyStr_FromCString(s) __Pyx_PyStr_FromString((const char*)s) #define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s) static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) { const Py_UNICODE *u_end = u; while (*u_end++) ; return (size_t)(u_end - u - 1); } #define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u)) #define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode #define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode #define __Pyx_NewRef(obj) (Py_INCREF(obj), obj) #define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None) static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b); static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*); static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); #define __Pyx_PySequence_Tuple(obj)\ (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj)) static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); #if CYTHON_ASSUME_SAFE_MACROS #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) #else #define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) #endif #define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x)) #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x)) #else #define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x)) #endif #define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x)) #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII static int __Pyx_sys_getdefaultencoding_not_ascii; static int __Pyx_init_sys_getdefaultencoding_params(void) { PyObject* sys; PyObject* default_encoding = NULL; PyObject* ascii_chars_u = NULL; PyObject* ascii_chars_b = NULL; const char* default_encoding_c; sys = PyImport_ImportModule("sys"); if (!sys) goto bad; default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL); Py_DECREF(sys); if (!default_encoding) goto bad; default_encoding_c = PyBytes_AsString(default_encoding); if (!default_encoding_c) goto bad; if (strcmp(default_encoding_c, "ascii") == 0) { __Pyx_sys_getdefaultencoding_not_ascii = 0; } else { char ascii_chars[128]; int c; for (c = 0; c < 128; c++) { ascii_chars[c] = c; } __Pyx_sys_getdefaultencoding_not_ascii = 1; ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL); if (!ascii_chars_u) goto bad; ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL); if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) { PyErr_Format( PyExc_ValueError, "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.", default_encoding_c); goto bad; } Py_DECREF(ascii_chars_u); Py_DECREF(ascii_chars_b); } Py_DECREF(default_encoding); return 0; bad: Py_XDECREF(default_encoding); Py_XDECREF(ascii_chars_u); Py_XDECREF(ascii_chars_b); return -1; } #endif #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL) #else #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL) #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT static char* __PYX_DEFAULT_STRING_ENCODING; static int __Pyx_init_sys_getdefaultencoding_params(void) { PyObject* sys; PyObject* default_encoding = NULL; char* default_encoding_c; sys = PyImport_ImportModule("sys"); if (!sys) goto bad; default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL); Py_DECREF(sys); if (!default_encoding) goto bad; default_encoding_c = PyBytes_AsString(default_encoding); if (!default_encoding_c) goto bad; __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1); if (!__PYX_DEFAULT_STRING_ENCODING) goto bad; strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c); Py_DECREF(default_encoding); return 0; bad: Py_XDECREF(default_encoding); return -1; } #endif #endif /* Test for GCC > 2.95 */ #if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))) #define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) #else /* !__GNUC__ or GCC < 2.95 */ #define likely(x) (x) #define unlikely(x) (x) #endif /* __GNUC__ */ static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; } static PyObject *__pyx_m = NULL; static PyObject *__pyx_d; static PyObject *__pyx_b; static PyObject *__pyx_cython_runtime = NULL; static PyObject *__pyx_empty_tuple; static PyObject *__pyx_empty_bytes; static PyObject *__pyx_empty_unicode; static int __pyx_lineno; static int __pyx_clineno = 0; static const char * __pyx_cfilenm= __FILE__; static const char *__pyx_filename; /* Header.proto */ #if !defined(CYTHON_CCOMPLEX) #if defined(__cplusplus) #define CYTHON_CCOMPLEX 1 #elif defined(_Complex_I) #define CYTHON_CCOMPLEX 1 #else #define CYTHON_CCOMPLEX 0 #endif #endif #if CYTHON_CCOMPLEX #ifdef __cplusplus #include #else #include #endif #endif #if CYTHON_CCOMPLEX && !defined(__cplusplus) && defined(__sun__) && defined(__GNUC__) #undef _Complex_I #define _Complex_I 1.0fj #endif static const char *__pyx_f[] = { "pywt/_extensions/_swt.pyx", "__init__.pxd", "stringsource", "type.pxd", "bool.pxd", "complex.pxd", "pywt/_extensions/_pywt.pxd", }; /* MemviewSliceStruct.proto */ struct __pyx_memoryview_obj; typedef struct { struct __pyx_memoryview_obj *memview; char *data; Py_ssize_t shape[8]; Py_ssize_t strides[8]; Py_ssize_t suboffsets[8]; } __Pyx_memviewslice; #define __Pyx_MemoryView_Len(m) (m.shape[0]) /* Atomics.proto */ #include #ifndef CYTHON_ATOMICS #define CYTHON_ATOMICS 1 #endif #define __pyx_atomic_int_type int #if CYTHON_ATOMICS && __GNUC__ >= 4 && (__GNUC_MINOR__ > 1 ||\ (__GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL >= 2)) &&\ !defined(__i386__) #define __pyx_atomic_incr_aligned(value, lock) __sync_fetch_and_add(value, 1) #define __pyx_atomic_decr_aligned(value, lock) __sync_fetch_and_sub(value, 1) #ifdef __PYX_DEBUG_ATOMICS #warning "Using GNU atomics" #endif #elif CYTHON_ATOMICS && defined(_MSC_VER) && 0 #include #undef __pyx_atomic_int_type #define __pyx_atomic_int_type LONG #define __pyx_atomic_incr_aligned(value, lock) InterlockedIncrement(value) #define __pyx_atomic_decr_aligned(value, lock) InterlockedDecrement(value) #ifdef __PYX_DEBUG_ATOMICS #pragma message ("Using MSVC atomics") #endif #elif CYTHON_ATOMICS && (defined(__ICC) || defined(__INTEL_COMPILER)) && 0 #define __pyx_atomic_incr_aligned(value, lock) _InterlockedIncrement(value) #define __pyx_atomic_decr_aligned(value, lock) _InterlockedDecrement(value) #ifdef __PYX_DEBUG_ATOMICS #warning "Using Intel atomics" #endif #else #undef CYTHON_ATOMICS #define CYTHON_ATOMICS 0 #ifdef __PYX_DEBUG_ATOMICS #warning "Not using atomics" #endif #endif typedef volatile __pyx_atomic_int_type __pyx_atomic_int; #if CYTHON_ATOMICS #define __pyx_add_acquisition_count(memview)\ __pyx_atomic_incr_aligned(__pyx_get_slice_count_pointer(memview), memview->lock) #define __pyx_sub_acquisition_count(memview)\ __pyx_atomic_decr_aligned(__pyx_get_slice_count_pointer(memview), memview->lock) #else #define __pyx_add_acquisition_count(memview)\ __pyx_add_acquisition_count_locked(__pyx_get_slice_count_pointer(memview), memview->lock) #define __pyx_sub_acquisition_count(memview)\ __pyx_sub_acquisition_count_locked(__pyx_get_slice_count_pointer(memview), memview->lock) #endif /* NoFastGil.proto */ #define __Pyx_PyGILState_Ensure PyGILState_Ensure #define __Pyx_PyGILState_Release PyGILState_Release #define __Pyx_FastGIL_Remember() #define __Pyx_FastGIL_Forget() #define __Pyx_FastGilFuncInit() /* ForceInitThreads.proto */ #ifndef __PYX_FORCE_INIT_THREADS #define __PYX_FORCE_INIT_THREADS 0 #endif /* BufferFormatStructs.proto */ #define IS_UNSIGNED(type) (((type) -1) > 0) struct __Pyx_StructField_; #define __PYX_BUF_FLAGS_PACKED_STRUCT (1 << 0) typedef struct { const char* name; struct __Pyx_StructField_* fields; size_t size; size_t arraysize[8]; int ndim; char typegroup; char is_unsigned; int flags; } __Pyx_TypeInfo; typedef struct __Pyx_StructField_ { __Pyx_TypeInfo* type; const char* name; size_t offset; } __Pyx_StructField; typedef struct { __Pyx_StructField* field; size_t parent_offset; } __Pyx_BufFmt_StackElem; typedef struct { __Pyx_StructField root; __Pyx_BufFmt_StackElem* head; size_t fmt_offset; size_t new_count, enc_count; size_t struct_alignment; int is_complex; char enc_type; char new_packmode; char enc_packmode; char is_valid_array; } __Pyx_BufFmt_Context; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":776 * # in Cython to enable them only on the right systems. * * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<< * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t */ typedef npy_int8 __pyx_t_5numpy_int8_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":777 * * ctypedef npy_int8 int8_t * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< * ctypedef npy_int32 int32_t * ctypedef npy_int64 int64_t */ typedef npy_int16 __pyx_t_5numpy_int16_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":778 * ctypedef npy_int8 int8_t * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<< * ctypedef npy_int64 int64_t * #ctypedef npy_int96 int96_t */ typedef npy_int32 __pyx_t_5numpy_int32_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":779 * ctypedef npy_int16 int16_t * ctypedef npy_int32 int32_t * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<< * #ctypedef npy_int96 int96_t * #ctypedef npy_int128 int128_t */ typedef npy_int64 __pyx_t_5numpy_int64_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":783 * #ctypedef npy_int128 int128_t * * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t */ typedef npy_uint8 __pyx_t_5numpy_uint8_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":784 * * ctypedef npy_uint8 uint8_t * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< * ctypedef npy_uint32 uint32_t * ctypedef npy_uint64 uint64_t */ typedef npy_uint16 __pyx_t_5numpy_uint16_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":785 * ctypedef npy_uint8 uint8_t * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<< * ctypedef npy_uint64 uint64_t * #ctypedef npy_uint96 uint96_t */ typedef npy_uint32 __pyx_t_5numpy_uint32_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":786 * ctypedef npy_uint16 uint16_t * ctypedef npy_uint32 uint32_t * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<< * #ctypedef npy_uint96 uint96_t * #ctypedef npy_uint128 uint128_t */ typedef npy_uint64 __pyx_t_5numpy_uint64_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":790 * #ctypedef npy_uint128 uint128_t * * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< * ctypedef npy_float64 float64_t * #ctypedef npy_float80 float80_t */ typedef npy_float32 __pyx_t_5numpy_float32_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":791 * * ctypedef npy_float32 float32_t * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< * #ctypedef npy_float80 float80_t * #ctypedef npy_float128 float128_t */ typedef npy_float64 __pyx_t_5numpy_float64_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":800 * # The int types are mapped a bit surprising -- * # numpy.int corresponds to 'l' and numpy.long to 'q' * ctypedef npy_long int_t # <<<<<<<<<<<<<< * ctypedef npy_longlong long_t * ctypedef npy_longlong longlong_t */ typedef npy_long __pyx_t_5numpy_int_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":801 * # numpy.int corresponds to 'l' and numpy.long to 'q' * ctypedef npy_long int_t * ctypedef npy_longlong long_t # <<<<<<<<<<<<<< * ctypedef npy_longlong longlong_t * */ typedef npy_longlong __pyx_t_5numpy_long_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":802 * ctypedef npy_long int_t * ctypedef npy_longlong long_t * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<< * * ctypedef npy_ulong uint_t */ typedef npy_longlong __pyx_t_5numpy_longlong_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":804 * ctypedef npy_longlong longlong_t * * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< * ctypedef npy_ulonglong ulong_t * ctypedef npy_ulonglong ulonglong_t */ typedef npy_ulong __pyx_t_5numpy_uint_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":805 * * ctypedef npy_ulong uint_t * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< * ctypedef npy_ulonglong ulonglong_t * */ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":806 * ctypedef npy_ulong uint_t * ctypedef npy_ulonglong ulong_t * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<< * * ctypedef npy_intp intp_t */ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":808 * ctypedef npy_ulonglong ulonglong_t * * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< * ctypedef npy_uintp uintp_t * */ typedef npy_intp __pyx_t_5numpy_intp_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":809 * * ctypedef npy_intp intp_t * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< * * ctypedef npy_double float_t */ typedef npy_uintp __pyx_t_5numpy_uintp_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":811 * ctypedef npy_uintp uintp_t * * ctypedef npy_double float_t # <<<<<<<<<<<<<< * ctypedef npy_double double_t * ctypedef npy_longdouble longdouble_t */ typedef npy_double __pyx_t_5numpy_float_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":812 * * ctypedef npy_double float_t * ctypedef npy_double double_t # <<<<<<<<<<<<<< * ctypedef npy_longdouble longdouble_t * */ typedef npy_double __pyx_t_5numpy_double_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":813 * ctypedef npy_double float_t * ctypedef npy_double double_t * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<< * * ctypedef npy_cfloat cfloat_t */ typedef npy_longdouble __pyx_t_5numpy_longdouble_t; /* "_pywt.pxd":5 * include "config.pxi" * * ctypedef Py_ssize_t pywt_index_t # <<<<<<<<<<<<<< * * ctypedef fused data_t: */ typedef Py_ssize_t __pyx_t_4pywt_11_extensions_5_pywt_pywt_index_t; /* Declarations.proto */ #if CYTHON_CCOMPLEX #ifdef __cplusplus typedef ::std::complex< float > __pyx_t_float_complex; #else typedef float _Complex __pyx_t_float_complex; #endif #else typedef struct { float real, imag; } __pyx_t_float_complex; #endif static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float, float); /* Declarations.proto */ #if CYTHON_CCOMPLEX #ifdef __cplusplus typedef ::std::complex< double > __pyx_t_double_complex; #else typedef double _Complex __pyx_t_double_complex; #endif #else typedef struct { double real, imag; } __pyx_t_double_complex; #endif static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double, double); /*--- Type declarations ---*/ struct WaveletObject; struct ContinuousWaveletObject; struct __pyx_array_obj; struct __pyx_MemviewEnum_obj; struct __pyx_memoryview_obj; struct __pyx_memoryviewslice_obj; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":815 * ctypedef npy_longdouble longdouble_t * * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< * ctypedef npy_cdouble cdouble_t * ctypedef npy_clongdouble clongdouble_t */ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":816 * * ctypedef npy_cfloat cfloat_t * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< * ctypedef npy_clongdouble clongdouble_t * */ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":817 * ctypedef npy_cfloat cfloat_t * ctypedef npy_cdouble cdouble_t * ctypedef npy_clongdouble clongdouble_t # <<<<<<<<<<<<<< * * ctypedef npy_cdouble complex_t */ typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":819 * ctypedef npy_clongdouble clongdouble_t * * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew1(a): */ typedef npy_cdouble __pyx_t_5numpy_complex_t; struct __pyx_opt_args_4pywt_11_extensions_4_swt_swt_axis; struct __pyx_defaults; typedef struct __pyx_defaults __pyx_defaults; struct __pyx_defaults1; typedef struct __pyx_defaults1 __pyx_defaults1; struct __pyx_defaults2; typedef struct __pyx_defaults2 __pyx_defaults2; struct __pyx_defaults3; typedef struct __pyx_defaults3 __pyx_defaults3; struct __pyx_defaults4; typedef struct __pyx_defaults4 __pyx_defaults4; struct __pyx_defaults5; typedef struct __pyx_defaults5 __pyx_defaults5; struct __pyx_defaults6; typedef struct __pyx_defaults6 __pyx_defaults6; struct __pyx_defaults7; typedef struct __pyx_defaults7 __pyx_defaults7; /* "pywt/_extensions/_swt.pyx":159 * * * cpdef swt_axis(np.ndarray data, Wavelet wavelet, size_t level, # <<<<<<<<<<<<<< * size_t start_level, unsigned int axis=0, * bool trim_approx=False): */ struct __pyx_opt_args_4pywt_11_extensions_4_swt_swt_axis { int __pyx_n; unsigned int axis; PyBoolObject *trim_approx; }; struct __pyx_defaults { PyBoolObject *__pyx_arg_trim_approx; }; struct __pyx_defaults1 { PyBoolObject *__pyx_arg_trim_approx; }; struct __pyx_defaults2 { PyBoolObject *__pyx_arg_trim_approx; }; struct __pyx_defaults3 { PyBoolObject *__pyx_arg_trim_approx; }; struct __pyx_defaults4 { PyBoolObject *__pyx_arg_trim_approx; }; struct __pyx_defaults5 { PyBoolObject *__pyx_arg_trim_approx; }; struct __pyx_defaults6 { PyBoolObject *__pyx_arg_trim_approx; }; struct __pyx_defaults7 { PyBoolObject *__pyx_arg_trim_approx; }; /* "_pywt.pxd":23 * have_c99_complex = 0 * * cdef public class Wavelet [type WaveletType, object WaveletObject]: # <<<<<<<<<<<<<< * cdef wavelet.DiscreteWavelet* w * */ struct WaveletObject { PyObject_HEAD DiscreteWavelet *w; PyObject *name; PyObject *number; }; __PYX_EXTERN_C DL_EXPORT(PyTypeObject) WaveletType; /* "_pywt.pxd":29 * cdef readonly number * * cdef public class ContinuousWavelet [type ContinuousWaveletType, object ContinuousWaveletObject]: # <<<<<<<<<<<<<< * cdef wavelet.ContinuousWavelet* w * */ struct ContinuousWaveletObject { PyObject_HEAD ContinuousWavelet *w; PyObject *name; PyObject *number; PyObject *dt; }; __PYX_EXTERN_C DL_EXPORT(PyTypeObject) ContinuousWaveletType; /* "View.MemoryView":105 * * @cname("__pyx_array") * cdef class array: # <<<<<<<<<<<<<< * * cdef: */ struct __pyx_array_obj { PyObject_HEAD struct __pyx_vtabstruct_array *__pyx_vtab; char *data; Py_ssize_t len; char *format; int ndim; Py_ssize_t *_shape; Py_ssize_t *_strides; Py_ssize_t itemsize; PyObject *mode; PyObject *_format; void (*callback_free_data)(void *); int free_data; int dtype_is_object; }; /* "View.MemoryView":279 * * @cname('__pyx_MemviewEnum') * cdef class Enum(object): # <<<<<<<<<<<<<< * cdef object name * def __init__(self, name): */ struct __pyx_MemviewEnum_obj { PyObject_HEAD PyObject *name; }; /* "View.MemoryView":330 * * @cname('__pyx_memoryview') * cdef class memoryview(object): # <<<<<<<<<<<<<< * * cdef object obj */ struct __pyx_memoryview_obj { PyObject_HEAD struct __pyx_vtabstruct_memoryview *__pyx_vtab; PyObject *obj; PyObject *_size; PyObject *_array_interface; PyThread_type_lock lock; __pyx_atomic_int acquisition_count[2]; __pyx_atomic_int *acquisition_count_aligned_p; Py_buffer view; int flags; int dtype_is_object; __Pyx_TypeInfo *typeinfo; }; /* "View.MemoryView":965 * * @cname('__pyx_memoryviewslice') * cdef class _memoryviewslice(memoryview): # <<<<<<<<<<<<<< * "Internal class for passing memoryview slices to Python" * */ struct __pyx_memoryviewslice_obj { struct __pyx_memoryview_obj __pyx_base; __Pyx_memviewslice from_slice; PyObject *from_object; PyObject *(*to_object_func)(char *); int (*to_dtype_func)(char *, PyObject *); }; /* "View.MemoryView":105 * * @cname("__pyx_array") * cdef class array: # <<<<<<<<<<<<<< * * cdef: */ struct __pyx_vtabstruct_array { PyObject *(*get_memview)(struct __pyx_array_obj *); }; static struct __pyx_vtabstruct_array *__pyx_vtabptr_array; /* "View.MemoryView":330 * * @cname('__pyx_memoryview') * cdef class memoryview(object): # <<<<<<<<<<<<<< * * cdef object obj */ struct __pyx_vtabstruct_memoryview { char *(*get_item_pointer)(struct __pyx_memoryview_obj *, PyObject *); PyObject *(*is_slice)(struct __pyx_memoryview_obj *, PyObject *); PyObject *(*setitem_slice_assignment)(struct __pyx_memoryview_obj *, PyObject *, PyObject *); PyObject *(*setitem_slice_assign_scalar)(struct __pyx_memoryview_obj *, struct __pyx_memoryview_obj *, PyObject *); PyObject *(*setitem_indexed)(struct __pyx_memoryview_obj *, PyObject *, PyObject *); PyObject *(*convert_item_to_object)(struct __pyx_memoryview_obj *, char *); PyObject *(*assign_item_from_object)(struct __pyx_memoryview_obj *, char *, PyObject *); }; static struct __pyx_vtabstruct_memoryview *__pyx_vtabptr_memoryview; /* "View.MemoryView":965 * * @cname('__pyx_memoryviewslice') * cdef class _memoryviewslice(memoryview): # <<<<<<<<<<<<<< * "Internal class for passing memoryview slices to Python" * */ struct __pyx_vtabstruct__memoryviewslice { struct __pyx_vtabstruct_memoryview __pyx_base; }; static struct __pyx_vtabstruct__memoryviewslice *__pyx_vtabptr__memoryviewslice; /* --- Runtime support code (head) --- */ /* Refnanny.proto */ #ifndef CYTHON_REFNANNY #define CYTHON_REFNANNY 0 #endif #if CYTHON_REFNANNY typedef struct { void (*INCREF)(void*, PyObject*, int); void (*DECREF)(void*, PyObject*, int); void (*GOTREF)(void*, PyObject*, int); void (*GIVEREF)(void*, PyObject*, int); void* (*SetupContext)(const char*, int, const char*); void (*FinishContext)(void**); } __Pyx_RefNannyAPIStruct; static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; #ifdef WITH_THREAD #define __Pyx_RefNannySetupContext(name, acquire_gil)\ if (acquire_gil) {\ PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ PyGILState_Release(__pyx_gilstate_save);\ } else {\ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ } #else #define __Pyx_RefNannySetupContext(name, acquire_gil)\ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) #endif #define __Pyx_RefNannyFinishContext()\ __Pyx_RefNanny->FinishContext(&__pyx_refnanny) #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0) #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0) #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0) #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0) #else #define __Pyx_RefNannyDeclarations #define __Pyx_RefNannySetupContext(name, acquire_gil) #define __Pyx_RefNannyFinishContext() #define __Pyx_INCREF(r) Py_INCREF(r) #define __Pyx_DECREF(r) Py_DECREF(r) #define __Pyx_GOTREF(r) #define __Pyx_GIVEREF(r) #define __Pyx_XINCREF(r) Py_XINCREF(r) #define __Pyx_XDECREF(r) Py_XDECREF(r) #define __Pyx_XGOTREF(r) #define __Pyx_XGIVEREF(r) #endif #define __Pyx_XDECREF_SET(r, v) do {\ PyObject *tmp = (PyObject *) r;\ r = v; __Pyx_XDECREF(tmp);\ } while (0) #define __Pyx_DECREF_SET(r, v) do {\ PyObject *tmp = (PyObject *) r;\ r = v; __Pyx_DECREF(tmp);\ } while (0) #define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) #define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) /* PyObjectGetAttrStr.proto */ #if CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name); #else #define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) #endif /* GetBuiltinName.proto */ static PyObject *__Pyx_GetBuiltinName(PyObject *name); /* PyObjectCall.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); #else #define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw) #endif /* PyThreadStateGet.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; #define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current; #define __Pyx_PyErr_Occurred() __pyx_tstate->curexc_type #else #define __Pyx_PyThreadState_declare #define __Pyx_PyThreadState_assign #define __Pyx_PyErr_Occurred() PyErr_Occurred() #endif /* PyErrFetchRestore.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL) #define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb) #define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb) #define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb) #define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL)) #else #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) #endif #else #define __Pyx_PyErr_Clear() PyErr_Clear() #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) #define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb) #define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb) #define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb) #define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb) #define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb) #define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb) #endif /* RaiseException.proto */ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); /* PyDictVersioning.proto */ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS #define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1) #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\ (version_var) = __PYX_GET_DICT_VERSION(dict);\ (cache_var) = (value); #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\ static PY_UINT64_T __pyx_dict_version = 0;\ static PyObject *__pyx_dict_cached_value = NULL;\ if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\ (VAR) = __pyx_dict_cached_value;\ } else {\ (VAR) = __pyx_dict_cached_value = (LOOKUP);\ __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\ }\ } static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj); static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj); static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version); #else #define __PYX_GET_DICT_VERSION(dict) (0) #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var) #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP); #endif /* GetModuleGlobalName.proto */ #if CYTHON_USE_DICT_VERSIONS #define __Pyx_GetModuleGlobalName(var, name) {\ static PY_UINT64_T __pyx_dict_version = 0;\ static PyObject *__pyx_dict_cached_value = NULL;\ (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\ (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\ __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ } #define __Pyx_GetModuleGlobalNameUncached(var, name) {\ PY_UINT64_T __pyx_dict_version;\ PyObject *__pyx_dict_cached_value;\ (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ } static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value); #else #define __Pyx_GetModuleGlobalName(var, name) (var) = __Pyx__GetModuleGlobalName(name) #define __Pyx_GetModuleGlobalNameUncached(var, name) (var) = __Pyx__GetModuleGlobalName(name) static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name); #endif /* PyCFunctionFastCall.proto */ #if CYTHON_FAST_PYCCALL static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs); #else #define __Pyx_PyCFunction_FastCall(func, args, nargs) (assert(0), NULL) #endif /* PyFunctionFastCall.proto */ #if CYTHON_FAST_PYCALL #define __Pyx_PyFunction_FastCall(func, args, nargs)\ __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) #if 1 || PY_VERSION_HEX < 0x030600B1 static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs); #else #define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) #endif #define __Pyx_BUILD_ASSERT_EXPR(cond)\ (sizeof(char [1 - 2*!(cond)]) - 1) #ifndef Py_MEMBER_SIZE #define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) #endif static size_t __pyx_pyframe_localsplus_offset = 0; #include "frameobject.h" #define __Pxy_PyFrame_Initialize_Offsets()\ ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) #define __Pyx_PyFrame_GetLocalsplus(frame)\ (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) #endif /* PyObjectCall2Args.proto */ static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2); /* PyObjectCallMethO.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); #endif /* PyObjectCallOneArg.proto */ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); /* RaiseArgTupleInvalid.proto */ static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /* RaiseDoubleKeywords.proto */ static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); /* ParseKeywords.proto */ static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\ PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\ const char* function_name); /* PyDictContains.proto */ static CYTHON_INLINE int __Pyx_PyDict_ContainsTF(PyObject* item, PyObject* dict, int eq) { int result = PyDict_Contains(dict, item); return unlikely(result < 0) ? result : (result == (eq == Py_EQ)); } /* DictGetItem.proto */ #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key); #define __Pyx_PyObject_Dict_GetItem(obj, name)\ (likely(PyDict_CheckExact(obj)) ?\ __Pyx_PyDict_GetItem(obj, name) : PyObject_GetItem(obj, name)) #else #define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key) #define __Pyx_PyObject_Dict_GetItem(obj, name) PyObject_GetItem(obj, name) #endif /* UnicodeAsUCS4.proto */ static CYTHON_INLINE Py_UCS4 __Pyx_PyUnicode_AsPy_UCS4(PyObject*); /* object_ord.proto */ #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyObject_Ord(c)\ (likely(PyUnicode_Check(c)) ? (long)__Pyx_PyUnicode_AsPy_UCS4(c) : __Pyx__PyObject_Ord(c)) #else #define __Pyx_PyObject_Ord(c) __Pyx__PyObject_Ord(c) #endif static long __Pyx__PyObject_Ord(PyObject* c); /* SetItemInt.proto */ #define __Pyx_SetItemInt(o, i, v, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_SetItemInt_Fast(o, (Py_ssize_t)i, v, is_list, wraparound, boundscheck) :\ (is_list ? (PyErr_SetString(PyExc_IndexError, "list assignment index out of range"), -1) :\ __Pyx_SetItemInt_Generic(o, to_py_func(i), v))) static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v); static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, int is_list, int wraparound, int boundscheck); /* IterFinish.proto */ static CYTHON_INLINE int __Pyx_IterFinish(void); /* PyObjectCallNoArg.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func); #else #define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL) #endif /* PyObjectGetMethod.proto */ static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method); /* PyObjectCallMethod0.proto */ static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name); /* RaiseNeedMoreValuesToUnpack.proto */ static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index); /* RaiseTooManyValuesToUnpack.proto */ static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected); /* UnpackItemEndCheck.proto */ static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected); /* RaiseNoneIterError.proto */ static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void); /* UnpackTupleError.proto */ static void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index); /* UnpackTuple2.proto */ #define __Pyx_unpack_tuple2(tuple, value1, value2, is_tuple, has_known_size, decref_tuple)\ (likely(is_tuple || PyTuple_Check(tuple)) ?\ (likely(has_known_size || PyTuple_GET_SIZE(tuple) == 2) ?\ __Pyx_unpack_tuple2_exact(tuple, value1, value2, decref_tuple) :\ (__Pyx_UnpackTupleError(tuple, 2), -1)) :\ __Pyx_unpack_tuple2_generic(tuple, value1, value2, has_known_size, decref_tuple)) static CYTHON_INLINE int __Pyx_unpack_tuple2_exact( PyObject* tuple, PyObject** value1, PyObject** value2, int decref_tuple); static int __Pyx_unpack_tuple2_generic( PyObject* tuple, PyObject** value1, PyObject** value2, int has_known_size, int decref_tuple); /* dict_iter.proto */ static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* dict, int is_dict, PyObject* method_name, Py_ssize_t* p_orig_length, int* p_is_dict); static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* dict_or_iter, Py_ssize_t orig_length, Py_ssize_t* ppos, PyObject** pkey, PyObject** pvalue, PyObject** pitem, int is_dict); /* GetItemInt.proto */ #define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\ (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\ __Pyx_GetItemInt_Generic(o, to_py_func(i)))) #define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL)) static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, int wraparound, int boundscheck); #define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL)) static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, int wraparound, int boundscheck); static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j); static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list, int wraparound, int boundscheck); /* ListAppend.proto */ #if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) { PyListObject* L = (PyListObject*) list; Py_ssize_t len = Py_SIZE(list); if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) { Py_INCREF(x); PyList_SET_ITEM(list, len, x); Py_SIZE(list) = len+1; return 0; } return PyList_Append(list, x); } #else #define __Pyx_PyList_Append(L,x) PyList_Append(L,x) #endif /* ArgTypeTest.proto */ #define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\ ((likely((Py_TYPE(obj) == type) | (none_allowed && (obj == Py_None)))) ? 1 :\ __Pyx__ArgTypeTest(obj, type, name, exact)) static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact); /* PyIntBinop.proto */ #if !CYTHON_COMPILING_IN_PYPY static PyObject* __Pyx_PyInt_RemainderObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check); #else #define __Pyx_PyInt_RemainderObjC(op1, op2, intval, inplace, zerodivision_check)\ (inplace ? PyNumber_InPlaceRemainder(op1, op2) : PyNumber_Remainder(op1, op2)) #endif /* MemviewSliceInit.proto */ #define __Pyx_BUF_MAX_NDIMS %(BUF_MAX_NDIMS)d #define __Pyx_MEMVIEW_DIRECT 1 #define __Pyx_MEMVIEW_PTR 2 #define __Pyx_MEMVIEW_FULL 4 #define __Pyx_MEMVIEW_CONTIG 8 #define __Pyx_MEMVIEW_STRIDED 16 #define __Pyx_MEMVIEW_FOLLOW 32 #define __Pyx_IS_C_CONTIG 1 #define __Pyx_IS_F_CONTIG 2 static int __Pyx_init_memviewslice( struct __pyx_memoryview_obj *memview, int ndim, __Pyx_memviewslice *memviewslice, int memview_is_new_reference); static CYTHON_INLINE int __pyx_add_acquisition_count_locked( __pyx_atomic_int *acquisition_count, PyThread_type_lock lock); static CYTHON_INLINE int __pyx_sub_acquisition_count_locked( __pyx_atomic_int *acquisition_count, PyThread_type_lock lock); #define __pyx_get_slice_count_pointer(memview) (memview->acquisition_count_aligned_p) #define __pyx_get_slice_count(memview) (*__pyx_get_slice_count_pointer(memview)) #define __PYX_INC_MEMVIEW(slice, have_gil) __Pyx_INC_MEMVIEW(slice, have_gil, __LINE__) #define __PYX_XDEC_MEMVIEW(slice, have_gil) __Pyx_XDEC_MEMVIEW(slice, have_gil, __LINE__) static CYTHON_INLINE void __Pyx_INC_MEMVIEW(__Pyx_memviewslice *, int, int); static CYTHON_INLINE void __Pyx_XDEC_MEMVIEW(__Pyx_memviewslice *, int, int); /* None.proto */ static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname); /* None.proto */ static CYTHON_INLINE long __Pyx_mod_long(long, long); /* ExtTypeTest.proto */ static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); /* GetTopmostException.proto */ #if CYTHON_USE_EXC_INFO_STACK static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate); #endif /* SaveResetException.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); #else #define __Pyx_ExceptionSave(type, value, tb) PyErr_GetExcInfo(type, value, tb) #define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb) #endif /* PyErrExceptionMatches.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err) static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err); #else #define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err) #endif /* GetException.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb) static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #else static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); #endif /* IncludeStringH.proto */ #include /* BytesEquals.proto */ static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals); /* UnicodeEquals.proto */ static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals); /* StrEquals.proto */ #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyString_Equals __Pyx_PyUnicode_Equals #else #define __Pyx_PyString_Equals __Pyx_PyBytes_Equals #endif /* None.proto */ static CYTHON_INLINE Py_ssize_t __Pyx_div_Py_ssize_t(Py_ssize_t, Py_ssize_t); /* UnaryNegOverflows.proto */ #define UNARY_NEG_WOULD_OVERFLOW(x)\ (((x) < 0) & ((unsigned long)(x) == 0-(unsigned long)(x))) static CYTHON_UNUSED int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *); /*proto*/ /* GetAttr.proto */ static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *); /* ObjectGetItem.proto */ #if CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key); #else #define __Pyx_PyObject_GetItem(obj, key) PyObject_GetItem(obj, key) #endif /* decode_c_string_utf16.proto */ static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16(const char *s, Py_ssize_t size, const char *errors) { int byteorder = 0; return PyUnicode_DecodeUTF16(s, size, errors, &byteorder); } static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16LE(const char *s, Py_ssize_t size, const char *errors) { int byteorder = -1; return PyUnicode_DecodeUTF16(s, size, errors, &byteorder); } static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16BE(const char *s, Py_ssize_t size, const char *errors) { int byteorder = 1; return PyUnicode_DecodeUTF16(s, size, errors, &byteorder); } /* decode_c_string.proto */ static CYTHON_INLINE PyObject* __Pyx_decode_c_string( const char* cstring, Py_ssize_t start, Py_ssize_t stop, const char* encoding, const char* errors, PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)); /* GetAttr3.proto */ static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *); /* SwapException.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_ExceptionSwap(type, value, tb) __Pyx__ExceptionSwap(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #else static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb); #endif /* Import.proto */ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); /* FastTypeChecks.proto */ #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b); static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type); static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2); #else #define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) #define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type) #define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2)) #endif #define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) static CYTHON_UNUSED int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ /* ListCompAppend.proto */ #if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) { PyListObject* L = (PyListObject*) list; Py_ssize_t len = Py_SIZE(list); if (likely(L->allocated > len)) { Py_INCREF(x); PyList_SET_ITEM(list, len, x); Py_SIZE(list) = len+1; return 0; } return PyList_Append(list, x); } #else #define __Pyx_ListComp_Append(L,x) PyList_Append(L,x) #endif /* PyIntBinop.proto */ #if !CYTHON_COMPILING_IN_PYPY static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check); #else #define __Pyx_PyInt_AddObjC(op1, op2, intval, inplace, zerodivision_check)\ (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2)) #endif /* ListExtend.proto */ static CYTHON_INLINE int __Pyx_PyList_Extend(PyObject* L, PyObject* v) { #if CYTHON_COMPILING_IN_CPYTHON PyObject* none = _PyList_Extend((PyListObject*)L, v); if (unlikely(!none)) return -1; Py_DECREF(none); return 0; #else return PyList_SetSlice(L, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, v); #endif } /* None.proto */ static CYTHON_INLINE long __Pyx_div_long(long, long); /* WriteUnraisableException.proto */ static void __Pyx_WriteUnraisable(const char *name, int clineno, int lineno, const char *filename, int full_traceback, int nogil); /* ImportFrom.proto */ static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name); /* HasAttr.proto */ static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *); /* StringJoin.proto */ #if PY_MAJOR_VERSION < 3 #define __Pyx_PyString_Join __Pyx_PyBytes_Join #define __Pyx_PyBaseString_Join(s, v) (PyUnicode_CheckExact(s) ? PyUnicode_Join(s, v) : __Pyx_PyBytes_Join(s, v)) #else #define __Pyx_PyString_Join PyUnicode_Join #define __Pyx_PyBaseString_Join PyUnicode_Join #endif #if CYTHON_COMPILING_IN_CPYTHON #if PY_MAJOR_VERSION < 3 #define __Pyx_PyBytes_Join _PyString_Join #else #define __Pyx_PyBytes_Join _PyBytes_Join #endif #else static CYTHON_INLINE PyObject* __Pyx_PyBytes_Join(PyObject* sep, PyObject* values); #endif /* PyObject_Unicode.proto */ #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyObject_Unicode(obj)\ (likely(PyUnicode_CheckExact(obj)) ? __Pyx_NewRef(obj) : PyObject_Str(obj)) #else #define __Pyx_PyObject_Unicode(obj)\ (likely(PyUnicode_CheckExact(obj)) ? __Pyx_NewRef(obj) : PyObject_Unicode(obj)) #endif /* PyObject_GenericGetAttrNoDict.proto */ #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name); #else #define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr #endif /* PyObject_GenericGetAttr.proto */ #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name); #else #define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr #endif /* SetVTable.proto */ static int __Pyx_SetVtable(PyObject *dict, void *vtable); /* SetupReduce.proto */ static int __Pyx_setup_reduce(PyObject* type_obj); /* TypeImport.proto */ #ifndef __PYX_HAVE_RT_ImportType_proto #define __PYX_HAVE_RT_ImportType_proto enum __Pyx_ImportType_CheckSize { __Pyx_ImportType_CheckSize_Error = 0, __Pyx_ImportType_CheckSize_Warn = 1, __Pyx_ImportType_CheckSize_Ignore = 2 }; static PyTypeObject *__Pyx_ImportType(PyObject* module, const char *module_name, const char *class_name, size_t size, enum __Pyx_ImportType_CheckSize check_size); #endif /* FetchCommonType.proto */ static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type); /* CythonFunction.proto */ #define __Pyx_CyFunction_USED 1 #define __Pyx_CYFUNCTION_STATICMETHOD 0x01 #define __Pyx_CYFUNCTION_CLASSMETHOD 0x02 #define __Pyx_CYFUNCTION_CCLASS 0x04 #define __Pyx_CyFunction_GetClosure(f)\ (((__pyx_CyFunctionObject *) (f))->func_closure) #define __Pyx_CyFunction_GetClassObj(f)\ (((__pyx_CyFunctionObject *) (f))->func_classobj) #define __Pyx_CyFunction_Defaults(type, f)\ ((type *)(((__pyx_CyFunctionObject *) (f))->defaults)) #define __Pyx_CyFunction_SetDefaultsGetter(f, g)\ ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g) typedef struct { PyCFunctionObject func; #if PY_VERSION_HEX < 0x030500A0 PyObject *func_weakreflist; #endif PyObject *func_dict; PyObject *func_name; PyObject *func_qualname; PyObject *func_doc; PyObject *func_globals; PyObject *func_code; PyObject *func_closure; PyObject *func_classobj; void *defaults; int defaults_pyobjects; int flags; PyObject *defaults_tuple; PyObject *defaults_kwdict; PyObject *(*defaults_getter)(PyObject *); PyObject *func_annotations; } __pyx_CyFunctionObject; static PyTypeObject *__pyx_CyFunctionType = 0; #define __Pyx_CyFunction_Check(obj) (__Pyx_TypeCheck(obj, __pyx_CyFunctionType)) #define __Pyx_CyFunction_NewEx(ml, flags, qualname, self, module, globals, code)\ __Pyx_CyFunction_New(__pyx_CyFunctionType, ml, flags, qualname, self, module, globals, code) static PyObject *__Pyx_CyFunction_New(PyTypeObject *, PyMethodDef *ml, int flags, PyObject* qualname, PyObject *self, PyObject *module, PyObject *globals, PyObject* code); static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *m, size_t size, int pyobjects); static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m, PyObject *tuple); static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m, PyObject *dict); static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m, PyObject *dict); static int __pyx_CyFunction_init(void); /* FusedFunction.proto */ typedef struct { __pyx_CyFunctionObject func; PyObject *__signatures__; PyObject *type; PyObject *self; } __pyx_FusedFunctionObject; #define __pyx_FusedFunction_NewEx(ml, flags, qualname, self, module, globals, code)\ __pyx_FusedFunction_New(__pyx_FusedFunctionType, ml, flags, qualname, self, module, globals, code) static PyObject *__pyx_FusedFunction_New(PyTypeObject *type, PyMethodDef *ml, int flags, PyObject *qualname, PyObject *self, PyObject *module, PyObject *globals, PyObject *code); static int __pyx_FusedFunction_clear(__pyx_FusedFunctionObject *self); static PyTypeObject *__pyx_FusedFunctionType = NULL; static int __pyx_FusedFunction_init(void); #define __Pyx_FusedFunction_USED /* CLineInTraceback.proto */ #ifdef CYTHON_CLINE_IN_TRACEBACK #define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0) #else static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line); #endif /* CodeObjectCache.proto */ typedef struct { PyCodeObject* code_object; int code_line; } __Pyx_CodeObjectCacheEntry; struct __Pyx_CodeObjectCache { int count; int max_count; __Pyx_CodeObjectCacheEntry* entries; }; static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL}; static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); static PyCodeObject *__pyx_find_code_object(int code_line); static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); /* AddTraceback.proto */ static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename); #if PY_MAJOR_VERSION < 3 static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags); static void __Pyx_ReleaseBuffer(Py_buffer *view); #else #define __Pyx_GetBuffer PyObject_GetBuffer #define __Pyx_ReleaseBuffer PyBuffer_Release #endif /* BufferStructDeclare.proto */ typedef struct { Py_ssize_t shape, strides, suboffsets; } __Pyx_Buf_DimInfo; typedef struct { size_t refcount; Py_buffer pybuffer; } __Pyx_Buffer; typedef struct { __Pyx_Buffer *rcbuffer; char *data; __Pyx_Buf_DimInfo diminfo[8]; } __Pyx_LocalBuf_ND; /* MemviewSliceIsContig.proto */ static int __pyx_memviewslice_is_contig(const __Pyx_memviewslice mvs, char order, int ndim); /* OverlappingSlices.proto */ static int __pyx_slices_overlap(__Pyx_memviewslice *slice1, __Pyx_memviewslice *slice2, int ndim, size_t itemsize); /* Capsule.proto */ static CYTHON_INLINE PyObject *__pyx_capsule_create(void *p, const char *sig); /* IsLittleEndian.proto */ static CYTHON_INLINE int __Pyx_Is_Little_Endian(void); /* BufferFormatCheck.proto */ static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts); static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx, __Pyx_BufFmt_StackElem* stack, __Pyx_TypeInfo* type); /* TypeInfoCompare.proto */ static int __pyx_typeinfo_cmp(__Pyx_TypeInfo *a, __Pyx_TypeInfo *b); /* MemviewSliceValidateAndInit.proto */ static int __Pyx_ValidateAndInit_memviewslice( int *axes_specs, int c_or_f_flag, int buf_flags, int ndim, __Pyx_TypeInfo *dtype, __Pyx_BufFmt_StackElem stack[], __Pyx_memviewslice *memviewslice, PyObject *original_obj); /* ObjectToMemviewSlice.proto */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(PyObject *, int writable_flag); /* ObjectToMemviewSlice.proto */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(PyObject *, int writable_flag); /* ObjectToMemviewSlice.proto */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_float_complex(PyObject *, int writable_flag); /* ObjectToMemviewSlice.proto */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_double_complex(PyObject *, int writable_flag); /* RealImag.proto */ #if CYTHON_CCOMPLEX #ifdef __cplusplus #define __Pyx_CREAL(z) ((z).real()) #define __Pyx_CIMAG(z) ((z).imag()) #else #define __Pyx_CREAL(z) (__real__(z)) #define __Pyx_CIMAG(z) (__imag__(z)) #endif #else #define __Pyx_CREAL(z) ((z).real) #define __Pyx_CIMAG(z) ((z).imag) #endif #if defined(__cplusplus) && CYTHON_CCOMPLEX\ && (defined(_WIN32) || defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 5 || __GNUC__ == 4 && __GNUC_MINOR__ >= 4 )) || __cplusplus >= 201103) #define __Pyx_SET_CREAL(z,x) ((z).real(x)) #define __Pyx_SET_CIMAG(z,y) ((z).imag(y)) #else #define __Pyx_SET_CREAL(z,x) __Pyx_CREAL(z) = (x) #define __Pyx_SET_CIMAG(z,y) __Pyx_CIMAG(z) = (y) #endif /* Arithmetic.proto */ #if CYTHON_CCOMPLEX #define __Pyx_c_eq_float(a, b) ((a)==(b)) #define __Pyx_c_sum_float(a, b) ((a)+(b)) #define __Pyx_c_diff_float(a, b) ((a)-(b)) #define __Pyx_c_prod_float(a, b) ((a)*(b)) #define __Pyx_c_quot_float(a, b) ((a)/(b)) #define __Pyx_c_neg_float(a) (-(a)) #ifdef __cplusplus #define __Pyx_c_is_zero_float(z) ((z)==(float)0) #define __Pyx_c_conj_float(z) (::std::conj(z)) #if 1 #define __Pyx_c_abs_float(z) (::std::abs(z)) #define __Pyx_c_pow_float(a, b) (::std::pow(a, b)) #endif #else #define __Pyx_c_is_zero_float(z) ((z)==0) #define __Pyx_c_conj_float(z) (conjf(z)) #if 1 #define __Pyx_c_abs_float(z) (cabsf(z)) #define __Pyx_c_pow_float(a, b) (cpowf(a, b)) #endif #endif #else static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex, __pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex); static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex); #if 1 static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex); static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex, __pyx_t_float_complex); #endif #endif /* Arithmetic.proto */ #if CYTHON_CCOMPLEX #define __Pyx_c_eq_double(a, b) ((a)==(b)) #define __Pyx_c_sum_double(a, b) ((a)+(b)) #define __Pyx_c_diff_double(a, b) ((a)-(b)) #define __Pyx_c_prod_double(a, b) ((a)*(b)) #define __Pyx_c_quot_double(a, b) ((a)/(b)) #define __Pyx_c_neg_double(a) (-(a)) #ifdef __cplusplus #define __Pyx_c_is_zero_double(z) ((z)==(double)0) #define __Pyx_c_conj_double(z) (::std::conj(z)) #if 1 #define __Pyx_c_abs_double(z) (::std::abs(z)) #define __Pyx_c_pow_double(a, b) (::std::pow(a, b)) #endif #else #define __Pyx_c_is_zero_double(z) ((z)==0) #define __Pyx_c_conj_double(z) (conj(z)) #if 1 #define __Pyx_c_abs_double(z) (cabs(z)) #define __Pyx_c_pow_double(a, b) (cpow(a, b)) #endif #endif #else static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex, __pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex); static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex); #if 1 static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex); static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex, __pyx_t_double_complex); #endif #endif /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_char(unsigned char value); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); /* MemviewDtypeToObject.proto */ static CYTHON_INLINE PyObject *__pyx_memview_get_nn___pyx_t_5numpy_float32_t(const char *itemp); static CYTHON_INLINE int __pyx_memview_set_nn___pyx_t_5numpy_float32_t(const char *itemp, PyObject *obj); /* MemviewDtypeToObject.proto */ static CYTHON_INLINE PyObject *__pyx_memview_get_nn___pyx_t_5numpy_float64_t(const char *itemp); static CYTHON_INLINE int __pyx_memview_set_nn___pyx_t_5numpy_float64_t(const char *itemp, PyObject *obj); /* ToPy.proto */ #define __pyx_PyComplex_FromComplex(z)\ PyComplex_FromDoubles((double)__Pyx_CREAL(z),\ (double)__Pyx_CIMAG(z)) /* FromPy.proto */ static __pyx_t_float_complex __Pyx_PyComplex_As___pyx_t_float_complex(PyObject*); /* MemviewDtypeToObject.proto */ static CYTHON_INLINE PyObject *__pyx_memview_get___pyx_t_float_complex(const char *itemp); static CYTHON_INLINE int __pyx_memview_set___pyx_t_float_complex(const char *itemp, PyObject *obj); /* FromPy.proto */ static __pyx_t_double_complex __Pyx_PyComplex_As___pyx_t_double_complex(PyObject*); /* MemviewDtypeToObject.proto */ static CYTHON_INLINE PyObject *__pyx_memview_get___pyx_t_double_complex(const char *itemp); static CYTHON_INLINE int __pyx_memview_set___pyx_t_double_complex(const char *itemp, PyObject *obj); /* MemviewDtypeToObject.proto */ static CYTHON_INLINE PyObject *__pyx_memview_get_size_t(const char *itemp); static CYTHON_INLINE int __pyx_memview_set_size_t(const char *itemp, PyObject *obj); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value); /* MemviewSliceCopyTemplate.proto */ static __Pyx_memviewslice __pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs, const char *mode, int ndim, size_t sizeof_dtype, int contig_flag, int dtype_is_object); /* CIntFromPy.proto */ static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *); /* TypeInfoToFormat.proto */ struct __pyx_typeinfo_string { char string[3]; }; static struct __pyx_typeinfo_string __Pyx_TypeInfoToFormat(__Pyx_TypeInfo *type); /* CIntFromPy.proto */ static CYTHON_INLINE unsigned int __Pyx_PyInt_As_unsigned_int(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); /* BytesContains.proto */ static CYTHON_INLINE int __Pyx_BytesContains(PyObject* bytes, char character); /* ImportNumPyArray.proto */ static PyObject *__pyx_numpy_ndarray = NULL; static PyObject* __Pyx_ImportNumPyArrayTypeIfAvailable(void); /* CIntFromPy.proto */ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); /* CIntFromPy.proto */ static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *); /* ObjectToMemviewSlice.proto */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_size_t(PyObject *, int writable_flag); /* CheckBinaryVersion.proto */ static int __Pyx_check_binary_version(void); /* VoidPtrImport.proto */ static int __Pyx_ImportVoidPtr(PyObject *module, const char *name, void **p, const char *sig); /* FunctionImport.proto */ static int __Pyx_ImportFunction(PyObject *module, const char *funcname, void (**f)(void), const char *sig); /* InitStrings.proto */ static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *__pyx_v_self); /* proto*/ static char *__pyx_memoryview_get_item_pointer(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index); /* proto*/ static PyObject *__pyx_memoryview_is_slice(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj); /* proto*/ static PyObject *__pyx_memoryview_setitem_slice_assignment(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_dst, PyObject *__pyx_v_src); /* proto*/ static PyObject *__pyx_memoryview_setitem_slice_assign_scalar(struct __pyx_memoryview_obj *__pyx_v_self, struct __pyx_memoryview_obj *__pyx_v_dst, PyObject *__pyx_v_value); /* proto*/ static PyObject *__pyx_memoryview_setitem_indexed(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /* proto*/ static PyObject *__pyx_memoryview_convert_item_to_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp); /* proto*/ static PyObject *__pyx_memoryview_assign_item_from_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value); /* proto*/ static PyObject *__pyx_memoryviewslice_convert_item_to_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp); /* proto*/ static PyObject *__pyx_memoryviewslice_assign_item_from_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value); /* proto*/ /* Module declarations from 'pywt._extensions' */ /* Module declarations from 'pywt._extensions.common' */ /* Module declarations from 'pywt._extensions.wavelet' */ /* Module declarations from 'pywt._extensions.c_wt' */ /* Module declarations from 'cpython.version' */ /* Module declarations from '__builtin__' */ /* Module declarations from 'cpython.type' */ static PyTypeObject *__pyx_ptype_7cpython_4type_type = 0; /* Module declarations from 'libc.string' */ /* Module declarations from 'libc.stdio' */ /* Module declarations from 'cpython.object' */ /* Module declarations from 'cpython.ref' */ /* Module declarations from 'cpython.exc' */ /* Module declarations from 'cpython.module' */ /* Module declarations from 'cpython.mem' */ /* Module declarations from 'cpython.tuple' */ /* Module declarations from 'cpython.list' */ /* Module declarations from 'cpython.sequence' */ /* Module declarations from 'cpython.mapping' */ /* Module declarations from 'cpython.iterator' */ /* Module declarations from 'cpython.number' */ /* Module declarations from 'cpython.int' */ /* Module declarations from '__builtin__' */ /* Module declarations from 'cpython.bool' */ static PyTypeObject *__pyx_ptype_7cpython_4bool_bool = 0; /* Module declarations from 'cpython.long' */ /* Module declarations from 'cpython.float' */ /* Module declarations from '__builtin__' */ /* Module declarations from 'cpython.complex' */ static PyTypeObject *__pyx_ptype_7cpython_7complex_complex = 0; /* Module declarations from 'cpython.string' */ /* Module declarations from 'cpython.unicode' */ /* Module declarations from 'cpython.dict' */ /* Module declarations from 'cpython.instance' */ /* Module declarations from 'cpython.function' */ /* Module declarations from 'cpython.method' */ /* Module declarations from 'cpython.weakref' */ /* Module declarations from 'cpython.getargs' */ /* Module declarations from 'cpython.pythread' */ /* Module declarations from 'cpython.pystate' */ /* Module declarations from 'cpython.cobject' */ /* Module declarations from 'cpython.oldbuffer' */ /* Module declarations from 'cpython.set' */ /* Module declarations from 'cpython.buffer' */ /* Module declarations from 'cpython.bytes' */ /* Module declarations from 'cpython.pycapsule' */ /* Module declarations from 'cpython' */ /* Module declarations from 'numpy' */ /* Module declarations from 'numpy' */ static PyTypeObject *__pyx_ptype_5numpy_dtype = 0; static PyTypeObject *__pyx_ptype_5numpy_flatiter = 0; static PyTypeObject *__pyx_ptype_5numpy_broadcast = 0; static PyTypeObject *__pyx_ptype_5numpy_ndarray = 0; static PyTypeObject *__pyx_ptype_5numpy_ufunc = 0; static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *, char *, char *, int *); /*proto*/ /* Module declarations from 'pywt._extensions._pywt' */ static PyTypeObject *__pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet = 0; static PyTypeObject *__pyx_ptype_4pywt_11_extensions_5_pywt_ContinuousWavelet = 0; static int *__pyx_vp_4pywt_11_extensions_5_pywt_have_c99_complex = 0; #define __pyx_v_4pywt_11_extensions_5_pywt_have_c99_complex (*__pyx_vp_4pywt_11_extensions_5_pywt_have_c99_complex) static PyArray_Descr *(*__pyx_f_4pywt_11_extensions_5_pywt__check_dtype)(PyObject *, int __pyx_skip_dispatch); /*proto*/ static PyObject *(*__pyx_f_4pywt_11_extensions_5_pywt_c_wavelet_from_object)(PyObject *); /*proto*/ /* Module declarations from 'pywt._extensions._swt' */ static PyTypeObject *__pyx_array_type = 0; static PyTypeObject *__pyx_MemviewEnum_type = 0; static PyTypeObject *__pyx_memoryview_type = 0; static PyTypeObject *__pyx_memoryviewslice_type = 0; static PyObject *generic = 0; static PyObject *strided = 0; static PyObject *indirect = 0; static PyObject *contiguous = 0; static PyObject *indirect_contiguous = 0; static int __pyx_memoryview_thread_locks_used; static PyThread_type_lock __pyx_memoryview_thread_locks[8]; static PyObject *__pyx_f_4pywt_11_extensions_4_swt_swt_axis(PyArrayObject *, struct WaveletObject *, size_t, size_t, int __pyx_skip_dispatch, struct __pyx_opt_args_4pywt_11_extensions_4_swt_swt_axis *__pyx_optional_args); /*proto*/ static struct __pyx_array_obj *__pyx_array_new(PyObject *, Py_ssize_t, char *, char *, char *); /*proto*/ static void *__pyx_align_pointer(void *, size_t); /*proto*/ static PyObject *__pyx_memoryview_new(PyObject *, int, int, __Pyx_TypeInfo *); /*proto*/ static CYTHON_INLINE int __pyx_memoryview_check(PyObject *); /*proto*/ static PyObject *_unellipsify(PyObject *, int); /*proto*/ static PyObject *assert_direct_dimensions(Py_ssize_t *, int); /*proto*/ static struct __pyx_memoryview_obj *__pyx_memview_slice(struct __pyx_memoryview_obj *, PyObject *); /*proto*/ static int __pyx_memoryview_slice_memviewslice(__Pyx_memviewslice *, Py_ssize_t, Py_ssize_t, Py_ssize_t, int, int, int *, Py_ssize_t, Py_ssize_t, Py_ssize_t, int, int, int, int); /*proto*/ static char *__pyx_pybuffer_index(Py_buffer *, char *, Py_ssize_t, Py_ssize_t); /*proto*/ static int __pyx_memslice_transpose(__Pyx_memviewslice *); /*proto*/ static PyObject *__pyx_memoryview_fromslice(__Pyx_memviewslice, int, PyObject *(*)(char *), int (*)(char *, PyObject *), int); /*proto*/ static __Pyx_memviewslice *__pyx_memoryview_get_slice_from_memoryview(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/ static void __pyx_memoryview_slice_copy(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/ static PyObject *__pyx_memoryview_copy_object(struct __pyx_memoryview_obj *); /*proto*/ static PyObject *__pyx_memoryview_copy_object_from_slice(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/ static Py_ssize_t abs_py_ssize_t(Py_ssize_t); /*proto*/ static char __pyx_get_best_slice_order(__Pyx_memviewslice *, int); /*proto*/ static void _copy_strided_to_strided(char *, Py_ssize_t *, char *, Py_ssize_t *, Py_ssize_t *, Py_ssize_t *, int, size_t); /*proto*/ static void copy_strided_to_strided(__Pyx_memviewslice *, __Pyx_memviewslice *, int, size_t); /*proto*/ static Py_ssize_t __pyx_memoryview_slice_get_size(__Pyx_memviewslice *, int); /*proto*/ static Py_ssize_t __pyx_fill_contig_strides_array(Py_ssize_t *, Py_ssize_t *, Py_ssize_t, int, char); /*proto*/ static void *__pyx_memoryview_copy_data_to_temp(__Pyx_memviewslice *, __Pyx_memviewslice *, char, int); /*proto*/ static int __pyx_memoryview_err_extents(int, Py_ssize_t, Py_ssize_t); /*proto*/ static int __pyx_memoryview_err_dim(PyObject *, char *, int); /*proto*/ static int __pyx_memoryview_err(PyObject *, char *); /*proto*/ static int __pyx_memoryview_copy_contents(__Pyx_memviewslice, __Pyx_memviewslice, int, int, int); /*proto*/ static void __pyx_memoryview_broadcast_leading(__Pyx_memviewslice *, int, int); /*proto*/ static void __pyx_memoryview_refcount_copying(__Pyx_memviewslice *, int, int, int); /*proto*/ static void __pyx_memoryview_refcount_objects_in_slice_with_gil(char *, Py_ssize_t *, Py_ssize_t *, int, int); /*proto*/ static void __pyx_memoryview_refcount_objects_in_slice(char *, Py_ssize_t *, Py_ssize_t *, int, int); /*proto*/ static void __pyx_memoryview_slice_assign_scalar(__Pyx_memviewslice *, int, size_t, void *, int); /*proto*/ static void __pyx_memoryview__slice_assign_scalar(char *, Py_ssize_t *, Py_ssize_t *, int, size_t, void *); /*proto*/ static PyObject *__pyx_unpickle_Enum__set_state(struct __pyx_MemviewEnum_obj *, PyObject *); /*proto*/ static PyObject *__pyx_format_from_typeinfo(__Pyx_TypeInfo *); /*proto*/ static __Pyx_TypeInfo __Pyx_TypeInfo_size_t = { "size_t", NULL, sizeof(size_t), { 0 }, 0, IS_UNSIGNED(size_t) ? 'U' : 'I', IS_UNSIGNED(size_t), 0 }; static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t = { "float32_t", NULL, sizeof(__pyx_t_5numpy_float32_t), { 0 }, 0, 'R', 0, 0 }; static __Pyx_TypeInfo __Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t = { "float64_t", NULL, sizeof(__pyx_t_5numpy_float64_t), { 0 }, 0, 'R', 0, 0 }; static __Pyx_TypeInfo __Pyx_TypeInfo___pyx_t_float_complex = { "float complex", NULL, sizeof(__pyx_t_float_complex), { 0 }, 0, 'C', 0, 0 }; static __Pyx_TypeInfo __Pyx_TypeInfo___pyx_t_double_complex = { "double complex", NULL, sizeof(__pyx_t_double_complex), { 0 }, 0, 'C', 0, 0 }; #define __Pyx_MODULE_NAME "pywt._extensions._swt" extern int __pyx_module_is_main_pywt___extensions___swt; int __pyx_module_is_main_pywt___extensions___swt = 0; /* Implementation of 'pywt._extensions._swt' */ static PyObject *__pyx_builtin_ValueError; static PyObject *__pyx_builtin_TypeError; static PyObject *__pyx_builtin_range; static PyObject *__pyx_builtin_RuntimeError; static PyObject *__pyx_builtin_ImportError; static PyObject *__pyx_builtin_MemoryError; static PyObject *__pyx_builtin_enumerate; static PyObject *__pyx_builtin_Ellipsis; static PyObject *__pyx_builtin_id; static PyObject *__pyx_builtin_IndexError; static const char __pyx_k_O[] = "O"; static const char __pyx_k_T[] = "T{"; static const char __pyx_k_c[] = "c"; static const char __pyx_k_i[] = "i"; static const char __pyx_k_s[] = "s"; static const char __pyx_k_w[] = "w"; static const char __pyx_k__2[] = "()"; static const char __pyx_k__3[] = "|"; static const char __pyx_k_cA[] = "cA"; static const char __pyx_k_cD[] = "cD"; static const char __pyx_k_id[] = "id"; static const char __pyx_k_np[] = "np"; static const char __pyx_k__38[] = "^"; static const char __pyx_k__39[] = ""; static const char __pyx_k__40[] = ":"; static const char __pyx_k__41[] = "}"; static const char __pyx_k__42[] = ","; static const char __pyx_k_msg[] = "msg"; static const char __pyx_k_new[] = "__new__"; static const char __pyx_k_obj[] = "obj"; static const char __pyx_k_ret[] = "ret"; static const char __pyx_k_s_2[] = "(%s)"; static const char __pyx_k_swt[] = "swt"; static const char __pyx_k_args[] = "args"; static const char __pyx_k_axis[] = "axis"; static const char __pyx_k_base[] = "base"; static const char __pyx_k_copy[] = "copy"; static const char __pyx_k_data[] = "data"; static const char __pyx_k_dict[] = "__dict__"; static const char __pyx_k_join[] = "join"; static const char __pyx_k_kind[] = "kind"; static const char __pyx_k_main[] = "__main__"; static const char __pyx_k_mode[] = "mode"; static const char __pyx_k_name[] = "name"; static const char __pyx_k_ndim[] = "ndim"; static const char __pyx_k_pack[] = "pack"; static const char __pyx_k_size[] = "size"; static const char __pyx_k_step[] = "step"; static const char __pyx_k_stop[] = "stop"; static const char __pyx_k_test[] = "__test__"; static const char __pyx_k_warn[] = "warn"; static const char __pyx_k_ASCII[] = "ASCII"; static const char __pyx_k_class[] = "__class__"; static const char __pyx_k_dtype[] = "dtype"; static const char __pyx_k_empty[] = "empty"; static const char __pyx_k_error[] = "error"; static const char __pyx_k_flags[] = "flags"; static const char __pyx_k_level[] = "level"; static const char __pyx_k_numpy[] = "numpy"; static const char __pyx_k_range[] = "range"; static const char __pyx_k_shape[] = "shape"; static const char __pyx_k_split[] = "split"; static const char __pyx_k_start[] = "start"; static const char __pyx_k_strip[] = "strip"; static const char __pyx_k_zeros[] = "zeros"; static const char __pyx_k_astype[] = "astype"; static const char __pyx_k_encode[] = "encode"; static const char __pyx_k_format[] = "format"; static const char __pyx_k_import[] = "__import__"; static const char __pyx_k_kwargs[] = "kwargs"; static const char __pyx_k_name_2[] = "__name__"; static const char __pyx_k_pickle[] = "pickle"; static const char __pyx_k_reduce[] = "__reduce__"; static const char __pyx_k_retval[] = "retval"; static const char __pyx_k_struct[] = "struct"; static const char __pyx_k_unpack[] = "unpack"; static const char __pyx_k_update[] = "update"; static const char __pyx_k_asarray[] = "asarray"; static const char __pyx_k_float32[] = "float32"; static const char __pyx_k_float64[] = "float64"; static const char __pyx_k_fortran[] = "fortran"; static const char __pyx_k_memview[] = "memview"; static const char __pyx_k_wavelet[] = "wavelet"; static const char __pyx_k_Ellipsis[] = "Ellipsis"; static const char __pyx_k_defaults[] = "defaults"; static const char __pyx_k_getstate[] = "__getstate__"; static const char __pyx_k_itemsize[] = "itemsize"; static const char __pyx_k_pyx_type[] = "__pyx_type"; static const char __pyx_k_setstate[] = "__setstate__"; static const char __pyx_k_warnings[] = "warnings"; static const char __pyx_k_TypeError[] = "TypeError"; static const char __pyx_k_complex64[] = "complex64"; static const char __pyx_k_data_size[] = "data_size"; static const char __pyx_k_end_level[] = "end_level"; static const char __pyx_k_enumerate[] = "enumerate"; static const char __pyx_k_float32_t[] = "float32_t"; static const char __pyx_k_float64_t[] = "float64_t"; static const char __pyx_k_input_len[] = "input_len"; static const char __pyx_k_max_level[] = "max_level"; static const char __pyx_k_pyx_state[] = "__pyx_state"; static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; static const char __pyx_k_IndexError[] = "IndexError"; static const char __pyx_k_ValueError[] = "ValueError"; static const char __pyx_k_complex128[] = "complex128"; static const char __pyx_k_output_len[] = "output_len"; static const char __pyx_k_pyx_result[] = "__pyx_result"; static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; static const char __pyx_k_signatures[] = "signatures"; static const char __pyx_k_ImportError[] = "ImportError"; static const char __pyx_k_MemoryError[] = "MemoryError"; static const char __pyx_k_PickleError[] = "PickleError"; static const char __pyx_k_start_level[] = "start_level"; static const char __pyx_k_trim_approx[] = "trim_approx"; static const char __pyx_k_C_swt_failed[] = "C swt failed."; static const char __pyx_k_RuntimeError[] = "RuntimeError"; static const char __pyx_k_pyx_checksum[] = "__pyx_checksum"; static const char __pyx_k_stringsource[] = "stringsource"; static const char __pyx_k_float_complex[] = "float complex"; static const char __pyx_k_pyx_getbuffer[] = "__pyx_getbuffer"; static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; static const char __pyx_k_swt_max_level[] = "swt_max_level"; static const char __pyx_k_double_complex[] = "double complex"; static const char __pyx_k_View_MemoryView[] = "View.MemoryView"; static const char __pyx_k_allocate_buffer[] = "allocate_buffer"; static const char __pyx_k_dtype_is_object[] = "dtype_is_object"; static const char __pyx_k_pyx_PickleError[] = "__pyx_PickleError"; static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; static const char __pyx_k_pyx_unpickle_Enum[] = "__pyx_unpickle_Enum"; static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; static const char __pyx_k_strided_and_direct[] = ""; static const char __pyx_k_strided_and_indirect[] = ""; static const char __pyx_k_Invalid_output_length[] = "Invalid output length."; static const char __pyx_k_contiguous_and_direct[] = ""; static const char __pyx_k_pywt__extensions__swt[] = "pywt._extensions._swt"; static const char __pyx_k_MemoryView_of_r_object[] = ""; static const char __pyx_k_MemoryView_of_r_at_0x_x[] = ""; static const char __pyx_k_contiguous_and_indirect[] = ""; static const char __pyx_k_Cannot_index_with_type_s[] = "Cannot index with type '%s'"; static const char __pyx_k_Invalid_shape_in_axis_d_d[] = "Invalid shape in axis %d: %d."; static const char __pyx_k_pywt__extensions__swt_pyx[] = "pywt/_extensions/_swt.pyx"; static const char __pyx_k_Length_of_data_must_be_even[] = "Length of data must be even."; static const char __pyx_k_No_matching_signature_found[] = "No matching signature found"; static const char __pyx_k_itemsize_0_for_cython_array[] = "itemsize <= 0 for cython.array"; static const char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous"; static const char __pyx_k_Data_must_have_non_zero_size[] = "Data must have non-zero size"; static const char __pyx_k_unable_to_allocate_array_data[] = "unable to allocate array data."; static const char __pyx_k_strided_and_direct_or_indirect[] = ""; static const char __pyx_k_C_wavelet_transform_failed_with[] = "C wavelet transform failed with error code %d"; static const char __pyx_k_No_levels_of_stationary_wavelet[] = "No levels of stationary wavelet decomposition are possible. The signal to be transformed must have a size that is a multiple of 2**n for an n-level decomposition."; static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import"; static const char __pyx_k_start_level_must_be_less_than_d[] = "start_level must be less than %d."; static const char __pyx_k_unknown_dtype_code_in_numpy_pxd[] = "unknown dtype code in numpy.pxd (%d)"; static const char __pyx_k_Array_must_be_floating_point_not[] = "Array must be floating point, not {}"; static const char __pyx_k_Buffer_view_does_not_expose_stri[] = "Buffer view does not expose strides"; static const char __pyx_k_Can_only_create_a_buffer_that_is[] = "Can only create a buffer that is contiguous in memory."; static const char __pyx_k_Cannot_apply_swt_to_a_size_0_sig[] = "Cannot apply swt to a size 0 signal."; static const char __pyx_k_Cannot_assign_to_read_only_memor[] = "Cannot assign to read-only memoryview"; static const char __pyx_k_Cannot_create_writable_memory_vi[] = "Cannot create writable memory view from read-only memoryview"; static const char __pyx_k_Data_must_have_non_zero_size_alo[] = "Data must have non-zero size along the transform axis."; static const char __pyx_k_Empty_shape_tuple_for_cython_arr[] = "Empty shape tuple for cython.array"; static const char __pyx_k_Expected_at_least_d_argument_s_g[] = "Expected at least %d argument%s, got %d"; static const char __pyx_k_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd"; static const char __pyx_k_Function_call_with_ambiguous_arg[] = "Function call with ambiguous argument types"; static const char __pyx_k_Incompatible_checksums_s_vs_0xb0[] = "Incompatible checksums (%s vs 0xb068931 = (name))"; static const char __pyx_k_Indirect_dimensions_not_supporte[] = "Indirect dimensions not supported"; static const char __pyx_k_Invalid_mode_expected_c_or_fortr[] = "Invalid mode, expected 'c' or 'fortran', got %s"; static const char __pyx_k_Length_of_data_must_be_even_alon[] = "Length of data must be even along the transform axis."; static const char __pyx_k_Level_value_must_be_greater_than[] = "Level value must be greater than zero."; static const char __pyx_k_Level_value_too_high_max_level_f[] = "Level value too high (max level for current data size and start_level is %d)."; static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported"; static const char __pyx_k_Out_of_bounds_on_buffer_access_a[] = "Out of bounds on buffer access (axis %d)"; static const char __pyx_k_Unable_to_convert_item_to_object[] = "Unable to convert item to object"; static const char __pyx_k_got_differing_extents_in_dimensi[] = "got differing extents in dimension %d (got %d and %d)"; static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous"; static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__"; static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import"; static const char __pyx_k_unable_to_allocate_shape_and_str[] = "unable to allocate shape and strides."; static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; static PyObject *__pyx_n_s_ASCII; static PyObject *__pyx_kp_u_Array_must_be_floating_point_not; static PyObject *__pyx_kp_s_Buffer_view_does_not_expose_stri; static PyObject *__pyx_kp_u_C_swt_failed; static PyObject *__pyx_kp_u_C_wavelet_transform_failed_with; static PyObject *__pyx_kp_s_Can_only_create_a_buffer_that_is; static PyObject *__pyx_kp_u_Cannot_apply_swt_to_a_size_0_sig; static PyObject *__pyx_kp_s_Cannot_assign_to_read_only_memor; static PyObject *__pyx_kp_s_Cannot_create_writable_memory_vi; static PyObject *__pyx_kp_s_Cannot_index_with_type_s; static PyObject *__pyx_kp_u_Data_must_have_non_zero_size; static PyObject *__pyx_kp_u_Data_must_have_non_zero_size_alo; static PyObject *__pyx_n_s_Ellipsis; static PyObject *__pyx_kp_s_Empty_shape_tuple_for_cython_arr; static PyObject *__pyx_kp_s_Expected_at_least_d_argument_s_g; static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; static PyObject *__pyx_kp_s_Function_call_with_ambiguous_arg; static PyObject *__pyx_n_s_ImportError; static PyObject *__pyx_kp_s_Incompatible_checksums_s_vs_0xb0; static PyObject *__pyx_n_s_IndexError; static PyObject *__pyx_kp_s_Indirect_dimensions_not_supporte; static PyObject *__pyx_kp_s_Invalid_mode_expected_c_or_fortr; static PyObject *__pyx_kp_u_Invalid_output_length; static PyObject *__pyx_kp_s_Invalid_shape_in_axis_d_d; static PyObject *__pyx_kp_u_Length_of_data_must_be_even; static PyObject *__pyx_kp_u_Length_of_data_must_be_even_alon; static PyObject *__pyx_kp_u_Level_value_must_be_greater_than; static PyObject *__pyx_kp_u_Level_value_too_high_max_level_f; static PyObject *__pyx_n_s_MemoryError; static PyObject *__pyx_kp_s_MemoryView_of_r_at_0x_x; static PyObject *__pyx_kp_s_MemoryView_of_r_object; static PyObject *__pyx_kp_u_No_levels_of_stationary_wavelet; static PyObject *__pyx_kp_s_No_matching_signature_found; static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; static PyObject *__pyx_n_b_O; static PyObject *__pyx_kp_s_Out_of_bounds_on_buffer_access_a; static PyObject *__pyx_n_s_PickleError; static PyObject *__pyx_n_s_RuntimeError; static PyObject *__pyx_kp_b_T; static PyObject *__pyx_n_s_TypeError; static PyObject *__pyx_kp_s_Unable_to_convert_item_to_object; static PyObject *__pyx_n_s_ValueError; static PyObject *__pyx_n_s_View_MemoryView; static PyObject *__pyx_kp_s__2; static PyObject *__pyx_kp_s__3; static PyObject *__pyx_kp_b__38; static PyObject *__pyx_kp_b__39; static PyObject *__pyx_kp_b__40; static PyObject *__pyx_kp_b__41; static PyObject *__pyx_kp_u__42; static PyObject *__pyx_n_s_allocate_buffer; static PyObject *__pyx_n_s_args; static PyObject *__pyx_n_s_asarray; static PyObject *__pyx_n_s_astype; static PyObject *__pyx_n_s_axis; static PyObject *__pyx_n_s_base; static PyObject *__pyx_n_s_c; static PyObject *__pyx_n_u_c; static PyObject *__pyx_n_s_cA; static PyObject *__pyx_n_s_cD; static PyObject *__pyx_n_s_class; static PyObject *__pyx_n_s_cline_in_traceback; static PyObject *__pyx_n_s_complex128; static PyObject *__pyx_n_s_complex64; static PyObject *__pyx_kp_s_contiguous_and_direct; static PyObject *__pyx_kp_s_contiguous_and_indirect; static PyObject *__pyx_n_s_copy; static PyObject *__pyx_n_s_data; static PyObject *__pyx_n_s_data_size; static PyObject *__pyx_n_s_defaults; static PyObject *__pyx_n_s_dict; static PyObject *__pyx_kp_s_double_complex; static PyObject *__pyx_n_s_dtype; static PyObject *__pyx_n_s_dtype_is_object; static PyObject *__pyx_n_s_empty; static PyObject *__pyx_n_s_encode; static PyObject *__pyx_n_s_end_level; static PyObject *__pyx_n_s_enumerate; static PyObject *__pyx_n_s_error; static PyObject *__pyx_n_s_flags; static PyObject *__pyx_n_s_float32; static PyObject *__pyx_n_s_float32_t; static PyObject *__pyx_n_s_float64; static PyObject *__pyx_n_s_float64_t; static PyObject *__pyx_kp_s_float_complex; static PyObject *__pyx_n_s_format; static PyObject *__pyx_n_s_fortran; static PyObject *__pyx_n_u_fortran; static PyObject *__pyx_n_s_getstate; static PyObject *__pyx_kp_s_got_differing_extents_in_dimensi; static PyObject *__pyx_n_s_i; static PyObject *__pyx_n_s_id; static PyObject *__pyx_n_s_import; static PyObject *__pyx_n_s_input_len; static PyObject *__pyx_n_s_itemsize; static PyObject *__pyx_kp_s_itemsize_0_for_cython_array; static PyObject *__pyx_n_s_join; static PyObject *__pyx_n_s_kind; static PyObject *__pyx_n_s_kwargs; static PyObject *__pyx_n_s_level; static PyObject *__pyx_n_s_main; static PyObject *__pyx_n_s_max_level; static PyObject *__pyx_n_s_memview; static PyObject *__pyx_n_s_mode; static PyObject *__pyx_n_s_msg; static PyObject *__pyx_n_s_name; static PyObject *__pyx_n_s_name_2; static PyObject *__pyx_kp_u_ndarray_is_not_C_contiguous; static PyObject *__pyx_kp_u_ndarray_is_not_Fortran_contiguou; static PyObject *__pyx_n_s_ndim; static PyObject *__pyx_n_s_new; static PyObject *__pyx_kp_s_no_default___reduce___due_to_non; static PyObject *__pyx_n_s_np; static PyObject *__pyx_n_s_numpy; static PyObject *__pyx_kp_u_numpy_core_multiarray_failed_to; static PyObject *__pyx_kp_u_numpy_core_umath_failed_to_impor; static PyObject *__pyx_n_s_obj; static PyObject *__pyx_n_s_output_len; static PyObject *__pyx_n_s_pack; static PyObject *__pyx_n_s_pickle; static PyObject *__pyx_n_s_pywt__extensions__swt; static PyObject *__pyx_kp_s_pywt__extensions__swt_pyx; static PyObject *__pyx_n_s_pyx_PickleError; static PyObject *__pyx_n_s_pyx_checksum; static PyObject *__pyx_n_s_pyx_getbuffer; static PyObject *__pyx_n_s_pyx_result; static PyObject *__pyx_n_s_pyx_state; static PyObject *__pyx_n_s_pyx_type; static PyObject *__pyx_n_s_pyx_unpickle_Enum; static PyObject *__pyx_n_s_pyx_vtable; static PyObject *__pyx_n_s_range; static PyObject *__pyx_n_s_reduce; static PyObject *__pyx_n_s_reduce_cython; static PyObject *__pyx_n_s_reduce_ex; static PyObject *__pyx_n_s_ret; static PyObject *__pyx_n_s_retval; static PyObject *__pyx_n_s_s; static PyObject *__pyx_kp_u_s_2; static PyObject *__pyx_n_s_setstate; static PyObject *__pyx_n_s_setstate_cython; static PyObject *__pyx_n_s_shape; static PyObject *__pyx_n_s_signatures; static PyObject *__pyx_n_s_size; static PyObject *__pyx_n_s_split; static PyObject *__pyx_n_s_start; static PyObject *__pyx_n_s_start_level; static PyObject *__pyx_kp_u_start_level_must_be_less_than_d; static PyObject *__pyx_n_s_step; static PyObject *__pyx_n_s_stop; static PyObject *__pyx_kp_s_strided_and_direct; static PyObject *__pyx_kp_s_strided_and_direct_or_indirect; static PyObject *__pyx_kp_s_strided_and_indirect; static PyObject *__pyx_kp_s_stringsource; static PyObject *__pyx_n_s_strip; static PyObject *__pyx_n_s_struct; static PyObject *__pyx_n_s_swt; static PyObject *__pyx_n_s_swt_max_level; static PyObject *__pyx_n_s_test; static PyObject *__pyx_n_s_trim_approx; static PyObject *__pyx_kp_s_unable_to_allocate_array_data; static PyObject *__pyx_kp_s_unable_to_allocate_shape_and_str; static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; static PyObject *__pyx_n_s_unpack; static PyObject *__pyx_n_s_update; static PyObject *__pyx_n_s_w; static PyObject *__pyx_n_s_warn; static PyObject *__pyx_n_s_warnings; static PyObject *__pyx_n_s_wavelet; static PyObject *__pyx_n_s_zeros; static PyObject *__pyx_pf_4pywt_11_extensions_4_swt_swt_max_level(CYTHON_UNUSED PyObject *__pyx_self, size_t __pyx_v_input_len); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_swt_2swt(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_swt_24__defaults__(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_swt_6swt(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, size_t __pyx_v_level, size_t __pyx_v_start_level, PyBoolObject *__pyx_v_trim_approx); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_swt_26__defaults__(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_swt_8swt(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, size_t __pyx_v_level, size_t __pyx_v_start_level, PyBoolObject *__pyx_v_trim_approx); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_swt_28__defaults__(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_swt_10swt(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, size_t __pyx_v_level, size_t __pyx_v_start_level, PyBoolObject *__pyx_v_trim_approx); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_swt_30__defaults__(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_swt_12swt(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, size_t __pyx_v_level, size_t __pyx_v_start_level, PyBoolObject *__pyx_v_trim_approx); /* proto */ static PyObject *__pyx_pf_4pywt_11_extensions_4_swt_4swt_axis(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_data, struct WaveletObject *__pyx_v_wavelet, size_t __pyx_v_level, size_t __pyx_v_start_level, unsigned int __pyx_v_axis, PyBoolObject *__pyx_v_trim_approx); /* proto */ static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */ static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info); /* proto */ static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, PyObject *__pyx_v_format, PyObject *__pyx_v_mode, int __pyx_v_allocate_buffer); /* proto */ static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(struct __pyx_array_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */ static void __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(struct __pyx_array_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_5array_7memview___get__(struct __pyx_array_obj *__pyx_v_self); /* proto */ static Py_ssize_t __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(struct __pyx_array_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_attr); /* proto */ static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item); /* proto */ static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value); /* proto */ static PyObject *__pyx_pf___pyx_array___reduce_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf___pyx_array_2__setstate_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static int __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v_name); /* proto */ static PyObject *__pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(struct __pyx_MemviewEnum_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf___pyx_MemviewEnum___reduce_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf___pyx_MemviewEnum_2__setstate_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */ static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_v_flags, int __pyx_v_dtype_is_object); /* proto */ static void __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index); /* proto */ static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /* proto */ static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(struct __pyx_memoryview_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static Py_ssize_t __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf___pyx_memoryview___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf___pyx_memoryview_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static void __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf___pyx_memoryviewslice___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */ static PyObject *__pyx_pf___pyx_memoryviewslice_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_tp_new_array(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_Enum(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_memoryview(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new__memoryviewslice(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_int_0; static PyObject *__pyx_int_1; static PyObject *__pyx_int_2; static PyObject *__pyx_int_4; static PyObject *__pyx_int_184977713; static PyObject *__pyx_int_neg_1; static PyObject *__pyx_tuple_; static PyObject *__pyx_tuple__4; static PyObject *__pyx_tuple__5; static PyObject *__pyx_tuple__6; static PyObject *__pyx_tuple__7; static PyObject *__pyx_tuple__8; static PyObject *__pyx_tuple__9; static PyObject *__pyx_slice__34; static PyObject *__pyx_tuple__10; static PyObject *__pyx_tuple__11; static PyObject *__pyx_tuple__12; static PyObject *__pyx_tuple__13; static PyObject *__pyx_tuple__14; static PyObject *__pyx_tuple__15; static PyObject *__pyx_tuple__16; static PyObject *__pyx_tuple__17; static PyObject *__pyx_tuple__18; static PyObject *__pyx_tuple__19; static PyObject *__pyx_tuple__20; static PyObject *__pyx_tuple__21; static PyObject *__pyx_tuple__22; static PyObject *__pyx_tuple__23; static PyObject *__pyx_tuple__24; static PyObject *__pyx_tuple__25; static PyObject *__pyx_tuple__26; static PyObject *__pyx_tuple__27; static PyObject *__pyx_tuple__28; static PyObject *__pyx_tuple__29; static PyObject *__pyx_tuple__30; static PyObject *__pyx_tuple__31; static PyObject *__pyx_tuple__32; static PyObject *__pyx_tuple__33; static PyObject *__pyx_tuple__35; static PyObject *__pyx_tuple__36; static PyObject *__pyx_tuple__37; static PyObject *__pyx_tuple__43; static PyObject *__pyx_tuple__45; static PyObject *__pyx_tuple__47; static PyObject *__pyx_tuple__48; static PyObject *__pyx_tuple__49; static PyObject *__pyx_tuple__50; static PyObject *__pyx_tuple__51; static PyObject *__pyx_tuple__52; static PyObject *__pyx_codeobj__44; static PyObject *__pyx_codeobj__46; static PyObject *__pyx_codeobj__53; /* Late includes */ /* "pywt/_extensions/_swt.pyx":16 * include "config.pxi" * * def swt_max_level(size_t input_len): # <<<<<<<<<<<<<< * """ * swt_max_level(input_len) */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_4_swt_1swt_max_level(PyObject *__pyx_self, PyObject *__pyx_arg_input_len); /*proto*/ static char __pyx_doc_4pywt_11_extensions_4_swt_swt_max_level[] = "\n swt_max_level(input_len)\n\n Calculates the maximum level of Stationary Wavelet Transform for data of\n given length.\n\n Parameters\n ----------\n input_len : int\n Input data length.\n\n Returns\n -------\n max_level : int\n Maximum level of Stationary Wavelet Transform for data of given length.\n\n Notes\n -----\n For the current implementation of the stationary wavelet transform, this\n corresponds to the number of times ``input_len`` is evenly divisible by\n two. In other words, for an n-level transform, the signal length must be a\n multiple of ``2**n``. ``numpy.pad`` can be used to pad a signal up to an\n appropriate length as needed.\n "; static PyMethodDef __pyx_mdef_4pywt_11_extensions_4_swt_1swt_max_level = {"swt_max_level", (PyCFunction)__pyx_pw_4pywt_11_extensions_4_swt_1swt_max_level, METH_O, __pyx_doc_4pywt_11_extensions_4_swt_swt_max_level}; static PyObject *__pyx_pw_4pywt_11_extensions_4_swt_1swt_max_level(PyObject *__pyx_self, PyObject *__pyx_arg_input_len) { size_t __pyx_v_input_len; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("swt_max_level (wrapper)", 0); assert(__pyx_arg_input_len); { __pyx_v_input_len = __Pyx_PyInt_As_size_t(__pyx_arg_input_len); if (unlikely((__pyx_v_input_len == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 16, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._swt.swt_max_level", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_4_swt_swt_max_level(__pyx_self, ((size_t)__pyx_v_input_len)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_swt_swt_max_level(CYTHON_UNUSED PyObject *__pyx_self, size_t __pyx_v_input_len) { unsigned char __pyx_v_max_level; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; __Pyx_RefNannySetupContext("swt_max_level", 0); /* "pywt/_extensions/_swt.pyx":41 * appropriate length as needed. * """ * if input_len < 1: # <<<<<<<<<<<<<< * raise ValueError("Cannot apply swt to a size 0 signal.") * max_level = common.swt_max_level(input_len) */ __pyx_t_1 = ((__pyx_v_input_len < 1) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_swt.pyx":42 * """ * if input_len < 1: * raise ValueError("Cannot apply swt to a size 0 signal.") # <<<<<<<<<<<<<< * max_level = common.swt_max_level(input_len) * if max_level == 0: */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple_, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 42, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 42, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":41 * appropriate length as needed. * """ * if input_len < 1: # <<<<<<<<<<<<<< * raise ValueError("Cannot apply swt to a size 0 signal.") * max_level = common.swt_max_level(input_len) */ } /* "pywt/_extensions/_swt.pyx":43 * if input_len < 1: * raise ValueError("Cannot apply swt to a size 0 signal.") * max_level = common.swt_max_level(input_len) # <<<<<<<<<<<<<< * if max_level == 0: * warnings.warn( */ __pyx_v_max_level = swt_max_level(__pyx_v_input_len); /* "pywt/_extensions/_swt.pyx":44 * raise ValueError("Cannot apply swt to a size 0 signal.") * max_level = common.swt_max_level(input_len) * if max_level == 0: # <<<<<<<<<<<<<< * warnings.warn( * "No levels of stationary wavelet decomposition are possible. The " */ __pyx_t_1 = ((__pyx_v_max_level == 0) != 0); if (__pyx_t_1) { /* "pywt/_extensions/_swt.pyx":45 * max_level = common.swt_max_level(input_len) * if max_level == 0: * warnings.warn( # <<<<<<<<<<<<<< * "No levels of stationary wavelet decomposition are possible. The " * "signal to be transformed must have a size that is a multiple " */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_warnings); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 45, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_warn); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 45, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_kp_u_No_levels_of_stationary_wavelet) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_u_No_levels_of_stationary_wavelet); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 45, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_swt.pyx":44 * raise ValueError("Cannot apply swt to a size 0 signal.") * max_level = common.swt_max_level(input_len) * if max_level == 0: # <<<<<<<<<<<<<< * warnings.warn( * "No levels of stationary wavelet decomposition are possible. The " */ } /* "pywt/_extensions/_swt.pyx":49 * "signal to be transformed must have a size that is a multiple " * "of 2**n for an n-level decomposition.") * return max_level # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyInt_From_unsigned_char(__pyx_v_max_level); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 49, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "pywt/_extensions/_swt.pyx":16 * include "config.pxi" * * def swt_max_level(size_t input_len): # <<<<<<<<<<<<<< * """ * swt_max_level(input_len) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pywt._extensions._swt.swt_max_level", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_swt.pyx":52 * * * def swt(cdata_t[::1] data, Wavelet wavelet, size_t level, size_t start_level, # <<<<<<<<<<<<<< * bool trim_approx=False): * cdef cdata_t[::1] cA, cD */ /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_4_swt_3swt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_4pywt_11_extensions_4_swt_3swt = {"swt", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_4_swt_3swt, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_4pywt_11_extensions_4_swt_3swt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_signatures = 0; PyObject *__pyx_v_args = 0; PyObject *__pyx_v_kwargs = 0; CYTHON_UNUSED PyObject *__pyx_v_defaults = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0}; PyObject* values[4] = {0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 52, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(0, 52, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(0, 52, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 52, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); } __pyx_v_signatures = values[0]; __pyx_v_args = values[1]; __pyx_v_kwargs = values[2]; __pyx_v_defaults = values[3]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 52, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._swt.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_4pywt_11_extensions_4_swt_2swt(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_swt_2swt(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) { PyObject *__pyx_v_dest_sig = NULL; Py_ssize_t __pyx_v_i; PyTypeObject *__pyx_v_ndarray = 0; __Pyx_memviewslice __pyx_v_memslice; Py_ssize_t __pyx_v_itemsize; CYTHON_UNUSED int __pyx_v_dtype_signed; char __pyx_v_kind; PyObject *__pyx_v_arg = NULL; PyObject *__pyx_v_dtype = NULL; PyObject *__pyx_v_arg_base = NULL; PyObject *__pyx_v_candidates = NULL; PyObject *__pyx_v_sig = NULL; int __pyx_v_match_found; PyObject *__pyx_v_src_sig = NULL; PyObject *__pyx_v_dst_type = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; Py_ssize_t __pyx_t_5; PyObject *__pyx_t_6 = NULL; long __pyx_t_7; __Pyx_memviewslice __pyx_t_8; Py_ssize_t __pyx_t_9; int __pyx_t_10; int __pyx_t_11; PyObject *__pyx_t_12 = NULL; PyObject *__pyx_t_13 = NULL; PyObject *__pyx_t_14 = NULL; Py_ssize_t __pyx_t_15; Py_ssize_t __pyx_t_16; Py_ssize_t __pyx_t_17; int __pyx_t_18; __Pyx_RefNannySetupContext("swt", 0); __Pyx_INCREF(__pyx_v_kwargs); __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyList_SET_ITEM(__pyx_t_1, 0, Py_None); __pyx_v_dest_sig = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__pyx_v_kwargs != Py_None); __pyx_t_4 = (__pyx_t_3 != 0); if (__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L4_bool_binop_done; } __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 52, __pyx_L1_error) __pyx_t_3 = ((!__pyx_t_4) != 0); __pyx_t_2 = __pyx_t_3; __pyx_L4_bool_binop_done:; if (__pyx_t_2) { __Pyx_INCREF(Py_None); __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None); } __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_itemsize = -1L; if (unlikely(__pyx_v_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 52, __pyx_L1_error) } __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 52, __pyx_L1_error) __pyx_t_2 = ((0 < __pyx_t_5) != 0); if (__pyx_t_2) { if (unlikely(__pyx_v_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 52, __pyx_L1_error) } __pyx_t_1 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 0); __Pyx_INCREF(__pyx_t_1); __pyx_v_arg = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L6; } __pyx_t_3 = (__pyx_v_kwargs != Py_None); __pyx_t_4 = (__pyx_t_3 != 0); if (__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L7_bool_binop_done; } if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(0, 52, __pyx_L1_error) } __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_data, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 52, __pyx_L1_error) __pyx_t_3 = (__pyx_t_4 != 0); __pyx_t_2 = __pyx_t_3; __pyx_L7_bool_binop_done:; if (__pyx_t_2) { if (unlikely(__pyx_v_kwargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 52, __pyx_L1_error) } __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_arg = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L6; } /*else*/ { if (unlikely(__pyx_v_args == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 52, __pyx_L1_error) } __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 52, __pyx_L1_error) __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_int_4); __Pyx_GIVEREF(__pyx_int_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_4); __Pyx_INCREF(__pyx_n_s_s); __Pyx_GIVEREF(__pyx_n_s_s); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(0, 52, __pyx_L1_error) } __pyx_L6:; while (1) { __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None)); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_v_dtype = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L12; } __pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_v_arg_base = __pyx_t_6; __pyx_t_6 = 0; __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_v_dtype = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L13; } /*else*/ { __Pyx_INCREF(Py_None); __pyx_v_dtype = Py_None; } __pyx_L13:; goto __pyx_L12; } /*else*/ { __Pyx_INCREF(Py_None); __pyx_v_dtype = Py_None; } __pyx_L12:; __pyx_v_itemsize = -1L; __pyx_t_2 = (__pyx_v_dtype != Py_None); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_itemsize = __pyx_t_5; __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_kind = __pyx_t_7; __pyx_v_dtype_signed = (__pyx_v_kind == 'i'); switch (__pyx_v_kind) { case 'i': case 'u': break; case 'f': __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0); if (__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L16_bool_binop_done; } __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L16_bool_binop_done:; if (__pyx_t_3) { if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 52, __pyx_L1_error) goto __pyx_L10_break; } __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0); if (__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L19_bool_binop_done; } __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L19_bool_binop_done:; if (__pyx_t_3) { if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 52, __pyx_L1_error) goto __pyx_L10_break; } break; case 'c': __pyx_t_2 = (((sizeof(__pyx_t_float_complex)) == __pyx_v_itemsize) != 0); if (__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L22_bool_binop_done; } __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L22_bool_binop_done:; if (__pyx_t_3) { if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_float_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 52, __pyx_L1_error) goto __pyx_L10_break; } __pyx_t_2 = (((sizeof(__pyx_t_double_complex)) == __pyx_v_itemsize) != 0); if (__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L25_bool_binop_done; } __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L25_bool_binop_done:; if (__pyx_t_3) { if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 52, __pyx_L1_error) goto __pyx_L10_break; } break; case 'O': break; default: break; } } } __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0); if (!__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L28_bool_binop_done; } __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L28_bool_binop_done:; if (__pyx_t_3) { __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(__pyx_v_arg, 0); __pyx_v_memslice = __pyx_t_8; __pyx_t_3 = (__pyx_v_memslice.memview != 0); if (__pyx_t_3) { __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 52, __pyx_L1_error) goto __pyx_L10_break; } /*else*/ { PyErr_Clear(); } } __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0); if (!__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L32_bool_binop_done; } __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L32_bool_binop_done:; if (__pyx_t_3) { __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0); __pyx_v_memslice = __pyx_t_8; __pyx_t_3 = (__pyx_v_memslice.memview != 0); if (__pyx_t_3) { __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 52, __pyx_L1_error) goto __pyx_L10_break; } /*else*/ { PyErr_Clear(); } } __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0); if (!__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L36_bool_binop_done; } __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_float_complex))) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L36_bool_binop_done:; if (__pyx_t_3) { __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_float_complex(__pyx_v_arg, 0); __pyx_v_memslice = __pyx_t_8; __pyx_t_3 = (__pyx_v_memslice.memview != 0); if (__pyx_t_3) { __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_float_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 52, __pyx_L1_error) goto __pyx_L10_break; } /*else*/ { PyErr_Clear(); } } __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0); if (!__pyx_t_2) { } else { __pyx_t_3 = __pyx_t_2; goto __pyx_L40_bool_binop_done; } __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_double_complex))) != 0); __pyx_t_3 = __pyx_t_2; __pyx_L40_bool_binop_done:; if (__pyx_t_3) { __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_double_complex(__pyx_v_arg, 0); __pyx_v_memslice = __pyx_t_8; __pyx_t_3 = (__pyx_v_memslice.memview != 0); if (__pyx_t_3) { __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 52, __pyx_L1_error) goto __pyx_L10_break; } /*else*/ { PyErr_Clear(); } } if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 52, __pyx_L1_error) goto __pyx_L10_break; } __pyx_L10_break:; __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_v_candidates = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0; __pyx_t_5 = 0; if (unlikely(__pyx_v_signatures == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(0, 52, __pyx_L1_error) } __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = __pyx_t_1; __pyx_t_1 = 0; while (1) { __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_9, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_10); if (unlikely(__pyx_t_11 == 0)) break; if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1); __pyx_t_1 = 0; __pyx_v_match_found = 0; __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); } } __pyx_t_12 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__2); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); } } __pyx_t_1 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_12, __pyx_kp_s__3) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__3); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_15 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 52, __pyx_L1_error) __pyx_t_16 = __pyx_t_15; for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) { __pyx_v_i = __pyx_t_17; __pyx_t_1 = PyList_GET_ITEM(__pyx_v_dest_sig, __pyx_v_i); __Pyx_INCREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__pyx_v_dst_type != Py_None); __pyx_t_2 = (__pyx_t_3 != 0); if (__pyx_t_2) { __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_13 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (__pyx_t_2) { __pyx_v_match_found = 1; goto __pyx_L48; } /*else*/ { __pyx_v_match_found = 0; goto __pyx_L46_break; } __pyx_L48:; } } __pyx_L46_break:; __pyx_t_2 = (__pyx_v_match_found != 0); if (__pyx_t_2) { __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 52, __pyx_L1_error) } } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_candidates) != 0); __pyx_t_3 = ((!__pyx_t_2) != 0); if (__pyx_t_3) { __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(0, 52, __pyx_L1_error) } __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 52, __pyx_L1_error) __pyx_t_3 = ((__pyx_t_9 > 1) != 0); if (__pyx_t_3) { __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(0, 52, __pyx_L1_error) } /*else*/ { __Pyx_XDECREF(__pyx_r); if (unlikely(__pyx_v_signatures == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 52, __pyx_L1_error) } __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), PyList_GET_ITEM(__pyx_v_candidates, 0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0; } /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_12); __Pyx_XDECREF(__pyx_t_13); __Pyx_XDECREF(__pyx_t_14); __Pyx_AddTraceback("pywt._extensions._swt.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_dest_sig); __Pyx_XDECREF(__pyx_v_ndarray); __Pyx_XDECREF(__pyx_v_arg); __Pyx_XDECREF(__pyx_v_dtype); __Pyx_XDECREF(__pyx_v_arg_base); __Pyx_XDECREF(__pyx_v_candidates); __Pyx_XDECREF(__pyx_v_sig); __Pyx_XDECREF(__pyx_v_src_sig); __Pyx_XDECREF(__pyx_v_dst_type); __Pyx_XDECREF(__pyx_v_kwargs); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_swt_24__defaults__(CYTHON_UNUSED PyObject *__pyx_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__defaults__", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__Pyx_CyFunction_Defaults(__pyx_defaults4, __pyx_self)->__pyx_arg_trim_approx)); __Pyx_GIVEREF(((PyObject *)__Pyx_CyFunction_Defaults(__pyx_defaults4, __pyx_self)->__pyx_arg_trim_approx)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__Pyx_CyFunction_Defaults(__pyx_defaults4, __pyx_self)->__pyx_arg_trim_approx)); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pywt._extensions._swt.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_fuse_0__pyx_pw_4pywt_11_extensions_4_swt_7swt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_0__pyx_mdef_4pywt_11_extensions_4_swt_7swt = {"__pyx_fuse_0swt", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0__pyx_pw_4pywt_11_extensions_4_swt_7swt, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_fuse_0__pyx_pw_4pywt_11_extensions_4_swt_7swt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } }; struct WaveletObject *__pyx_v_wavelet = 0; size_t __pyx_v_level; size_t __pyx_v_start_level; PyBoolObject *__pyx_v_trim_approx = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("swt (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_data,&__pyx_n_s_wavelet,&__pyx_n_s_level,&__pyx_n_s_start_level,&__pyx_n_s_trim_approx,0}; PyObject* values[5] = {0,0,0,0,0}; __pyx_defaults4 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults4, __pyx_self); values[4] = (PyObject *)__pyx_dynamic_args->__pyx_arg_trim_approx; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wavelet)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("swt", 0, 4, 5, 1); __PYX_ERR(0, 52, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("swt", 0, 4, 5, 2); __PYX_ERR(0, 52, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_start_level)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("swt", 0, 4, 5, 3); __PYX_ERR(0, 52, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_trim_approx); if (value) { values[4] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "swt") < 0)) __PYX_ERR(0, 52, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 52, __pyx_L3_error) __pyx_v_wavelet = ((struct WaveletObject *)values[1]); __pyx_v_level = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_level == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 52, __pyx_L3_error) __pyx_v_start_level = __Pyx_PyInt_As_size_t(values[3]); if (unlikely((__pyx_v_start_level == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 52, __pyx_L3_error) __pyx_v_trim_approx = ((PyBoolObject *)values[4]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("swt", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 52, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._swt.swt", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_wavelet), __pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet, 1, "wavelet", 0))) __PYX_ERR(0, 52, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_trim_approx), __pyx_ptype_7cpython_4bool_bool, 1, "trim_approx", 0))) __PYX_ERR(0, 53, __pyx_L1_error) __pyx_r = __pyx_pf_4pywt_11_extensions_4_swt_6swt(__pyx_self, __pyx_v_data, __pyx_v_wavelet, __pyx_v_level, __pyx_v_start_level, __pyx_v_trim_approx); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_swt_6swt(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, size_t __pyx_v_level, size_t __pyx_v_start_level, PyBoolObject *__pyx_v_trim_approx) { __Pyx_memviewslice __pyx_v_cA = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_cD = { 0, 0, { 0 }, { 0 }, { 0 } }; int __pyx_v_retval; size_t __pyx_v_end_level; size_t __pyx_v_data_size; size_t __pyx_v_output_len; size_t __pyx_v_i; PyObject *__pyx_v_msg = NULL; PyObject *__pyx_v_ret = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; int __pyx_t_3; size_t __pyx_t_4; size_t __pyx_t_5; size_t __pyx_t_6; size_t __pyx_t_7; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; __Pyx_memviewslice __pyx_t_11 = { 0, 0, { 0 }, { 0 }, { 0 } }; Py_ssize_t __pyx_t_12; Py_ssize_t __pyx_t_13; Py_ssize_t __pyx_t_14; Py_ssize_t __pyx_t_15; int __pyx_t_16; int __pyx_t_17; __Pyx_RefNannySetupContext("__pyx_fuse_0swt", 0); /* "pywt/_extensions/_swt.pyx":57 * cdef Wavelet w * cdef int retval * cdef size_t end_level = start_level + level # <<<<<<<<<<<<<< * cdef size_t data_size, output_len, i * */ __pyx_v_end_level = (__pyx_v_start_level + __pyx_v_level); /* "pywt/_extensions/_swt.pyx":60 * cdef size_t data_size, output_len, i * * if data.size % 2: # <<<<<<<<<<<<<< * raise ValueError("Length of data must be even.") * if data.size < 1: */ __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_RemainderObjC(__pyx_t_2, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":61 * * if data.size % 2: * raise ValueError("Length of data must be even.") # <<<<<<<<<<<<<< * if data.size < 1: * raise ValueError("Data must have non-zero size") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 61, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 61, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":60 * cdef size_t data_size, output_len, i * * if data.size % 2: # <<<<<<<<<<<<<< * raise ValueError("Length of data must be even.") * if data.size < 1: */ } /* "pywt/_extensions/_swt.pyx":62 * if data.size % 2: * raise ValueError("Length of data must be even.") * if data.size < 1: # <<<<<<<<<<<<<< * raise ValueError("Data must have non-zero size") * */ __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_int_1, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":63 * raise ValueError("Length of data must be even.") * if data.size < 1: * raise ValueError("Data must have non-zero size") # <<<<<<<<<<<<<< * * if level < 1: */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 63, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 63, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":62 * if data.size % 2: * raise ValueError("Length of data must be even.") * if data.size < 1: # <<<<<<<<<<<<<< * raise ValueError("Data must have non-zero size") * */ } /* "pywt/_extensions/_swt.pyx":65 * raise ValueError("Data must have non-zero size") * * if level < 1: # <<<<<<<<<<<<<< * raise ValueError("Level value must be greater than zero.") * if start_level >= common.swt_max_level(data.size): */ __pyx_t_3 = ((__pyx_v_level < 1) != 0); if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":66 * * if level < 1: * raise ValueError("Level value must be greater than zero.") # <<<<<<<<<<<<<< * if start_level >= common.swt_max_level(data.size): * raise ValueError("start_level must be less than %d." % */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 66, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 66, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":65 * raise ValueError("Data must have non-zero size") * * if level < 1: # <<<<<<<<<<<<<< * raise ValueError("Level value must be greater than zero.") * if start_level >= common.swt_max_level(data.size): */ } /* "pywt/_extensions/_swt.pyx":67 * if level < 1: * raise ValueError("Level value must be greater than zero.") * if start_level >= common.swt_max_level(data.size): # <<<<<<<<<<<<<< * raise ValueError("start_level must be less than %d." % * common.swt_max_level(data.size)) */ __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = ((__pyx_v_start_level >= swt_max_level(__pyx_t_4)) != 0); if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":69 * if start_level >= common.swt_max_level(data.size): * raise ValueError("start_level must be less than %d." % * common.swt_max_level(data.size)) # <<<<<<<<<<<<<< * * if end_level > common.swt_max_level(data.size): */ __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_unsigned_char(swt_max_level(__pyx_t_4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* "pywt/_extensions/_swt.pyx":68 * raise ValueError("Level value must be greater than zero.") * if start_level >= common.swt_max_level(data.size): * raise ValueError("start_level must be less than %d." % # <<<<<<<<<<<<<< * common.swt_max_level(data.size)) * */ __pyx_t_2 = PyUnicode_Format(__pyx_kp_u_start_level_must_be_less_than_d, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 68, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":67 * if level < 1: * raise ValueError("Level value must be greater than zero.") * if start_level >= common.swt_max_level(data.size): # <<<<<<<<<<<<<< * raise ValueError("start_level must be less than %d." % * common.swt_max_level(data.size)) */ } /* "pywt/_extensions/_swt.pyx":71 * common.swt_max_level(data.size)) * * if end_level > common.swt_max_level(data.size): # <<<<<<<<<<<<<< * msg = ("Level value too high (max level for current data size and " * "start_level is %d)." % ( */ __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = ((__pyx_v_end_level > swt_max_level(__pyx_t_4)) != 0); if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":74 * msg = ("Level value too high (max level for current data size and " * "start_level is %d)." % ( * common.swt_max_level(data.size) - start_level)) # <<<<<<<<<<<<<< * raise ValueError(msg) * */ __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_FromSize_t((swt_max_level(__pyx_t_4) - __pyx_v_start_level)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* "pywt/_extensions/_swt.pyx":73 * if end_level > common.swt_max_level(data.size): * msg = ("Level value too high (max level for current data size and " * "start_level is %d)." % ( # <<<<<<<<<<<<<< * common.swt_max_level(data.size) - start_level)) * raise ValueError(msg) */ __pyx_t_2 = PyUnicode_Format(__pyx_kp_u_Level_value_too_high_max_level_f, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_msg = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_swt.pyx":75 * "start_level is %d)." % ( * common.swt_max_level(data.size) - start_level)) * raise ValueError(msg) # <<<<<<<<<<<<<< * * */ __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_v_msg); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 75, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":71 * common.swt_max_level(data.size)) * * if end_level > common.swt_max_level(data.size): # <<<<<<<<<<<<<< * msg = ("Level value too high (max level for current data size and " * "start_level is %d)." % ( */ } /* "pywt/_extensions/_swt.pyx":78 * * * output_len = common.swt_buffer_length(data.size) # <<<<<<<<<<<<<< * if output_len < 1: * raise RuntimeError("Invalid output length.") */ __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_output_len = swt_buffer_length(__pyx_t_4); /* "pywt/_extensions/_swt.pyx":79 * * output_len = common.swt_buffer_length(data.size) * if output_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ __pyx_t_3 = ((__pyx_v_output_len < 1) != 0); if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":80 * output_len = common.swt_buffer_length(data.size) * if output_len < 1: * raise RuntimeError("Invalid output length.") # <<<<<<<<<<<<<< * * ret = [] */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 80, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":79 * * output_len = common.swt_buffer_length(data.size) * if output_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ } /* "pywt/_extensions/_swt.pyx":82 * raise RuntimeError("Invalid output length.") * * ret = [] # <<<<<<<<<<<<<< * for i in range(start_level+1, end_level+1): * data_size = data.size */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_ret = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_swt.pyx":83 * * ret = [] * for i in range(start_level+1, end_level+1): # <<<<<<<<<<<<<< * data_size = data.size * # alloc memory, decompose D */ __pyx_t_4 = (__pyx_v_end_level + 1); __pyx_t_5 = __pyx_t_4; for (__pyx_t_6 = (__pyx_v_start_level + 1); __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6; /* "pywt/_extensions/_swt.pyx":84 * ret = [] * for i in range(start_level+1, end_level+1): * data_size = data.size # <<<<<<<<<<<<<< * # alloc memory, decompose D * if cdata_t is np.float64_t: */ __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_7 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_7 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_data_size = __pyx_t_7; /* "pywt/_extensions/_swt.pyx":94 * raise RuntimeError("C swt failed.") * elif cdata_t is np.float32_t: * cD = np.zeros(output_len, dtype=np.float32) # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.float_swt_d(&data[0], data_size, wavelet.w, */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 94, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 94, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 94, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 94, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 94, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 94, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_float32); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 94, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_10) < 0) __PYX_ERR(0, 94, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, __pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 94, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_10, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 94, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __PYX_XDEC_MEMVIEW(&__pyx_v_cD, 1); __pyx_v_cD = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL; /* "pywt/_extensions/_swt.pyx":95 * elif cdata_t is np.float32_t: * cD = np.zeros(output_len, dtype=np.float32) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_swt_d(&data[0], data_size, wavelet.w, * &cD[0], output_len, i) */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_swt.pyx":96 * cD = np.zeros(output_len, dtype=np.float32) * with nogil: * retval = c_wt.float_swt_d(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &cD[0], output_len, i) * if retval < 0: */ __pyx_t_12 = 0; /* "pywt/_extensions/_swt.pyx":97 * with nogil: * retval = c_wt.float_swt_d(&data[0], data_size, wavelet.w, * &cD[0], output_len, i) # <<<<<<<<<<<<<< * if retval < 0: * raise RuntimeError("C swt failed.") */ __pyx_t_13 = 0; /* "pywt/_extensions/_swt.pyx":96 * cD = np.zeros(output_len, dtype=np.float32) * with nogil: * retval = c_wt.float_swt_d(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &cD[0], output_len, i) * if retval < 0: */ __pyx_v_retval = float_swt_d((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_data.data) + __pyx_t_12)) )))), __pyx_v_data_size, __pyx_v_wavelet->w, (&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_cD.data) + __pyx_t_13)) )))), __pyx_v_output_len, __pyx_v_i); } /* "pywt/_extensions/_swt.pyx":95 * elif cdata_t is np.float32_t: * cD = np.zeros(output_len, dtype=np.float32) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_swt_d(&data[0], data_size, wavelet.w, * &cD[0], output_len, i) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L15; } __pyx_L15:; } } /* "pywt/_extensions/_swt.pyx":98 * retval = c_wt.float_swt_d(&data[0], data_size, wavelet.w, * &cD[0], output_len, i) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C swt failed.") * IF HAVE_C99_CPLX: */ __pyx_t_3 = ((__pyx_v_retval < 0) != 0); if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":99 * &cD[0], output_len, i) * if retval < 0: * raise RuntimeError("C swt failed.") # <<<<<<<<<<<<<< * IF HAVE_C99_CPLX: * if cdata_t is np.complex128_t: */ __pyx_t_10 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 99, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_Raise(__pyx_t_10, 0, 0, 0); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __PYX_ERR(0, 99, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":98 * retval = c_wt.float_swt_d(&data[0], data_size, wavelet.w, * &cD[0], output_len, i) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C swt failed.") * IF HAVE_C99_CPLX: */ } /* "pywt/_extensions/_swt.pyx":125 * raise RuntimeError("C swt failed.") * elif cdata_t is np.float32_t: * cA = np.zeros(output_len, dtype=np.float32) # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.float_swt_a(&data[0], data_size, wavelet.w, */ __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_float32); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 125, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(__pyx_t_9, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 125, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __PYX_XDEC_MEMVIEW(&__pyx_v_cA, 1); __pyx_v_cA = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL; /* "pywt/_extensions/_swt.pyx":126 * elif cdata_t is np.float32_t: * cA = np.zeros(output_len, dtype=np.float32) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_swt_a(&data[0], data_size, wavelet.w, * &cA[0], output_len, i) */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_swt.pyx":127 * cA = np.zeros(output_len, dtype=np.float32) * with nogil: * retval = c_wt.float_swt_a(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &cA[0], output_len, i) * if retval < 0: */ __pyx_t_14 = 0; /* "pywt/_extensions/_swt.pyx":128 * with nogil: * retval = c_wt.float_swt_a(&data[0], data_size, wavelet.w, * &cA[0], output_len, i) # <<<<<<<<<<<<<< * if retval < 0: * raise RuntimeError("C swt failed.") */ __pyx_t_15 = 0; /* "pywt/_extensions/_swt.pyx":127 * cA = np.zeros(output_len, dtype=np.float32) * with nogil: * retval = c_wt.float_swt_a(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &cA[0], output_len, i) * if retval < 0: */ __pyx_v_retval = float_swt_a((&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_data.data) + __pyx_t_14)) )))), __pyx_v_data_size, __pyx_v_wavelet->w, (&(*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float32_t *) __pyx_v_cA.data) + __pyx_t_15)) )))), __pyx_v_output_len, __pyx_v_i); } /* "pywt/_extensions/_swt.pyx":126 * elif cdata_t is np.float32_t: * cA = np.zeros(output_len, dtype=np.float32) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_swt_a(&data[0], data_size, wavelet.w, * &cA[0], output_len, i) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L21; } __pyx_L21:; } } /* "pywt/_extensions/_swt.pyx":129 * retval = c_wt.float_swt_a(&data[0], data_size, wavelet.w, * &cA[0], output_len, i) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C swt failed.") * IF HAVE_C99_CPLX: */ __pyx_t_3 = ((__pyx_v_retval < 0) != 0); if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":130 * &cA[0], output_len, i) * if retval < 0: * raise RuntimeError("C swt failed.") # <<<<<<<<<<<<<< * IF HAVE_C99_CPLX: * if cdata_t is np.complex128_t: */ __pyx_t_9 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_Raise(__pyx_t_9, 0, 0, 0); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __PYX_ERR(0, 130, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":129 * retval = c_wt.float_swt_a(&data[0], data_size, wavelet.w, * &cA[0], output_len, i) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C swt failed.") * IF HAVE_C99_CPLX: */ } /* "pywt/_extensions/_swt.pyx":147 * raise RuntimeError("C swt failed.") * * data = cA # <<<<<<<<<<<<<< * if not trim_approx: * ret.append((np.asarray(cA), np.asarray(cD))) */ __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __PYX_INC_MEMVIEW(&__pyx_v_cA, 0); __pyx_v_data = __pyx_v_cA; /* "pywt/_extensions/_swt.pyx":148 * * data = cA * if not trim_approx: # <<<<<<<<<<<<<< * ret.append((np.asarray(cA), np.asarray(cD))) * else: */ __pyx_t_3 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_trim_approx)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 148, __pyx_L1_error) __pyx_t_16 = ((!__pyx_t_3) != 0); if (__pyx_t_16) { /* "pywt/_extensions/_swt.pyx":149 * data = cA * if not trim_approx: * ret.append((np.asarray(cA), np.asarray(cD))) # <<<<<<<<<<<<<< * else: * ret.append(np.asarray(cD)) */ __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_asarray); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __pyx_memoryview_fromslice(__pyx_v_cA, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_9 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_2, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_10); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_asarray); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __pyx_memoryview_fromslice(__pyx_v_cD, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_8 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_10); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_8); __pyx_t_9 = 0; __pyx_t_8 = 0; __pyx_t_17 = __Pyx_PyList_Append(__pyx_v_ret, __pyx_t_2); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_swt.pyx":148 * * data = cA * if not trim_approx: # <<<<<<<<<<<<<< * ret.append((np.asarray(cA), np.asarray(cD))) * else: */ goto __pyx_L23; } /* "pywt/_extensions/_swt.pyx":151 * ret.append((np.asarray(cA), np.asarray(cD))) * else: * ret.append(np.asarray(cD)) # <<<<<<<<<<<<<< * * if trim_approx: */ /*else*/ { __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_asarray); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __pyx_memoryview_fromslice(__pyx_v_cD, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_2 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_10, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_8); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_17 = __Pyx_PyList_Append(__pyx_v_ret, __pyx_t_2); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_L23:; } /* "pywt/_extensions/_swt.pyx":153 * ret.append(np.asarray(cD)) * * if trim_approx: # <<<<<<<<<<<<<< * ret.append(np.asarray(cA)) * ret.reverse() */ __pyx_t_16 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_trim_approx)); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 153, __pyx_L1_error) if (__pyx_t_16) { /* "pywt/_extensions/_swt.pyx":154 * * if trim_approx: * ret.append(np.asarray(cA)) # <<<<<<<<<<<<<< * ret.reverse() * return ret */ __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_asarray); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_v_cA.memview)) { __Pyx_RaiseUnboundLocalError("cA"); __PYX_ERR(0, 154, __pyx_L1_error) } __pyx_t_9 = __pyx_memoryview_fromslice(__pyx_v_cA, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_2 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_10, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_17 = __Pyx_PyList_Append(__pyx_v_ret, __pyx_t_2); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_swt.pyx":153 * ret.append(np.asarray(cD)) * * if trim_approx: # <<<<<<<<<<<<<< * ret.append(np.asarray(cA)) * ret.reverse() */ } /* "pywt/_extensions/_swt.pyx":155 * if trim_approx: * ret.append(np.asarray(cA)) * ret.reverse() # <<<<<<<<<<<<<< * return ret * */ __pyx_t_17 = PyList_Reverse(__pyx_v_ret); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 155, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":156 * ret.append(np.asarray(cA)) * ret.reverse() * return ret # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_ret); __pyx_r = __pyx_v_ret; goto __pyx_L0; /* "pywt/_extensions/_swt.pyx":52 * * * def swt(cdata_t[::1] data, Wavelet wavelet, size_t level, size_t start_level, # <<<<<<<<<<<<<< * bool trim_approx=False): * cdef cdata_t[::1] cA, cD */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __PYX_XDEC_MEMVIEW(&__pyx_t_11, 1); __Pyx_AddTraceback("pywt._extensions._swt.swt", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_cA, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_cD, 1); __Pyx_XDECREF(__pyx_v_msg); __Pyx_XDECREF(__pyx_v_ret); __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_swt_26__defaults__(CYTHON_UNUSED PyObject *__pyx_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__defaults__", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__Pyx_CyFunction_Defaults(__pyx_defaults5, __pyx_self)->__pyx_arg_trim_approx)); __Pyx_GIVEREF(((PyObject *)__Pyx_CyFunction_Defaults(__pyx_defaults5, __pyx_self)->__pyx_arg_trim_approx)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__Pyx_CyFunction_Defaults(__pyx_defaults5, __pyx_self)->__pyx_arg_trim_approx)); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pywt._extensions._swt.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_fuse_1__pyx_pw_4pywt_11_extensions_4_swt_9swt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_1__pyx_mdef_4pywt_11_extensions_4_swt_9swt = {"__pyx_fuse_1swt", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1__pyx_pw_4pywt_11_extensions_4_swt_9swt, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_fuse_1__pyx_pw_4pywt_11_extensions_4_swt_9swt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } }; struct WaveletObject *__pyx_v_wavelet = 0; size_t __pyx_v_level; size_t __pyx_v_start_level; PyBoolObject *__pyx_v_trim_approx = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("swt (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_data,&__pyx_n_s_wavelet,&__pyx_n_s_level,&__pyx_n_s_start_level,&__pyx_n_s_trim_approx,0}; PyObject* values[5] = {0,0,0,0,0}; __pyx_defaults5 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults5, __pyx_self); values[4] = (PyObject *)__pyx_dynamic_args->__pyx_arg_trim_approx; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wavelet)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("swt", 0, 4, 5, 1); __PYX_ERR(0, 52, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("swt", 0, 4, 5, 2); __PYX_ERR(0, 52, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_start_level)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("swt", 0, 4, 5, 3); __PYX_ERR(0, 52, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_trim_approx); if (value) { values[4] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "swt") < 0)) __PYX_ERR(0, 52, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 52, __pyx_L3_error) __pyx_v_wavelet = ((struct WaveletObject *)values[1]); __pyx_v_level = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_level == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 52, __pyx_L3_error) __pyx_v_start_level = __Pyx_PyInt_As_size_t(values[3]); if (unlikely((__pyx_v_start_level == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 52, __pyx_L3_error) __pyx_v_trim_approx = ((PyBoolObject *)values[4]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("swt", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 52, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._swt.swt", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_wavelet), __pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet, 1, "wavelet", 0))) __PYX_ERR(0, 52, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_trim_approx), __pyx_ptype_7cpython_4bool_bool, 1, "trim_approx", 0))) __PYX_ERR(0, 53, __pyx_L1_error) __pyx_r = __pyx_pf_4pywt_11_extensions_4_swt_8swt(__pyx_self, __pyx_v_data, __pyx_v_wavelet, __pyx_v_level, __pyx_v_start_level, __pyx_v_trim_approx); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_swt_8swt(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, size_t __pyx_v_level, size_t __pyx_v_start_level, PyBoolObject *__pyx_v_trim_approx) { __Pyx_memviewslice __pyx_v_cA = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_cD = { 0, 0, { 0 }, { 0 }, { 0 } }; int __pyx_v_retval; size_t __pyx_v_end_level; size_t __pyx_v_data_size; size_t __pyx_v_output_len; size_t __pyx_v_i; PyObject *__pyx_v_msg = NULL; PyObject *__pyx_v_ret = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; int __pyx_t_3; size_t __pyx_t_4; size_t __pyx_t_5; size_t __pyx_t_6; size_t __pyx_t_7; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; __Pyx_memviewslice __pyx_t_11 = { 0, 0, { 0 }, { 0 }, { 0 } }; Py_ssize_t __pyx_t_12; Py_ssize_t __pyx_t_13; Py_ssize_t __pyx_t_14; Py_ssize_t __pyx_t_15; int __pyx_t_16; int __pyx_t_17; __Pyx_RefNannySetupContext("__pyx_fuse_1swt", 0); /* "pywt/_extensions/_swt.pyx":57 * cdef Wavelet w * cdef int retval * cdef size_t end_level = start_level + level # <<<<<<<<<<<<<< * cdef size_t data_size, output_len, i * */ __pyx_v_end_level = (__pyx_v_start_level + __pyx_v_level); /* "pywt/_extensions/_swt.pyx":60 * cdef size_t data_size, output_len, i * * if data.size % 2: # <<<<<<<<<<<<<< * raise ValueError("Length of data must be even.") * if data.size < 1: */ __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_RemainderObjC(__pyx_t_2, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":61 * * if data.size % 2: * raise ValueError("Length of data must be even.") # <<<<<<<<<<<<<< * if data.size < 1: * raise ValueError("Data must have non-zero size") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 61, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 61, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":60 * cdef size_t data_size, output_len, i * * if data.size % 2: # <<<<<<<<<<<<<< * raise ValueError("Length of data must be even.") * if data.size < 1: */ } /* "pywt/_extensions/_swt.pyx":62 * if data.size % 2: * raise ValueError("Length of data must be even.") * if data.size < 1: # <<<<<<<<<<<<<< * raise ValueError("Data must have non-zero size") * */ __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_int_1, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":63 * raise ValueError("Length of data must be even.") * if data.size < 1: * raise ValueError("Data must have non-zero size") # <<<<<<<<<<<<<< * * if level < 1: */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 63, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 63, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":62 * if data.size % 2: * raise ValueError("Length of data must be even.") * if data.size < 1: # <<<<<<<<<<<<<< * raise ValueError("Data must have non-zero size") * */ } /* "pywt/_extensions/_swt.pyx":65 * raise ValueError("Data must have non-zero size") * * if level < 1: # <<<<<<<<<<<<<< * raise ValueError("Level value must be greater than zero.") * if start_level >= common.swt_max_level(data.size): */ __pyx_t_3 = ((__pyx_v_level < 1) != 0); if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":66 * * if level < 1: * raise ValueError("Level value must be greater than zero.") # <<<<<<<<<<<<<< * if start_level >= common.swt_max_level(data.size): * raise ValueError("start_level must be less than %d." % */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 66, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 66, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":65 * raise ValueError("Data must have non-zero size") * * if level < 1: # <<<<<<<<<<<<<< * raise ValueError("Level value must be greater than zero.") * if start_level >= common.swt_max_level(data.size): */ } /* "pywt/_extensions/_swt.pyx":67 * if level < 1: * raise ValueError("Level value must be greater than zero.") * if start_level >= common.swt_max_level(data.size): # <<<<<<<<<<<<<< * raise ValueError("start_level must be less than %d." % * common.swt_max_level(data.size)) */ __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = ((__pyx_v_start_level >= swt_max_level(__pyx_t_4)) != 0); if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":69 * if start_level >= common.swt_max_level(data.size): * raise ValueError("start_level must be less than %d." % * common.swt_max_level(data.size)) # <<<<<<<<<<<<<< * * if end_level > common.swt_max_level(data.size): */ __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_unsigned_char(swt_max_level(__pyx_t_4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* "pywt/_extensions/_swt.pyx":68 * raise ValueError("Level value must be greater than zero.") * if start_level >= common.swt_max_level(data.size): * raise ValueError("start_level must be less than %d." % # <<<<<<<<<<<<<< * common.swt_max_level(data.size)) * */ __pyx_t_2 = PyUnicode_Format(__pyx_kp_u_start_level_must_be_less_than_d, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 68, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":67 * if level < 1: * raise ValueError("Level value must be greater than zero.") * if start_level >= common.swt_max_level(data.size): # <<<<<<<<<<<<<< * raise ValueError("start_level must be less than %d." % * common.swt_max_level(data.size)) */ } /* "pywt/_extensions/_swt.pyx":71 * common.swt_max_level(data.size)) * * if end_level > common.swt_max_level(data.size): # <<<<<<<<<<<<<< * msg = ("Level value too high (max level for current data size and " * "start_level is %d)." % ( */ __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = ((__pyx_v_end_level > swt_max_level(__pyx_t_4)) != 0); if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":74 * msg = ("Level value too high (max level for current data size and " * "start_level is %d)." % ( * common.swt_max_level(data.size) - start_level)) # <<<<<<<<<<<<<< * raise ValueError(msg) * */ __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_FromSize_t((swt_max_level(__pyx_t_4) - __pyx_v_start_level)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* "pywt/_extensions/_swt.pyx":73 * if end_level > common.swt_max_level(data.size): * msg = ("Level value too high (max level for current data size and " * "start_level is %d)." % ( # <<<<<<<<<<<<<< * common.swt_max_level(data.size) - start_level)) * raise ValueError(msg) */ __pyx_t_2 = PyUnicode_Format(__pyx_kp_u_Level_value_too_high_max_level_f, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_msg = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_swt.pyx":75 * "start_level is %d)." % ( * common.swt_max_level(data.size) - start_level)) * raise ValueError(msg) # <<<<<<<<<<<<<< * * */ __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_v_msg); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 75, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":71 * common.swt_max_level(data.size)) * * if end_level > common.swt_max_level(data.size): # <<<<<<<<<<<<<< * msg = ("Level value too high (max level for current data size and " * "start_level is %d)." % ( */ } /* "pywt/_extensions/_swt.pyx":78 * * * output_len = common.swt_buffer_length(data.size) # <<<<<<<<<<<<<< * if output_len < 1: * raise RuntimeError("Invalid output length.") */ __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_output_len = swt_buffer_length(__pyx_t_4); /* "pywt/_extensions/_swt.pyx":79 * * output_len = common.swt_buffer_length(data.size) * if output_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ __pyx_t_3 = ((__pyx_v_output_len < 1) != 0); if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":80 * output_len = common.swt_buffer_length(data.size) * if output_len < 1: * raise RuntimeError("Invalid output length.") # <<<<<<<<<<<<<< * * ret = [] */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 80, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":79 * * output_len = common.swt_buffer_length(data.size) * if output_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ } /* "pywt/_extensions/_swt.pyx":82 * raise RuntimeError("Invalid output length.") * * ret = [] # <<<<<<<<<<<<<< * for i in range(start_level+1, end_level+1): * data_size = data.size */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_ret = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_swt.pyx":83 * * ret = [] * for i in range(start_level+1, end_level+1): # <<<<<<<<<<<<<< * data_size = data.size * # alloc memory, decompose D */ __pyx_t_4 = (__pyx_v_end_level + 1); __pyx_t_5 = __pyx_t_4; for (__pyx_t_6 = (__pyx_v_start_level + 1); __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6; /* "pywt/_extensions/_swt.pyx":84 * ret = [] * for i in range(start_level+1, end_level+1): * data_size = data.size # <<<<<<<<<<<<<< * # alloc memory, decompose D * if cdata_t is np.float64_t: */ __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_7 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_7 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_data_size = __pyx_t_7; /* "pywt/_extensions/_swt.pyx":87 * # alloc memory, decompose D * if cdata_t is np.float64_t: * cD = np.zeros(output_len, dtype=np.float64) # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.double_swt_d(&data[0], data_size, wavelet.w, */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_float64); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_10) < 0) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, __pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_10, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __PYX_XDEC_MEMVIEW(&__pyx_v_cD, 1); __pyx_v_cD = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL; /* "pywt/_extensions/_swt.pyx":88 * if cdata_t is np.float64_t: * cD = np.zeros(output_len, dtype=np.float64) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_swt_d(&data[0], data_size, wavelet.w, * &cD[0], output_len, i) */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_swt.pyx":89 * cD = np.zeros(output_len, dtype=np.float64) * with nogil: * retval = c_wt.double_swt_d(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &cD[0], output_len, i) * if retval < 0: */ __pyx_t_12 = 0; /* "pywt/_extensions/_swt.pyx":90 * with nogil: * retval = c_wt.double_swt_d(&data[0], data_size, wavelet.w, * &cD[0], output_len, i) # <<<<<<<<<<<<<< * if retval < 0: * raise RuntimeError("C swt failed.") */ __pyx_t_13 = 0; /* "pywt/_extensions/_swt.pyx":89 * cD = np.zeros(output_len, dtype=np.float64) * with nogil: * retval = c_wt.double_swt_d(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &cD[0], output_len, i) * if retval < 0: */ __pyx_v_retval = double_swt_d((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_data.data) + __pyx_t_12)) )))), __pyx_v_data_size, __pyx_v_wavelet->w, (&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_cD.data) + __pyx_t_13)) )))), __pyx_v_output_len, __pyx_v_i); } /* "pywt/_extensions/_swt.pyx":88 * if cdata_t is np.float64_t: * cD = np.zeros(output_len, dtype=np.float64) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_swt_d(&data[0], data_size, wavelet.w, * &cD[0], output_len, i) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L15; } __pyx_L15:; } } /* "pywt/_extensions/_swt.pyx":91 * retval = c_wt.double_swt_d(&data[0], data_size, wavelet.w, * &cD[0], output_len, i) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C swt failed.") * elif cdata_t is np.float32_t: */ __pyx_t_3 = ((__pyx_v_retval < 0) != 0); if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":92 * &cD[0], output_len, i) * if retval < 0: * raise RuntimeError("C swt failed.") # <<<<<<<<<<<<<< * elif cdata_t is np.float32_t: * cD = np.zeros(output_len, dtype=np.float32) */ __pyx_t_10 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_Raise(__pyx_t_10, 0, 0, 0); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __PYX_ERR(0, 92, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":91 * retval = c_wt.double_swt_d(&data[0], data_size, wavelet.w, * &cD[0], output_len, i) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C swt failed.") * elif cdata_t is np.float32_t: */ } /* "pywt/_extensions/_swt.pyx":118 * # alloc memory, decompose A * if cdata_t is np.float64_t: * cA = np.zeros(output_len, dtype=np.float64) # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.double_swt_a(&data[0], data_size, wavelet.w, */ __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_float64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(__pyx_t_9, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __PYX_XDEC_MEMVIEW(&__pyx_v_cA, 1); __pyx_v_cA = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL; /* "pywt/_extensions/_swt.pyx":119 * if cdata_t is np.float64_t: * cA = np.zeros(output_len, dtype=np.float64) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_swt_a(&data[0], data_size, wavelet.w, * &cA[0], output_len, i) */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_swt.pyx":120 * cA = np.zeros(output_len, dtype=np.float64) * with nogil: * retval = c_wt.double_swt_a(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &cA[0], output_len, i) * if retval < 0: */ __pyx_t_14 = 0; /* "pywt/_extensions/_swt.pyx":121 * with nogil: * retval = c_wt.double_swt_a(&data[0], data_size, wavelet.w, * &cA[0], output_len, i) # <<<<<<<<<<<<<< * if retval < 0: * raise RuntimeError("C swt failed.") */ __pyx_t_15 = 0; /* "pywt/_extensions/_swt.pyx":120 * cA = np.zeros(output_len, dtype=np.float64) * with nogil: * retval = c_wt.double_swt_a(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &cA[0], output_len, i) * if retval < 0: */ __pyx_v_retval = double_swt_a((&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_data.data) + __pyx_t_14)) )))), __pyx_v_data_size, __pyx_v_wavelet->w, (&(*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_float64_t *) __pyx_v_cA.data) + __pyx_t_15)) )))), __pyx_v_output_len, __pyx_v_i); } /* "pywt/_extensions/_swt.pyx":119 * if cdata_t is np.float64_t: * cA = np.zeros(output_len, dtype=np.float64) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_swt_a(&data[0], data_size, wavelet.w, * &cA[0], output_len, i) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L21; } __pyx_L21:; } } /* "pywt/_extensions/_swt.pyx":122 * retval = c_wt.double_swt_a(&data[0], data_size, wavelet.w, * &cA[0], output_len, i) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C swt failed.") * elif cdata_t is np.float32_t: */ __pyx_t_3 = ((__pyx_v_retval < 0) != 0); if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":123 * &cA[0], output_len, i) * if retval < 0: * raise RuntimeError("C swt failed.") # <<<<<<<<<<<<<< * elif cdata_t is np.float32_t: * cA = np.zeros(output_len, dtype=np.float32) */ __pyx_t_9 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_Raise(__pyx_t_9, 0, 0, 0); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __PYX_ERR(0, 123, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":122 * retval = c_wt.double_swt_a(&data[0], data_size, wavelet.w, * &cA[0], output_len, i) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C swt failed.") * elif cdata_t is np.float32_t: */ } /* "pywt/_extensions/_swt.pyx":147 * raise RuntimeError("C swt failed.") * * data = cA # <<<<<<<<<<<<<< * if not trim_approx: * ret.append((np.asarray(cA), np.asarray(cD))) */ __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __PYX_INC_MEMVIEW(&__pyx_v_cA, 0); __pyx_v_data = __pyx_v_cA; /* "pywt/_extensions/_swt.pyx":148 * * data = cA * if not trim_approx: # <<<<<<<<<<<<<< * ret.append((np.asarray(cA), np.asarray(cD))) * else: */ __pyx_t_3 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_trim_approx)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 148, __pyx_L1_error) __pyx_t_16 = ((!__pyx_t_3) != 0); if (__pyx_t_16) { /* "pywt/_extensions/_swt.pyx":149 * data = cA * if not trim_approx: * ret.append((np.asarray(cA), np.asarray(cD))) # <<<<<<<<<<<<<< * else: * ret.append(np.asarray(cD)) */ __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_asarray); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __pyx_memoryview_fromslice(__pyx_v_cA, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_9 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_2, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_10); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_asarray); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __pyx_memoryview_fromslice(__pyx_v_cD, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_8 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_10); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_8); __pyx_t_9 = 0; __pyx_t_8 = 0; __pyx_t_17 = __Pyx_PyList_Append(__pyx_v_ret, __pyx_t_2); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_swt.pyx":148 * * data = cA * if not trim_approx: # <<<<<<<<<<<<<< * ret.append((np.asarray(cA), np.asarray(cD))) * else: */ goto __pyx_L23; } /* "pywt/_extensions/_swt.pyx":151 * ret.append((np.asarray(cA), np.asarray(cD))) * else: * ret.append(np.asarray(cD)) # <<<<<<<<<<<<<< * * if trim_approx: */ /*else*/ { __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_asarray); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __pyx_memoryview_fromslice(__pyx_v_cD, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_2 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_10, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_8); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_17 = __Pyx_PyList_Append(__pyx_v_ret, __pyx_t_2); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_L23:; } /* "pywt/_extensions/_swt.pyx":153 * ret.append(np.asarray(cD)) * * if trim_approx: # <<<<<<<<<<<<<< * ret.append(np.asarray(cA)) * ret.reverse() */ __pyx_t_16 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_trim_approx)); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 153, __pyx_L1_error) if (__pyx_t_16) { /* "pywt/_extensions/_swt.pyx":154 * * if trim_approx: * ret.append(np.asarray(cA)) # <<<<<<<<<<<<<< * ret.reverse() * return ret */ __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_asarray); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_v_cA.memview)) { __Pyx_RaiseUnboundLocalError("cA"); __PYX_ERR(0, 154, __pyx_L1_error) } __pyx_t_9 = __pyx_memoryview_fromslice(__pyx_v_cA, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_2 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_10, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_17 = __Pyx_PyList_Append(__pyx_v_ret, __pyx_t_2); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_swt.pyx":153 * ret.append(np.asarray(cD)) * * if trim_approx: # <<<<<<<<<<<<<< * ret.append(np.asarray(cA)) * ret.reverse() */ } /* "pywt/_extensions/_swt.pyx":155 * if trim_approx: * ret.append(np.asarray(cA)) * ret.reverse() # <<<<<<<<<<<<<< * return ret * */ __pyx_t_17 = PyList_Reverse(__pyx_v_ret); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 155, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":156 * ret.append(np.asarray(cA)) * ret.reverse() * return ret # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_ret); __pyx_r = __pyx_v_ret; goto __pyx_L0; /* "pywt/_extensions/_swt.pyx":52 * * * def swt(cdata_t[::1] data, Wavelet wavelet, size_t level, size_t start_level, # <<<<<<<<<<<<<< * bool trim_approx=False): * cdef cdata_t[::1] cA, cD */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __PYX_XDEC_MEMVIEW(&__pyx_t_11, 1); __Pyx_AddTraceback("pywt._extensions._swt.swt", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_cA, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_cD, 1); __Pyx_XDECREF(__pyx_v_msg); __Pyx_XDECREF(__pyx_v_ret); __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_swt_28__defaults__(CYTHON_UNUSED PyObject *__pyx_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__defaults__", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__Pyx_CyFunction_Defaults(__pyx_defaults6, __pyx_self)->__pyx_arg_trim_approx)); __Pyx_GIVEREF(((PyObject *)__Pyx_CyFunction_Defaults(__pyx_defaults6, __pyx_self)->__pyx_arg_trim_approx)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__Pyx_CyFunction_Defaults(__pyx_defaults6, __pyx_self)->__pyx_arg_trim_approx)); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pywt._extensions._swt.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_fuse_2__pyx_pw_4pywt_11_extensions_4_swt_11swt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_2__pyx_mdef_4pywt_11_extensions_4_swt_11swt = {"__pyx_fuse_2swt", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2__pyx_pw_4pywt_11_extensions_4_swt_11swt, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_fuse_2__pyx_pw_4pywt_11_extensions_4_swt_11swt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } }; struct WaveletObject *__pyx_v_wavelet = 0; size_t __pyx_v_level; size_t __pyx_v_start_level; PyBoolObject *__pyx_v_trim_approx = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("swt (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_data,&__pyx_n_s_wavelet,&__pyx_n_s_level,&__pyx_n_s_start_level,&__pyx_n_s_trim_approx,0}; PyObject* values[5] = {0,0,0,0,0}; __pyx_defaults6 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults6, __pyx_self); values[4] = (PyObject *)__pyx_dynamic_args->__pyx_arg_trim_approx; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wavelet)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("swt", 0, 4, 5, 1); __PYX_ERR(0, 52, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("swt", 0, 4, 5, 2); __PYX_ERR(0, 52, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_start_level)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("swt", 0, 4, 5, 3); __PYX_ERR(0, 52, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_trim_approx); if (value) { values[4] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "swt") < 0)) __PYX_ERR(0, 52, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_float_complex(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 52, __pyx_L3_error) __pyx_v_wavelet = ((struct WaveletObject *)values[1]); __pyx_v_level = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_level == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 52, __pyx_L3_error) __pyx_v_start_level = __Pyx_PyInt_As_size_t(values[3]); if (unlikely((__pyx_v_start_level == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 52, __pyx_L3_error) __pyx_v_trim_approx = ((PyBoolObject *)values[4]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("swt", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 52, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._swt.swt", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_wavelet), __pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet, 1, "wavelet", 0))) __PYX_ERR(0, 52, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_trim_approx), __pyx_ptype_7cpython_4bool_bool, 1, "trim_approx", 0))) __PYX_ERR(0, 53, __pyx_L1_error) __pyx_r = __pyx_pf_4pywt_11_extensions_4_swt_10swt(__pyx_self, __pyx_v_data, __pyx_v_wavelet, __pyx_v_level, __pyx_v_start_level, __pyx_v_trim_approx); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_swt_10swt(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, size_t __pyx_v_level, size_t __pyx_v_start_level, PyBoolObject *__pyx_v_trim_approx) { __Pyx_memviewslice __pyx_v_cA = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_cD = { 0, 0, { 0 }, { 0 }, { 0 } }; int __pyx_v_retval; size_t __pyx_v_end_level; size_t __pyx_v_data_size; size_t __pyx_v_output_len; size_t __pyx_v_i; PyObject *__pyx_v_msg = NULL; PyObject *__pyx_v_ret = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; int __pyx_t_3; size_t __pyx_t_4; size_t __pyx_t_5; size_t __pyx_t_6; size_t __pyx_t_7; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; __Pyx_memviewslice __pyx_t_11 = { 0, 0, { 0 }, { 0 }, { 0 } }; Py_ssize_t __pyx_t_12; Py_ssize_t __pyx_t_13; Py_ssize_t __pyx_t_14; Py_ssize_t __pyx_t_15; int __pyx_t_16; int __pyx_t_17; __Pyx_RefNannySetupContext("__pyx_fuse_2swt", 0); /* "pywt/_extensions/_swt.pyx":57 * cdef Wavelet w * cdef int retval * cdef size_t end_level = start_level + level # <<<<<<<<<<<<<< * cdef size_t data_size, output_len, i * */ __pyx_v_end_level = (__pyx_v_start_level + __pyx_v_level); /* "pywt/_extensions/_swt.pyx":60 * cdef size_t data_size, output_len, i * * if data.size % 2: # <<<<<<<<<<<<<< * raise ValueError("Length of data must be even.") * if data.size < 1: */ __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_float_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_float_complex, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_RemainderObjC(__pyx_t_2, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":61 * * if data.size % 2: * raise ValueError("Length of data must be even.") # <<<<<<<<<<<<<< * if data.size < 1: * raise ValueError("Data must have non-zero size") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 61, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 61, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":60 * cdef size_t data_size, output_len, i * * if data.size % 2: # <<<<<<<<<<<<<< * raise ValueError("Length of data must be even.") * if data.size < 1: */ } /* "pywt/_extensions/_swt.pyx":62 * if data.size % 2: * raise ValueError("Length of data must be even.") * if data.size < 1: # <<<<<<<<<<<<<< * raise ValueError("Data must have non-zero size") * */ __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_float_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_float_complex, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_int_1, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":63 * raise ValueError("Length of data must be even.") * if data.size < 1: * raise ValueError("Data must have non-zero size") # <<<<<<<<<<<<<< * * if level < 1: */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 63, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 63, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":62 * if data.size % 2: * raise ValueError("Length of data must be even.") * if data.size < 1: # <<<<<<<<<<<<<< * raise ValueError("Data must have non-zero size") * */ } /* "pywt/_extensions/_swt.pyx":65 * raise ValueError("Data must have non-zero size") * * if level < 1: # <<<<<<<<<<<<<< * raise ValueError("Level value must be greater than zero.") * if start_level >= common.swt_max_level(data.size): */ __pyx_t_3 = ((__pyx_v_level < 1) != 0); if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":66 * * if level < 1: * raise ValueError("Level value must be greater than zero.") # <<<<<<<<<<<<<< * if start_level >= common.swt_max_level(data.size): * raise ValueError("start_level must be less than %d." % */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 66, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 66, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":65 * raise ValueError("Data must have non-zero size") * * if level < 1: # <<<<<<<<<<<<<< * raise ValueError("Level value must be greater than zero.") * if start_level >= common.swt_max_level(data.size): */ } /* "pywt/_extensions/_swt.pyx":67 * if level < 1: * raise ValueError("Level value must be greater than zero.") * if start_level >= common.swt_max_level(data.size): # <<<<<<<<<<<<<< * raise ValueError("start_level must be less than %d." % * common.swt_max_level(data.size)) */ __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_float_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_float_complex, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = ((__pyx_v_start_level >= swt_max_level(__pyx_t_4)) != 0); if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":69 * if start_level >= common.swt_max_level(data.size): * raise ValueError("start_level must be less than %d." % * common.swt_max_level(data.size)) # <<<<<<<<<<<<<< * * if end_level > common.swt_max_level(data.size): */ __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_float_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_float_complex, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_unsigned_char(swt_max_level(__pyx_t_4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* "pywt/_extensions/_swt.pyx":68 * raise ValueError("Level value must be greater than zero.") * if start_level >= common.swt_max_level(data.size): * raise ValueError("start_level must be less than %d." % # <<<<<<<<<<<<<< * common.swt_max_level(data.size)) * */ __pyx_t_2 = PyUnicode_Format(__pyx_kp_u_start_level_must_be_less_than_d, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 68, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":67 * if level < 1: * raise ValueError("Level value must be greater than zero.") * if start_level >= common.swt_max_level(data.size): # <<<<<<<<<<<<<< * raise ValueError("start_level must be less than %d." % * common.swt_max_level(data.size)) */ } /* "pywt/_extensions/_swt.pyx":71 * common.swt_max_level(data.size)) * * if end_level > common.swt_max_level(data.size): # <<<<<<<<<<<<<< * msg = ("Level value too high (max level for current data size and " * "start_level is %d)." % ( */ __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_float_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_float_complex, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = ((__pyx_v_end_level > swt_max_level(__pyx_t_4)) != 0); if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":74 * msg = ("Level value too high (max level for current data size and " * "start_level is %d)." % ( * common.swt_max_level(data.size) - start_level)) # <<<<<<<<<<<<<< * raise ValueError(msg) * */ __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_float_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_float_complex, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_FromSize_t((swt_max_level(__pyx_t_4) - __pyx_v_start_level)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* "pywt/_extensions/_swt.pyx":73 * if end_level > common.swt_max_level(data.size): * msg = ("Level value too high (max level for current data size and " * "start_level is %d)." % ( # <<<<<<<<<<<<<< * common.swt_max_level(data.size) - start_level)) * raise ValueError(msg) */ __pyx_t_2 = PyUnicode_Format(__pyx_kp_u_Level_value_too_high_max_level_f, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_msg = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_swt.pyx":75 * "start_level is %d)." % ( * common.swt_max_level(data.size) - start_level)) * raise ValueError(msg) # <<<<<<<<<<<<<< * * */ __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_v_msg); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 75, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":71 * common.swt_max_level(data.size)) * * if end_level > common.swt_max_level(data.size): # <<<<<<<<<<<<<< * msg = ("Level value too high (max level for current data size and " * "start_level is %d)." % ( */ } /* "pywt/_extensions/_swt.pyx":78 * * * output_len = common.swt_buffer_length(data.size) # <<<<<<<<<<<<<< * if output_len < 1: * raise RuntimeError("Invalid output length.") */ __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_float_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_float_complex, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_output_len = swt_buffer_length(__pyx_t_4); /* "pywt/_extensions/_swt.pyx":79 * * output_len = common.swt_buffer_length(data.size) * if output_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ __pyx_t_3 = ((__pyx_v_output_len < 1) != 0); if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":80 * output_len = common.swt_buffer_length(data.size) * if output_len < 1: * raise RuntimeError("Invalid output length.") # <<<<<<<<<<<<<< * * ret = [] */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 80, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":79 * * output_len = common.swt_buffer_length(data.size) * if output_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ } /* "pywt/_extensions/_swt.pyx":82 * raise RuntimeError("Invalid output length.") * * ret = [] # <<<<<<<<<<<<<< * for i in range(start_level+1, end_level+1): * data_size = data.size */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_ret = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_swt.pyx":83 * * ret = [] * for i in range(start_level+1, end_level+1): # <<<<<<<<<<<<<< * data_size = data.size * # alloc memory, decompose D */ __pyx_t_4 = (__pyx_v_end_level + 1); __pyx_t_5 = __pyx_t_4; for (__pyx_t_6 = (__pyx_v_start_level + 1); __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6; /* "pywt/_extensions/_swt.pyx":84 * ret = [] * for i in range(start_level+1, end_level+1): * data_size = data.size # <<<<<<<<<<<<<< * # alloc memory, decompose D * if cdata_t is np.float64_t: */ __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_float_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_float_complex, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_7 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_7 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_data_size = __pyx_t_7; /* "pywt/_extensions/_swt.pyx":109 * raise RuntimeError("C swt failed.") * elif cdata_t is np.complex64_t: * cD = np.zeros(output_len, dtype=np.complex64) # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.float_complex_swt_d(&data[0], data_size, wavelet.w, */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_complex64); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_10) < 0) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, __pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_float_complex(__pyx_t_10, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __PYX_XDEC_MEMVIEW(&__pyx_v_cD, 1); __pyx_v_cD = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL; /* "pywt/_extensions/_swt.pyx":110 * elif cdata_t is np.complex64_t: * cD = np.zeros(output_len, dtype=np.complex64) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_complex_swt_d(&data[0], data_size, wavelet.w, * &cD[0], output_len, i) */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_swt.pyx":111 * cD = np.zeros(output_len, dtype=np.complex64) * with nogil: * retval = c_wt.float_complex_swt_d(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &cD[0], output_len, i) * if retval < 0: */ __pyx_t_12 = 0; /* "pywt/_extensions/_swt.pyx":112 * with nogil: * retval = c_wt.float_complex_swt_d(&data[0], data_size, wavelet.w, * &cD[0], output_len, i) # <<<<<<<<<<<<<< * if retval < 0: * raise RuntimeError("C swt failed.") */ __pyx_t_13 = 0; /* "pywt/_extensions/_swt.pyx":111 * cD = np.zeros(output_len, dtype=np.complex64) * with nogil: * retval = c_wt.float_complex_swt_d(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &cD[0], output_len, i) * if retval < 0: */ __pyx_v_retval = float_complex_swt_d((&(*((__pyx_t_float_complex *) ( /* dim=0 */ ((char *) (((__pyx_t_float_complex *) __pyx_v_data.data) + __pyx_t_12)) )))), __pyx_v_data_size, __pyx_v_wavelet->w, (&(*((__pyx_t_float_complex *) ( /* dim=0 */ ((char *) (((__pyx_t_float_complex *) __pyx_v_cD.data) + __pyx_t_13)) )))), __pyx_v_output_len, __pyx_v_i); } /* "pywt/_extensions/_swt.pyx":110 * elif cdata_t is np.complex64_t: * cD = np.zeros(output_len, dtype=np.complex64) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_complex_swt_d(&data[0], data_size, wavelet.w, * &cD[0], output_len, i) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L15; } __pyx_L15:; } } /* "pywt/_extensions/_swt.pyx":113 * retval = c_wt.float_complex_swt_d(&data[0], data_size, wavelet.w, * &cD[0], output_len, i) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C swt failed.") * */ __pyx_t_3 = ((__pyx_v_retval < 0) != 0); if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":114 * &cD[0], output_len, i) * if retval < 0: * raise RuntimeError("C swt failed.") # <<<<<<<<<<<<<< * * # alloc memory, decompose A */ __pyx_t_10 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_Raise(__pyx_t_10, 0, 0, 0); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __PYX_ERR(0, 114, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":113 * retval = c_wt.float_complex_swt_d(&data[0], data_size, wavelet.w, * &cD[0], output_len, i) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C swt failed.") * */ } /* "pywt/_extensions/_swt.pyx":140 * raise RuntimeError("C swt failed.") * elif cdata_t is np.complex64_t: * cA = np.zeros(output_len, dtype=np.complex64) # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.float_complex_swt_a(&data[0], data_size, wavelet.w, */ __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_complex64); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_float_complex(__pyx_t_9, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __PYX_XDEC_MEMVIEW(&__pyx_v_cA, 1); __pyx_v_cA = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL; /* "pywt/_extensions/_swt.pyx":141 * elif cdata_t is np.complex64_t: * cA = np.zeros(output_len, dtype=np.complex64) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_complex_swt_a(&data[0], data_size, wavelet.w, * &cA[0], output_len, i) */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_swt.pyx":142 * cA = np.zeros(output_len, dtype=np.complex64) * with nogil: * retval = c_wt.float_complex_swt_a(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &cA[0], output_len, i) * if retval < 0: */ __pyx_t_14 = 0; /* "pywt/_extensions/_swt.pyx":143 * with nogil: * retval = c_wt.float_complex_swt_a(&data[0], data_size, wavelet.w, * &cA[0], output_len, i) # <<<<<<<<<<<<<< * if retval < 0: * raise RuntimeError("C swt failed.") */ __pyx_t_15 = 0; /* "pywt/_extensions/_swt.pyx":142 * cA = np.zeros(output_len, dtype=np.complex64) * with nogil: * retval = c_wt.float_complex_swt_a(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &cA[0], output_len, i) * if retval < 0: */ __pyx_v_retval = float_complex_swt_a((&(*((__pyx_t_float_complex *) ( /* dim=0 */ ((char *) (((__pyx_t_float_complex *) __pyx_v_data.data) + __pyx_t_14)) )))), __pyx_v_data_size, __pyx_v_wavelet->w, (&(*((__pyx_t_float_complex *) ( /* dim=0 */ ((char *) (((__pyx_t_float_complex *) __pyx_v_cA.data) + __pyx_t_15)) )))), __pyx_v_output_len, __pyx_v_i); } /* "pywt/_extensions/_swt.pyx":141 * elif cdata_t is np.complex64_t: * cA = np.zeros(output_len, dtype=np.complex64) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_complex_swt_a(&data[0], data_size, wavelet.w, * &cA[0], output_len, i) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L21; } __pyx_L21:; } } /* "pywt/_extensions/_swt.pyx":144 * retval = c_wt.float_complex_swt_a(&data[0], data_size, wavelet.w, * &cA[0], output_len, i) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C swt failed.") * */ __pyx_t_3 = ((__pyx_v_retval < 0) != 0); if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":145 * &cA[0], output_len, i) * if retval < 0: * raise RuntimeError("C swt failed.") # <<<<<<<<<<<<<< * * data = cA */ __pyx_t_9 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 145, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_Raise(__pyx_t_9, 0, 0, 0); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __PYX_ERR(0, 145, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":144 * retval = c_wt.float_complex_swt_a(&data[0], data_size, wavelet.w, * &cA[0], output_len, i) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C swt failed.") * */ } /* "pywt/_extensions/_swt.pyx":147 * raise RuntimeError("C swt failed.") * * data = cA # <<<<<<<<<<<<<< * if not trim_approx: * ret.append((np.asarray(cA), np.asarray(cD))) */ __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __PYX_INC_MEMVIEW(&__pyx_v_cA, 0); __pyx_v_data = __pyx_v_cA; /* "pywt/_extensions/_swt.pyx":148 * * data = cA * if not trim_approx: # <<<<<<<<<<<<<< * ret.append((np.asarray(cA), np.asarray(cD))) * else: */ __pyx_t_3 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_trim_approx)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 148, __pyx_L1_error) __pyx_t_16 = ((!__pyx_t_3) != 0); if (__pyx_t_16) { /* "pywt/_extensions/_swt.pyx":149 * data = cA * if not trim_approx: * ret.append((np.asarray(cA), np.asarray(cD))) # <<<<<<<<<<<<<< * else: * ret.append(np.asarray(cD)) */ __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_asarray); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __pyx_memoryview_fromslice(__pyx_v_cA, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_float_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_float_complex, 0);; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_9 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_2, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_10); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_asarray); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __pyx_memoryview_fromslice(__pyx_v_cD, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_float_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_float_complex, 0);; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_8 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_10); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_8); __pyx_t_9 = 0; __pyx_t_8 = 0; __pyx_t_17 = __Pyx_PyList_Append(__pyx_v_ret, __pyx_t_2); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_swt.pyx":148 * * data = cA * if not trim_approx: # <<<<<<<<<<<<<< * ret.append((np.asarray(cA), np.asarray(cD))) * else: */ goto __pyx_L23; } /* "pywt/_extensions/_swt.pyx":151 * ret.append((np.asarray(cA), np.asarray(cD))) * else: * ret.append(np.asarray(cD)) # <<<<<<<<<<<<<< * * if trim_approx: */ /*else*/ { __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_asarray); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __pyx_memoryview_fromslice(__pyx_v_cD, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_float_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_float_complex, 0);; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_2 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_10, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_8); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_17 = __Pyx_PyList_Append(__pyx_v_ret, __pyx_t_2); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_L23:; } /* "pywt/_extensions/_swt.pyx":153 * ret.append(np.asarray(cD)) * * if trim_approx: # <<<<<<<<<<<<<< * ret.append(np.asarray(cA)) * ret.reverse() */ __pyx_t_16 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_trim_approx)); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 153, __pyx_L1_error) if (__pyx_t_16) { /* "pywt/_extensions/_swt.pyx":154 * * if trim_approx: * ret.append(np.asarray(cA)) # <<<<<<<<<<<<<< * ret.reverse() * return ret */ __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_asarray); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_v_cA.memview)) { __Pyx_RaiseUnboundLocalError("cA"); __PYX_ERR(0, 154, __pyx_L1_error) } __pyx_t_9 = __pyx_memoryview_fromslice(__pyx_v_cA, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_float_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_float_complex, 0);; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_2 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_10, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_17 = __Pyx_PyList_Append(__pyx_v_ret, __pyx_t_2); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_swt.pyx":153 * ret.append(np.asarray(cD)) * * if trim_approx: # <<<<<<<<<<<<<< * ret.append(np.asarray(cA)) * ret.reverse() */ } /* "pywt/_extensions/_swt.pyx":155 * if trim_approx: * ret.append(np.asarray(cA)) * ret.reverse() # <<<<<<<<<<<<<< * return ret * */ __pyx_t_17 = PyList_Reverse(__pyx_v_ret); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 155, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":156 * ret.append(np.asarray(cA)) * ret.reverse() * return ret # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_ret); __pyx_r = __pyx_v_ret; goto __pyx_L0; /* "pywt/_extensions/_swt.pyx":52 * * * def swt(cdata_t[::1] data, Wavelet wavelet, size_t level, size_t start_level, # <<<<<<<<<<<<<< * bool trim_approx=False): * cdef cdata_t[::1] cA, cD */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __PYX_XDEC_MEMVIEW(&__pyx_t_11, 1); __Pyx_AddTraceback("pywt._extensions._swt.swt", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_cA, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_cD, 1); __Pyx_XDECREF(__pyx_v_msg); __Pyx_XDECREF(__pyx_v_ret); __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_swt_30__defaults__(CYTHON_UNUSED PyObject *__pyx_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__defaults__", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__Pyx_CyFunction_Defaults(__pyx_defaults7, __pyx_self)->__pyx_arg_trim_approx)); __Pyx_GIVEREF(((PyObject *)__Pyx_CyFunction_Defaults(__pyx_defaults7, __pyx_self)->__pyx_arg_trim_approx)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__Pyx_CyFunction_Defaults(__pyx_defaults7, __pyx_self)->__pyx_arg_trim_approx)); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pywt._extensions._swt.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_fuse_3__pyx_pw_4pywt_11_extensions_4_swt_13swt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_fuse_3__pyx_mdef_4pywt_11_extensions_4_swt_13swt = {"__pyx_fuse_3swt", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3__pyx_pw_4pywt_11_extensions_4_swt_13swt, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_fuse_3__pyx_pw_4pywt_11_extensions_4_swt_13swt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { __Pyx_memviewslice __pyx_v_data = { 0, 0, { 0 }, { 0 }, { 0 } }; struct WaveletObject *__pyx_v_wavelet = 0; size_t __pyx_v_level; size_t __pyx_v_start_level; PyBoolObject *__pyx_v_trim_approx = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("swt (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_data,&__pyx_n_s_wavelet,&__pyx_n_s_level,&__pyx_n_s_start_level,&__pyx_n_s_trim_approx,0}; PyObject* values[5] = {0,0,0,0,0}; __pyx_defaults7 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults7, __pyx_self); values[4] = (PyObject *)__pyx_dynamic_args->__pyx_arg_trim_approx; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wavelet)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("swt", 0, 4, 5, 1); __PYX_ERR(0, 52, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("swt", 0, 4, 5, 2); __PYX_ERR(0, 52, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_start_level)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("swt", 0, 4, 5, 3); __PYX_ERR(0, 52, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_trim_approx); if (value) { values[4] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "swt") < 0)) __PYX_ERR(0, 52, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_data = __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_double_complex(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_data.memview)) __PYX_ERR(0, 52, __pyx_L3_error) __pyx_v_wavelet = ((struct WaveletObject *)values[1]); __pyx_v_level = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_level == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 52, __pyx_L3_error) __pyx_v_start_level = __Pyx_PyInt_As_size_t(values[3]); if (unlikely((__pyx_v_start_level == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 52, __pyx_L3_error) __pyx_v_trim_approx = ((PyBoolObject *)values[4]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("swt", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 52, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._swt.swt", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_wavelet), __pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet, 1, "wavelet", 0))) __PYX_ERR(0, 52, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_trim_approx), __pyx_ptype_7cpython_4bool_bool, 1, "trim_approx", 0))) __PYX_ERR(0, 53, __pyx_L1_error) __pyx_r = __pyx_pf_4pywt_11_extensions_4_swt_12swt(__pyx_self, __pyx_v_data, __pyx_v_wavelet, __pyx_v_level, __pyx_v_start_level, __pyx_v_trim_approx); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_swt_12swt(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_data, struct WaveletObject *__pyx_v_wavelet, size_t __pyx_v_level, size_t __pyx_v_start_level, PyBoolObject *__pyx_v_trim_approx) { __Pyx_memviewslice __pyx_v_cA = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_memviewslice __pyx_v_cD = { 0, 0, { 0 }, { 0 }, { 0 } }; int __pyx_v_retval; size_t __pyx_v_end_level; size_t __pyx_v_data_size; size_t __pyx_v_output_len; size_t __pyx_v_i; PyObject *__pyx_v_msg = NULL; PyObject *__pyx_v_ret = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; int __pyx_t_3; size_t __pyx_t_4; size_t __pyx_t_5; size_t __pyx_t_6; size_t __pyx_t_7; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; __Pyx_memviewslice __pyx_t_11 = { 0, 0, { 0 }, { 0 }, { 0 } }; Py_ssize_t __pyx_t_12; Py_ssize_t __pyx_t_13; Py_ssize_t __pyx_t_14; Py_ssize_t __pyx_t_15; int __pyx_t_16; int __pyx_t_17; __Pyx_RefNannySetupContext("__pyx_fuse_3swt", 0); /* "pywt/_extensions/_swt.pyx":57 * cdef Wavelet w * cdef int retval * cdef size_t end_level = start_level + level # <<<<<<<<<<<<<< * cdef size_t data_size, output_len, i * */ __pyx_v_end_level = (__pyx_v_start_level + __pyx_v_level); /* "pywt/_extensions/_swt.pyx":60 * cdef size_t data_size, output_len, i * * if data.size % 2: # <<<<<<<<<<<<<< * raise ValueError("Length of data must be even.") * if data.size < 1: */ __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_double_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_double_complex, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_RemainderObjC(__pyx_t_2, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":61 * * if data.size % 2: * raise ValueError("Length of data must be even.") # <<<<<<<<<<<<<< * if data.size < 1: * raise ValueError("Data must have non-zero size") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 61, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 61, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":60 * cdef size_t data_size, output_len, i * * if data.size % 2: # <<<<<<<<<<<<<< * raise ValueError("Length of data must be even.") * if data.size < 1: */ } /* "pywt/_extensions/_swt.pyx":62 * if data.size % 2: * raise ValueError("Length of data must be even.") * if data.size < 1: # <<<<<<<<<<<<<< * raise ValueError("Data must have non-zero size") * */ __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_double_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_double_complex, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_int_1, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 62, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":63 * raise ValueError("Length of data must be even.") * if data.size < 1: * raise ValueError("Data must have non-zero size") # <<<<<<<<<<<<<< * * if level < 1: */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 63, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 63, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":62 * if data.size % 2: * raise ValueError("Length of data must be even.") * if data.size < 1: # <<<<<<<<<<<<<< * raise ValueError("Data must have non-zero size") * */ } /* "pywt/_extensions/_swt.pyx":65 * raise ValueError("Data must have non-zero size") * * if level < 1: # <<<<<<<<<<<<<< * raise ValueError("Level value must be greater than zero.") * if start_level >= common.swt_max_level(data.size): */ __pyx_t_3 = ((__pyx_v_level < 1) != 0); if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":66 * * if level < 1: * raise ValueError("Level value must be greater than zero.") # <<<<<<<<<<<<<< * if start_level >= common.swt_max_level(data.size): * raise ValueError("start_level must be less than %d." % */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 66, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 66, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":65 * raise ValueError("Data must have non-zero size") * * if level < 1: # <<<<<<<<<<<<<< * raise ValueError("Level value must be greater than zero.") * if start_level >= common.swt_max_level(data.size): */ } /* "pywt/_extensions/_swt.pyx":67 * if level < 1: * raise ValueError("Level value must be greater than zero.") * if start_level >= common.swt_max_level(data.size): # <<<<<<<<<<<<<< * raise ValueError("start_level must be less than %d." % * common.swt_max_level(data.size)) */ __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_double_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_double_complex, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = ((__pyx_v_start_level >= swt_max_level(__pyx_t_4)) != 0); if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":69 * if start_level >= common.swt_max_level(data.size): * raise ValueError("start_level must be less than %d." % * common.swt_max_level(data.size)) # <<<<<<<<<<<<<< * * if end_level > common.swt_max_level(data.size): */ __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_double_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_double_complex, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_unsigned_char(swt_max_level(__pyx_t_4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* "pywt/_extensions/_swt.pyx":68 * raise ValueError("Level value must be greater than zero.") * if start_level >= common.swt_max_level(data.size): * raise ValueError("start_level must be less than %d." % # <<<<<<<<<<<<<< * common.swt_max_level(data.size)) * */ __pyx_t_2 = PyUnicode_Format(__pyx_kp_u_start_level_must_be_less_than_d, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 68, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":67 * if level < 1: * raise ValueError("Level value must be greater than zero.") * if start_level >= common.swt_max_level(data.size): # <<<<<<<<<<<<<< * raise ValueError("start_level must be less than %d." % * common.swt_max_level(data.size)) */ } /* "pywt/_extensions/_swt.pyx":71 * common.swt_max_level(data.size)) * * if end_level > common.swt_max_level(data.size): # <<<<<<<<<<<<<< * msg = ("Level value too high (max level for current data size and " * "start_level is %d)." % ( */ __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_double_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_double_complex, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = ((__pyx_v_end_level > swt_max_level(__pyx_t_4)) != 0); if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":74 * msg = ("Level value too high (max level for current data size and " * "start_level is %d)." % ( * common.swt_max_level(data.size) - start_level)) # <<<<<<<<<<<<<< * raise ValueError(msg) * */ __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_double_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_double_complex, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_FromSize_t((swt_max_level(__pyx_t_4) - __pyx_v_start_level)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* "pywt/_extensions/_swt.pyx":73 * if end_level > common.swt_max_level(data.size): * msg = ("Level value too high (max level for current data size and " * "start_level is %d)." % ( # <<<<<<<<<<<<<< * common.swt_max_level(data.size) - start_level)) * raise ValueError(msg) */ __pyx_t_2 = PyUnicode_Format(__pyx_kp_u_Level_value_too_high_max_level_f, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_msg = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_swt.pyx":75 * "start_level is %d)." % ( * common.swt_max_level(data.size) - start_level)) * raise ValueError(msg) # <<<<<<<<<<<<<< * * */ __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_v_msg); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 75, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":71 * common.swt_max_level(data.size)) * * if end_level > common.swt_max_level(data.size): # <<<<<<<<<<<<<< * msg = ("Level value too high (max level for current data size and " * "start_level is %d)." % ( */ } /* "pywt/_extensions/_swt.pyx":78 * * * output_len = common.swt_buffer_length(data.size) # <<<<<<<<<<<<<< * if output_len < 1: * raise RuntimeError("Invalid output length.") */ __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_double_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_double_complex, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyInt_As_size_t(__pyx_t_1); if (unlikely((__pyx_t_4 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_output_len = swt_buffer_length(__pyx_t_4); /* "pywt/_extensions/_swt.pyx":79 * * output_len = common.swt_buffer_length(data.size) * if output_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ __pyx_t_3 = ((__pyx_v_output_len < 1) != 0); if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":80 * output_len = common.swt_buffer_length(data.size) * if output_len < 1: * raise RuntimeError("Invalid output length.") # <<<<<<<<<<<<<< * * ret = [] */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 80, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":79 * * output_len = common.swt_buffer_length(data.size) * if output_len < 1: # <<<<<<<<<<<<<< * raise RuntimeError("Invalid output length.") * */ } /* "pywt/_extensions/_swt.pyx":82 * raise RuntimeError("Invalid output length.") * * ret = [] # <<<<<<<<<<<<<< * for i in range(start_level+1, end_level+1): * data_size = data.size */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_ret = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_swt.pyx":83 * * ret = [] * for i in range(start_level+1, end_level+1): # <<<<<<<<<<<<<< * data_size = data.size * # alloc memory, decompose D */ __pyx_t_4 = (__pyx_v_end_level + 1); __pyx_t_5 = __pyx_t_4; for (__pyx_t_6 = (__pyx_v_start_level + 1); __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6; /* "pywt/_extensions/_swt.pyx":84 * ret = [] * for i in range(start_level+1, end_level+1): * data_size = data.size # <<<<<<<<<<<<<< * # alloc memory, decompose D * if cdata_t is np.float64_t: */ __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_data, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_double_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_double_complex, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_7 = __Pyx_PyInt_As_size_t(__pyx_t_2); if (unlikely((__pyx_t_7 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_data_size = __pyx_t_7; /* "pywt/_extensions/_swt.pyx":102 * IF HAVE_C99_CPLX: * if cdata_t is np.complex128_t: * cD = np.zeros(output_len, dtype=np.complex128) # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.double_complex_swt_d(&data[0], data_size, wavelet.w, */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_complex128); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_10) < 0) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, __pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_double_complex(__pyx_t_10, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 102, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __PYX_XDEC_MEMVIEW(&__pyx_v_cD, 1); __pyx_v_cD = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL; /* "pywt/_extensions/_swt.pyx":103 * if cdata_t is np.complex128_t: * cD = np.zeros(output_len, dtype=np.complex128) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_complex_swt_d(&data[0], data_size, wavelet.w, * &cD[0], output_len, i) */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_swt.pyx":104 * cD = np.zeros(output_len, dtype=np.complex128) * with nogil: * retval = c_wt.double_complex_swt_d(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &cD[0], output_len, i) * if retval < 0: */ __pyx_t_12 = 0; /* "pywt/_extensions/_swt.pyx":105 * with nogil: * retval = c_wt.double_complex_swt_d(&data[0], data_size, wavelet.w, * &cD[0], output_len, i) # <<<<<<<<<<<<<< * if retval < 0: * raise RuntimeError("C swt failed.") */ __pyx_t_13 = 0; /* "pywt/_extensions/_swt.pyx":104 * cD = np.zeros(output_len, dtype=np.complex128) * with nogil: * retval = c_wt.double_complex_swt_d(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &cD[0], output_len, i) * if retval < 0: */ __pyx_v_retval = double_complex_swt_d((&(*((__pyx_t_double_complex *) ( /* dim=0 */ ((char *) (((__pyx_t_double_complex *) __pyx_v_data.data) + __pyx_t_12)) )))), __pyx_v_data_size, __pyx_v_wavelet->w, (&(*((__pyx_t_double_complex *) ( /* dim=0 */ ((char *) (((__pyx_t_double_complex *) __pyx_v_cD.data) + __pyx_t_13)) )))), __pyx_v_output_len, __pyx_v_i); } /* "pywt/_extensions/_swt.pyx":103 * if cdata_t is np.complex128_t: * cD = np.zeros(output_len, dtype=np.complex128) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_complex_swt_d(&data[0], data_size, wavelet.w, * &cD[0], output_len, i) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L15; } __pyx_L15:; } } /* "pywt/_extensions/_swt.pyx":106 * retval = c_wt.double_complex_swt_d(&data[0], data_size, wavelet.w, * &cD[0], output_len, i) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C swt failed.") * elif cdata_t is np.complex64_t: */ __pyx_t_3 = ((__pyx_v_retval < 0) != 0); if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":107 * &cD[0], output_len, i) * if retval < 0: * raise RuntimeError("C swt failed.") # <<<<<<<<<<<<<< * elif cdata_t is np.complex64_t: * cD = np.zeros(output_len, dtype=np.complex64) */ __pyx_t_10 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_Raise(__pyx_t_10, 0, 0, 0); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __PYX_ERR(0, 107, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":106 * retval = c_wt.double_complex_swt_d(&data[0], data_size, wavelet.w, * &cD[0], output_len, i) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C swt failed.") * elif cdata_t is np.complex64_t: */ } /* "pywt/_extensions/_swt.pyx":133 * IF HAVE_C99_CPLX: * if cdata_t is np.complex128_t: * cA = np.zeros(output_len, dtype=np.complex128) # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.double_complex_swt_a(&data[0], data_size, wavelet.w, */ __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyInt_FromSize_t(__pyx_v_output_len); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_complex128); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_double_complex(__pyx_t_9, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __PYX_XDEC_MEMVIEW(&__pyx_v_cA, 1); __pyx_v_cA = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL; /* "pywt/_extensions/_swt.pyx":134 * if cdata_t is np.complex128_t: * cA = np.zeros(output_len, dtype=np.complex128) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_complex_swt_a(&data[0], data_size, wavelet.w, * &cA[0], output_len, i) */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_swt.pyx":135 * cA = np.zeros(output_len, dtype=np.complex128) * with nogil: * retval = c_wt.double_complex_swt_a(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &cA[0], output_len, i) * if retval < 0: */ __pyx_t_14 = 0; /* "pywt/_extensions/_swt.pyx":136 * with nogil: * retval = c_wt.double_complex_swt_a(&data[0], data_size, wavelet.w, * &cA[0], output_len, i) # <<<<<<<<<<<<<< * if retval < 0: * raise RuntimeError("C swt failed.") */ __pyx_t_15 = 0; /* "pywt/_extensions/_swt.pyx":135 * cA = np.zeros(output_len, dtype=np.complex128) * with nogil: * retval = c_wt.double_complex_swt_a(&data[0], data_size, wavelet.w, # <<<<<<<<<<<<<< * &cA[0], output_len, i) * if retval < 0: */ __pyx_v_retval = double_complex_swt_a((&(*((__pyx_t_double_complex *) ( /* dim=0 */ ((char *) (((__pyx_t_double_complex *) __pyx_v_data.data) + __pyx_t_14)) )))), __pyx_v_data_size, __pyx_v_wavelet->w, (&(*((__pyx_t_double_complex *) ( /* dim=0 */ ((char *) (((__pyx_t_double_complex *) __pyx_v_cA.data) + __pyx_t_15)) )))), __pyx_v_output_len, __pyx_v_i); } /* "pywt/_extensions/_swt.pyx":134 * if cdata_t is np.complex128_t: * cA = np.zeros(output_len, dtype=np.complex128) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_complex_swt_a(&data[0], data_size, wavelet.w, * &cA[0], output_len, i) */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L21; } __pyx_L21:; } } /* "pywt/_extensions/_swt.pyx":137 * retval = c_wt.double_complex_swt_a(&data[0], data_size, wavelet.w, * &cA[0], output_len, i) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C swt failed.") * elif cdata_t is np.complex64_t: */ __pyx_t_3 = ((__pyx_v_retval < 0) != 0); if (unlikely(__pyx_t_3)) { /* "pywt/_extensions/_swt.pyx":138 * &cA[0], output_len, i) * if retval < 0: * raise RuntimeError("C swt failed.") # <<<<<<<<<<<<<< * elif cdata_t is np.complex64_t: * cA = np.zeros(output_len, dtype=np.complex64) */ __pyx_t_9 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_Raise(__pyx_t_9, 0, 0, 0); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __PYX_ERR(0, 138, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":137 * retval = c_wt.double_complex_swt_a(&data[0], data_size, wavelet.w, * &cA[0], output_len, i) * if retval < 0: # <<<<<<<<<<<<<< * raise RuntimeError("C swt failed.") * elif cdata_t is np.complex64_t: */ } /* "pywt/_extensions/_swt.pyx":147 * raise RuntimeError("C swt failed.") * * data = cA # <<<<<<<<<<<<<< * if not trim_approx: * ret.append((np.asarray(cA), np.asarray(cD))) */ __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __PYX_INC_MEMVIEW(&__pyx_v_cA, 0); __pyx_v_data = __pyx_v_cA; /* "pywt/_extensions/_swt.pyx":148 * * data = cA * if not trim_approx: # <<<<<<<<<<<<<< * ret.append((np.asarray(cA), np.asarray(cD))) * else: */ __pyx_t_3 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_trim_approx)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 148, __pyx_L1_error) __pyx_t_16 = ((!__pyx_t_3) != 0); if (__pyx_t_16) { /* "pywt/_extensions/_swt.pyx":149 * data = cA * if not trim_approx: * ret.append((np.asarray(cA), np.asarray(cD))) # <<<<<<<<<<<<<< * else: * ret.append(np.asarray(cD)) */ __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_asarray); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __pyx_memoryview_fromslice(__pyx_v_cA, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_double_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_double_complex, 0);; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_9 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_2, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_10); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_asarray); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __pyx_memoryview_fromslice(__pyx_v_cD, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_double_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_double_complex, 0);; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_8 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_10); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_8); __pyx_t_9 = 0; __pyx_t_8 = 0; __pyx_t_17 = __Pyx_PyList_Append(__pyx_v_ret, __pyx_t_2); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_swt.pyx":148 * * data = cA * if not trim_approx: # <<<<<<<<<<<<<< * ret.append((np.asarray(cA), np.asarray(cD))) * else: */ goto __pyx_L23; } /* "pywt/_extensions/_swt.pyx":151 * ret.append((np.asarray(cA), np.asarray(cD))) * else: * ret.append(np.asarray(cD)) # <<<<<<<<<<<<<< * * if trim_approx: */ /*else*/ { __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_asarray); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __pyx_memoryview_fromslice(__pyx_v_cD, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_double_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_double_complex, 0);; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_2 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_10, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_8); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_17 = __Pyx_PyList_Append(__pyx_v_ret, __pyx_t_2); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_L23:; } /* "pywt/_extensions/_swt.pyx":153 * ret.append(np.asarray(cD)) * * if trim_approx: # <<<<<<<<<<<<<< * ret.append(np.asarray(cA)) * ret.reverse() */ __pyx_t_16 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_trim_approx)); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 153, __pyx_L1_error) if (__pyx_t_16) { /* "pywt/_extensions/_swt.pyx":154 * * if trim_approx: * ret.append(np.asarray(cA)) # <<<<<<<<<<<<<< * ret.reverse() * return ret */ __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_asarray); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_v_cA.memview)) { __Pyx_RaiseUnboundLocalError("cA"); __PYX_ERR(0, 154, __pyx_L1_error) } __pyx_t_9 = __pyx_memoryview_fromslice(__pyx_v_cA, 1, (PyObject *(*)(char *)) __pyx_memview_get___pyx_t_double_complex, (int (*)(char *, PyObject *)) __pyx_memview_set___pyx_t_double_complex, 0);; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_2 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_10, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_17 = __Pyx_PyList_Append(__pyx_v_ret, __pyx_t_2); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_swt.pyx":153 * ret.append(np.asarray(cD)) * * if trim_approx: # <<<<<<<<<<<<<< * ret.append(np.asarray(cA)) * ret.reverse() */ } /* "pywt/_extensions/_swt.pyx":155 * if trim_approx: * ret.append(np.asarray(cA)) * ret.reverse() # <<<<<<<<<<<<<< * return ret * */ __pyx_t_17 = PyList_Reverse(__pyx_v_ret); if (unlikely(__pyx_t_17 == ((int)-1))) __PYX_ERR(0, 155, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":156 * ret.append(np.asarray(cA)) * ret.reverse() * return ret # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_ret); __pyx_r = __pyx_v_ret; goto __pyx_L0; /* "pywt/_extensions/_swt.pyx":52 * * * def swt(cdata_t[::1] data, Wavelet wavelet, size_t level, size_t start_level, # <<<<<<<<<<<<<< * bool trim_approx=False): * cdef cdata_t[::1] cA, cD */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __PYX_XDEC_MEMVIEW(&__pyx_t_11, 1); __Pyx_AddTraceback("pywt._extensions._swt.swt", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __PYX_XDEC_MEMVIEW(&__pyx_v_cA, 1); __PYX_XDEC_MEMVIEW(&__pyx_v_cD, 1); __Pyx_XDECREF(__pyx_v_msg); __Pyx_XDECREF(__pyx_v_ret); __PYX_XDEC_MEMVIEW(&__pyx_v_data, 1); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pywt/_extensions/_swt.pyx":159 * * * cpdef swt_axis(np.ndarray data, Wavelet wavelet, size_t level, # <<<<<<<<<<<<<< * size_t start_level, unsigned int axis=0, * bool trim_approx=False): */ static PyObject *__pyx_pw_4pywt_11_extensions_4_swt_5swt_axis(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_f_4pywt_11_extensions_4_swt_swt_axis(PyArrayObject *__pyx_v_data, struct WaveletObject *__pyx_v_wavelet, size_t __pyx_v_level, size_t __pyx_v_start_level, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_4pywt_11_extensions_4_swt_swt_axis *__pyx_optional_args) { unsigned int __pyx_v_axis = ((unsigned int)0); /* "pywt/_extensions/_swt.pyx":161 * cpdef swt_axis(np.ndarray data, Wavelet wavelet, size_t level, * size_t start_level, unsigned int axis=0, * bool trim_approx=False): # <<<<<<<<<<<<<< * # memory-views do not support n-dimensional arrays, use np.ndarray instead * cdef common.ArrayInfo data_info, output_info */ PyBoolObject *__pyx_v_trim_approx = ((PyBoolObject *)Py_False); ArrayInfo __pyx_v_data_info; ArrayInfo __pyx_v_output_info; PyArrayObject *__pyx_v_cD = 0; PyArrayObject *__pyx_v_cA = 0; __Pyx_memviewslice __pyx_v_output_shape = { 0, 0, { 0 }, { 0 }, { 0 } }; size_t __pyx_v_end_level; int __pyx_v_retval; size_t __pyx_v_i; PyObject *__pyx_v_msg = NULL; PyObject *__pyx_v_ret = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; size_t *__pyx_t_6; struct __pyx_array_obj *__pyx_t_7 = NULL; __Pyx_memviewslice __pyx_t_8 = { 0, 0, { 0 }, { 0 }, { 0 } }; int __pyx_t_9; size_t __pyx_t_10; size_t __pyx_t_11; size_t __pyx_t_12; PyObject *__pyx_t_13 = NULL; int __pyx_t_14; int __pyx_t_15; __Pyx_RefNannySetupContext("swt_axis", 0); if (__pyx_optional_args) { if (__pyx_optional_args->__pyx_n > 0) { __pyx_v_axis = __pyx_optional_args->axis; if (__pyx_optional_args->__pyx_n > 1) { __pyx_v_trim_approx = __pyx_optional_args->trim_approx; } } } __Pyx_INCREF((PyObject *)__pyx_v_data); /* "pywt/_extensions/_swt.pyx":166 * cdef np.ndarray cD, cA * cdef size_t[::1] output_shape * cdef size_t end_level = start_level + level # <<<<<<<<<<<<<< * cdef int retval = -5 * cdef size_t i */ __pyx_v_end_level = (__pyx_v_start_level + __pyx_v_level); /* "pywt/_extensions/_swt.pyx":167 * cdef size_t[::1] output_shape * cdef size_t end_level = start_level + level * cdef int retval = -5 # <<<<<<<<<<<<<< * cdef size_t i * */ __pyx_v_retval = -5; /* "pywt/_extensions/_swt.pyx":170 * cdef size_t i * * if data.shape[axis] % 2: # <<<<<<<<<<<<<< * raise ValueError("Length of data must be even along the transform axis.") * if data.shape[axis] < 1: */ __pyx_t_1 = (__Pyx_mod_long((__pyx_v_data->dimensions[__pyx_v_axis]), 2) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_swt.pyx":171 * * if data.shape[axis] % 2: * raise ValueError("Length of data must be even along the transform axis.") # <<<<<<<<<<<<<< * if data.shape[axis] < 1: * raise ValueError("Data must have non-zero size along the transform axis.") */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 171, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":170 * cdef size_t i * * if data.shape[axis] % 2: # <<<<<<<<<<<<<< * raise ValueError("Length of data must be even along the transform axis.") * if data.shape[axis] < 1: */ } /* "pywt/_extensions/_swt.pyx":172 * if data.shape[axis] % 2: * raise ValueError("Length of data must be even along the transform axis.") * if data.shape[axis] < 1: # <<<<<<<<<<<<<< * raise ValueError("Data must have non-zero size along the transform axis.") * */ __pyx_t_1 = (((__pyx_v_data->dimensions[__pyx_v_axis]) < 1) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_swt.pyx":173 * raise ValueError("Length of data must be even along the transform axis.") * if data.shape[axis] < 1: * raise ValueError("Data must have non-zero size along the transform axis.") # <<<<<<<<<<<<<< * * if level < 1: */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 173, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":172 * if data.shape[axis] % 2: * raise ValueError("Length of data must be even along the transform axis.") * if data.shape[axis] < 1: # <<<<<<<<<<<<<< * raise ValueError("Data must have non-zero size along the transform axis.") * */ } /* "pywt/_extensions/_swt.pyx":175 * raise ValueError("Data must have non-zero size along the transform axis.") * * if level < 1: # <<<<<<<<<<<<<< * raise ValueError("Level value must be greater than zero.") * if start_level >= common.swt_max_level(data.shape[axis]): */ __pyx_t_1 = ((__pyx_v_level < 1) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_swt.pyx":176 * * if level < 1: * raise ValueError("Level value must be greater than zero.") # <<<<<<<<<<<<<< * if start_level >= common.swt_max_level(data.shape[axis]): * raise ValueError("start_level must be less than %d." % */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 176, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":175 * raise ValueError("Data must have non-zero size along the transform axis.") * * if level < 1: # <<<<<<<<<<<<<< * raise ValueError("Level value must be greater than zero.") * if start_level >= common.swt_max_level(data.shape[axis]): */ } /* "pywt/_extensions/_swt.pyx":177 * if level < 1: * raise ValueError("Level value must be greater than zero.") * if start_level >= common.swt_max_level(data.shape[axis]): # <<<<<<<<<<<<<< * raise ValueError("start_level must be less than %d." % * common.swt_max_level(data.shape[axis])) */ __pyx_t_1 = ((__pyx_v_start_level >= swt_max_level((__pyx_v_data->dimensions[__pyx_v_axis]))) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_swt.pyx":179 * if start_level >= common.swt_max_level(data.shape[axis]): * raise ValueError("start_level must be less than %d." % * common.swt_max_level(data.shape[axis])) # <<<<<<<<<<<<<< * * if end_level > common.swt_max_level(data.shape[axis]): */ __pyx_t_2 = __Pyx_PyInt_From_unsigned_char(swt_max_level((__pyx_v_data->dimensions[__pyx_v_axis]))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); /* "pywt/_extensions/_swt.pyx":178 * raise ValueError("Level value must be greater than zero.") * if start_level >= common.swt_max_level(data.shape[axis]): * raise ValueError("start_level must be less than %d." % # <<<<<<<<<<<<<< * common.swt_max_level(data.shape[axis])) * */ __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_start_level_must_be_less_than_d, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 178, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":177 * if level < 1: * raise ValueError("Level value must be greater than zero.") * if start_level >= common.swt_max_level(data.shape[axis]): # <<<<<<<<<<<<<< * raise ValueError("start_level must be less than %d." % * common.swt_max_level(data.shape[axis])) */ } /* "pywt/_extensions/_swt.pyx":181 * common.swt_max_level(data.shape[axis])) * * if end_level > common.swt_max_level(data.shape[axis]): # <<<<<<<<<<<<<< * msg = ("Level value too high (max level for current data size and " * "start_level is %d)." % ( */ __pyx_t_1 = ((__pyx_v_end_level > swt_max_level((__pyx_v_data->dimensions[__pyx_v_axis]))) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_swt.pyx":184 * msg = ("Level value too high (max level for current data size and " * "start_level is %d)." % ( * common.swt_max_level(data.shape[axis]) - start_level)) # <<<<<<<<<<<<<< * raise ValueError(msg) * */ __pyx_t_2 = __Pyx_PyInt_FromSize_t((swt_max_level((__pyx_v_data->dimensions[__pyx_v_axis])) - __pyx_v_start_level)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); /* "pywt/_extensions/_swt.pyx":183 * if end_level > common.swt_max_level(data.shape[axis]): * msg = ("Level value too high (max level for current data size and " * "start_level is %d)." % ( # <<<<<<<<<<<<<< * common.swt_max_level(data.shape[axis]) - start_level)) * raise ValueError(msg) */ __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_Level_value_too_high_max_level_f, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 183, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_msg = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/_swt.pyx":185 * "start_level is %d)." % ( * common.swt_max_level(data.shape[axis]) - start_level)) * raise ValueError(msg) # <<<<<<<<<<<<<< * * data = data.astype(_check_dtype(data), copy=False) */ __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_v_msg); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 185, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":181 * common.swt_max_level(data.shape[axis])) * * if end_level > common.swt_max_level(data.shape[axis]): # <<<<<<<<<<<<<< * msg = ("Level value too high (max level for current data size and " * "start_level is %d)." % ( */ } /* "pywt/_extensions/_swt.pyx":187 * raise ValueError(msg) * * data = data.astype(_check_dtype(data), copy=False) # <<<<<<<<<<<<<< * # For SWT, the output matches the shape of the input * output_shape = data.shape */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_data), __pyx_n_s_astype); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = ((PyObject *)__pyx_f_4pywt_11_extensions_5_pywt__check_dtype(((PyObject *)__pyx_v_data), 0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_copy, Py_False) < 0) __PYX_ERR(0, 187, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 187, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 187, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_data, ((PyArrayObject *)__pyx_t_5)); __pyx_t_5 = 0; /* "pywt/_extensions/_swt.pyx":189 * data = data.astype(_check_dtype(data), copy=False) * # For SWT, the output matches the shape of the input * output_shape = data.shape # <<<<<<<<<<<<<< * * data_info.ndim = data.ndim */ __pyx_t_6 = ((size_t *)__pyx_v_data->dimensions); if (!__pyx_t_6) { PyErr_SetString(PyExc_ValueError,"Cannot create cython.array from NULL pointer"); __PYX_ERR(0, 189, __pyx_L1_error) } __pyx_t_2 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_size_t); __pyx_t_5 = Py_BuildValue((char*) "(" __PYX_BUILD_PY_SSIZE_T ")", ((Py_ssize_t)__pyx_v_data->nd)); if (unlikely(!__pyx_t_2 || !__pyx_t_5 || !PyBytes_AsString(__pyx_t_2))) __PYX_ERR(0, 189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = __pyx_array_new(__pyx_t_5, sizeof(size_t), PyBytes_AS_STRING(__pyx_t_2), (char *) "c", (char *) __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc_size_t(((PyObject *)__pyx_t_7), PyBUF_WRITABLE); if (unlikely(!__pyx_t_8.memview)) __PYX_ERR(0, 189, __pyx_L1_error) __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0; __pyx_v_output_shape = __pyx_t_8; __pyx_t_8.memview = NULL; __pyx_t_8.data = NULL; /* "pywt/_extensions/_swt.pyx":191 * output_shape = data.shape * * data_info.ndim = data.ndim # <<<<<<<<<<<<<< * data_info.strides = data.strides * data_info.shape = data.shape */ __pyx_t_9 = __pyx_v_data->nd; __pyx_v_data_info.ndim = __pyx_t_9; /* "pywt/_extensions/_swt.pyx":192 * * data_info.ndim = data.ndim * data_info.strides = data.strides # <<<<<<<<<<<<<< * data_info.shape = data.shape * */ __pyx_v_data_info.strides = ((pywt_index_t *)__pyx_v_data->strides); /* "pywt/_extensions/_swt.pyx":193 * data_info.ndim = data.ndim * data_info.strides = data.strides * data_info.shape = data.shape # <<<<<<<<<<<<<< * * output_info.ndim = data.ndim */ __pyx_v_data_info.shape = ((size_t *)__pyx_v_data->dimensions); /* "pywt/_extensions/_swt.pyx":195 * data_info.shape = data.shape * * output_info.ndim = data.ndim # <<<<<<<<<<<<<< * * ret = [] */ __pyx_t_9 = __pyx_v_data->nd; __pyx_v_output_info.ndim = __pyx_t_9; /* "pywt/_extensions/_swt.pyx":197 * output_info.ndim = data.ndim * * ret = [] # <<<<<<<<<<<<<< * for i in range(start_level+1, end_level+1): * cA = np.empty(output_shape, dtype=data.dtype) */ __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_ret = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_swt.pyx":198 * * ret = [] * for i in range(start_level+1, end_level+1): # <<<<<<<<<<<<<< * cA = np.empty(output_shape, dtype=data.dtype) * cD = np.empty(output_shape, dtype=data.dtype) */ __pyx_t_10 = (__pyx_v_end_level + 1); __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = (__pyx_v_start_level + 1); __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_i = __pyx_t_12; /* "pywt/_extensions/_swt.pyx":199 * ret = [] * for i in range(start_level+1, end_level+1): * cA = np.empty(output_shape, dtype=data.dtype) # <<<<<<<<<<<<<< * cD = np.empty(output_shape, dtype=data.dtype) * # strides won't match data_info.strides if data is not C-contiguous */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_output_shape, 1, (PyObject *(*)(char *)) __pyx_memview_get_size_t, (int (*)(char *, PyObject *)) __pyx_memview_set_size_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_data), __pyx_n_s_dtype); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_3) < 0) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 199, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_cA, ((PyArrayObject *)__pyx_t_3)); __pyx_t_3 = 0; /* "pywt/_extensions/_swt.pyx":200 * for i in range(start_level+1, end_level+1): * cA = np.empty(output_shape, dtype=data.dtype) * cD = np.empty(output_shape, dtype=data.dtype) # <<<<<<<<<<<<<< * # strides won't match data_info.strides if data is not C-contiguous * output_info.strides = cA.strides */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_output_shape, 1, (PyObject *(*)(char *)) __pyx_memview_get_size_t, (int (*)(char *, PyObject *)) __pyx_memview_set_size_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_data), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 200, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 200, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_cD, ((PyArrayObject *)__pyx_t_5)); __pyx_t_5 = 0; /* "pywt/_extensions/_swt.pyx":202 * cD = np.empty(output_shape, dtype=data.dtype) * # strides won't match data_info.strides if data is not C-contiguous * output_info.strides = cA.strides # <<<<<<<<<<<<<< * output_info.shape = cA.shape * if data.dtype == np.float64: */ __pyx_v_output_info.strides = ((pywt_index_t *)__pyx_v_cA->strides); /* "pywt/_extensions/_swt.pyx":203 * # strides won't match data_info.strides if data is not C-contiguous * output_info.strides = cA.strides * output_info.shape = cA.shape # <<<<<<<<<<<<<< * if data.dtype == np.float64: * with nogil: */ __pyx_v_output_info.shape = ((size_t *)__pyx_v_cA->dimensions); /* "pywt/_extensions/_swt.pyx":204 * output_info.strides = cA.strides * output_info.shape = cA.shape * if data.dtype == np.float64: # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.double_downcoef_axis( */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_data), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_float64); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyObject_RichCompare(__pyx_t_5, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 204, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 204, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_1) { /* "pywt/_extensions/_swt.pyx":205 * output_info.shape = cA.shape * if data.dtype == np.float64: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_downcoef_axis( * data.data, data_info, */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_swt.pyx":206 * if data.dtype == np.float64: * with nogil: * retval = c_wt.double_downcoef_axis( # <<<<<<<<<<<<<< * data.data, data_info, * cA.data, output_info, */ __pyx_v_retval = double_downcoef_axis(((double *)__pyx_v_data->data), __pyx_v_data_info, ((double *)__pyx_v_cA->data), __pyx_v_output_info, __pyx_v_wavelet->w, __pyx_v_axis, COEF_APPROX, MODE_PERIODIZATION, __pyx_v_i, SWT_TRANSFORM); } /* "pywt/_extensions/_swt.pyx":205 * output_info.shape = cA.shape * if data.dtype == np.float64: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_downcoef_axis( * data.data, data_info, */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L15; } __pyx_L15:; } } /* "pywt/_extensions/_swt.pyx":212 * common.COEF_APPROX, common.MODE_PERIODIZATION, * i, common.SWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError( * "C wavelet transform failed with error code %d" % retval) */ __pyx_t_1 = (__pyx_v_retval != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_swt.pyx":214 * if retval: * raise RuntimeError( * "C wavelet transform failed with error code %d" % retval) # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.double_downcoef_axis( */ __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_retval); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyUnicode_Format(__pyx_kp_u_C_wavelet_transform_failed_with, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/_swt.pyx":213 * i, common.SWT_TRANSFORM) * if retval: * raise RuntimeError( # <<<<<<<<<<<<<< * "C wavelet transform failed with error code %d" % retval) * with nogil: */ __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 213, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":212 * common.COEF_APPROX, common.MODE_PERIODIZATION, * i, common.SWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError( * "C wavelet transform failed with error code %d" % retval) */ } /* "pywt/_extensions/_swt.pyx":215 * raise RuntimeError( * "C wavelet transform failed with error code %d" % retval) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_downcoef_axis( * data.data, data_info, */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_swt.pyx":216 * "C wavelet transform failed with error code %d" % retval) * with nogil: * retval = c_wt.double_downcoef_axis( # <<<<<<<<<<<<<< * data.data, data_info, * cD.data, output_info, */ __pyx_v_retval = double_downcoef_axis(((double *)__pyx_v_data->data), __pyx_v_data_info, ((double *)__pyx_v_cD->data), __pyx_v_output_info, __pyx_v_wavelet->w, __pyx_v_axis, COEF_DETAIL, MODE_PERIODIZATION, __pyx_v_i, SWT_TRANSFORM); } /* "pywt/_extensions/_swt.pyx":215 * raise RuntimeError( * "C wavelet transform failed with error code %d" % retval) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_downcoef_axis( * data.data, data_info, */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L21; } __pyx_L21:; } } /* "pywt/_extensions/_swt.pyx":222 * common.COEF_DETAIL, common.MODE_PERIODIZATION, * i, common.SWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError( * "C wavelet transform failed with error code %d" % retval) */ __pyx_t_1 = (__pyx_v_retval != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_swt.pyx":224 * if retval: * raise RuntimeError( * "C wavelet transform failed with error code %d" % retval) # <<<<<<<<<<<<<< * elif data.dtype == np.float32: * with nogil: */ __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_retval); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyUnicode_Format(__pyx_kp_u_C_wavelet_transform_failed_with, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 224, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/_swt.pyx":223 * i, common.SWT_TRANSFORM) * if retval: * raise RuntimeError( # <<<<<<<<<<<<<< * "C wavelet transform failed with error code %d" % retval) * elif data.dtype == np.float32: */ __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 223, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":222 * common.COEF_DETAIL, common.MODE_PERIODIZATION, * i, common.SWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError( * "C wavelet transform failed with error code %d" % retval) */ } /* "pywt/_extensions/_swt.pyx":204 * output_info.strides = cA.strides * output_info.shape = cA.shape * if data.dtype == np.float64: # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.double_downcoef_axis( */ goto __pyx_L10; } /* "pywt/_extensions/_swt.pyx":225 * raise RuntimeError( * "C wavelet transform failed with error code %d" % retval) * elif data.dtype == np.float32: # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.float_downcoef_axis( */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_data), __pyx_n_s_dtype); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_float32); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_1) { /* "pywt/_extensions/_swt.pyx":226 * "C wavelet transform failed with error code %d" % retval) * elif data.dtype == np.float32: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_downcoef_axis( * data.data, data_info, */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_swt.pyx":227 * elif data.dtype == np.float32: * with nogil: * retval = c_wt.float_downcoef_axis( # <<<<<<<<<<<<<< * data.data, data_info, * cA.data, output_info, */ __pyx_v_retval = float_downcoef_axis(((float *)__pyx_v_data->data), __pyx_v_data_info, ((float *)__pyx_v_cA->data), __pyx_v_output_info, __pyx_v_wavelet->w, __pyx_v_axis, COEF_APPROX, MODE_PERIODIZATION, __pyx_v_i, SWT_TRANSFORM); } /* "pywt/_extensions/_swt.pyx":226 * "C wavelet transform failed with error code %d" % retval) * elif data.dtype == np.float32: * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_downcoef_axis( * data.data, data_info, */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L27; } __pyx_L27:; } } /* "pywt/_extensions/_swt.pyx":233 * common.COEF_APPROX, common.MODE_PERIODIZATION, * i, common.SWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError( * "C wavelet transform failed with error code %d" % retval) */ __pyx_t_1 = (__pyx_v_retval != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_swt.pyx":235 * if retval: * raise RuntimeError( * "C wavelet transform failed with error code %d" % retval) # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.float_downcoef_axis( */ __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_retval); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyUnicode_Format(__pyx_kp_u_C_wavelet_transform_failed_with, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "pywt/_extensions/_swt.pyx":234 * i, common.SWT_TRANSFORM) * if retval: * raise RuntimeError( # <<<<<<<<<<<<<< * "C wavelet transform failed with error code %d" % retval) * with nogil: */ __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(0, 234, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":233 * common.COEF_APPROX, common.MODE_PERIODIZATION, * i, common.SWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError( * "C wavelet transform failed with error code %d" % retval) */ } /* "pywt/_extensions/_swt.pyx":236 * raise RuntimeError( * "C wavelet transform failed with error code %d" % retval) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_downcoef_axis( * data.data, data_info, */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_swt.pyx":237 * "C wavelet transform failed with error code %d" % retval) * with nogil: * retval = c_wt.float_downcoef_axis( # <<<<<<<<<<<<<< * data.data, data_info, * cD.data, output_info, */ __pyx_v_retval = float_downcoef_axis(((float *)__pyx_v_data->data), __pyx_v_data_info, ((float *)__pyx_v_cD->data), __pyx_v_output_info, __pyx_v_wavelet->w, __pyx_v_axis, COEF_DETAIL, MODE_PERIODIZATION, __pyx_v_i, SWT_TRANSFORM); } /* "pywt/_extensions/_swt.pyx":236 * raise RuntimeError( * "C wavelet transform failed with error code %d" % retval) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_downcoef_axis( * data.data, data_info, */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L33; } __pyx_L33:; } } /* "pywt/_extensions/_swt.pyx":243 * common.COEF_DETAIL, common.MODE_PERIODIZATION, * i, common.SWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError( * "C wavelet transform failed with error code %d" % retval) */ __pyx_t_1 = (__pyx_v_retval != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_swt.pyx":245 * if retval: * raise RuntimeError( * "C wavelet transform failed with error code %d" % retval) # <<<<<<<<<<<<<< * * IF HAVE_C99_CPLX: */ __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_retval); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyUnicode_Format(__pyx_kp_u_C_wavelet_transform_failed_with, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 245, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "pywt/_extensions/_swt.pyx":244 * i, common.SWT_TRANSFORM) * if retval: * raise RuntimeError( # <<<<<<<<<<<<<< * "C wavelet transform failed with error code %d" % retval) * */ __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 244, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(0, 244, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":243 * common.COEF_DETAIL, common.MODE_PERIODIZATION, * i, common.SWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError( * "C wavelet transform failed with error code %d" % retval) */ } /* "pywt/_extensions/_swt.pyx":225 * raise RuntimeError( * "C wavelet transform failed with error code %d" % retval) * elif data.dtype == np.float32: # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.float_downcoef_axis( */ } __pyx_L10:; /* "pywt/_extensions/_swt.pyx":248 * * IF HAVE_C99_CPLX: * if data.dtype == np.complex128: # <<<<<<<<<<<<<< * cA = np.zeros(output_shape, dtype=np.complex128) * with nogil: */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_data), __pyx_n_s_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_complex128); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_RichCompare(__pyx_t_4, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 248, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 248, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_1) { /* "pywt/_extensions/_swt.pyx":249 * IF HAVE_C99_CPLX: * if data.dtype == np.complex128: * cA = np.zeros(output_shape, dtype=np.complex128) # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.double_complex_downcoef_axis( */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_v_output_shape, 1, (PyObject *(*)(char *)) __pyx_memview_get_size_t, (int (*)(char *, PyObject *)) __pyx_memview_set_size_t, 0);; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_complex128); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_13) < 0) __PYX_ERR(0, 249, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 249, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_cA, ((PyArrayObject *)__pyx_t_13)); __pyx_t_13 = 0; /* "pywt/_extensions/_swt.pyx":250 * if data.dtype == np.complex128: * cA = np.zeros(output_shape, dtype=np.complex128) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_complex_downcoef_axis( * data.data, data_info, */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_swt.pyx":251 * cA = np.zeros(output_shape, dtype=np.complex128) * with nogil: * retval = c_wt.double_complex_downcoef_axis( # <<<<<<<<<<<<<< * data.data, data_info, * cA.data, output_info, */ __pyx_v_retval = double_complex_downcoef_axis(((__pyx_t_double_complex *)__pyx_v_data->data), __pyx_v_data_info, ((__pyx_t_double_complex *)__pyx_v_cA->data), __pyx_v_output_info, __pyx_v_wavelet->w, __pyx_v_axis, COEF_APPROX, MODE_PERIODIZATION, __pyx_v_i, SWT_TRANSFORM); } /* "pywt/_extensions/_swt.pyx":250 * if data.dtype == np.complex128: * cA = np.zeros(output_shape, dtype=np.complex128) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_complex_downcoef_axis( * data.data, data_info, */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L40; } __pyx_L40:; } } /* "pywt/_extensions/_swt.pyx":257 * common.COEF_APPROX, common.MODE_PERIODIZATION, * i, common.SWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError( * "C wavelet transform failed with error code %d" % */ __pyx_t_1 = (__pyx_v_retval != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_swt.pyx":260 * raise RuntimeError( * "C wavelet transform failed with error code %d" % * retval) # <<<<<<<<<<<<<< * cD = np.zeros(output_shape, dtype=np.complex128) * with nogil: */ __pyx_t_13 = __Pyx_PyInt_From_int(__pyx_v_retval); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); /* "pywt/_extensions/_swt.pyx":259 * if retval: * raise RuntimeError( * "C wavelet transform failed with error code %d" % # <<<<<<<<<<<<<< * retval) * cD = np.zeros(output_shape, dtype=np.complex128) */ __pyx_t_5 = PyUnicode_Format(__pyx_kp_u_C_wavelet_transform_failed_with, __pyx_t_13); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; /* "pywt/_extensions/_swt.pyx":258 * i, common.SWT_TRANSFORM) * if retval: * raise RuntimeError( # <<<<<<<<<<<<<< * "C wavelet transform failed with error code %d" % * retval) */ __pyx_t_13 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_Raise(__pyx_t_13, 0, 0, 0); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __PYX_ERR(0, 258, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":257 * common.COEF_APPROX, common.MODE_PERIODIZATION, * i, common.SWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError( * "C wavelet transform failed with error code %d" % */ } /* "pywt/_extensions/_swt.pyx":261 * "C wavelet transform failed with error code %d" % * retval) * cD = np.zeros(output_shape, dtype=np.complex128) # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.double_complex_downcoef_axis( */ __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_np); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_output_shape, 1, (PyObject *(*)(char *)) __pyx_memview_get_size_t, (int (*)(char *, PyObject *)) __pyx_memview_set_size_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_complex128); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_dtype, __pyx_t_2) < 0) __PYX_ERR(0, 261, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, __pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 261, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_cD, ((PyArrayObject *)__pyx_t_2)); __pyx_t_2 = 0; /* "pywt/_extensions/_swt.pyx":262 * retval) * cD = np.zeros(output_shape, dtype=np.complex128) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_complex_downcoef_axis( * data.data, data_info, */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_swt.pyx":263 * cD = np.zeros(output_shape, dtype=np.complex128) * with nogil: * retval = c_wt.double_complex_downcoef_axis( # <<<<<<<<<<<<<< * data.data, data_info, * cD.data, output_info, */ __pyx_v_retval = double_complex_downcoef_axis(((__pyx_t_double_complex *)__pyx_v_data->data), __pyx_v_data_info, ((__pyx_t_double_complex *)__pyx_v_cD->data), __pyx_v_output_info, __pyx_v_wavelet->w, __pyx_v_axis, COEF_DETAIL, MODE_PERIODIZATION, __pyx_v_i, SWT_TRANSFORM); } /* "pywt/_extensions/_swt.pyx":262 * retval) * cD = np.zeros(output_shape, dtype=np.complex128) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.double_complex_downcoef_axis( * data.data, data_info, */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L46; } __pyx_L46:; } } /* "pywt/_extensions/_swt.pyx":269 * common.COEF_DETAIL, common.MODE_PERIODIZATION, * i, common.SWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError( * "C wavelet transform failed with error code %d" % */ __pyx_t_1 = (__pyx_v_retval != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_swt.pyx":272 * raise RuntimeError( * "C wavelet transform failed with error code %d" % * retval) # <<<<<<<<<<<<<< * elif data.dtype == np.complex64: * cA = np.zeros(output_shape, dtype=np.complex64) */ __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_retval); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); /* "pywt/_extensions/_swt.pyx":271 * if retval: * raise RuntimeError( * "C wavelet transform failed with error code %d" % # <<<<<<<<<<<<<< * retval) * elif data.dtype == np.complex64: */ __pyx_t_13 = PyUnicode_Format(__pyx_kp_u_C_wavelet_transform_failed_with, __pyx_t_2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_swt.pyx":270 * i, common.SWT_TRANSFORM) * if retval: * raise RuntimeError( # <<<<<<<<<<<<<< * "C wavelet transform failed with error code %d" % * retval) */ __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 270, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":269 * common.COEF_DETAIL, common.MODE_PERIODIZATION, * i, common.SWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError( * "C wavelet transform failed with error code %d" % */ } /* "pywt/_extensions/_swt.pyx":248 * * IF HAVE_C99_CPLX: * if data.dtype == np.complex128: # <<<<<<<<<<<<<< * cA = np.zeros(output_shape, dtype=np.complex128) * with nogil: */ goto __pyx_L35; } /* "pywt/_extensions/_swt.pyx":273 * "C wavelet transform failed with error code %d" % * retval) * elif data.dtype == np.complex64: # <<<<<<<<<<<<<< * cA = np.zeros(output_shape, dtype=np.complex64) * with nogil: */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_data), __pyx_n_s_dtype); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_np); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_complex64); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (__pyx_t_1) { /* "pywt/_extensions/_swt.pyx":274 * retval) * elif data.dtype == np.complex64: * cA = np.zeros(output_shape, dtype=np.complex64) # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.float_complex_downcoef_axis( */ __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_np); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_output_shape, 1, (PyObject *(*)(char *)) __pyx_memview_get_size_t, (int (*)(char *, PyObject *)) __pyx_memview_set_size_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_complex64); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_dtype, __pyx_t_3) < 0) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, __pyx_t_13); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_cA, ((PyArrayObject *)__pyx_t_3)); __pyx_t_3 = 0; /* "pywt/_extensions/_swt.pyx":275 * elif data.dtype == np.complex64: * cA = np.zeros(output_shape, dtype=np.complex64) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_complex_downcoef_axis( * data.data, data_info, */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_swt.pyx":276 * cA = np.zeros(output_shape, dtype=np.complex64) * with nogil: * retval = c_wt.float_complex_downcoef_axis( # <<<<<<<<<<<<<< * data.data, data_info, * cA.data, output_info, */ __pyx_v_retval = float_complex_downcoef_axis(((__pyx_t_float_complex *)__pyx_v_data->data), __pyx_v_data_info, ((__pyx_t_float_complex *)__pyx_v_cA->data), __pyx_v_output_info, __pyx_v_wavelet->w, __pyx_v_axis, COEF_APPROX, MODE_PERIODIZATION, __pyx_v_i, SWT_TRANSFORM); } /* "pywt/_extensions/_swt.pyx":275 * elif data.dtype == np.complex64: * cA = np.zeros(output_shape, dtype=np.complex64) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_complex_downcoef_axis( * data.data, data_info, */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L52; } __pyx_L52:; } } /* "pywt/_extensions/_swt.pyx":282 * common.COEF_APPROX, common.MODE_PERIODIZATION, * i, common.SWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError( * "C wavelet transform failed with error code %d" % */ __pyx_t_1 = (__pyx_v_retval != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_swt.pyx":285 * raise RuntimeError( * "C wavelet transform failed with error code %d" % * retval) # <<<<<<<<<<<<<< * cD = np.zeros(output_shape, dtype=np.complex64) * with nogil: */ __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_retval); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); /* "pywt/_extensions/_swt.pyx":284 * if retval: * raise RuntimeError( * "C wavelet transform failed with error code %d" % # <<<<<<<<<<<<<< * retval) * cD = np.zeros(output_shape, dtype=np.complex64) */ __pyx_t_13 = PyUnicode_Format(__pyx_kp_u_C_wavelet_transform_failed_with, __pyx_t_3); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/_swt.pyx":283 * i, common.SWT_TRANSFORM) * if retval: * raise RuntimeError( # <<<<<<<<<<<<<< * "C wavelet transform failed with error code %d" % * retval) */ __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_13); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 283, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":282 * common.COEF_APPROX, common.MODE_PERIODIZATION, * i, common.SWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError( * "C wavelet transform failed with error code %d" % */ } /* "pywt/_extensions/_swt.pyx":286 * "C wavelet transform failed with error code %d" % * retval) * cD = np.zeros(output_shape, dtype=np.complex64) # <<<<<<<<<<<<<< * with nogil: * retval = c_wt.float_complex_downcoef_axis( */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_output_shape, 1, (PyObject *(*)(char *)) __pyx_memview_get_size_t, (int (*)(char *, PyObject *)) __pyx_memview_set_size_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_complex64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_cD, ((PyArrayObject *)__pyx_t_5)); __pyx_t_5 = 0; /* "pywt/_extensions/_swt.pyx":287 * retval) * cD = np.zeros(output_shape, dtype=np.complex64) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_complex_downcoef_axis( * data.data, data_info, */ { #ifdef WITH_THREAD PyThreadState *_save; Py_UNBLOCK_THREADS __Pyx_FastGIL_Remember(); #endif /*try:*/ { /* "pywt/_extensions/_swt.pyx":288 * cD = np.zeros(output_shape, dtype=np.complex64) * with nogil: * retval = c_wt.float_complex_downcoef_axis( # <<<<<<<<<<<<<< * data.data, data_info, * cD.data, output_info, */ __pyx_v_retval = float_complex_downcoef_axis(((__pyx_t_float_complex *)__pyx_v_data->data), __pyx_v_data_info, ((__pyx_t_float_complex *)__pyx_v_cD->data), __pyx_v_output_info, __pyx_v_wavelet->w, __pyx_v_axis, COEF_DETAIL, MODE_PERIODIZATION, __pyx_v_i, SWT_TRANSFORM); } /* "pywt/_extensions/_swt.pyx":287 * retval) * cD = np.zeros(output_shape, dtype=np.complex64) * with nogil: # <<<<<<<<<<<<<< * retval = c_wt.float_complex_downcoef_axis( * data.data, data_info, */ /*finally:*/ { /*normal exit:*/{ #ifdef WITH_THREAD __Pyx_FastGIL_Forget(); Py_BLOCK_THREADS #endif goto __pyx_L58; } __pyx_L58:; } } /* "pywt/_extensions/_swt.pyx":294 * common.COEF_DETAIL, common.MODE_PERIODIZATION, * i, common.SWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError( * "C wavelet transform failed with error code %d" % */ __pyx_t_1 = (__pyx_v_retval != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_swt.pyx":297 * raise RuntimeError( * "C wavelet transform failed with error code %d" % * retval) # <<<<<<<<<<<<<< * if retval == -5: * raise TypeError("Array must be floating point, not {}" */ __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_retval); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); /* "pywt/_extensions/_swt.pyx":296 * if retval: * raise RuntimeError( * "C wavelet transform failed with error code %d" % # <<<<<<<<<<<<<< * retval) * if retval == -5: */ __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_C_wavelet_transform_failed_with, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "pywt/_extensions/_swt.pyx":295 * i, common.SWT_TRANSFORM) * if retval: * raise RuntimeError( # <<<<<<<<<<<<<< * "C wavelet transform failed with error code %d" % * retval) */ __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_RuntimeError, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(0, 295, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":294 * common.COEF_DETAIL, common.MODE_PERIODIZATION, * i, common.SWT_TRANSFORM) * if retval: # <<<<<<<<<<<<<< * raise RuntimeError( * "C wavelet transform failed with error code %d" % */ } /* "pywt/_extensions/_swt.pyx":273 * "C wavelet transform failed with error code %d" % * retval) * elif data.dtype == np.complex64: # <<<<<<<<<<<<<< * cA = np.zeros(output_shape, dtype=np.complex64) * with nogil: */ } __pyx_L35:; /* "pywt/_extensions/_swt.pyx":298 * "C wavelet transform failed with error code %d" % * retval) * if retval == -5: # <<<<<<<<<<<<<< * raise TypeError("Array must be floating point, not {}" * .format(data.dtype)) */ __pyx_t_1 = ((__pyx_v_retval == -5L) != 0); if (unlikely(__pyx_t_1)) { /* "pywt/_extensions/_swt.pyx":300 * if retval == -5: * raise TypeError("Array must be floating point, not {}" * .format(data.dtype)) # <<<<<<<<<<<<<< * if not trim_approx: * ret.append((cA, cD)) */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_u_Array_must_be_floating_point_not, __pyx_n_s_format); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_data), __pyx_n_s_dtype); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_13 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_5 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_13, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/_swt.pyx":299 * retval) * if retval == -5: * raise TypeError("Array must be floating point, not {}" # <<<<<<<<<<<<<< * .format(data.dtype)) * if not trim_approx: */ __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(0, 299, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":298 * "C wavelet transform failed with error code %d" % * retval) * if retval == -5: # <<<<<<<<<<<<<< * raise TypeError("Array must be floating point, not {}" * .format(data.dtype)) */ } /* "pywt/_extensions/_swt.pyx":301 * raise TypeError("Array must be floating point, not {}" * .format(data.dtype)) * if not trim_approx: # <<<<<<<<<<<<<< * ret.append((cA, cD)) * else: */ __pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_trim_approx)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 301, __pyx_L1_error) __pyx_t_14 = ((!__pyx_t_1) != 0); if (__pyx_t_14) { /* "pywt/_extensions/_swt.pyx":302 * .format(data.dtype)) * if not trim_approx: * ret.append((cA, cD)) # <<<<<<<<<<<<<< * else: * ret.append(cD) */ __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_v_cA)); __Pyx_GIVEREF(((PyObject *)__pyx_v_cA)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_cA)); __Pyx_INCREF(((PyObject *)__pyx_v_cD)); __Pyx_GIVEREF(((PyObject *)__pyx_v_cD)); PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_cD)); __pyx_t_15 = __Pyx_PyList_Append(__pyx_v_ret, __pyx_t_3); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(0, 302, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/_swt.pyx":301 * raise TypeError("Array must be floating point, not {}" * .format(data.dtype)) * if not trim_approx: # <<<<<<<<<<<<<< * ret.append((cA, cD)) * else: */ goto __pyx_L61; } /* "pywt/_extensions/_swt.pyx":304 * ret.append((cA, cD)) * else: * ret.append(cD) # <<<<<<<<<<<<<< * * # previous approx coeffs are the data for the next level */ /*else*/ { __pyx_t_15 = __Pyx_PyList_Append(__pyx_v_ret, ((PyObject *)__pyx_v_cD)); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(0, 304, __pyx_L1_error) } __pyx_L61:; /* "pywt/_extensions/_swt.pyx":307 * * # previous approx coeffs are the data for the next level * data = cA # <<<<<<<<<<<<<< * # update data_info to match the new data array * data_info.strides = data.strides */ __Pyx_INCREF(((PyObject *)__pyx_v_cA)); __Pyx_DECREF_SET(__pyx_v_data, __pyx_v_cA); /* "pywt/_extensions/_swt.pyx":309 * data = cA * # update data_info to match the new data array * data_info.strides = data.strides # <<<<<<<<<<<<<< * data_info.shape = data.shape * */ __pyx_v_data_info.strides = ((pywt_index_t *)__pyx_v_data->strides); /* "pywt/_extensions/_swt.pyx":310 * # update data_info to match the new data array * data_info.strides = data.strides * data_info.shape = data.shape # <<<<<<<<<<<<<< * * if trim_approx: */ __pyx_v_data_info.shape = ((size_t *)__pyx_v_data->dimensions); } /* "pywt/_extensions/_swt.pyx":312 * data_info.shape = data.shape * * if trim_approx: # <<<<<<<<<<<<<< * ret.append(cA) * */ __pyx_t_14 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_trim_approx)); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 312, __pyx_L1_error) if (__pyx_t_14) { /* "pywt/_extensions/_swt.pyx":313 * * if trim_approx: * ret.append(cA) # <<<<<<<<<<<<<< * * ret.reverse() */ if (unlikely(!__pyx_v_cA)) { __Pyx_RaiseUnboundLocalError("cA"); __PYX_ERR(0, 313, __pyx_L1_error) } __pyx_t_15 = __Pyx_PyList_Append(__pyx_v_ret, ((PyObject *)__pyx_v_cA)); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(0, 313, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":312 * data_info.shape = data.shape * * if trim_approx: # <<<<<<<<<<<<<< * ret.append(cA) * */ } /* "pywt/_extensions/_swt.pyx":315 * ret.append(cA) * * ret.reverse() # <<<<<<<<<<<<<< * return ret */ __pyx_t_15 = PyList_Reverse(__pyx_v_ret); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(0, 315, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":316 * * ret.reverse() * return ret # <<<<<<<<<<<<<< */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_ret); __pyx_r = __pyx_v_ret; goto __pyx_L0; /* "pywt/_extensions/_swt.pyx":159 * * * cpdef swt_axis(np.ndarray data, Wavelet wavelet, size_t level, # <<<<<<<<<<<<<< * size_t start_level, unsigned int axis=0, * bool trim_approx=False): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(((PyObject *)__pyx_t_7)); __PYX_XDEC_MEMVIEW(&__pyx_t_8, 1); __Pyx_XDECREF(__pyx_t_13); __Pyx_AddTraceback("pywt._extensions._swt.swt_axis", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_cD); __Pyx_XDECREF((PyObject *)__pyx_v_cA); __PYX_XDEC_MEMVIEW(&__pyx_v_output_shape, 1); __Pyx_XDECREF(__pyx_v_msg); __Pyx_XDECREF(__pyx_v_ret); __Pyx_XDECREF((PyObject *)__pyx_v_data); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* Python wrapper */ static PyObject *__pyx_pw_4pywt_11_extensions_4_swt_5swt_axis(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_4pywt_11_extensions_4_swt_5swt_axis(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyArrayObject *__pyx_v_data = 0; struct WaveletObject *__pyx_v_wavelet = 0; size_t __pyx_v_level; size_t __pyx_v_start_level; unsigned int __pyx_v_axis; PyBoolObject *__pyx_v_trim_approx = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("swt_axis (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_data,&__pyx_n_s_wavelet,&__pyx_n_s_level,&__pyx_n_s_start_level,&__pyx_n_s_axis,&__pyx_n_s_trim_approx,0}; PyObject* values[6] = {0,0,0,0,0,0}; /* "pywt/_extensions/_swt.pyx":161 * cpdef swt_axis(np.ndarray data, Wavelet wavelet, size_t level, * size_t start_level, unsigned int axis=0, * bool trim_approx=False): # <<<<<<<<<<<<<< * # memory-views do not support n-dimensional arrays, use np.ndarray instead * cdef common.ArrayInfo data_info, output_info */ values[5] = (PyObject *)((PyBoolObject *)Py_False); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); CYTHON_FALLTHROUGH; case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_data)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wavelet)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("swt_axis", 0, 4, 6, 1); __PYX_ERR(0, 159, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("swt_axis", 0, 4, 6, 2); __PYX_ERR(0, 159, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_start_level)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("swt_axis", 0, 4, 6, 3); __PYX_ERR(0, 159, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_axis); if (value) { values[4] = value; kw_args--; } } CYTHON_FALLTHROUGH; case 5: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_trim_approx); if (value) { values[5] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "swt_axis") < 0)) __PYX_ERR(0, 159, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); CYTHON_FALLTHROUGH; case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_data = ((PyArrayObject *)values[0]); __pyx_v_wavelet = ((struct WaveletObject *)values[1]); __pyx_v_level = __Pyx_PyInt_As_size_t(values[2]); if (unlikely((__pyx_v_level == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 159, __pyx_L3_error) __pyx_v_start_level = __Pyx_PyInt_As_size_t(values[3]); if (unlikely((__pyx_v_start_level == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 160, __pyx_L3_error) if (values[4]) { __pyx_v_axis = __Pyx_PyInt_As_unsigned_int(values[4]); if (unlikely((__pyx_v_axis == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 160, __pyx_L3_error) } else { __pyx_v_axis = ((unsigned int)0); } __pyx_v_trim_approx = ((PyBoolObject *)values[5]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("swt_axis", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 159, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pywt._extensions._swt.swt_axis", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_data), __pyx_ptype_5numpy_ndarray, 1, "data", 0))) __PYX_ERR(0, 159, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_wavelet), __pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet, 1, "wavelet", 0))) __PYX_ERR(0, 159, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_trim_approx), __pyx_ptype_7cpython_4bool_bool, 1, "trim_approx", 0))) __PYX_ERR(0, 161, __pyx_L1_error) __pyx_r = __pyx_pf_4pywt_11_extensions_4_swt_4swt_axis(__pyx_self, __pyx_v_data, __pyx_v_wavelet, __pyx_v_level, __pyx_v_start_level, __pyx_v_axis, __pyx_v_trim_approx); /* "pywt/_extensions/_swt.pyx":159 * * * cpdef swt_axis(np.ndarray data, Wavelet wavelet, size_t level, # <<<<<<<<<<<<<< * size_t start_level, unsigned int axis=0, * bool trim_approx=False): */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_4pywt_11_extensions_4_swt_4swt_axis(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_data, struct WaveletObject *__pyx_v_wavelet, size_t __pyx_v_level, size_t __pyx_v_start_level, unsigned int __pyx_v_axis, PyBoolObject *__pyx_v_trim_approx) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; struct __pyx_opt_args_4pywt_11_extensions_4_swt_swt_axis __pyx_t_2; __Pyx_RefNannySetupContext("swt_axis", 0); __Pyx_XDECREF(__pyx_r); __pyx_t_2.__pyx_n = 2; __pyx_t_2.axis = __pyx_v_axis; __pyx_t_2.trim_approx = __pyx_v_trim_approx; __pyx_t_1 = __pyx_f_4pywt_11_extensions_4_swt_swt_axis(__pyx_v_data, __pyx_v_wavelet, __pyx_v_level, __pyx_v_start_level, 0, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pywt._extensions._swt.swt_axis", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":258 * # experimental exception made for __getbuffer__ and __releasebuffer__ * # -- the details of this may change. * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< * # This implementation of getbuffer is geared towards Cython * # requirements, and does not yet fulfill the PEP. */ /* Python wrapper */ static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); __pyx_r = __pyx_pf_5numpy_7ndarray___getbuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_v_i; int __pyx_v_ndim; int __pyx_v_endian_detector; int __pyx_v_little_endian; int __pyx_v_t; char *__pyx_v_f; PyArray_Descr *__pyx_v_descr = 0; int __pyx_v_offset; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; int __pyx_t_5; int __pyx_t_6; PyArray_Descr *__pyx_t_7; PyObject *__pyx_t_8 = NULL; char *__pyx_t_9; if (__pyx_v_info == NULL) { PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); return -1; } __Pyx_RefNannySetupContext("__getbuffer__", 0); __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); __Pyx_GIVEREF(__pyx_v_info->obj); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":265 * * cdef int i, ndim * cdef int endian_detector = 1 # <<<<<<<<<<<<<< * cdef bint little_endian = ((&endian_detector)[0] != 0) * */ __pyx_v_endian_detector = 1; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":266 * cdef int i, ndim * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< * * ndim = PyArray_NDIM(self) */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":268 * cdef bint little_endian = ((&endian_detector)[0] != 0) * * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<< * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) */ __pyx_v_ndim = PyArray_NDIM(__pyx_v_self); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":270 * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") */ __pyx_t_2 = (((__pyx_v_flags & PyBUF_C_CONTIGUOUS) == PyBUF_C_CONTIGUOUS) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L4_bool_binop_done; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":271 * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< * raise ValueError(u"ndarray is not C contiguous") * */ __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_C_CONTIGUOUS) != 0)) != 0); __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":270 * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") */ if (unlikely(__pyx_t_1)) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":272 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 272, __pyx_L1_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":270 * ndim = PyArray_NDIM(self) * * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":274 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") */ __pyx_t_2 = (((__pyx_v_flags & PyBUF_F_CONTIGUOUS) == PyBUF_F_CONTIGUOUS) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L7_bool_binop_done; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":275 * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< * raise ValueError(u"ndarray is not Fortran contiguous") * */ __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_F_CONTIGUOUS) != 0)) != 0); __pyx_t_1 = __pyx_t_2; __pyx_L7_bool_binop_done:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":274 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") */ if (unlikely(__pyx_t_1)) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":276 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< * * info.buf = PyArray_DATA(self) */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 276, __pyx_L1_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":274 * raise ValueError(u"ndarray is not C contiguous") * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":278 * raise ValueError(u"ndarray is not Fortran contiguous") * * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< * info.ndim = ndim * if sizeof(npy_intp) != sizeof(Py_ssize_t): */ __pyx_v_info->buf = PyArray_DATA(__pyx_v_self); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":279 * * info.buf = PyArray_DATA(self) * info.ndim = ndim # <<<<<<<<<<<<<< * if sizeof(npy_intp) != sizeof(Py_ssize_t): * # Allocate new buffer for strides and shape info. */ __pyx_v_info->ndim = __pyx_v_ndim; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":280 * info.buf = PyArray_DATA(self) * info.ndim = ndim * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< * # Allocate new buffer for strides and shape info. * # This is allocated as one block, strides first. */ __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); if (__pyx_t_1) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":283 * # Allocate new buffer for strides and shape info. * # This is allocated as one block, strides first. * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim) # <<<<<<<<<<<<<< * info.shape = info.strides + ndim * for i in range(ndim): */ __pyx_v_info->strides = ((Py_ssize_t *)PyObject_Malloc((((sizeof(Py_ssize_t)) * 2) * ((size_t)__pyx_v_ndim)))); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":284 * # This is allocated as one block, strides first. * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim) * info.shape = info.strides + ndim # <<<<<<<<<<<<<< * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] */ __pyx_v_info->shape = (__pyx_v_info->strides + __pyx_v_ndim); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":285 * info.strides = PyObject_Malloc(sizeof(Py_ssize_t) * 2 * ndim) * info.shape = info.strides + ndim * for i in range(ndim): # <<<<<<<<<<<<<< * info.strides[i] = PyArray_STRIDES(self)[i] * info.shape[i] = PyArray_DIMS(self)[i] */ __pyx_t_4 = __pyx_v_ndim; __pyx_t_5 = __pyx_t_4; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":286 * info.shape = info.strides + ndim * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] # <<<<<<<<<<<<<< * info.shape[i] = PyArray_DIMS(self)[i] * else: */ (__pyx_v_info->strides[__pyx_v_i]) = (PyArray_STRIDES(__pyx_v_self)[__pyx_v_i]); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":287 * for i in range(ndim): * info.strides[i] = PyArray_STRIDES(self)[i] * info.shape[i] = PyArray_DIMS(self)[i] # <<<<<<<<<<<<<< * else: * info.strides = PyArray_STRIDES(self) */ (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":280 * info.buf = PyArray_DATA(self) * info.ndim = ndim * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< * # Allocate new buffer for strides and shape info. * # This is allocated as one block, strides first. */ goto __pyx_L9; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":289 * info.shape[i] = PyArray_DIMS(self)[i] * else: * info.strides = PyArray_STRIDES(self) # <<<<<<<<<<<<<< * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL */ /*else*/ { __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":290 * else: * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) # <<<<<<<<<<<<<< * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) */ __pyx_v_info->shape = ((Py_ssize_t *)PyArray_DIMS(__pyx_v_self)); } __pyx_L9:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":291 * info.strides = PyArray_STRIDES(self) * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL # <<<<<<<<<<<<<< * info.itemsize = PyArray_ITEMSIZE(self) * info.readonly = not PyArray_ISWRITEABLE(self) */ __pyx_v_info->suboffsets = NULL; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":292 * info.shape = PyArray_DIMS(self) * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) # <<<<<<<<<<<<<< * info.readonly = not PyArray_ISWRITEABLE(self) * */ __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":293 * info.suboffsets = NULL * info.itemsize = PyArray_ITEMSIZE(self) * info.readonly = not PyArray_ISWRITEABLE(self) # <<<<<<<<<<<<<< * * cdef int t */ __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0)); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":296 * * cdef int t * cdef char* f = NULL # <<<<<<<<<<<<<< * cdef dtype descr = PyArray_DESCR(self) * cdef int offset */ __pyx_v_f = NULL; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":297 * cdef int t * cdef char* f = NULL * cdef dtype descr = PyArray_DESCR(self) # <<<<<<<<<<<<<< * cdef int offset * */ __pyx_t_7 = PyArray_DESCR(__pyx_v_self); __pyx_t_3 = ((PyObject *)__pyx_t_7); __Pyx_INCREF(__pyx_t_3); __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); __pyx_t_3 = 0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":300 * cdef int offset * * info.obj = self # <<<<<<<<<<<<<< * * if not PyDataType_HASFIELDS(descr): */ __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = ((PyObject *)__pyx_v_self); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":302 * info.obj = self * * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or */ __pyx_t_1 = ((!(PyDataType_HASFIELDS(__pyx_v_descr) != 0)) != 0); if (__pyx_t_1) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":303 * * if not PyDataType_HASFIELDS(descr): * t = descr.type_num # <<<<<<<<<<<<<< * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): */ __pyx_t_4 = __pyx_v_descr->type_num; __pyx_v_t = __pyx_t_4; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":304 * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ __pyx_t_2 = ((__pyx_v_descr->byteorder == '>') != 0); if (!__pyx_t_2) { goto __pyx_L15_next_or; } else { } __pyx_t_2 = (__pyx_v_little_endian != 0); if (!__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L14_bool_binop_done; } __pyx_L15_next_or:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":305 * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" */ __pyx_t_2 = ((__pyx_v_descr->byteorder == '<') != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L14_bool_binop_done; } __pyx_t_2 = ((!(__pyx_v_little_endian != 0)) != 0); __pyx_t_1 = __pyx_t_2; __pyx_L14_bool_binop_done:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":304 * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ if (unlikely(__pyx_t_1)) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":306 * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 306, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 306, __pyx_L1_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":304 * if not PyDataType_HASFIELDS(descr): * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":307 * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" # <<<<<<<<<<<<<< * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" */ switch (__pyx_v_t) { case NPY_BYTE: __pyx_v_f = ((char *)"b"); break; case NPY_UBYTE: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":308 * raise ValueError(u"Non-native byte order not supported") * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" # <<<<<<<<<<<<<< * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" */ __pyx_v_f = ((char *)"B"); break; case NPY_SHORT: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":309 * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" # <<<<<<<<<<<<<< * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" */ __pyx_v_f = ((char *)"h"); break; case NPY_USHORT: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":310 * elif t == NPY_UBYTE: f = "B" * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" # <<<<<<<<<<<<<< * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" */ __pyx_v_f = ((char *)"H"); break; case NPY_INT: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":311 * elif t == NPY_SHORT: f = "h" * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" # <<<<<<<<<<<<<< * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" */ __pyx_v_f = ((char *)"i"); break; case NPY_UINT: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":312 * elif t == NPY_USHORT: f = "H" * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" # <<<<<<<<<<<<<< * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" */ __pyx_v_f = ((char *)"I"); break; case NPY_LONG: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":313 * elif t == NPY_INT: f = "i" * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" # <<<<<<<<<<<<<< * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" */ __pyx_v_f = ((char *)"l"); break; case NPY_ULONG: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":314 * elif t == NPY_UINT: f = "I" * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" # <<<<<<<<<<<<<< * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" */ __pyx_v_f = ((char *)"L"); break; case NPY_LONGLONG: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":315 * elif t == NPY_LONG: f = "l" * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" # <<<<<<<<<<<<<< * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" */ __pyx_v_f = ((char *)"q"); break; case NPY_ULONGLONG: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":316 * elif t == NPY_ULONG: f = "L" * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" # <<<<<<<<<<<<<< * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" */ __pyx_v_f = ((char *)"Q"); break; case NPY_FLOAT: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":317 * elif t == NPY_LONGLONG: f = "q" * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" # <<<<<<<<<<<<<< * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" */ __pyx_v_f = ((char *)"f"); break; case NPY_DOUBLE: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":318 * elif t == NPY_ULONGLONG: f = "Q" * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" # <<<<<<<<<<<<<< * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" */ __pyx_v_f = ((char *)"d"); break; case NPY_LONGDOUBLE: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":319 * elif t == NPY_FLOAT: f = "f" * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" # <<<<<<<<<<<<<< * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" */ __pyx_v_f = ((char *)"g"); break; case NPY_CFLOAT: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":320 * elif t == NPY_DOUBLE: f = "d" * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" # <<<<<<<<<<<<<< * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" */ __pyx_v_f = ((char *)"Zf"); break; case NPY_CDOUBLE: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":321 * elif t == NPY_LONGDOUBLE: f = "g" * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" # <<<<<<<<<<<<<< * elif t == NPY_CLONGDOUBLE: f = "Zg" * elif t == NPY_OBJECT: f = "O" */ __pyx_v_f = ((char *)"Zd"); break; case NPY_CLONGDOUBLE: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":322 * elif t == NPY_CFLOAT: f = "Zf" * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" # <<<<<<<<<<<<<< * elif t == NPY_OBJECT: f = "O" * else: */ __pyx_v_f = ((char *)"Zg"); break; case NPY_OBJECT: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":323 * elif t == NPY_CDOUBLE: f = "Zd" * elif t == NPY_CLONGDOUBLE: f = "Zg" * elif t == NPY_OBJECT: f = "O" # <<<<<<<<<<<<<< * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) */ __pyx_v_f = ((char *)"O"); break; default: /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":325 * elif t == NPY_OBJECT: f = "O" * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< * info.format = f * return */ __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 325, __pyx_L1_error) break; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":326 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f # <<<<<<<<<<<<<< * return * else: */ __pyx_v_info->format = __pyx_v_f; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":327 * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * info.format = f * return # <<<<<<<<<<<<<< * else: * info.format = PyObject_Malloc(_buffer_format_string_len) */ __pyx_r = 0; goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":302 * info.obj = self * * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< * t = descr.type_num * if ((descr.byteorder == c'>' and little_endian) or */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":329 * return * else: * info.format = PyObject_Malloc(_buffer_format_string_len) # <<<<<<<<<<<<<< * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 */ /*else*/ { __pyx_v_info->format = ((char *)PyObject_Malloc(0xFF)); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":330 * else: * info.format = PyObject_Malloc(_buffer_format_string_len) * info.format[0] = c'^' # Native data types, manual alignment # <<<<<<<<<<<<<< * offset = 0 * f = _util_dtypestring(descr, info.format + 1, */ (__pyx_v_info->format[0]) = '^'; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":331 * info.format = PyObject_Malloc(_buffer_format_string_len) * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 # <<<<<<<<<<<<<< * f = _util_dtypestring(descr, info.format + 1, * info.format + _buffer_format_string_len, */ __pyx_v_offset = 0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":332 * info.format[0] = c'^' # Native data types, manual alignment * offset = 0 * f = _util_dtypestring(descr, info.format + 1, # <<<<<<<<<<<<<< * info.format + _buffer_format_string_len, * &offset) */ __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_descr, (__pyx_v_info->format + 1), (__pyx_v_info->format + 0xFF), (&__pyx_v_offset)); if (unlikely(__pyx_t_9 == ((char *)NULL))) __PYX_ERR(1, 332, __pyx_L1_error) __pyx_v_f = __pyx_t_9; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":335 * info.format + _buffer_format_string_len, * &offset) * f[0] = c'\0' # Terminate format string # <<<<<<<<<<<<<< * * def __releasebuffer__(ndarray self, Py_buffer* info): */ (__pyx_v_f[0]) = '\x00'; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":258 * # experimental exception made for __getbuffer__ and __releasebuffer__ * # -- the details of this may change. * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< * # This implementation of getbuffer is geared towards Cython * # requirements, and does not yet fulfill the PEP. */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("numpy.ndarray.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; if (__pyx_v_info->obj != NULL) { __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; } goto __pyx_L2; __pyx_L0:; if (__pyx_v_info->obj == Py_None) { __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; } __pyx_L2:; __Pyx_XDECREF((PyObject *)__pyx_v_descr); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":337 * f[0] = c'\0' # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) */ /* Python wrapper */ static CYTHON_UNUSED void __pyx_pw_5numpy_7ndarray_3__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info); /*proto*/ static CYTHON_UNUSED void __pyx_pw_5numpy_7ndarray_3__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__releasebuffer__ (wrapper)", 0); __pyx_pf_5numpy_7ndarray_2__releasebuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info) { __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("__releasebuffer__", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":338 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): */ __pyx_t_1 = (PyArray_HASFIELDS(__pyx_v_self) != 0); if (__pyx_t_1) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":339 * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) # <<<<<<<<<<<<<< * if sizeof(npy_intp) != sizeof(Py_ssize_t): * PyObject_Free(info.strides) */ PyObject_Free(__pyx_v_info->format); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":338 * * def __releasebuffer__(ndarray self, Py_buffer* info): * if PyArray_HASFIELDS(self): # <<<<<<<<<<<<<< * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":340 * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< * PyObject_Free(info.strides) * # info.shape was stored after info.strides in the same block */ __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0); if (__pyx_t_1) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":341 * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): * PyObject_Free(info.strides) # <<<<<<<<<<<<<< * # info.shape was stored after info.strides in the same block * */ PyObject_Free(__pyx_v_info->strides); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":340 * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) * if sizeof(npy_intp) != sizeof(Py_ssize_t): # <<<<<<<<<<<<<< * PyObject_Free(info.strides) * # info.shape was stored after info.strides in the same block */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":337 * f[0] = c'\0' # Terminate format string * * def __releasebuffer__(ndarray self, Py_buffer* info): # <<<<<<<<<<<<<< * if PyArray_HASFIELDS(self): * PyObject_Free(info.format) */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":821 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(1, a) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__pyx_v_a) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":822 * * cdef inline object PyArray_MultiIterNew1(a): * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew2(a, b): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":821 * ctypedef npy_cdouble complex_t * * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(1, a) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew1", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":824 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(2, a, b) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyObject *__pyx_v_b) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":825 * * cdef inline object PyArray_MultiIterNew2(a, b): * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew3(a, b, c): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 825, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":824 * return PyArray_MultiIterNew(1, a) * * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(2, a, b) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew2", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":827 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(3, a, b, c) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":828 * * cdef inline object PyArray_MultiIterNew3(a, b, c): * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":827 * return PyArray_MultiIterNew(2, a, b) * * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(3, a, b, c) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew3", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":830 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(4, a, b, c, d) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":831 * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): * return PyArray_MultiIterNew(4, a, b, c, d) # <<<<<<<<<<<<<< * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 831, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":830 * return PyArray_MultiIterNew(3, a, b, c) * * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(4, a, b, c, d) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew4", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":833 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(5, a, b, c, d, e) * */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d, PyObject *__pyx_v_e) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":834 * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): * return PyArray_MultiIterNew(5, a, b, c, d, e) # <<<<<<<<<<<<<< * * cdef inline tuple PyDataType_SHAPE(dtype d): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":833 * return PyArray_MultiIterNew(4, a, b, c, d) * * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< * return PyArray_MultiIterNew(5, a, b, c, d, e) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("numpy.PyArray_MultiIterNew5", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":836 * return PyArray_MultiIterNew(5, a, b, c, d, e) * * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< * if PyDataType_HASSUBARRAY(d): * return d.subarray.shape */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__pyx_v_d) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":837 * * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< * return d.subarray.shape * else: */ __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0); if (__pyx_t_1) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":838 * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): * return d.subarray.shape # <<<<<<<<<<<<<< * else: * return () */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject*)__pyx_v_d->subarray->shape)); __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape); goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":837 * * cdef inline tuple PyDataType_SHAPE(dtype d): * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< * return d.subarray.shape * else: */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":840 * return d.subarray.shape * else: * return () # <<<<<<<<<<<<<< * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: */ /*else*/ { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_empty_tuple); __pyx_r = __pyx_empty_tuple; goto __pyx_L0; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":836 * return PyArray_MultiIterNew(5, a, b, c, d, e) * * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< * if PyDataType_HASSUBARRAY(d): * return d.subarray.shape */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":842 * return () * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< * # Recursive utility function used in __getbuffer__ to get format * # string. The new location in the format string is returned. */ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx_v_descr, char *__pyx_v_f, char *__pyx_v_end, int *__pyx_v_offset) { PyArray_Descr *__pyx_v_child = 0; int __pyx_v_endian_detector; int __pyx_v_little_endian; PyObject *__pyx_v_fields = 0; PyObject *__pyx_v_childname = NULL; PyObject *__pyx_v_new_offset = NULL; PyObject *__pyx_v_t = NULL; char *__pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_t_6; int __pyx_t_7; long __pyx_t_8; char *__pyx_t_9; __Pyx_RefNannySetupContext("_util_dtypestring", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":847 * * cdef dtype child * cdef int endian_detector = 1 # <<<<<<<<<<<<<< * cdef bint little_endian = ((&endian_detector)[0] != 0) * cdef tuple fields */ __pyx_v_endian_detector = 1; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":848 * cdef dtype child * cdef int endian_detector = 1 * cdef bint little_endian = ((&endian_detector)[0] != 0) # <<<<<<<<<<<<<< * cdef tuple fields * */ __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":851 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< * fields = descr.fields[childname] * child, new_offset = fields */ if (unlikely(__pyx_v_descr->names == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); __PYX_ERR(1, 851, __pyx_L1_error) } __pyx_t_1 = __pyx_v_descr->names; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; for (;;) { if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 851, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 851, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); __pyx_t_3 = 0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":852 * * for childname in descr.names: * fields = descr.fields[childname] # <<<<<<<<<<<<<< * child, new_offset = fields * */ if (unlikely(__pyx_v_descr->fields == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(1, 852, __pyx_L1_error) } __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 852, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(1, 852, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":853 * for childname in descr.names: * fields = descr.fields[childname] * child, new_offset = fields # <<<<<<<<<<<<<< * * if (end - f) - (new_offset - offset[0]) < 15: */ if (likely(__pyx_v_fields != Py_None)) { PyObject* sequence = __pyx_v_fields; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(1, 853, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); #else __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 853, __pyx_L1_error) } if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(1, 853, __pyx_L1_error) __Pyx_XDECREF_SET(__pyx_v_child, ((PyArray_Descr *)__pyx_t_3)); __pyx_t_3 = 0; __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4); __pyx_t_4 = 0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":855 * child, new_offset = fields * * if (end - f) - (new_offset - offset[0]) < 15: # <<<<<<<<<<<<<< * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * */ __pyx_t_4 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 855, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 855, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0); if (unlikely(__pyx_t_6)) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":856 * * if (end - f) - (new_offset - offset[0]) < 15: * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") # <<<<<<<<<<<<<< * * if ((child.byteorder == c'>' and little_endian) or */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 856, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 856, __pyx_L1_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":855 * child, new_offset = fields * * if (end - f) - (new_offset - offset[0]) < 15: # <<<<<<<<<<<<<< * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":858 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ __pyx_t_7 = ((__pyx_v_child->byteorder == '>') != 0); if (!__pyx_t_7) { goto __pyx_L8_next_or; } else { } __pyx_t_7 = (__pyx_v_little_endian != 0); if (!__pyx_t_7) { } else { __pyx_t_6 = __pyx_t_7; goto __pyx_L7_bool_binop_done; } __pyx_L8_next_or:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":859 * * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< * raise ValueError(u"Non-native byte order not supported") * # One could encode it in the format string and have Cython */ __pyx_t_7 = ((__pyx_v_child->byteorder == '<') != 0); if (__pyx_t_7) { } else { __pyx_t_6 = __pyx_t_7; goto __pyx_L7_bool_binop_done; } __pyx_t_7 = ((!(__pyx_v_little_endian != 0)) != 0); __pyx_t_6 = __pyx_t_7; __pyx_L7_bool_binop_done:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":858 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ if (unlikely(__pyx_t_6)) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":860 * if ((child.byteorder == c'>' and little_endian) or * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< * # One could encode it in the format string and have Cython * # complain instead, BUT: < and > in format strings also imply */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 860, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 860, __pyx_L1_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":858 * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") * * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< * (child.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":870 * * # Output padding bytes * while offset[0] < new_offset: # <<<<<<<<<<<<<< * f[0] = 120 # "x"; pad byte * f += 1 */ while (1) { __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 870, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_new_offset, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 870, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 870, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!__pyx_t_6) break; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":871 * # Output padding bytes * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< * f += 1 * offset[0] += 1 */ (__pyx_v_f[0]) = 0x78; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":872 * while offset[0] < new_offset: * f[0] = 120 # "x"; pad byte * f += 1 # <<<<<<<<<<<<<< * offset[0] += 1 * */ __pyx_v_f = (__pyx_v_f + 1); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":873 * f[0] = 120 # "x"; pad byte * f += 1 * offset[0] += 1 # <<<<<<<<<<<<<< * * offset[0] += child.itemsize */ __pyx_t_8 = 0; (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":875 * offset[0] += 1 * * offset[0] += child.itemsize # <<<<<<<<<<<<<< * * if not PyDataType_HASFIELDS(child): */ __pyx_t_8 = 0; (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":877 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< * t = child.type_num * if end - f < 5: */ __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); if (__pyx_t_6) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":878 * * if not PyDataType_HASFIELDS(child): * t = child.type_num # <<<<<<<<<<<<<< * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") */ __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 878, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); __pyx_t_4 = 0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":879 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< * raise RuntimeError(u"Format string allocated too short.") * */ __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); if (unlikely(__pyx_t_6)) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":880 * t = child.type_num * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< * * # Until ticket #99 is fixed, use integers to avoid warnings */ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 880, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 880, __pyx_L1_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":879 * if not PyDataType_HASFIELDS(child): * t = child.type_num * if end - f < 5: # <<<<<<<<<<<<<< * raise RuntimeError(u"Format string allocated too short.") * */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":883 * * # Until ticket #99 is fixed, use integers to avoid warnings * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 883, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 883, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 98; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":884 * # Until ticket #99 is fixed, use integers to avoid warnings * if t == NPY_BYTE: f[0] = 98 #"b" * elif t == NPY_UBYTE: f[0] = 66 #"B" # <<<<<<<<<<<<<< * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 884, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 884, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 884, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 66; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":885 * if t == NPY_BYTE: f[0] = 98 #"b" * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<< * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 885, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 885, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 885, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x68; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":886 * elif t == NPY_UBYTE: f[0] = 66 #"B" * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<< * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 886, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 886, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 886, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 72; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":887 * elif t == NPY_SHORT: f[0] = 104 #"h" * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<< * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 887, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 887, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 887, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x69; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":888 * elif t == NPY_USHORT: f[0] = 72 #"H" * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<< * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 888, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 888, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 73; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":889 * elif t == NPY_INT: f[0] = 105 #"i" * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<< * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 889, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 889, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x6C; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":890 * elif t == NPY_UINT: f[0] = 73 #"I" * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<< * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 890, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 890, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 76; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":891 * elif t == NPY_LONG: f[0] = 108 #"l" * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<< * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 891, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 891, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x71; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":892 * elif t == NPY_ULONG: f[0] = 76 #"L" * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<< * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 892, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 892, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 892, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 81; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":893 * elif t == NPY_LONGLONG: f[0] = 113 #"q" * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<< * elif t == NPY_DOUBLE: f[0] = 100 #"d" * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 893, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 893, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x66; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":894 * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<< * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 894, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 894, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x64; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":895 * elif t == NPY_FLOAT: f[0] = 102 #"f" * elif t == NPY_DOUBLE: f[0] = 100 #"d" * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<< * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 895, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 895, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 895, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 0x67; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":896 * elif t == NPY_DOUBLE: f[0] = 100 #"d" * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf # <<<<<<<<<<<<<< * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 896, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 896, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; (__pyx_v_f[1]) = 0x66; __pyx_v_f = (__pyx_v_f + 1); goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":897 * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd # <<<<<<<<<<<<<< * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg * elif t == NPY_OBJECT: f[0] = 79 #"O" */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 897, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 897, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; (__pyx_v_f[1]) = 0x64; __pyx_v_f = (__pyx_v_f + 1); goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":898 * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg # <<<<<<<<<<<<<< * elif t == NPY_OBJECT: f[0] = 79 #"O" * else: */ __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 898, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 898, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_6) { (__pyx_v_f[0]) = 90; (__pyx_v_f[1]) = 0x67; __pyx_v_f = (__pyx_v_f + 1); goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":899 * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg * elif t == NPY_OBJECT: f[0] = 79 #"O" # <<<<<<<<<<<<<< * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) */ __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 899, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(1, 899, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (likely(__pyx_t_6)) { (__pyx_v_f[0]) = 79; goto __pyx_L15; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":901 * elif t == NPY_OBJECT: f[0] = 79 #"O" * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< * f += 1 * else: */ /*else*/ { __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 901, __pyx_L1_error) } __pyx_L15:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":902 * else: * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) * f += 1 # <<<<<<<<<<<<<< * else: * # Cython ignores struct boundary information ("T{...}"), */ __pyx_v_f = (__pyx_v_f + 1); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":877 * offset[0] += child.itemsize * * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< * t = child.type_num * if end - f < 5: */ goto __pyx_L13; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":906 * # Cython ignores struct boundary information ("T{...}"), * # so don't output it * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< * return f * */ /*else*/ { __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_child, __pyx_v_f, __pyx_v_end, __pyx_v_offset); if (unlikely(__pyx_t_9 == ((char *)NULL))) __PYX_ERR(1, 906, __pyx_L1_error) __pyx_v_f = __pyx_t_9; } __pyx_L13:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":851 * cdef tuple fields * * for childname in descr.names: # <<<<<<<<<<<<<< * fields = descr.fields[childname] * child, new_offset = fields */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":907 * # so don't output it * f = _util_dtypestring(child, f, end, offset) * return f # <<<<<<<<<<<<<< * * */ __pyx_r = __pyx_v_f; goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":842 * return () * * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< * # Recursive utility function used in __getbuffer__ to get format * # string. The new location in the format string is returned. */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("numpy._util_dtypestring", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_child); __Pyx_XDECREF(__pyx_v_fields); __Pyx_XDECREF(__pyx_v_childname); __Pyx_XDECREF(__pyx_v_new_offset); __Pyx_XDECREF(__pyx_v_t); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1022 * int _import_umath() except -1 * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< * Py_INCREF(base) # important to do this before stealing the reference below! * PyArray_SetBaseObject(arr, base) */ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("set_array_base", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1023 * * cdef inline void set_array_base(ndarray arr, object base): * Py_INCREF(base) # important to do this before stealing the reference below! # <<<<<<<<<<<<<< * PyArray_SetBaseObject(arr, base) * */ Py_INCREF(__pyx_v_base); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1024 * cdef inline void set_array_base(ndarray arr, object base): * Py_INCREF(base) # important to do this before stealing the reference below! * PyArray_SetBaseObject(arr, base) # <<<<<<<<<<<<<< * * cdef inline object get_array_base(ndarray arr): */ (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base)); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1022 * int _import_umath() except -1 * * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< * Py_INCREF(base) # important to do this before stealing the reference below! * PyArray_SetBaseObject(arr, base) */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1026 * PyArray_SetBaseObject(arr, base) * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< * base = PyArray_BASE(arr) * if base is NULL: */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) { PyObject *__pyx_v_base; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("get_array_base", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1027 * * cdef inline object get_array_base(ndarray arr): * base = PyArray_BASE(arr) # <<<<<<<<<<<<<< * if base is NULL: * return None */ __pyx_v_base = PyArray_BASE(__pyx_v_arr); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1028 * cdef inline object get_array_base(ndarray arr): * base = PyArray_BASE(arr) * if base is NULL: # <<<<<<<<<<<<<< * return None * return base */ __pyx_t_1 = ((__pyx_v_base == NULL) != 0); if (__pyx_t_1) { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1029 * base = PyArray_BASE(arr) * if base is NULL: * return None # <<<<<<<<<<<<<< * return base * */ __Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1028 * cdef inline object get_array_base(ndarray arr): * base = PyArray_BASE(arr) * if base is NULL: # <<<<<<<<<<<<<< * return None * return base */ } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1030 * if base is NULL: * return None * return base # <<<<<<<<<<<<<< * * # Versions of the import_* functions which are more suitable for */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_base)); __pyx_r = ((PyObject *)__pyx_v_base); goto __pyx_L0; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1026 * PyArray_SetBaseObject(arr, base) * * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< * base = PyArray_BASE(arr) * if base is NULL: */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1034 * # Versions of the import_* functions which are more suitable for * # Cython code. * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< * try: * _import_array() */ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_array", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1035 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< * _import_array() * except Exception: */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1036 * cdef inline int import_array() except -1: * try: * _import_array() # <<<<<<<<<<<<<< * except Exception: * raise ImportError("numpy.core.multiarray failed to import") */ __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1036, __pyx_L3_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1035 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< * _import_array() * except Exception: */ } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L8_try_end; __pyx_L3_error:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1037 * try: * _import_array() * except Exception: # <<<<<<<<<<<<<< * raise ImportError("numpy.core.multiarray failed to import") * */ __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_4) { __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1037, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1038 * _import_array() * except Exception: * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< * * cdef inline int import_umath() except -1: */ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1038, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __PYX_ERR(1, 1038, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1035 * # Cython code. * cdef inline int import_array() except -1: * try: # <<<<<<<<<<<<<< * _import_array() * except Exception: */ __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L8_try_end:; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1034 * # Versions of the import_* functions which are more suitable for * # Cython code. * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< * try: * _import_array() */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1040 * raise ImportError("numpy.core.multiarray failed to import") * * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< * try: * _import_umath() */ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_umath", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1041 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< * _import_umath() * except Exception: */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1042 * cdef inline int import_umath() except -1: * try: * _import_umath() # <<<<<<<<<<<<<< * except Exception: * raise ImportError("numpy.core.umath failed to import") */ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1042, __pyx_L3_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1041 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< * _import_umath() * except Exception: */ } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L8_try_end; __pyx_L3_error:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1043 * try: * _import_umath() * except Exception: # <<<<<<<<<<<<<< * raise ImportError("numpy.core.umath failed to import") * */ __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_4) { __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1043, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1044 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< * * cdef inline int import_ufunc() except -1: */ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1044, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __PYX_ERR(1, 1044, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1041 * * cdef inline int import_umath() except -1: * try: # <<<<<<<<<<<<<< * _import_umath() * except Exception: */ __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L8_try_end:; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1040 * raise ImportError("numpy.core.multiarray failed to import") * * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< * try: * _import_umath() */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1046 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< * try: * _import_umath() */ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("import_ufunc", 0); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1047 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< * _import_umath() * except Exception: */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); __Pyx_XGOTREF(__pyx_t_1); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1048 * cdef inline int import_ufunc() except -1: * try: * _import_umath() # <<<<<<<<<<<<<< * except Exception: * raise ImportError("numpy.core.umath failed to import") */ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1048, __pyx_L3_error) /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1047 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< * _import_umath() * except Exception: */ } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L8_try_end; __pyx_L3_error:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1049 * try: * _import_umath() * except Exception: # <<<<<<<<<<<<<< * raise ImportError("numpy.core.umath failed to import") */ __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_4) { __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1049, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_6); __Pyx_GOTREF(__pyx_t_7); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1050 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< */ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1050, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __PYX_ERR(1, 1050, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1047 * * cdef inline int import_ufunc() except -1: * try: # <<<<<<<<<<<<<< * _import_umath() * except Exception: */ __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); goto __pyx_L1_error; __pyx_L8_try_end:; } /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1046 * raise ImportError("numpy.core.umath failed to import") * * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< * try: * _import_umath() */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":122 * cdef bint dtype_is_object * * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<< * mode="c", bint allocate_buffer=True): * */ /* Python wrapper */ static int __pyx_array___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_array___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_shape = 0; Py_ssize_t __pyx_v_itemsize; PyObject *__pyx_v_format = 0; PyObject *__pyx_v_mode = 0; int __pyx_v_allocate_buffer; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_shape,&__pyx_n_s_itemsize,&__pyx_n_s_format,&__pyx_n_s_mode,&__pyx_n_s_allocate_buffer,0}; PyObject* values[5] = {0,0,0,0,0}; values[3] = ((PyObject *)__pyx_n_s_c); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_shape)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_itemsize)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, 1); __PYX_ERR(2, 122, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_format)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, 2); __PYX_ERR(2, 122, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); if (value) { values[3] = value; kw_args--; } } CYTHON_FALLTHROUGH; case 4: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allocate_buffer); if (value) { values[4] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(2, 122, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_shape = ((PyObject*)values[0]); __pyx_v_itemsize = __Pyx_PyIndex_AsSsize_t(values[1]); if (unlikely((__pyx_v_itemsize == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 122, __pyx_L3_error) __pyx_v_format = values[2]; __pyx_v_mode = values[3]; if (values[4]) { __pyx_v_allocate_buffer = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allocate_buffer == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 123, __pyx_L3_error) } else { /* "View.MemoryView":123 * * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, * mode="c", bint allocate_buffer=True): # <<<<<<<<<<<<<< * * cdef int idx */ __pyx_v_allocate_buffer = ((int)1); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 122, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("View.MemoryView.array.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_shape), (&PyTuple_Type), 1, "shape", 1))) __PYX_ERR(2, 122, __pyx_L1_error) if (unlikely(((PyObject *)__pyx_v_format) == Py_None)) { PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "format"); __PYX_ERR(2, 122, __pyx_L1_error) } __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(((struct __pyx_array_obj *)__pyx_v_self), __pyx_v_shape, __pyx_v_itemsize, __pyx_v_format, __pyx_v_mode, __pyx_v_allocate_buffer); /* "View.MemoryView":122 * cdef bint dtype_is_object * * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<< * mode="c", bint allocate_buffer=True): * */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, PyObject *__pyx_v_format, PyObject *__pyx_v_mode, int __pyx_v_allocate_buffer) { int __pyx_v_idx; Py_ssize_t __pyx_v_i; Py_ssize_t __pyx_v_dim; PyObject **__pyx_v_p; char __pyx_v_order; int __pyx_r; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; char *__pyx_t_7; int __pyx_t_8; Py_ssize_t __pyx_t_9; PyObject *__pyx_t_10 = NULL; Py_ssize_t __pyx_t_11; __Pyx_RefNannySetupContext("__cinit__", 0); __Pyx_INCREF(__pyx_v_format); /* "View.MemoryView":129 * cdef PyObject **p * * self.ndim = len(shape) # <<<<<<<<<<<<<< * self.itemsize = itemsize * */ if (unlikely(__pyx_v_shape == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(2, 129, __pyx_L1_error) } __pyx_t_1 = PyTuple_GET_SIZE(__pyx_v_shape); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(2, 129, __pyx_L1_error) __pyx_v_self->ndim = ((int)__pyx_t_1); /* "View.MemoryView":130 * * self.ndim = len(shape) * self.itemsize = itemsize # <<<<<<<<<<<<<< * * if not self.ndim: */ __pyx_v_self->itemsize = __pyx_v_itemsize; /* "View.MemoryView":132 * self.itemsize = itemsize * * if not self.ndim: # <<<<<<<<<<<<<< * raise ValueError("Empty shape tuple for cython.array") * */ __pyx_t_2 = ((!(__pyx_v_self->ndim != 0)) != 0); if (unlikely(__pyx_t_2)) { /* "View.MemoryView":133 * * if not self.ndim: * raise ValueError("Empty shape tuple for cython.array") # <<<<<<<<<<<<<< * * if itemsize <= 0: */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__20, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 133, __pyx_L1_error) /* "View.MemoryView":132 * self.itemsize = itemsize * * if not self.ndim: # <<<<<<<<<<<<<< * raise ValueError("Empty shape tuple for cython.array") * */ } /* "View.MemoryView":135 * raise ValueError("Empty shape tuple for cython.array") * * if itemsize <= 0: # <<<<<<<<<<<<<< * raise ValueError("itemsize <= 0 for cython.array") * */ __pyx_t_2 = ((__pyx_v_itemsize <= 0) != 0); if (unlikely(__pyx_t_2)) { /* "View.MemoryView":136 * * if itemsize <= 0: * raise ValueError("itemsize <= 0 for cython.array") # <<<<<<<<<<<<<< * * if not isinstance(format, bytes): */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__21, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 136, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 136, __pyx_L1_error) /* "View.MemoryView":135 * raise ValueError("Empty shape tuple for cython.array") * * if itemsize <= 0: # <<<<<<<<<<<<<< * raise ValueError("itemsize <= 0 for cython.array") * */ } /* "View.MemoryView":138 * raise ValueError("itemsize <= 0 for cython.array") * * if not isinstance(format, bytes): # <<<<<<<<<<<<<< * format = format.encode('ASCII') * self._format = format # keep a reference to the byte string */ __pyx_t_2 = PyBytes_Check(__pyx_v_format); __pyx_t_4 = ((!(__pyx_t_2 != 0)) != 0); if (__pyx_t_4) { /* "View.MemoryView":139 * * if not isinstance(format, bytes): * format = format.encode('ASCII') # <<<<<<<<<<<<<< * self._format = format # keep a reference to the byte string * self.format = self._format */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_format, __pyx_n_s_encode); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_n_s_ASCII) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_n_s_ASCII); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF_SET(__pyx_v_format, __pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":138 * raise ValueError("itemsize <= 0 for cython.array") * * if not isinstance(format, bytes): # <<<<<<<<<<<<<< * format = format.encode('ASCII') * self._format = format # keep a reference to the byte string */ } /* "View.MemoryView":140 * if not isinstance(format, bytes): * format = format.encode('ASCII') * self._format = format # keep a reference to the byte string # <<<<<<<<<<<<<< * self.format = self._format * */ if (!(likely(PyBytes_CheckExact(__pyx_v_format))||((__pyx_v_format) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_v_format)->tp_name), 0))) __PYX_ERR(2, 140, __pyx_L1_error) __pyx_t_3 = __pyx_v_format; __Pyx_INCREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); __Pyx_GOTREF(__pyx_v_self->_format); __Pyx_DECREF(__pyx_v_self->_format); __pyx_v_self->_format = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":141 * format = format.encode('ASCII') * self._format = format # keep a reference to the byte string * self.format = self._format # <<<<<<<<<<<<<< * * */ if (unlikely(__pyx_v_self->_format == Py_None)) { PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found"); __PYX_ERR(2, 141, __pyx_L1_error) } __pyx_t_7 = __Pyx_PyBytes_AsWritableString(__pyx_v_self->_format); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) __PYX_ERR(2, 141, __pyx_L1_error) __pyx_v_self->format = __pyx_t_7; /* "View.MemoryView":144 * * * self._shape = PyObject_Malloc(sizeof(Py_ssize_t)*self.ndim*2) # <<<<<<<<<<<<<< * self._strides = self._shape + self.ndim * */ __pyx_v_self->_shape = ((Py_ssize_t *)PyObject_Malloc((((sizeof(Py_ssize_t)) * __pyx_v_self->ndim) * 2))); /* "View.MemoryView":145 * * self._shape = PyObject_Malloc(sizeof(Py_ssize_t)*self.ndim*2) * self._strides = self._shape + self.ndim # <<<<<<<<<<<<<< * * if not self._shape: */ __pyx_v_self->_strides = (__pyx_v_self->_shape + __pyx_v_self->ndim); /* "View.MemoryView":147 * self._strides = self._shape + self.ndim * * if not self._shape: # <<<<<<<<<<<<<< * raise MemoryError("unable to allocate shape and strides.") * */ __pyx_t_4 = ((!(__pyx_v_self->_shape != 0)) != 0); if (unlikely(__pyx_t_4)) { /* "View.MemoryView":148 * * if not self._shape: * raise MemoryError("unable to allocate shape and strides.") # <<<<<<<<<<<<<< * * */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__22, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 148, __pyx_L1_error) /* "View.MemoryView":147 * self._strides = self._shape + self.ndim * * if not self._shape: # <<<<<<<<<<<<<< * raise MemoryError("unable to allocate shape and strides.") * */ } /* "View.MemoryView":151 * * * for idx, dim in enumerate(shape): # <<<<<<<<<<<<<< * if dim <= 0: * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) */ __pyx_t_8 = 0; __pyx_t_3 = __pyx_v_shape; __Pyx_INCREF(__pyx_t_3); __pyx_t_1 = 0; for (;;) { if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_1); __Pyx_INCREF(__pyx_t_5); __pyx_t_1++; if (unlikely(0 < 0)) __PYX_ERR(2, 151, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_t_5); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 151, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_dim = __pyx_t_9; __pyx_v_idx = __pyx_t_8; __pyx_t_8 = (__pyx_t_8 + 1); /* "View.MemoryView":152 * * for idx, dim in enumerate(shape): * if dim <= 0: # <<<<<<<<<<<<<< * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) * self._shape[idx] = dim */ __pyx_t_4 = ((__pyx_v_dim <= 0) != 0); if (unlikely(__pyx_t_4)) { /* "View.MemoryView":153 * for idx, dim in enumerate(shape): * if dim <= 0: * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) # <<<<<<<<<<<<<< * self._shape[idx] = dim * */ __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_idx); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_dim); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_6); __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Invalid_shape_in_axis_d_d, __pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_6); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_Raise(__pyx_t_10, 0, 0, 0); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __PYX_ERR(2, 153, __pyx_L1_error) /* "View.MemoryView":152 * * for idx, dim in enumerate(shape): * if dim <= 0: # <<<<<<<<<<<<<< * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) * self._shape[idx] = dim */ } /* "View.MemoryView":154 * if dim <= 0: * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) * self._shape[idx] = dim # <<<<<<<<<<<<<< * * cdef char order */ (__pyx_v_self->_shape[__pyx_v_idx]) = __pyx_v_dim; /* "View.MemoryView":151 * * * for idx, dim in enumerate(shape): # <<<<<<<<<<<<<< * if dim <= 0: * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":157 * * cdef char order * if mode == 'fortran': # <<<<<<<<<<<<<< * order = b'F' * self.mode = u'fortran' */ __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_fortran, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(2, 157, __pyx_L1_error) if (__pyx_t_4) { /* "View.MemoryView":158 * cdef char order * if mode == 'fortran': * order = b'F' # <<<<<<<<<<<<<< * self.mode = u'fortran' * elif mode == 'c': */ __pyx_v_order = 'F'; /* "View.MemoryView":159 * if mode == 'fortran': * order = b'F' * self.mode = u'fortran' # <<<<<<<<<<<<<< * elif mode == 'c': * order = b'C' */ __Pyx_INCREF(__pyx_n_u_fortran); __Pyx_GIVEREF(__pyx_n_u_fortran); __Pyx_GOTREF(__pyx_v_self->mode); __Pyx_DECREF(__pyx_v_self->mode); __pyx_v_self->mode = __pyx_n_u_fortran; /* "View.MemoryView":157 * * cdef char order * if mode == 'fortran': # <<<<<<<<<<<<<< * order = b'F' * self.mode = u'fortran' */ goto __pyx_L10; } /* "View.MemoryView":160 * order = b'F' * self.mode = u'fortran' * elif mode == 'c': # <<<<<<<<<<<<<< * order = b'C' * self.mode = u'c' */ __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_c, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(2, 160, __pyx_L1_error) if (likely(__pyx_t_4)) { /* "View.MemoryView":161 * self.mode = u'fortran' * elif mode == 'c': * order = b'C' # <<<<<<<<<<<<<< * self.mode = u'c' * else: */ __pyx_v_order = 'C'; /* "View.MemoryView":162 * elif mode == 'c': * order = b'C' * self.mode = u'c' # <<<<<<<<<<<<<< * else: * raise ValueError("Invalid mode, expected 'c' or 'fortran', got %s" % mode) */ __Pyx_INCREF(__pyx_n_u_c); __Pyx_GIVEREF(__pyx_n_u_c); __Pyx_GOTREF(__pyx_v_self->mode); __Pyx_DECREF(__pyx_v_self->mode); __pyx_v_self->mode = __pyx_n_u_c; /* "View.MemoryView":160 * order = b'F' * self.mode = u'fortran' * elif mode == 'c': # <<<<<<<<<<<<<< * order = b'C' * self.mode = u'c' */ goto __pyx_L10; } /* "View.MemoryView":164 * self.mode = u'c' * else: * raise ValueError("Invalid mode, expected 'c' or 'fortran', got %s" % mode) # <<<<<<<<<<<<<< * * self.len = fill_contig_strides_array(self._shape, self._strides, */ /*else*/ { __pyx_t_3 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Invalid_mode_expected_c_or_fortr, __pyx_v_mode); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_10, 0, 0, 0); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __PYX_ERR(2, 164, __pyx_L1_error) } __pyx_L10:; /* "View.MemoryView":166 * raise ValueError("Invalid mode, expected 'c' or 'fortran', got %s" % mode) * * self.len = fill_contig_strides_array(self._shape, self._strides, # <<<<<<<<<<<<<< * itemsize, self.ndim, order) * */ __pyx_v_self->len = __pyx_fill_contig_strides_array(__pyx_v_self->_shape, __pyx_v_self->_strides, __pyx_v_itemsize, __pyx_v_self->ndim, __pyx_v_order); /* "View.MemoryView":169 * itemsize, self.ndim, order) * * self.free_data = allocate_buffer # <<<<<<<<<<<<<< * self.dtype_is_object = format == b'O' * if allocate_buffer: */ __pyx_v_self->free_data = __pyx_v_allocate_buffer; /* "View.MemoryView":170 * * self.free_data = allocate_buffer * self.dtype_is_object = format == b'O' # <<<<<<<<<<<<<< * if allocate_buffer: * */ __pyx_t_10 = PyObject_RichCompare(__pyx_v_format, __pyx_n_b_O, Py_EQ); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 170, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 170, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_v_self->dtype_is_object = __pyx_t_4; /* "View.MemoryView":171 * self.free_data = allocate_buffer * self.dtype_is_object = format == b'O' * if allocate_buffer: # <<<<<<<<<<<<<< * * */ __pyx_t_4 = (__pyx_v_allocate_buffer != 0); if (__pyx_t_4) { /* "View.MemoryView":174 * * * self.data = malloc(self.len) # <<<<<<<<<<<<<< * if not self.data: * raise MemoryError("unable to allocate array data.") */ __pyx_v_self->data = ((char *)malloc(__pyx_v_self->len)); /* "View.MemoryView":175 * * self.data = malloc(self.len) * if not self.data: # <<<<<<<<<<<<<< * raise MemoryError("unable to allocate array data.") * */ __pyx_t_4 = ((!(__pyx_v_self->data != 0)) != 0); if (unlikely(__pyx_t_4)) { /* "View.MemoryView":176 * self.data = malloc(self.len) * if not self.data: * raise MemoryError("unable to allocate array data.") # <<<<<<<<<<<<<< * * if self.dtype_is_object: */ __pyx_t_10 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__23, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_Raise(__pyx_t_10, 0, 0, 0); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __PYX_ERR(2, 176, __pyx_L1_error) /* "View.MemoryView":175 * * self.data = malloc(self.len) * if not self.data: # <<<<<<<<<<<<<< * raise MemoryError("unable to allocate array data.") * */ } /* "View.MemoryView":178 * raise MemoryError("unable to allocate array data.") * * if self.dtype_is_object: # <<<<<<<<<<<<<< * p = self.data * for i in range(self.len / itemsize): */ __pyx_t_4 = (__pyx_v_self->dtype_is_object != 0); if (__pyx_t_4) { /* "View.MemoryView":179 * * if self.dtype_is_object: * p = self.data # <<<<<<<<<<<<<< * for i in range(self.len / itemsize): * p[i] = Py_None */ __pyx_v_p = ((PyObject **)__pyx_v_self->data); /* "View.MemoryView":180 * if self.dtype_is_object: * p = self.data * for i in range(self.len / itemsize): # <<<<<<<<<<<<<< * p[i] = Py_None * Py_INCREF(Py_None) */ if (unlikely(__pyx_v_itemsize == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero"); __PYX_ERR(2, 180, __pyx_L1_error) } else if (sizeof(Py_ssize_t) == sizeof(long) && (!(((Py_ssize_t)-1) > 0)) && unlikely(__pyx_v_itemsize == (Py_ssize_t)-1) && unlikely(UNARY_NEG_WOULD_OVERFLOW(__pyx_v_self->len))) { PyErr_SetString(PyExc_OverflowError, "value too large to perform division"); __PYX_ERR(2, 180, __pyx_L1_error) } __pyx_t_1 = __Pyx_div_Py_ssize_t(__pyx_v_self->len, __pyx_v_itemsize); __pyx_t_9 = __pyx_t_1; for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_9; __pyx_t_11+=1) { __pyx_v_i = __pyx_t_11; /* "View.MemoryView":181 * p = self.data * for i in range(self.len / itemsize): * p[i] = Py_None # <<<<<<<<<<<<<< * Py_INCREF(Py_None) * */ (__pyx_v_p[__pyx_v_i]) = Py_None; /* "View.MemoryView":182 * for i in range(self.len / itemsize): * p[i] = Py_None * Py_INCREF(Py_None) # <<<<<<<<<<<<<< * * @cname('getbuffer') */ Py_INCREF(Py_None); } /* "View.MemoryView":178 * raise MemoryError("unable to allocate array data.") * * if self.dtype_is_object: # <<<<<<<<<<<<<< * p = self.data * for i in range(self.len / itemsize): */ } /* "View.MemoryView":171 * self.free_data = allocate_buffer * self.dtype_is_object = format == b'O' * if allocate_buffer: # <<<<<<<<<<<<<< * * */ } /* "View.MemoryView":122 * cdef bint dtype_is_object * * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<< * mode="c", bint allocate_buffer=True): * */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("View.MemoryView.array.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_format); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":185 * * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< * cdef int bufmode = -1 * if self.mode == u"c": */ /* Python wrapper */ static CYTHON_UNUSED int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ static CYTHON_UNUSED int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(((struct __pyx_array_obj *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(struct __pyx_array_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_v_bufmode; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; char *__pyx_t_4; Py_ssize_t __pyx_t_5; int __pyx_t_6; Py_ssize_t *__pyx_t_7; if (__pyx_v_info == NULL) { PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); return -1; } __Pyx_RefNannySetupContext("__getbuffer__", 0); __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); __Pyx_GIVEREF(__pyx_v_info->obj); /* "View.MemoryView":186 * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): * cdef int bufmode = -1 # <<<<<<<<<<<<<< * if self.mode == u"c": * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS */ __pyx_v_bufmode = -1; /* "View.MemoryView":187 * def __getbuffer__(self, Py_buffer *info, int flags): * cdef int bufmode = -1 * if self.mode == u"c": # <<<<<<<<<<<<<< * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * elif self.mode == u"fortran": */ __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_self->mode, __pyx_n_u_c, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 187, __pyx_L1_error) __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":188 * cdef int bufmode = -1 * if self.mode == u"c": * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS # <<<<<<<<<<<<<< * elif self.mode == u"fortran": * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS */ __pyx_v_bufmode = (PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS); /* "View.MemoryView":187 * def __getbuffer__(self, Py_buffer *info, int flags): * cdef int bufmode = -1 * if self.mode == u"c": # <<<<<<<<<<<<<< * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * elif self.mode == u"fortran": */ goto __pyx_L3; } /* "View.MemoryView":189 * if self.mode == u"c": * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * elif self.mode == u"fortran": # <<<<<<<<<<<<<< * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): */ __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_self->mode, __pyx_n_u_fortran, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 189, __pyx_L1_error) __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* "View.MemoryView":190 * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * elif self.mode == u"fortran": * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS # <<<<<<<<<<<<<< * if not (flags & bufmode): * raise ValueError("Can only create a buffer that is contiguous in memory.") */ __pyx_v_bufmode = (PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS); /* "View.MemoryView":189 * if self.mode == u"c": * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * elif self.mode == u"fortran": # <<<<<<<<<<<<<< * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): */ } __pyx_L3:; /* "View.MemoryView":191 * elif self.mode == u"fortran": * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): # <<<<<<<<<<<<<< * raise ValueError("Can only create a buffer that is contiguous in memory.") * info.buf = self.data */ __pyx_t_1 = ((!((__pyx_v_flags & __pyx_v_bufmode) != 0)) != 0); if (unlikely(__pyx_t_1)) { /* "View.MemoryView":192 * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): * raise ValueError("Can only create a buffer that is contiguous in memory.") # <<<<<<<<<<<<<< * info.buf = self.data * info.len = self.len */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__24, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 192, __pyx_L1_error) /* "View.MemoryView":191 * elif self.mode == u"fortran": * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): # <<<<<<<<<<<<<< * raise ValueError("Can only create a buffer that is contiguous in memory.") * info.buf = self.data */ } /* "View.MemoryView":193 * if not (flags & bufmode): * raise ValueError("Can only create a buffer that is contiguous in memory.") * info.buf = self.data # <<<<<<<<<<<<<< * info.len = self.len * info.ndim = self.ndim */ __pyx_t_4 = __pyx_v_self->data; __pyx_v_info->buf = __pyx_t_4; /* "View.MemoryView":194 * raise ValueError("Can only create a buffer that is contiguous in memory.") * info.buf = self.data * info.len = self.len # <<<<<<<<<<<<<< * info.ndim = self.ndim * info.shape = self._shape */ __pyx_t_5 = __pyx_v_self->len; __pyx_v_info->len = __pyx_t_5; /* "View.MemoryView":195 * info.buf = self.data * info.len = self.len * info.ndim = self.ndim # <<<<<<<<<<<<<< * info.shape = self._shape * info.strides = self._strides */ __pyx_t_6 = __pyx_v_self->ndim; __pyx_v_info->ndim = __pyx_t_6; /* "View.MemoryView":196 * info.len = self.len * info.ndim = self.ndim * info.shape = self._shape # <<<<<<<<<<<<<< * info.strides = self._strides * info.suboffsets = NULL */ __pyx_t_7 = __pyx_v_self->_shape; __pyx_v_info->shape = __pyx_t_7; /* "View.MemoryView":197 * info.ndim = self.ndim * info.shape = self._shape * info.strides = self._strides # <<<<<<<<<<<<<< * info.suboffsets = NULL * info.itemsize = self.itemsize */ __pyx_t_7 = __pyx_v_self->_strides; __pyx_v_info->strides = __pyx_t_7; /* "View.MemoryView":198 * info.shape = self._shape * info.strides = self._strides * info.suboffsets = NULL # <<<<<<<<<<<<<< * info.itemsize = self.itemsize * info.readonly = 0 */ __pyx_v_info->suboffsets = NULL; /* "View.MemoryView":199 * info.strides = self._strides * info.suboffsets = NULL * info.itemsize = self.itemsize # <<<<<<<<<<<<<< * info.readonly = 0 * */ __pyx_t_5 = __pyx_v_self->itemsize; __pyx_v_info->itemsize = __pyx_t_5; /* "View.MemoryView":200 * info.suboffsets = NULL * info.itemsize = self.itemsize * info.readonly = 0 # <<<<<<<<<<<<<< * * if flags & PyBUF_FORMAT: */ __pyx_v_info->readonly = 0; /* "View.MemoryView":202 * info.readonly = 0 * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * info.format = self.format * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0); if (__pyx_t_1) { /* "View.MemoryView":203 * * if flags & PyBUF_FORMAT: * info.format = self.format # <<<<<<<<<<<<<< * else: * info.format = NULL */ __pyx_t_4 = __pyx_v_self->format; __pyx_v_info->format = __pyx_t_4; /* "View.MemoryView":202 * info.readonly = 0 * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * info.format = self.format * else: */ goto __pyx_L5; } /* "View.MemoryView":205 * info.format = self.format * else: * info.format = NULL # <<<<<<<<<<<<<< * * info.obj = self */ /*else*/ { __pyx_v_info->format = NULL; } __pyx_L5:; /* "View.MemoryView":207 * info.format = NULL * * info.obj = self # <<<<<<<<<<<<<< * * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") */ __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = ((PyObject *)__pyx_v_self); /* "View.MemoryView":185 * * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< * cdef int bufmode = -1 * if self.mode == u"c": */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.array.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; if (__pyx_v_info->obj != NULL) { __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; } goto __pyx_L2; __pyx_L0:; if (__pyx_v_info->obj == Py_None) { __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; } __pyx_L2:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":211 * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") * * def __dealloc__(array self): # <<<<<<<<<<<<<< * if self.callback_free_data != NULL: * self.callback_free_data(self.data) */ /* Python wrapper */ static void __pyx_array___dealloc__(PyObject *__pyx_v_self); /*proto*/ static void __pyx_array___dealloc__(PyObject *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(((struct __pyx_array_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(struct __pyx_array_obj *__pyx_v_self) { __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("__dealloc__", 0); /* "View.MemoryView":212 * * def __dealloc__(array self): * if self.callback_free_data != NULL: # <<<<<<<<<<<<<< * self.callback_free_data(self.data) * elif self.free_data: */ __pyx_t_1 = ((__pyx_v_self->callback_free_data != NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":213 * def __dealloc__(array self): * if self.callback_free_data != NULL: * self.callback_free_data(self.data) # <<<<<<<<<<<<<< * elif self.free_data: * if self.dtype_is_object: */ __pyx_v_self->callback_free_data(__pyx_v_self->data); /* "View.MemoryView":212 * * def __dealloc__(array self): * if self.callback_free_data != NULL: # <<<<<<<<<<<<<< * self.callback_free_data(self.data) * elif self.free_data: */ goto __pyx_L3; } /* "View.MemoryView":214 * if self.callback_free_data != NULL: * self.callback_free_data(self.data) * elif self.free_data: # <<<<<<<<<<<<<< * if self.dtype_is_object: * refcount_objects_in_slice(self.data, self._shape, */ __pyx_t_1 = (__pyx_v_self->free_data != 0); if (__pyx_t_1) { /* "View.MemoryView":215 * self.callback_free_data(self.data) * elif self.free_data: * if self.dtype_is_object: # <<<<<<<<<<<<<< * refcount_objects_in_slice(self.data, self._shape, * self._strides, self.ndim, False) */ __pyx_t_1 = (__pyx_v_self->dtype_is_object != 0); if (__pyx_t_1) { /* "View.MemoryView":216 * elif self.free_data: * if self.dtype_is_object: * refcount_objects_in_slice(self.data, self._shape, # <<<<<<<<<<<<<< * self._strides, self.ndim, False) * free(self.data) */ __pyx_memoryview_refcount_objects_in_slice(__pyx_v_self->data, __pyx_v_self->_shape, __pyx_v_self->_strides, __pyx_v_self->ndim, 0); /* "View.MemoryView":215 * self.callback_free_data(self.data) * elif self.free_data: * if self.dtype_is_object: # <<<<<<<<<<<<<< * refcount_objects_in_slice(self.data, self._shape, * self._strides, self.ndim, False) */ } /* "View.MemoryView":218 * refcount_objects_in_slice(self.data, self._shape, * self._strides, self.ndim, False) * free(self.data) # <<<<<<<<<<<<<< * PyObject_Free(self._shape) * */ free(__pyx_v_self->data); /* "View.MemoryView":214 * if self.callback_free_data != NULL: * self.callback_free_data(self.data) * elif self.free_data: # <<<<<<<<<<<<<< * if self.dtype_is_object: * refcount_objects_in_slice(self.data, self._shape, */ } __pyx_L3:; /* "View.MemoryView":219 * self._strides, self.ndim, False) * free(self.data) * PyObject_Free(self._shape) # <<<<<<<<<<<<<< * * @property */ PyObject_Free(__pyx_v_self->_shape); /* "View.MemoryView":211 * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") * * def __dealloc__(array self): # <<<<<<<<<<<<<< * if self.callback_free_data != NULL: * self.callback_free_data(self.data) */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "View.MemoryView":222 * * @property * def memview(self): # <<<<<<<<<<<<<< * return self.get_memview() * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_5array_7memview___get__(((struct __pyx_array_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_5array_7memview___get__(struct __pyx_array_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":223 * @property * def memview(self): * return self.get_memview() # <<<<<<<<<<<<<< * * @cname('get_memview') */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((struct __pyx_vtabstruct_array *)__pyx_v_self->__pyx_vtab)->get_memview(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":222 * * @property * def memview(self): # <<<<<<<<<<<<<< * return self.get_memview() * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.array.memview.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":226 * * @cname('get_memview') * cdef get_memview(self): # <<<<<<<<<<<<<< * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE * return memoryview(self, flags, self.dtype_is_object) */ static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *__pyx_v_self) { int __pyx_v_flags; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("get_memview", 0); /* "View.MemoryView":227 * @cname('get_memview') * cdef get_memview(self): * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE # <<<<<<<<<<<<<< * return memoryview(self, flags, self.dtype_is_object) * */ __pyx_v_flags = ((PyBUF_ANY_CONTIGUOUS | PyBUF_FORMAT) | PyBUF_WRITABLE); /* "View.MemoryView":228 * cdef get_memview(self): * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE * return memoryview(self, flags, self.dtype_is_object) # <<<<<<<<<<<<<< * * def __len__(self): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":226 * * @cname('get_memview') * cdef get_memview(self): # <<<<<<<<<<<<<< * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE * return memoryview(self, flags, self.dtype_is_object) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.array.get_memview", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":230 * return memoryview(self, flags, self.dtype_is_object) * * def __len__(self): # <<<<<<<<<<<<<< * return self._shape[0] * */ /* Python wrapper */ static Py_ssize_t __pyx_array___len__(PyObject *__pyx_v_self); /*proto*/ static Py_ssize_t __pyx_array___len__(PyObject *__pyx_v_self) { Py_ssize_t __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__len__ (wrapper)", 0); __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(((struct __pyx_array_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static Py_ssize_t __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(struct __pyx_array_obj *__pyx_v_self) { Py_ssize_t __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__len__", 0); /* "View.MemoryView":231 * * def __len__(self): * return self._shape[0] # <<<<<<<<<<<<<< * * def __getattr__(self, attr): */ __pyx_r = (__pyx_v_self->_shape[0]); goto __pyx_L0; /* "View.MemoryView":230 * return memoryview(self, flags, self.dtype_is_object) * * def __len__(self): # <<<<<<<<<<<<<< * return self._shape[0] * */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":233 * return self._shape[0] * * def __getattr__(self, attr): # <<<<<<<<<<<<<< * return getattr(self.memview, attr) * */ /* Python wrapper */ static PyObject *__pyx_array___getattr__(PyObject *__pyx_v_self, PyObject *__pyx_v_attr); /*proto*/ static PyObject *__pyx_array___getattr__(PyObject *__pyx_v_self, PyObject *__pyx_v_attr) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getattr__ (wrapper)", 0); __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_attr)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_attr) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__getattr__", 0); /* "View.MemoryView":234 * * def __getattr__(self, attr): * return getattr(self.memview, attr) # <<<<<<<<<<<<<< * * def __getitem__(self, item): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_GetAttr(__pyx_t_1, __pyx_v_attr); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":233 * return self._shape[0] * * def __getattr__(self, attr): # <<<<<<<<<<<<<< * return getattr(self.memview, attr) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.array.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":236 * return getattr(self.memview, attr) * * def __getitem__(self, item): # <<<<<<<<<<<<<< * return self.memview[item] * */ /* Python wrapper */ static PyObject *__pyx_array___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item); /*proto*/ static PyObject *__pyx_array___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_item)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__getitem__", 0); /* "View.MemoryView":237 * * def __getitem__(self, item): * return self.memview[item] # <<<<<<<<<<<<<< * * def __setitem__(self, item, value): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_item); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 237, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":236 * return getattr(self.memview, attr) * * def __getitem__(self, item): # <<<<<<<<<<<<<< * return self.memview[item] * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.array.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":239 * return self.memview[item] * * def __setitem__(self, item, value): # <<<<<<<<<<<<<< * self.memview[item] = value * */ /* Python wrapper */ static int __pyx_array___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value); /*proto*/ static int __pyx_array___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0); __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_item), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__setitem__", 0); /* "View.MemoryView":240 * * def __setitem__(self, item, value): * self.memview[item] = value # <<<<<<<<<<<<<< * * */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_item, __pyx_v_value) < 0)) __PYX_ERR(2, 240, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "View.MemoryView":239 * return self.memview[item] * * def __setitem__(self, item, value): # <<<<<<<<<<<<<< * self.memview[item] = value * */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.array.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_array_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw___pyx_array_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_array___reduce_cython__(((struct __pyx_array_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_array___reduce_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__25, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(2, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.array.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_array_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw___pyx_array_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_array_2__setstate_cython__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_array_2__setstate_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__26, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(2, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.array.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":244 * * @cname("__pyx_array_new") * cdef array array_cwrapper(tuple shape, Py_ssize_t itemsize, char *format, # <<<<<<<<<<<<<< * char *mode, char *buf): * cdef array result */ static struct __pyx_array_obj *__pyx_array_new(PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, char *__pyx_v_format, char *__pyx_v_mode, char *__pyx_v_buf) { struct __pyx_array_obj *__pyx_v_result = 0; struct __pyx_array_obj *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("array_cwrapper", 0); /* "View.MemoryView":248 * cdef array result * * if buf == NULL: # <<<<<<<<<<<<<< * result = array(shape, itemsize, format, mode.decode('ASCII')) * else: */ __pyx_t_1 = ((__pyx_v_buf == NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":249 * * if buf == NULL: * result = array(shape, itemsize, format, mode.decode('ASCII')) # <<<<<<<<<<<<<< * else: * result = array(shape, itemsize, format, mode.decode('ASCII'), */ __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_itemsize); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_format); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_decode_c_string(__pyx_v_mode, 0, strlen(__pyx_v_mode), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_shape); __Pyx_GIVEREF(__pyx_v_shape); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_shape); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_array_type), __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 249, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_result = ((struct __pyx_array_obj *)__pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":248 * cdef array result * * if buf == NULL: # <<<<<<<<<<<<<< * result = array(shape, itemsize, format, mode.decode('ASCII')) * else: */ goto __pyx_L3; } /* "View.MemoryView":251 * result = array(shape, itemsize, format, mode.decode('ASCII')) * else: * result = array(shape, itemsize, format, mode.decode('ASCII'), # <<<<<<<<<<<<<< * allocate_buffer=False) * result.data = buf */ /*else*/ { __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_itemsize); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_format); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_mode, 0, strlen(__pyx_v_mode), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_shape); __Pyx_GIVEREF(__pyx_v_shape); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_shape); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_3); __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_3 = 0; /* "View.MemoryView":252 * else: * result = array(shape, itemsize, format, mode.decode('ASCII'), * allocate_buffer=False) # <<<<<<<<<<<<<< * result.data = buf * */ __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_allocate_buffer, Py_False) < 0) __PYX_ERR(2, 252, __pyx_L1_error) /* "View.MemoryView":251 * result = array(shape, itemsize, format, mode.decode('ASCII')) * else: * result = array(shape, itemsize, format, mode.decode('ASCII'), # <<<<<<<<<<<<<< * allocate_buffer=False) * result.data = buf */ __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_array_type), __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_result = ((struct __pyx_array_obj *)__pyx_t_5); __pyx_t_5 = 0; /* "View.MemoryView":253 * result = array(shape, itemsize, format, mode.decode('ASCII'), * allocate_buffer=False) * result.data = buf # <<<<<<<<<<<<<< * * return result */ __pyx_v_result->data = __pyx_v_buf; } __pyx_L3:; /* "View.MemoryView":255 * result.data = buf * * return result # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_result)); __pyx_r = __pyx_v_result; goto __pyx_L0; /* "View.MemoryView":244 * * @cname("__pyx_array_new") * cdef array array_cwrapper(tuple shape, Py_ssize_t itemsize, char *format, # <<<<<<<<<<<<<< * char *mode, char *buf): * cdef array result */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.array_cwrapper", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_result); __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":281 * cdef class Enum(object): * cdef object name * def __init__(self, name): # <<<<<<<<<<<<<< * self.name = name * def __repr__(self): */ /* Python wrapper */ static int __pyx_MemviewEnum___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_MemviewEnum___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_name = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0}; PyObject* values[1] = {0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(2, 281, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); } __pyx_v_name = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 281, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("View.MemoryView.Enum.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self), __pyx_v_name); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v_name) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); /* "View.MemoryView":282 * cdef object name * def __init__(self, name): * self.name = name # <<<<<<<<<<<<<< * def __repr__(self): * return self.name */ __Pyx_INCREF(__pyx_v_name); __Pyx_GIVEREF(__pyx_v_name); __Pyx_GOTREF(__pyx_v_self->name); __Pyx_DECREF(__pyx_v_self->name); __pyx_v_self->name = __pyx_v_name; /* "View.MemoryView":281 * cdef class Enum(object): * cdef object name * def __init__(self, name): # <<<<<<<<<<<<<< * self.name = name * def __repr__(self): */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":283 * def __init__(self, name): * self.name = name * def __repr__(self): # <<<<<<<<<<<<<< * return self.name * */ /* Python wrapper */ static PyObject *__pyx_MemviewEnum___repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_MemviewEnum___repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(struct __pyx_MemviewEnum_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__", 0); /* "View.MemoryView":284 * self.name = name * def __repr__(self): * return self.name # <<<<<<<<<<<<<< * * cdef generic = Enum("") */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->name); __pyx_r = __pyx_v_self->name; goto __pyx_L0; /* "View.MemoryView":283 * def __init__(self, name): * self.name = name * def __repr__(self): # <<<<<<<<<<<<<< * return self.name * */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * cdef tuple state * cdef object _dict */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_MemviewEnum_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw___pyx_MemviewEnum_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_MemviewEnum___reduce_cython__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_MemviewEnum___reduce_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self) { PyObject *__pyx_v_state = 0; PyObject *__pyx_v__dict = 0; int __pyx_v_use_setstate; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":5 * cdef object _dict * cdef bint use_setstate * state = (self.name,) # <<<<<<<<<<<<<< * _dict = getattr(self, '__dict__', None) * if _dict is not None: */ __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_self->name); __Pyx_GIVEREF(__pyx_v_self->name); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->name); __pyx_v_state = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "(tree fragment)":6 * cdef bint use_setstate * state = (self.name,) * _dict = getattr(self, '__dict__', None) # <<<<<<<<<<<<<< * if _dict is not None: * state += (_dict,) */ __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v__dict = __pyx_t_1; __pyx_t_1 = 0; /* "(tree fragment)":7 * state = (self.name,) * _dict = getattr(self, '__dict__', None) * if _dict is not None: # <<<<<<<<<<<<<< * state += (_dict,) * use_setstate = True */ __pyx_t_2 = (__pyx_v__dict != Py_None); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* "(tree fragment)":8 * _dict = getattr(self, '__dict__', None) * if _dict is not None: * state += (_dict,) # <<<<<<<<<<<<<< * use_setstate = True * else: */ __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v__dict); __Pyx_GIVEREF(__pyx_v__dict); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict); __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4)); __pyx_t_4 = 0; /* "(tree fragment)":9 * if _dict is not None: * state += (_dict,) * use_setstate = True # <<<<<<<<<<<<<< * else: * use_setstate = self.name is not None */ __pyx_v_use_setstate = 1; /* "(tree fragment)":7 * state = (self.name,) * _dict = getattr(self, '__dict__', None) * if _dict is not None: # <<<<<<<<<<<<<< * state += (_dict,) * use_setstate = True */ goto __pyx_L3; } /* "(tree fragment)":11 * use_setstate = True * else: * use_setstate = self.name is not None # <<<<<<<<<<<<<< * if use_setstate: * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state */ /*else*/ { __pyx_t_3 = (__pyx_v_self->name != Py_None); __pyx_v_use_setstate = __pyx_t_3; } __pyx_L3:; /* "(tree fragment)":12 * else: * use_setstate = self.name is not None * if use_setstate: # <<<<<<<<<<<<<< * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state * else: */ __pyx_t_3 = (__pyx_v_use_setstate != 0); if (__pyx_t_3) { /* "(tree fragment)":13 * use_setstate = self.name is not None * if use_setstate: * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state # <<<<<<<<<<<<<< * else: * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Enum); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_INCREF(__pyx_int_184977713); __Pyx_GIVEREF(__pyx_int_184977713); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_184977713); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None); __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 13, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1); __Pyx_INCREF(__pyx_v_state); __Pyx_GIVEREF(__pyx_v_state); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state); __pyx_t_4 = 0; __pyx_t_1 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0; /* "(tree fragment)":12 * else: * use_setstate = self.name is not None * if use_setstate: # <<<<<<<<<<<<<< * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state * else: */ } /* "(tree fragment)":15 * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state * else: * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * __pyx_unpickle_Enum__set_state(self, __pyx_state) */ /*else*/ { __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_Enum); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); __Pyx_INCREF(__pyx_int_184977713); __Pyx_GIVEREF(__pyx_int_184977713); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_184977713); __Pyx_INCREF(__pyx_v_state); __Pyx_GIVEREF(__pyx_v_state); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); __pyx_t_5 = 0; __pyx_t_1 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * cdef tuple state * cdef object _dict */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.Enum.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_state); __Pyx_XDECREF(__pyx_v__dict); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":16 * else: * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * __pyx_unpickle_Enum__set_state(self, __pyx_state) */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_MemviewEnum_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw___pyx_MemviewEnum_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_MemviewEnum_2__setstate_cython__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_MemviewEnum_2__setstate_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":17 * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) * def __setstate_cython__(self, __pyx_state): * __pyx_unpickle_Enum__set_state(self, __pyx_state) # <<<<<<<<<<<<<< */ if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(2, 17, __pyx_L1_error) __pyx_t_1 = __pyx_unpickle_Enum__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 17, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "(tree fragment)":16 * else: * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * __pyx_unpickle_Enum__set_state(self, __pyx_state) */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.Enum.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":298 * * @cname('__pyx_align_pointer') * cdef void *align_pointer(void *memory, size_t alignment) nogil: # <<<<<<<<<<<<<< * "Align pointer memory on a given boundary" * cdef Py_intptr_t aligned_p = memory */ static void *__pyx_align_pointer(void *__pyx_v_memory, size_t __pyx_v_alignment) { Py_intptr_t __pyx_v_aligned_p; size_t __pyx_v_offset; void *__pyx_r; int __pyx_t_1; /* "View.MemoryView":300 * cdef void *align_pointer(void *memory, size_t alignment) nogil: * "Align pointer memory on a given boundary" * cdef Py_intptr_t aligned_p = memory # <<<<<<<<<<<<<< * cdef size_t offset * */ __pyx_v_aligned_p = ((Py_intptr_t)__pyx_v_memory); /* "View.MemoryView":304 * * with cython.cdivision(True): * offset = aligned_p % alignment # <<<<<<<<<<<<<< * * if offset > 0: */ __pyx_v_offset = (__pyx_v_aligned_p % __pyx_v_alignment); /* "View.MemoryView":306 * offset = aligned_p % alignment * * if offset > 0: # <<<<<<<<<<<<<< * aligned_p += alignment - offset * */ __pyx_t_1 = ((__pyx_v_offset > 0) != 0); if (__pyx_t_1) { /* "View.MemoryView":307 * * if offset > 0: * aligned_p += alignment - offset # <<<<<<<<<<<<<< * * return aligned_p */ __pyx_v_aligned_p = (__pyx_v_aligned_p + (__pyx_v_alignment - __pyx_v_offset)); /* "View.MemoryView":306 * offset = aligned_p % alignment * * if offset > 0: # <<<<<<<<<<<<<< * aligned_p += alignment - offset * */ } /* "View.MemoryView":309 * aligned_p += alignment - offset * * return aligned_p # <<<<<<<<<<<<<< * * */ __pyx_r = ((void *)__pyx_v_aligned_p); goto __pyx_L0; /* "View.MemoryView":298 * * @cname('__pyx_align_pointer') * cdef void *align_pointer(void *memory, size_t alignment) nogil: # <<<<<<<<<<<<<< * "Align pointer memory on a given boundary" * cdef Py_intptr_t aligned_p = memory */ /* function exit code */ __pyx_L0:; return __pyx_r; } /* "View.MemoryView":345 * cdef __Pyx_TypeInfo *typeinfo * * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): # <<<<<<<<<<<<<< * self.obj = obj * self.flags = flags */ /* Python wrapper */ static int __pyx_memoryview___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_memoryview___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_obj = 0; int __pyx_v_flags; int __pyx_v_dtype_is_object; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_obj,&__pyx_n_s_flags,&__pyx_n_s_dtype_is_object,0}; PyObject* values[3] = {0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_obj)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, 1); __PYX_ERR(2, 345, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dtype_is_object); if (value) { values[2] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(2, 345, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_obj = values[0]; __pyx_v_flags = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_flags == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 345, __pyx_L3_error) if (values[2]) { __pyx_v_dtype_is_object = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_dtype_is_object == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 345, __pyx_L3_error) } else { __pyx_v_dtype_is_object = ((int)0); } } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 345, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("View.MemoryView.memoryview.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_obj, __pyx_v_flags, __pyx_v_dtype_is_object); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_v_flags, int __pyx_v_dtype_is_object) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; __Pyx_RefNannySetupContext("__cinit__", 0); /* "View.MemoryView":346 * * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): * self.obj = obj # <<<<<<<<<<<<<< * self.flags = flags * if type(self) is memoryview or obj is not None: */ __Pyx_INCREF(__pyx_v_obj); __Pyx_GIVEREF(__pyx_v_obj); __Pyx_GOTREF(__pyx_v_self->obj); __Pyx_DECREF(__pyx_v_self->obj); __pyx_v_self->obj = __pyx_v_obj; /* "View.MemoryView":347 * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): * self.obj = obj * self.flags = flags # <<<<<<<<<<<<<< * if type(self) is memoryview or obj is not None: * __Pyx_GetBuffer(obj, &self.view, flags) */ __pyx_v_self->flags = __pyx_v_flags; /* "View.MemoryView":348 * self.obj = obj * self.flags = flags * if type(self) is memoryview or obj is not None: # <<<<<<<<<<<<<< * __Pyx_GetBuffer(obj, &self.view, flags) * if self.view.obj == NULL: */ __pyx_t_2 = (((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))) == ((PyObject *)__pyx_memoryview_type)); __pyx_t_3 = (__pyx_t_2 != 0); if (!__pyx_t_3) { } else { __pyx_t_1 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = (__pyx_v_obj != Py_None); __pyx_t_2 = (__pyx_t_3 != 0); __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; if (__pyx_t_1) { /* "View.MemoryView":349 * self.flags = flags * if type(self) is memoryview or obj is not None: * __Pyx_GetBuffer(obj, &self.view, flags) # <<<<<<<<<<<<<< * if self.view.obj == NULL: * (<__pyx_buffer *> &self.view).obj = Py_None */ __pyx_t_4 = __Pyx_GetBuffer(__pyx_v_obj, (&__pyx_v_self->view), __pyx_v_flags); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 349, __pyx_L1_error) /* "View.MemoryView":350 * if type(self) is memoryview or obj is not None: * __Pyx_GetBuffer(obj, &self.view, flags) * if self.view.obj == NULL: # <<<<<<<<<<<<<< * (<__pyx_buffer *> &self.view).obj = Py_None * Py_INCREF(Py_None) */ __pyx_t_1 = ((((PyObject *)__pyx_v_self->view.obj) == NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":351 * __Pyx_GetBuffer(obj, &self.view, flags) * if self.view.obj == NULL: * (<__pyx_buffer *> &self.view).obj = Py_None # <<<<<<<<<<<<<< * Py_INCREF(Py_None) * */ ((Py_buffer *)(&__pyx_v_self->view))->obj = Py_None; /* "View.MemoryView":352 * if self.view.obj == NULL: * (<__pyx_buffer *> &self.view).obj = Py_None * Py_INCREF(Py_None) # <<<<<<<<<<<<<< * * global __pyx_memoryview_thread_locks_used */ Py_INCREF(Py_None); /* "View.MemoryView":350 * if type(self) is memoryview or obj is not None: * __Pyx_GetBuffer(obj, &self.view, flags) * if self.view.obj == NULL: # <<<<<<<<<<<<<< * (<__pyx_buffer *> &self.view).obj = Py_None * Py_INCREF(Py_None) */ } /* "View.MemoryView":348 * self.obj = obj * self.flags = flags * if type(self) is memoryview or obj is not None: # <<<<<<<<<<<<<< * __Pyx_GetBuffer(obj, &self.view, flags) * if self.view.obj == NULL: */ } /* "View.MemoryView":355 * * global __pyx_memoryview_thread_locks_used * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: # <<<<<<<<<<<<<< * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] * __pyx_memoryview_thread_locks_used += 1 */ __pyx_t_1 = ((__pyx_memoryview_thread_locks_used < 8) != 0); if (__pyx_t_1) { /* "View.MemoryView":356 * global __pyx_memoryview_thread_locks_used * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks_used += 1 * if self.lock is NULL: */ __pyx_v_self->lock = (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]); /* "View.MemoryView":357 * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] * __pyx_memoryview_thread_locks_used += 1 # <<<<<<<<<<<<<< * if self.lock is NULL: * self.lock = PyThread_allocate_lock() */ __pyx_memoryview_thread_locks_used = (__pyx_memoryview_thread_locks_used + 1); /* "View.MemoryView":355 * * global __pyx_memoryview_thread_locks_used * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: # <<<<<<<<<<<<<< * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] * __pyx_memoryview_thread_locks_used += 1 */ } /* "View.MemoryView":358 * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] * __pyx_memoryview_thread_locks_used += 1 * if self.lock is NULL: # <<<<<<<<<<<<<< * self.lock = PyThread_allocate_lock() * if self.lock is NULL: */ __pyx_t_1 = ((__pyx_v_self->lock == NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":359 * __pyx_memoryview_thread_locks_used += 1 * if self.lock is NULL: * self.lock = PyThread_allocate_lock() # <<<<<<<<<<<<<< * if self.lock is NULL: * raise MemoryError */ __pyx_v_self->lock = PyThread_allocate_lock(); /* "View.MemoryView":360 * if self.lock is NULL: * self.lock = PyThread_allocate_lock() * if self.lock is NULL: # <<<<<<<<<<<<<< * raise MemoryError * */ __pyx_t_1 = ((__pyx_v_self->lock == NULL) != 0); if (unlikely(__pyx_t_1)) { /* "View.MemoryView":361 * self.lock = PyThread_allocate_lock() * if self.lock is NULL: * raise MemoryError # <<<<<<<<<<<<<< * * if flags & PyBUF_FORMAT: */ PyErr_NoMemory(); __PYX_ERR(2, 361, __pyx_L1_error) /* "View.MemoryView":360 * if self.lock is NULL: * self.lock = PyThread_allocate_lock() * if self.lock is NULL: # <<<<<<<<<<<<<< * raise MemoryError * */ } /* "View.MemoryView":358 * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] * __pyx_memoryview_thread_locks_used += 1 * if self.lock is NULL: # <<<<<<<<<<<<<< * self.lock = PyThread_allocate_lock() * if self.lock is NULL: */ } /* "View.MemoryView":363 * raise MemoryError * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0); if (__pyx_t_1) { /* "View.MemoryView":364 * * if flags & PyBUF_FORMAT: * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') # <<<<<<<<<<<<<< * else: * self.dtype_is_object = dtype_is_object */ __pyx_t_2 = (((__pyx_v_self->view.format[0]) == 'O') != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L11_bool_binop_done; } __pyx_t_2 = (((__pyx_v_self->view.format[1]) == '\x00') != 0); __pyx_t_1 = __pyx_t_2; __pyx_L11_bool_binop_done:; __pyx_v_self->dtype_is_object = __pyx_t_1; /* "View.MemoryView":363 * raise MemoryError * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') * else: */ goto __pyx_L10; } /* "View.MemoryView":366 * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') * else: * self.dtype_is_object = dtype_is_object # <<<<<<<<<<<<<< * * self.acquisition_count_aligned_p = <__pyx_atomic_int *> align_pointer( */ /*else*/ { __pyx_v_self->dtype_is_object = __pyx_v_dtype_is_object; } __pyx_L10:; /* "View.MemoryView":368 * self.dtype_is_object = dtype_is_object * * self.acquisition_count_aligned_p = <__pyx_atomic_int *> align_pointer( # <<<<<<<<<<<<<< * &self.acquisition_count[0], sizeof(__pyx_atomic_int)) * self.typeinfo = NULL */ __pyx_v_self->acquisition_count_aligned_p = ((__pyx_atomic_int *)__pyx_align_pointer(((void *)(&(__pyx_v_self->acquisition_count[0]))), (sizeof(__pyx_atomic_int)))); /* "View.MemoryView":370 * self.acquisition_count_aligned_p = <__pyx_atomic_int *> align_pointer( * &self.acquisition_count[0], sizeof(__pyx_atomic_int)) * self.typeinfo = NULL # <<<<<<<<<<<<<< * * def __dealloc__(memoryview self): */ __pyx_v_self->typeinfo = NULL; /* "View.MemoryView":345 * cdef __Pyx_TypeInfo *typeinfo * * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): # <<<<<<<<<<<<<< * self.obj = obj * self.flags = flags */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("View.MemoryView.memoryview.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":372 * self.typeinfo = NULL * * def __dealloc__(memoryview self): # <<<<<<<<<<<<<< * if self.obj is not None: * __Pyx_ReleaseBuffer(&self.view) */ /* Python wrapper */ static void __pyx_memoryview___dealloc__(PyObject *__pyx_v_self); /*proto*/ static void __pyx_memoryview___dealloc__(PyObject *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(struct __pyx_memoryview_obj *__pyx_v_self) { int __pyx_v_i; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; int __pyx_t_5; PyThread_type_lock __pyx_t_6; PyThread_type_lock __pyx_t_7; __Pyx_RefNannySetupContext("__dealloc__", 0); /* "View.MemoryView":373 * * def __dealloc__(memoryview self): * if self.obj is not None: # <<<<<<<<<<<<<< * __Pyx_ReleaseBuffer(&self.view) * elif (<__pyx_buffer *> &self.view).obj == Py_None: */ __pyx_t_1 = (__pyx_v_self->obj != Py_None); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":374 * def __dealloc__(memoryview self): * if self.obj is not None: * __Pyx_ReleaseBuffer(&self.view) # <<<<<<<<<<<<<< * elif (<__pyx_buffer *> &self.view).obj == Py_None: * */ __Pyx_ReleaseBuffer((&__pyx_v_self->view)); /* "View.MemoryView":373 * * def __dealloc__(memoryview self): * if self.obj is not None: # <<<<<<<<<<<<<< * __Pyx_ReleaseBuffer(&self.view) * elif (<__pyx_buffer *> &self.view).obj == Py_None: */ goto __pyx_L3; } /* "View.MemoryView":375 * if self.obj is not None: * __Pyx_ReleaseBuffer(&self.view) * elif (<__pyx_buffer *> &self.view).obj == Py_None: # <<<<<<<<<<<<<< * * (<__pyx_buffer *> &self.view).obj = NULL */ __pyx_t_2 = ((((Py_buffer *)(&__pyx_v_self->view))->obj == Py_None) != 0); if (__pyx_t_2) { /* "View.MemoryView":377 * elif (<__pyx_buffer *> &self.view).obj == Py_None: * * (<__pyx_buffer *> &self.view).obj = NULL # <<<<<<<<<<<<<< * Py_DECREF(Py_None) * */ ((Py_buffer *)(&__pyx_v_self->view))->obj = NULL; /* "View.MemoryView":378 * * (<__pyx_buffer *> &self.view).obj = NULL * Py_DECREF(Py_None) # <<<<<<<<<<<<<< * * cdef int i */ Py_DECREF(Py_None); /* "View.MemoryView":375 * if self.obj is not None: * __Pyx_ReleaseBuffer(&self.view) * elif (<__pyx_buffer *> &self.view).obj == Py_None: # <<<<<<<<<<<<<< * * (<__pyx_buffer *> &self.view).obj = NULL */ } __pyx_L3:; /* "View.MemoryView":382 * cdef int i * global __pyx_memoryview_thread_locks_used * if self.lock != NULL: # <<<<<<<<<<<<<< * for i in range(__pyx_memoryview_thread_locks_used): * if __pyx_memoryview_thread_locks[i] is self.lock: */ __pyx_t_2 = ((__pyx_v_self->lock != NULL) != 0); if (__pyx_t_2) { /* "View.MemoryView":383 * global __pyx_memoryview_thread_locks_used * if self.lock != NULL: * for i in range(__pyx_memoryview_thread_locks_used): # <<<<<<<<<<<<<< * if __pyx_memoryview_thread_locks[i] is self.lock: * __pyx_memoryview_thread_locks_used -= 1 */ __pyx_t_3 = __pyx_memoryview_thread_locks_used; __pyx_t_4 = __pyx_t_3; for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { __pyx_v_i = __pyx_t_5; /* "View.MemoryView":384 * if self.lock != NULL: * for i in range(__pyx_memoryview_thread_locks_used): * if __pyx_memoryview_thread_locks[i] is self.lock: # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks_used -= 1 * if i != __pyx_memoryview_thread_locks_used: */ __pyx_t_2 = (((__pyx_memoryview_thread_locks[__pyx_v_i]) == __pyx_v_self->lock) != 0); if (__pyx_t_2) { /* "View.MemoryView":385 * for i in range(__pyx_memoryview_thread_locks_used): * if __pyx_memoryview_thread_locks[i] is self.lock: * __pyx_memoryview_thread_locks_used -= 1 # <<<<<<<<<<<<<< * if i != __pyx_memoryview_thread_locks_used: * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( */ __pyx_memoryview_thread_locks_used = (__pyx_memoryview_thread_locks_used - 1); /* "View.MemoryView":386 * if __pyx_memoryview_thread_locks[i] is self.lock: * __pyx_memoryview_thread_locks_used -= 1 * if i != __pyx_memoryview_thread_locks_used: # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) */ __pyx_t_2 = ((__pyx_v_i != __pyx_memoryview_thread_locks_used) != 0); if (__pyx_t_2) { /* "View.MemoryView":388 * if i != __pyx_memoryview_thread_locks_used: * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) # <<<<<<<<<<<<<< * break * else: */ __pyx_t_6 = (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]); __pyx_t_7 = (__pyx_memoryview_thread_locks[__pyx_v_i]); /* "View.MemoryView":387 * __pyx_memoryview_thread_locks_used -= 1 * if i != __pyx_memoryview_thread_locks_used: * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) * break */ (__pyx_memoryview_thread_locks[__pyx_v_i]) = __pyx_t_6; (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]) = __pyx_t_7; /* "View.MemoryView":386 * if __pyx_memoryview_thread_locks[i] is self.lock: * __pyx_memoryview_thread_locks_used -= 1 * if i != __pyx_memoryview_thread_locks_used: # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) */ } /* "View.MemoryView":389 * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) * break # <<<<<<<<<<<<<< * else: * PyThread_free_lock(self.lock) */ goto __pyx_L6_break; /* "View.MemoryView":384 * if self.lock != NULL: * for i in range(__pyx_memoryview_thread_locks_used): * if __pyx_memoryview_thread_locks[i] is self.lock: # <<<<<<<<<<<<<< * __pyx_memoryview_thread_locks_used -= 1 * if i != __pyx_memoryview_thread_locks_used: */ } } /*else*/ { /* "View.MemoryView":391 * break * else: * PyThread_free_lock(self.lock) # <<<<<<<<<<<<<< * * cdef char *get_item_pointer(memoryview self, object index) except NULL: */ PyThread_free_lock(__pyx_v_self->lock); } __pyx_L6_break:; /* "View.MemoryView":382 * cdef int i * global __pyx_memoryview_thread_locks_used * if self.lock != NULL: # <<<<<<<<<<<<<< * for i in range(__pyx_memoryview_thread_locks_used): * if __pyx_memoryview_thread_locks[i] is self.lock: */ } /* "View.MemoryView":372 * self.typeinfo = NULL * * def __dealloc__(memoryview self): # <<<<<<<<<<<<<< * if self.obj is not None: * __Pyx_ReleaseBuffer(&self.view) */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "View.MemoryView":393 * PyThread_free_lock(self.lock) * * cdef char *get_item_pointer(memoryview self, object index) except NULL: # <<<<<<<<<<<<<< * cdef Py_ssize_t dim * cdef char *itemp = self.view.buf */ static char *__pyx_memoryview_get_item_pointer(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index) { Py_ssize_t __pyx_v_dim; char *__pyx_v_itemp; PyObject *__pyx_v_idx = NULL; char *__pyx_r; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; PyObject *__pyx_t_2 = NULL; Py_ssize_t __pyx_t_3; PyObject *(*__pyx_t_4)(PyObject *); PyObject *__pyx_t_5 = NULL; Py_ssize_t __pyx_t_6; char *__pyx_t_7; __Pyx_RefNannySetupContext("get_item_pointer", 0); /* "View.MemoryView":395 * cdef char *get_item_pointer(memoryview self, object index) except NULL: * cdef Py_ssize_t dim * cdef char *itemp = self.view.buf # <<<<<<<<<<<<<< * * for dim, idx in enumerate(index): */ __pyx_v_itemp = ((char *)__pyx_v_self->view.buf); /* "View.MemoryView":397 * cdef char *itemp = self.view.buf * * for dim, idx in enumerate(index): # <<<<<<<<<<<<<< * itemp = pybuffer_index(&self.view, itemp, idx, dim) * */ __pyx_t_1 = 0; if (likely(PyList_CheckExact(__pyx_v_index)) || PyTuple_CheckExact(__pyx_v_index)) { __pyx_t_2 = __pyx_v_index; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; __pyx_t_4 = NULL; } else { __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 397, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_4)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(2, 397, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } else { if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(2, 397, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } } else { __pyx_t_5 = __pyx_t_4(__pyx_t_2); if (unlikely(!__pyx_t_5)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 397, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_5); } __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_5); __pyx_t_5 = 0; __pyx_v_dim = __pyx_t_1; __pyx_t_1 = (__pyx_t_1 + 1); /* "View.MemoryView":398 * * for dim, idx in enumerate(index): * itemp = pybuffer_index(&self.view, itemp, idx, dim) # <<<<<<<<<<<<<< * * return itemp */ __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_idx); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 398, __pyx_L1_error) __pyx_t_7 = __pyx_pybuffer_index((&__pyx_v_self->view), __pyx_v_itemp, __pyx_t_6, __pyx_v_dim); if (unlikely(__pyx_t_7 == ((char *)NULL))) __PYX_ERR(2, 398, __pyx_L1_error) __pyx_v_itemp = __pyx_t_7; /* "View.MemoryView":397 * cdef char *itemp = self.view.buf * * for dim, idx in enumerate(index): # <<<<<<<<<<<<<< * itemp = pybuffer_index(&self.view, itemp, idx, dim) * */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":400 * itemp = pybuffer_index(&self.view, itemp, idx, dim) * * return itemp # <<<<<<<<<<<<<< * * */ __pyx_r = __pyx_v_itemp; goto __pyx_L0; /* "View.MemoryView":393 * PyThread_free_lock(self.lock) * * cdef char *get_item_pointer(memoryview self, object index) except NULL: # <<<<<<<<<<<<<< * cdef Py_ssize_t dim * cdef char *itemp = self.view.buf */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.memoryview.get_item_pointer", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_idx); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":403 * * * def __getitem__(memoryview self, object index): # <<<<<<<<<<<<<< * if index is Ellipsis: * return self */ /* Python wrapper */ static PyObject *__pyx_memoryview___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index); /*proto*/ static PyObject *__pyx_memoryview___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v_index)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index) { PyObject *__pyx_v_have_slices = NULL; PyObject *__pyx_v_indices = NULL; char *__pyx_v_itemp; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; char *__pyx_t_6; __Pyx_RefNannySetupContext("__getitem__", 0); /* "View.MemoryView":404 * * def __getitem__(memoryview self, object index): * if index is Ellipsis: # <<<<<<<<<<<<<< * return self * */ __pyx_t_1 = (__pyx_v_index == __pyx_builtin_Ellipsis); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":405 * def __getitem__(memoryview self, object index): * if index is Ellipsis: * return self # <<<<<<<<<<<<<< * * have_slices, indices = _unellipsify(index, self.view.ndim) */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_self)); __pyx_r = ((PyObject *)__pyx_v_self); goto __pyx_L0; /* "View.MemoryView":404 * * def __getitem__(memoryview self, object index): * if index is Ellipsis: # <<<<<<<<<<<<<< * return self * */ } /* "View.MemoryView":407 * return self * * have_slices, indices = _unellipsify(index, self.view.ndim) # <<<<<<<<<<<<<< * * cdef char *itemp */ __pyx_t_3 = _unellipsify(__pyx_v_index, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (likely(__pyx_t_3 != Py_None)) { PyObject* sequence = __pyx_t_3; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(2, 407, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); #else __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 407, __pyx_L1_error) } __pyx_v_have_slices = __pyx_t_4; __pyx_t_4 = 0; __pyx_v_indices = __pyx_t_5; __pyx_t_5 = 0; /* "View.MemoryView":410 * * cdef char *itemp * if have_slices: # <<<<<<<<<<<<<< * return memview_slice(self, indices) * else: */ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_have_slices); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 410, __pyx_L1_error) if (__pyx_t_2) { /* "View.MemoryView":411 * cdef char *itemp * if have_slices: * return memview_slice(self, indices) # <<<<<<<<<<<<<< * else: * itemp = self.get_item_pointer(indices) */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = ((PyObject *)__pyx_memview_slice(__pyx_v_self, __pyx_v_indices)); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 411, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* "View.MemoryView":410 * * cdef char *itemp * if have_slices: # <<<<<<<<<<<<<< * return memview_slice(self, indices) * else: */ } /* "View.MemoryView":413 * return memview_slice(self, indices) * else: * itemp = self.get_item_pointer(indices) # <<<<<<<<<<<<<< * return self.convert_item_to_object(itemp) * */ /*else*/ { __pyx_t_6 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->get_item_pointer(__pyx_v_self, __pyx_v_indices); if (unlikely(__pyx_t_6 == ((char *)NULL))) __PYX_ERR(2, 413, __pyx_L1_error) __pyx_v_itemp = __pyx_t_6; /* "View.MemoryView":414 * else: * itemp = self.get_item_pointer(indices) * return self.convert_item_to_object(itemp) # <<<<<<<<<<<<<< * * def __setitem__(memoryview self, object index, object value): */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->convert_item_to_object(__pyx_v_self, __pyx_v_itemp); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; } /* "View.MemoryView":403 * * * def __getitem__(memoryview self, object index): # <<<<<<<<<<<<<< * if index is Ellipsis: * return self */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.memoryview.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_have_slices); __Pyx_XDECREF(__pyx_v_indices); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":416 * return self.convert_item_to_object(itemp) * * def __setitem__(memoryview self, object index, object value): # <<<<<<<<<<<<<< * if self.view.readonly: * raise TypeError("Cannot assign to read-only memoryview") */ /* Python wrapper */ static int __pyx_memoryview___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /*proto*/ static int __pyx_memoryview___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v_index), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { PyObject *__pyx_v_have_slices = NULL; PyObject *__pyx_v_obj = NULL; int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; __Pyx_RefNannySetupContext("__setitem__", 0); __Pyx_INCREF(__pyx_v_index); /* "View.MemoryView":417 * * def __setitem__(memoryview self, object index, object value): * if self.view.readonly: # <<<<<<<<<<<<<< * raise TypeError("Cannot assign to read-only memoryview") * */ __pyx_t_1 = (__pyx_v_self->view.readonly != 0); if (unlikely(__pyx_t_1)) { /* "View.MemoryView":418 * def __setitem__(memoryview self, object index, object value): * if self.view.readonly: * raise TypeError("Cannot assign to read-only memoryview") # <<<<<<<<<<<<<< * * have_slices, index = _unellipsify(index, self.view.ndim) */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__27, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(2, 418, __pyx_L1_error) /* "View.MemoryView":417 * * def __setitem__(memoryview self, object index, object value): * if self.view.readonly: # <<<<<<<<<<<<<< * raise TypeError("Cannot assign to read-only memoryview") * */ } /* "View.MemoryView":420 * raise TypeError("Cannot assign to read-only memoryview") * * have_slices, index = _unellipsify(index, self.view.ndim) # <<<<<<<<<<<<<< * * if have_slices: */ __pyx_t_2 = _unellipsify(__pyx_v_index, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (likely(__pyx_t_2 != Py_None)) { PyObject* sequence = __pyx_t_2; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(2, 420, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); #else __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 420, __pyx_L1_error) } __pyx_v_have_slices = __pyx_t_3; __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_index, __pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":422 * have_slices, index = _unellipsify(index, self.view.ndim) * * if have_slices: # <<<<<<<<<<<<<< * obj = self.is_slice(value) * if obj: */ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_have_slices); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 422, __pyx_L1_error) if (__pyx_t_1) { /* "View.MemoryView":423 * * if have_slices: * obj = self.is_slice(value) # <<<<<<<<<<<<<< * if obj: * self.setitem_slice_assignment(self[index], obj) */ __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->is_slice(__pyx_v_self, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_obj = __pyx_t_2; __pyx_t_2 = 0; /* "View.MemoryView":424 * if have_slices: * obj = self.is_slice(value) * if obj: # <<<<<<<<<<<<<< * self.setitem_slice_assignment(self[index], obj) * else: */ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_obj); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 424, __pyx_L1_error) if (__pyx_t_1) { /* "View.MemoryView":425 * obj = self.is_slice(value) * if obj: * self.setitem_slice_assignment(self[index], obj) # <<<<<<<<<<<<<< * else: * self.setitem_slice_assign_scalar(self[index], value) */ __pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self), __pyx_v_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_slice_assignment(__pyx_v_self, __pyx_t_2, __pyx_v_obj); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":424 * if have_slices: * obj = self.is_slice(value) * if obj: # <<<<<<<<<<<<<< * self.setitem_slice_assignment(self[index], obj) * else: */ goto __pyx_L5; } /* "View.MemoryView":427 * self.setitem_slice_assignment(self[index], obj) * else: * self.setitem_slice_assign_scalar(self[index], value) # <<<<<<<<<<<<<< * else: * self.setitem_indexed(index, value) */ /*else*/ { __pyx_t_4 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self), __pyx_v_index); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_memoryview_type))))) __PYX_ERR(2, 427, __pyx_L1_error) __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_slice_assign_scalar(__pyx_v_self, ((struct __pyx_memoryview_obj *)__pyx_t_4), __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_L5:; /* "View.MemoryView":422 * have_slices, index = _unellipsify(index, self.view.ndim) * * if have_slices: # <<<<<<<<<<<<<< * obj = self.is_slice(value) * if obj: */ goto __pyx_L4; } /* "View.MemoryView":429 * self.setitem_slice_assign_scalar(self[index], value) * else: * self.setitem_indexed(index, value) # <<<<<<<<<<<<<< * * cdef is_slice(self, obj): */ /*else*/ { __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_indexed(__pyx_v_self, __pyx_v_index, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 429, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_L4:; /* "View.MemoryView":416 * return self.convert_item_to_object(itemp) * * def __setitem__(memoryview self, object index, object value): # <<<<<<<<<<<<<< * if self.view.readonly: * raise TypeError("Cannot assign to read-only memoryview") */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("View.MemoryView.memoryview.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_have_slices); __Pyx_XDECREF(__pyx_v_obj); __Pyx_XDECREF(__pyx_v_index); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":431 * self.setitem_indexed(index, value) * * cdef is_slice(self, obj): # <<<<<<<<<<<<<< * if not isinstance(obj, memoryview): * try: */ static PyObject *__pyx_memoryview_is_slice(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; int __pyx_t_9; __Pyx_RefNannySetupContext("is_slice", 0); __Pyx_INCREF(__pyx_v_obj); /* "View.MemoryView":432 * * cdef is_slice(self, obj): * if not isinstance(obj, memoryview): # <<<<<<<<<<<<<< * try: * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, */ __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_obj, __pyx_memoryview_type); __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":433 * cdef is_slice(self, obj): * if not isinstance(obj, memoryview): * try: # <<<<<<<<<<<<<< * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, * self.dtype_is_object) */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_5); /*try:*/ { /* "View.MemoryView":434 * if not isinstance(obj, memoryview): * try: * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, # <<<<<<<<<<<<<< * self.dtype_is_object) * except TypeError: */ __pyx_t_6 = __Pyx_PyInt_From_int(((__pyx_v_self->flags & (~PyBUF_WRITABLE)) | PyBUF_ANY_CONTIGUOUS)); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 434, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_6); /* "View.MemoryView":435 * try: * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, * self.dtype_is_object) # <<<<<<<<<<<<<< * except TypeError: * return None */ __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_self->dtype_is_object); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 435, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); /* "View.MemoryView":434 * if not isinstance(obj, memoryview): * try: * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, # <<<<<<<<<<<<<< * self.dtype_is_object) * except TypeError: */ __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 434, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_v_obj); __Pyx_GIVEREF(__pyx_v_obj); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_obj); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7); __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_8, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 434, __pyx_L4_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF_SET(__pyx_v_obj, __pyx_t_7); __pyx_t_7 = 0; /* "View.MemoryView":433 * cdef is_slice(self, obj): * if not isinstance(obj, memoryview): * try: # <<<<<<<<<<<<<< * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, * self.dtype_is_object) */ } __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L9_try_end; __pyx_L4_error:; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; /* "View.MemoryView":436 * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, * self.dtype_is_object) * except TypeError: # <<<<<<<<<<<<<< * return None * */ __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError); if (__pyx_t_9) { __Pyx_AddTraceback("View.MemoryView.memoryview.is_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_6) < 0) __PYX_ERR(2, 436, __pyx_L6_except_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_6); /* "View.MemoryView":437 * self.dtype_is_object) * except TypeError: * return None # <<<<<<<<<<<<<< * * return obj */ __Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L7_except_return; } goto __pyx_L6_except_error; __pyx_L6_except_error:; /* "View.MemoryView":433 * cdef is_slice(self, obj): * if not isinstance(obj, memoryview): * try: # <<<<<<<<<<<<<< * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, * self.dtype_is_object) */ __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5); goto __pyx_L1_error; __pyx_L7_except_return:; __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_XGIVEREF(__pyx_t_5); __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5); goto __pyx_L0; __pyx_L9_try_end:; } /* "View.MemoryView":432 * * cdef is_slice(self, obj): * if not isinstance(obj, memoryview): # <<<<<<<<<<<<<< * try: * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, */ } /* "View.MemoryView":439 * return None * * return obj # <<<<<<<<<<<<<< * * cdef setitem_slice_assignment(self, dst, src): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_obj); __pyx_r = __pyx_v_obj; goto __pyx_L0; /* "View.MemoryView":431 * self.setitem_indexed(index, value) * * cdef is_slice(self, obj): # <<<<<<<<<<<<<< * if not isinstance(obj, memoryview): * try: */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("View.MemoryView.memoryview.is_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_obj); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":441 * return obj * * cdef setitem_slice_assignment(self, dst, src): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice dst_slice * cdef __Pyx_memviewslice src_slice */ static PyObject *__pyx_memoryview_setitem_slice_assignment(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_dst, PyObject *__pyx_v_src) { __Pyx_memviewslice __pyx_v_dst_slice; __Pyx_memviewslice __pyx_v_src_slice; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; __Pyx_RefNannySetupContext("setitem_slice_assignment", 0); /* "View.MemoryView":445 * cdef __Pyx_memviewslice src_slice * * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], # <<<<<<<<<<<<<< * get_slice_from_memview(dst, &dst_slice)[0], * src.ndim, dst.ndim, self.dtype_is_object) */ if (!(likely(((__pyx_v_src) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_src, __pyx_memoryview_type))))) __PYX_ERR(2, 445, __pyx_L1_error) /* "View.MemoryView":446 * * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], * get_slice_from_memview(dst, &dst_slice)[0], # <<<<<<<<<<<<<< * src.ndim, dst.ndim, self.dtype_is_object) * */ if (!(likely(((__pyx_v_dst) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_dst, __pyx_memoryview_type))))) __PYX_ERR(2, 446, __pyx_L1_error) /* "View.MemoryView":447 * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], * get_slice_from_memview(dst, &dst_slice)[0], * src.ndim, dst.ndim, self.dtype_is_object) # <<<<<<<<<<<<<< * * cdef setitem_slice_assign_scalar(self, memoryview dst, value): */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_src, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 447, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dst, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 447, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "View.MemoryView":445 * cdef __Pyx_memviewslice src_slice * * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], # <<<<<<<<<<<<<< * get_slice_from_memview(dst, &dst_slice)[0], * src.ndim, dst.ndim, self.dtype_is_object) */ __pyx_t_4 = __pyx_memoryview_copy_contents((__pyx_memoryview_get_slice_from_memoryview(((struct __pyx_memoryview_obj *)__pyx_v_src), (&__pyx_v_src_slice))[0]), (__pyx_memoryview_get_slice_from_memoryview(((struct __pyx_memoryview_obj *)__pyx_v_dst), (&__pyx_v_dst_slice))[0]), __pyx_t_2, __pyx_t_3, __pyx_v_self->dtype_is_object); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 445, __pyx_L1_error) /* "View.MemoryView":441 * return obj * * cdef setitem_slice_assignment(self, dst, src): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice dst_slice * cdef __Pyx_memviewslice src_slice */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_slice_assignment", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":449 * src.ndim, dst.ndim, self.dtype_is_object) * * cdef setitem_slice_assign_scalar(self, memoryview dst, value): # <<<<<<<<<<<<<< * cdef int array[128] * cdef void *tmp = NULL */ static PyObject *__pyx_memoryview_setitem_slice_assign_scalar(struct __pyx_memoryview_obj *__pyx_v_self, struct __pyx_memoryview_obj *__pyx_v_dst, PyObject *__pyx_v_value) { int __pyx_v_array[0x80]; void *__pyx_v_tmp; void *__pyx_v_item; __Pyx_memviewslice *__pyx_v_dst_slice; __Pyx_memviewslice __pyx_v_tmp_slice; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_t_3; int __pyx_t_4; char const *__pyx_t_5; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; PyObject *__pyx_t_10 = NULL; PyObject *__pyx_t_11 = NULL; __Pyx_RefNannySetupContext("setitem_slice_assign_scalar", 0); /* "View.MemoryView":451 * cdef setitem_slice_assign_scalar(self, memoryview dst, value): * cdef int array[128] * cdef void *tmp = NULL # <<<<<<<<<<<<<< * cdef void *item * */ __pyx_v_tmp = NULL; /* "View.MemoryView":456 * cdef __Pyx_memviewslice *dst_slice * cdef __Pyx_memviewslice tmp_slice * dst_slice = get_slice_from_memview(dst, &tmp_slice) # <<<<<<<<<<<<<< * * if self.view.itemsize > sizeof(array): */ __pyx_v_dst_slice = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_dst, (&__pyx_v_tmp_slice)); /* "View.MemoryView":458 * dst_slice = get_slice_from_memview(dst, &tmp_slice) * * if self.view.itemsize > sizeof(array): # <<<<<<<<<<<<<< * tmp = PyMem_Malloc(self.view.itemsize) * if tmp == NULL: */ __pyx_t_1 = ((((size_t)__pyx_v_self->view.itemsize) > (sizeof(__pyx_v_array))) != 0); if (__pyx_t_1) { /* "View.MemoryView":459 * * if self.view.itemsize > sizeof(array): * tmp = PyMem_Malloc(self.view.itemsize) # <<<<<<<<<<<<<< * if tmp == NULL: * raise MemoryError */ __pyx_v_tmp = PyMem_Malloc(__pyx_v_self->view.itemsize); /* "View.MemoryView":460 * if self.view.itemsize > sizeof(array): * tmp = PyMem_Malloc(self.view.itemsize) * if tmp == NULL: # <<<<<<<<<<<<<< * raise MemoryError * item = tmp */ __pyx_t_1 = ((__pyx_v_tmp == NULL) != 0); if (unlikely(__pyx_t_1)) { /* "View.MemoryView":461 * tmp = PyMem_Malloc(self.view.itemsize) * if tmp == NULL: * raise MemoryError # <<<<<<<<<<<<<< * item = tmp * else: */ PyErr_NoMemory(); __PYX_ERR(2, 461, __pyx_L1_error) /* "View.MemoryView":460 * if self.view.itemsize > sizeof(array): * tmp = PyMem_Malloc(self.view.itemsize) * if tmp == NULL: # <<<<<<<<<<<<<< * raise MemoryError * item = tmp */ } /* "View.MemoryView":462 * if tmp == NULL: * raise MemoryError * item = tmp # <<<<<<<<<<<<<< * else: * item = array */ __pyx_v_item = __pyx_v_tmp; /* "View.MemoryView":458 * dst_slice = get_slice_from_memview(dst, &tmp_slice) * * if self.view.itemsize > sizeof(array): # <<<<<<<<<<<<<< * tmp = PyMem_Malloc(self.view.itemsize) * if tmp == NULL: */ goto __pyx_L3; } /* "View.MemoryView":464 * item = tmp * else: * item = array # <<<<<<<<<<<<<< * * try: */ /*else*/ { __pyx_v_item = ((void *)__pyx_v_array); } __pyx_L3:; /* "View.MemoryView":466 * item = array * * try: # <<<<<<<<<<<<<< * if self.dtype_is_object: * ( item)[0] = value */ /*try:*/ { /* "View.MemoryView":467 * * try: * if self.dtype_is_object: # <<<<<<<<<<<<<< * ( item)[0] = value * else: */ __pyx_t_1 = (__pyx_v_self->dtype_is_object != 0); if (__pyx_t_1) { /* "View.MemoryView":468 * try: * if self.dtype_is_object: * ( item)[0] = value # <<<<<<<<<<<<<< * else: * self.assign_item_from_object( item, value) */ (((PyObject **)__pyx_v_item)[0]) = ((PyObject *)__pyx_v_value); /* "View.MemoryView":467 * * try: * if self.dtype_is_object: # <<<<<<<<<<<<<< * ( item)[0] = value * else: */ goto __pyx_L8; } /* "View.MemoryView":470 * ( item)[0] = value * else: * self.assign_item_from_object( item, value) # <<<<<<<<<<<<<< * * */ /*else*/ { __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->assign_item_from_object(__pyx_v_self, ((char *)__pyx_v_item), __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 470, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_L8:; /* "View.MemoryView":474 * * * if self.view.suboffsets != NULL: # <<<<<<<<<<<<<< * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, */ __pyx_t_1 = ((__pyx_v_self->view.suboffsets != NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":475 * * if self.view.suboffsets != NULL: * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) # <<<<<<<<<<<<<< * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, * item, self.dtype_is_object) */ __pyx_t_2 = assert_direct_dimensions(__pyx_v_self->view.suboffsets, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 475, __pyx_L6_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":474 * * * if self.view.suboffsets != NULL: # <<<<<<<<<<<<<< * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, */ } /* "View.MemoryView":476 * if self.view.suboffsets != NULL: * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, # <<<<<<<<<<<<<< * item, self.dtype_is_object) * finally: */ __pyx_memoryview_slice_assign_scalar(__pyx_v_dst_slice, __pyx_v_dst->view.ndim, __pyx_v_self->view.itemsize, __pyx_v_item, __pyx_v_self->dtype_is_object); } /* "View.MemoryView":479 * item, self.dtype_is_object) * finally: * PyMem_Free(tmp) # <<<<<<<<<<<<<< * * cdef setitem_indexed(self, index, value): */ /*finally:*/ { /*normal exit:*/{ PyMem_Free(__pyx_v_tmp); goto __pyx_L7; } __pyx_L6_error:; /*exception exit:*/{ __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); __Pyx_XGOTREF(__pyx_t_8); __Pyx_XGOTREF(__pyx_t_9); __Pyx_XGOTREF(__pyx_t_10); __Pyx_XGOTREF(__pyx_t_11); __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; { PyMem_Free(__pyx_v_tmp); } if (PY_MAJOR_VERSION >= 3) { __Pyx_XGIVEREF(__pyx_t_9); __Pyx_XGIVEREF(__pyx_t_10); __Pyx_XGIVEREF(__pyx_t_11); __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); } __Pyx_XGIVEREF(__pyx_t_6); __Pyx_XGIVEREF(__pyx_t_7); __Pyx_XGIVEREF(__pyx_t_8); __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; goto __pyx_L1_error; } __pyx_L7:; } /* "View.MemoryView":449 * src.ndim, dst.ndim, self.dtype_is_object) * * cdef setitem_slice_assign_scalar(self, memoryview dst, value): # <<<<<<<<<<<<<< * cdef int array[128] * cdef void *tmp = NULL */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_slice_assign_scalar", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":481 * PyMem_Free(tmp) * * cdef setitem_indexed(self, index, value): # <<<<<<<<<<<<<< * cdef char *itemp = self.get_item_pointer(index) * self.assign_item_from_object(itemp, value) */ static PyObject *__pyx_memoryview_setitem_indexed(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { char *__pyx_v_itemp; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations char *__pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("setitem_indexed", 0); /* "View.MemoryView":482 * * cdef setitem_indexed(self, index, value): * cdef char *itemp = self.get_item_pointer(index) # <<<<<<<<<<<<<< * self.assign_item_from_object(itemp, value) * */ __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->get_item_pointer(__pyx_v_self, __pyx_v_index); if (unlikely(__pyx_t_1 == ((char *)NULL))) __PYX_ERR(2, 482, __pyx_L1_error) __pyx_v_itemp = __pyx_t_1; /* "View.MemoryView":483 * cdef setitem_indexed(self, index, value): * cdef char *itemp = self.get_item_pointer(index) * self.assign_item_from_object(itemp, value) # <<<<<<<<<<<<<< * * cdef convert_item_to_object(self, char *itemp): */ __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->assign_item_from_object(__pyx_v_self, __pyx_v_itemp, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":481 * PyMem_Free(tmp) * * cdef setitem_indexed(self, index, value): # <<<<<<<<<<<<<< * cdef char *itemp = self.get_item_pointer(index) * self.assign_item_from_object(itemp, value) */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_indexed", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":485 * self.assign_item_from_object(itemp, value) * * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" */ static PyObject *__pyx_memoryview_convert_item_to_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp) { PyObject *__pyx_v_struct = NULL; PyObject *__pyx_v_bytesitem = 0; PyObject *__pyx_v_result = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; int __pyx_t_8; PyObject *__pyx_t_9 = NULL; size_t __pyx_t_10; int __pyx_t_11; __Pyx_RefNannySetupContext("convert_item_to_object", 0); /* "View.MemoryView":488 * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" * import struct # <<<<<<<<<<<<<< * cdef bytes bytesitem * */ __pyx_t_1 = __Pyx_Import(__pyx_n_s_struct, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 488, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_struct = __pyx_t_1; __pyx_t_1 = 0; /* "View.MemoryView":491 * cdef bytes bytesitem * * bytesitem = itemp[:self.view.itemsize] # <<<<<<<<<<<<<< * try: * result = struct.unpack(self.view.format, bytesitem) */ __pyx_t_1 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_itemp + 0, __pyx_v_self->view.itemsize - 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_bytesitem = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; /* "View.MemoryView":492 * * bytesitem = itemp[:self.view.itemsize] * try: # <<<<<<<<<<<<<< * result = struct.unpack(self.view.format, bytesitem) * except struct.error: */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); __Pyx_XGOTREF(__pyx_t_2); __Pyx_XGOTREF(__pyx_t_3); __Pyx_XGOTREF(__pyx_t_4); /*try:*/ { /* "View.MemoryView":493 * bytesitem = itemp[:self.view.itemsize] * try: * result = struct.unpack(self.view.format, bytesitem) # <<<<<<<<<<<<<< * except struct.error: * raise ValueError("Unable to convert item to object") */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_unpack); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 493, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 493, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_6, __pyx_v_bytesitem}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 493, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_6, __pyx_v_bytesitem}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 493, __pyx_L3_error) __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif { __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 493, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_6); __Pyx_INCREF(__pyx_v_bytesitem); __Pyx_GIVEREF(__pyx_v_bytesitem); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_bytesitem); __pyx_t_6 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 493, __pyx_L3_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_result = __pyx_t_1; __pyx_t_1 = 0; /* "View.MemoryView":492 * * bytesitem = itemp[:self.view.itemsize] * try: # <<<<<<<<<<<<<< * result = struct.unpack(self.view.format, bytesitem) * except struct.error: */ } /* "View.MemoryView":497 * raise ValueError("Unable to convert item to object") * else: * if len(self.view.format) == 1: # <<<<<<<<<<<<<< * return result[0] * return result */ /*else:*/ { __pyx_t_10 = strlen(__pyx_v_self->view.format); __pyx_t_11 = ((__pyx_t_10 == 1) != 0); if (__pyx_t_11) { /* "View.MemoryView":498 * else: * if len(self.view.format) == 1: * return result[0] # <<<<<<<<<<<<<< * return result * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_result, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 498, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L6_except_return; /* "View.MemoryView":497 * raise ValueError("Unable to convert item to object") * else: * if len(self.view.format) == 1: # <<<<<<<<<<<<<< * return result[0] * return result */ } /* "View.MemoryView":499 * if len(self.view.format) == 1: * return result[0] * return result # <<<<<<<<<<<<<< * * cdef assign_item_from_object(self, char *itemp, object value): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_result); __pyx_r = __pyx_v_result; goto __pyx_L6_except_return; } __pyx_L3_error:; __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; /* "View.MemoryView":494 * try: * result = struct.unpack(self.view.format, bytesitem) * except struct.error: # <<<<<<<<<<<<<< * raise ValueError("Unable to convert item to object") * else: */ __Pyx_ErrFetch(&__pyx_t_1, &__pyx_t_5, &__pyx_t_9); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_error); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 494, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_8 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_1, __pyx_t_6); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_ErrRestore(__pyx_t_1, __pyx_t_5, __pyx_t_9); __pyx_t_1 = 0; __pyx_t_5 = 0; __pyx_t_9 = 0; if (__pyx_t_8) { __Pyx_AddTraceback("View.MemoryView.memoryview.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_5, &__pyx_t_1) < 0) __PYX_ERR(2, 494, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_1); /* "View.MemoryView":495 * result = struct.unpack(self.view.format, bytesitem) * except struct.error: * raise ValueError("Unable to convert item to object") # <<<<<<<<<<<<<< * else: * if len(self.view.format) == 1: */ __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__28, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 495, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_Raise(__pyx_t_6, 0, 0, 0); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_ERR(2, 495, __pyx_L5_except_error) } goto __pyx_L5_except_error; __pyx_L5_except_error:; /* "View.MemoryView":492 * * bytesitem = itemp[:self.view.itemsize] * try: # <<<<<<<<<<<<<< * result = struct.unpack(self.view.format, bytesitem) * except struct.error: */ __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L1_error; __pyx_L6_except_return:; __Pyx_XGIVEREF(__pyx_t_2); __Pyx_XGIVEREF(__pyx_t_3); __Pyx_XGIVEREF(__pyx_t_4); __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); goto __pyx_L0; } /* "View.MemoryView":485 * self.assign_item_from_object(itemp, value) * * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("View.MemoryView.memoryview.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_struct); __Pyx_XDECREF(__pyx_v_bytesitem); __Pyx_XDECREF(__pyx_v_result); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":501 * return result * * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" */ static PyObject *__pyx_memoryview_assign_item_from_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value) { PyObject *__pyx_v_struct = NULL; char __pyx_v_c; PyObject *__pyx_v_bytesvalue = 0; Py_ssize_t __pyx_v_i; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_t_7; PyObject *__pyx_t_8 = NULL; Py_ssize_t __pyx_t_9; PyObject *__pyx_t_10 = NULL; char *__pyx_t_11; char *__pyx_t_12; char *__pyx_t_13; char *__pyx_t_14; __Pyx_RefNannySetupContext("assign_item_from_object", 0); /* "View.MemoryView":504 * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" * import struct # <<<<<<<<<<<<<< * cdef char c * cdef bytes bytesvalue */ __pyx_t_1 = __Pyx_Import(__pyx_n_s_struct, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 504, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_struct = __pyx_t_1; __pyx_t_1 = 0; /* "View.MemoryView":509 * cdef Py_ssize_t i * * if isinstance(value, tuple): # <<<<<<<<<<<<<< * bytesvalue = struct.pack(self.view.format, *value) * else: */ __pyx_t_2 = PyTuple_Check(__pyx_v_value); __pyx_t_3 = (__pyx_t_2 != 0); if (__pyx_t_3) { /* "View.MemoryView":510 * * if isinstance(value, tuple): * bytesvalue = struct.pack(self.view.format, *value) # <<<<<<<<<<<<<< * else: * bytesvalue = struct.pack(self.view.format, value) */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_pack); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_v_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyNumber_Add(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(2, 510, __pyx_L1_error) __pyx_v_bytesvalue = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":509 * cdef Py_ssize_t i * * if isinstance(value, tuple): # <<<<<<<<<<<<<< * bytesvalue = struct.pack(self.view.format, *value) * else: */ goto __pyx_L3; } /* "View.MemoryView":512 * bytesvalue = struct.pack(self.view.format, *value) * else: * bytesvalue = struct.pack(self.view.format, value) # <<<<<<<<<<<<<< * * for i, c in enumerate(bytesvalue): */ /*else*/ { __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_pack); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_7 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_1, __pyx_v_value}; __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 512, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_1, __pyx_v_value}; __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 512, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_1); __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_value); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(2, 512, __pyx_L1_error) __pyx_v_bytesvalue = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0; } __pyx_L3:; /* "View.MemoryView":514 * bytesvalue = struct.pack(self.view.format, value) * * for i, c in enumerate(bytesvalue): # <<<<<<<<<<<<<< * itemp[i] = c * */ __pyx_t_9 = 0; if (unlikely(__pyx_v_bytesvalue == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' is not iterable"); __PYX_ERR(2, 514, __pyx_L1_error) } __Pyx_INCREF(__pyx_v_bytesvalue); __pyx_t_10 = __pyx_v_bytesvalue; __pyx_t_12 = PyBytes_AS_STRING(__pyx_t_10); __pyx_t_13 = (__pyx_t_12 + PyBytes_GET_SIZE(__pyx_t_10)); for (__pyx_t_14 = __pyx_t_12; __pyx_t_14 < __pyx_t_13; __pyx_t_14++) { __pyx_t_11 = __pyx_t_14; __pyx_v_c = (__pyx_t_11[0]); /* "View.MemoryView":515 * * for i, c in enumerate(bytesvalue): * itemp[i] = c # <<<<<<<<<<<<<< * * @cname('getbuffer') */ __pyx_v_i = __pyx_t_9; /* "View.MemoryView":514 * bytesvalue = struct.pack(self.view.format, value) * * for i, c in enumerate(bytesvalue): # <<<<<<<<<<<<<< * itemp[i] = c * */ __pyx_t_9 = (__pyx_t_9 + 1); /* "View.MemoryView":515 * * for i, c in enumerate(bytesvalue): * itemp[i] = c # <<<<<<<<<<<<<< * * @cname('getbuffer') */ (__pyx_v_itemp[__pyx_v_i]) = __pyx_v_c; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; /* "View.MemoryView":501 * return result * * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< * """Only used if instantiated manually by the user, or if Cython doesn't * know how to convert the type""" */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("View.MemoryView.memoryview.assign_item_from_object", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_struct); __Pyx_XDECREF(__pyx_v_bytesvalue); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":518 * * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< * if flags & PyBUF_WRITABLE and self.view.readonly: * raise ValueError("Cannot create writable memory view from read-only memoryview") */ /* Python wrapper */ static CYTHON_UNUSED int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ static CYTHON_UNUSED int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(struct __pyx_memoryview_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; Py_ssize_t *__pyx_t_4; char *__pyx_t_5; void *__pyx_t_6; int __pyx_t_7; Py_ssize_t __pyx_t_8; if (__pyx_v_info == NULL) { PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); return -1; } __Pyx_RefNannySetupContext("__getbuffer__", 0); __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); __Pyx_GIVEREF(__pyx_v_info->obj); /* "View.MemoryView":519 * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): * if flags & PyBUF_WRITABLE and self.view.readonly: # <<<<<<<<<<<<<< * raise ValueError("Cannot create writable memory view from read-only memoryview") * */ __pyx_t_2 = ((__pyx_v_flags & PyBUF_WRITABLE) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L4_bool_binop_done; } __pyx_t_2 = (__pyx_v_self->view.readonly != 0); __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; if (unlikely(__pyx_t_1)) { /* "View.MemoryView":520 * def __getbuffer__(self, Py_buffer *info, int flags): * if flags & PyBUF_WRITABLE and self.view.readonly: * raise ValueError("Cannot create writable memory view from read-only memoryview") # <<<<<<<<<<<<<< * * if flags & PyBUF_ND: */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__29, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 520, __pyx_L1_error) /* "View.MemoryView":519 * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): * if flags & PyBUF_WRITABLE and self.view.readonly: # <<<<<<<<<<<<<< * raise ValueError("Cannot create writable memory view from read-only memoryview") * */ } /* "View.MemoryView":522 * raise ValueError("Cannot create writable memory view from read-only memoryview") * * if flags & PyBUF_ND: # <<<<<<<<<<<<<< * info.shape = self.view.shape * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_ND) != 0); if (__pyx_t_1) { /* "View.MemoryView":523 * * if flags & PyBUF_ND: * info.shape = self.view.shape # <<<<<<<<<<<<<< * else: * info.shape = NULL */ __pyx_t_4 = __pyx_v_self->view.shape; __pyx_v_info->shape = __pyx_t_4; /* "View.MemoryView":522 * raise ValueError("Cannot create writable memory view from read-only memoryview") * * if flags & PyBUF_ND: # <<<<<<<<<<<<<< * info.shape = self.view.shape * else: */ goto __pyx_L6; } /* "View.MemoryView":525 * info.shape = self.view.shape * else: * info.shape = NULL # <<<<<<<<<<<<<< * * if flags & PyBUF_STRIDES: */ /*else*/ { __pyx_v_info->shape = NULL; } __pyx_L6:; /* "View.MemoryView":527 * info.shape = NULL * * if flags & PyBUF_STRIDES: # <<<<<<<<<<<<<< * info.strides = self.view.strides * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_STRIDES) != 0); if (__pyx_t_1) { /* "View.MemoryView":528 * * if flags & PyBUF_STRIDES: * info.strides = self.view.strides # <<<<<<<<<<<<<< * else: * info.strides = NULL */ __pyx_t_4 = __pyx_v_self->view.strides; __pyx_v_info->strides = __pyx_t_4; /* "View.MemoryView":527 * info.shape = NULL * * if flags & PyBUF_STRIDES: # <<<<<<<<<<<<<< * info.strides = self.view.strides * else: */ goto __pyx_L7; } /* "View.MemoryView":530 * info.strides = self.view.strides * else: * info.strides = NULL # <<<<<<<<<<<<<< * * if flags & PyBUF_INDIRECT: */ /*else*/ { __pyx_v_info->strides = NULL; } __pyx_L7:; /* "View.MemoryView":532 * info.strides = NULL * * if flags & PyBUF_INDIRECT: # <<<<<<<<<<<<<< * info.suboffsets = self.view.suboffsets * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_INDIRECT) != 0); if (__pyx_t_1) { /* "View.MemoryView":533 * * if flags & PyBUF_INDIRECT: * info.suboffsets = self.view.suboffsets # <<<<<<<<<<<<<< * else: * info.suboffsets = NULL */ __pyx_t_4 = __pyx_v_self->view.suboffsets; __pyx_v_info->suboffsets = __pyx_t_4; /* "View.MemoryView":532 * info.strides = NULL * * if flags & PyBUF_INDIRECT: # <<<<<<<<<<<<<< * info.suboffsets = self.view.suboffsets * else: */ goto __pyx_L8; } /* "View.MemoryView":535 * info.suboffsets = self.view.suboffsets * else: * info.suboffsets = NULL # <<<<<<<<<<<<<< * * if flags & PyBUF_FORMAT: */ /*else*/ { __pyx_v_info->suboffsets = NULL; } __pyx_L8:; /* "View.MemoryView":537 * info.suboffsets = NULL * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * info.format = self.view.format * else: */ __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0); if (__pyx_t_1) { /* "View.MemoryView":538 * * if flags & PyBUF_FORMAT: * info.format = self.view.format # <<<<<<<<<<<<<< * else: * info.format = NULL */ __pyx_t_5 = __pyx_v_self->view.format; __pyx_v_info->format = __pyx_t_5; /* "View.MemoryView":537 * info.suboffsets = NULL * * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< * info.format = self.view.format * else: */ goto __pyx_L9; } /* "View.MemoryView":540 * info.format = self.view.format * else: * info.format = NULL # <<<<<<<<<<<<<< * * info.buf = self.view.buf */ /*else*/ { __pyx_v_info->format = NULL; } __pyx_L9:; /* "View.MemoryView":542 * info.format = NULL * * info.buf = self.view.buf # <<<<<<<<<<<<<< * info.ndim = self.view.ndim * info.itemsize = self.view.itemsize */ __pyx_t_6 = __pyx_v_self->view.buf; __pyx_v_info->buf = __pyx_t_6; /* "View.MemoryView":543 * * info.buf = self.view.buf * info.ndim = self.view.ndim # <<<<<<<<<<<<<< * info.itemsize = self.view.itemsize * info.len = self.view.len */ __pyx_t_7 = __pyx_v_self->view.ndim; __pyx_v_info->ndim = __pyx_t_7; /* "View.MemoryView":544 * info.buf = self.view.buf * info.ndim = self.view.ndim * info.itemsize = self.view.itemsize # <<<<<<<<<<<<<< * info.len = self.view.len * info.readonly = self.view.readonly */ __pyx_t_8 = __pyx_v_self->view.itemsize; __pyx_v_info->itemsize = __pyx_t_8; /* "View.MemoryView":545 * info.ndim = self.view.ndim * info.itemsize = self.view.itemsize * info.len = self.view.len # <<<<<<<<<<<<<< * info.readonly = self.view.readonly * info.obj = self */ __pyx_t_8 = __pyx_v_self->view.len; __pyx_v_info->len = __pyx_t_8; /* "View.MemoryView":546 * info.itemsize = self.view.itemsize * info.len = self.view.len * info.readonly = self.view.readonly # <<<<<<<<<<<<<< * info.obj = self * */ __pyx_t_1 = __pyx_v_self->view.readonly; __pyx_v_info->readonly = __pyx_t_1; /* "View.MemoryView":547 * info.len = self.view.len * info.readonly = self.view.readonly * info.obj = self # <<<<<<<<<<<<<< * * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") */ __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = ((PyObject *)__pyx_v_self); /* "View.MemoryView":518 * * @cname('getbuffer') * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< * if flags & PyBUF_WRITABLE and self.view.readonly: * raise ValueError("Cannot create writable memory view from read-only memoryview") */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; if (__pyx_v_info->obj != NULL) { __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; } goto __pyx_L2; __pyx_L0:; if (__pyx_v_info->obj == Py_None) { __Pyx_GOTREF(__pyx_v_info->obj); __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; } __pyx_L2:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":553 * * @property * def T(self): # <<<<<<<<<<<<<< * cdef _memoryviewslice result = memoryview_copy(self) * transpose_memslice(&result.from_slice) */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(struct __pyx_memoryview_obj *__pyx_v_self) { struct __pyx_memoryviewslice_obj *__pyx_v_result = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":554 * @property * def T(self): * cdef _memoryviewslice result = memoryview_copy(self) # <<<<<<<<<<<<<< * transpose_memslice(&result.from_slice) * return result */ __pyx_t_1 = __pyx_memoryview_copy_object(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_memoryviewslice_type))))) __PYX_ERR(2, 554, __pyx_L1_error) __pyx_v_result = ((struct __pyx_memoryviewslice_obj *)__pyx_t_1); __pyx_t_1 = 0; /* "View.MemoryView":555 * def T(self): * cdef _memoryviewslice result = memoryview_copy(self) * transpose_memslice(&result.from_slice) # <<<<<<<<<<<<<< * return result * */ __pyx_t_2 = __pyx_memslice_transpose((&__pyx_v_result->from_slice)); if (unlikely(__pyx_t_2 == ((int)0))) __PYX_ERR(2, 555, __pyx_L1_error) /* "View.MemoryView":556 * cdef _memoryviewslice result = memoryview_copy(self) * transpose_memslice(&result.from_slice) * return result # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_result)); __pyx_r = ((PyObject *)__pyx_v_result); goto __pyx_L0; /* "View.MemoryView":553 * * @property * def T(self): # <<<<<<<<<<<<<< * cdef _memoryviewslice result = memoryview_copy(self) * transpose_memslice(&result.from_slice) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.T.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_result); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":559 * * @property * def base(self): # <<<<<<<<<<<<<< * return self.obj * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":560 * @property * def base(self): * return self.obj # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->obj); __pyx_r = __pyx_v_self->obj; goto __pyx_L0; /* "View.MemoryView":559 * * @property * def base(self): # <<<<<<<<<<<<<< * return self.obj * */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":563 * * @property * def shape(self): # <<<<<<<<<<<<<< * return tuple([length for length in self.view.shape[:self.view.ndim]]) * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(struct __pyx_memoryview_obj *__pyx_v_self) { Py_ssize_t __pyx_v_length; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t *__pyx_t_2; Py_ssize_t *__pyx_t_3; Py_ssize_t *__pyx_t_4; PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":564 * @property * def shape(self): * return tuple([length for length in self.view.shape[:self.view.ndim]]) # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = (__pyx_v_self->view.shape + __pyx_v_self->view.ndim); for (__pyx_t_4 = __pyx_v_self->view.shape; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) { __pyx_t_2 = __pyx_t_4; __pyx_v_length = (__pyx_t_2[0]); __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_length); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(2, 564, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_t_5 = PyList_AsTuple(((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0; /* "View.MemoryView":563 * * @property * def shape(self): # <<<<<<<<<<<<<< * return tuple([length for length in self.view.shape[:self.view.ndim]]) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.memoryview.shape.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":567 * * @property * def strides(self): # <<<<<<<<<<<<<< * if self.view.strides == NULL: * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(struct __pyx_memoryview_obj *__pyx_v_self) { Py_ssize_t __pyx_v_stride; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; Py_ssize_t *__pyx_t_3; Py_ssize_t *__pyx_t_4; Py_ssize_t *__pyx_t_5; PyObject *__pyx_t_6 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":568 * @property * def strides(self): * if self.view.strides == NULL: # <<<<<<<<<<<<<< * * raise ValueError("Buffer view does not expose strides") */ __pyx_t_1 = ((__pyx_v_self->view.strides == NULL) != 0); if (unlikely(__pyx_t_1)) { /* "View.MemoryView":570 * if self.view.strides == NULL: * * raise ValueError("Buffer view does not expose strides") # <<<<<<<<<<<<<< * * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__30, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(2, 570, __pyx_L1_error) /* "View.MemoryView":568 * @property * def strides(self): * if self.view.strides == NULL: # <<<<<<<<<<<<<< * * raise ValueError("Buffer view does not expose strides") */ } /* "View.MemoryView":572 * raise ValueError("Buffer view does not expose strides") * * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = (__pyx_v_self->view.strides + __pyx_v_self->view.ndim); for (__pyx_t_5 = __pyx_v_self->view.strides; __pyx_t_5 < __pyx_t_4; __pyx_t_5++) { __pyx_t_3 = __pyx_t_5; __pyx_v_stride = (__pyx_t_3[0]); __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_stride); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_6))) __PYX_ERR(2, 572, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __pyx_t_6 = PyList_AsTuple(((PyObject*)__pyx_t_2)); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0; /* "View.MemoryView":567 * * @property * def strides(self): # <<<<<<<<<<<<<< * if self.view.strides == NULL: * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("View.MemoryView.memoryview.strides.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":575 * * @property * def suboffsets(self): # <<<<<<<<<<<<<< * if self.view.suboffsets == NULL: * return (-1,) * self.view.ndim */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(struct __pyx_memoryview_obj *__pyx_v_self) { Py_ssize_t __pyx_v_suboffset; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; Py_ssize_t *__pyx_t_4; Py_ssize_t *__pyx_t_5; Py_ssize_t *__pyx_t_6; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":576 * @property * def suboffsets(self): * if self.view.suboffsets == NULL: # <<<<<<<<<<<<<< * return (-1,) * self.view.ndim * */ __pyx_t_1 = ((__pyx_v_self->view.suboffsets == NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":577 * def suboffsets(self): * if self.view.suboffsets == NULL: * return (-1,) * self.view.ndim # <<<<<<<<<<<<<< * * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]]) */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_Multiply(__pyx_tuple__31, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* "View.MemoryView":576 * @property * def suboffsets(self): * if self.view.suboffsets == NULL: # <<<<<<<<<<<<<< * return (-1,) * self.view.ndim * */ } /* "View.MemoryView":579 * return (-1,) * self.view.ndim * * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]]) # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = (__pyx_v_self->view.suboffsets + __pyx_v_self->view.ndim); for (__pyx_t_6 = __pyx_v_self->view.suboffsets; __pyx_t_6 < __pyx_t_5; __pyx_t_6++) { __pyx_t_4 = __pyx_t_6; __pyx_v_suboffset = (__pyx_t_4[0]); __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_suboffset); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_2))) __PYX_ERR(2, 579, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_t_2 = PyList_AsTuple(((PyObject*)__pyx_t_3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":575 * * @property * def suboffsets(self): # <<<<<<<<<<<<<< * if self.view.suboffsets == NULL: * return (-1,) * self.view.ndim */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview.suboffsets.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":582 * * @property * def ndim(self): # <<<<<<<<<<<<<< * return self.view.ndim * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":583 * @property * def ndim(self): * return self.view.ndim # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->view.ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":582 * * @property * def ndim(self): # <<<<<<<<<<<<<< * return self.view.ndim * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.ndim.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":586 * * @property * def itemsize(self): # <<<<<<<<<<<<<< * return self.view.itemsize * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":587 * @property * def itemsize(self): * return self.view.itemsize # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->view.itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":586 * * @property * def itemsize(self): # <<<<<<<<<<<<<< * return self.view.itemsize * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.itemsize.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":590 * * @property * def nbytes(self): # <<<<<<<<<<<<<< * return self.size * self.view.itemsize * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":591 * @property * def nbytes(self): * return self.size * self.view.itemsize # <<<<<<<<<<<<<< * * @property */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_self->view.itemsize); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* "View.MemoryView":590 * * @property * def nbytes(self): # <<<<<<<<<<<<<< * return self.size * self.view.itemsize * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview.nbytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":594 * * @property * def size(self): # <<<<<<<<<<<<<< * if self._size is None: * result = 1 */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_v_result = NULL; PyObject *__pyx_v_length = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; Py_ssize_t *__pyx_t_3; Py_ssize_t *__pyx_t_4; Py_ssize_t *__pyx_t_5; PyObject *__pyx_t_6 = NULL; __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":595 * @property * def size(self): * if self._size is None: # <<<<<<<<<<<<<< * result = 1 * */ __pyx_t_1 = (__pyx_v_self->_size == Py_None); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":596 * def size(self): * if self._size is None: * result = 1 # <<<<<<<<<<<<<< * * for length in self.view.shape[:self.view.ndim]: */ __Pyx_INCREF(__pyx_int_1); __pyx_v_result = __pyx_int_1; /* "View.MemoryView":598 * result = 1 * * for length in self.view.shape[:self.view.ndim]: # <<<<<<<<<<<<<< * result *= length * */ __pyx_t_4 = (__pyx_v_self->view.shape + __pyx_v_self->view.ndim); for (__pyx_t_5 = __pyx_v_self->view.shape; __pyx_t_5 < __pyx_t_4; __pyx_t_5++) { __pyx_t_3 = __pyx_t_5; __pyx_t_6 = PyInt_FromSsize_t((__pyx_t_3[0])); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_XDECREF_SET(__pyx_v_length, __pyx_t_6); __pyx_t_6 = 0; /* "View.MemoryView":599 * * for length in self.view.shape[:self.view.ndim]: * result *= length # <<<<<<<<<<<<<< * * self._size = result */ __pyx_t_6 = PyNumber_InPlaceMultiply(__pyx_v_result, __pyx_v_length); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_6); __pyx_t_6 = 0; } /* "View.MemoryView":601 * result *= length * * self._size = result # <<<<<<<<<<<<<< * * return self._size */ __Pyx_INCREF(__pyx_v_result); __Pyx_GIVEREF(__pyx_v_result); __Pyx_GOTREF(__pyx_v_self->_size); __Pyx_DECREF(__pyx_v_self->_size); __pyx_v_self->_size = __pyx_v_result; /* "View.MemoryView":595 * @property * def size(self): * if self._size is None: # <<<<<<<<<<<<<< * result = 1 * */ } /* "View.MemoryView":603 * self._size = result * * return self._size # <<<<<<<<<<<<<< * * def __len__(self): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->_size); __pyx_r = __pyx_v_self->_size; goto __pyx_L0; /* "View.MemoryView":594 * * @property * def size(self): # <<<<<<<<<<<<<< * if self._size is None: * result = 1 */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("View.MemoryView.memoryview.size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_result); __Pyx_XDECREF(__pyx_v_length); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":605 * return self._size * * def __len__(self): # <<<<<<<<<<<<<< * if self.view.ndim >= 1: * return self.view.shape[0] */ /* Python wrapper */ static Py_ssize_t __pyx_memoryview___len__(PyObject *__pyx_v_self); /*proto*/ static Py_ssize_t __pyx_memoryview___len__(PyObject *__pyx_v_self) { Py_ssize_t __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__len__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static Py_ssize_t __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(struct __pyx_memoryview_obj *__pyx_v_self) { Py_ssize_t __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("__len__", 0); /* "View.MemoryView":606 * * def __len__(self): * if self.view.ndim >= 1: # <<<<<<<<<<<<<< * return self.view.shape[0] * */ __pyx_t_1 = ((__pyx_v_self->view.ndim >= 1) != 0); if (__pyx_t_1) { /* "View.MemoryView":607 * def __len__(self): * if self.view.ndim >= 1: * return self.view.shape[0] # <<<<<<<<<<<<<< * * return 0 */ __pyx_r = (__pyx_v_self->view.shape[0]); goto __pyx_L0; /* "View.MemoryView":606 * * def __len__(self): * if self.view.ndim >= 1: # <<<<<<<<<<<<<< * return self.view.shape[0] * */ } /* "View.MemoryView":609 * return self.view.shape[0] * * return 0 # <<<<<<<<<<<<<< * * def __repr__(self): */ __pyx_r = 0; goto __pyx_L0; /* "View.MemoryView":605 * return self._size * * def __len__(self): # <<<<<<<<<<<<<< * if self.view.ndim >= 1: * return self.view.shape[0] */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":611 * return 0 * * def __repr__(self): # <<<<<<<<<<<<<< * return "" % (self.base.__class__.__name__, * id(self)) */ /* Python wrapper */ static PyObject *__pyx_memoryview___repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_memoryview___repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("__repr__", 0); /* "View.MemoryView":612 * * def __repr__(self): * return "" % (self.base.__class__.__name__, # <<<<<<<<<<<<<< * id(self)) * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":613 * def __repr__(self): * return "" % (self.base.__class__.__name__, * id(self)) # <<<<<<<<<<<<<< * * def __str__(self): */ __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 613, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); /* "View.MemoryView":612 * * def __repr__(self): * return "" % (self.base.__class__.__name__, # <<<<<<<<<<<<<< * id(self)) * */ __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_MemoryView_of_r_at_0x_x, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 612, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":611 * return 0 * * def __repr__(self): # <<<<<<<<<<<<<< * return "" % (self.base.__class__.__name__, * id(self)) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":615 * id(self)) * * def __str__(self): # <<<<<<<<<<<<<< * return "" % (self.base.__class__.__name__,) * */ /* Python wrapper */ static PyObject *__pyx_memoryview___str__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_memoryview___str__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("__str__", 0); /* "View.MemoryView":616 * * def __str__(self): * return "" % (self.base.__class__.__name__,) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_MemoryView_of_r_object, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 616, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":615 * id(self)) * * def __str__(self): # <<<<<<<<<<<<<< * return "" % (self.base.__class__.__name__,) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.memoryview.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":619 * * * def is_c_contig(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp */ /* Python wrapper */ static PyObject *__pyx_memoryview_is_c_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_memoryview_is_c_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("is_c_contig (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(struct __pyx_memoryview_obj *__pyx_v_self) { __Pyx_memviewslice *__pyx_v_mslice; __Pyx_memviewslice __pyx_v_tmp; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("is_c_contig", 0); /* "View.MemoryView":622 * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp * mslice = get_slice_from_memview(self, &tmp) # <<<<<<<<<<<<<< * return slice_is_contig(mslice[0], 'C', self.view.ndim) * */ __pyx_v_mslice = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_self, (&__pyx_v_tmp)); /* "View.MemoryView":623 * cdef __Pyx_memviewslice tmp * mslice = get_slice_from_memview(self, &tmp) * return slice_is_contig(mslice[0], 'C', self.view.ndim) # <<<<<<<<<<<<<< * * def is_f_contig(self): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_memviewslice_is_contig((__pyx_v_mslice[0]), 'C', __pyx_v_self->view.ndim)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 623, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":619 * * * def is_c_contig(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.is_c_contig", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":625 * return slice_is_contig(mslice[0], 'C', self.view.ndim) * * def is_f_contig(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp */ /* Python wrapper */ static PyObject *__pyx_memoryview_is_f_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_memoryview_is_f_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("is_f_contig (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(struct __pyx_memoryview_obj *__pyx_v_self) { __Pyx_memviewslice *__pyx_v_mslice; __Pyx_memviewslice __pyx_v_tmp; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("is_f_contig", 0); /* "View.MemoryView":628 * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp * mslice = get_slice_from_memview(self, &tmp) # <<<<<<<<<<<<<< * return slice_is_contig(mslice[0], 'F', self.view.ndim) * */ __pyx_v_mslice = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_self, (&__pyx_v_tmp)); /* "View.MemoryView":629 * cdef __Pyx_memviewslice tmp * mslice = get_slice_from_memview(self, &tmp) * return slice_is_contig(mslice[0], 'F', self.view.ndim) # <<<<<<<<<<<<<< * * def copy(self): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_memviewslice_is_contig((__pyx_v_mslice[0]), 'F', __pyx_v_self->view.ndim)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":625 * return slice_is_contig(mslice[0], 'C', self.view.ndim) * * def is_f_contig(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice *mslice * cdef __Pyx_memviewslice tmp */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.is_f_contig", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":631 * return slice_is_contig(mslice[0], 'F', self.view.ndim) * * def copy(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice mslice * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS */ /* Python wrapper */ static PyObject *__pyx_memoryview_copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_memoryview_copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("copy (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(struct __pyx_memoryview_obj *__pyx_v_self) { __Pyx_memviewslice __pyx_v_mslice; int __pyx_v_flags; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_memviewslice __pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("copy", 0); /* "View.MemoryView":633 * def copy(self): * cdef __Pyx_memviewslice mslice * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS # <<<<<<<<<<<<<< * * slice_copy(self, &mslice) */ __pyx_v_flags = (__pyx_v_self->flags & (~PyBUF_F_CONTIGUOUS)); /* "View.MemoryView":635 * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS * * slice_copy(self, &mslice) # <<<<<<<<<<<<<< * mslice = slice_copy_contig(&mslice, "c", self.view.ndim, * self.view.itemsize, */ __pyx_memoryview_slice_copy(__pyx_v_self, (&__pyx_v_mslice)); /* "View.MemoryView":636 * * slice_copy(self, &mslice) * mslice = slice_copy_contig(&mslice, "c", self.view.ndim, # <<<<<<<<<<<<<< * self.view.itemsize, * flags|PyBUF_C_CONTIGUOUS, */ __pyx_t_1 = __pyx_memoryview_copy_new_contig((&__pyx_v_mslice), ((char *)"c"), __pyx_v_self->view.ndim, __pyx_v_self->view.itemsize, (__pyx_v_flags | PyBUF_C_CONTIGUOUS), __pyx_v_self->dtype_is_object); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 636, __pyx_L1_error) __pyx_v_mslice = __pyx_t_1; /* "View.MemoryView":641 * self.dtype_is_object) * * return memoryview_copy_from_slice(self, &mslice) # <<<<<<<<<<<<<< * * def copy_fortran(self): */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __pyx_memoryview_copy_object_from_slice(__pyx_v_self, (&__pyx_v_mslice)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":631 * return slice_is_contig(mslice[0], 'F', self.view.ndim) * * def copy(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice mslice * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.memoryview.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":643 * return memoryview_copy_from_slice(self, &mslice) * * def copy_fortran(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice src, dst * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS */ /* Python wrapper */ static PyObject *__pyx_memoryview_copy_fortran(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_memoryview_copy_fortran(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("copy_fortran (wrapper)", 0); __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(struct __pyx_memoryview_obj *__pyx_v_self) { __Pyx_memviewslice __pyx_v_src; __Pyx_memviewslice __pyx_v_dst; int __pyx_v_flags; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_memviewslice __pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("copy_fortran", 0); /* "View.MemoryView":645 * def copy_fortran(self): * cdef __Pyx_memviewslice src, dst * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS # <<<<<<<<<<<<<< * * slice_copy(self, &src) */ __pyx_v_flags = (__pyx_v_self->flags & (~PyBUF_C_CONTIGUOUS)); /* "View.MemoryView":647 * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS * * slice_copy(self, &src) # <<<<<<<<<<<<<< * dst = slice_copy_contig(&src, "fortran", self.view.ndim, * self.view.itemsize, */ __pyx_memoryview_slice_copy(__pyx_v_self, (&__pyx_v_src)); /* "View.MemoryView":648 * * slice_copy(self, &src) * dst = slice_copy_contig(&src, "fortran", self.view.ndim, # <<<<<<<<<<<<<< * self.view.itemsize, * flags|PyBUF_F_CONTIGUOUS, */ __pyx_t_1 = __pyx_memoryview_copy_new_contig((&__pyx_v_src), ((char *)"fortran"), __pyx_v_self->view.ndim, __pyx_v_self->view.itemsize, (__pyx_v_flags | PyBUF_F_CONTIGUOUS), __pyx_v_self->dtype_is_object); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 648, __pyx_L1_error) __pyx_v_dst = __pyx_t_1; /* "View.MemoryView":653 * self.dtype_is_object) * * return memoryview_copy_from_slice(self, &dst) # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __pyx_memoryview_copy_object_from_slice(__pyx_v_self, (&__pyx_v_dst)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":643 * return memoryview_copy_from_slice(self, &mslice) * * def copy_fortran(self): # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice src, dst * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView.memoryview.copy_fortran", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_memoryview_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw___pyx_memoryview_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_memoryview___reduce_cython__(((struct __pyx_memoryview_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_memoryview___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__32, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(2, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_memoryview_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw___pyx_memoryview_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_memoryview_2__setstate_cython__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_memoryview_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__33, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(2, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":657 * * @cname('__pyx_memoryview_new') * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): # <<<<<<<<<<<<<< * cdef memoryview result = memoryview(o, flags, dtype_is_object) * result.typeinfo = typeinfo */ static PyObject *__pyx_memoryview_new(PyObject *__pyx_v_o, int __pyx_v_flags, int __pyx_v_dtype_is_object, __Pyx_TypeInfo *__pyx_v_typeinfo) { struct __pyx_memoryview_obj *__pyx_v_result = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("memoryview_cwrapper", 0); /* "View.MemoryView":658 * @cname('__pyx_memoryview_new') * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): * cdef memoryview result = memoryview(o, flags, dtype_is_object) # <<<<<<<<<<<<<< * result.typeinfo = typeinfo * return result */ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_o); __Pyx_GIVEREF(__pyx_v_o); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_o); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_result = ((struct __pyx_memoryview_obj *)__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":659 * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): * cdef memoryview result = memoryview(o, flags, dtype_is_object) * result.typeinfo = typeinfo # <<<<<<<<<<<<<< * return result * */ __pyx_v_result->typeinfo = __pyx_v_typeinfo; /* "View.MemoryView":660 * cdef memoryview result = memoryview(o, flags, dtype_is_object) * result.typeinfo = typeinfo * return result # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_check') */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_result)); __pyx_r = ((PyObject *)__pyx_v_result); goto __pyx_L0; /* "View.MemoryView":657 * * @cname('__pyx_memoryview_new') * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): # <<<<<<<<<<<<<< * cdef memoryview result = memoryview(o, flags, dtype_is_object) * result.typeinfo = typeinfo */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview_cwrapper", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_result); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":663 * * @cname('__pyx_memoryview_check') * cdef inline bint memoryview_check(object o): # <<<<<<<<<<<<<< * return isinstance(o, memoryview) * */ static CYTHON_INLINE int __pyx_memoryview_check(PyObject *__pyx_v_o) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("memoryview_check", 0); /* "View.MemoryView":664 * @cname('__pyx_memoryview_check') * cdef inline bint memoryview_check(object o): * return isinstance(o, memoryview) # <<<<<<<<<<<<<< * * cdef tuple _unellipsify(object index, int ndim): */ __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_o, __pyx_memoryview_type); __pyx_r = __pyx_t_1; goto __pyx_L0; /* "View.MemoryView":663 * * @cname('__pyx_memoryview_check') * cdef inline bint memoryview_check(object o): # <<<<<<<<<<<<<< * return isinstance(o, memoryview) * */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":666 * return isinstance(o, memoryview) * * cdef tuple _unellipsify(object index, int ndim): # <<<<<<<<<<<<<< * """ * Replace all ellipses with full slices and fill incomplete indices with */ static PyObject *_unellipsify(PyObject *__pyx_v_index, int __pyx_v_ndim) { PyObject *__pyx_v_tup = NULL; PyObject *__pyx_v_result = NULL; int __pyx_v_have_slices; int __pyx_v_seen_ellipsis; CYTHON_UNUSED PyObject *__pyx_v_idx = NULL; PyObject *__pyx_v_item = NULL; Py_ssize_t __pyx_v_nslices; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; Py_ssize_t __pyx_t_5; PyObject *(*__pyx_t_6)(PyObject *); PyObject *__pyx_t_7 = NULL; Py_ssize_t __pyx_t_8; int __pyx_t_9; int __pyx_t_10; PyObject *__pyx_t_11 = NULL; __Pyx_RefNannySetupContext("_unellipsify", 0); /* "View.MemoryView":671 * full slices. * """ * if not isinstance(index, tuple): # <<<<<<<<<<<<<< * tup = (index,) * else: */ __pyx_t_1 = PyTuple_Check(__pyx_v_index); __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":672 * """ * if not isinstance(index, tuple): * tup = (index,) # <<<<<<<<<<<<<< * else: * tup = index */ __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_index); __Pyx_GIVEREF(__pyx_v_index); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_index); __pyx_v_tup = __pyx_t_3; __pyx_t_3 = 0; /* "View.MemoryView":671 * full slices. * """ * if not isinstance(index, tuple): # <<<<<<<<<<<<<< * tup = (index,) * else: */ goto __pyx_L3; } /* "View.MemoryView":674 * tup = (index,) * else: * tup = index # <<<<<<<<<<<<<< * * result = [] */ /*else*/ { __Pyx_INCREF(__pyx_v_index); __pyx_v_tup = __pyx_v_index; } __pyx_L3:; /* "View.MemoryView":676 * tup = index * * result = [] # <<<<<<<<<<<<<< * have_slices = False * seen_ellipsis = False */ __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_result = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":677 * * result = [] * have_slices = False # <<<<<<<<<<<<<< * seen_ellipsis = False * for idx, item in enumerate(tup): */ __pyx_v_have_slices = 0; /* "View.MemoryView":678 * result = [] * have_slices = False * seen_ellipsis = False # <<<<<<<<<<<<<< * for idx, item in enumerate(tup): * if item is Ellipsis: */ __pyx_v_seen_ellipsis = 0; /* "View.MemoryView":679 * have_slices = False * seen_ellipsis = False * for idx, item in enumerate(tup): # <<<<<<<<<<<<<< * if item is Ellipsis: * if not seen_ellipsis: */ __Pyx_INCREF(__pyx_int_0); __pyx_t_3 = __pyx_int_0; if (likely(PyList_CheckExact(__pyx_v_tup)) || PyTuple_CheckExact(__pyx_v_tup)) { __pyx_t_4 = __pyx_v_tup; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_tup); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 679, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(2, 679, __pyx_L1_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(2, 679, __pyx_L1_error) #else __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif } } else { __pyx_t_7 = __pyx_t_6(__pyx_t_4); if (unlikely(!__pyx_t_7)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 679, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_7); } __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_7); __pyx_t_7 = 0; __Pyx_INCREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_3); __pyx_t_7 = __Pyx_PyInt_AddObjC(__pyx_t_3, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = __pyx_t_7; __pyx_t_7 = 0; /* "View.MemoryView":680 * seen_ellipsis = False * for idx, item in enumerate(tup): * if item is Ellipsis: # <<<<<<<<<<<<<< * if not seen_ellipsis: * result.extend([slice(None)] * (ndim - len(tup) + 1)) */ __pyx_t_2 = (__pyx_v_item == __pyx_builtin_Ellipsis); __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* "View.MemoryView":681 * for idx, item in enumerate(tup): * if item is Ellipsis: * if not seen_ellipsis: # <<<<<<<<<<<<<< * result.extend([slice(None)] * (ndim - len(tup) + 1)) * seen_ellipsis = True */ __pyx_t_1 = ((!(__pyx_v_seen_ellipsis != 0)) != 0); if (__pyx_t_1) { /* "View.MemoryView":682 * if item is Ellipsis: * if not seen_ellipsis: * result.extend([slice(None)] * (ndim - len(tup) + 1)) # <<<<<<<<<<<<<< * seen_ellipsis = True * else: */ __pyx_t_8 = PyObject_Length(__pyx_v_tup); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(2, 682, __pyx_L1_error) __pyx_t_7 = PyList_New(1 * ((((__pyx_v_ndim - __pyx_t_8) + 1)<0) ? 0:((__pyx_v_ndim - __pyx_t_8) + 1))); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); { Py_ssize_t __pyx_temp; for (__pyx_temp=0; __pyx_temp < ((__pyx_v_ndim - __pyx_t_8) + 1); __pyx_temp++) { __Pyx_INCREF(__pyx_slice__34); __Pyx_GIVEREF(__pyx_slice__34); PyList_SET_ITEM(__pyx_t_7, __pyx_temp, __pyx_slice__34); } } __pyx_t_9 = __Pyx_PyList_Extend(__pyx_v_result, __pyx_t_7); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 682, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* "View.MemoryView":683 * if not seen_ellipsis: * result.extend([slice(None)] * (ndim - len(tup) + 1)) * seen_ellipsis = True # <<<<<<<<<<<<<< * else: * result.append(slice(None)) */ __pyx_v_seen_ellipsis = 1; /* "View.MemoryView":681 * for idx, item in enumerate(tup): * if item is Ellipsis: * if not seen_ellipsis: # <<<<<<<<<<<<<< * result.extend([slice(None)] * (ndim - len(tup) + 1)) * seen_ellipsis = True */ goto __pyx_L7; } /* "View.MemoryView":685 * seen_ellipsis = True * else: * result.append(slice(None)) # <<<<<<<<<<<<<< * have_slices = True * else: */ /*else*/ { __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_result, __pyx_slice__34); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 685, __pyx_L1_error) } __pyx_L7:; /* "View.MemoryView":686 * else: * result.append(slice(None)) * have_slices = True # <<<<<<<<<<<<<< * else: * if not isinstance(item, slice) and not PyIndex_Check(item): */ __pyx_v_have_slices = 1; /* "View.MemoryView":680 * seen_ellipsis = False * for idx, item in enumerate(tup): * if item is Ellipsis: # <<<<<<<<<<<<<< * if not seen_ellipsis: * result.extend([slice(None)] * (ndim - len(tup) + 1)) */ goto __pyx_L6; } /* "View.MemoryView":688 * have_slices = True * else: * if not isinstance(item, slice) and not PyIndex_Check(item): # <<<<<<<<<<<<<< * raise TypeError("Cannot index with type '%s'" % type(item)) * */ /*else*/ { __pyx_t_2 = PySlice_Check(__pyx_v_item); __pyx_t_10 = ((!(__pyx_t_2 != 0)) != 0); if (__pyx_t_10) { } else { __pyx_t_1 = __pyx_t_10; goto __pyx_L9_bool_binop_done; } __pyx_t_10 = ((!(PyIndex_Check(__pyx_v_item) != 0)) != 0); __pyx_t_1 = __pyx_t_10; __pyx_L9_bool_binop_done:; if (unlikely(__pyx_t_1)) { /* "View.MemoryView":689 * else: * if not isinstance(item, slice) and not PyIndex_Check(item): * raise TypeError("Cannot index with type '%s'" % type(item)) # <<<<<<<<<<<<<< * * have_slices = have_slices or isinstance(item, slice) */ __pyx_t_7 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Cannot_index_with_type_s, ((PyObject *)Py_TYPE(__pyx_v_item))); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_Raise(__pyx_t_11, 0, 0, 0); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __PYX_ERR(2, 689, __pyx_L1_error) /* "View.MemoryView":688 * have_slices = True * else: * if not isinstance(item, slice) and not PyIndex_Check(item): # <<<<<<<<<<<<<< * raise TypeError("Cannot index with type '%s'" % type(item)) * */ } /* "View.MemoryView":691 * raise TypeError("Cannot index with type '%s'" % type(item)) * * have_slices = have_slices or isinstance(item, slice) # <<<<<<<<<<<<<< * result.append(item) * */ __pyx_t_10 = (__pyx_v_have_slices != 0); if (!__pyx_t_10) { } else { __pyx_t_1 = __pyx_t_10; goto __pyx_L11_bool_binop_done; } __pyx_t_10 = PySlice_Check(__pyx_v_item); __pyx_t_2 = (__pyx_t_10 != 0); __pyx_t_1 = __pyx_t_2; __pyx_L11_bool_binop_done:; __pyx_v_have_slices = __pyx_t_1; /* "View.MemoryView":692 * * have_slices = have_slices or isinstance(item, slice) * result.append(item) # <<<<<<<<<<<<<< * * nslices = ndim - len(result) */ __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_result, __pyx_v_item); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 692, __pyx_L1_error) } __pyx_L6:; /* "View.MemoryView":679 * have_slices = False * seen_ellipsis = False * for idx, item in enumerate(tup): # <<<<<<<<<<<<<< * if item is Ellipsis: * if not seen_ellipsis: */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":694 * result.append(item) * * nslices = ndim - len(result) # <<<<<<<<<<<<<< * if nslices: * result.extend([slice(None)] * nslices) */ __pyx_t_5 = PyList_GET_SIZE(__pyx_v_result); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(2, 694, __pyx_L1_error) __pyx_v_nslices = (__pyx_v_ndim - __pyx_t_5); /* "View.MemoryView":695 * * nslices = ndim - len(result) * if nslices: # <<<<<<<<<<<<<< * result.extend([slice(None)] * nslices) * */ __pyx_t_1 = (__pyx_v_nslices != 0); if (__pyx_t_1) { /* "View.MemoryView":696 * nslices = ndim - len(result) * if nslices: * result.extend([slice(None)] * nslices) # <<<<<<<<<<<<<< * * return have_slices or nslices, tuple(result) */ __pyx_t_3 = PyList_New(1 * ((__pyx_v_nslices<0) ? 0:__pyx_v_nslices)); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); { Py_ssize_t __pyx_temp; for (__pyx_temp=0; __pyx_temp < __pyx_v_nslices; __pyx_temp++) { __Pyx_INCREF(__pyx_slice__34); __Pyx_GIVEREF(__pyx_slice__34); PyList_SET_ITEM(__pyx_t_3, __pyx_temp, __pyx_slice__34); } } __pyx_t_9 = __Pyx_PyList_Extend(__pyx_v_result, __pyx_t_3); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 696, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":695 * * nslices = ndim - len(result) * if nslices: # <<<<<<<<<<<<<< * result.extend([slice(None)] * nslices) * */ } /* "View.MemoryView":698 * result.extend([slice(None)] * nslices) * * return have_slices or nslices, tuple(result) # <<<<<<<<<<<<<< * * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): */ __Pyx_XDECREF(__pyx_r); if (!__pyx_v_have_slices) { } else { __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_have_slices); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L14_bool_binop_done; } __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_nslices); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __pyx_t_4; __pyx_t_4 = 0; __pyx_L14_bool_binop_done:; __pyx_t_4 = PyList_AsTuple(__pyx_v_result); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_4); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_r = ((PyObject*)__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L0; /* "View.MemoryView":666 * return isinstance(o, memoryview) * * cdef tuple _unellipsify(object index, int ndim): # <<<<<<<<<<<<<< * """ * Replace all ellipses with full slices and fill incomplete indices with */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_11); __Pyx_AddTraceback("View.MemoryView._unellipsify", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_tup); __Pyx_XDECREF(__pyx_v_result); __Pyx_XDECREF(__pyx_v_idx); __Pyx_XDECREF(__pyx_v_item); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":700 * return have_slices or nslices, tuple(result) * * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): # <<<<<<<<<<<<<< * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: */ static PyObject *assert_direct_dimensions(Py_ssize_t *__pyx_v_suboffsets, int __pyx_v_ndim) { Py_ssize_t __pyx_v_suboffset; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations Py_ssize_t *__pyx_t_1; Py_ssize_t *__pyx_t_2; Py_ssize_t *__pyx_t_3; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("assert_direct_dimensions", 0); /* "View.MemoryView":701 * * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): * for suboffset in suboffsets[:ndim]: # <<<<<<<<<<<<<< * if suboffset >= 0: * raise ValueError("Indirect dimensions not supported") */ __pyx_t_2 = (__pyx_v_suboffsets + __pyx_v_ndim); for (__pyx_t_3 = __pyx_v_suboffsets; __pyx_t_3 < __pyx_t_2; __pyx_t_3++) { __pyx_t_1 = __pyx_t_3; __pyx_v_suboffset = (__pyx_t_1[0]); /* "View.MemoryView":702 * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: # <<<<<<<<<<<<<< * raise ValueError("Indirect dimensions not supported") * */ __pyx_t_4 = ((__pyx_v_suboffset >= 0) != 0); if (unlikely(__pyx_t_4)) { /* "View.MemoryView":703 * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: * raise ValueError("Indirect dimensions not supported") # <<<<<<<<<<<<<< * * */ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(2, 703, __pyx_L1_error) /* "View.MemoryView":702 * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: # <<<<<<<<<<<<<< * raise ValueError("Indirect dimensions not supported") * */ } } /* "View.MemoryView":700 * return have_slices or nslices, tuple(result) * * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): # <<<<<<<<<<<<<< * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.assert_direct_dimensions", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":710 * * @cname('__pyx_memview_slice') * cdef memoryview memview_slice(memoryview memview, object indices): # <<<<<<<<<<<<<< * cdef int new_ndim = 0, suboffset_dim = -1, dim * cdef bint negative_step */ static struct __pyx_memoryview_obj *__pyx_memview_slice(struct __pyx_memoryview_obj *__pyx_v_memview, PyObject *__pyx_v_indices) { int __pyx_v_new_ndim; int __pyx_v_suboffset_dim; int __pyx_v_dim; __Pyx_memviewslice __pyx_v_src; __Pyx_memviewslice __pyx_v_dst; __Pyx_memviewslice *__pyx_v_p_src; struct __pyx_memoryviewslice_obj *__pyx_v_memviewsliceobj = 0; __Pyx_memviewslice *__pyx_v_p_dst; int *__pyx_v_p_suboffset_dim; Py_ssize_t __pyx_v_start; Py_ssize_t __pyx_v_stop; Py_ssize_t __pyx_v_step; int __pyx_v_have_start; int __pyx_v_have_stop; int __pyx_v_have_step; PyObject *__pyx_v_index = NULL; struct __pyx_memoryview_obj *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; struct __pyx_memoryview_obj *__pyx_t_4; char *__pyx_t_5; int __pyx_t_6; Py_ssize_t __pyx_t_7; PyObject *(*__pyx_t_8)(PyObject *); PyObject *__pyx_t_9 = NULL; Py_ssize_t __pyx_t_10; int __pyx_t_11; Py_ssize_t __pyx_t_12; __Pyx_RefNannySetupContext("memview_slice", 0); /* "View.MemoryView":711 * @cname('__pyx_memview_slice') * cdef memoryview memview_slice(memoryview memview, object indices): * cdef int new_ndim = 0, suboffset_dim = -1, dim # <<<<<<<<<<<<<< * cdef bint negative_step * cdef __Pyx_memviewslice src, dst */ __pyx_v_new_ndim = 0; __pyx_v_suboffset_dim = -1; /* "View.MemoryView":718 * * * memset(&dst, 0, sizeof(dst)) # <<<<<<<<<<<<<< * * cdef _memoryviewslice memviewsliceobj */ (void)(memset((&__pyx_v_dst), 0, (sizeof(__pyx_v_dst)))); /* "View.MemoryView":722 * cdef _memoryviewslice memviewsliceobj * * assert memview.view.ndim > 0 # <<<<<<<<<<<<<< * * if isinstance(memview, _memoryviewslice): */ #ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_v_memview->view.ndim > 0) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(2, 722, __pyx_L1_error) } } #endif /* "View.MemoryView":724 * assert memview.view.ndim > 0 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * memviewsliceobj = memview * p_src = &memviewsliceobj.from_slice */ __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":725 * * if isinstance(memview, _memoryviewslice): * memviewsliceobj = memview # <<<<<<<<<<<<<< * p_src = &memviewsliceobj.from_slice * else: */ if (!(likely(((((PyObject *)__pyx_v_memview)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type))))) __PYX_ERR(2, 725, __pyx_L1_error) __pyx_t_3 = ((PyObject *)__pyx_v_memview); __Pyx_INCREF(__pyx_t_3); __pyx_v_memviewsliceobj = ((struct __pyx_memoryviewslice_obj *)__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":726 * if isinstance(memview, _memoryviewslice): * memviewsliceobj = memview * p_src = &memviewsliceobj.from_slice # <<<<<<<<<<<<<< * else: * slice_copy(memview, &src) */ __pyx_v_p_src = (&__pyx_v_memviewsliceobj->from_slice); /* "View.MemoryView":724 * assert memview.view.ndim > 0 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * memviewsliceobj = memview * p_src = &memviewsliceobj.from_slice */ goto __pyx_L3; } /* "View.MemoryView":728 * p_src = &memviewsliceobj.from_slice * else: * slice_copy(memview, &src) # <<<<<<<<<<<<<< * p_src = &src * */ /*else*/ { __pyx_memoryview_slice_copy(__pyx_v_memview, (&__pyx_v_src)); /* "View.MemoryView":729 * else: * slice_copy(memview, &src) * p_src = &src # <<<<<<<<<<<<<< * * */ __pyx_v_p_src = (&__pyx_v_src); } __pyx_L3:; /* "View.MemoryView":735 * * * dst.memview = p_src.memview # <<<<<<<<<<<<<< * dst.data = p_src.data * */ __pyx_t_4 = __pyx_v_p_src->memview; __pyx_v_dst.memview = __pyx_t_4; /* "View.MemoryView":736 * * dst.memview = p_src.memview * dst.data = p_src.data # <<<<<<<<<<<<<< * * */ __pyx_t_5 = __pyx_v_p_src->data; __pyx_v_dst.data = __pyx_t_5; /* "View.MemoryView":741 * * * cdef __Pyx_memviewslice *p_dst = &dst # <<<<<<<<<<<<<< * cdef int *p_suboffset_dim = &suboffset_dim * cdef Py_ssize_t start, stop, step */ __pyx_v_p_dst = (&__pyx_v_dst); /* "View.MemoryView":742 * * cdef __Pyx_memviewslice *p_dst = &dst * cdef int *p_suboffset_dim = &suboffset_dim # <<<<<<<<<<<<<< * cdef Py_ssize_t start, stop, step * cdef bint have_start, have_stop, have_step */ __pyx_v_p_suboffset_dim = (&__pyx_v_suboffset_dim); /* "View.MemoryView":746 * cdef bint have_start, have_stop, have_step * * for dim, index in enumerate(indices): # <<<<<<<<<<<<<< * if PyIndex_Check(index): * slice_memviewslice( */ __pyx_t_6 = 0; if (likely(PyList_CheckExact(__pyx_v_indices)) || PyTuple_CheckExact(__pyx_v_indices)) { __pyx_t_3 = __pyx_v_indices; __Pyx_INCREF(__pyx_t_3); __pyx_t_7 = 0; __pyx_t_8 = NULL; } else { __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_indices); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 746, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_8)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_9 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(2, 746, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif } else { if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(2, 746, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 746, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif } } else { __pyx_t_9 = __pyx_t_8(__pyx_t_3); if (unlikely(!__pyx_t_9)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 746, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_9); } __Pyx_XDECREF_SET(__pyx_v_index, __pyx_t_9); __pyx_t_9 = 0; __pyx_v_dim = __pyx_t_6; __pyx_t_6 = (__pyx_t_6 + 1); /* "View.MemoryView":747 * * for dim, index in enumerate(indices): * if PyIndex_Check(index): # <<<<<<<<<<<<<< * slice_memviewslice( * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], */ __pyx_t_2 = (PyIndex_Check(__pyx_v_index) != 0); if (__pyx_t_2) { /* "View.MemoryView":751 * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], * dim, new_ndim, p_suboffset_dim, * index, 0, 0, # start, stop, step # <<<<<<<<<<<<<< * 0, 0, 0, # have_{start,stop,step} * False) */ __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_v_index); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 751, __pyx_L1_error) /* "View.MemoryView":748 * for dim, index in enumerate(indices): * if PyIndex_Check(index): * slice_memviewslice( # <<<<<<<<<<<<<< * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], * dim, new_ndim, p_suboffset_dim, */ __pyx_t_11 = __pyx_memoryview_slice_memviewslice(__pyx_v_p_dst, (__pyx_v_p_src->shape[__pyx_v_dim]), (__pyx_v_p_src->strides[__pyx_v_dim]), (__pyx_v_p_src->suboffsets[__pyx_v_dim]), __pyx_v_dim, __pyx_v_new_ndim, __pyx_v_p_suboffset_dim, __pyx_t_10, 0, 0, 0, 0, 0, 0); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(2, 748, __pyx_L1_error) /* "View.MemoryView":747 * * for dim, index in enumerate(indices): * if PyIndex_Check(index): # <<<<<<<<<<<<<< * slice_memviewslice( * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], */ goto __pyx_L6; } /* "View.MemoryView":754 * 0, 0, 0, # have_{start,stop,step} * False) * elif index is None: # <<<<<<<<<<<<<< * p_dst.shape[new_ndim] = 1 * p_dst.strides[new_ndim] = 0 */ __pyx_t_2 = (__pyx_v_index == Py_None); __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* "View.MemoryView":755 * False) * elif index is None: * p_dst.shape[new_ndim] = 1 # <<<<<<<<<<<<<< * p_dst.strides[new_ndim] = 0 * p_dst.suboffsets[new_ndim] = -1 */ (__pyx_v_p_dst->shape[__pyx_v_new_ndim]) = 1; /* "View.MemoryView":756 * elif index is None: * p_dst.shape[new_ndim] = 1 * p_dst.strides[new_ndim] = 0 # <<<<<<<<<<<<<< * p_dst.suboffsets[new_ndim] = -1 * new_ndim += 1 */ (__pyx_v_p_dst->strides[__pyx_v_new_ndim]) = 0; /* "View.MemoryView":757 * p_dst.shape[new_ndim] = 1 * p_dst.strides[new_ndim] = 0 * p_dst.suboffsets[new_ndim] = -1 # <<<<<<<<<<<<<< * new_ndim += 1 * else: */ (__pyx_v_p_dst->suboffsets[__pyx_v_new_ndim]) = -1L; /* "View.MemoryView":758 * p_dst.strides[new_ndim] = 0 * p_dst.suboffsets[new_ndim] = -1 * new_ndim += 1 # <<<<<<<<<<<<<< * else: * start = index.start or 0 */ __pyx_v_new_ndim = (__pyx_v_new_ndim + 1); /* "View.MemoryView":754 * 0, 0, 0, # have_{start,stop,step} * False) * elif index is None: # <<<<<<<<<<<<<< * p_dst.shape[new_ndim] = 1 * p_dst.strides[new_ndim] = 0 */ goto __pyx_L6; } /* "View.MemoryView":760 * new_ndim += 1 * else: * start = index.start or 0 # <<<<<<<<<<<<<< * stop = index.stop or 0 * step = index.step or 0 */ /*else*/ { __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_start); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 760, __pyx_L1_error) if (!__pyx_t_1) { __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else { __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 760, __pyx_L1_error) __pyx_t_10 = __pyx_t_12; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L7_bool_binop_done; } __pyx_t_10 = 0; __pyx_L7_bool_binop_done:; __pyx_v_start = __pyx_t_10; /* "View.MemoryView":761 * else: * start = index.start or 0 * stop = index.stop or 0 # <<<<<<<<<<<<<< * step = index.step or 0 * */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_stop); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 761, __pyx_L1_error) if (!__pyx_t_1) { __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else { __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 761, __pyx_L1_error) __pyx_t_10 = __pyx_t_12; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L9_bool_binop_done; } __pyx_t_10 = 0; __pyx_L9_bool_binop_done:; __pyx_v_stop = __pyx_t_10; /* "View.MemoryView":762 * start = index.start or 0 * stop = index.stop or 0 * step = index.step or 0 # <<<<<<<<<<<<<< * * have_start = index.start is not None */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_step); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 762, __pyx_L1_error) if (!__pyx_t_1) { __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else { __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 762, __pyx_L1_error) __pyx_t_10 = __pyx_t_12; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L11_bool_binop_done; } __pyx_t_10 = 0; __pyx_L11_bool_binop_done:; __pyx_v_step = __pyx_t_10; /* "View.MemoryView":764 * step = index.step or 0 * * have_start = index.start is not None # <<<<<<<<<<<<<< * have_stop = index.stop is not None * have_step = index.step is not None */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_start); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = (__pyx_t_9 != Py_None); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_have_start = __pyx_t_1; /* "View.MemoryView":765 * * have_start = index.start is not None * have_stop = index.stop is not None # <<<<<<<<<<<<<< * have_step = index.step is not None * */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_stop); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 765, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = (__pyx_t_9 != Py_None); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_have_stop = __pyx_t_1; /* "View.MemoryView":766 * have_start = index.start is not None * have_stop = index.stop is not None * have_step = index.step is not None # <<<<<<<<<<<<<< * * slice_memviewslice( */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_step); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 766, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = (__pyx_t_9 != Py_None); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_have_step = __pyx_t_1; /* "View.MemoryView":768 * have_step = index.step is not None * * slice_memviewslice( # <<<<<<<<<<<<<< * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], * dim, new_ndim, p_suboffset_dim, */ __pyx_t_11 = __pyx_memoryview_slice_memviewslice(__pyx_v_p_dst, (__pyx_v_p_src->shape[__pyx_v_dim]), (__pyx_v_p_src->strides[__pyx_v_dim]), (__pyx_v_p_src->suboffsets[__pyx_v_dim]), __pyx_v_dim, __pyx_v_new_ndim, __pyx_v_p_suboffset_dim, __pyx_v_start, __pyx_v_stop, __pyx_v_step, __pyx_v_have_start, __pyx_v_have_stop, __pyx_v_have_step, 1); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(2, 768, __pyx_L1_error) /* "View.MemoryView":774 * have_start, have_stop, have_step, * True) * new_ndim += 1 # <<<<<<<<<<<<<< * * if isinstance(memview, _memoryviewslice): */ __pyx_v_new_ndim = (__pyx_v_new_ndim + 1); } __pyx_L6:; /* "View.MemoryView":746 * cdef bint have_start, have_stop, have_step * * for dim, index in enumerate(indices): # <<<<<<<<<<<<<< * if PyIndex_Check(index): * slice_memviewslice( */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":776 * new_ndim += 1 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * return memoryview_fromslice(dst, new_ndim, * memviewsliceobj.to_object_func, */ __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":777 * * if isinstance(memview, _memoryviewslice): * return memoryview_fromslice(dst, new_ndim, # <<<<<<<<<<<<<< * memviewsliceobj.to_object_func, * memviewsliceobj.to_dtype_func, */ __Pyx_XDECREF(((PyObject *)__pyx_r)); /* "View.MemoryView":778 * if isinstance(memview, _memoryviewslice): * return memoryview_fromslice(dst, new_ndim, * memviewsliceobj.to_object_func, # <<<<<<<<<<<<<< * memviewsliceobj.to_dtype_func, * memview.dtype_is_object) */ if (unlikely(!__pyx_v_memviewsliceobj)) { __Pyx_RaiseUnboundLocalError("memviewsliceobj"); __PYX_ERR(2, 778, __pyx_L1_error) } /* "View.MemoryView":779 * return memoryview_fromslice(dst, new_ndim, * memviewsliceobj.to_object_func, * memviewsliceobj.to_dtype_func, # <<<<<<<<<<<<<< * memview.dtype_is_object) * else: */ if (unlikely(!__pyx_v_memviewsliceobj)) { __Pyx_RaiseUnboundLocalError("memviewsliceobj"); __PYX_ERR(2, 779, __pyx_L1_error) } /* "View.MemoryView":777 * * if isinstance(memview, _memoryviewslice): * return memoryview_fromslice(dst, new_ndim, # <<<<<<<<<<<<<< * memviewsliceobj.to_object_func, * memviewsliceobj.to_dtype_func, */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_dst, __pyx_v_new_ndim, __pyx_v_memviewsliceobj->to_object_func, __pyx_v_memviewsliceobj->to_dtype_func, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 777, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_memoryview_type))))) __PYX_ERR(2, 777, __pyx_L1_error) __pyx_r = ((struct __pyx_memoryview_obj *)__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L0; /* "View.MemoryView":776 * new_ndim += 1 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * return memoryview_fromslice(dst, new_ndim, * memviewsliceobj.to_object_func, */ } /* "View.MemoryView":782 * memview.dtype_is_object) * else: * return memoryview_fromslice(dst, new_ndim, NULL, NULL, # <<<<<<<<<<<<<< * memview.dtype_is_object) * */ /*else*/ { __Pyx_XDECREF(((PyObject *)__pyx_r)); /* "View.MemoryView":783 * else: * return memoryview_fromslice(dst, new_ndim, NULL, NULL, * memview.dtype_is_object) # <<<<<<<<<<<<<< * * */ __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_dst, __pyx_v_new_ndim, NULL, NULL, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); /* "View.MemoryView":782 * memview.dtype_is_object) * else: * return memoryview_fromslice(dst, new_ndim, NULL, NULL, # <<<<<<<<<<<<<< * memview.dtype_is_object) * */ if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_memoryview_type))))) __PYX_ERR(2, 782, __pyx_L1_error) __pyx_r = ((struct __pyx_memoryview_obj *)__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L0; } /* "View.MemoryView":710 * * @cname('__pyx_memview_slice') * cdef memoryview memview_slice(memoryview memview, object indices): # <<<<<<<<<<<<<< * cdef int new_ndim = 0, suboffset_dim = -1, dim * cdef bint negative_step */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_9); __Pyx_AddTraceback("View.MemoryView.memview_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_memviewsliceobj); __Pyx_XDECREF(__pyx_v_index); __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":807 * * @cname('__pyx_memoryview_slice_memviewslice') * cdef int slice_memviewslice( # <<<<<<<<<<<<<< * __Pyx_memviewslice *dst, * Py_ssize_t shape, Py_ssize_t stride, Py_ssize_t suboffset, */ static int __pyx_memoryview_slice_memviewslice(__Pyx_memviewslice *__pyx_v_dst, Py_ssize_t __pyx_v_shape, Py_ssize_t __pyx_v_stride, Py_ssize_t __pyx_v_suboffset, int __pyx_v_dim, int __pyx_v_new_ndim, int *__pyx_v_suboffset_dim, Py_ssize_t __pyx_v_start, Py_ssize_t __pyx_v_stop, Py_ssize_t __pyx_v_step, int __pyx_v_have_start, int __pyx_v_have_stop, int __pyx_v_have_step, int __pyx_v_is_slice) { Py_ssize_t __pyx_v_new_shape; int __pyx_v_negative_step; int __pyx_r; int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; /* "View.MemoryView":827 * cdef bint negative_step * * if not is_slice: # <<<<<<<<<<<<<< * * if start < 0: */ __pyx_t_1 = ((!(__pyx_v_is_slice != 0)) != 0); if (__pyx_t_1) { /* "View.MemoryView":829 * if not is_slice: * * if start < 0: # <<<<<<<<<<<<<< * start += shape * if not 0 <= start < shape: */ __pyx_t_1 = ((__pyx_v_start < 0) != 0); if (__pyx_t_1) { /* "View.MemoryView":830 * * if start < 0: * start += shape # <<<<<<<<<<<<<< * if not 0 <= start < shape: * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) */ __pyx_v_start = (__pyx_v_start + __pyx_v_shape); /* "View.MemoryView":829 * if not is_slice: * * if start < 0: # <<<<<<<<<<<<<< * start += shape * if not 0 <= start < shape: */ } /* "View.MemoryView":831 * if start < 0: * start += shape * if not 0 <= start < shape: # <<<<<<<<<<<<<< * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) * else: */ __pyx_t_1 = (0 <= __pyx_v_start); if (__pyx_t_1) { __pyx_t_1 = (__pyx_v_start < __pyx_v_shape); } __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":832 * start += shape * if not 0 <= start < shape: * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) # <<<<<<<<<<<<<< * else: * */ __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_IndexError, ((char *)"Index out of bounds (axis %d)"), __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 832, __pyx_L1_error) /* "View.MemoryView":831 * if start < 0: * start += shape * if not 0 <= start < shape: # <<<<<<<<<<<<<< * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) * else: */ } /* "View.MemoryView":827 * cdef bint negative_step * * if not is_slice: # <<<<<<<<<<<<<< * * if start < 0: */ goto __pyx_L3; } /* "View.MemoryView":835 * else: * * negative_step = have_step != 0 and step < 0 # <<<<<<<<<<<<<< * * if have_step and step == 0: */ /*else*/ { __pyx_t_1 = ((__pyx_v_have_step != 0) != 0); if (__pyx_t_1) { } else { __pyx_t_2 = __pyx_t_1; goto __pyx_L6_bool_binop_done; } __pyx_t_1 = ((__pyx_v_step < 0) != 0); __pyx_t_2 = __pyx_t_1; __pyx_L6_bool_binop_done:; __pyx_v_negative_step = __pyx_t_2; /* "View.MemoryView":837 * negative_step = have_step != 0 and step < 0 * * if have_step and step == 0: # <<<<<<<<<<<<<< * _err_dim(ValueError, "Step may not be zero (axis %d)", dim) * */ __pyx_t_1 = (__pyx_v_have_step != 0); if (__pyx_t_1) { } else { __pyx_t_2 = __pyx_t_1; goto __pyx_L9_bool_binop_done; } __pyx_t_1 = ((__pyx_v_step == 0) != 0); __pyx_t_2 = __pyx_t_1; __pyx_L9_bool_binop_done:; if (__pyx_t_2) { /* "View.MemoryView":838 * * if have_step and step == 0: * _err_dim(ValueError, "Step may not be zero (axis %d)", dim) # <<<<<<<<<<<<<< * * */ __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_ValueError, ((char *)"Step may not be zero (axis %d)"), __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 838, __pyx_L1_error) /* "View.MemoryView":837 * negative_step = have_step != 0 and step < 0 * * if have_step and step == 0: # <<<<<<<<<<<<<< * _err_dim(ValueError, "Step may not be zero (axis %d)", dim) * */ } /* "View.MemoryView":841 * * * if have_start: # <<<<<<<<<<<<<< * if start < 0: * start += shape */ __pyx_t_2 = (__pyx_v_have_start != 0); if (__pyx_t_2) { /* "View.MemoryView":842 * * if have_start: * if start < 0: # <<<<<<<<<<<<<< * start += shape * if start < 0: */ __pyx_t_2 = ((__pyx_v_start < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":843 * if have_start: * if start < 0: * start += shape # <<<<<<<<<<<<<< * if start < 0: * start = 0 */ __pyx_v_start = (__pyx_v_start + __pyx_v_shape); /* "View.MemoryView":844 * if start < 0: * start += shape * if start < 0: # <<<<<<<<<<<<<< * start = 0 * elif start >= shape: */ __pyx_t_2 = ((__pyx_v_start < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":845 * start += shape * if start < 0: * start = 0 # <<<<<<<<<<<<<< * elif start >= shape: * if negative_step: */ __pyx_v_start = 0; /* "View.MemoryView":844 * if start < 0: * start += shape * if start < 0: # <<<<<<<<<<<<<< * start = 0 * elif start >= shape: */ } /* "View.MemoryView":842 * * if have_start: * if start < 0: # <<<<<<<<<<<<<< * start += shape * if start < 0: */ goto __pyx_L12; } /* "View.MemoryView":846 * if start < 0: * start = 0 * elif start >= shape: # <<<<<<<<<<<<<< * if negative_step: * start = shape - 1 */ __pyx_t_2 = ((__pyx_v_start >= __pyx_v_shape) != 0); if (__pyx_t_2) { /* "View.MemoryView":847 * start = 0 * elif start >= shape: * if negative_step: # <<<<<<<<<<<<<< * start = shape - 1 * else: */ __pyx_t_2 = (__pyx_v_negative_step != 0); if (__pyx_t_2) { /* "View.MemoryView":848 * elif start >= shape: * if negative_step: * start = shape - 1 # <<<<<<<<<<<<<< * else: * start = shape */ __pyx_v_start = (__pyx_v_shape - 1); /* "View.MemoryView":847 * start = 0 * elif start >= shape: * if negative_step: # <<<<<<<<<<<<<< * start = shape - 1 * else: */ goto __pyx_L14; } /* "View.MemoryView":850 * start = shape - 1 * else: * start = shape # <<<<<<<<<<<<<< * else: * if negative_step: */ /*else*/ { __pyx_v_start = __pyx_v_shape; } __pyx_L14:; /* "View.MemoryView":846 * if start < 0: * start = 0 * elif start >= shape: # <<<<<<<<<<<<<< * if negative_step: * start = shape - 1 */ } __pyx_L12:; /* "View.MemoryView":841 * * * if have_start: # <<<<<<<<<<<<<< * if start < 0: * start += shape */ goto __pyx_L11; } /* "View.MemoryView":852 * start = shape * else: * if negative_step: # <<<<<<<<<<<<<< * start = shape - 1 * else: */ /*else*/ { __pyx_t_2 = (__pyx_v_negative_step != 0); if (__pyx_t_2) { /* "View.MemoryView":853 * else: * if negative_step: * start = shape - 1 # <<<<<<<<<<<<<< * else: * start = 0 */ __pyx_v_start = (__pyx_v_shape - 1); /* "View.MemoryView":852 * start = shape * else: * if negative_step: # <<<<<<<<<<<<<< * start = shape - 1 * else: */ goto __pyx_L15; } /* "View.MemoryView":855 * start = shape - 1 * else: * start = 0 # <<<<<<<<<<<<<< * * if have_stop: */ /*else*/ { __pyx_v_start = 0; } __pyx_L15:; } __pyx_L11:; /* "View.MemoryView":857 * start = 0 * * if have_stop: # <<<<<<<<<<<<<< * if stop < 0: * stop += shape */ __pyx_t_2 = (__pyx_v_have_stop != 0); if (__pyx_t_2) { /* "View.MemoryView":858 * * if have_stop: * if stop < 0: # <<<<<<<<<<<<<< * stop += shape * if stop < 0: */ __pyx_t_2 = ((__pyx_v_stop < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":859 * if have_stop: * if stop < 0: * stop += shape # <<<<<<<<<<<<<< * if stop < 0: * stop = 0 */ __pyx_v_stop = (__pyx_v_stop + __pyx_v_shape); /* "View.MemoryView":860 * if stop < 0: * stop += shape * if stop < 0: # <<<<<<<<<<<<<< * stop = 0 * elif stop > shape: */ __pyx_t_2 = ((__pyx_v_stop < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":861 * stop += shape * if stop < 0: * stop = 0 # <<<<<<<<<<<<<< * elif stop > shape: * stop = shape */ __pyx_v_stop = 0; /* "View.MemoryView":860 * if stop < 0: * stop += shape * if stop < 0: # <<<<<<<<<<<<<< * stop = 0 * elif stop > shape: */ } /* "View.MemoryView":858 * * if have_stop: * if stop < 0: # <<<<<<<<<<<<<< * stop += shape * if stop < 0: */ goto __pyx_L17; } /* "View.MemoryView":862 * if stop < 0: * stop = 0 * elif stop > shape: # <<<<<<<<<<<<<< * stop = shape * else: */ __pyx_t_2 = ((__pyx_v_stop > __pyx_v_shape) != 0); if (__pyx_t_2) { /* "View.MemoryView":863 * stop = 0 * elif stop > shape: * stop = shape # <<<<<<<<<<<<<< * else: * if negative_step: */ __pyx_v_stop = __pyx_v_shape; /* "View.MemoryView":862 * if stop < 0: * stop = 0 * elif stop > shape: # <<<<<<<<<<<<<< * stop = shape * else: */ } __pyx_L17:; /* "View.MemoryView":857 * start = 0 * * if have_stop: # <<<<<<<<<<<<<< * if stop < 0: * stop += shape */ goto __pyx_L16; } /* "View.MemoryView":865 * stop = shape * else: * if negative_step: # <<<<<<<<<<<<<< * stop = -1 * else: */ /*else*/ { __pyx_t_2 = (__pyx_v_negative_step != 0); if (__pyx_t_2) { /* "View.MemoryView":866 * else: * if negative_step: * stop = -1 # <<<<<<<<<<<<<< * else: * stop = shape */ __pyx_v_stop = -1L; /* "View.MemoryView":865 * stop = shape * else: * if negative_step: # <<<<<<<<<<<<<< * stop = -1 * else: */ goto __pyx_L19; } /* "View.MemoryView":868 * stop = -1 * else: * stop = shape # <<<<<<<<<<<<<< * * if not have_step: */ /*else*/ { __pyx_v_stop = __pyx_v_shape; } __pyx_L19:; } __pyx_L16:; /* "View.MemoryView":870 * stop = shape * * if not have_step: # <<<<<<<<<<<<<< * step = 1 * */ __pyx_t_2 = ((!(__pyx_v_have_step != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":871 * * if not have_step: * step = 1 # <<<<<<<<<<<<<< * * */ __pyx_v_step = 1; /* "View.MemoryView":870 * stop = shape * * if not have_step: # <<<<<<<<<<<<<< * step = 1 * */ } /* "View.MemoryView":875 * * with cython.cdivision(True): * new_shape = (stop - start) // step # <<<<<<<<<<<<<< * * if (stop - start) - step * new_shape: */ __pyx_v_new_shape = ((__pyx_v_stop - __pyx_v_start) / __pyx_v_step); /* "View.MemoryView":877 * new_shape = (stop - start) // step * * if (stop - start) - step * new_shape: # <<<<<<<<<<<<<< * new_shape += 1 * */ __pyx_t_2 = (((__pyx_v_stop - __pyx_v_start) - (__pyx_v_step * __pyx_v_new_shape)) != 0); if (__pyx_t_2) { /* "View.MemoryView":878 * * if (stop - start) - step * new_shape: * new_shape += 1 # <<<<<<<<<<<<<< * * if new_shape < 0: */ __pyx_v_new_shape = (__pyx_v_new_shape + 1); /* "View.MemoryView":877 * new_shape = (stop - start) // step * * if (stop - start) - step * new_shape: # <<<<<<<<<<<<<< * new_shape += 1 * */ } /* "View.MemoryView":880 * new_shape += 1 * * if new_shape < 0: # <<<<<<<<<<<<<< * new_shape = 0 * */ __pyx_t_2 = ((__pyx_v_new_shape < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":881 * * if new_shape < 0: * new_shape = 0 # <<<<<<<<<<<<<< * * */ __pyx_v_new_shape = 0; /* "View.MemoryView":880 * new_shape += 1 * * if new_shape < 0: # <<<<<<<<<<<<<< * new_shape = 0 * */ } /* "View.MemoryView":884 * * * dst.strides[new_ndim] = stride * step # <<<<<<<<<<<<<< * dst.shape[new_ndim] = new_shape * dst.suboffsets[new_ndim] = suboffset */ (__pyx_v_dst->strides[__pyx_v_new_ndim]) = (__pyx_v_stride * __pyx_v_step); /* "View.MemoryView":885 * * dst.strides[new_ndim] = stride * step * dst.shape[new_ndim] = new_shape # <<<<<<<<<<<<<< * dst.suboffsets[new_ndim] = suboffset * */ (__pyx_v_dst->shape[__pyx_v_new_ndim]) = __pyx_v_new_shape; /* "View.MemoryView":886 * dst.strides[new_ndim] = stride * step * dst.shape[new_ndim] = new_shape * dst.suboffsets[new_ndim] = suboffset # <<<<<<<<<<<<<< * * */ (__pyx_v_dst->suboffsets[__pyx_v_new_ndim]) = __pyx_v_suboffset; } __pyx_L3:; /* "View.MemoryView":889 * * * if suboffset_dim[0] < 0: # <<<<<<<<<<<<<< * dst.data += start * stride * else: */ __pyx_t_2 = (((__pyx_v_suboffset_dim[0]) < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":890 * * if suboffset_dim[0] < 0: * dst.data += start * stride # <<<<<<<<<<<<<< * else: * dst.suboffsets[suboffset_dim[0]] += start * stride */ __pyx_v_dst->data = (__pyx_v_dst->data + (__pyx_v_start * __pyx_v_stride)); /* "View.MemoryView":889 * * * if suboffset_dim[0] < 0: # <<<<<<<<<<<<<< * dst.data += start * stride * else: */ goto __pyx_L23; } /* "View.MemoryView":892 * dst.data += start * stride * else: * dst.suboffsets[suboffset_dim[0]] += start * stride # <<<<<<<<<<<<<< * * if suboffset >= 0: */ /*else*/ { __pyx_t_3 = (__pyx_v_suboffset_dim[0]); (__pyx_v_dst->suboffsets[__pyx_t_3]) = ((__pyx_v_dst->suboffsets[__pyx_t_3]) + (__pyx_v_start * __pyx_v_stride)); } __pyx_L23:; /* "View.MemoryView":894 * dst.suboffsets[suboffset_dim[0]] += start * stride * * if suboffset >= 0: # <<<<<<<<<<<<<< * if not is_slice: * if new_ndim == 0: */ __pyx_t_2 = ((__pyx_v_suboffset >= 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":895 * * if suboffset >= 0: * if not is_slice: # <<<<<<<<<<<<<< * if new_ndim == 0: * dst.data = ( dst.data)[0] + suboffset */ __pyx_t_2 = ((!(__pyx_v_is_slice != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":896 * if suboffset >= 0: * if not is_slice: * if new_ndim == 0: # <<<<<<<<<<<<<< * dst.data = ( dst.data)[0] + suboffset * else: */ __pyx_t_2 = ((__pyx_v_new_ndim == 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":897 * if not is_slice: * if new_ndim == 0: * dst.data = ( dst.data)[0] + suboffset # <<<<<<<<<<<<<< * else: * _err_dim(IndexError, "All dimensions preceding dimension %d " */ __pyx_v_dst->data = ((((char **)__pyx_v_dst->data)[0]) + __pyx_v_suboffset); /* "View.MemoryView":896 * if suboffset >= 0: * if not is_slice: * if new_ndim == 0: # <<<<<<<<<<<<<< * dst.data = ( dst.data)[0] + suboffset * else: */ goto __pyx_L26; } /* "View.MemoryView":899 * dst.data = ( dst.data)[0] + suboffset * else: * _err_dim(IndexError, "All dimensions preceding dimension %d " # <<<<<<<<<<<<<< * "must be indexed and not sliced", dim) * else: */ /*else*/ { /* "View.MemoryView":900 * else: * _err_dim(IndexError, "All dimensions preceding dimension %d " * "must be indexed and not sliced", dim) # <<<<<<<<<<<<<< * else: * suboffset_dim[0] = new_ndim */ __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_IndexError, ((char *)"All dimensions preceding dimension %d must be indexed and not sliced"), __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 899, __pyx_L1_error) } __pyx_L26:; /* "View.MemoryView":895 * * if suboffset >= 0: * if not is_slice: # <<<<<<<<<<<<<< * if new_ndim == 0: * dst.data = ( dst.data)[0] + suboffset */ goto __pyx_L25; } /* "View.MemoryView":902 * "must be indexed and not sliced", dim) * else: * suboffset_dim[0] = new_ndim # <<<<<<<<<<<<<< * * return 0 */ /*else*/ { (__pyx_v_suboffset_dim[0]) = __pyx_v_new_ndim; } __pyx_L25:; /* "View.MemoryView":894 * dst.suboffsets[suboffset_dim[0]] += start * stride * * if suboffset >= 0: # <<<<<<<<<<<<<< * if not is_slice: * if new_ndim == 0: */ } /* "View.MemoryView":904 * suboffset_dim[0] = new_ndim * * return 0 # <<<<<<<<<<<<<< * * */ __pyx_r = 0; goto __pyx_L0; /* "View.MemoryView":807 * * @cname('__pyx_memoryview_slice_memviewslice') * cdef int slice_memviewslice( # <<<<<<<<<<<<<< * __Pyx_memviewslice *dst, * Py_ssize_t shape, Py_ssize_t stride, Py_ssize_t suboffset, */ /* function exit code */ __pyx_L1_error:; { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_AddTraceback("View.MemoryView.slice_memviewslice", __pyx_clineno, __pyx_lineno, __pyx_filename); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif } __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "View.MemoryView":910 * * @cname('__pyx_pybuffer_index') * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, # <<<<<<<<<<<<<< * Py_ssize_t dim) except NULL: * cdef Py_ssize_t shape, stride, suboffset = -1 */ static char *__pyx_pybuffer_index(Py_buffer *__pyx_v_view, char *__pyx_v_bufp, Py_ssize_t __pyx_v_index, Py_ssize_t __pyx_v_dim) { Py_ssize_t __pyx_v_shape; Py_ssize_t __pyx_v_stride; Py_ssize_t __pyx_v_suboffset; Py_ssize_t __pyx_v_itemsize; char *__pyx_v_resultp; char *__pyx_r; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; __Pyx_RefNannySetupContext("pybuffer_index", 0); /* "View.MemoryView":912 * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, * Py_ssize_t dim) except NULL: * cdef Py_ssize_t shape, stride, suboffset = -1 # <<<<<<<<<<<<<< * cdef Py_ssize_t itemsize = view.itemsize * cdef char *resultp */ __pyx_v_suboffset = -1L; /* "View.MemoryView":913 * Py_ssize_t dim) except NULL: * cdef Py_ssize_t shape, stride, suboffset = -1 * cdef Py_ssize_t itemsize = view.itemsize # <<<<<<<<<<<<<< * cdef char *resultp * */ __pyx_t_1 = __pyx_v_view->itemsize; __pyx_v_itemsize = __pyx_t_1; /* "View.MemoryView":916 * cdef char *resultp * * if view.ndim == 0: # <<<<<<<<<<<<<< * shape = view.len / itemsize * stride = itemsize */ __pyx_t_2 = ((__pyx_v_view->ndim == 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":917 * * if view.ndim == 0: * shape = view.len / itemsize # <<<<<<<<<<<<<< * stride = itemsize * else: */ if (unlikely(__pyx_v_itemsize == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero"); __PYX_ERR(2, 917, __pyx_L1_error) } else if (sizeof(Py_ssize_t) == sizeof(long) && (!(((Py_ssize_t)-1) > 0)) && unlikely(__pyx_v_itemsize == (Py_ssize_t)-1) && unlikely(UNARY_NEG_WOULD_OVERFLOW(__pyx_v_view->len))) { PyErr_SetString(PyExc_OverflowError, "value too large to perform division"); __PYX_ERR(2, 917, __pyx_L1_error) } __pyx_v_shape = __Pyx_div_Py_ssize_t(__pyx_v_view->len, __pyx_v_itemsize); /* "View.MemoryView":918 * if view.ndim == 0: * shape = view.len / itemsize * stride = itemsize # <<<<<<<<<<<<<< * else: * shape = view.shape[dim] */ __pyx_v_stride = __pyx_v_itemsize; /* "View.MemoryView":916 * cdef char *resultp * * if view.ndim == 0: # <<<<<<<<<<<<<< * shape = view.len / itemsize * stride = itemsize */ goto __pyx_L3; } /* "View.MemoryView":920 * stride = itemsize * else: * shape = view.shape[dim] # <<<<<<<<<<<<<< * stride = view.strides[dim] * if view.suboffsets != NULL: */ /*else*/ { __pyx_v_shape = (__pyx_v_view->shape[__pyx_v_dim]); /* "View.MemoryView":921 * else: * shape = view.shape[dim] * stride = view.strides[dim] # <<<<<<<<<<<<<< * if view.suboffsets != NULL: * suboffset = view.suboffsets[dim] */ __pyx_v_stride = (__pyx_v_view->strides[__pyx_v_dim]); /* "View.MemoryView":922 * shape = view.shape[dim] * stride = view.strides[dim] * if view.suboffsets != NULL: # <<<<<<<<<<<<<< * suboffset = view.suboffsets[dim] * */ __pyx_t_2 = ((__pyx_v_view->suboffsets != NULL) != 0); if (__pyx_t_2) { /* "View.MemoryView":923 * stride = view.strides[dim] * if view.suboffsets != NULL: * suboffset = view.suboffsets[dim] # <<<<<<<<<<<<<< * * if index < 0: */ __pyx_v_suboffset = (__pyx_v_view->suboffsets[__pyx_v_dim]); /* "View.MemoryView":922 * shape = view.shape[dim] * stride = view.strides[dim] * if view.suboffsets != NULL: # <<<<<<<<<<<<<< * suboffset = view.suboffsets[dim] * */ } } __pyx_L3:; /* "View.MemoryView":925 * suboffset = view.suboffsets[dim] * * if index < 0: # <<<<<<<<<<<<<< * index += view.shape[dim] * if index < 0: */ __pyx_t_2 = ((__pyx_v_index < 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":926 * * if index < 0: * index += view.shape[dim] # <<<<<<<<<<<<<< * if index < 0: * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) */ __pyx_v_index = (__pyx_v_index + (__pyx_v_view->shape[__pyx_v_dim])); /* "View.MemoryView":927 * if index < 0: * index += view.shape[dim] * if index < 0: # <<<<<<<<<<<<<< * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * */ __pyx_t_2 = ((__pyx_v_index < 0) != 0); if (unlikely(__pyx_t_2)) { /* "View.MemoryView":928 * index += view.shape[dim] * if index < 0: * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) # <<<<<<<<<<<<<< * * if index >= shape: */ __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_dim); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_IndexError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 928, __pyx_L1_error) /* "View.MemoryView":927 * if index < 0: * index += view.shape[dim] * if index < 0: # <<<<<<<<<<<<<< * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * */ } /* "View.MemoryView":925 * suboffset = view.suboffsets[dim] * * if index < 0: # <<<<<<<<<<<<<< * index += view.shape[dim] * if index < 0: */ } /* "View.MemoryView":930 * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * * if index >= shape: # <<<<<<<<<<<<<< * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * */ __pyx_t_2 = ((__pyx_v_index >= __pyx_v_shape) != 0); if (unlikely(__pyx_t_2)) { /* "View.MemoryView":931 * * if index >= shape: * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) # <<<<<<<<<<<<<< * * resultp = bufp + index * stride */ __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_dim); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_IndexError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 931, __pyx_L1_error) /* "View.MemoryView":930 * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * * if index >= shape: # <<<<<<<<<<<<<< * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * */ } /* "View.MemoryView":933 * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) * * resultp = bufp + index * stride # <<<<<<<<<<<<<< * if suboffset >= 0: * resultp = ( resultp)[0] + suboffset */ __pyx_v_resultp = (__pyx_v_bufp + (__pyx_v_index * __pyx_v_stride)); /* "View.MemoryView":934 * * resultp = bufp + index * stride * if suboffset >= 0: # <<<<<<<<<<<<<< * resultp = ( resultp)[0] + suboffset * */ __pyx_t_2 = ((__pyx_v_suboffset >= 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":935 * resultp = bufp + index * stride * if suboffset >= 0: * resultp = ( resultp)[0] + suboffset # <<<<<<<<<<<<<< * * return resultp */ __pyx_v_resultp = ((((char **)__pyx_v_resultp)[0]) + __pyx_v_suboffset); /* "View.MemoryView":934 * * resultp = bufp + index * stride * if suboffset >= 0: # <<<<<<<<<<<<<< * resultp = ( resultp)[0] + suboffset * */ } /* "View.MemoryView":937 * resultp = ( resultp)[0] + suboffset * * return resultp # <<<<<<<<<<<<<< * * */ __pyx_r = __pyx_v_resultp; goto __pyx_L0; /* "View.MemoryView":910 * * @cname('__pyx_pybuffer_index') * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, # <<<<<<<<<<<<<< * Py_ssize_t dim) except NULL: * cdef Py_ssize_t shape, stride, suboffset = -1 */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("View.MemoryView.pybuffer_index", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":943 * * @cname('__pyx_memslice_transpose') * cdef int transpose_memslice(__Pyx_memviewslice *memslice) nogil except 0: # <<<<<<<<<<<<<< * cdef int ndim = memslice.memview.view.ndim * */ static int __pyx_memslice_transpose(__Pyx_memviewslice *__pyx_v_memslice) { int __pyx_v_ndim; Py_ssize_t *__pyx_v_shape; Py_ssize_t *__pyx_v_strides; int __pyx_v_i; int __pyx_v_j; int __pyx_r; int __pyx_t_1; Py_ssize_t *__pyx_t_2; long __pyx_t_3; long __pyx_t_4; Py_ssize_t __pyx_t_5; Py_ssize_t __pyx_t_6; int __pyx_t_7; int __pyx_t_8; int __pyx_t_9; /* "View.MemoryView":944 * @cname('__pyx_memslice_transpose') * cdef int transpose_memslice(__Pyx_memviewslice *memslice) nogil except 0: * cdef int ndim = memslice.memview.view.ndim # <<<<<<<<<<<<<< * * cdef Py_ssize_t *shape = memslice.shape */ __pyx_t_1 = __pyx_v_memslice->memview->view.ndim; __pyx_v_ndim = __pyx_t_1; /* "View.MemoryView":946 * cdef int ndim = memslice.memview.view.ndim * * cdef Py_ssize_t *shape = memslice.shape # <<<<<<<<<<<<<< * cdef Py_ssize_t *strides = memslice.strides * */ __pyx_t_2 = __pyx_v_memslice->shape; __pyx_v_shape = __pyx_t_2; /* "View.MemoryView":947 * * cdef Py_ssize_t *shape = memslice.shape * cdef Py_ssize_t *strides = memslice.strides # <<<<<<<<<<<<<< * * */ __pyx_t_2 = __pyx_v_memslice->strides; __pyx_v_strides = __pyx_t_2; /* "View.MemoryView":951 * * cdef int i, j * for i in range(ndim / 2): # <<<<<<<<<<<<<< * j = ndim - 1 - i * strides[i], strides[j] = strides[j], strides[i] */ __pyx_t_3 = __Pyx_div_long(__pyx_v_ndim, 2); __pyx_t_4 = __pyx_t_3; for (__pyx_t_1 = 0; __pyx_t_1 < __pyx_t_4; __pyx_t_1+=1) { __pyx_v_i = __pyx_t_1; /* "View.MemoryView":952 * cdef int i, j * for i in range(ndim / 2): * j = ndim - 1 - i # <<<<<<<<<<<<<< * strides[i], strides[j] = strides[j], strides[i] * shape[i], shape[j] = shape[j], shape[i] */ __pyx_v_j = ((__pyx_v_ndim - 1) - __pyx_v_i); /* "View.MemoryView":953 * for i in range(ndim / 2): * j = ndim - 1 - i * strides[i], strides[j] = strides[j], strides[i] # <<<<<<<<<<<<<< * shape[i], shape[j] = shape[j], shape[i] * */ __pyx_t_5 = (__pyx_v_strides[__pyx_v_j]); __pyx_t_6 = (__pyx_v_strides[__pyx_v_i]); (__pyx_v_strides[__pyx_v_i]) = __pyx_t_5; (__pyx_v_strides[__pyx_v_j]) = __pyx_t_6; /* "View.MemoryView":954 * j = ndim - 1 - i * strides[i], strides[j] = strides[j], strides[i] * shape[i], shape[j] = shape[j], shape[i] # <<<<<<<<<<<<<< * * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: */ __pyx_t_6 = (__pyx_v_shape[__pyx_v_j]); __pyx_t_5 = (__pyx_v_shape[__pyx_v_i]); (__pyx_v_shape[__pyx_v_i]) = __pyx_t_6; (__pyx_v_shape[__pyx_v_j]) = __pyx_t_5; /* "View.MemoryView":956 * shape[i], shape[j] = shape[j], shape[i] * * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: # <<<<<<<<<<<<<< * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") * */ __pyx_t_8 = (((__pyx_v_memslice->suboffsets[__pyx_v_i]) >= 0) != 0); if (!__pyx_t_8) { } else { __pyx_t_7 = __pyx_t_8; goto __pyx_L6_bool_binop_done; } __pyx_t_8 = (((__pyx_v_memslice->suboffsets[__pyx_v_j]) >= 0) != 0); __pyx_t_7 = __pyx_t_8; __pyx_L6_bool_binop_done:; if (__pyx_t_7) { /* "View.MemoryView":957 * * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") # <<<<<<<<<<<<<< * * return 1 */ __pyx_t_9 = __pyx_memoryview_err(__pyx_builtin_ValueError, ((char *)"Cannot transpose memoryview with indirect dimensions")); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(2, 957, __pyx_L1_error) /* "View.MemoryView":956 * shape[i], shape[j] = shape[j], shape[i] * * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: # <<<<<<<<<<<<<< * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") * */ } } /* "View.MemoryView":959 * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") * * return 1 # <<<<<<<<<<<<<< * * */ __pyx_r = 1; goto __pyx_L0; /* "View.MemoryView":943 * * @cname('__pyx_memslice_transpose') * cdef int transpose_memslice(__Pyx_memviewslice *memslice) nogil except 0: # <<<<<<<<<<<<<< * cdef int ndim = memslice.memview.view.ndim * */ /* function exit code */ __pyx_L1_error:; { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_AddTraceback("View.MemoryView.transpose_memslice", __pyx_clineno, __pyx_lineno, __pyx_filename); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif } __pyx_r = 0; __pyx_L0:; return __pyx_r; } /* "View.MemoryView":976 * cdef int (*to_dtype_func)(char *, object) except 0 * * def __dealloc__(self): # <<<<<<<<<<<<<< * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) * */ /* Python wrapper */ static void __pyx_memoryviewslice___dealloc__(PyObject *__pyx_v_self); /*proto*/ static void __pyx_memoryviewslice___dealloc__(PyObject *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(struct __pyx_memoryviewslice_obj *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__", 0); /* "View.MemoryView":977 * * def __dealloc__(self): * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) # <<<<<<<<<<<<<< * * cdef convert_item_to_object(self, char *itemp): */ __PYX_XDEC_MEMVIEW((&__pyx_v_self->from_slice), 1); /* "View.MemoryView":976 * cdef int (*to_dtype_func)(char *, object) except 0 * * def __dealloc__(self): # <<<<<<<<<<<<<< * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) * */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "View.MemoryView":979 * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) * * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< * if self.to_object_func != NULL: * return self.to_object_func(itemp) */ static PyObject *__pyx_memoryviewslice_convert_item_to_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannySetupContext("convert_item_to_object", 0); /* "View.MemoryView":980 * * cdef convert_item_to_object(self, char *itemp): * if self.to_object_func != NULL: # <<<<<<<<<<<<<< * return self.to_object_func(itemp) * else: */ __pyx_t_1 = ((__pyx_v_self->to_object_func != NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":981 * cdef convert_item_to_object(self, char *itemp): * if self.to_object_func != NULL: * return self.to_object_func(itemp) # <<<<<<<<<<<<<< * else: * return memoryview.convert_item_to_object(self, itemp) */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __pyx_v_self->to_object_func(__pyx_v_itemp); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "View.MemoryView":980 * * cdef convert_item_to_object(self, char *itemp): * if self.to_object_func != NULL: # <<<<<<<<<<<<<< * return self.to_object_func(itemp) * else: */ } /* "View.MemoryView":983 * return self.to_object_func(itemp) * else: * return memoryview.convert_item_to_object(self, itemp) # <<<<<<<<<<<<<< * * cdef assign_item_from_object(self, char *itemp, object value): */ /*else*/ { __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __pyx_memoryview_convert_item_to_object(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_itemp); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; } /* "View.MemoryView":979 * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) * * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< * if self.to_object_func != NULL: * return self.to_object_func(itemp) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("View.MemoryView._memoryviewslice.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":985 * return memoryview.convert_item_to_object(self, itemp) * * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< * if self.to_dtype_func != NULL: * self.to_dtype_func(itemp, value) */ static PyObject *__pyx_memoryviewslice_assign_item_from_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("assign_item_from_object", 0); /* "View.MemoryView":986 * * cdef assign_item_from_object(self, char *itemp, object value): * if self.to_dtype_func != NULL: # <<<<<<<<<<<<<< * self.to_dtype_func(itemp, value) * else: */ __pyx_t_1 = ((__pyx_v_self->to_dtype_func != NULL) != 0); if (__pyx_t_1) { /* "View.MemoryView":987 * cdef assign_item_from_object(self, char *itemp, object value): * if self.to_dtype_func != NULL: * self.to_dtype_func(itemp, value) # <<<<<<<<<<<<<< * else: * memoryview.assign_item_from_object(self, itemp, value) */ __pyx_t_2 = __pyx_v_self->to_dtype_func(__pyx_v_itemp, __pyx_v_value); if (unlikely(__pyx_t_2 == ((int)0))) __PYX_ERR(2, 987, __pyx_L1_error) /* "View.MemoryView":986 * * cdef assign_item_from_object(self, char *itemp, object value): * if self.to_dtype_func != NULL: # <<<<<<<<<<<<<< * self.to_dtype_func(itemp, value) * else: */ goto __pyx_L3; } /* "View.MemoryView":989 * self.to_dtype_func(itemp, value) * else: * memoryview.assign_item_from_object(self, itemp, value) # <<<<<<<<<<<<<< * * @property */ /*else*/ { __pyx_t_3 = __pyx_memoryview_assign_item_from_object(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_itemp, __pyx_v_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_L3:; /* "View.MemoryView":985 * return memoryview.convert_item_to_object(self, itemp) * * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< * if self.to_dtype_func != NULL: * self.to_dtype_func(itemp, value) */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView._memoryviewslice.assign_item_from_object", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":992 * * @property * def base(self): # <<<<<<<<<<<<<< * return self.from_object * */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(struct __pyx_memoryviewslice_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* "View.MemoryView":993 * @property * def base(self): * return self.from_object # <<<<<<<<<<<<<< * * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->from_object); __pyx_r = __pyx_v_self->from_object; goto __pyx_L0; /* "View.MemoryView":992 * * @property * def base(self): # <<<<<<<<<<<<<< * return self.from_object * */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_memoryviewslice_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw___pyx_memoryviewslice_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_memoryviewslice___reduce_cython__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_memoryviewslice___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__36, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(2, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView._memoryviewslice.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ /* Python wrapper */ static PyObject *__pyx_pw___pyx_memoryviewslice_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw___pyx_memoryviewslice_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf___pyx_memoryviewslice_2__setstate_cython__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf___pyx_memoryviewslice_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__37, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(2, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView._memoryviewslice.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":999 * * @cname('__pyx_memoryview_fromslice') * cdef memoryview_fromslice(__Pyx_memviewslice memviewslice, # <<<<<<<<<<<<<< * int ndim, * object (*to_object_func)(char *), */ static PyObject *__pyx_memoryview_fromslice(__Pyx_memviewslice __pyx_v_memviewslice, int __pyx_v_ndim, PyObject *(*__pyx_v_to_object_func)(char *), int (*__pyx_v_to_dtype_func)(char *, PyObject *), int __pyx_v_dtype_is_object) { struct __pyx_memoryviewslice_obj *__pyx_v_result = 0; Py_ssize_t __pyx_v_suboffset; PyObject *__pyx_v_length = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; __Pyx_TypeInfo *__pyx_t_4; Py_buffer __pyx_t_5; Py_ssize_t *__pyx_t_6; Py_ssize_t *__pyx_t_7; Py_ssize_t *__pyx_t_8; Py_ssize_t __pyx_t_9; __Pyx_RefNannySetupContext("memoryview_fromslice", 0); /* "View.MemoryView":1007 * cdef _memoryviewslice result * * if memviewslice.memview == Py_None: # <<<<<<<<<<<<<< * return None * */ __pyx_t_1 = ((((PyObject *)__pyx_v_memviewslice.memview) == Py_None) != 0); if (__pyx_t_1) { /* "View.MemoryView":1008 * * if memviewslice.memview == Py_None: * return None # <<<<<<<<<<<<<< * * */ __Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; /* "View.MemoryView":1007 * cdef _memoryviewslice result * * if memviewslice.memview == Py_None: # <<<<<<<<<<<<<< * return None * */ } /* "View.MemoryView":1013 * * * result = _memoryviewslice(None, 0, dtype_is_object) # <<<<<<<<<<<<<< * * result.from_slice = memviewslice */ __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_3, 0, Py_None); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryviewslice_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_result = ((struct __pyx_memoryviewslice_obj *)__pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":1015 * result = _memoryviewslice(None, 0, dtype_is_object) * * result.from_slice = memviewslice # <<<<<<<<<<<<<< * __PYX_INC_MEMVIEW(&memviewslice, 1) * */ __pyx_v_result->from_slice = __pyx_v_memviewslice; /* "View.MemoryView":1016 * * result.from_slice = memviewslice * __PYX_INC_MEMVIEW(&memviewslice, 1) # <<<<<<<<<<<<<< * * result.from_object = ( memviewslice.memview).base */ __PYX_INC_MEMVIEW((&__pyx_v_memviewslice), 1); /* "View.MemoryView":1018 * __PYX_INC_MEMVIEW(&memviewslice, 1) * * result.from_object = ( memviewslice.memview).base # <<<<<<<<<<<<<< * result.typeinfo = memviewslice.memview.typeinfo * */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_memviewslice.memview), __pyx_n_s_base); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_2); __Pyx_GOTREF(__pyx_v_result->from_object); __Pyx_DECREF(__pyx_v_result->from_object); __pyx_v_result->from_object = __pyx_t_2; __pyx_t_2 = 0; /* "View.MemoryView":1019 * * result.from_object = ( memviewslice.memview).base * result.typeinfo = memviewslice.memview.typeinfo # <<<<<<<<<<<<<< * * result.view = memviewslice.memview.view */ __pyx_t_4 = __pyx_v_memviewslice.memview->typeinfo; __pyx_v_result->__pyx_base.typeinfo = __pyx_t_4; /* "View.MemoryView":1021 * result.typeinfo = memviewslice.memview.typeinfo * * result.view = memviewslice.memview.view # <<<<<<<<<<<<<< * result.view.buf = memviewslice.data * result.view.ndim = ndim */ __pyx_t_5 = __pyx_v_memviewslice.memview->view; __pyx_v_result->__pyx_base.view = __pyx_t_5; /* "View.MemoryView":1022 * * result.view = memviewslice.memview.view * result.view.buf = memviewslice.data # <<<<<<<<<<<<<< * result.view.ndim = ndim * (<__pyx_buffer *> &result.view).obj = Py_None */ __pyx_v_result->__pyx_base.view.buf = ((void *)__pyx_v_memviewslice.data); /* "View.MemoryView":1023 * result.view = memviewslice.memview.view * result.view.buf = memviewslice.data * result.view.ndim = ndim # <<<<<<<<<<<<<< * (<__pyx_buffer *> &result.view).obj = Py_None * Py_INCREF(Py_None) */ __pyx_v_result->__pyx_base.view.ndim = __pyx_v_ndim; /* "View.MemoryView":1024 * result.view.buf = memviewslice.data * result.view.ndim = ndim * (<__pyx_buffer *> &result.view).obj = Py_None # <<<<<<<<<<<<<< * Py_INCREF(Py_None) * */ ((Py_buffer *)(&__pyx_v_result->__pyx_base.view))->obj = Py_None; /* "View.MemoryView":1025 * result.view.ndim = ndim * (<__pyx_buffer *> &result.view).obj = Py_None * Py_INCREF(Py_None) # <<<<<<<<<<<<<< * * if (memviewslice.memview).flags & PyBUF_WRITABLE: */ Py_INCREF(Py_None); /* "View.MemoryView":1027 * Py_INCREF(Py_None) * * if (memviewslice.memview).flags & PyBUF_WRITABLE: # <<<<<<<<<<<<<< * result.flags = PyBUF_RECORDS * else: */ __pyx_t_1 = ((((struct __pyx_memoryview_obj *)__pyx_v_memviewslice.memview)->flags & PyBUF_WRITABLE) != 0); if (__pyx_t_1) { /* "View.MemoryView":1028 * * if (memviewslice.memview).flags & PyBUF_WRITABLE: * result.flags = PyBUF_RECORDS # <<<<<<<<<<<<<< * else: * result.flags = PyBUF_RECORDS_RO */ __pyx_v_result->__pyx_base.flags = PyBUF_RECORDS; /* "View.MemoryView":1027 * Py_INCREF(Py_None) * * if (memviewslice.memview).flags & PyBUF_WRITABLE: # <<<<<<<<<<<<<< * result.flags = PyBUF_RECORDS * else: */ goto __pyx_L4; } /* "View.MemoryView":1030 * result.flags = PyBUF_RECORDS * else: * result.flags = PyBUF_RECORDS_RO # <<<<<<<<<<<<<< * * result.view.shape = result.from_slice.shape */ /*else*/ { __pyx_v_result->__pyx_base.flags = PyBUF_RECORDS_RO; } __pyx_L4:; /* "View.MemoryView":1032 * result.flags = PyBUF_RECORDS_RO * * result.view.shape = result.from_slice.shape # <<<<<<<<<<<<<< * result.view.strides = result.from_slice.strides * */ __pyx_v_result->__pyx_base.view.shape = ((Py_ssize_t *)__pyx_v_result->from_slice.shape); /* "View.MemoryView":1033 * * result.view.shape = result.from_slice.shape * result.view.strides = result.from_slice.strides # <<<<<<<<<<<<<< * * */ __pyx_v_result->__pyx_base.view.strides = ((Py_ssize_t *)__pyx_v_result->from_slice.strides); /* "View.MemoryView":1036 * * * result.view.suboffsets = NULL # <<<<<<<<<<<<<< * for suboffset in result.from_slice.suboffsets[:ndim]: * if suboffset >= 0: */ __pyx_v_result->__pyx_base.view.suboffsets = NULL; /* "View.MemoryView":1037 * * result.view.suboffsets = NULL * for suboffset in result.from_slice.suboffsets[:ndim]: # <<<<<<<<<<<<<< * if suboffset >= 0: * result.view.suboffsets = result.from_slice.suboffsets */ __pyx_t_7 = (__pyx_v_result->from_slice.suboffsets + __pyx_v_ndim); for (__pyx_t_8 = __pyx_v_result->from_slice.suboffsets; __pyx_t_8 < __pyx_t_7; __pyx_t_8++) { __pyx_t_6 = __pyx_t_8; __pyx_v_suboffset = (__pyx_t_6[0]); /* "View.MemoryView":1038 * result.view.suboffsets = NULL * for suboffset in result.from_slice.suboffsets[:ndim]: * if suboffset >= 0: # <<<<<<<<<<<<<< * result.view.suboffsets = result.from_slice.suboffsets * break */ __pyx_t_1 = ((__pyx_v_suboffset >= 0) != 0); if (__pyx_t_1) { /* "View.MemoryView":1039 * for suboffset in result.from_slice.suboffsets[:ndim]: * if suboffset >= 0: * result.view.suboffsets = result.from_slice.suboffsets # <<<<<<<<<<<<<< * break * */ __pyx_v_result->__pyx_base.view.suboffsets = ((Py_ssize_t *)__pyx_v_result->from_slice.suboffsets); /* "View.MemoryView":1040 * if suboffset >= 0: * result.view.suboffsets = result.from_slice.suboffsets * break # <<<<<<<<<<<<<< * * result.view.len = result.view.itemsize */ goto __pyx_L6_break; /* "View.MemoryView":1038 * result.view.suboffsets = NULL * for suboffset in result.from_slice.suboffsets[:ndim]: * if suboffset >= 0: # <<<<<<<<<<<<<< * result.view.suboffsets = result.from_slice.suboffsets * break */ } } __pyx_L6_break:; /* "View.MemoryView":1042 * break * * result.view.len = result.view.itemsize # <<<<<<<<<<<<<< * for length in result.view.shape[:ndim]: * result.view.len *= length */ __pyx_t_9 = __pyx_v_result->__pyx_base.view.itemsize; __pyx_v_result->__pyx_base.view.len = __pyx_t_9; /* "View.MemoryView":1043 * * result.view.len = result.view.itemsize * for length in result.view.shape[:ndim]: # <<<<<<<<<<<<<< * result.view.len *= length * */ __pyx_t_7 = (__pyx_v_result->__pyx_base.view.shape + __pyx_v_ndim); for (__pyx_t_8 = __pyx_v_result->__pyx_base.view.shape; __pyx_t_8 < __pyx_t_7; __pyx_t_8++) { __pyx_t_6 = __pyx_t_8; __pyx_t_2 = PyInt_FromSsize_t((__pyx_t_6[0])); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XDECREF_SET(__pyx_v_length, __pyx_t_2); __pyx_t_2 = 0; /* "View.MemoryView":1044 * result.view.len = result.view.itemsize * for length in result.view.shape[:ndim]: * result.view.len *= length # <<<<<<<<<<<<<< * * result.to_object_func = to_object_func */ __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_result->__pyx_base.view.len); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_InPlaceMultiply(__pyx_t_2, __pyx_v_length); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 1044, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_result->__pyx_base.view.len = __pyx_t_9; } /* "View.MemoryView":1046 * result.view.len *= length * * result.to_object_func = to_object_func # <<<<<<<<<<<<<< * result.to_dtype_func = to_dtype_func * */ __pyx_v_result->to_object_func = __pyx_v_to_object_func; /* "View.MemoryView":1047 * * result.to_object_func = to_object_func * result.to_dtype_func = to_dtype_func # <<<<<<<<<<<<<< * * return result */ __pyx_v_result->to_dtype_func = __pyx_v_to_dtype_func; /* "View.MemoryView":1049 * result.to_dtype_func = to_dtype_func * * return result # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_get_slice_from_memoryview') */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_result)); __pyx_r = ((PyObject *)__pyx_v_result); goto __pyx_L0; /* "View.MemoryView":999 * * @cname('__pyx_memoryview_fromslice') * cdef memoryview_fromslice(__Pyx_memviewslice memviewslice, # <<<<<<<<<<<<<< * int ndim, * object (*to_object_func)(char *), */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("View.MemoryView.memoryview_fromslice", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_result); __Pyx_XDECREF(__pyx_v_length); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":1052 * * @cname('__pyx_memoryview_get_slice_from_memoryview') * cdef __Pyx_memviewslice *get_slice_from_memview(memoryview memview, # <<<<<<<<<<<<<< * __Pyx_memviewslice *mslice): * cdef _memoryviewslice obj */ static __Pyx_memviewslice *__pyx_memoryview_get_slice_from_memoryview(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_mslice) { struct __pyx_memoryviewslice_obj *__pyx_v_obj = 0; __Pyx_memviewslice *__pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; __Pyx_RefNannySetupContext("get_slice_from_memview", 0); /* "View.MemoryView":1055 * __Pyx_memviewslice *mslice): * cdef _memoryviewslice obj * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * obj = memview * return &obj.from_slice */ __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":1056 * cdef _memoryviewslice obj * if isinstance(memview, _memoryviewslice): * obj = memview # <<<<<<<<<<<<<< * return &obj.from_slice * else: */ if (!(likely(((((PyObject *)__pyx_v_memview)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type))))) __PYX_ERR(2, 1056, __pyx_L1_error) __pyx_t_3 = ((PyObject *)__pyx_v_memview); __Pyx_INCREF(__pyx_t_3); __pyx_v_obj = ((struct __pyx_memoryviewslice_obj *)__pyx_t_3); __pyx_t_3 = 0; /* "View.MemoryView":1057 * if isinstance(memview, _memoryviewslice): * obj = memview * return &obj.from_slice # <<<<<<<<<<<<<< * else: * slice_copy(memview, mslice) */ __pyx_r = (&__pyx_v_obj->from_slice); goto __pyx_L0; /* "View.MemoryView":1055 * __Pyx_memviewslice *mslice): * cdef _memoryviewslice obj * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * obj = memview * return &obj.from_slice */ } /* "View.MemoryView":1059 * return &obj.from_slice * else: * slice_copy(memview, mslice) # <<<<<<<<<<<<<< * return mslice * */ /*else*/ { __pyx_memoryview_slice_copy(__pyx_v_memview, __pyx_v_mslice); /* "View.MemoryView":1060 * else: * slice_copy(memview, mslice) * return mslice # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_slice_copy') */ __pyx_r = __pyx_v_mslice; goto __pyx_L0; } /* "View.MemoryView":1052 * * @cname('__pyx_memoryview_get_slice_from_memoryview') * cdef __Pyx_memviewslice *get_slice_from_memview(memoryview memview, # <<<<<<<<<<<<<< * __Pyx_memviewslice *mslice): * cdef _memoryviewslice obj */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_WriteUnraisable("View.MemoryView.get_slice_from_memview", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_obj); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":1063 * * @cname('__pyx_memoryview_slice_copy') * cdef void slice_copy(memoryview memview, __Pyx_memviewslice *dst): # <<<<<<<<<<<<<< * cdef int dim * cdef (Py_ssize_t*) shape, strides, suboffsets */ static void __pyx_memoryview_slice_copy(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_dst) { int __pyx_v_dim; Py_ssize_t *__pyx_v_shape; Py_ssize_t *__pyx_v_strides; Py_ssize_t *__pyx_v_suboffsets; __Pyx_RefNannyDeclarations Py_ssize_t *__pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; Py_ssize_t __pyx_t_5; __Pyx_RefNannySetupContext("slice_copy", 0); /* "View.MemoryView":1067 * cdef (Py_ssize_t*) shape, strides, suboffsets * * shape = memview.view.shape # <<<<<<<<<<<<<< * strides = memview.view.strides * suboffsets = memview.view.suboffsets */ __pyx_t_1 = __pyx_v_memview->view.shape; __pyx_v_shape = __pyx_t_1; /* "View.MemoryView":1068 * * shape = memview.view.shape * strides = memview.view.strides # <<<<<<<<<<<<<< * suboffsets = memview.view.suboffsets * */ __pyx_t_1 = __pyx_v_memview->view.strides; __pyx_v_strides = __pyx_t_1; /* "View.MemoryView":1069 * shape = memview.view.shape * strides = memview.view.strides * suboffsets = memview.view.suboffsets # <<<<<<<<<<<<<< * * dst.memview = <__pyx_memoryview *> memview */ __pyx_t_1 = __pyx_v_memview->view.suboffsets; __pyx_v_suboffsets = __pyx_t_1; /* "View.MemoryView":1071 * suboffsets = memview.view.suboffsets * * dst.memview = <__pyx_memoryview *> memview # <<<<<<<<<<<<<< * dst.data = memview.view.buf * */ __pyx_v_dst->memview = ((struct __pyx_memoryview_obj *)__pyx_v_memview); /* "View.MemoryView":1072 * * dst.memview = <__pyx_memoryview *> memview * dst.data = memview.view.buf # <<<<<<<<<<<<<< * * for dim in range(memview.view.ndim): */ __pyx_v_dst->data = ((char *)__pyx_v_memview->view.buf); /* "View.MemoryView":1074 * dst.data = memview.view.buf * * for dim in range(memview.view.ndim): # <<<<<<<<<<<<<< * dst.shape[dim] = shape[dim] * dst.strides[dim] = strides[dim] */ __pyx_t_2 = __pyx_v_memview->view.ndim; __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_dim = __pyx_t_4; /* "View.MemoryView":1075 * * for dim in range(memview.view.ndim): * dst.shape[dim] = shape[dim] # <<<<<<<<<<<<<< * dst.strides[dim] = strides[dim] * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1 */ (__pyx_v_dst->shape[__pyx_v_dim]) = (__pyx_v_shape[__pyx_v_dim]); /* "View.MemoryView":1076 * for dim in range(memview.view.ndim): * dst.shape[dim] = shape[dim] * dst.strides[dim] = strides[dim] # <<<<<<<<<<<<<< * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1 * */ (__pyx_v_dst->strides[__pyx_v_dim]) = (__pyx_v_strides[__pyx_v_dim]); /* "View.MemoryView":1077 * dst.shape[dim] = shape[dim] * dst.strides[dim] = strides[dim] * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1 # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_copy_object') */ if ((__pyx_v_suboffsets != 0)) { __pyx_t_5 = (__pyx_v_suboffsets[__pyx_v_dim]); } else { __pyx_t_5 = -1L; } (__pyx_v_dst->suboffsets[__pyx_v_dim]) = __pyx_t_5; } /* "View.MemoryView":1063 * * @cname('__pyx_memoryview_slice_copy') * cdef void slice_copy(memoryview memview, __Pyx_memviewslice *dst): # <<<<<<<<<<<<<< * cdef int dim * cdef (Py_ssize_t*) shape, strides, suboffsets */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "View.MemoryView":1080 * * @cname('__pyx_memoryview_copy_object') * cdef memoryview_copy(memoryview memview): # <<<<<<<<<<<<<< * "Create a new memoryview object" * cdef __Pyx_memviewslice memviewslice */ static PyObject *__pyx_memoryview_copy_object(struct __pyx_memoryview_obj *__pyx_v_memview) { __Pyx_memviewslice __pyx_v_memviewslice; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("memoryview_copy", 0); /* "View.MemoryView":1083 * "Create a new memoryview object" * cdef __Pyx_memviewslice memviewslice * slice_copy(memview, &memviewslice) # <<<<<<<<<<<<<< * return memoryview_copy_from_slice(memview, &memviewslice) * */ __pyx_memoryview_slice_copy(__pyx_v_memview, (&__pyx_v_memviewslice)); /* "View.MemoryView":1084 * cdef __Pyx_memviewslice memviewslice * slice_copy(memview, &memviewslice) * return memoryview_copy_from_slice(memview, &memviewslice) # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_copy_object_from_slice') */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_memoryview_copy_object_from_slice(__pyx_v_memview, (&__pyx_v_memviewslice)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "View.MemoryView":1080 * * @cname('__pyx_memoryview_copy_object') * cdef memoryview_copy(memoryview memview): # <<<<<<<<<<<<<< * "Create a new memoryview object" * cdef __Pyx_memviewslice memviewslice */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("View.MemoryView.memoryview_copy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":1087 * * @cname('__pyx_memoryview_copy_object_from_slice') * cdef memoryview_copy_from_slice(memoryview memview, __Pyx_memviewslice *memviewslice): # <<<<<<<<<<<<<< * """ * Create a new memoryview object from a given memoryview object and slice. */ static PyObject *__pyx_memoryview_copy_object_from_slice(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_memviewslice) { PyObject *(*__pyx_v_to_object_func)(char *); int (*__pyx_v_to_dtype_func)(char *, PyObject *); PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *(*__pyx_t_3)(char *); int (*__pyx_t_4)(char *, PyObject *); PyObject *__pyx_t_5 = NULL; __Pyx_RefNannySetupContext("memoryview_copy_from_slice", 0); /* "View.MemoryView":1094 * cdef int (*to_dtype_func)(char *, object) except 0 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * to_object_func = (<_memoryviewslice> memview).to_object_func * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func */ __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "View.MemoryView":1095 * * if isinstance(memview, _memoryviewslice): * to_object_func = (<_memoryviewslice> memview).to_object_func # <<<<<<<<<<<<<< * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func * else: */ __pyx_t_3 = ((struct __pyx_memoryviewslice_obj *)__pyx_v_memview)->to_object_func; __pyx_v_to_object_func = __pyx_t_3; /* "View.MemoryView":1096 * if isinstance(memview, _memoryviewslice): * to_object_func = (<_memoryviewslice> memview).to_object_func * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func # <<<<<<<<<<<<<< * else: * to_object_func = NULL */ __pyx_t_4 = ((struct __pyx_memoryviewslice_obj *)__pyx_v_memview)->to_dtype_func; __pyx_v_to_dtype_func = __pyx_t_4; /* "View.MemoryView":1094 * cdef int (*to_dtype_func)(char *, object) except 0 * * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< * to_object_func = (<_memoryviewslice> memview).to_object_func * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func */ goto __pyx_L3; } /* "View.MemoryView":1098 * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func * else: * to_object_func = NULL # <<<<<<<<<<<<<< * to_dtype_func = NULL * */ /*else*/ { __pyx_v_to_object_func = NULL; /* "View.MemoryView":1099 * else: * to_object_func = NULL * to_dtype_func = NULL # <<<<<<<<<<<<<< * * return memoryview_fromslice(memviewslice[0], memview.view.ndim, */ __pyx_v_to_dtype_func = NULL; } __pyx_L3:; /* "View.MemoryView":1101 * to_dtype_func = NULL * * return memoryview_fromslice(memviewslice[0], memview.view.ndim, # <<<<<<<<<<<<<< * to_object_func, to_dtype_func, * memview.dtype_is_object) */ __Pyx_XDECREF(__pyx_r); /* "View.MemoryView":1103 * return memoryview_fromslice(memviewslice[0], memview.view.ndim, * to_object_func, to_dtype_func, * memview.dtype_is_object) # <<<<<<<<<<<<<< * * */ __pyx_t_5 = __pyx_memoryview_fromslice((__pyx_v_memviewslice[0]), __pyx_v_memview->view.ndim, __pyx_v_to_object_func, __pyx_v_to_dtype_func, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0; /* "View.MemoryView":1087 * * @cname('__pyx_memoryview_copy_object_from_slice') * cdef memoryview_copy_from_slice(memoryview memview, __Pyx_memviewslice *memviewslice): # <<<<<<<<<<<<<< * """ * Create a new memoryview object from a given memoryview object and slice. */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.memoryview_copy_from_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "View.MemoryView":1109 * * * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: # <<<<<<<<<<<<<< * if arg < 0: * return -arg */ static Py_ssize_t abs_py_ssize_t(Py_ssize_t __pyx_v_arg) { Py_ssize_t __pyx_r; int __pyx_t_1; /* "View.MemoryView":1110 * * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: * if arg < 0: # <<<<<<<<<<<<<< * return -arg * else: */ __pyx_t_1 = ((__pyx_v_arg < 0) != 0); if (__pyx_t_1) { /* "View.MemoryView":1111 * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: * if arg < 0: * return -arg # <<<<<<<<<<<<<< * else: * return arg */ __pyx_r = (-__pyx_v_arg); goto __pyx_L0; /* "View.MemoryView":1110 * * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: * if arg < 0: # <<<<<<<<<<<<<< * return -arg * else: */ } /* "View.MemoryView":1113 * return -arg * else: * return arg # <<<<<<<<<<<<<< * * @cname('__pyx_get_best_slice_order') */ /*else*/ { __pyx_r = __pyx_v_arg; goto __pyx_L0; } /* "View.MemoryView":1109 * * * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: # <<<<<<<<<<<<<< * if arg < 0: * return -arg */ /* function exit code */ __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1116 * * @cname('__pyx_get_best_slice_order') * cdef char get_best_order(__Pyx_memviewslice *mslice, int ndim) nogil: # <<<<<<<<<<<<<< * """ * Figure out the best memory access order for a given slice. */ static char __pyx_get_best_slice_order(__Pyx_memviewslice *__pyx_v_mslice, int __pyx_v_ndim) { int __pyx_v_i; Py_ssize_t __pyx_v_c_stride; Py_ssize_t __pyx_v_f_stride; char __pyx_r; int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; /* "View.MemoryView":1121 * """ * cdef int i * cdef Py_ssize_t c_stride = 0 # <<<<<<<<<<<<<< * cdef Py_ssize_t f_stride = 0 * */ __pyx_v_c_stride = 0; /* "View.MemoryView":1122 * cdef int i * cdef Py_ssize_t c_stride = 0 * cdef Py_ssize_t f_stride = 0 # <<<<<<<<<<<<<< * * for i in range(ndim - 1, -1, -1): */ __pyx_v_f_stride = 0; /* "View.MemoryView":1124 * cdef Py_ssize_t f_stride = 0 * * for i in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<< * if mslice.shape[i] > 1: * c_stride = mslice.strides[i] */ for (__pyx_t_1 = (__pyx_v_ndim - 1); __pyx_t_1 > -1; __pyx_t_1-=1) { __pyx_v_i = __pyx_t_1; /* "View.MemoryView":1125 * * for i in range(ndim - 1, -1, -1): * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< * c_stride = mslice.strides[i] * break */ __pyx_t_2 = (((__pyx_v_mslice->shape[__pyx_v_i]) > 1) != 0); if (__pyx_t_2) { /* "View.MemoryView":1126 * for i in range(ndim - 1, -1, -1): * if mslice.shape[i] > 1: * c_stride = mslice.strides[i] # <<<<<<<<<<<<<< * break * */ __pyx_v_c_stride = (__pyx_v_mslice->strides[__pyx_v_i]); /* "View.MemoryView":1127 * if mslice.shape[i] > 1: * c_stride = mslice.strides[i] * break # <<<<<<<<<<<<<< * * for i in range(ndim): */ goto __pyx_L4_break; /* "View.MemoryView":1125 * * for i in range(ndim - 1, -1, -1): * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< * c_stride = mslice.strides[i] * break */ } } __pyx_L4_break:; /* "View.MemoryView":1129 * break * * for i in range(ndim): # <<<<<<<<<<<<<< * if mslice.shape[i] > 1: * f_stride = mslice.strides[i] */ __pyx_t_1 = __pyx_v_ndim; __pyx_t_3 = __pyx_t_1; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_i = __pyx_t_4; /* "View.MemoryView":1130 * * for i in range(ndim): * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< * f_stride = mslice.strides[i] * break */ __pyx_t_2 = (((__pyx_v_mslice->shape[__pyx_v_i]) > 1) != 0); if (__pyx_t_2) { /* "View.MemoryView":1131 * for i in range(ndim): * if mslice.shape[i] > 1: * f_stride = mslice.strides[i] # <<<<<<<<<<<<<< * break * */ __pyx_v_f_stride = (__pyx_v_mslice->strides[__pyx_v_i]); /* "View.MemoryView":1132 * if mslice.shape[i] > 1: * f_stride = mslice.strides[i] * break # <<<<<<<<<<<<<< * * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): */ goto __pyx_L7_break; /* "View.MemoryView":1130 * * for i in range(ndim): * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< * f_stride = mslice.strides[i] * break */ } } __pyx_L7_break:; /* "View.MemoryView":1134 * break * * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): # <<<<<<<<<<<<<< * return 'C' * else: */ __pyx_t_2 = ((abs_py_ssize_t(__pyx_v_c_stride) <= abs_py_ssize_t(__pyx_v_f_stride)) != 0); if (__pyx_t_2) { /* "View.MemoryView":1135 * * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): * return 'C' # <<<<<<<<<<<<<< * else: * return 'F' */ __pyx_r = 'C'; goto __pyx_L0; /* "View.MemoryView":1134 * break * * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): # <<<<<<<<<<<<<< * return 'C' * else: */ } /* "View.MemoryView":1137 * return 'C' * else: * return 'F' # <<<<<<<<<<<<<< * * @cython.cdivision(True) */ /*else*/ { __pyx_r = 'F'; goto __pyx_L0; } /* "View.MemoryView":1116 * * @cname('__pyx_get_best_slice_order') * cdef char get_best_order(__Pyx_memviewslice *mslice, int ndim) nogil: # <<<<<<<<<<<<<< * """ * Figure out the best memory access order for a given slice. */ /* function exit code */ __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1140 * * @cython.cdivision(True) * cdef void _copy_strided_to_strided(char *src_data, Py_ssize_t *src_strides, # <<<<<<<<<<<<<< * char *dst_data, Py_ssize_t *dst_strides, * Py_ssize_t *src_shape, Py_ssize_t *dst_shape, */ static void _copy_strided_to_strided(char *__pyx_v_src_data, Py_ssize_t *__pyx_v_src_strides, char *__pyx_v_dst_data, Py_ssize_t *__pyx_v_dst_strides, Py_ssize_t *__pyx_v_src_shape, Py_ssize_t *__pyx_v_dst_shape, int __pyx_v_ndim, size_t __pyx_v_itemsize) { CYTHON_UNUSED Py_ssize_t __pyx_v_i; CYTHON_UNUSED Py_ssize_t __pyx_v_src_extent; Py_ssize_t __pyx_v_dst_extent; Py_ssize_t __pyx_v_src_stride; Py_ssize_t __pyx_v_dst_stride; int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; Py_ssize_t __pyx_t_4; Py_ssize_t __pyx_t_5; Py_ssize_t __pyx_t_6; /* "View.MemoryView":1147 * * cdef Py_ssize_t i * cdef Py_ssize_t src_extent = src_shape[0] # <<<<<<<<<<<<<< * cdef Py_ssize_t dst_extent = dst_shape[0] * cdef Py_ssize_t src_stride = src_strides[0] */ __pyx_v_src_extent = (__pyx_v_src_shape[0]); /* "View.MemoryView":1148 * cdef Py_ssize_t i * cdef Py_ssize_t src_extent = src_shape[0] * cdef Py_ssize_t dst_extent = dst_shape[0] # <<<<<<<<<<<<<< * cdef Py_ssize_t src_stride = src_strides[0] * cdef Py_ssize_t dst_stride = dst_strides[0] */ __pyx_v_dst_extent = (__pyx_v_dst_shape[0]); /* "View.MemoryView":1149 * cdef Py_ssize_t src_extent = src_shape[0] * cdef Py_ssize_t dst_extent = dst_shape[0] * cdef Py_ssize_t src_stride = src_strides[0] # <<<<<<<<<<<<<< * cdef Py_ssize_t dst_stride = dst_strides[0] * */ __pyx_v_src_stride = (__pyx_v_src_strides[0]); /* "View.MemoryView":1150 * cdef Py_ssize_t dst_extent = dst_shape[0] * cdef Py_ssize_t src_stride = src_strides[0] * cdef Py_ssize_t dst_stride = dst_strides[0] # <<<<<<<<<<<<<< * * if ndim == 1: */ __pyx_v_dst_stride = (__pyx_v_dst_strides[0]); /* "View.MemoryView":1152 * cdef Py_ssize_t dst_stride = dst_strides[0] * * if ndim == 1: # <<<<<<<<<<<<<< * if (src_stride > 0 and dst_stride > 0 and * src_stride == itemsize == dst_stride): */ __pyx_t_1 = ((__pyx_v_ndim == 1) != 0); if (__pyx_t_1) { /* "View.MemoryView":1153 * * if ndim == 1: * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<< * src_stride == itemsize == dst_stride): * memcpy(dst_data, src_data, itemsize * dst_extent) */ __pyx_t_2 = ((__pyx_v_src_stride > 0) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L5_bool_binop_done; } __pyx_t_2 = ((__pyx_v_dst_stride > 0) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L5_bool_binop_done; } /* "View.MemoryView":1154 * if ndim == 1: * if (src_stride > 0 and dst_stride > 0 and * src_stride == itemsize == dst_stride): # <<<<<<<<<<<<<< * memcpy(dst_data, src_data, itemsize * dst_extent) * else: */ __pyx_t_2 = (((size_t)__pyx_v_src_stride) == __pyx_v_itemsize); if (__pyx_t_2) { __pyx_t_2 = (__pyx_v_itemsize == ((size_t)__pyx_v_dst_stride)); } __pyx_t_3 = (__pyx_t_2 != 0); __pyx_t_1 = __pyx_t_3; __pyx_L5_bool_binop_done:; /* "View.MemoryView":1153 * * if ndim == 1: * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<< * src_stride == itemsize == dst_stride): * memcpy(dst_data, src_data, itemsize * dst_extent) */ if (__pyx_t_1) { /* "View.MemoryView":1155 * if (src_stride > 0 and dst_stride > 0 and * src_stride == itemsize == dst_stride): * memcpy(dst_data, src_data, itemsize * dst_extent) # <<<<<<<<<<<<<< * else: * for i in range(dst_extent): */ (void)(memcpy(__pyx_v_dst_data, __pyx_v_src_data, (__pyx_v_itemsize * __pyx_v_dst_extent))); /* "View.MemoryView":1153 * * if ndim == 1: * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<< * src_stride == itemsize == dst_stride): * memcpy(dst_data, src_data, itemsize * dst_extent) */ goto __pyx_L4; } /* "View.MemoryView":1157 * memcpy(dst_data, src_data, itemsize * dst_extent) * else: * for i in range(dst_extent): # <<<<<<<<<<<<<< * memcpy(dst_data, src_data, itemsize) * src_data += src_stride */ /*else*/ { __pyx_t_4 = __pyx_v_dst_extent; __pyx_t_5 = __pyx_t_4; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6; /* "View.MemoryView":1158 * else: * for i in range(dst_extent): * memcpy(dst_data, src_data, itemsize) # <<<<<<<<<<<<<< * src_data += src_stride * dst_data += dst_stride */ (void)(memcpy(__pyx_v_dst_data, __pyx_v_src_data, __pyx_v_itemsize)); /* "View.MemoryView":1159 * for i in range(dst_extent): * memcpy(dst_data, src_data, itemsize) * src_data += src_stride # <<<<<<<<<<<<<< * dst_data += dst_stride * else: */ __pyx_v_src_data = (__pyx_v_src_data + __pyx_v_src_stride); /* "View.MemoryView":1160 * memcpy(dst_data, src_data, itemsize) * src_data += src_stride * dst_data += dst_stride # <<<<<<<<<<<<<< * else: * for i in range(dst_extent): */ __pyx_v_dst_data = (__pyx_v_dst_data + __pyx_v_dst_stride); } } __pyx_L4:; /* "View.MemoryView":1152 * cdef Py_ssize_t dst_stride = dst_strides[0] * * if ndim == 1: # <<<<<<<<<<<<<< * if (src_stride > 0 and dst_stride > 0 and * src_stride == itemsize == dst_stride): */ goto __pyx_L3; } /* "View.MemoryView":1162 * dst_data += dst_stride * else: * for i in range(dst_extent): # <<<<<<<<<<<<<< * _copy_strided_to_strided(src_data, src_strides + 1, * dst_data, dst_strides + 1, */ /*else*/ { __pyx_t_4 = __pyx_v_dst_extent; __pyx_t_5 = __pyx_t_4; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6; /* "View.MemoryView":1163 * else: * for i in range(dst_extent): * _copy_strided_to_strided(src_data, src_strides + 1, # <<<<<<<<<<<<<< * dst_data, dst_strides + 1, * src_shape + 1, dst_shape + 1, */ _copy_strided_to_strided(__pyx_v_src_data, (__pyx_v_src_strides + 1), __pyx_v_dst_data, (__pyx_v_dst_strides + 1), (__pyx_v_src_shape + 1), (__pyx_v_dst_shape + 1), (__pyx_v_ndim - 1), __pyx_v_itemsize); /* "View.MemoryView":1167 * src_shape + 1, dst_shape + 1, * ndim - 1, itemsize) * src_data += src_stride # <<<<<<<<<<<<<< * dst_data += dst_stride * */ __pyx_v_src_data = (__pyx_v_src_data + __pyx_v_src_stride); /* "View.MemoryView":1168 * ndim - 1, itemsize) * src_data += src_stride * dst_data += dst_stride # <<<<<<<<<<<<<< * * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, */ __pyx_v_dst_data = (__pyx_v_dst_data + __pyx_v_dst_stride); } } __pyx_L3:; /* "View.MemoryView":1140 * * @cython.cdivision(True) * cdef void _copy_strided_to_strided(char *src_data, Py_ssize_t *src_strides, # <<<<<<<<<<<<<< * char *dst_data, Py_ssize_t *dst_strides, * Py_ssize_t *src_shape, Py_ssize_t *dst_shape, */ /* function exit code */ } /* "View.MemoryView":1170 * dst_data += dst_stride * * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< * __Pyx_memviewslice *dst, * int ndim, size_t itemsize) nogil: */ static void copy_strided_to_strided(__Pyx_memviewslice *__pyx_v_src, __Pyx_memviewslice *__pyx_v_dst, int __pyx_v_ndim, size_t __pyx_v_itemsize) { /* "View.MemoryView":1173 * __Pyx_memviewslice *dst, * int ndim, size_t itemsize) nogil: * _copy_strided_to_strided(src.data, src.strides, dst.data, dst.strides, # <<<<<<<<<<<<<< * src.shape, dst.shape, ndim, itemsize) * */ _copy_strided_to_strided(__pyx_v_src->data, __pyx_v_src->strides, __pyx_v_dst->data, __pyx_v_dst->strides, __pyx_v_src->shape, __pyx_v_dst->shape, __pyx_v_ndim, __pyx_v_itemsize); /* "View.MemoryView":1170 * dst_data += dst_stride * * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< * __Pyx_memviewslice *dst, * int ndim, size_t itemsize) nogil: */ /* function exit code */ } /* "View.MemoryView":1177 * * @cname('__pyx_memoryview_slice_get_size') * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) nogil: # <<<<<<<<<<<<<< * "Return the size of the memory occupied by the slice in number of bytes" * cdef int i */ static Py_ssize_t __pyx_memoryview_slice_get_size(__Pyx_memviewslice *__pyx_v_src, int __pyx_v_ndim) { int __pyx_v_i; Py_ssize_t __pyx_v_size; Py_ssize_t __pyx_r; Py_ssize_t __pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; /* "View.MemoryView":1180 * "Return the size of the memory occupied by the slice in number of bytes" * cdef int i * cdef Py_ssize_t size = src.memview.view.itemsize # <<<<<<<<<<<<<< * * for i in range(ndim): */ __pyx_t_1 = __pyx_v_src->memview->view.itemsize; __pyx_v_size = __pyx_t_1; /* "View.MemoryView":1182 * cdef Py_ssize_t size = src.memview.view.itemsize * * for i in range(ndim): # <<<<<<<<<<<<<< * size *= src.shape[i] * */ __pyx_t_2 = __pyx_v_ndim; __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_i = __pyx_t_4; /* "View.MemoryView":1183 * * for i in range(ndim): * size *= src.shape[i] # <<<<<<<<<<<<<< * * return size */ __pyx_v_size = (__pyx_v_size * (__pyx_v_src->shape[__pyx_v_i])); } /* "View.MemoryView":1185 * size *= src.shape[i] * * return size # <<<<<<<<<<<<<< * * @cname('__pyx_fill_contig_strides_array') */ __pyx_r = __pyx_v_size; goto __pyx_L0; /* "View.MemoryView":1177 * * @cname('__pyx_memoryview_slice_get_size') * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) nogil: # <<<<<<<<<<<<<< * "Return the size of the memory occupied by the slice in number of bytes" * cdef int i */ /* function exit code */ __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1188 * * @cname('__pyx_fill_contig_strides_array') * cdef Py_ssize_t fill_contig_strides_array( # <<<<<<<<<<<<<< * Py_ssize_t *shape, Py_ssize_t *strides, Py_ssize_t stride, * int ndim, char order) nogil: */ static Py_ssize_t __pyx_fill_contig_strides_array(Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, Py_ssize_t __pyx_v_stride, int __pyx_v_ndim, char __pyx_v_order) { int __pyx_v_idx; Py_ssize_t __pyx_r; int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; /* "View.MemoryView":1197 * cdef int idx * * if order == 'F': # <<<<<<<<<<<<<< * for idx in range(ndim): * strides[idx] = stride */ __pyx_t_1 = ((__pyx_v_order == 'F') != 0); if (__pyx_t_1) { /* "View.MemoryView":1198 * * if order == 'F': * for idx in range(ndim): # <<<<<<<<<<<<<< * strides[idx] = stride * stride = stride * shape[idx] */ __pyx_t_2 = __pyx_v_ndim; __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_idx = __pyx_t_4; /* "View.MemoryView":1199 * if order == 'F': * for idx in range(ndim): * strides[idx] = stride # <<<<<<<<<<<<<< * stride = stride * shape[idx] * else: */ (__pyx_v_strides[__pyx_v_idx]) = __pyx_v_stride; /* "View.MemoryView":1200 * for idx in range(ndim): * strides[idx] = stride * stride = stride * shape[idx] # <<<<<<<<<<<<<< * else: * for idx in range(ndim - 1, -1, -1): */ __pyx_v_stride = (__pyx_v_stride * (__pyx_v_shape[__pyx_v_idx])); } /* "View.MemoryView":1197 * cdef int idx * * if order == 'F': # <<<<<<<<<<<<<< * for idx in range(ndim): * strides[idx] = stride */ goto __pyx_L3; } /* "View.MemoryView":1202 * stride = stride * shape[idx] * else: * for idx in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<< * strides[idx] = stride * stride = stride * shape[idx] */ /*else*/ { for (__pyx_t_2 = (__pyx_v_ndim - 1); __pyx_t_2 > -1; __pyx_t_2-=1) { __pyx_v_idx = __pyx_t_2; /* "View.MemoryView":1203 * else: * for idx in range(ndim - 1, -1, -1): * strides[idx] = stride # <<<<<<<<<<<<<< * stride = stride * shape[idx] * */ (__pyx_v_strides[__pyx_v_idx]) = __pyx_v_stride; /* "View.MemoryView":1204 * for idx in range(ndim - 1, -1, -1): * strides[idx] = stride * stride = stride * shape[idx] # <<<<<<<<<<<<<< * * return stride */ __pyx_v_stride = (__pyx_v_stride * (__pyx_v_shape[__pyx_v_idx])); } } __pyx_L3:; /* "View.MemoryView":1206 * stride = stride * shape[idx] * * return stride # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_copy_data_to_temp') */ __pyx_r = __pyx_v_stride; goto __pyx_L0; /* "View.MemoryView":1188 * * @cname('__pyx_fill_contig_strides_array') * cdef Py_ssize_t fill_contig_strides_array( # <<<<<<<<<<<<<< * Py_ssize_t *shape, Py_ssize_t *strides, Py_ssize_t stride, * int ndim, char order) nogil: */ /* function exit code */ __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1209 * * @cname('__pyx_memoryview_copy_data_to_temp') * cdef void *copy_data_to_temp(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< * __Pyx_memviewslice *tmpslice, * char order, */ static void *__pyx_memoryview_copy_data_to_temp(__Pyx_memviewslice *__pyx_v_src, __Pyx_memviewslice *__pyx_v_tmpslice, char __pyx_v_order, int __pyx_v_ndim) { int __pyx_v_i; void *__pyx_v_result; size_t __pyx_v_itemsize; size_t __pyx_v_size; void *__pyx_r; Py_ssize_t __pyx_t_1; int __pyx_t_2; int __pyx_t_3; struct __pyx_memoryview_obj *__pyx_t_4; int __pyx_t_5; int __pyx_t_6; /* "View.MemoryView":1220 * cdef void *result * * cdef size_t itemsize = src.memview.view.itemsize # <<<<<<<<<<<<<< * cdef size_t size = slice_get_size(src, ndim) * */ __pyx_t_1 = __pyx_v_src->memview->view.itemsize; __pyx_v_itemsize = __pyx_t_1; /* "View.MemoryView":1221 * * cdef size_t itemsize = src.memview.view.itemsize * cdef size_t size = slice_get_size(src, ndim) # <<<<<<<<<<<<<< * * result = malloc(size) */ __pyx_v_size = __pyx_memoryview_slice_get_size(__pyx_v_src, __pyx_v_ndim); /* "View.MemoryView":1223 * cdef size_t size = slice_get_size(src, ndim) * * result = malloc(size) # <<<<<<<<<<<<<< * if not result: * _err(MemoryError, NULL) */ __pyx_v_result = malloc(__pyx_v_size); /* "View.MemoryView":1224 * * result = malloc(size) * if not result: # <<<<<<<<<<<<<< * _err(MemoryError, NULL) * */ __pyx_t_2 = ((!(__pyx_v_result != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":1225 * result = malloc(size) * if not result: * _err(MemoryError, NULL) # <<<<<<<<<<<<<< * * */ __pyx_t_3 = __pyx_memoryview_err(__pyx_builtin_MemoryError, NULL); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 1225, __pyx_L1_error) /* "View.MemoryView":1224 * * result = malloc(size) * if not result: # <<<<<<<<<<<<<< * _err(MemoryError, NULL) * */ } /* "View.MemoryView":1228 * * * tmpslice.data = result # <<<<<<<<<<<<<< * tmpslice.memview = src.memview * for i in range(ndim): */ __pyx_v_tmpslice->data = ((char *)__pyx_v_result); /* "View.MemoryView":1229 * * tmpslice.data = result * tmpslice.memview = src.memview # <<<<<<<<<<<<<< * for i in range(ndim): * tmpslice.shape[i] = src.shape[i] */ __pyx_t_4 = __pyx_v_src->memview; __pyx_v_tmpslice->memview = __pyx_t_4; /* "View.MemoryView":1230 * tmpslice.data = result * tmpslice.memview = src.memview * for i in range(ndim): # <<<<<<<<<<<<<< * tmpslice.shape[i] = src.shape[i] * tmpslice.suboffsets[i] = -1 */ __pyx_t_3 = __pyx_v_ndim; __pyx_t_5 = __pyx_t_3; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6; /* "View.MemoryView":1231 * tmpslice.memview = src.memview * for i in range(ndim): * tmpslice.shape[i] = src.shape[i] # <<<<<<<<<<<<<< * tmpslice.suboffsets[i] = -1 * */ (__pyx_v_tmpslice->shape[__pyx_v_i]) = (__pyx_v_src->shape[__pyx_v_i]); /* "View.MemoryView":1232 * for i in range(ndim): * tmpslice.shape[i] = src.shape[i] * tmpslice.suboffsets[i] = -1 # <<<<<<<<<<<<<< * * fill_contig_strides_array(&tmpslice.shape[0], &tmpslice.strides[0], itemsize, */ (__pyx_v_tmpslice->suboffsets[__pyx_v_i]) = -1L; } /* "View.MemoryView":1234 * tmpslice.suboffsets[i] = -1 * * fill_contig_strides_array(&tmpslice.shape[0], &tmpslice.strides[0], itemsize, # <<<<<<<<<<<<<< * ndim, order) * */ (void)(__pyx_fill_contig_strides_array((&(__pyx_v_tmpslice->shape[0])), (&(__pyx_v_tmpslice->strides[0])), __pyx_v_itemsize, __pyx_v_ndim, __pyx_v_order)); /* "View.MemoryView":1238 * * * for i in range(ndim): # <<<<<<<<<<<<<< * if tmpslice.shape[i] == 1: * tmpslice.strides[i] = 0 */ __pyx_t_3 = __pyx_v_ndim; __pyx_t_5 = __pyx_t_3; for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { __pyx_v_i = __pyx_t_6; /* "View.MemoryView":1239 * * for i in range(ndim): * if tmpslice.shape[i] == 1: # <<<<<<<<<<<<<< * tmpslice.strides[i] = 0 * */ __pyx_t_2 = (((__pyx_v_tmpslice->shape[__pyx_v_i]) == 1) != 0); if (__pyx_t_2) { /* "View.MemoryView":1240 * for i in range(ndim): * if tmpslice.shape[i] == 1: * tmpslice.strides[i] = 0 # <<<<<<<<<<<<<< * * if slice_is_contig(src[0], order, ndim): */ (__pyx_v_tmpslice->strides[__pyx_v_i]) = 0; /* "View.MemoryView":1239 * * for i in range(ndim): * if tmpslice.shape[i] == 1: # <<<<<<<<<<<<<< * tmpslice.strides[i] = 0 * */ } } /* "View.MemoryView":1242 * tmpslice.strides[i] = 0 * * if slice_is_contig(src[0], order, ndim): # <<<<<<<<<<<<<< * memcpy(result, src.data, size) * else: */ __pyx_t_2 = (__pyx_memviewslice_is_contig((__pyx_v_src[0]), __pyx_v_order, __pyx_v_ndim) != 0); if (__pyx_t_2) { /* "View.MemoryView":1243 * * if slice_is_contig(src[0], order, ndim): * memcpy(result, src.data, size) # <<<<<<<<<<<<<< * else: * copy_strided_to_strided(src, tmpslice, ndim, itemsize) */ (void)(memcpy(__pyx_v_result, __pyx_v_src->data, __pyx_v_size)); /* "View.MemoryView":1242 * tmpslice.strides[i] = 0 * * if slice_is_contig(src[0], order, ndim): # <<<<<<<<<<<<<< * memcpy(result, src.data, size) * else: */ goto __pyx_L9; } /* "View.MemoryView":1245 * memcpy(result, src.data, size) * else: * copy_strided_to_strided(src, tmpslice, ndim, itemsize) # <<<<<<<<<<<<<< * * return result */ /*else*/ { copy_strided_to_strided(__pyx_v_src, __pyx_v_tmpslice, __pyx_v_ndim, __pyx_v_itemsize); } __pyx_L9:; /* "View.MemoryView":1247 * copy_strided_to_strided(src, tmpslice, ndim, itemsize) * * return result # <<<<<<<<<<<<<< * * */ __pyx_r = __pyx_v_result; goto __pyx_L0; /* "View.MemoryView":1209 * * @cname('__pyx_memoryview_copy_data_to_temp') * cdef void *copy_data_to_temp(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< * __Pyx_memviewslice *tmpslice, * char order, */ /* function exit code */ __pyx_L1_error:; { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_AddTraceback("View.MemoryView.copy_data_to_temp", __pyx_clineno, __pyx_lineno, __pyx_filename); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif } __pyx_r = NULL; __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1252 * * @cname('__pyx_memoryview_err_extents') * cdef int _err_extents(int i, Py_ssize_t extent1, # <<<<<<<<<<<<<< * Py_ssize_t extent2) except -1 with gil: * raise ValueError("got differing extents in dimension %d (got %d and %d)" % */ static int __pyx_memoryview_err_extents(int __pyx_v_i, Py_ssize_t __pyx_v_extent1, Py_ssize_t __pyx_v_extent2) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_RefNannySetupContext("_err_extents", 0); /* "View.MemoryView":1255 * Py_ssize_t extent2) except -1 with gil: * raise ValueError("got differing extents in dimension %d (got %d and %d)" % * (i, extent1, extent2)) # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_err_dim') */ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_extent1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_extent2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 1255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; /* "View.MemoryView":1254 * cdef int _err_extents(int i, Py_ssize_t extent1, * Py_ssize_t extent2) except -1 with gil: * raise ValueError("got differing extents in dimension %d (got %d and %d)" % # <<<<<<<<<<<<<< * (i, extent1, extent2)) * */ __pyx_t_3 = __Pyx_PyString_Format(__pyx_kp_s_got_differing_extents_in_dimensi, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 1254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(2, 1254, __pyx_L1_error) /* "View.MemoryView":1252 * * @cname('__pyx_memoryview_err_extents') * cdef int _err_extents(int i, Py_ssize_t extent1, # <<<<<<<<<<<<<< * Py_ssize_t extent2) except -1 with gil: * raise ValueError("got differing extents in dimension %d (got %d and %d)" % */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("View.MemoryView._err_extents", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __Pyx_RefNannyFinishContext(); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif return __pyx_r; } /* "View.MemoryView":1258 * * @cname('__pyx_memoryview_err_dim') * cdef int _err_dim(object error, char *msg, int dim) except -1 with gil: # <<<<<<<<<<<<<< * raise error(msg.decode('ascii') % dim) * */ static int __pyx_memoryview_err_dim(PyObject *__pyx_v_error, char *__pyx_v_msg, int __pyx_v_dim) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_RefNannySetupContext("_err_dim", 0); __Pyx_INCREF(__pyx_v_error); /* "View.MemoryView":1259 * @cname('__pyx_memoryview_err_dim') * cdef int _err_dim(object error, char *msg, int dim) except -1 with gil: * raise error(msg.decode('ascii') % dim) # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_err') */ __pyx_t_2 = __Pyx_decode_c_string(__pyx_v_msg, 0, strlen(__pyx_v_msg), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_dim); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyUnicode_Format(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 1259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_INCREF(__pyx_v_error); __pyx_t_3 = __pyx_v_error; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 1259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(2, 1259, __pyx_L1_error) /* "View.MemoryView":1258 * * @cname('__pyx_memoryview_err_dim') * cdef int _err_dim(object error, char *msg, int dim) except -1 with gil: # <<<<<<<<<<<<<< * raise error(msg.decode('ascii') % dim) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("View.MemoryView._err_dim", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __Pyx_XDECREF(__pyx_v_error); __Pyx_RefNannyFinishContext(); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif return __pyx_r; } /* "View.MemoryView":1262 * * @cname('__pyx_memoryview_err') * cdef int _err(object error, char *msg) except -1 with gil: # <<<<<<<<<<<<<< * if msg != NULL: * raise error(msg.decode('ascii')) */ static int __pyx_memoryview_err(PyObject *__pyx_v_error, char *__pyx_v_msg) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_RefNannySetupContext("_err", 0); __Pyx_INCREF(__pyx_v_error); /* "View.MemoryView":1263 * @cname('__pyx_memoryview_err') * cdef int _err(object error, char *msg) except -1 with gil: * if msg != NULL: # <<<<<<<<<<<<<< * raise error(msg.decode('ascii')) * else: */ __pyx_t_1 = ((__pyx_v_msg != NULL) != 0); if (unlikely(__pyx_t_1)) { /* "View.MemoryView":1264 * cdef int _err(object error, char *msg) except -1 with gil: * if msg != NULL: * raise error(msg.decode('ascii')) # <<<<<<<<<<<<<< * else: * raise error */ __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_msg, 0, strlen(__pyx_v_msg), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_error); __pyx_t_4 = __pyx_v_error; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 1264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_2, 0, 0, 0); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(2, 1264, __pyx_L1_error) /* "View.MemoryView":1263 * @cname('__pyx_memoryview_err') * cdef int _err(object error, char *msg) except -1 with gil: * if msg != NULL: # <<<<<<<<<<<<<< * raise error(msg.decode('ascii')) * else: */ } /* "View.MemoryView":1266 * raise error(msg.decode('ascii')) * else: * raise error # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_copy_contents') */ /*else*/ { __Pyx_Raise(__pyx_v_error, 0, 0, 0); __PYX_ERR(2, 1266, __pyx_L1_error) } /* "View.MemoryView":1262 * * @cname('__pyx_memoryview_err') * cdef int _err(object error, char *msg) except -1 with gil: # <<<<<<<<<<<<<< * if msg != NULL: * raise error(msg.decode('ascii')) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView._err", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __Pyx_XDECREF(__pyx_v_error); __Pyx_RefNannyFinishContext(); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif return __pyx_r; } /* "View.MemoryView":1269 * * @cname('__pyx_memoryview_copy_contents') * cdef int memoryview_copy_contents(__Pyx_memviewslice src, # <<<<<<<<<<<<<< * __Pyx_memviewslice dst, * int src_ndim, int dst_ndim, */ static int __pyx_memoryview_copy_contents(__Pyx_memviewslice __pyx_v_src, __Pyx_memviewslice __pyx_v_dst, int __pyx_v_src_ndim, int __pyx_v_dst_ndim, int __pyx_v_dtype_is_object) { void *__pyx_v_tmpdata; size_t __pyx_v_itemsize; int __pyx_v_i; char __pyx_v_order; int __pyx_v_broadcasting; int __pyx_v_direct_copy; __Pyx_memviewslice __pyx_v_tmp; int __pyx_v_ndim; int __pyx_r; Py_ssize_t __pyx_t_1; int __pyx_t_2; int __pyx_t_3; int __pyx_t_4; int __pyx_t_5; int __pyx_t_6; void *__pyx_t_7; int __pyx_t_8; /* "View.MemoryView":1277 * Check for overlapping memory and verify the shapes. * """ * cdef void *tmpdata = NULL # <<<<<<<<<<<<<< * cdef size_t itemsize = src.memview.view.itemsize * cdef int i */ __pyx_v_tmpdata = NULL; /* "View.MemoryView":1278 * """ * cdef void *tmpdata = NULL * cdef size_t itemsize = src.memview.view.itemsize # <<<<<<<<<<<<<< * cdef int i * cdef char order = get_best_order(&src, src_ndim) */ __pyx_t_1 = __pyx_v_src.memview->view.itemsize; __pyx_v_itemsize = __pyx_t_1; /* "View.MemoryView":1280 * cdef size_t itemsize = src.memview.view.itemsize * cdef int i * cdef char order = get_best_order(&src, src_ndim) # <<<<<<<<<<<<<< * cdef bint broadcasting = False * cdef bint direct_copy = False */ __pyx_v_order = __pyx_get_best_slice_order((&__pyx_v_src), __pyx_v_src_ndim); /* "View.MemoryView":1281 * cdef int i * cdef char order = get_best_order(&src, src_ndim) * cdef bint broadcasting = False # <<<<<<<<<<<<<< * cdef bint direct_copy = False * cdef __Pyx_memviewslice tmp */ __pyx_v_broadcasting = 0; /* "View.MemoryView":1282 * cdef char order = get_best_order(&src, src_ndim) * cdef bint broadcasting = False * cdef bint direct_copy = False # <<<<<<<<<<<<<< * cdef __Pyx_memviewslice tmp * */ __pyx_v_direct_copy = 0; /* "View.MemoryView":1285 * cdef __Pyx_memviewslice tmp * * if src_ndim < dst_ndim: # <<<<<<<<<<<<<< * broadcast_leading(&src, src_ndim, dst_ndim) * elif dst_ndim < src_ndim: */ __pyx_t_2 = ((__pyx_v_src_ndim < __pyx_v_dst_ndim) != 0); if (__pyx_t_2) { /* "View.MemoryView":1286 * * if src_ndim < dst_ndim: * broadcast_leading(&src, src_ndim, dst_ndim) # <<<<<<<<<<<<<< * elif dst_ndim < src_ndim: * broadcast_leading(&dst, dst_ndim, src_ndim) */ __pyx_memoryview_broadcast_leading((&__pyx_v_src), __pyx_v_src_ndim, __pyx_v_dst_ndim); /* "View.MemoryView":1285 * cdef __Pyx_memviewslice tmp * * if src_ndim < dst_ndim: # <<<<<<<<<<<<<< * broadcast_leading(&src, src_ndim, dst_ndim) * elif dst_ndim < src_ndim: */ goto __pyx_L3; } /* "View.MemoryView":1287 * if src_ndim < dst_ndim: * broadcast_leading(&src, src_ndim, dst_ndim) * elif dst_ndim < src_ndim: # <<<<<<<<<<<<<< * broadcast_leading(&dst, dst_ndim, src_ndim) * */ __pyx_t_2 = ((__pyx_v_dst_ndim < __pyx_v_src_ndim) != 0); if (__pyx_t_2) { /* "View.MemoryView":1288 * broadcast_leading(&src, src_ndim, dst_ndim) * elif dst_ndim < src_ndim: * broadcast_leading(&dst, dst_ndim, src_ndim) # <<<<<<<<<<<<<< * * cdef int ndim = max(src_ndim, dst_ndim) */ __pyx_memoryview_broadcast_leading((&__pyx_v_dst), __pyx_v_dst_ndim, __pyx_v_src_ndim); /* "View.MemoryView":1287 * if src_ndim < dst_ndim: * broadcast_leading(&src, src_ndim, dst_ndim) * elif dst_ndim < src_ndim: # <<<<<<<<<<<<<< * broadcast_leading(&dst, dst_ndim, src_ndim) * */ } __pyx_L3:; /* "View.MemoryView":1290 * broadcast_leading(&dst, dst_ndim, src_ndim) * * cdef int ndim = max(src_ndim, dst_ndim) # <<<<<<<<<<<<<< * * for i in range(ndim): */ __pyx_t_3 = __pyx_v_dst_ndim; __pyx_t_4 = __pyx_v_src_ndim; if (((__pyx_t_3 > __pyx_t_4) != 0)) { __pyx_t_5 = __pyx_t_3; } else { __pyx_t_5 = __pyx_t_4; } __pyx_v_ndim = __pyx_t_5; /* "View.MemoryView":1292 * cdef int ndim = max(src_ndim, dst_ndim) * * for i in range(ndim): # <<<<<<<<<<<<<< * if src.shape[i] != dst.shape[i]: * if src.shape[i] == 1: */ __pyx_t_5 = __pyx_v_ndim; __pyx_t_3 = __pyx_t_5; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_i = __pyx_t_4; /* "View.MemoryView":1293 * * for i in range(ndim): * if src.shape[i] != dst.shape[i]: # <<<<<<<<<<<<<< * if src.shape[i] == 1: * broadcasting = True */ __pyx_t_2 = (((__pyx_v_src.shape[__pyx_v_i]) != (__pyx_v_dst.shape[__pyx_v_i])) != 0); if (__pyx_t_2) { /* "View.MemoryView":1294 * for i in range(ndim): * if src.shape[i] != dst.shape[i]: * if src.shape[i] == 1: # <<<<<<<<<<<<<< * broadcasting = True * src.strides[i] = 0 */ __pyx_t_2 = (((__pyx_v_src.shape[__pyx_v_i]) == 1) != 0); if (__pyx_t_2) { /* "View.MemoryView":1295 * if src.shape[i] != dst.shape[i]: * if src.shape[i] == 1: * broadcasting = True # <<<<<<<<<<<<<< * src.strides[i] = 0 * else: */ __pyx_v_broadcasting = 1; /* "View.MemoryView":1296 * if src.shape[i] == 1: * broadcasting = True * src.strides[i] = 0 # <<<<<<<<<<<<<< * else: * _err_extents(i, dst.shape[i], src.shape[i]) */ (__pyx_v_src.strides[__pyx_v_i]) = 0; /* "View.MemoryView":1294 * for i in range(ndim): * if src.shape[i] != dst.shape[i]: * if src.shape[i] == 1: # <<<<<<<<<<<<<< * broadcasting = True * src.strides[i] = 0 */ goto __pyx_L7; } /* "View.MemoryView":1298 * src.strides[i] = 0 * else: * _err_extents(i, dst.shape[i], src.shape[i]) # <<<<<<<<<<<<<< * * if src.suboffsets[i] >= 0: */ /*else*/ { __pyx_t_6 = __pyx_memoryview_err_extents(__pyx_v_i, (__pyx_v_dst.shape[__pyx_v_i]), (__pyx_v_src.shape[__pyx_v_i])); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(2, 1298, __pyx_L1_error) } __pyx_L7:; /* "View.MemoryView":1293 * * for i in range(ndim): * if src.shape[i] != dst.shape[i]: # <<<<<<<<<<<<<< * if src.shape[i] == 1: * broadcasting = True */ } /* "View.MemoryView":1300 * _err_extents(i, dst.shape[i], src.shape[i]) * * if src.suboffsets[i] >= 0: # <<<<<<<<<<<<<< * _err_dim(ValueError, "Dimension %d is not direct", i) * */ __pyx_t_2 = (((__pyx_v_src.suboffsets[__pyx_v_i]) >= 0) != 0); if (__pyx_t_2) { /* "View.MemoryView":1301 * * if src.suboffsets[i] >= 0: * _err_dim(ValueError, "Dimension %d is not direct", i) # <<<<<<<<<<<<<< * * if slices_overlap(&src, &dst, ndim, itemsize): */ __pyx_t_6 = __pyx_memoryview_err_dim(__pyx_builtin_ValueError, ((char *)"Dimension %d is not direct"), __pyx_v_i); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(2, 1301, __pyx_L1_error) /* "View.MemoryView":1300 * _err_extents(i, dst.shape[i], src.shape[i]) * * if src.suboffsets[i] >= 0: # <<<<<<<<<<<<<< * _err_dim(ValueError, "Dimension %d is not direct", i) * */ } } /* "View.MemoryView":1303 * _err_dim(ValueError, "Dimension %d is not direct", i) * * if slices_overlap(&src, &dst, ndim, itemsize): # <<<<<<<<<<<<<< * * if not slice_is_contig(src, order, ndim): */ __pyx_t_2 = (__pyx_slices_overlap((&__pyx_v_src), (&__pyx_v_dst), __pyx_v_ndim, __pyx_v_itemsize) != 0); if (__pyx_t_2) { /* "View.MemoryView":1305 * if slices_overlap(&src, &dst, ndim, itemsize): * * if not slice_is_contig(src, order, ndim): # <<<<<<<<<<<<<< * order = get_best_order(&dst, ndim) * */ __pyx_t_2 = ((!(__pyx_memviewslice_is_contig(__pyx_v_src, __pyx_v_order, __pyx_v_ndim) != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":1306 * * if not slice_is_contig(src, order, ndim): * order = get_best_order(&dst, ndim) # <<<<<<<<<<<<<< * * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim) */ __pyx_v_order = __pyx_get_best_slice_order((&__pyx_v_dst), __pyx_v_ndim); /* "View.MemoryView":1305 * if slices_overlap(&src, &dst, ndim, itemsize): * * if not slice_is_contig(src, order, ndim): # <<<<<<<<<<<<<< * order = get_best_order(&dst, ndim) * */ } /* "View.MemoryView":1308 * order = get_best_order(&dst, ndim) * * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim) # <<<<<<<<<<<<<< * src = tmp * */ __pyx_t_7 = __pyx_memoryview_copy_data_to_temp((&__pyx_v_src), (&__pyx_v_tmp), __pyx_v_order, __pyx_v_ndim); if (unlikely(__pyx_t_7 == ((void *)NULL))) __PYX_ERR(2, 1308, __pyx_L1_error) __pyx_v_tmpdata = __pyx_t_7; /* "View.MemoryView":1309 * * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim) * src = tmp # <<<<<<<<<<<<<< * * if not broadcasting: */ __pyx_v_src = __pyx_v_tmp; /* "View.MemoryView":1303 * _err_dim(ValueError, "Dimension %d is not direct", i) * * if slices_overlap(&src, &dst, ndim, itemsize): # <<<<<<<<<<<<<< * * if not slice_is_contig(src, order, ndim): */ } /* "View.MemoryView":1311 * src = tmp * * if not broadcasting: # <<<<<<<<<<<<<< * * */ __pyx_t_2 = ((!(__pyx_v_broadcasting != 0)) != 0); if (__pyx_t_2) { /* "View.MemoryView":1314 * * * if slice_is_contig(src, 'C', ndim): # <<<<<<<<<<<<<< * direct_copy = slice_is_contig(dst, 'C', ndim) * elif slice_is_contig(src, 'F', ndim): */ __pyx_t_2 = (__pyx_memviewslice_is_contig(__pyx_v_src, 'C', __pyx_v_ndim) != 0); if (__pyx_t_2) { /* "View.MemoryView":1315 * * if slice_is_contig(src, 'C', ndim): * direct_copy = slice_is_contig(dst, 'C', ndim) # <<<<<<<<<<<<<< * elif slice_is_contig(src, 'F', ndim): * direct_copy = slice_is_contig(dst, 'F', ndim) */ __pyx_v_direct_copy = __pyx_memviewslice_is_contig(__pyx_v_dst, 'C', __pyx_v_ndim); /* "View.MemoryView":1314 * * * if slice_is_contig(src, 'C', ndim): # <<<<<<<<<<<<<< * direct_copy = slice_is_contig(dst, 'C', ndim) * elif slice_is_contig(src, 'F', ndim): */ goto __pyx_L12; } /* "View.MemoryView":1316 * if slice_is_contig(src, 'C', ndim): * direct_copy = slice_is_contig(dst, 'C', ndim) * elif slice_is_contig(src, 'F', ndim): # <<<<<<<<<<<<<< * direct_copy = slice_is_contig(dst, 'F', ndim) * */ __pyx_t_2 = (__pyx_memviewslice_is_contig(__pyx_v_src, 'F', __pyx_v_ndim) != 0); if (__pyx_t_2) { /* "View.MemoryView":1317 * direct_copy = slice_is_contig(dst, 'C', ndim) * elif slice_is_contig(src, 'F', ndim): * direct_copy = slice_is_contig(dst, 'F', ndim) # <<<<<<<<<<<<<< * * if direct_copy: */ __pyx_v_direct_copy = __pyx_memviewslice_is_contig(__pyx_v_dst, 'F', __pyx_v_ndim); /* "View.MemoryView":1316 * if slice_is_contig(src, 'C', ndim): * direct_copy = slice_is_contig(dst, 'C', ndim) * elif slice_is_contig(src, 'F', ndim): # <<<<<<<<<<<<<< * direct_copy = slice_is_contig(dst, 'F', ndim) * */ } __pyx_L12:; /* "View.MemoryView":1319 * direct_copy = slice_is_contig(dst, 'F', ndim) * * if direct_copy: # <<<<<<<<<<<<<< * * refcount_copying(&dst, dtype_is_object, ndim, False) */ __pyx_t_2 = (__pyx_v_direct_copy != 0); if (__pyx_t_2) { /* "View.MemoryView":1321 * if direct_copy: * * refcount_copying(&dst, dtype_is_object, ndim, False) # <<<<<<<<<<<<<< * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) * refcount_copying(&dst, dtype_is_object, ndim, True) */ __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 0); /* "View.MemoryView":1322 * * refcount_copying(&dst, dtype_is_object, ndim, False) * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) # <<<<<<<<<<<<<< * refcount_copying(&dst, dtype_is_object, ndim, True) * free(tmpdata) */ (void)(memcpy(__pyx_v_dst.data, __pyx_v_src.data, __pyx_memoryview_slice_get_size((&__pyx_v_src), __pyx_v_ndim))); /* "View.MemoryView":1323 * refcount_copying(&dst, dtype_is_object, ndim, False) * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) * refcount_copying(&dst, dtype_is_object, ndim, True) # <<<<<<<<<<<<<< * free(tmpdata) * return 0 */ __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 1); /* "View.MemoryView":1324 * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) * refcount_copying(&dst, dtype_is_object, ndim, True) * free(tmpdata) # <<<<<<<<<<<<<< * return 0 * */ free(__pyx_v_tmpdata); /* "View.MemoryView":1325 * refcount_copying(&dst, dtype_is_object, ndim, True) * free(tmpdata) * return 0 # <<<<<<<<<<<<<< * * if order == 'F' == get_best_order(&dst, ndim): */ __pyx_r = 0; goto __pyx_L0; /* "View.MemoryView":1319 * direct_copy = slice_is_contig(dst, 'F', ndim) * * if direct_copy: # <<<<<<<<<<<<<< * * refcount_copying(&dst, dtype_is_object, ndim, False) */ } /* "View.MemoryView":1311 * src = tmp * * if not broadcasting: # <<<<<<<<<<<<<< * * */ } /* "View.MemoryView":1327 * return 0 * * if order == 'F' == get_best_order(&dst, ndim): # <<<<<<<<<<<<<< * * */ __pyx_t_2 = (__pyx_v_order == 'F'); if (__pyx_t_2) { __pyx_t_2 = ('F' == __pyx_get_best_slice_order((&__pyx_v_dst), __pyx_v_ndim)); } __pyx_t_8 = (__pyx_t_2 != 0); if (__pyx_t_8) { /* "View.MemoryView":1330 * * * transpose_memslice(&src) # <<<<<<<<<<<<<< * transpose_memslice(&dst) * */ __pyx_t_5 = __pyx_memslice_transpose((&__pyx_v_src)); if (unlikely(__pyx_t_5 == ((int)0))) __PYX_ERR(2, 1330, __pyx_L1_error) /* "View.MemoryView":1331 * * transpose_memslice(&src) * transpose_memslice(&dst) # <<<<<<<<<<<<<< * * refcount_copying(&dst, dtype_is_object, ndim, False) */ __pyx_t_5 = __pyx_memslice_transpose((&__pyx_v_dst)); if (unlikely(__pyx_t_5 == ((int)0))) __PYX_ERR(2, 1331, __pyx_L1_error) /* "View.MemoryView":1327 * return 0 * * if order == 'F' == get_best_order(&dst, ndim): # <<<<<<<<<<<<<< * * */ } /* "View.MemoryView":1333 * transpose_memslice(&dst) * * refcount_copying(&dst, dtype_is_object, ndim, False) # <<<<<<<<<<<<<< * copy_strided_to_strided(&src, &dst, ndim, itemsize) * refcount_copying(&dst, dtype_is_object, ndim, True) */ __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 0); /* "View.MemoryView":1334 * * refcount_copying(&dst, dtype_is_object, ndim, False) * copy_strided_to_strided(&src, &dst, ndim, itemsize) # <<<<<<<<<<<<<< * refcount_copying(&dst, dtype_is_object, ndim, True) * */ copy_strided_to_strided((&__pyx_v_src), (&__pyx_v_dst), __pyx_v_ndim, __pyx_v_itemsize); /* "View.MemoryView":1335 * refcount_copying(&dst, dtype_is_object, ndim, False) * copy_strided_to_strided(&src, &dst, ndim, itemsize) * refcount_copying(&dst, dtype_is_object, ndim, True) # <<<<<<<<<<<<<< * * free(tmpdata) */ __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 1); /* "View.MemoryView":1337 * refcount_copying(&dst, dtype_is_object, ndim, True) * * free(tmpdata) # <<<<<<<<<<<<<< * return 0 * */ free(__pyx_v_tmpdata); /* "View.MemoryView":1338 * * free(tmpdata) * return 0 # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_broadcast_leading') */ __pyx_r = 0; goto __pyx_L0; /* "View.MemoryView":1269 * * @cname('__pyx_memoryview_copy_contents') * cdef int memoryview_copy_contents(__Pyx_memviewslice src, # <<<<<<<<<<<<<< * __Pyx_memviewslice dst, * int src_ndim, int dst_ndim, */ /* function exit code */ __pyx_L1_error:; { #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_AddTraceback("View.MemoryView.memoryview_copy_contents", __pyx_clineno, __pyx_lineno, __pyx_filename); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif } __pyx_r = -1; __pyx_L0:; return __pyx_r; } /* "View.MemoryView":1341 * * @cname('__pyx_memoryview_broadcast_leading') * cdef void broadcast_leading(__Pyx_memviewslice *mslice, # <<<<<<<<<<<<<< * int ndim, * int ndim_other) nogil: */ static void __pyx_memoryview_broadcast_leading(__Pyx_memviewslice *__pyx_v_mslice, int __pyx_v_ndim, int __pyx_v_ndim_other) { int __pyx_v_i; int __pyx_v_offset; int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; /* "View.MemoryView":1345 * int ndim_other) nogil: * cdef int i * cdef int offset = ndim_other - ndim # <<<<<<<<<<<<<< * * for i in range(ndim - 1, -1, -1): */ __pyx_v_offset = (__pyx_v_ndim_other - __pyx_v_ndim); /* "View.MemoryView":1347 * cdef int offset = ndim_other - ndim * * for i in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<< * mslice.shape[i + offset] = mslice.shape[i] * mslice.strides[i + offset] = mslice.strides[i] */ for (__pyx_t_1 = (__pyx_v_ndim - 1); __pyx_t_1 > -1; __pyx_t_1-=1) { __pyx_v_i = __pyx_t_1; /* "View.MemoryView":1348 * * for i in range(ndim - 1, -1, -1): * mslice.shape[i + offset] = mslice.shape[i] # <<<<<<<<<<<<<< * mslice.strides[i + offset] = mslice.strides[i] * mslice.suboffsets[i + offset] = mslice.suboffsets[i] */ (__pyx_v_mslice->shape[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->shape[__pyx_v_i]); /* "View.MemoryView":1349 * for i in range(ndim - 1, -1, -1): * mslice.shape[i + offset] = mslice.shape[i] * mslice.strides[i + offset] = mslice.strides[i] # <<<<<<<<<<<<<< * mslice.suboffsets[i + offset] = mslice.suboffsets[i] * */ (__pyx_v_mslice->strides[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->strides[__pyx_v_i]); /* "View.MemoryView":1350 * mslice.shape[i + offset] = mslice.shape[i] * mslice.strides[i + offset] = mslice.strides[i] * mslice.suboffsets[i + offset] = mslice.suboffsets[i] # <<<<<<<<<<<<<< * * for i in range(offset): */ (__pyx_v_mslice->suboffsets[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->suboffsets[__pyx_v_i]); } /* "View.MemoryView":1352 * mslice.suboffsets[i + offset] = mslice.suboffsets[i] * * for i in range(offset): # <<<<<<<<<<<<<< * mslice.shape[i] = 1 * mslice.strides[i] = mslice.strides[0] */ __pyx_t_1 = __pyx_v_offset; __pyx_t_2 = __pyx_t_1; for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_i = __pyx_t_3; /* "View.MemoryView":1353 * * for i in range(offset): * mslice.shape[i] = 1 # <<<<<<<<<<<<<< * mslice.strides[i] = mslice.strides[0] * mslice.suboffsets[i] = -1 */ (__pyx_v_mslice->shape[__pyx_v_i]) = 1; /* "View.MemoryView":1354 * for i in range(offset): * mslice.shape[i] = 1 * mslice.strides[i] = mslice.strides[0] # <<<<<<<<<<<<<< * mslice.suboffsets[i] = -1 * */ (__pyx_v_mslice->strides[__pyx_v_i]) = (__pyx_v_mslice->strides[0]); /* "View.MemoryView":1355 * mslice.shape[i] = 1 * mslice.strides[i] = mslice.strides[0] * mslice.suboffsets[i] = -1 # <<<<<<<<<<<<<< * * */ (__pyx_v_mslice->suboffsets[__pyx_v_i]) = -1L; } /* "View.MemoryView":1341 * * @cname('__pyx_memoryview_broadcast_leading') * cdef void broadcast_leading(__Pyx_memviewslice *mslice, # <<<<<<<<<<<<<< * int ndim, * int ndim_other) nogil: */ /* function exit code */ } /* "View.MemoryView":1363 * * @cname('__pyx_memoryview_refcount_copying') * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, # <<<<<<<<<<<<<< * int ndim, bint inc) nogil: * */ static void __pyx_memoryview_refcount_copying(__Pyx_memviewslice *__pyx_v_dst, int __pyx_v_dtype_is_object, int __pyx_v_ndim, int __pyx_v_inc) { int __pyx_t_1; /* "View.MemoryView":1367 * * * if dtype_is_object: # <<<<<<<<<<<<<< * refcount_objects_in_slice_with_gil(dst.data, dst.shape, * dst.strides, ndim, inc) */ __pyx_t_1 = (__pyx_v_dtype_is_object != 0); if (__pyx_t_1) { /* "View.MemoryView":1368 * * if dtype_is_object: * refcount_objects_in_slice_with_gil(dst.data, dst.shape, # <<<<<<<<<<<<<< * dst.strides, ndim, inc) * */ __pyx_memoryview_refcount_objects_in_slice_with_gil(__pyx_v_dst->data, __pyx_v_dst->shape, __pyx_v_dst->strides, __pyx_v_ndim, __pyx_v_inc); /* "View.MemoryView":1367 * * * if dtype_is_object: # <<<<<<<<<<<<<< * refcount_objects_in_slice_with_gil(dst.data, dst.shape, * dst.strides, ndim, inc) */ } /* "View.MemoryView":1363 * * @cname('__pyx_memoryview_refcount_copying') * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, # <<<<<<<<<<<<<< * int ndim, bint inc) nogil: * */ /* function exit code */ } /* "View.MemoryView":1372 * * @cname('__pyx_memoryview_refcount_objects_in_slice_with_gil') * cdef void refcount_objects_in_slice_with_gil(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, * bint inc) with gil: */ static void __pyx_memoryview_refcount_objects_in_slice_with_gil(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, int __pyx_v_inc) { __Pyx_RefNannyDeclarations #ifdef WITH_THREAD PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); #endif __Pyx_RefNannySetupContext("refcount_objects_in_slice_with_gil", 0); /* "View.MemoryView":1375 * Py_ssize_t *strides, int ndim, * bint inc) with gil: * refcount_objects_in_slice(data, shape, strides, ndim, inc) # <<<<<<<<<<<<<< * * @cname('__pyx_memoryview_refcount_objects_in_slice') */ __pyx_memoryview_refcount_objects_in_slice(__pyx_v_data, __pyx_v_shape, __pyx_v_strides, __pyx_v_ndim, __pyx_v_inc); /* "View.MemoryView":1372 * * @cname('__pyx_memoryview_refcount_objects_in_slice_with_gil') * cdef void refcount_objects_in_slice_with_gil(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, * bint inc) with gil: */ /* function exit code */ __Pyx_RefNannyFinishContext(); #ifdef WITH_THREAD __Pyx_PyGILState_Release(__pyx_gilstate_save); #endif } /* "View.MemoryView":1378 * * @cname('__pyx_memoryview_refcount_objects_in_slice') * cdef void refcount_objects_in_slice(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, bint inc): * cdef Py_ssize_t i */ static void __pyx_memoryview_refcount_objects_in_slice(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, int __pyx_v_inc) { CYTHON_UNUSED Py_ssize_t __pyx_v_i; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; Py_ssize_t __pyx_t_2; Py_ssize_t __pyx_t_3; int __pyx_t_4; __Pyx_RefNannySetupContext("refcount_objects_in_slice", 0); /* "View.MemoryView":1382 * cdef Py_ssize_t i * * for i in range(shape[0]): # <<<<<<<<<<<<<< * if ndim == 1: * if inc: */ __pyx_t_1 = (__pyx_v_shape[0]); __pyx_t_2 = __pyx_t_1; for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { __pyx_v_i = __pyx_t_3; /* "View.MemoryView":1383 * * for i in range(shape[0]): * if ndim == 1: # <<<<<<<<<<<<<< * if inc: * Py_INCREF(( data)[0]) */ __pyx_t_4 = ((__pyx_v_ndim == 1) != 0); if (__pyx_t_4) { /* "View.MemoryView":1384 * for i in range(shape[0]): * if ndim == 1: * if inc: # <<<<<<<<<<<<<< * Py_INCREF(( data)[0]) * else: */ __pyx_t_4 = (__pyx_v_inc != 0); if (__pyx_t_4) { /* "View.MemoryView":1385 * if ndim == 1: * if inc: * Py_INCREF(( data)[0]) # <<<<<<<<<<<<<< * else: * Py_DECREF(( data)[0]) */ Py_INCREF((((PyObject **)__pyx_v_data)[0])); /* "View.MemoryView":1384 * for i in range(shape[0]): * if ndim == 1: * if inc: # <<<<<<<<<<<<<< * Py_INCREF(( data)[0]) * else: */ goto __pyx_L6; } /* "View.MemoryView":1387 * Py_INCREF(( data)[0]) * else: * Py_DECREF(( data)[0]) # <<<<<<<<<<<<<< * else: * refcount_objects_in_slice(data, shape + 1, strides + 1, */ /*else*/ { Py_DECREF((((PyObject **)__pyx_v_data)[0])); } __pyx_L6:; /* "View.MemoryView":1383 * * for i in range(shape[0]): * if ndim == 1: # <<<<<<<<<<<<<< * if inc: * Py_INCREF(( data)[0]) */ goto __pyx_L5; } /* "View.MemoryView":1389 * Py_DECREF(( data)[0]) * else: * refcount_objects_in_slice(data, shape + 1, strides + 1, # <<<<<<<<<<<<<< * ndim - 1, inc) * */ /*else*/ { /* "View.MemoryView":1390 * else: * refcount_objects_in_slice(data, shape + 1, strides + 1, * ndim - 1, inc) # <<<<<<<<<<<<<< * * data += strides[0] */ __pyx_memoryview_refcount_objects_in_slice(__pyx_v_data, (__pyx_v_shape + 1), (__pyx_v_strides + 1), (__pyx_v_ndim - 1), __pyx_v_inc); } __pyx_L5:; /* "View.MemoryView":1392 * ndim - 1, inc) * * data += strides[0] # <<<<<<<<<<<<<< * * */ __pyx_v_data = (__pyx_v_data + (__pyx_v_strides[0])); } /* "View.MemoryView":1378 * * @cname('__pyx_memoryview_refcount_objects_in_slice') * cdef void refcount_objects_in_slice(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, bint inc): * cdef Py_ssize_t i */ /* function exit code */ __Pyx_RefNannyFinishContext(); } /* "View.MemoryView":1398 * * @cname('__pyx_memoryview_slice_assign_scalar') * cdef void slice_assign_scalar(__Pyx_memviewslice *dst, int ndim, # <<<<<<<<<<<<<< * size_t itemsize, void *item, * bint dtype_is_object) nogil: */ static void __pyx_memoryview_slice_assign_scalar(__Pyx_memviewslice *__pyx_v_dst, int __pyx_v_ndim, size_t __pyx_v_itemsize, void *__pyx_v_item, int __pyx_v_dtype_is_object) { /* "View.MemoryView":1401 * size_t itemsize, void *item, * bint dtype_is_object) nogil: * refcount_copying(dst, dtype_is_object, ndim, False) # <<<<<<<<<<<<<< * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, * itemsize, item) */ __pyx_memoryview_refcount_copying(__pyx_v_dst, __pyx_v_dtype_is_object, __pyx_v_ndim, 0); /* "View.MemoryView":1402 * bint dtype_is_object) nogil: * refcount_copying(dst, dtype_is_object, ndim, False) * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, # <<<<<<<<<<<<<< * itemsize, item) * refcount_copying(dst, dtype_is_object, ndim, True) */ __pyx_memoryview__slice_assign_scalar(__pyx_v_dst->data, __pyx_v_dst->shape, __pyx_v_dst->strides, __pyx_v_ndim, __pyx_v_itemsize, __pyx_v_item); /* "View.MemoryView":1404 * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, * itemsize, item) * refcount_copying(dst, dtype_is_object, ndim, True) # <<<<<<<<<<<<<< * * */ __pyx_memoryview_refcount_copying(__pyx_v_dst, __pyx_v_dtype_is_object, __pyx_v_ndim, 1); /* "View.MemoryView":1398 * * @cname('__pyx_memoryview_slice_assign_scalar') * cdef void slice_assign_scalar(__Pyx_memviewslice *dst, int ndim, # <<<<<<<<<<<<<< * size_t itemsize, void *item, * bint dtype_is_object) nogil: */ /* function exit code */ } /* "View.MemoryView":1408 * * @cname('__pyx_memoryview__slice_assign_scalar') * cdef void _slice_assign_scalar(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, * size_t itemsize, void *item) nogil: */ static void __pyx_memoryview__slice_assign_scalar(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, size_t __pyx_v_itemsize, void *__pyx_v_item) { CYTHON_UNUSED Py_ssize_t __pyx_v_i; Py_ssize_t __pyx_v_stride; Py_ssize_t __pyx_v_extent; int __pyx_t_1; Py_ssize_t __pyx_t_2; Py_ssize_t __pyx_t_3; Py_ssize_t __pyx_t_4; /* "View.MemoryView":1412 * size_t itemsize, void *item) nogil: * cdef Py_ssize_t i * cdef Py_ssize_t stride = strides[0] # <<<<<<<<<<<<<< * cdef Py_ssize_t extent = shape[0] * */ __pyx_v_stride = (__pyx_v_strides[0]); /* "View.MemoryView":1413 * cdef Py_ssize_t i * cdef Py_ssize_t stride = strides[0] * cdef Py_ssize_t extent = shape[0] # <<<<<<<<<<<<<< * * if ndim == 1: */ __pyx_v_extent = (__pyx_v_shape[0]); /* "View.MemoryView":1415 * cdef Py_ssize_t extent = shape[0] * * if ndim == 1: # <<<<<<<<<<<<<< * for i in range(extent): * memcpy(data, item, itemsize) */ __pyx_t_1 = ((__pyx_v_ndim == 1) != 0); if (__pyx_t_1) { /* "View.MemoryView":1416 * * if ndim == 1: * for i in range(extent): # <<<<<<<<<<<<<< * memcpy(data, item, itemsize) * data += stride */ __pyx_t_2 = __pyx_v_extent; __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_i = __pyx_t_4; /* "View.MemoryView":1417 * if ndim == 1: * for i in range(extent): * memcpy(data, item, itemsize) # <<<<<<<<<<<<<< * data += stride * else: */ (void)(memcpy(__pyx_v_data, __pyx_v_item, __pyx_v_itemsize)); /* "View.MemoryView":1418 * for i in range(extent): * memcpy(data, item, itemsize) * data += stride # <<<<<<<<<<<<<< * else: * for i in range(extent): */ __pyx_v_data = (__pyx_v_data + __pyx_v_stride); } /* "View.MemoryView":1415 * cdef Py_ssize_t extent = shape[0] * * if ndim == 1: # <<<<<<<<<<<<<< * for i in range(extent): * memcpy(data, item, itemsize) */ goto __pyx_L3; } /* "View.MemoryView":1420 * data += stride * else: * for i in range(extent): # <<<<<<<<<<<<<< * _slice_assign_scalar(data, shape + 1, strides + 1, * ndim - 1, itemsize, item) */ /*else*/ { __pyx_t_2 = __pyx_v_extent; __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_i = __pyx_t_4; /* "View.MemoryView":1421 * else: * for i in range(extent): * _slice_assign_scalar(data, shape + 1, strides + 1, # <<<<<<<<<<<<<< * ndim - 1, itemsize, item) * data += stride */ __pyx_memoryview__slice_assign_scalar(__pyx_v_data, (__pyx_v_shape + 1), (__pyx_v_strides + 1), (__pyx_v_ndim - 1), __pyx_v_itemsize, __pyx_v_item); /* "View.MemoryView":1423 * _slice_assign_scalar(data, shape + 1, strides + 1, * ndim - 1, itemsize, item) * data += stride # <<<<<<<<<<<<<< * * */ __pyx_v_data = (__pyx_v_data + __pyx_v_stride); } } __pyx_L3:; /* "View.MemoryView":1408 * * @cname('__pyx_memoryview__slice_assign_scalar') * cdef void _slice_assign_scalar(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< * Py_ssize_t *strides, int ndim, * size_t itemsize, void *item) nogil: */ /* function exit code */ } /* "(tree fragment)":1 * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_PickleError * cdef object __pyx_result */ /* Python wrapper */ static PyObject *__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_15View_dot_MemoryView_1__pyx_unpickle_Enum = {"__pyx_unpickle_Enum", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v___pyx_type = 0; long __pyx_v___pyx_checksum; PyObject *__pyx_v___pyx_state = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__pyx_unpickle_Enum (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0}; PyObject* values[3] = {0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_type)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_checksum)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, 1); __PYX_ERR(2, 1, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, 2); __PYX_ERR(2, 1, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Enum") < 0)) __PYX_ERR(2, 1, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); } __pyx_v___pyx_type = values[0]; __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(2, 1, __pyx_L3_error) __pyx_v___pyx_state = values[2]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 1, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_v___pyx_PickleError = 0; PyObject *__pyx_v___pyx_result = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_t_6; __Pyx_RefNannySetupContext("__pyx_unpickle_Enum", 0); /* "(tree fragment)":4 * cdef object __pyx_PickleError * cdef object __pyx_result * if __pyx_checksum != 0xb068931: # <<<<<<<<<<<<<< * from pickle import PickleError as __pyx_PickleError * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) */ __pyx_t_1 = ((__pyx_v___pyx_checksum != 0xb068931) != 0); if (__pyx_t_1) { /* "(tree fragment)":5 * cdef object __pyx_result * if __pyx_checksum != 0xb068931: * from pickle import PickleError as __pyx_PickleError # <<<<<<<<<<<<<< * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) * __pyx_result = Enum.__new__(__pyx_type) */ __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_PickleError); __Pyx_GIVEREF(__pyx_n_s_PickleError); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_PickleError); __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_2); __pyx_v___pyx_PickleError = __pyx_t_2; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "(tree fragment)":6 * if __pyx_checksum != 0xb068931: * from pickle import PickleError as __pyx_PickleError * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) # <<<<<<<<<<<<<< * __pyx_result = Enum.__new__(__pyx_type) * if __pyx_state is not None: */ __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_s_vs_0xb0, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_INCREF(__pyx_v___pyx_PickleError); __pyx_t_2 = __pyx_v___pyx_PickleError; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 6, __pyx_L1_error) /* "(tree fragment)":4 * cdef object __pyx_PickleError * cdef object __pyx_result * if __pyx_checksum != 0xb068931: # <<<<<<<<<<<<<< * from pickle import PickleError as __pyx_PickleError * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) */ } /* "(tree fragment)":7 * from pickle import PickleError as __pyx_PickleError * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) * __pyx_result = Enum.__new__(__pyx_type) # <<<<<<<<<<<<<< * if __pyx_state is not None: * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_MemviewEnum_type), __pyx_n_s_new); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 7, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v___pyx_type); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 7, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v___pyx_result = __pyx_t_3; __pyx_t_3 = 0; /* "(tree fragment)":8 * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) * __pyx_result = Enum.__new__(__pyx_type) * if __pyx_state is not None: # <<<<<<<<<<<<<< * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) * return __pyx_result */ __pyx_t_1 = (__pyx_v___pyx_state != Py_None); __pyx_t_6 = (__pyx_t_1 != 0); if (__pyx_t_6) { /* "(tree fragment)":9 * __pyx_result = Enum.__new__(__pyx_type) * if __pyx_state is not None: * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) # <<<<<<<<<<<<<< * return __pyx_result * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): */ if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(2, 9, __pyx_L1_error) __pyx_t_3 = __pyx_unpickle_Enum__set_state(((struct __pyx_MemviewEnum_obj *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "(tree fragment)":8 * raise __pyx_PickleError("Incompatible checksums (%s vs 0xb068931 = (name))" % __pyx_checksum) * __pyx_result = Enum.__new__(__pyx_type) * if __pyx_state is not None: # <<<<<<<<<<<<<< * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) * return __pyx_result */ } /* "(tree fragment)":10 * if __pyx_state is not None: * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) * return __pyx_result # <<<<<<<<<<<<<< * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): * __pyx_result.name = __pyx_state[0] */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v___pyx_result); __pyx_r = __pyx_v___pyx_result; goto __pyx_L0; /* "(tree fragment)":1 * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_PickleError * cdef object __pyx_result */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v___pyx_PickleError); __Pyx_XDECREF(__pyx_v___pyx_result); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":11 * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) * return __pyx_result * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< * __pyx_result.name = __pyx_state[0] * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): */ static PyObject *__pyx_unpickle_Enum__set_state(struct __pyx_MemviewEnum_obj *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; Py_ssize_t __pyx_t_3; int __pyx_t_4; int __pyx_t_5; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; __Pyx_RefNannySetupContext("__pyx_unpickle_Enum__set_state", 0); /* "(tree fragment)":12 * return __pyx_result * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): * __pyx_result.name = __pyx_state[0] # <<<<<<<<<<<<<< * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): * __pyx_result.__dict__.update(__pyx_state[1]) */ if (unlikely(__pyx_v___pyx_state == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(2, 12, __pyx_L1_error) } __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 12, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v___pyx_result->name); __Pyx_DECREF(__pyx_v___pyx_result->name); __pyx_v___pyx_result->name = __pyx_t_1; __pyx_t_1 = 0; /* "(tree fragment)":13 * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): * __pyx_result.name = __pyx_state[0] * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< * __pyx_result.__dict__.update(__pyx_state[1]) */ if (unlikely(__pyx_v___pyx_state == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(2, 13, __pyx_L1_error) } __pyx_t_3 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(2, 13, __pyx_L1_error) __pyx_t_4 = ((__pyx_t_3 > 1) != 0); if (__pyx_t_4) { } else { __pyx_t_2 = __pyx_t_4; goto __pyx_L4_bool_binop_done; } __pyx_t_4 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 13, __pyx_L1_error) __pyx_t_5 = (__pyx_t_4 != 0); __pyx_t_2 = __pyx_t_5; __pyx_L4_bool_binop_done:; if (__pyx_t_2) { /* "(tree fragment)":14 * __pyx_result.name = __pyx_state[0] * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): * __pyx_result.__dict__.update(__pyx_state[1]) # <<<<<<<<<<<<<< */ __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(__pyx_v___pyx_state == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(2, 14, __pyx_L1_error) } __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 14, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "(tree fragment)":13 * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): * __pyx_result.name = __pyx_state[0] * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< * __pyx_result.__dict__.update(__pyx_state[1]) */ } /* "(tree fragment)":11 * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) * return __pyx_result * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< * __pyx_result.name = __pyx_state[0] * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "BufferFormatFromTypeInfo":1464 * * @cname('__pyx_format_from_typeinfo') * cdef bytes format_from_typeinfo(__Pyx_TypeInfo *type): # <<<<<<<<<<<<<< * cdef __Pyx_StructField *field * cdef __pyx_typeinfo_string fmt */ static PyObject *__pyx_format_from_typeinfo(__Pyx_TypeInfo *__pyx_v_type) { __Pyx_StructField *__pyx_v_field; struct __pyx_typeinfo_string __pyx_v_fmt; PyObject *__pyx_v_part = 0; PyObject *__pyx_v_result = 0; PyObject *__pyx_v_alignment = NULL; PyObject *__pyx_v_parts = NULL; PyObject *__pyx_v_extents = NULL; int __pyx_v_i; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; __Pyx_StructField *__pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_t_7; int __pyx_t_8; int __pyx_t_9; int __pyx_t_10; __Pyx_RefNannySetupContext("format_from_typeinfo", 0); /* "BufferFormatFromTypeInfo":1469 * cdef bytes part, result * * if type.typegroup == 'S': # <<<<<<<<<<<<<< * assert type.fields != NULL and type.fields.type != NULL * */ __pyx_t_1 = ((__pyx_v_type->typegroup == 'S') != 0); if (__pyx_t_1) { /* "BufferFormatFromTypeInfo":1470 * * if type.typegroup == 'S': * assert type.fields != NULL and type.fields.type != NULL # <<<<<<<<<<<<<< * * if type.flags & __PYX_BUF_FLAGS_PACKED_STRUCT: */ #ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { __pyx_t_2 = ((__pyx_v_type->fields != NULL) != 0); if (__pyx_t_2) { } else { __pyx_t_1 = __pyx_t_2; goto __pyx_L4_bool_binop_done; } __pyx_t_2 = ((__pyx_v_type->fields->type != NULL) != 0); __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; if (unlikely(!__pyx_t_1)) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(2, 1470, __pyx_L1_error) } } #endif /* "BufferFormatFromTypeInfo":1472 * assert type.fields != NULL and type.fields.type != NULL * * if type.flags & __PYX_BUF_FLAGS_PACKED_STRUCT: # <<<<<<<<<<<<<< * alignment = b'^' * else: */ __pyx_t_1 = ((__pyx_v_type->flags & __PYX_BUF_FLAGS_PACKED_STRUCT) != 0); if (__pyx_t_1) { /* "BufferFormatFromTypeInfo":1473 * * if type.flags & __PYX_BUF_FLAGS_PACKED_STRUCT: * alignment = b'^' # <<<<<<<<<<<<<< * else: * alignment = b'' */ __Pyx_INCREF(__pyx_kp_b__38); __pyx_v_alignment = __pyx_kp_b__38; /* "BufferFormatFromTypeInfo":1472 * assert type.fields != NULL and type.fields.type != NULL * * if type.flags & __PYX_BUF_FLAGS_PACKED_STRUCT: # <<<<<<<<<<<<<< * alignment = b'^' * else: */ goto __pyx_L6; } /* "BufferFormatFromTypeInfo":1475 * alignment = b'^' * else: * alignment = b'' # <<<<<<<<<<<<<< * * parts = [b"T{"] */ /*else*/ { __Pyx_INCREF(__pyx_kp_b__39); __pyx_v_alignment = __pyx_kp_b__39; } __pyx_L6:; /* "BufferFormatFromTypeInfo":1477 * alignment = b'' * * parts = [b"T{"] # <<<<<<<<<<<<<< * field = type.fields * */ __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1477, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_kp_b_T); __Pyx_GIVEREF(__pyx_kp_b_T); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_kp_b_T); __pyx_v_parts = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0; /* "BufferFormatFromTypeInfo":1478 * * parts = [b"T{"] * field = type.fields # <<<<<<<<<<<<<< * * while field.type: */ __pyx_t_4 = __pyx_v_type->fields; __pyx_v_field = __pyx_t_4; /* "BufferFormatFromTypeInfo":1480 * field = type.fields * * while field.type: # <<<<<<<<<<<<<< * part = format_from_typeinfo(field.type) * parts.append(part + b':' + field.name + b':') */ while (1) { __pyx_t_1 = (__pyx_v_field->type != 0); if (!__pyx_t_1) break; /* "BufferFormatFromTypeInfo":1481 * * while field.type: * part = format_from_typeinfo(field.type) # <<<<<<<<<<<<<< * parts.append(part + b':' + field.name + b':') * field += 1 */ __pyx_t_3 = __pyx_format_from_typeinfo(__pyx_v_field->type); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_part, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0; /* "BufferFormatFromTypeInfo":1482 * while field.type: * part = format_from_typeinfo(field.type) * parts.append(part + b':' + field.name + b':') # <<<<<<<<<<<<<< * field += 1 * */ __pyx_t_3 = PyNumber_Add(__pyx_v_part, __pyx_kp_b__40); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_field->name); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyNumber_Add(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 1482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Add(__pyx_t_6, __pyx_kp_b__40); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_parts, __pyx_t_5); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(2, 1482, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* "BufferFormatFromTypeInfo":1483 * part = format_from_typeinfo(field.type) * parts.append(part + b':' + field.name + b':') * field += 1 # <<<<<<<<<<<<<< * * result = alignment.join(parts) + b'}' */ __pyx_v_field = (__pyx_v_field + 1); } /* "BufferFormatFromTypeInfo":1485 * field += 1 * * result = alignment.join(parts) + b'}' # <<<<<<<<<<<<<< * else: * fmt = __Pyx_TypeInfoToFormat(type) */ __pyx_t_5 = __Pyx_PyBytes_Join(__pyx_v_alignment, __pyx_v_parts); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyNumber_Add(__pyx_t_5, __pyx_kp_b__41); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 1485, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(PyBytes_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(2, 1485, __pyx_L1_error) __pyx_v_result = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0; /* "BufferFormatFromTypeInfo":1469 * cdef bytes part, result * * if type.typegroup == 'S': # <<<<<<<<<<<<<< * assert type.fields != NULL and type.fields.type != NULL * */ goto __pyx_L3; } /* "BufferFormatFromTypeInfo":1487 * result = alignment.join(parts) + b'}' * else: * fmt = __Pyx_TypeInfoToFormat(type) # <<<<<<<<<<<<<< * if type.arraysize[0]: * extents = [unicode(type.arraysize[i]) for i in range(type.ndim)] */ /*else*/ { __pyx_v_fmt = __Pyx_TypeInfoToFormat(__pyx_v_type); /* "BufferFormatFromTypeInfo":1488 * else: * fmt = __Pyx_TypeInfoToFormat(type) * if type.arraysize[0]: # <<<<<<<<<<<<<< * extents = [unicode(type.arraysize[i]) for i in range(type.ndim)] * result = (u"(%s)" % u','.join(extents)).encode('ascii') + fmt.string */ __pyx_t_1 = ((__pyx_v_type->arraysize[0]) != 0); if (__pyx_t_1) { /* "BufferFormatFromTypeInfo":1489 * fmt = __Pyx_TypeInfoToFormat(type) * if type.arraysize[0]: * extents = [unicode(type.arraysize[i]) for i in range(type.ndim)] # <<<<<<<<<<<<<< * result = (u"(%s)" % u','.join(extents)).encode('ascii') + fmt.string * else: */ __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 1489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_8 = __pyx_v_type->ndim; __pyx_t_9 = __pyx_t_8; for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) { __pyx_v_i = __pyx_t_10; __pyx_t_5 = __Pyx_PyInt_FromSize_t((__pyx_v_type->arraysize[__pyx_v_i])); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_Unicode(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_6, (PyObject*)__pyx_t_3))) __PYX_ERR(2, 1489, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_v_extents = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0; /* "BufferFormatFromTypeInfo":1490 * if type.arraysize[0]: * extents = [unicode(type.arraysize[i]) for i in range(type.ndim)] * result = (u"(%s)" % u','.join(extents)).encode('ascii') + fmt.string # <<<<<<<<<<<<<< * else: * result = fmt.string */ __pyx_t_6 = PyUnicode_Join(__pyx_kp_u__42, __pyx_v_extents); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 1490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_s_2, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyUnicode_AsASCIIString(((PyObject*)__pyx_t_3)); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 1490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_FromString(__pyx_v_fmt.string); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 1490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyNumber_Add(__pyx_t_6, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(PyBytes_CheckExact(__pyx_t_5))||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(2, 1490, __pyx_L1_error) __pyx_v_result = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; /* "BufferFormatFromTypeInfo":1488 * else: * fmt = __Pyx_TypeInfoToFormat(type) * if type.arraysize[0]: # <<<<<<<<<<<<<< * extents = [unicode(type.arraysize[i]) for i in range(type.ndim)] * result = (u"(%s)" % u','.join(extents)).encode('ascii') + fmt.string */ goto __pyx_L9; } /* "BufferFormatFromTypeInfo":1492 * result = (u"(%s)" % u','.join(extents)).encode('ascii') + fmt.string * else: * result = fmt.string # <<<<<<<<<<<<<< * * return result */ /*else*/ { __pyx_t_5 = __Pyx_PyObject_FromString(__pyx_v_fmt.string); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 1492, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_v_result = ((PyObject*)__pyx_t_5); __pyx_t_5 = 0; } __pyx_L9:; } __pyx_L3:; /* "BufferFormatFromTypeInfo":1494 * result = fmt.string * * return result # <<<<<<<<<<<<<< */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_result); __pyx_r = __pyx_v_result; goto __pyx_L0; /* "BufferFormatFromTypeInfo":1464 * * @cname('__pyx_format_from_typeinfo') * cdef bytes format_from_typeinfo(__Pyx_TypeInfo *type): # <<<<<<<<<<<<<< * cdef __Pyx_StructField *field * cdef __pyx_typeinfo_string fmt */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("BufferFormatFromTypeInfo.format_from_typeinfo", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_part); __Pyx_XDECREF(__pyx_v_result); __Pyx_XDECREF(__pyx_v_alignment); __Pyx_XDECREF(__pyx_v_parts); __Pyx_XDECREF(__pyx_v_extents); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static struct __pyx_vtabstruct_array __pyx_vtable_array; static PyObject *__pyx_tp_new_array(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_array_obj *p; PyObject *o; if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { o = (*t->tp_alloc)(t, 0); } else { o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); } if (unlikely(!o)) return 0; p = ((struct __pyx_array_obj *)o); p->__pyx_vtab = __pyx_vtabptr_array; p->mode = ((PyObject*)Py_None); Py_INCREF(Py_None); p->_format = ((PyObject*)Py_None); Py_INCREF(Py_None); if (unlikely(__pyx_array___cinit__(o, a, k) < 0)) goto bad; return o; bad: Py_DECREF(o); o = 0; return NULL; } static void __pyx_tp_dealloc_array(PyObject *o) { struct __pyx_array_obj *p = (struct __pyx_array_obj *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif { PyObject *etype, *eval, *etb; PyErr_Fetch(&etype, &eval, &etb); ++Py_REFCNT(o); __pyx_array___dealloc__(o); --Py_REFCNT(o); PyErr_Restore(etype, eval, etb); } Py_CLEAR(p->mode); Py_CLEAR(p->_format); (*Py_TYPE(o)->tp_free)(o); } static PyObject *__pyx_sq_item_array(PyObject *o, Py_ssize_t i) { PyObject *r; PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0; r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x); Py_DECREF(x); return r; } static int __pyx_mp_ass_subscript_array(PyObject *o, PyObject *i, PyObject *v) { if (v) { return __pyx_array___setitem__(o, i, v); } else { PyErr_Format(PyExc_NotImplementedError, "Subscript deletion not supported by %.200s", Py_TYPE(o)->tp_name); return -1; } } static PyObject *__pyx_tp_getattro_array(PyObject *o, PyObject *n) { PyObject *v = __Pyx_PyObject_GenericGetAttr(o, n); if (!v && PyErr_ExceptionMatches(PyExc_AttributeError)) { PyErr_Clear(); v = __pyx_array___getattr__(o, n); } return v; } static PyObject *__pyx_getprop___pyx_array_memview(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(o); } static PyMethodDef __pyx_methods_array[] = { {"__getattr__", (PyCFunction)__pyx_array___getattr__, METH_O|METH_COEXIST, 0}, {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_array_1__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_array_3__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_array[] = { {(char *)"memview", __pyx_getprop___pyx_array_memview, 0, (char *)0, 0}, {0, 0, 0, 0, 0} }; static PySequenceMethods __pyx_tp_as_sequence_array = { __pyx_array___len__, /*sq_length*/ 0, /*sq_concat*/ 0, /*sq_repeat*/ __pyx_sq_item_array, /*sq_item*/ 0, /*sq_slice*/ 0, /*sq_ass_item*/ 0, /*sq_ass_slice*/ 0, /*sq_contains*/ 0, /*sq_inplace_concat*/ 0, /*sq_inplace_repeat*/ }; static PyMappingMethods __pyx_tp_as_mapping_array = { __pyx_array___len__, /*mp_length*/ __pyx_array___getitem__, /*mp_subscript*/ __pyx_mp_ass_subscript_array, /*mp_ass_subscript*/ }; static PyBufferProcs __pyx_tp_as_buffer_array = { #if PY_MAJOR_VERSION < 3 0, /*bf_getreadbuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getwritebuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getsegcount*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getcharbuffer*/ #endif __pyx_array_getbuffer, /*bf_getbuffer*/ 0, /*bf_releasebuffer*/ }; static PyTypeObject __pyx_type___pyx_array = { PyVarObject_HEAD_INIT(0, 0) "pywt._extensions._swt.array", /*tp_name*/ sizeof(struct __pyx_array_obj), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_array, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ &__pyx_tp_as_sequence_array, /*tp_as_sequence*/ &__pyx_tp_as_mapping_array, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ __pyx_tp_getattro_array, /*tp_getattro*/ 0, /*tp_setattro*/ &__pyx_tp_as_buffer_array, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ 0, /*tp_doc*/ 0, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_array, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_array, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_array, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif }; static PyObject *__pyx_tp_new_Enum(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { struct __pyx_MemviewEnum_obj *p; PyObject *o; if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { o = (*t->tp_alloc)(t, 0); } else { o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); } if (unlikely(!o)) return 0; p = ((struct __pyx_MemviewEnum_obj *)o); p->name = Py_None; Py_INCREF(Py_None); return o; } static void __pyx_tp_dealloc_Enum(PyObject *o) { struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->name); (*Py_TYPE(o)->tp_free)(o); } static int __pyx_tp_traverse_Enum(PyObject *o, visitproc v, void *a) { int e; struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o; if (p->name) { e = (*v)(p->name, a); if (e) return e; } return 0; } static int __pyx_tp_clear_Enum(PyObject *o) { PyObject* tmp; struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o; tmp = ((PyObject*)p->name); p->name = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyMethodDef __pyx_methods_Enum[] = { {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_MemviewEnum_1__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_MemviewEnum_3__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static PyTypeObject __pyx_type___pyx_MemviewEnum = { PyVarObject_HEAD_INIT(0, 0) "pywt._extensions._swt.Enum", /*tp_name*/ sizeof(struct __pyx_MemviewEnum_obj), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_Enum, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif __pyx_MemviewEnum___repr__, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_Enum, /*tp_traverse*/ __pyx_tp_clear_Enum, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_Enum, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ __pyx_MemviewEnum___init__, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_Enum, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif }; static struct __pyx_vtabstruct_memoryview __pyx_vtable_memoryview; static PyObject *__pyx_tp_new_memoryview(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_memoryview_obj *p; PyObject *o; if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { o = (*t->tp_alloc)(t, 0); } else { o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); } if (unlikely(!o)) return 0; p = ((struct __pyx_memoryview_obj *)o); p->__pyx_vtab = __pyx_vtabptr_memoryview; p->obj = Py_None; Py_INCREF(Py_None); p->_size = Py_None; Py_INCREF(Py_None); p->_array_interface = Py_None; Py_INCREF(Py_None); p->view.obj = NULL; if (unlikely(__pyx_memoryview___cinit__(o, a, k) < 0)) goto bad; return o; bad: Py_DECREF(o); o = 0; return NULL; } static void __pyx_tp_dealloc_memoryview(PyObject *o) { struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif PyObject_GC_UnTrack(o); { PyObject *etype, *eval, *etb; PyErr_Fetch(&etype, &eval, &etb); ++Py_REFCNT(o); __pyx_memoryview___dealloc__(o); --Py_REFCNT(o); PyErr_Restore(etype, eval, etb); } Py_CLEAR(p->obj); Py_CLEAR(p->_size); Py_CLEAR(p->_array_interface); (*Py_TYPE(o)->tp_free)(o); } static int __pyx_tp_traverse_memoryview(PyObject *o, visitproc v, void *a) { int e; struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o; if (p->obj) { e = (*v)(p->obj, a); if (e) return e; } if (p->_size) { e = (*v)(p->_size, a); if (e) return e; } if (p->_array_interface) { e = (*v)(p->_array_interface, a); if (e) return e; } if (p->view.obj) { e = (*v)(p->view.obj, a); if (e) return e; } return 0; } static int __pyx_tp_clear_memoryview(PyObject *o) { PyObject* tmp; struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o; tmp = ((PyObject*)p->obj); p->obj = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->_size); p->_size = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->_array_interface); p->_array_interface = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); Py_CLEAR(p->view.obj); return 0; } static PyObject *__pyx_sq_item_memoryview(PyObject *o, Py_ssize_t i) { PyObject *r; PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0; r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x); Py_DECREF(x); return r; } static int __pyx_mp_ass_subscript_memoryview(PyObject *o, PyObject *i, PyObject *v) { if (v) { return __pyx_memoryview___setitem__(o, i, v); } else { PyErr_Format(PyExc_NotImplementedError, "Subscript deletion not supported by %.200s", Py_TYPE(o)->tp_name); return -1; } } static PyObject *__pyx_getprop___pyx_memoryview_T(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_base(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_shape(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_strides(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_suboffsets(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_ndim(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_itemsize(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_nbytes(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(o); } static PyObject *__pyx_getprop___pyx_memoryview_size(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(o); } static PyMethodDef __pyx_methods_memoryview[] = { {"is_c_contig", (PyCFunction)__pyx_memoryview_is_c_contig, METH_NOARGS, 0}, {"is_f_contig", (PyCFunction)__pyx_memoryview_is_f_contig, METH_NOARGS, 0}, {"copy", (PyCFunction)__pyx_memoryview_copy, METH_NOARGS, 0}, {"copy_fortran", (PyCFunction)__pyx_memoryview_copy_fortran, METH_NOARGS, 0}, {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_memoryview_1__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_memoryview_3__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_memoryview[] = { {(char *)"T", __pyx_getprop___pyx_memoryview_T, 0, (char *)0, 0}, {(char *)"base", __pyx_getprop___pyx_memoryview_base, 0, (char *)0, 0}, {(char *)"shape", __pyx_getprop___pyx_memoryview_shape, 0, (char *)0, 0}, {(char *)"strides", __pyx_getprop___pyx_memoryview_strides, 0, (char *)0, 0}, {(char *)"suboffsets", __pyx_getprop___pyx_memoryview_suboffsets, 0, (char *)0, 0}, {(char *)"ndim", __pyx_getprop___pyx_memoryview_ndim, 0, (char *)0, 0}, {(char *)"itemsize", __pyx_getprop___pyx_memoryview_itemsize, 0, (char *)0, 0}, {(char *)"nbytes", __pyx_getprop___pyx_memoryview_nbytes, 0, (char *)0, 0}, {(char *)"size", __pyx_getprop___pyx_memoryview_size, 0, (char *)0, 0}, {0, 0, 0, 0, 0} }; static PySequenceMethods __pyx_tp_as_sequence_memoryview = { __pyx_memoryview___len__, /*sq_length*/ 0, /*sq_concat*/ 0, /*sq_repeat*/ __pyx_sq_item_memoryview, /*sq_item*/ 0, /*sq_slice*/ 0, /*sq_ass_item*/ 0, /*sq_ass_slice*/ 0, /*sq_contains*/ 0, /*sq_inplace_concat*/ 0, /*sq_inplace_repeat*/ }; static PyMappingMethods __pyx_tp_as_mapping_memoryview = { __pyx_memoryview___len__, /*mp_length*/ __pyx_memoryview___getitem__, /*mp_subscript*/ __pyx_mp_ass_subscript_memoryview, /*mp_ass_subscript*/ }; static PyBufferProcs __pyx_tp_as_buffer_memoryview = { #if PY_MAJOR_VERSION < 3 0, /*bf_getreadbuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getwritebuffer*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getsegcount*/ #endif #if PY_MAJOR_VERSION < 3 0, /*bf_getcharbuffer*/ #endif __pyx_memoryview_getbuffer, /*bf_getbuffer*/ 0, /*bf_releasebuffer*/ }; static PyTypeObject __pyx_type___pyx_memoryview = { PyVarObject_HEAD_INIT(0, 0) "pywt._extensions._swt.memoryview", /*tp_name*/ sizeof(struct __pyx_memoryview_obj), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_memoryview, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif __pyx_memoryview___repr__, /*tp_repr*/ 0, /*tp_as_number*/ &__pyx_tp_as_sequence_memoryview, /*tp_as_sequence*/ &__pyx_tp_as_mapping_memoryview, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ __pyx_memoryview___str__, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ &__pyx_tp_as_buffer_memoryview, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_memoryview, /*tp_traverse*/ __pyx_tp_clear_memoryview, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_memoryview, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_memoryview, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_memoryview, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif }; static struct __pyx_vtabstruct__memoryviewslice __pyx_vtable__memoryviewslice; static PyObject *__pyx_tp_new__memoryviewslice(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_memoryviewslice_obj *p; PyObject *o = __pyx_tp_new_memoryview(t, a, k); if (unlikely(!o)) return 0; p = ((struct __pyx_memoryviewslice_obj *)o); p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_memoryview*)__pyx_vtabptr__memoryviewslice; p->from_object = Py_None; Py_INCREF(Py_None); p->from_slice.memview = NULL; return o; } static void __pyx_tp_dealloc__memoryviewslice(PyObject *o) { struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif PyObject_GC_UnTrack(o); { PyObject *etype, *eval, *etb; PyErr_Fetch(&etype, &eval, &etb); ++Py_REFCNT(o); __pyx_memoryviewslice___dealloc__(o); --Py_REFCNT(o); PyErr_Restore(etype, eval, etb); } Py_CLEAR(p->from_object); PyObject_GC_Track(o); __pyx_tp_dealloc_memoryview(o); } static int __pyx_tp_traverse__memoryviewslice(PyObject *o, visitproc v, void *a) { int e; struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o; e = __pyx_tp_traverse_memoryview(o, v, a); if (e) return e; if (p->from_object) { e = (*v)(p->from_object, a); if (e) return e; } return 0; } static int __pyx_tp_clear__memoryviewslice(PyObject *o) { PyObject* tmp; struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o; __pyx_tp_clear_memoryview(o); tmp = ((PyObject*)p->from_object); p->from_object = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); __PYX_XDEC_MEMVIEW(&p->from_slice, 1); return 0; } static PyObject *__pyx_getprop___pyx_memoryviewslice_base(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(o); } static PyMethodDef __pyx_methods__memoryviewslice[] = { {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_memoryviewslice_1__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_memoryviewslice_3__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets__memoryviewslice[] = { {(char *)"base", __pyx_getprop___pyx_memoryviewslice_base, 0, (char *)0, 0}, {0, 0, 0, 0, 0} }; static PyTypeObject __pyx_type___pyx_memoryviewslice = { PyVarObject_HEAD_INIT(0, 0) "pywt._extensions._swt._memoryviewslice", /*tp_name*/ sizeof(struct __pyx_memoryviewslice_obj), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc__memoryviewslice, /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif #if CYTHON_COMPILING_IN_PYPY __pyx_memoryview___repr__, /*tp_repr*/ #else 0, /*tp_repr*/ #endif 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ #if CYTHON_COMPILING_IN_PYPY __pyx_memoryview___str__, /*tp_str*/ #else 0, /*tp_str*/ #endif 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ "Internal class for passing memoryview slices to Python", /*tp_doc*/ __pyx_tp_traverse__memoryviewslice, /*tp_traverse*/ __pyx_tp_clear__memoryviewslice, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods__memoryviewslice, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets__memoryviewslice, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ 0, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new__memoryviewslice, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif }; static PyMethodDef __pyx_methods[] = { {"swt_axis", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4pywt_11_extensions_4_swt_5swt_axis, METH_VARARGS|METH_KEYWORDS, 0}, {0, 0, 0, 0} }; #if PY_MAJOR_VERSION >= 3 #if CYTHON_PEP489_MULTI_PHASE_INIT static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/ static int __pyx_pymod_exec__swt(PyObject* module); /*proto*/ static PyModuleDef_Slot __pyx_moduledef_slots[] = { {Py_mod_create, (void*)__pyx_pymod_create}, {Py_mod_exec, (void*)__pyx_pymod_exec__swt}, {0, NULL} }; #endif static struct PyModuleDef __pyx_moduledef = { PyModuleDef_HEAD_INIT, "_swt", 0, /* m_doc */ #if CYTHON_PEP489_MULTI_PHASE_INIT 0, /* m_size */ #else -1, /* m_size */ #endif __pyx_methods /* m_methods */, #if CYTHON_PEP489_MULTI_PHASE_INIT __pyx_moduledef_slots, /* m_slots */ #else NULL, /* m_reload */ #endif NULL, /* m_traverse */ NULL, /* m_clear */ NULL /* m_free */ }; #endif #ifndef CYTHON_SMALL_CODE #if defined(__clang__) #define CYTHON_SMALL_CODE #elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) #define CYTHON_SMALL_CODE __attribute__((cold)) #else #define CYTHON_SMALL_CODE #endif #endif static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_n_s_ASCII, __pyx_k_ASCII, sizeof(__pyx_k_ASCII), 0, 0, 1, 1}, {&__pyx_kp_u_Array_must_be_floating_point_not, __pyx_k_Array_must_be_floating_point_not, sizeof(__pyx_k_Array_must_be_floating_point_not), 0, 1, 0, 0}, {&__pyx_kp_s_Buffer_view_does_not_expose_stri, __pyx_k_Buffer_view_does_not_expose_stri, sizeof(__pyx_k_Buffer_view_does_not_expose_stri), 0, 0, 1, 0}, {&__pyx_kp_u_C_swt_failed, __pyx_k_C_swt_failed, sizeof(__pyx_k_C_swt_failed), 0, 1, 0, 0}, {&__pyx_kp_u_C_wavelet_transform_failed_with, __pyx_k_C_wavelet_transform_failed_with, sizeof(__pyx_k_C_wavelet_transform_failed_with), 0, 1, 0, 0}, {&__pyx_kp_s_Can_only_create_a_buffer_that_is, __pyx_k_Can_only_create_a_buffer_that_is, sizeof(__pyx_k_Can_only_create_a_buffer_that_is), 0, 0, 1, 0}, {&__pyx_kp_u_Cannot_apply_swt_to_a_size_0_sig, __pyx_k_Cannot_apply_swt_to_a_size_0_sig, sizeof(__pyx_k_Cannot_apply_swt_to_a_size_0_sig), 0, 1, 0, 0}, {&__pyx_kp_s_Cannot_assign_to_read_only_memor, __pyx_k_Cannot_assign_to_read_only_memor, sizeof(__pyx_k_Cannot_assign_to_read_only_memor), 0, 0, 1, 0}, {&__pyx_kp_s_Cannot_create_writable_memory_vi, __pyx_k_Cannot_create_writable_memory_vi, sizeof(__pyx_k_Cannot_create_writable_memory_vi), 0, 0, 1, 0}, {&__pyx_kp_s_Cannot_index_with_type_s, __pyx_k_Cannot_index_with_type_s, sizeof(__pyx_k_Cannot_index_with_type_s), 0, 0, 1, 0}, {&__pyx_kp_u_Data_must_have_non_zero_size, __pyx_k_Data_must_have_non_zero_size, sizeof(__pyx_k_Data_must_have_non_zero_size), 0, 1, 0, 0}, {&__pyx_kp_u_Data_must_have_non_zero_size_alo, __pyx_k_Data_must_have_non_zero_size_alo, sizeof(__pyx_k_Data_must_have_non_zero_size_alo), 0, 1, 0, 0}, {&__pyx_n_s_Ellipsis, __pyx_k_Ellipsis, sizeof(__pyx_k_Ellipsis), 0, 0, 1, 1}, {&__pyx_kp_s_Empty_shape_tuple_for_cython_arr, __pyx_k_Empty_shape_tuple_for_cython_arr, sizeof(__pyx_k_Empty_shape_tuple_for_cython_arr), 0, 0, 1, 0}, {&__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_k_Expected_at_least_d_argument_s_g, sizeof(__pyx_k_Expected_at_least_d_argument_s_g), 0, 0, 1, 0}, {&__pyx_kp_u_Format_string_allocated_too_shor, __pyx_k_Format_string_allocated_too_shor, sizeof(__pyx_k_Format_string_allocated_too_shor), 0, 1, 0, 0}, {&__pyx_kp_u_Format_string_allocated_too_shor_2, __pyx_k_Format_string_allocated_too_shor_2, sizeof(__pyx_k_Format_string_allocated_too_shor_2), 0, 1, 0, 0}, {&__pyx_kp_s_Function_call_with_ambiguous_arg, __pyx_k_Function_call_with_ambiguous_arg, sizeof(__pyx_k_Function_call_with_ambiguous_arg), 0, 0, 1, 0}, {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, {&__pyx_kp_s_Incompatible_checksums_s_vs_0xb0, __pyx_k_Incompatible_checksums_s_vs_0xb0, sizeof(__pyx_k_Incompatible_checksums_s_vs_0xb0), 0, 0, 1, 0}, {&__pyx_n_s_IndexError, __pyx_k_IndexError, sizeof(__pyx_k_IndexError), 0, 0, 1, 1}, {&__pyx_kp_s_Indirect_dimensions_not_supporte, __pyx_k_Indirect_dimensions_not_supporte, sizeof(__pyx_k_Indirect_dimensions_not_supporte), 0, 0, 1, 0}, {&__pyx_kp_s_Invalid_mode_expected_c_or_fortr, __pyx_k_Invalid_mode_expected_c_or_fortr, sizeof(__pyx_k_Invalid_mode_expected_c_or_fortr), 0, 0, 1, 0}, {&__pyx_kp_u_Invalid_output_length, __pyx_k_Invalid_output_length, sizeof(__pyx_k_Invalid_output_length), 0, 1, 0, 0}, {&__pyx_kp_s_Invalid_shape_in_axis_d_d, __pyx_k_Invalid_shape_in_axis_d_d, sizeof(__pyx_k_Invalid_shape_in_axis_d_d), 0, 0, 1, 0}, {&__pyx_kp_u_Length_of_data_must_be_even, __pyx_k_Length_of_data_must_be_even, sizeof(__pyx_k_Length_of_data_must_be_even), 0, 1, 0, 0}, {&__pyx_kp_u_Length_of_data_must_be_even_alon, __pyx_k_Length_of_data_must_be_even_alon, sizeof(__pyx_k_Length_of_data_must_be_even_alon), 0, 1, 0, 0}, {&__pyx_kp_u_Level_value_must_be_greater_than, __pyx_k_Level_value_must_be_greater_than, sizeof(__pyx_k_Level_value_must_be_greater_than), 0, 1, 0, 0}, {&__pyx_kp_u_Level_value_too_high_max_level_f, __pyx_k_Level_value_too_high_max_level_f, sizeof(__pyx_k_Level_value_too_high_max_level_f), 0, 1, 0, 0}, {&__pyx_n_s_MemoryError, __pyx_k_MemoryError, sizeof(__pyx_k_MemoryError), 0, 0, 1, 1}, {&__pyx_kp_s_MemoryView_of_r_at_0x_x, __pyx_k_MemoryView_of_r_at_0x_x, sizeof(__pyx_k_MemoryView_of_r_at_0x_x), 0, 0, 1, 0}, {&__pyx_kp_s_MemoryView_of_r_object, __pyx_k_MemoryView_of_r_object, sizeof(__pyx_k_MemoryView_of_r_object), 0, 0, 1, 0}, {&__pyx_kp_u_No_levels_of_stationary_wavelet, __pyx_k_No_levels_of_stationary_wavelet, sizeof(__pyx_k_No_levels_of_stationary_wavelet), 0, 1, 0, 0}, {&__pyx_kp_s_No_matching_signature_found, __pyx_k_No_matching_signature_found, sizeof(__pyx_k_No_matching_signature_found), 0, 0, 1, 0}, {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0}, {&__pyx_n_b_O, __pyx_k_O, sizeof(__pyx_k_O), 0, 0, 0, 1}, {&__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_k_Out_of_bounds_on_buffer_access_a, sizeof(__pyx_k_Out_of_bounds_on_buffer_access_a), 0, 0, 1, 0}, {&__pyx_n_s_PickleError, __pyx_k_PickleError, sizeof(__pyx_k_PickleError), 0, 0, 1, 1}, {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, {&__pyx_kp_b_T, __pyx_k_T, sizeof(__pyx_k_T), 0, 0, 0, 0}, {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, {&__pyx_kp_s_Unable_to_convert_item_to_object, __pyx_k_Unable_to_convert_item_to_object, sizeof(__pyx_k_Unable_to_convert_item_to_object), 0, 0, 1, 0}, {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, {&__pyx_n_s_View_MemoryView, __pyx_k_View_MemoryView, sizeof(__pyx_k_View_MemoryView), 0, 0, 1, 1}, {&__pyx_kp_s__2, __pyx_k__2, sizeof(__pyx_k__2), 0, 0, 1, 0}, {&__pyx_kp_s__3, __pyx_k__3, sizeof(__pyx_k__3), 0, 0, 1, 0}, {&__pyx_kp_b__38, __pyx_k__38, sizeof(__pyx_k__38), 0, 0, 0, 0}, {&__pyx_kp_b__39, __pyx_k__39, sizeof(__pyx_k__39), 0, 0, 0, 0}, {&__pyx_kp_b__40, __pyx_k__40, sizeof(__pyx_k__40), 0, 0, 0, 0}, {&__pyx_kp_b__41, __pyx_k__41, sizeof(__pyx_k__41), 0, 0, 0, 0}, {&__pyx_kp_u__42, __pyx_k__42, sizeof(__pyx_k__42), 0, 1, 0, 0}, {&__pyx_n_s_allocate_buffer, __pyx_k_allocate_buffer, sizeof(__pyx_k_allocate_buffer), 0, 0, 1, 1}, {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1}, {&__pyx_n_s_asarray, __pyx_k_asarray, sizeof(__pyx_k_asarray), 0, 0, 1, 1}, {&__pyx_n_s_astype, __pyx_k_astype, sizeof(__pyx_k_astype), 0, 0, 1, 1}, {&__pyx_n_s_axis, __pyx_k_axis, sizeof(__pyx_k_axis), 0, 0, 1, 1}, {&__pyx_n_s_base, __pyx_k_base, sizeof(__pyx_k_base), 0, 0, 1, 1}, {&__pyx_n_s_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 0, 1, 1}, {&__pyx_n_u_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 1, 0, 1}, {&__pyx_n_s_cA, __pyx_k_cA, sizeof(__pyx_k_cA), 0, 0, 1, 1}, {&__pyx_n_s_cD, __pyx_k_cD, sizeof(__pyx_k_cD), 0, 0, 1, 1}, {&__pyx_n_s_class, __pyx_k_class, sizeof(__pyx_k_class), 0, 0, 1, 1}, {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, {&__pyx_n_s_complex128, __pyx_k_complex128, sizeof(__pyx_k_complex128), 0, 0, 1, 1}, {&__pyx_n_s_complex64, __pyx_k_complex64, sizeof(__pyx_k_complex64), 0, 0, 1, 1}, {&__pyx_kp_s_contiguous_and_direct, __pyx_k_contiguous_and_direct, sizeof(__pyx_k_contiguous_and_direct), 0, 0, 1, 0}, {&__pyx_kp_s_contiguous_and_indirect, __pyx_k_contiguous_and_indirect, sizeof(__pyx_k_contiguous_and_indirect), 0, 0, 1, 0}, {&__pyx_n_s_copy, __pyx_k_copy, sizeof(__pyx_k_copy), 0, 0, 1, 1}, {&__pyx_n_s_data, __pyx_k_data, sizeof(__pyx_k_data), 0, 0, 1, 1}, {&__pyx_n_s_data_size, __pyx_k_data_size, sizeof(__pyx_k_data_size), 0, 0, 1, 1}, {&__pyx_n_s_defaults, __pyx_k_defaults, sizeof(__pyx_k_defaults), 0, 0, 1, 1}, {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1}, {&__pyx_kp_s_double_complex, __pyx_k_double_complex, sizeof(__pyx_k_double_complex), 0, 0, 1, 0}, {&__pyx_n_s_dtype, __pyx_k_dtype, sizeof(__pyx_k_dtype), 0, 0, 1, 1}, {&__pyx_n_s_dtype_is_object, __pyx_k_dtype_is_object, sizeof(__pyx_k_dtype_is_object), 0, 0, 1, 1}, {&__pyx_n_s_empty, __pyx_k_empty, sizeof(__pyx_k_empty), 0, 0, 1, 1}, {&__pyx_n_s_encode, __pyx_k_encode, sizeof(__pyx_k_encode), 0, 0, 1, 1}, {&__pyx_n_s_end_level, __pyx_k_end_level, sizeof(__pyx_k_end_level), 0, 0, 1, 1}, {&__pyx_n_s_enumerate, __pyx_k_enumerate, sizeof(__pyx_k_enumerate), 0, 0, 1, 1}, {&__pyx_n_s_error, __pyx_k_error, sizeof(__pyx_k_error), 0, 0, 1, 1}, {&__pyx_n_s_flags, __pyx_k_flags, sizeof(__pyx_k_flags), 0, 0, 1, 1}, {&__pyx_n_s_float32, __pyx_k_float32, sizeof(__pyx_k_float32), 0, 0, 1, 1}, {&__pyx_n_s_float32_t, __pyx_k_float32_t, sizeof(__pyx_k_float32_t), 0, 0, 1, 1}, {&__pyx_n_s_float64, __pyx_k_float64, sizeof(__pyx_k_float64), 0, 0, 1, 1}, {&__pyx_n_s_float64_t, __pyx_k_float64_t, sizeof(__pyx_k_float64_t), 0, 0, 1, 1}, {&__pyx_kp_s_float_complex, __pyx_k_float_complex, sizeof(__pyx_k_float_complex), 0, 0, 1, 0}, {&__pyx_n_s_format, __pyx_k_format, sizeof(__pyx_k_format), 0, 0, 1, 1}, {&__pyx_n_s_fortran, __pyx_k_fortran, sizeof(__pyx_k_fortran), 0, 0, 1, 1}, {&__pyx_n_u_fortran, __pyx_k_fortran, sizeof(__pyx_k_fortran), 0, 1, 0, 1}, {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1}, {&__pyx_kp_s_got_differing_extents_in_dimensi, __pyx_k_got_differing_extents_in_dimensi, sizeof(__pyx_k_got_differing_extents_in_dimensi), 0, 0, 1, 0}, {&__pyx_n_s_i, __pyx_k_i, sizeof(__pyx_k_i), 0, 0, 1, 1}, {&__pyx_n_s_id, __pyx_k_id, sizeof(__pyx_k_id), 0, 0, 1, 1}, {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, {&__pyx_n_s_input_len, __pyx_k_input_len, sizeof(__pyx_k_input_len), 0, 0, 1, 1}, {&__pyx_n_s_itemsize, __pyx_k_itemsize, sizeof(__pyx_k_itemsize), 0, 0, 1, 1}, {&__pyx_kp_s_itemsize_0_for_cython_array, __pyx_k_itemsize_0_for_cython_array, sizeof(__pyx_k_itemsize_0_for_cython_array), 0, 0, 1, 0}, {&__pyx_n_s_join, __pyx_k_join, sizeof(__pyx_k_join), 0, 0, 1, 1}, {&__pyx_n_s_kind, __pyx_k_kind, sizeof(__pyx_k_kind), 0, 0, 1, 1}, {&__pyx_n_s_kwargs, __pyx_k_kwargs, sizeof(__pyx_k_kwargs), 0, 0, 1, 1}, {&__pyx_n_s_level, __pyx_k_level, sizeof(__pyx_k_level), 0, 0, 1, 1}, {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, {&__pyx_n_s_max_level, __pyx_k_max_level, sizeof(__pyx_k_max_level), 0, 0, 1, 1}, {&__pyx_n_s_memview, __pyx_k_memview, sizeof(__pyx_k_memview), 0, 0, 1, 1}, {&__pyx_n_s_mode, __pyx_k_mode, sizeof(__pyx_k_mode), 0, 0, 1, 1}, {&__pyx_n_s_msg, __pyx_k_msg, sizeof(__pyx_k_msg), 0, 0, 1, 1}, {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1}, {&__pyx_kp_u_ndarray_is_not_C_contiguous, __pyx_k_ndarray_is_not_C_contiguous, sizeof(__pyx_k_ndarray_is_not_C_contiguous), 0, 1, 0, 0}, {&__pyx_kp_u_ndarray_is_not_Fortran_contiguou, __pyx_k_ndarray_is_not_Fortran_contiguou, sizeof(__pyx_k_ndarray_is_not_Fortran_contiguou), 0, 1, 0, 0}, {&__pyx_n_s_ndim, __pyx_k_ndim, sizeof(__pyx_k_ndim), 0, 0, 1, 1}, {&__pyx_n_s_new, __pyx_k_new, sizeof(__pyx_k_new), 0, 0, 1, 1}, {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0}, {&__pyx_n_s_np, __pyx_k_np, sizeof(__pyx_k_np), 0, 0, 1, 1}, {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1}, {&__pyx_kp_u_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 1, 0, 0}, {&__pyx_kp_u_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 1, 0, 0}, {&__pyx_n_s_obj, __pyx_k_obj, sizeof(__pyx_k_obj), 0, 0, 1, 1}, {&__pyx_n_s_output_len, __pyx_k_output_len, sizeof(__pyx_k_output_len), 0, 0, 1, 1}, {&__pyx_n_s_pack, __pyx_k_pack, sizeof(__pyx_k_pack), 0, 0, 1, 1}, {&__pyx_n_s_pickle, __pyx_k_pickle, sizeof(__pyx_k_pickle), 0, 0, 1, 1}, {&__pyx_n_s_pywt__extensions__swt, __pyx_k_pywt__extensions__swt, sizeof(__pyx_k_pywt__extensions__swt), 0, 0, 1, 1}, {&__pyx_kp_s_pywt__extensions__swt_pyx, __pyx_k_pywt__extensions__swt_pyx, sizeof(__pyx_k_pywt__extensions__swt_pyx), 0, 0, 1, 0}, {&__pyx_n_s_pyx_PickleError, __pyx_k_pyx_PickleError, sizeof(__pyx_k_pyx_PickleError), 0, 0, 1, 1}, {&__pyx_n_s_pyx_checksum, __pyx_k_pyx_checksum, sizeof(__pyx_k_pyx_checksum), 0, 0, 1, 1}, {&__pyx_n_s_pyx_getbuffer, __pyx_k_pyx_getbuffer, sizeof(__pyx_k_pyx_getbuffer), 0, 0, 1, 1}, {&__pyx_n_s_pyx_result, __pyx_k_pyx_result, sizeof(__pyx_k_pyx_result), 0, 0, 1, 1}, {&__pyx_n_s_pyx_state, __pyx_k_pyx_state, sizeof(__pyx_k_pyx_state), 0, 0, 1, 1}, {&__pyx_n_s_pyx_type, __pyx_k_pyx_type, sizeof(__pyx_k_pyx_type), 0, 0, 1, 1}, {&__pyx_n_s_pyx_unpickle_Enum, __pyx_k_pyx_unpickle_Enum, sizeof(__pyx_k_pyx_unpickle_Enum), 0, 0, 1, 1}, {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, {&__pyx_n_s_ret, __pyx_k_ret, sizeof(__pyx_k_ret), 0, 0, 1, 1}, {&__pyx_n_s_retval, __pyx_k_retval, sizeof(__pyx_k_retval), 0, 0, 1, 1}, {&__pyx_n_s_s, __pyx_k_s, sizeof(__pyx_k_s), 0, 0, 1, 1}, {&__pyx_kp_u_s_2, __pyx_k_s_2, sizeof(__pyx_k_s_2), 0, 1, 0, 0}, {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, {&__pyx_n_s_shape, __pyx_k_shape, sizeof(__pyx_k_shape), 0, 0, 1, 1}, {&__pyx_n_s_signatures, __pyx_k_signatures, sizeof(__pyx_k_signatures), 0, 0, 1, 1}, {&__pyx_n_s_size, __pyx_k_size, sizeof(__pyx_k_size), 0, 0, 1, 1}, {&__pyx_n_s_split, __pyx_k_split, sizeof(__pyx_k_split), 0, 0, 1, 1}, {&__pyx_n_s_start, __pyx_k_start, sizeof(__pyx_k_start), 0, 0, 1, 1}, {&__pyx_n_s_start_level, __pyx_k_start_level, sizeof(__pyx_k_start_level), 0, 0, 1, 1}, {&__pyx_kp_u_start_level_must_be_less_than_d, __pyx_k_start_level_must_be_less_than_d, sizeof(__pyx_k_start_level_must_be_less_than_d), 0, 1, 0, 0}, {&__pyx_n_s_step, __pyx_k_step, sizeof(__pyx_k_step), 0, 0, 1, 1}, {&__pyx_n_s_stop, __pyx_k_stop, sizeof(__pyx_k_stop), 0, 0, 1, 1}, {&__pyx_kp_s_strided_and_direct, __pyx_k_strided_and_direct, sizeof(__pyx_k_strided_and_direct), 0, 0, 1, 0}, {&__pyx_kp_s_strided_and_direct_or_indirect, __pyx_k_strided_and_direct_or_indirect, sizeof(__pyx_k_strided_and_direct_or_indirect), 0, 0, 1, 0}, {&__pyx_kp_s_strided_and_indirect, __pyx_k_strided_and_indirect, sizeof(__pyx_k_strided_and_indirect), 0, 0, 1, 0}, {&__pyx_kp_s_stringsource, __pyx_k_stringsource, sizeof(__pyx_k_stringsource), 0, 0, 1, 0}, {&__pyx_n_s_strip, __pyx_k_strip, sizeof(__pyx_k_strip), 0, 0, 1, 1}, {&__pyx_n_s_struct, __pyx_k_struct, sizeof(__pyx_k_struct), 0, 0, 1, 1}, {&__pyx_n_s_swt, __pyx_k_swt, sizeof(__pyx_k_swt), 0, 0, 1, 1}, {&__pyx_n_s_swt_max_level, __pyx_k_swt_max_level, sizeof(__pyx_k_swt_max_level), 0, 0, 1, 1}, {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, {&__pyx_n_s_trim_approx, __pyx_k_trim_approx, sizeof(__pyx_k_trim_approx), 0, 0, 1, 1}, {&__pyx_kp_s_unable_to_allocate_array_data, __pyx_k_unable_to_allocate_array_data, sizeof(__pyx_k_unable_to_allocate_array_data), 0, 0, 1, 0}, {&__pyx_kp_s_unable_to_allocate_shape_and_str, __pyx_k_unable_to_allocate_shape_and_str, sizeof(__pyx_k_unable_to_allocate_shape_and_str), 0, 0, 1, 0}, {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0}, {&__pyx_n_s_unpack, __pyx_k_unpack, sizeof(__pyx_k_unpack), 0, 0, 1, 1}, {&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1}, {&__pyx_n_s_w, __pyx_k_w, sizeof(__pyx_k_w), 0, 0, 1, 1}, {&__pyx_n_s_warn, __pyx_k_warn, sizeof(__pyx_k_warn), 0, 0, 1, 1}, {&__pyx_n_s_warnings, __pyx_k_warnings, sizeof(__pyx_k_warnings), 0, 0, 1, 1}, {&__pyx_n_s_wavelet, __pyx_k_wavelet, sizeof(__pyx_k_wavelet), 0, 0, 1, 1}, {&__pyx_n_s_zeros, __pyx_k_zeros, sizeof(__pyx_k_zeros), 0, 0, 1, 1}, {0, 0, 0, 0, 0, 0, 0} }; static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(0, 42, __pyx_L1_error) __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 52, __pyx_L1_error) __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 52, __pyx_L1_error) __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(0, 80, __pyx_L1_error) __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 1038, __pyx_L1_error) __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s_MemoryError); if (!__pyx_builtin_MemoryError) __PYX_ERR(2, 148, __pyx_L1_error) __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(2, 151, __pyx_L1_error) __pyx_builtin_Ellipsis = __Pyx_GetBuiltinName(__pyx_n_s_Ellipsis); if (!__pyx_builtin_Ellipsis) __PYX_ERR(2, 404, __pyx_L1_error) __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_n_s_id); if (!__pyx_builtin_id) __PYX_ERR(2, 613, __pyx_L1_error) __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) __PYX_ERR(2, 832, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; } static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); /* "pywt/_extensions/_swt.pyx":42 * """ * if input_len < 1: * raise ValueError("Cannot apply swt to a size 0 signal.") # <<<<<<<<<<<<<< * max_level = common.swt_max_level(input_len) * if max_level == 0: */ __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_u_Cannot_apply_swt_to_a_size_0_sig); if (unlikely(!__pyx_tuple_)) __PYX_ERR(0, 42, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple_); __Pyx_GIVEREF(__pyx_tuple_); /* "pywt/_extensions/_swt.pyx":52 * * * def swt(cdata_t[::1] data, Wavelet wavelet, size_t level, size_t start_level, # <<<<<<<<<<<<<< * bool trim_approx=False): * cdef cdata_t[::1] cA, cD */ __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_No_matching_signature_found); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__4); __Pyx_GIVEREF(__pyx_tuple__4); __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_s_Function_call_with_ambiguous_arg); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__5); __Pyx_GIVEREF(__pyx_tuple__5); /* "pywt/_extensions/_swt.pyx":61 * * if data.size % 2: * raise ValueError("Length of data must be even.") # <<<<<<<<<<<<<< * if data.size < 1: * raise ValueError("Data must have non-zero size") */ __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_u_Length_of_data_must_be_even); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(0, 61, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__6); __Pyx_GIVEREF(__pyx_tuple__6); /* "pywt/_extensions/_swt.pyx":63 * raise ValueError("Length of data must be even.") * if data.size < 1: * raise ValueError("Data must have non-zero size") # <<<<<<<<<<<<<< * * if level < 1: */ __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_u_Data_must_have_non_zero_size); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(0, 63, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__7); __Pyx_GIVEREF(__pyx_tuple__7); /* "pywt/_extensions/_swt.pyx":66 * * if level < 1: * raise ValueError("Level value must be greater than zero.") # <<<<<<<<<<<<<< * if start_level >= common.swt_max_level(data.size): * raise ValueError("start_level must be less than %d." % */ __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_u_Level_value_must_be_greater_than); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(0, 66, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__8); __Pyx_GIVEREF(__pyx_tuple__8); /* "pywt/_extensions/_swt.pyx":80 * output_len = common.swt_buffer_length(data.size) * if output_len < 1: * raise RuntimeError("Invalid output length.") # <<<<<<<<<<<<<< * * ret = [] */ __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_u_Invalid_output_length); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(0, 80, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__9); __Pyx_GIVEREF(__pyx_tuple__9); /* "pywt/_extensions/_swt.pyx":99 * &cD[0], output_len, i) * if retval < 0: * raise RuntimeError("C swt failed.") # <<<<<<<<<<<<<< * IF HAVE_C99_CPLX: * if cdata_t is np.complex128_t: */ __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_u_C_swt_failed); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(0, 99, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__10); __Pyx_GIVEREF(__pyx_tuple__10); /* "pywt/_extensions/_swt.pyx":171 * * if data.shape[axis] % 2: * raise ValueError("Length of data must be even along the transform axis.") # <<<<<<<<<<<<<< * if data.shape[axis] < 1: * raise ValueError("Data must have non-zero size along the transform axis.") */ __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_u_Length_of_data_must_be_even_alon); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(0, 171, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__11); __Pyx_GIVEREF(__pyx_tuple__11); /* "pywt/_extensions/_swt.pyx":173 * raise ValueError("Length of data must be even along the transform axis.") * if data.shape[axis] < 1: * raise ValueError("Data must have non-zero size along the transform axis.") # <<<<<<<<<<<<<< * * if level < 1: */ __pyx_tuple__12 = PyTuple_Pack(1, __pyx_kp_u_Data_must_have_non_zero_size_alo); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 173, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__12); __Pyx_GIVEREF(__pyx_tuple__12); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":272 * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< * * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) */ __pyx_tuple__13 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(1, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__13); __Pyx_GIVEREF(__pyx_tuple__13); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":276 * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< * * info.buf = PyArray_DATA(self) */ __pyx_tuple__14 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(1, 276, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__14); __Pyx_GIVEREF(__pyx_tuple__14); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":306 * if ((descr.byteorder == c'>' and little_endian) or * (descr.byteorder == c'<' and not little_endian)): * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< * if t == NPY_BYTE: f = "b" * elif t == NPY_UBYTE: f = "B" */ __pyx_tuple__15 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(1, 306, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__15); __Pyx_GIVEREF(__pyx_tuple__15); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":856 * * if (end - f) - (new_offset - offset[0]) < 15: * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") # <<<<<<<<<<<<<< * * if ((child.byteorder == c'>' and little_endian) or */ __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(1, 856, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__16); __Pyx_GIVEREF(__pyx_tuple__16); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":880 * t = child.type_num * if end - f < 5: * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< * * # Until ticket #99 is fixed, use integers to avoid warnings */ __pyx_tuple__17 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(1, 880, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__17); __Pyx_GIVEREF(__pyx_tuple__17); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1038 * _import_array() * except Exception: * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< * * cdef inline int import_umath() except -1: */ __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_u_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(1, 1038, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__18); __Pyx_GIVEREF(__pyx_tuple__18); /* "../../../miniconda3/envs/pyir/lib/python3.7/site-packages/Cython/Includes/numpy/__init__.pxd":1044 * _import_umath() * except Exception: * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< * * cdef inline int import_ufunc() except -1: */ __pyx_tuple__19 = PyTuple_Pack(1, __pyx_kp_u_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(1, 1044, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__19); __Pyx_GIVEREF(__pyx_tuple__19); /* "View.MemoryView":133 * * if not self.ndim: * raise ValueError("Empty shape tuple for cython.array") # <<<<<<<<<<<<<< * * if itemsize <= 0: */ __pyx_tuple__20 = PyTuple_Pack(1, __pyx_kp_s_Empty_shape_tuple_for_cython_arr); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(2, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__20); __Pyx_GIVEREF(__pyx_tuple__20); /* "View.MemoryView":136 * * if itemsize <= 0: * raise ValueError("itemsize <= 0 for cython.array") # <<<<<<<<<<<<<< * * if not isinstance(format, bytes): */ __pyx_tuple__21 = PyTuple_Pack(1, __pyx_kp_s_itemsize_0_for_cython_array); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(2, 136, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__21); __Pyx_GIVEREF(__pyx_tuple__21); /* "View.MemoryView":148 * * if not self._shape: * raise MemoryError("unable to allocate shape and strides.") # <<<<<<<<<<<<<< * * */ __pyx_tuple__22 = PyTuple_Pack(1, __pyx_kp_s_unable_to_allocate_shape_and_str); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(2, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__22); __Pyx_GIVEREF(__pyx_tuple__22); /* "View.MemoryView":176 * self.data = malloc(self.len) * if not self.data: * raise MemoryError("unable to allocate array data.") # <<<<<<<<<<<<<< * * if self.dtype_is_object: */ __pyx_tuple__23 = PyTuple_Pack(1, __pyx_kp_s_unable_to_allocate_array_data); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(2, 176, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__23); __Pyx_GIVEREF(__pyx_tuple__23); /* "View.MemoryView":192 * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS * if not (flags & bufmode): * raise ValueError("Can only create a buffer that is contiguous in memory.") # <<<<<<<<<<<<<< * info.buf = self.data * info.len = self.len */ __pyx_tuple__24 = PyTuple_Pack(1, __pyx_kp_s_Can_only_create_a_buffer_that_is); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(2, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__24); __Pyx_GIVEREF(__pyx_tuple__24); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ __pyx_tuple__25 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(2, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__25); __Pyx_GIVEREF(__pyx_tuple__25); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ __pyx_tuple__26 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(2, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__26); __Pyx_GIVEREF(__pyx_tuple__26); /* "View.MemoryView":418 * def __setitem__(memoryview self, object index, object value): * if self.view.readonly: * raise TypeError("Cannot assign to read-only memoryview") # <<<<<<<<<<<<<< * * have_slices, index = _unellipsify(index, self.view.ndim) */ __pyx_tuple__27 = PyTuple_Pack(1, __pyx_kp_s_Cannot_assign_to_read_only_memor); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(2, 418, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__27); __Pyx_GIVEREF(__pyx_tuple__27); /* "View.MemoryView":495 * result = struct.unpack(self.view.format, bytesitem) * except struct.error: * raise ValueError("Unable to convert item to object") # <<<<<<<<<<<<<< * else: * if len(self.view.format) == 1: */ __pyx_tuple__28 = PyTuple_Pack(1, __pyx_kp_s_Unable_to_convert_item_to_object); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(2, 495, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__28); __Pyx_GIVEREF(__pyx_tuple__28); /* "View.MemoryView":520 * def __getbuffer__(self, Py_buffer *info, int flags): * if flags & PyBUF_WRITABLE and self.view.readonly: * raise ValueError("Cannot create writable memory view from read-only memoryview") # <<<<<<<<<<<<<< * * if flags & PyBUF_ND: */ __pyx_tuple__29 = PyTuple_Pack(1, __pyx_kp_s_Cannot_create_writable_memory_vi); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(2, 520, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__29); __Pyx_GIVEREF(__pyx_tuple__29); /* "View.MemoryView":570 * if self.view.strides == NULL: * * raise ValueError("Buffer view does not expose strides") # <<<<<<<<<<<<<< * * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) */ __pyx_tuple__30 = PyTuple_Pack(1, __pyx_kp_s_Buffer_view_does_not_expose_stri); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(2, 570, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__30); __Pyx_GIVEREF(__pyx_tuple__30); /* "View.MemoryView":577 * def suboffsets(self): * if self.view.suboffsets == NULL: * return (-1,) * self.view.ndim # <<<<<<<<<<<<<< * * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]]) */ __pyx_tuple__31 = PyTuple_New(1); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(2, 577, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__31); __Pyx_INCREF(__pyx_int_neg_1); __Pyx_GIVEREF(__pyx_int_neg_1); PyTuple_SET_ITEM(__pyx_tuple__31, 0, __pyx_int_neg_1); __Pyx_GIVEREF(__pyx_tuple__31); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ __pyx_tuple__32 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(2, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__32); __Pyx_GIVEREF(__pyx_tuple__32); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ __pyx_tuple__33 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(2, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__33); __Pyx_GIVEREF(__pyx_tuple__33); /* "View.MemoryView":682 * if item is Ellipsis: * if not seen_ellipsis: * result.extend([slice(None)] * (ndim - len(tup) + 1)) # <<<<<<<<<<<<<< * seen_ellipsis = True * else: */ __pyx_slice__34 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__34)) __PYX_ERR(2, 682, __pyx_L1_error) __Pyx_GOTREF(__pyx_slice__34); __Pyx_GIVEREF(__pyx_slice__34); /* "View.MemoryView":703 * for suboffset in suboffsets[:ndim]: * if suboffset >= 0: * raise ValueError("Indirect dimensions not supported") # <<<<<<<<<<<<<< * * */ __pyx_tuple__35 = PyTuple_Pack(1, __pyx_kp_s_Indirect_dimensions_not_supporte); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(2, 703, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__35); __Pyx_GIVEREF(__pyx_tuple__35); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") */ __pyx_tuple__36 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(2, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__36); __Pyx_GIVEREF(__pyx_tuple__36); /* "(tree fragment)":4 * raise TypeError("no default __reduce__ due to non-trivial __cinit__") * def __setstate_cython__(self, __pyx_state): * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< */ __pyx_tuple__37 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(2, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__37); __Pyx_GIVEREF(__pyx_tuple__37); /* "pywt/_extensions/_swt.pyx":16 * include "config.pxi" * * def swt_max_level(size_t input_len): # <<<<<<<<<<<<<< * """ * swt_max_level(input_len) */ __pyx_tuple__43 = PyTuple_Pack(3, __pyx_n_s_input_len, __pyx_n_s_input_len, __pyx_n_s_max_level); if (unlikely(!__pyx_tuple__43)) __PYX_ERR(0, 16, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__43); __Pyx_GIVEREF(__pyx_tuple__43); __pyx_codeobj__44 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__43, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pywt__extensions__swt_pyx, __pyx_n_s_swt_max_level, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__44)) __PYX_ERR(0, 16, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":52 * * * def swt(cdata_t[::1] data, Wavelet wavelet, size_t level, size_t start_level, # <<<<<<<<<<<<<< * bool trim_approx=False): * cdef cdata_t[::1] cA, cD */ __pyx_tuple__45 = PyTuple_Pack(15, __pyx_n_s_data, __pyx_n_s_wavelet, __pyx_n_s_level, __pyx_n_s_start_level, __pyx_n_s_trim_approx, __pyx_n_s_cA, __pyx_n_s_cD, __pyx_n_s_w, __pyx_n_s_retval, __pyx_n_s_end_level, __pyx_n_s_data_size, __pyx_n_s_output_len, __pyx_n_s_i, __pyx_n_s_msg, __pyx_n_s_ret); if (unlikely(!__pyx_tuple__45)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__45); __Pyx_GIVEREF(__pyx_tuple__45); __pyx_codeobj__46 = (PyObject*)__Pyx_PyCode_New(5, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__45, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pywt__extensions__swt_pyx, __pyx_n_s_swt, 52, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__46)) __PYX_ERR(0, 52, __pyx_L1_error) /* "View.MemoryView":286 * return self.name * * cdef generic = Enum("") # <<<<<<<<<<<<<< * cdef strided = Enum("") # default * cdef indirect = Enum("") */ __pyx_tuple__47 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct_or_indirect); if (unlikely(!__pyx_tuple__47)) __PYX_ERR(2, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__47); __Pyx_GIVEREF(__pyx_tuple__47); /* "View.MemoryView":287 * * cdef generic = Enum("") * cdef strided = Enum("") # default # <<<<<<<<<<<<<< * cdef indirect = Enum("") * */ __pyx_tuple__48 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct); if (unlikely(!__pyx_tuple__48)) __PYX_ERR(2, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__48); __Pyx_GIVEREF(__pyx_tuple__48); /* "View.MemoryView":288 * cdef generic = Enum("") * cdef strided = Enum("") # default * cdef indirect = Enum("") # <<<<<<<<<<<<<< * * */ __pyx_tuple__49 = PyTuple_Pack(1, __pyx_kp_s_strided_and_indirect); if (unlikely(!__pyx_tuple__49)) __PYX_ERR(2, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__49); __Pyx_GIVEREF(__pyx_tuple__49); /* "View.MemoryView":291 * * * cdef contiguous = Enum("") # <<<<<<<<<<<<<< * cdef indirect_contiguous = Enum("") * */ __pyx_tuple__50 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_direct); if (unlikely(!__pyx_tuple__50)) __PYX_ERR(2, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__50); __Pyx_GIVEREF(__pyx_tuple__50); /* "View.MemoryView":292 * * cdef contiguous = Enum("") * cdef indirect_contiguous = Enum("") # <<<<<<<<<<<<<< * * */ __pyx_tuple__51 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_indirect); if (unlikely(!__pyx_tuple__51)) __PYX_ERR(2, 292, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__51); __Pyx_GIVEREF(__pyx_tuple__51); /* "(tree fragment)":1 * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_PickleError * cdef object __pyx_result */ __pyx_tuple__52 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__52)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__52); __Pyx_GIVEREF(__pyx_tuple__52); __pyx_codeobj__53 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Enum, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__53)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_RefNannyFinishContext(); return -1; } static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(0, 1, __pyx_L1_error); __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_4 = PyInt_FromLong(4); if (unlikely(!__pyx_int_4)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_184977713 = PyInt_FromLong(184977713L); if (unlikely(!__pyx_int_184977713)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) __PYX_ERR(0, 1, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; } static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/ static int __Pyx_modinit_global_init_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0); /*--- Global init code ---*/ generic = Py_None; Py_INCREF(Py_None); strided = Py_None; Py_INCREF(Py_None); indirect = Py_None; Py_INCREF(Py_None); contiguous = Py_None; Py_INCREF(Py_None); indirect_contiguous = Py_None; Py_INCREF(Py_None); __Pyx_RefNannyFinishContext(); return 0; } static int __Pyx_modinit_variable_export_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0); /*--- Variable export code ---*/ __Pyx_RefNannyFinishContext(); return 0; } static int __Pyx_modinit_function_export_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); /*--- Function export code ---*/ __Pyx_RefNannyFinishContext(); return 0; } static int __Pyx_modinit_type_init_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); /*--- Type init code ---*/ __pyx_vtabptr_array = &__pyx_vtable_array; __pyx_vtable_array.get_memview = (PyObject *(*)(struct __pyx_array_obj *))__pyx_array_get_memview; if (PyType_Ready(&__pyx_type___pyx_array) < 0) __PYX_ERR(2, 105, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type___pyx_array.tp_print = 0; #endif if (__Pyx_SetVtable(__pyx_type___pyx_array.tp_dict, __pyx_vtabptr_array) < 0) __PYX_ERR(2, 105, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_array) < 0) __PYX_ERR(2, 105, __pyx_L1_error) __pyx_array_type = &__pyx_type___pyx_array; if (PyType_Ready(&__pyx_type___pyx_MemviewEnum) < 0) __PYX_ERR(2, 279, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type___pyx_MemviewEnum.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type___pyx_MemviewEnum.tp_dictoffset && __pyx_type___pyx_MemviewEnum.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type___pyx_MemviewEnum.tp_getattro = __Pyx_PyObject_GenericGetAttr; } if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_MemviewEnum) < 0) __PYX_ERR(2, 279, __pyx_L1_error) __pyx_MemviewEnum_type = &__pyx_type___pyx_MemviewEnum; __pyx_vtabptr_memoryview = &__pyx_vtable_memoryview; __pyx_vtable_memoryview.get_item_pointer = (char *(*)(struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_get_item_pointer; __pyx_vtable_memoryview.is_slice = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_is_slice; __pyx_vtable_memoryview.setitem_slice_assignment = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *, PyObject *))__pyx_memoryview_setitem_slice_assignment; __pyx_vtable_memoryview.setitem_slice_assign_scalar = (PyObject *(*)(struct __pyx_memoryview_obj *, struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_setitem_slice_assign_scalar; __pyx_vtable_memoryview.setitem_indexed = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *, PyObject *))__pyx_memoryview_setitem_indexed; __pyx_vtable_memoryview.convert_item_to_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *))__pyx_memoryview_convert_item_to_object; __pyx_vtable_memoryview.assign_item_from_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *, PyObject *))__pyx_memoryview_assign_item_from_object; if (PyType_Ready(&__pyx_type___pyx_memoryview) < 0) __PYX_ERR(2, 330, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type___pyx_memoryview.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type___pyx_memoryview.tp_dictoffset && __pyx_type___pyx_memoryview.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type___pyx_memoryview.tp_getattro = __Pyx_PyObject_GenericGetAttr; } if (__Pyx_SetVtable(__pyx_type___pyx_memoryview.tp_dict, __pyx_vtabptr_memoryview) < 0) __PYX_ERR(2, 330, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_memoryview) < 0) __PYX_ERR(2, 330, __pyx_L1_error) __pyx_memoryview_type = &__pyx_type___pyx_memoryview; __pyx_vtabptr__memoryviewslice = &__pyx_vtable__memoryviewslice; __pyx_vtable__memoryviewslice.__pyx_base = *__pyx_vtabptr_memoryview; __pyx_vtable__memoryviewslice.__pyx_base.convert_item_to_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *))__pyx_memoryviewslice_convert_item_to_object; __pyx_vtable__memoryviewslice.__pyx_base.assign_item_from_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *, PyObject *))__pyx_memoryviewslice_assign_item_from_object; __pyx_type___pyx_memoryviewslice.tp_base = __pyx_memoryview_type; if (PyType_Ready(&__pyx_type___pyx_memoryviewslice) < 0) __PYX_ERR(2, 965, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type___pyx_memoryviewslice.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type___pyx_memoryviewslice.tp_dictoffset && __pyx_type___pyx_memoryviewslice.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type___pyx_memoryviewslice.tp_getattro = __Pyx_PyObject_GenericGetAttr; } if (__Pyx_SetVtable(__pyx_type___pyx_memoryviewslice.tp_dict, __pyx_vtabptr__memoryviewslice) < 0) __PYX_ERR(2, 965, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_memoryviewslice) < 0) __PYX_ERR(2, 965, __pyx_L1_error) __pyx_memoryviewslice_type = &__pyx_type___pyx_memoryviewslice; __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_RefNannyFinishContext(); return -1; } static int __Pyx_modinit_type_import_code(void) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); /*--- Type import code ---*/ __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type", #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 sizeof(PyTypeObject), #else sizeof(PyHeapTypeObject), #endif __Pyx_ImportType_CheckSize_Warn); if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(3, 9, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 8, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_ptype_7cpython_4bool_bool = __Pyx_ImportType(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "bool", sizeof(PyBoolObject), __Pyx_ImportType_CheckSize_Warn); if (!__pyx_ptype_7cpython_4bool_bool) __PYX_ERR(4, 8, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 15, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_ptype_7cpython_7complex_complex = __Pyx_ImportType(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "complex", sizeof(PyComplexObject), __Pyx_ImportType_CheckSize_Warn); if (!__pyx_ptype_7cpython_7complex_complex) __PYX_ERR(5, 15, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 206, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore); if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(1, 206, __pyx_L1_error) __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Warn); if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(1, 229, __pyx_L1_error) __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Warn); if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(1, 233, __pyx_L1_error) __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore); if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(1, 242, __pyx_L1_error) __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Warn); if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(1, 918, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyImport_ImportModule("pywt._extensions._pywt"); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 23, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet = __Pyx_ImportType(__pyx_t_1, "pywt._extensions._pywt", "Wavelet", sizeof(struct WaveletObject), __Pyx_ImportType_CheckSize_Warn); if (!__pyx_ptype_4pywt_11_extensions_5_pywt_Wavelet) __PYX_ERR(6, 23, __pyx_L1_error) __pyx_ptype_4pywt_11_extensions_5_pywt_ContinuousWavelet = __Pyx_ImportType(__pyx_t_1, "pywt._extensions._pywt", "ContinuousWavelet", sizeof(struct ContinuousWaveletObject), __Pyx_ImportType_CheckSize_Warn); if (!__pyx_ptype_4pywt_11_extensions_5_pywt_ContinuousWavelet) __PYX_ERR(6, 29, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); return -1; } static int __Pyx_modinit_variable_import_code(void) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0); /*--- Variable import code ---*/ __pyx_t_1 = PyImport_ImportModule("pywt._extensions._pywt"); if (!__pyx_t_1) __PYX_ERR(0, 1, __pyx_L1_error) if (__Pyx_ImportVoidPtr(__pyx_t_1, "have_c99_complex", (void **)&__pyx_vp_4pywt_11_extensions_5_pywt_have_c99_complex, "int") < 0) __PYX_ERR(0, 1, __pyx_L1_error) Py_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); return -1; } static int __Pyx_modinit_function_import_code(void) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); /*--- Function import code ---*/ __pyx_t_1 = PyImport_ImportModule("pywt._extensions._pywt"); if (!__pyx_t_1) __PYX_ERR(0, 1, __pyx_L1_error) if (__Pyx_ImportFunction(__pyx_t_1, "_check_dtype", (void (**)(void))&__pyx_f_4pywt_11_extensions_5_pywt__check_dtype, "PyArray_Descr *(PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error) if (__Pyx_ImportFunction(__pyx_t_1, "c_wavelet_from_object", (void (**)(void))&__pyx_f_4pywt_11_extensions_5_pywt_c_wavelet_from_object, "PyObject *(PyObject *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error) Py_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); return -1; } #if PY_MAJOR_VERSION < 3 #ifdef CYTHON_NO_PYINIT_EXPORT #define __Pyx_PyMODINIT_FUNC void #else #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC #endif #else #ifdef CYTHON_NO_PYINIT_EXPORT #define __Pyx_PyMODINIT_FUNC PyObject * #else #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC #endif #endif #if PY_MAJOR_VERSION < 3 __Pyx_PyMODINIT_FUNC init_swt(void) CYTHON_SMALL_CODE; /*proto*/ __Pyx_PyMODINIT_FUNC init_swt(void) #else __Pyx_PyMODINIT_FUNC PyInit__swt(void) CYTHON_SMALL_CODE; /*proto*/ __Pyx_PyMODINIT_FUNC PyInit__swt(void) #if CYTHON_PEP489_MULTI_PHASE_INIT { return PyModuleDef_Init(&__pyx_moduledef); } static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) { #if PY_VERSION_HEX >= 0x030700A1 static PY_INT64_T main_interpreter_id = -1; PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp); if (main_interpreter_id == -1) { main_interpreter_id = current_id; return (unlikely(current_id == -1)) ? -1 : 0; } else if (unlikely(main_interpreter_id != current_id)) #else static PyInterpreterState *main_interpreter = NULL; PyInterpreterState *current_interpreter = PyThreadState_Get()->interp; if (!main_interpreter) { main_interpreter = current_interpreter; } else if (unlikely(main_interpreter != current_interpreter)) #endif { PyErr_SetString( PyExc_ImportError, "Interpreter change detected - this module can only be loaded into one interpreter per process."); return -1; } return 0; } static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) { PyObject *value = PyObject_GetAttrString(spec, from_name); int result = 0; if (likely(value)) { if (allow_none || value != Py_None) { result = PyDict_SetItemString(moddict, to_name, value); } Py_DECREF(value); } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) { PyErr_Clear(); } else { result = -1; } return result; } static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) { PyObject *module = NULL, *moddict, *modname; if (__Pyx_check_single_interpreter()) return NULL; if (__pyx_m) return __Pyx_NewRef(__pyx_m); modname = PyObject_GetAttrString(spec, "name"); if (unlikely(!modname)) goto bad; module = PyModule_NewObject(modname); Py_DECREF(modname); if (unlikely(!module)) goto bad; moddict = PyModule_GetDict(module); if (unlikely(!moddict)) goto bad; if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad; if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad; if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad; if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad; return module; bad: Py_XDECREF(module); return NULL; } static CYTHON_SMALL_CODE int __pyx_pymod_exec__swt(PyObject *__pyx_pyinit_module) #endif #endif { PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; static PyThread_type_lock __pyx_t_5[8]; __Pyx_RefNannyDeclarations #if CYTHON_PEP489_MULTI_PHASE_INIT if (__pyx_m) { if (__pyx_m == __pyx_pyinit_module) return 0; PyErr_SetString(PyExc_RuntimeError, "Module '_swt' has already been imported. Re-initialisation is not supported."); return -1; } #elif PY_MAJOR_VERSION >= 3 if (__pyx_m) return __Pyx_NewRef(__pyx_m); #endif #if CYTHON_REFNANNY __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); if (!__Pyx_RefNanny) { PyErr_Clear(); __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); if (!__Pyx_RefNanny) Py_FatalError("failed to import 'refnanny' module"); } #endif __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit__swt(void)", 0); if (__Pyx_check_binary_version() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #ifdef __Pxy_PyFrame_Initialize_Offsets __Pxy_PyFrame_Initialize_Offsets(); #endif __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error) __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error) #ifdef __Pyx_CyFunction_USED if (__pyx_CyFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_FusedFunction_USED if (__pyx_FusedFunction_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_Coroutine_USED if (__pyx_Coroutine_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_Generator_USED if (__pyx_Generator_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_AsyncGen_USED if (__pyx_AsyncGen_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif #ifdef __Pyx_StopAsyncIteration_USED if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif /*--- Library function declarations ---*/ /*--- Threads initialization code ---*/ #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS #ifdef WITH_THREAD /* Python build with threading support? */ PyEval_InitThreads(); #endif #endif /*--- Module creation code ---*/ #if CYTHON_PEP489_MULTI_PHASE_INIT __pyx_m = __pyx_pyinit_module; Py_INCREF(__pyx_m); #else #if PY_MAJOR_VERSION < 3 __pyx_m = Py_InitModule4("_swt", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); #else __pyx_m = PyModule_Create(&__pyx_moduledef); #endif if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error) #endif __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error) Py_INCREF(__pyx_d); __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error) Py_INCREF(__pyx_b); __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error) Py_INCREF(__pyx_cython_runtime); if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error); /*--- Initialize various global constants etc. ---*/ if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif if (__pyx_module_is_main_pywt___extensions___swt) { if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name_2, __pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error) } #if PY_MAJOR_VERSION >= 3 { PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error) if (!PyDict_GetItemString(modules, "pywt._extensions._swt")) { if (unlikely(PyDict_SetItemString(modules, "pywt._extensions._swt", __pyx_m) < 0)) __PYX_ERR(0, 1, __pyx_L1_error) } } #endif /*--- Builtin init code ---*/ if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; /*--- Constants init code ---*/ if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; /*--- Global type/function init code ---*/ (void)__Pyx_modinit_global_init_code(); (void)__Pyx_modinit_variable_export_code(); (void)__Pyx_modinit_function_export_code(); if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; if (unlikely(__Pyx_modinit_variable_import_code() != 0)) goto __pyx_L1_error; if (unlikely(__Pyx_modinit_function_import_code() != 0)) goto __pyx_L1_error; /*--- Execution code ---*/ #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error) #endif /* "pywt/_extensions/_swt.pyx":6 * from cpython cimport bool * * import warnings # <<<<<<<<<<<<<< * import numpy as np * cimport numpy as np */ __pyx_t_1 = __Pyx_Import(__pyx_n_s_warnings, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_warnings, __pyx_t_1) < 0) __PYX_ERR(0, 6, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_swt.pyx":7 * * import warnings * import numpy as np # <<<<<<<<<<<<<< * cimport numpy as np * */ __pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_1) < 0) __PYX_ERR(0, 7, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_swt.pyx":16 * include "config.pxi" * * def swt_max_level(size_t input_len): # <<<<<<<<<<<<<< * """ * swt_max_level(input_len) */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4pywt_11_extensions_4_swt_1swt_max_level, NULL, __pyx_n_s_pywt__extensions__swt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 16, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_swt_max_level, __pyx_t_1) < 0) __PYX_ERR(0, 16, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pywt/_extensions/_swt.pyx":53 * * def swt(cdata_t[::1] data, Wavelet wavelet, size_t level, size_t start_level, * bool trim_approx=False): # <<<<<<<<<<<<<< * cdef cdata_t[::1] cA, cD * cdef Wavelet w */ __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 53, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* "pywt/_extensions/_swt.pyx":52 * * * def swt(cdata_t[::1] data, Wavelet wavelet, size_t level, size_t start_level, # <<<<<<<<<<<<<< * bool trim_approx=False): * cdef cdata_t[::1] cA, cD */ __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __pyx_FusedFunction_NewEx(&__pyx_fuse_0__pyx_mdef_4pywt_11_extensions_4_swt_7swt, 0, __pyx_n_s_swt, NULL, __pyx_n_s_pywt__extensions__swt, __pyx_d, ((PyObject *)__pyx_codeobj__46)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults4), 1)) __PYX_ERR(0, 52, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":53 * * def swt(cdata_t[::1] data, Wavelet wavelet, size_t level, size_t start_level, * bool trim_approx=False): # <<<<<<<<<<<<<< * cdef cdata_t[::1] cA, cD * cdef Wavelet w */ __pyx_t_4 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 53, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_7cpython_4bool_bool)))) __PYX_ERR(0, 53, __pyx_L1_error) __Pyx_CyFunction_Defaults(__pyx_defaults4, __pyx_t_3)->__pyx_arg_trim_approx = ((PyBoolObject *)__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_2); __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_4pywt_11_extensions_4_swt_24__defaults__); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_float32_t, __pyx_t_3) < 0) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/_swt.pyx":52 * * * def swt(cdata_t[::1] data, Wavelet wavelet, size_t level, size_t start_level, # <<<<<<<<<<<<<< * bool trim_approx=False): * cdef cdata_t[::1] cA, cD */ __pyx_t_3 = __pyx_FusedFunction_NewEx(&__pyx_fuse_1__pyx_mdef_4pywt_11_extensions_4_swt_9swt, 0, __pyx_n_s_swt, NULL, __pyx_n_s_pywt__extensions__swt, __pyx_d, ((PyObject *)__pyx_codeobj__46)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults5), 1)) __PYX_ERR(0, 52, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":53 * * def swt(cdata_t[::1] data, Wavelet wavelet, size_t level, size_t start_level, * bool trim_approx=False): # <<<<<<<<<<<<<< * cdef cdata_t[::1] cA, cD * cdef Wavelet w */ __pyx_t_4 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 53, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_7cpython_4bool_bool)))) __PYX_ERR(0, 53, __pyx_L1_error) __Pyx_CyFunction_Defaults(__pyx_defaults5, __pyx_t_3)->__pyx_arg_trim_approx = ((PyBoolObject *)__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_2); __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_4pywt_11_extensions_4_swt_26__defaults__); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_float64_t, __pyx_t_3) < 0) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/_swt.pyx":52 * * * def swt(cdata_t[::1] data, Wavelet wavelet, size_t level, size_t start_level, # <<<<<<<<<<<<<< * bool trim_approx=False): * cdef cdata_t[::1] cA, cD */ __pyx_t_3 = __pyx_FusedFunction_NewEx(&__pyx_fuse_2__pyx_mdef_4pywt_11_extensions_4_swt_11swt, 0, __pyx_n_s_swt, NULL, __pyx_n_s_pywt__extensions__swt, __pyx_d, ((PyObject *)__pyx_codeobj__46)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults6), 1)) __PYX_ERR(0, 52, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":53 * * def swt(cdata_t[::1] data, Wavelet wavelet, size_t level, size_t start_level, * bool trim_approx=False): # <<<<<<<<<<<<<< * cdef cdata_t[::1] cA, cD * cdef Wavelet w */ __pyx_t_4 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 53, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_7cpython_4bool_bool)))) __PYX_ERR(0, 53, __pyx_L1_error) __Pyx_CyFunction_Defaults(__pyx_defaults6, __pyx_t_3)->__pyx_arg_trim_approx = ((PyBoolObject *)__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_2); __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_4pywt_11_extensions_4_swt_28__defaults__); if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_float_complex, __pyx_t_3) < 0) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/_swt.pyx":52 * * * def swt(cdata_t[::1] data, Wavelet wavelet, size_t level, size_t start_level, # <<<<<<<<<<<<<< * bool trim_approx=False): * cdef cdata_t[::1] cA, cD */ __pyx_t_3 = __pyx_FusedFunction_NewEx(&__pyx_fuse_3__pyx_mdef_4pywt_11_extensions_4_swt_13swt, 0, __pyx_n_s_swt, NULL, __pyx_n_s_pywt__extensions__swt, __pyx_d, ((PyObject *)__pyx_codeobj__46)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults7), 1)) __PYX_ERR(0, 52, __pyx_L1_error) /* "pywt/_extensions/_swt.pyx":53 * * def swt(cdata_t[::1] data, Wavelet wavelet, size_t level, size_t start_level, * bool trim_approx=False): # <<<<<<<<<<<<<< * cdef cdata_t[::1] cA, cD * cdef Wavelet w */ __pyx_t_4 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 53, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_7cpython_4bool_bool)))) __PYX_ERR(0, 53, __pyx_L1_error) __Pyx_CyFunction_Defaults(__pyx_defaults7, __pyx_t_3)->__pyx_arg_trim_approx = ((PyBoolObject *)__pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_2); __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_4pywt_11_extensions_4_swt_30__defaults__); if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_double_complex, __pyx_t_3) < 0) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "pywt/_extensions/_swt.pyx":52 * * * def swt(cdata_t[::1] data, Wavelet wavelet, size_t level, size_t start_level, # <<<<<<<<<<<<<< * bool trim_approx=False): * cdef cdata_t[::1] cA, cD */ __pyx_t_3 = __pyx_FusedFunction_NewEx(&__pyx_mdef_4pywt_11_extensions_4_swt_3swt, 0, __pyx_n_s_swt, NULL, __pyx_n_s_pywt__extensions__swt, __pyx_d, ((PyObject *)__pyx_codeobj__46)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_2); ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1; __Pyx_GIVEREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_swt, __pyx_t_3) < 0) __PYX_ERR(0, 52, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pywt/_extensions/_swt.pyx":1 * #cython: boundscheck=False, wraparound=False # <<<<<<<<<<<<<< * from . cimport common * from . cimport c_wt */ __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_4) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":209 * info.obj = self * * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") # <<<<<<<<<<<<<< * * def __dealloc__(array self): */ __pyx_t_4 = __pyx_capsule_create(((void *)(&__pyx_array_getbuffer)), ((char *)"getbuffer(obj, view, flags)")); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem((PyObject *)__pyx_array_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_4) < 0) __PYX_ERR(2, 209, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; PyType_Modified(__pyx_array_type); /* "View.MemoryView":286 * return self.name * * cdef generic = Enum("") # <<<<<<<<<<<<<< * cdef strided = Enum("") # default * cdef indirect = Enum("") */ __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__47, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XGOTREF(generic); __Pyx_DECREF_SET(generic, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":287 * * cdef generic = Enum("") * cdef strided = Enum("") # default # <<<<<<<<<<<<<< * cdef indirect = Enum("") * */ __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__48, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XGOTREF(strided); __Pyx_DECREF_SET(strided, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":288 * cdef generic = Enum("") * cdef strided = Enum("") # default * cdef indirect = Enum("") # <<<<<<<<<<<<<< * * */ __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__49, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XGOTREF(indirect); __Pyx_DECREF_SET(indirect, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":291 * * * cdef contiguous = Enum("") # <<<<<<<<<<<<<< * cdef indirect_contiguous = Enum("") * */ __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__50, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XGOTREF(contiguous); __Pyx_DECREF_SET(contiguous, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":292 * * cdef contiguous = Enum("") * cdef indirect_contiguous = Enum("") # <<<<<<<<<<<<<< * * */ __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__51, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XGOTREF(indirect_contiguous); __Pyx_DECREF_SET(indirect_contiguous, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = 0; /* "View.MemoryView":316 * * DEF THREAD_LOCKS_PREALLOCATED = 8 * cdef int __pyx_memoryview_thread_locks_used = 0 # <<<<<<<<<<<<<< * cdef PyThread_type_lock[THREAD_LOCKS_PREALLOCATED] __pyx_memoryview_thread_locks = [ * PyThread_allocate_lock(), */ __pyx_memoryview_thread_locks_used = 0; /* "View.MemoryView":317 * DEF THREAD_LOCKS_PREALLOCATED = 8 * cdef int __pyx_memoryview_thread_locks_used = 0 * cdef PyThread_type_lock[THREAD_LOCKS_PREALLOCATED] __pyx_memoryview_thread_locks = [ # <<<<<<<<<<<<<< * PyThread_allocate_lock(), * PyThread_allocate_lock(), */ __pyx_t_5[0] = PyThread_allocate_lock(); __pyx_t_5[1] = PyThread_allocate_lock(); __pyx_t_5[2] = PyThread_allocate_lock(); __pyx_t_5[3] = PyThread_allocate_lock(); __pyx_t_5[4] = PyThread_allocate_lock(); __pyx_t_5[5] = PyThread_allocate_lock(); __pyx_t_5[6] = PyThread_allocate_lock(); __pyx_t_5[7] = PyThread_allocate_lock(); memcpy(&(__pyx_memoryview_thread_locks[0]), __pyx_t_5, sizeof(__pyx_memoryview_thread_locks[0]) * (8)); /* "View.MemoryView":549 * info.obj = self * * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") # <<<<<<<<<<<<<< * * */ __pyx_t_4 = __pyx_capsule_create(((void *)(&__pyx_memoryview_getbuffer)), ((char *)"getbuffer(obj, view, flags)")); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem((PyObject *)__pyx_memoryview_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_4) < 0) __PYX_ERR(2, 549, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; PyType_Modified(__pyx_memoryview_type); /* "View.MemoryView":995 * return self.from_object * * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") # <<<<<<<<<<<<<< * * */ __pyx_t_4 = __pyx_capsule_create(((void *)(&__pyx_memoryview_getbuffer)), ((char *)"getbuffer(obj, view, flags)")); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem((PyObject *)__pyx_memoryviewslice_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_4) < 0) __PYX_ERR(2, 995, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; PyType_Modified(__pyx_memoryviewslice_type); /* "(tree fragment)":1 * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< * cdef object __pyx_PickleError * cdef object __pyx_result */ __pyx_t_4 = PyCFunction_NewEx(&__pyx_mdef_15View_dot_MemoryView_1__pyx_unpickle_Enum, NULL, __pyx_n_s_View_MemoryView); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Enum, __pyx_t_4) < 0) __PYX_ERR(2, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "BufferFormatFromTypeInfo":1464 * * @cname('__pyx_format_from_typeinfo') * cdef bytes format_from_typeinfo(__Pyx_TypeInfo *type): # <<<<<<<<<<<<<< * cdef __Pyx_StructField *field * cdef __pyx_typeinfo_string fmt */ /*--- Wrapped vars code ---*/ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); if (__pyx_m) { if (__pyx_d) { __Pyx_AddTraceback("init pywt._extensions._swt", __pyx_clineno, __pyx_lineno, __pyx_filename); } Py_CLEAR(__pyx_m); } else if (!PyErr_Occurred()) { PyErr_SetString(PyExc_ImportError, "init pywt._extensions._swt"); } __pyx_L0:; __Pyx_RefNannyFinishContext(); #if CYTHON_PEP489_MULTI_PHASE_INIT return (__pyx_m != NULL) ? 0 : -1; #elif PY_MAJOR_VERSION >= 3 return __pyx_m; #else return; #endif } /* --- Runtime support code --- */ /* Refnanny */ #if CYTHON_REFNANNY static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { PyObject *m = NULL, *p = NULL; void *r = NULL; m = PyImport_ImportModule(modname); if (!m) goto end; p = PyObject_GetAttrString(m, "RefNannyAPI"); if (!p) goto end; r = PyLong_AsVoidPtr(p); end: Py_XDECREF(p); Py_XDECREF(m); return (__Pyx_RefNannyAPIStruct *)r; } #endif /* PyObjectGetAttrStr */ #if CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) { PyTypeObject* tp = Py_TYPE(obj); if (likely(tp->tp_getattro)) return tp->tp_getattro(obj, attr_name); #if PY_MAJOR_VERSION < 3 if (likely(tp->tp_getattr)) return tp->tp_getattr(obj, PyString_AS_STRING(attr_name)); #endif return PyObject_GetAttr(obj, attr_name); } #endif /* GetBuiltinName */ static PyObject *__Pyx_GetBuiltinName(PyObject *name) { PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name); if (unlikely(!result)) { PyErr_Format(PyExc_NameError, #if PY_MAJOR_VERSION >= 3 "name '%U' is not defined", name); #else "name '%.200s' is not defined", PyString_AS_STRING(name)); #endif } return result; } /* PyObjectCall */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { PyObject *result; ternaryfunc call = func->ob_type->tp_call; if (unlikely(!call)) return PyObject_Call(func, arg, kw); if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) return NULL; result = (*call)(func, arg, kw); Py_LeaveRecursiveCall(); if (unlikely(!result) && unlikely(!PyErr_Occurred())) { PyErr_SetString( PyExc_SystemError, "NULL result without error in PyObject_Call"); } return result; } #endif /* PyErrFetchRestore */ #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; tmp_type = tstate->curexc_type; tmp_value = tstate->curexc_value; tmp_tb = tstate->curexc_traceback; tstate->curexc_type = type; tstate->curexc_value = value; tstate->curexc_traceback = tb; Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); } static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { *type = tstate->curexc_type; *value = tstate->curexc_value; *tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; } #endif /* RaiseException */ #if PY_MAJOR_VERSION < 3 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, CYTHON_UNUSED PyObject *cause) { __Pyx_PyThreadState_declare Py_XINCREF(type); if (!value || value == Py_None) value = NULL; else Py_INCREF(value); if (!tb || tb == Py_None) tb = NULL; else { Py_INCREF(tb); if (!PyTraceBack_Check(tb)) { PyErr_SetString(PyExc_TypeError, "raise: arg 3 must be a traceback or None"); goto raise_error; } } if (PyType_Check(type)) { #if CYTHON_COMPILING_IN_PYPY if (!value) { Py_INCREF(Py_None); value = Py_None; } #endif PyErr_NormalizeException(&type, &value, &tb); } else { if (value) { PyErr_SetString(PyExc_TypeError, "instance exception may not have a separate value"); goto raise_error; } value = type; type = (PyObject*) Py_TYPE(type); Py_INCREF(type); if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { PyErr_SetString(PyExc_TypeError, "raise: exception class must be a subclass of BaseException"); goto raise_error; } } __Pyx_PyThreadState_assign __Pyx_ErrRestore(type, value, tb); return; raise_error: Py_XDECREF(value); Py_XDECREF(type); Py_XDECREF(tb); return; } #else static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { PyObject* owned_instance = NULL; if (tb == Py_None) { tb = 0; } else if (tb && !PyTraceBack_Check(tb)) { PyErr_SetString(PyExc_TypeError, "raise: arg 3 must be a traceback or None"); goto bad; } if (value == Py_None) value = 0; if (PyExceptionInstance_Check(type)) { if (value) { PyErr_SetString(PyExc_TypeError, "instance exception may not have a separate value"); goto bad; } value = type; type = (PyObject*) Py_TYPE(value); } else if (PyExceptionClass_Check(type)) { PyObject *instance_class = NULL; if (value && PyExceptionInstance_Check(value)) { instance_class = (PyObject*) Py_TYPE(value); if (instance_class != type) { int is_subclass = PyObject_IsSubclass(instance_class, type); if (!is_subclass) { instance_class = NULL; } else if (unlikely(is_subclass == -1)) { goto bad; } else { type = instance_class; } } } if (!instance_class) { PyObject *args; if (!value) args = PyTuple_New(0); else if (PyTuple_Check(value)) { Py_INCREF(value); args = value; } else args = PyTuple_Pack(1, value); if (!args) goto bad; owned_instance = PyObject_Call(type, args, NULL); Py_DECREF(args); if (!owned_instance) goto bad; value = owned_instance; if (!PyExceptionInstance_Check(value)) { PyErr_Format(PyExc_TypeError, "calling %R should have returned an instance of " "BaseException, not %R", type, Py_TYPE(value)); goto bad; } } } else { PyErr_SetString(PyExc_TypeError, "raise: exception class must be a subclass of BaseException"); goto bad; } if (cause) { PyObject *fixed_cause; if (cause == Py_None) { fixed_cause = NULL; } else if (PyExceptionClass_Check(cause)) { fixed_cause = PyObject_CallObject(cause, NULL); if (fixed_cause == NULL) goto bad; } else if (PyExceptionInstance_Check(cause)) { fixed_cause = cause; Py_INCREF(fixed_cause); } else { PyErr_SetString(PyExc_TypeError, "exception causes must derive from " "BaseException"); goto bad; } PyException_SetCause(value, fixed_cause); } PyErr_SetObject(type, value); if (tb) { #if CYTHON_COMPILING_IN_PYPY PyObject *tmp_type, *tmp_value, *tmp_tb; PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb); Py_INCREF(tb); PyErr_Restore(tmp_type, tmp_value, tb); Py_XDECREF(tmp_tb); #else PyThreadState *tstate = __Pyx_PyThreadState_Current; PyObject* tmp_tb = tstate->curexc_traceback; if (tb != tmp_tb) { Py_INCREF(tb); tstate->curexc_traceback = tb; Py_XDECREF(tmp_tb); } #endif } bad: Py_XDECREF(owned_instance); return; } #endif /* PyDictVersioning */ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) { PyObject *dict = Py_TYPE(obj)->tp_dict; return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0; } static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) { PyObject **dictptr = NULL; Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset; if (offset) { #if CYTHON_COMPILING_IN_CPYTHON dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj); #else dictptr = _PyObject_GetDictPtr(obj); #endif } return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0; } static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) { PyObject *dict = Py_TYPE(obj)->tp_dict; if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict))) return 0; return obj_dict_version == __Pyx_get_object_dict_version(obj); } #endif /* GetModuleGlobalName */ #if CYTHON_USE_DICT_VERSIONS static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value) #else static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name) #endif { PyObject *result; #if !CYTHON_AVOID_BORROWED_REFS #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash); __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) if (likely(result)) { return __Pyx_NewRef(result); } else if (unlikely(PyErr_Occurred())) { return NULL; } #else result = PyDict_GetItem(__pyx_d, name); __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) if (likely(result)) { return __Pyx_NewRef(result); } #endif #else result = PyObject_GetItem(__pyx_d, name); __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) if (likely(result)) { return __Pyx_NewRef(result); } PyErr_Clear(); #endif return __Pyx_GetBuiltinName(name); } /* PyCFunctionFastCall */ #if CYTHON_FAST_PYCCALL static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) { PyCFunctionObject *func = (PyCFunctionObject*)func_obj; PyCFunction meth = PyCFunction_GET_FUNCTION(func); PyObject *self = PyCFunction_GET_SELF(func); int flags = PyCFunction_GET_FLAGS(func); assert(PyCFunction_Check(func)); assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))); assert(nargs >= 0); assert(nargs == 0 || args != NULL); /* _PyCFunction_FastCallDict() must not be called with an exception set, because it may clear it (directly or indirectly) and so the caller loses its exception */ assert(!PyErr_Occurred()); if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) { return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL); } else { return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs); } } #endif /* PyFunctionFastCall */ #if CYTHON_FAST_PYCALL static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, PyObject *globals) { PyFrameObject *f; PyThreadState *tstate = __Pyx_PyThreadState_Current; PyObject **fastlocals; Py_ssize_t i; PyObject *result; assert(globals != NULL); /* XXX Perhaps we should create a specialized PyFrame_New() that doesn't take locals, but does take builtins without sanity checking them. */ assert(tstate != NULL); f = PyFrame_New(tstate, co, globals, NULL); if (f == NULL) { return NULL; } fastlocals = __Pyx_PyFrame_GetLocalsplus(f); for (i = 0; i < na; i++) { Py_INCREF(*args); fastlocals[i] = *args++; } result = PyEval_EvalFrameEx(f,0); ++tstate->recursion_depth; Py_DECREF(f); --tstate->recursion_depth; return result; } #if 1 || PY_VERSION_HEX < 0x030600B1 static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) { PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func); PyObject *globals = PyFunction_GET_GLOBALS(func); PyObject *argdefs = PyFunction_GET_DEFAULTS(func); PyObject *closure; #if PY_MAJOR_VERSION >= 3 PyObject *kwdefs; #endif PyObject *kwtuple, **k; PyObject **d; Py_ssize_t nd; Py_ssize_t nk; PyObject *result; assert(kwargs == NULL || PyDict_Check(kwargs)); nk = kwargs ? PyDict_Size(kwargs) : 0; if (Py_EnterRecursiveCall((char*)" while calling a Python object")) { return NULL; } if ( #if PY_MAJOR_VERSION >= 3 co->co_kwonlyargcount == 0 && #endif likely(kwargs == NULL || nk == 0) && co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) { if (argdefs == NULL && co->co_argcount == nargs) { result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals); goto done; } else if (nargs == 0 && argdefs != NULL && co->co_argcount == Py_SIZE(argdefs)) { /* function called with no arguments, but all parameters have a default value: use default values as arguments .*/ args = &PyTuple_GET_ITEM(argdefs, 0); result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals); goto done; } } if (kwargs != NULL) { Py_ssize_t pos, i; kwtuple = PyTuple_New(2 * nk); if (kwtuple == NULL) { result = NULL; goto done; } k = &PyTuple_GET_ITEM(kwtuple, 0); pos = i = 0; while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) { Py_INCREF(k[i]); Py_INCREF(k[i+1]); i += 2; } nk = i / 2; } else { kwtuple = NULL; k = NULL; } closure = PyFunction_GET_CLOSURE(func); #if PY_MAJOR_VERSION >= 3 kwdefs = PyFunction_GET_KW_DEFAULTS(func); #endif if (argdefs != NULL) { d = &PyTuple_GET_ITEM(argdefs, 0); nd = Py_SIZE(argdefs); } else { d = NULL; nd = 0; } #if PY_MAJOR_VERSION >= 3 result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, args, (int)nargs, k, (int)nk, d, (int)nd, kwdefs, closure); #else result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, args, (int)nargs, k, (int)nk, d, (int)nd, closure); #endif Py_XDECREF(kwtuple); done: Py_LeaveRecursiveCall(); return result; } #endif #endif /* PyObjectCall2Args */ static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) { PyObject *args, *result = NULL; #if CYTHON_FAST_PYCALL if (PyFunction_Check(function)) { PyObject *args[2] = {arg1, arg2}; return __Pyx_PyFunction_FastCall(function, args, 2); } #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(function)) { PyObject *args[2] = {arg1, arg2}; return __Pyx_PyCFunction_FastCall(function, args, 2); } #endif args = PyTuple_New(2); if (unlikely(!args)) goto done; Py_INCREF(arg1); PyTuple_SET_ITEM(args, 0, arg1); Py_INCREF(arg2); PyTuple_SET_ITEM(args, 1, arg2); Py_INCREF(function); result = __Pyx_PyObject_Call(function, args, NULL); Py_DECREF(args); Py_DECREF(function); done: return result; } /* PyObjectCallMethO */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { PyObject *self, *result; PyCFunction cfunc; cfunc = PyCFunction_GET_FUNCTION(func); self = PyCFunction_GET_SELF(func); if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) return NULL; result = cfunc(self, arg); Py_LeaveRecursiveCall(); if (unlikely(!result) && unlikely(!PyErr_Occurred())) { PyErr_SetString( PyExc_SystemError, "NULL result without error in PyObject_Call"); } return result; } #endif /* PyObjectCallOneArg */ #if CYTHON_COMPILING_IN_CPYTHON static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { PyObject *result; PyObject *args = PyTuple_New(1); if (unlikely(!args)) return NULL; Py_INCREF(arg); PyTuple_SET_ITEM(args, 0, arg); result = __Pyx_PyObject_Call(func, args, NULL); Py_DECREF(args); return result; } static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { #if CYTHON_FAST_PYCALL if (PyFunction_Check(func)) { return __Pyx_PyFunction_FastCall(func, &arg, 1); } #endif if (likely(PyCFunction_Check(func))) { if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { return __Pyx_PyObject_CallMethO(func, arg); #if CYTHON_FAST_PYCCALL } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { return __Pyx_PyCFunction_FastCall(func, &arg, 1); #endif } } return __Pyx__PyObject_CallOneArg(func, arg); } #else static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { PyObject *result; PyObject *args = PyTuple_Pack(1, arg); if (unlikely(!args)) return NULL; result = __Pyx_PyObject_Call(func, args, NULL); Py_DECREF(args); return result; } #endif /* RaiseArgTupleInvalid */ static void __Pyx_RaiseArgtupleInvalid( const char* func_name, int exact, Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found) { Py_ssize_t num_expected; const char *more_or_less; if (num_found < num_min) { num_expected = num_min; more_or_less = "at least"; } else { num_expected = num_max; more_or_less = "at most"; } if (exact) { more_or_less = "exactly"; } PyErr_Format(PyExc_TypeError, "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)", func_name, more_or_less, num_expected, (num_expected == 1) ? "" : "s", num_found); } /* RaiseDoubleKeywords */ static void __Pyx_RaiseDoubleKeywordsError( const char* func_name, PyObject* kw_name) { PyErr_Format(PyExc_TypeError, #if PY_MAJOR_VERSION >= 3 "%s() got multiple values for keyword argument '%U'", func_name, kw_name); #else "%s() got multiple values for keyword argument '%s'", func_name, PyString_AsString(kw_name)); #endif } /* ParseKeywords */ static int __Pyx_ParseOptionalKeywords( PyObject *kwds, PyObject **argnames[], PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, const char* function_name) { PyObject *key = 0, *value = 0; Py_ssize_t pos = 0; PyObject*** name; PyObject*** first_kw_arg = argnames + num_pos_args; while (PyDict_Next(kwds, &pos, &key, &value)) { name = first_kw_arg; while (*name && (**name != key)) name++; if (*name) { values[name-argnames] = value; continue; } name = first_kw_arg; #if PY_MAJOR_VERSION < 3 if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { while (*name) { if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) && _PyString_Eq(**name, key)) { values[name-argnames] = value; break; } name++; } if (*name) continue; else { PyObject*** argname = argnames; while (argname != first_kw_arg) { if ((**argname == key) || ( (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key)) && _PyString_Eq(**argname, key))) { goto arg_passed_twice; } argname++; } } } else #endif if (likely(PyUnicode_Check(key))) { while (*name) { int cmp = (**name == key) ? 0 : #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : #endif PyUnicode_Compare(**name, key); if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; if (cmp == 0) { values[name-argnames] = value; break; } name++; } if (*name) continue; else { PyObject*** argname = argnames; while (argname != first_kw_arg) { int cmp = (**argname == key) ? 0 : #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : #endif PyUnicode_Compare(**argname, key); if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; if (cmp == 0) goto arg_passed_twice; argname++; } } } else goto invalid_keyword_type; if (kwds2) { if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; } else { goto invalid_keyword; } } return 0; arg_passed_twice: __Pyx_RaiseDoubleKeywordsError(function_name, key); goto bad; invalid_keyword_type: PyErr_Format(PyExc_TypeError, "%.200s() keywords must be strings", function_name); goto bad; invalid_keyword: PyErr_Format(PyExc_TypeError, #if PY_MAJOR_VERSION < 3 "%.200s() got an unexpected keyword argument '%.200s'", function_name, PyString_AsString(key)); #else "%s() got an unexpected keyword argument '%U'", function_name, key); #endif bad: return -1; } /* DictGetItem */ #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) { PyObject *value; value = PyDict_GetItemWithError(d, key); if (unlikely(!value)) { if (!PyErr_Occurred()) { if (unlikely(PyTuple_Check(key))) { PyObject* args = PyTuple_Pack(1, key); if (likely(args)) { PyErr_SetObject(PyExc_KeyError, args); Py_DECREF(args); } } else { PyErr_SetObject(PyExc_KeyError, key); } } return NULL; } Py_INCREF(value); return value; } #endif /* UnicodeAsUCS4 */ static CYTHON_INLINE Py_UCS4 __Pyx_PyUnicode_AsPy_UCS4(PyObject* x) { Py_ssize_t length; #if CYTHON_PEP393_ENABLED length = PyUnicode_GET_LENGTH(x); if (likely(length == 1)) { return PyUnicode_READ_CHAR(x, 0); } #else length = PyUnicode_GET_SIZE(x); if (likely(length == 1)) { return PyUnicode_AS_UNICODE(x)[0]; } #if Py_UNICODE_SIZE == 2 else if (PyUnicode_GET_SIZE(x) == 2) { Py_UCS4 high_val = PyUnicode_AS_UNICODE(x)[0]; if (high_val >= 0xD800 && high_val <= 0xDBFF) { Py_UCS4 low_val = PyUnicode_AS_UNICODE(x)[1]; if (low_val >= 0xDC00 && low_val <= 0xDFFF) { return 0x10000 + (((high_val & ((1<<10)-1)) << 10) | (low_val & ((1<<10)-1))); } } } #endif #endif PyErr_Format(PyExc_ValueError, "only single character unicode strings can be converted to Py_UCS4, " "got length %" CYTHON_FORMAT_SSIZE_T "d", length); return (Py_UCS4)-1; } /* object_ord */ static long __Pyx__PyObject_Ord(PyObject* c) { Py_ssize_t size; if (PyBytes_Check(c)) { size = PyBytes_GET_SIZE(c); if (likely(size == 1)) { return (unsigned char) PyBytes_AS_STRING(c)[0]; } #if PY_MAJOR_VERSION < 3 } else if (PyUnicode_Check(c)) { return (long)__Pyx_PyUnicode_AsPy_UCS4(c); #endif #if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)) } else if (PyByteArray_Check(c)) { size = PyByteArray_GET_SIZE(c); if (likely(size == 1)) { return (unsigned char) PyByteArray_AS_STRING(c)[0]; } #endif } else { PyErr_Format(PyExc_TypeError, "ord() expected string of length 1, but %.200s found", c->ob_type->tp_name); return (long)(Py_UCS4)-1; } PyErr_Format(PyExc_TypeError, "ord() expected a character, but string of length %zd found", size); return (long)(Py_UCS4)-1; } /* SetItemInt */ static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v) { int r; if (!j) return -1; r = PyObject_SetItem(o, j, v); Py_DECREF(j); return r; } static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, int is_list, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS if (is_list || PyList_CheckExact(o)) { Py_ssize_t n = (!wraparound) ? i : ((likely(i >= 0)) ? i : i + PyList_GET_SIZE(o)); if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o)))) { PyObject* old = PyList_GET_ITEM(o, n); Py_INCREF(v); PyList_SET_ITEM(o, n, v); Py_DECREF(old); return 1; } } else { PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence; if (likely(m && m->sq_ass_item)) { if (wraparound && unlikely(i < 0) && likely(m->sq_length)) { Py_ssize_t l = m->sq_length(o); if (likely(l >= 0)) { i += l; } else { if (!PyErr_ExceptionMatches(PyExc_OverflowError)) return -1; PyErr_Clear(); } } return m->sq_ass_item(o, i, v); } } #else #if CYTHON_COMPILING_IN_PYPY if (is_list || (PySequence_Check(o) && !PyDict_Check(o))) #else if (is_list || PySequence_Check(o)) #endif { return PySequence_SetItem(o, i, v); } #endif return __Pyx_SetItemInt_Generic(o, PyInt_FromSsize_t(i), v); } /* IterFinish */ static CYTHON_INLINE int __Pyx_IterFinish(void) { #if CYTHON_FAST_THREAD_STATE PyThreadState *tstate = __Pyx_PyThreadState_Current; PyObject* exc_type = tstate->curexc_type; if (unlikely(exc_type)) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) { PyObject *exc_value, *exc_tb; exc_value = tstate->curexc_value; exc_tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; Py_DECREF(exc_type); Py_XDECREF(exc_value); Py_XDECREF(exc_tb); return 0; } else { return -1; } } return 0; #else if (unlikely(PyErr_Occurred())) { if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) { PyErr_Clear(); return 0; } else { return -1; } } return 0; #endif } /* PyObjectCallNoArg */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { #if CYTHON_FAST_PYCALL if (PyFunction_Check(func)) { return __Pyx_PyFunction_FastCall(func, NULL, 0); } #endif #ifdef __Pyx_CyFunction_USED if (likely(PyCFunction_Check(func) || __Pyx_CyFunction_Check(func))) #else if (likely(PyCFunction_Check(func))) #endif { if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) { return __Pyx_PyObject_CallMethO(func, NULL); } } return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL); } #endif /* PyObjectGetMethod */ static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) { PyObject *attr; #if CYTHON_UNPACK_METHODS && CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_PYTYPE_LOOKUP PyTypeObject *tp = Py_TYPE(obj); PyObject *descr; descrgetfunc f = NULL; PyObject **dictptr, *dict; int meth_found = 0; assert (*method == NULL); if (unlikely(tp->tp_getattro != PyObject_GenericGetAttr)) { attr = __Pyx_PyObject_GetAttrStr(obj, name); goto try_unpack; } if (unlikely(tp->tp_dict == NULL) && unlikely(PyType_Ready(tp) < 0)) { return 0; } descr = _PyType_Lookup(tp, name); if (likely(descr != NULL)) { Py_INCREF(descr); #if PY_MAJOR_VERSION >= 3 #ifdef __Pyx_CyFunction_USED if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr))) #else if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type))) #endif #else #ifdef __Pyx_CyFunction_USED if (likely(PyFunction_Check(descr) || __Pyx_CyFunction_Check(descr))) #else if (likely(PyFunction_Check(descr))) #endif #endif { meth_found = 1; } else { f = Py_TYPE(descr)->tp_descr_get; if (f != NULL && PyDescr_IsData(descr)) { attr = f(descr, obj, (PyObject *)Py_TYPE(obj)); Py_DECREF(descr); goto try_unpack; } } } dictptr = _PyObject_GetDictPtr(obj); if (dictptr != NULL && (dict = *dictptr) != NULL) { Py_INCREF(dict); attr = __Pyx_PyDict_GetItemStr(dict, name); if (attr != NULL) { Py_INCREF(attr); Py_DECREF(dict); Py_XDECREF(descr); goto try_unpack; } Py_DECREF(dict); } if (meth_found) { *method = descr; return 1; } if (f != NULL) { attr = f(descr, obj, (PyObject *)Py_TYPE(obj)); Py_DECREF(descr); goto try_unpack; } if (descr != NULL) { *method = descr; return 0; } PyErr_Format(PyExc_AttributeError, #if PY_MAJOR_VERSION >= 3 "'%.50s' object has no attribute '%U'", tp->tp_name, name); #else "'%.50s' object has no attribute '%.400s'", tp->tp_name, PyString_AS_STRING(name)); #endif return 0; #else attr = __Pyx_PyObject_GetAttrStr(obj, name); goto try_unpack; #endif try_unpack: #if CYTHON_UNPACK_METHODS if (likely(attr) && PyMethod_Check(attr) && likely(PyMethod_GET_SELF(attr) == obj)) { PyObject *function = PyMethod_GET_FUNCTION(attr); Py_INCREF(function); Py_DECREF(attr); *method = function; return 1; } #endif *method = attr; return 0; } /* PyObjectCallMethod0 */ static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name) { PyObject *method = NULL, *result = NULL; int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method); if (likely(is_method)) { result = __Pyx_PyObject_CallOneArg(method, obj); Py_DECREF(method); return result; } if (unlikely(!method)) goto bad; result = __Pyx_PyObject_CallNoArg(method); Py_DECREF(method); bad: return result; } /* RaiseNeedMoreValuesToUnpack */ static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { PyErr_Format(PyExc_ValueError, "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", index, (index == 1) ? "" : "s"); } /* RaiseTooManyValuesToUnpack */ static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { PyErr_Format(PyExc_ValueError, "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); } /* UnpackItemEndCheck */ static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) { if (unlikely(retval)) { Py_DECREF(retval); __Pyx_RaiseTooManyValuesError(expected); return -1; } else { return __Pyx_IterFinish(); } return 0; } /* RaiseNoneIterError */ static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); } /* UnpackTupleError */ static void __Pyx_UnpackTupleError(PyObject *t, Py_ssize_t index) { if (t == Py_None) { __Pyx_RaiseNoneNotIterableError(); } else if (PyTuple_GET_SIZE(t) < index) { __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(t)); } else { __Pyx_RaiseTooManyValuesError(index); } } /* UnpackTuple2 */ static CYTHON_INLINE int __Pyx_unpack_tuple2_exact( PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2, int decref_tuple) { PyObject *value1 = NULL, *value2 = NULL; #if CYTHON_COMPILING_IN_PYPY value1 = PySequence_ITEM(tuple, 0); if (unlikely(!value1)) goto bad; value2 = PySequence_ITEM(tuple, 1); if (unlikely(!value2)) goto bad; #else value1 = PyTuple_GET_ITEM(tuple, 0); Py_INCREF(value1); value2 = PyTuple_GET_ITEM(tuple, 1); Py_INCREF(value2); #endif if (decref_tuple) { Py_DECREF(tuple); } *pvalue1 = value1; *pvalue2 = value2; return 0; #if CYTHON_COMPILING_IN_PYPY bad: Py_XDECREF(value1); Py_XDECREF(value2); if (decref_tuple) { Py_XDECREF(tuple); } return -1; #endif } static int __Pyx_unpack_tuple2_generic(PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2, int has_known_size, int decref_tuple) { Py_ssize_t index; PyObject *value1 = NULL, *value2 = NULL, *iter = NULL; iternextfunc iternext; iter = PyObject_GetIter(tuple); if (unlikely(!iter)) goto bad; if (decref_tuple) { Py_DECREF(tuple); tuple = NULL; } iternext = Py_TYPE(iter)->tp_iternext; value1 = iternext(iter); if (unlikely(!value1)) { index = 0; goto unpacking_failed; } value2 = iternext(iter); if (unlikely(!value2)) { index = 1; goto unpacking_failed; } if (!has_known_size && unlikely(__Pyx_IternextUnpackEndCheck(iternext(iter), 2))) goto bad; Py_DECREF(iter); *pvalue1 = value1; *pvalue2 = value2; return 0; unpacking_failed: if (!has_known_size && __Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); bad: Py_XDECREF(iter); Py_XDECREF(value1); Py_XDECREF(value2); if (decref_tuple) { Py_XDECREF(tuple); } return -1; } /* dict_iter */ static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* iterable, int is_dict, PyObject* method_name, Py_ssize_t* p_orig_length, int* p_source_is_dict) { is_dict = is_dict || likely(PyDict_CheckExact(iterable)); *p_source_is_dict = is_dict; if (is_dict) { #if !CYTHON_COMPILING_IN_PYPY *p_orig_length = PyDict_Size(iterable); Py_INCREF(iterable); return iterable; #elif PY_MAJOR_VERSION >= 3 static PyObject *py_items = NULL, *py_keys = NULL, *py_values = NULL; PyObject **pp = NULL; if (method_name) { const char *name = PyUnicode_AsUTF8(method_name); if (strcmp(name, "iteritems") == 0) pp = &py_items; else if (strcmp(name, "iterkeys") == 0) pp = &py_keys; else if (strcmp(name, "itervalues") == 0) pp = &py_values; if (pp) { if (!*pp) { *pp = PyUnicode_FromString(name + 4); if (!*pp) return NULL; } method_name = *pp; } } #endif } *p_orig_length = 0; if (method_name) { PyObject* iter; iterable = __Pyx_PyObject_CallMethod0(iterable, method_name); if (!iterable) return NULL; #if !CYTHON_COMPILING_IN_PYPY if (PyTuple_CheckExact(iterable) || PyList_CheckExact(iterable)) return iterable; #endif iter = PyObject_GetIter(iterable); Py_DECREF(iterable); return iter; } return PyObject_GetIter(iterable); } static CYTHON_INLINE int __Pyx_dict_iter_next( PyObject* iter_obj, CYTHON_NCP_UNUSED Py_ssize_t orig_length, CYTHON_NCP_UNUSED Py_ssize_t* ppos, PyObject** pkey, PyObject** pvalue, PyObject** pitem, int source_is_dict) { PyObject* next_item; #if !CYTHON_COMPILING_IN_PYPY if (source_is_dict) { PyObject *key, *value; if (unlikely(orig_length != PyDict_Size(iter_obj))) { PyErr_SetString(PyExc_RuntimeError, "dictionary changed size during iteration"); return -1; } if (unlikely(!PyDict_Next(iter_obj, ppos, &key, &value))) { return 0; } if (pitem) { PyObject* tuple = PyTuple_New(2); if (unlikely(!tuple)) { return -1; } Py_INCREF(key); Py_INCREF(value); PyTuple_SET_ITEM(tuple, 0, key); PyTuple_SET_ITEM(tuple, 1, value); *pitem = tuple; } else { if (pkey) { Py_INCREF(key); *pkey = key; } if (pvalue) { Py_INCREF(value); *pvalue = value; } } return 1; } else if (PyTuple_CheckExact(iter_obj)) { Py_ssize_t pos = *ppos; if (unlikely(pos >= PyTuple_GET_SIZE(iter_obj))) return 0; *ppos = pos + 1; next_item = PyTuple_GET_ITEM(iter_obj, pos); Py_INCREF(next_item); } else if (PyList_CheckExact(iter_obj)) { Py_ssize_t pos = *ppos; if (unlikely(pos >= PyList_GET_SIZE(iter_obj))) return 0; *ppos = pos + 1; next_item = PyList_GET_ITEM(iter_obj, pos); Py_INCREF(next_item); } else #endif { next_item = PyIter_Next(iter_obj); if (unlikely(!next_item)) { return __Pyx_IterFinish(); } } if (pitem) { *pitem = next_item; } else if (pkey && pvalue) { if (__Pyx_unpack_tuple2(next_item, pkey, pvalue, source_is_dict, source_is_dict, 1)) return -1; } else if (pkey) { *pkey = next_item; } else { *pvalue = next_item; } return 1; } /* GetItemInt */ static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) { PyObject *r; if (!j) return NULL; r = PyObject_GetItem(o, j); Py_DECREF(j); return r; } static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS Py_ssize_t wrapped_i = i; if (wraparound & unlikely(i < 0)) { wrapped_i += PyList_GET_SIZE(o); } if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) { PyObject *r = PyList_GET_ITEM(o, wrapped_i); Py_INCREF(r); return r; } return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); #else return PySequence_GetItem(o, i); #endif } static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS Py_ssize_t wrapped_i = i; if (wraparound & unlikely(i < 0)) { wrapped_i += PyTuple_GET_SIZE(o); } if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) { PyObject *r = PyTuple_GET_ITEM(o, wrapped_i); Py_INCREF(r); return r; } return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); #else return PySequence_GetItem(o, i); #endif } static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS if (is_list || PyList_CheckExact(o)) { Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o); if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) { PyObject *r = PyList_GET_ITEM(o, n); Py_INCREF(r); return r; } } else if (PyTuple_CheckExact(o)) { Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o); if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) { PyObject *r = PyTuple_GET_ITEM(o, n); Py_INCREF(r); return r; } } else { PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence; if (likely(m && m->sq_item)) { if (wraparound && unlikely(i < 0) && likely(m->sq_length)) { Py_ssize_t l = m->sq_length(o); if (likely(l >= 0)) { i += l; } else { if (!PyErr_ExceptionMatches(PyExc_OverflowError)) return NULL; PyErr_Clear(); } } return m->sq_item(o, i); } } #else if (is_list || PySequence_Check(o)) { return PySequence_GetItem(o, i); } #endif return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); } /* ArgTypeTest */ static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact) { if (unlikely(!type)) { PyErr_SetString(PyExc_SystemError, "Missing type object"); return 0; } else if (exact) { #if PY_MAJOR_VERSION == 2 if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1; #endif } else { if (likely(__Pyx_TypeCheck(obj, type))) return 1; } PyErr_Format(PyExc_TypeError, "Argument '%.200s' has incorrect type (expected %.200s, got %.200s)", name, type->tp_name, Py_TYPE(obj)->tp_name); return 0; } /* PyIntBinop */ #if !CYTHON_COMPILING_IN_PYPY #if PY_MAJOR_VERSION < 3 || CYTHON_USE_PYLONG_INTERNALS #define __Pyx_PyInt_RemainderObjC_ZeroDivisionError(operand)\ if (unlikely(zerodivision_check && ((operand) == 0))) {\ PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");\ return NULL;\ } #endif static PyObject* __Pyx_PyInt_RemainderObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, int inplace, int zerodivision_check) { (void)inplace; (void)zerodivision_check; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_CheckExact(op1))) { const long b = intval; long x; long a = PyInt_AS_LONG(op1); __Pyx_PyInt_RemainderObjC_ZeroDivisionError(b) x = a % b; x += ((x != 0) & ((x ^ b) < 0)) * b; return PyInt_FromLong(x); } #endif #if CYTHON_USE_PYLONG_INTERNALS if (likely(PyLong_CheckExact(op1))) { const long b = intval; long a, x; #ifdef HAVE_LONG_LONG const PY_LONG_LONG llb = intval; PY_LONG_LONG lla, llx; #endif const digit* digits = ((PyLongObject*)op1)->ob_digit; const Py_ssize_t size = Py_SIZE(op1); if (likely(__Pyx_sst_abs(size) <= 1)) { a = likely(size) ? digits[0] : 0; if (size == -1) a = -a; } else { switch (size) { case -2: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case 2: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case -3: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case 3: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case -4: if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case 4: if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; default: return PyLong_Type.tp_as_number->nb_remainder(op1, op2); } } __Pyx_PyInt_RemainderObjC_ZeroDivisionError(b) x = a % b; x += ((x != 0) & ((x ^ b) < 0)) * b; return PyLong_FromLong(x); #ifdef HAVE_LONG_LONG long_long: llx = lla % llb; llx += ((llx != 0) & ((llx ^ llb) < 0)) * llb; return PyLong_FromLongLong(llx); #endif } #endif return (inplace ? PyNumber_InPlaceRemainder : PyNumber_Remainder)(op1, op2); } #endif /* MemviewSliceInit */ static int __Pyx_init_memviewslice(struct __pyx_memoryview_obj *memview, int ndim, __Pyx_memviewslice *memviewslice, int memview_is_new_reference) { __Pyx_RefNannyDeclarations int i, retval=-1; Py_buffer *buf = &memview->view; __Pyx_RefNannySetupContext("init_memviewslice", 0); if (memviewslice->memview || memviewslice->data) { PyErr_SetString(PyExc_ValueError, "memviewslice is already initialized!"); goto fail; } if (buf->strides) { for (i = 0; i < ndim; i++) { memviewslice->strides[i] = buf->strides[i]; } } else { Py_ssize_t stride = buf->itemsize; for (i = ndim - 1; i >= 0; i--) { memviewslice->strides[i] = stride; stride *= buf->shape[i]; } } for (i = 0; i < ndim; i++) { memviewslice->shape[i] = buf->shape[i]; if (buf->suboffsets) { memviewslice->suboffsets[i] = buf->suboffsets[i]; } else { memviewslice->suboffsets[i] = -1; } } memviewslice->memview = memview; memviewslice->data = (char *)buf->buf; if (__pyx_add_acquisition_count(memview) == 0 && !memview_is_new_reference) { Py_INCREF(memview); } retval = 0; goto no_fail; fail: memviewslice->memview = 0; memviewslice->data = 0; retval = -1; no_fail: __Pyx_RefNannyFinishContext(); return retval; } #ifndef Py_NO_RETURN #define Py_NO_RETURN #endif static void __pyx_fatalerror(const char *fmt, ...) Py_NO_RETURN { va_list vargs; char msg[200]; #ifdef HAVE_STDARG_PROTOTYPES va_start(vargs, fmt); #else va_start(vargs); #endif vsnprintf(msg, 200, fmt, vargs); va_end(vargs); Py_FatalError(msg); } static CYTHON_INLINE int __pyx_add_acquisition_count_locked(__pyx_atomic_int *acquisition_count, PyThread_type_lock lock) { int result; PyThread_acquire_lock(lock, 1); result = (*acquisition_count)++; PyThread_release_lock(lock); return result; } static CYTHON_INLINE int __pyx_sub_acquisition_count_locked(__pyx_atomic_int *acquisition_count, PyThread_type_lock lock) { int result; PyThread_acquire_lock(lock, 1); result = (*acquisition_count)--; PyThread_release_lock(lock); return result; } static CYTHON_INLINE void __Pyx_INC_MEMVIEW(__Pyx_memviewslice *memslice, int have_gil, int lineno) { int first_time; struct __pyx_memoryview_obj *memview = memslice->memview; if (!memview || (PyObject *) memview == Py_None) return; if (__pyx_get_slice_count(memview) < 0) __pyx_fatalerror("Acquisition count is %d (line %d)", __pyx_get_slice_count(memview), lineno); first_time = __pyx_add_acquisition_count(memview) == 0; if (first_time) { if (have_gil) { Py_INCREF((PyObject *) memview); } else { PyGILState_STATE _gilstate = PyGILState_Ensure(); Py_INCREF((PyObject *) memview); PyGILState_Release(_gilstate); } } } static CYTHON_INLINE void __Pyx_XDEC_MEMVIEW(__Pyx_memviewslice *memslice, int have_gil, int lineno) { int last_time; struct __pyx_memoryview_obj *memview = memslice->memview; if (!memview ) { return; } else if ((PyObject *) memview == Py_None) { memslice->memview = NULL; return; } if (__pyx_get_slice_count(memview) <= 0) __pyx_fatalerror("Acquisition count is %d (line %d)", __pyx_get_slice_count(memview), lineno); last_time = __pyx_sub_acquisition_count(memview) == 1; memslice->data = NULL; if (last_time) { if (have_gil) { Py_CLEAR(memslice->memview); } else { PyGILState_STATE _gilstate = PyGILState_Ensure(); Py_CLEAR(memslice->memview); PyGILState_Release(_gilstate); } } else { memslice->memview = NULL; } } /* None */ static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) { PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname); } /* None */ static CYTHON_INLINE long __Pyx_mod_long(long a, long b) { long r = a % b; r += ((r != 0) & ((r ^ b) < 0)) * b; return r; } /* ExtTypeTest */ static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { if (unlikely(!type)) { PyErr_SetString(PyExc_SystemError, "Missing type object"); return 0; } if (likely(__Pyx_TypeCheck(obj, type))) return 1; PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s", Py_TYPE(obj)->tp_name, type->tp_name); return 0; } /* GetTopmostException */ #if CYTHON_USE_EXC_INFO_STACK static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate) { _PyErr_StackItem *exc_info = tstate->exc_info; while ((exc_info->exc_type == NULL || exc_info->exc_type == Py_None) && exc_info->previous_item != NULL) { exc_info = exc_info->previous_item; } return exc_info; } #endif /* SaveResetException */ #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { #if CYTHON_USE_EXC_INFO_STACK _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate); *type = exc_info->exc_type; *value = exc_info->exc_value; *tb = exc_info->exc_traceback; #else *type = tstate->exc_type; *value = tstate->exc_value; *tb = tstate->exc_traceback; #endif Py_XINCREF(*type); Py_XINCREF(*value); Py_XINCREF(*tb); } static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; #if CYTHON_USE_EXC_INFO_STACK _PyErr_StackItem *exc_info = tstate->exc_info; tmp_type = exc_info->exc_type; tmp_value = exc_info->exc_value; tmp_tb = exc_info->exc_traceback; exc_info->exc_type = type; exc_info->exc_value = value; exc_info->exc_traceback = tb; #else tmp_type = tstate->exc_type; tmp_value = tstate->exc_value; tmp_tb = tstate->exc_traceback; tstate->exc_type = type; tstate->exc_value = value; tstate->exc_traceback = tb; #endif Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); } #endif /* PyErrExceptionMatches */ #if CYTHON_FAST_THREAD_STATE static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { Py_ssize_t i, n; n = PyTuple_GET_SIZE(tuple); #if PY_MAJOR_VERSION >= 3 for (i=0; icurexc_type; if (exc_type == err) return 1; if (unlikely(!exc_type)) return 0; if (unlikely(PyTuple_Check(err))) return __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err); return __Pyx_PyErr_GivenExceptionMatches(exc_type, err); } #endif /* GetException */ #if CYTHON_FAST_THREAD_STATE static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) #else static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) #endif { PyObject *local_type, *local_value, *local_tb; #if CYTHON_FAST_THREAD_STATE PyObject *tmp_type, *tmp_value, *tmp_tb; local_type = tstate->curexc_type; local_value = tstate->curexc_value; local_tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; #else PyErr_Fetch(&local_type, &local_value, &local_tb); #endif PyErr_NormalizeException(&local_type, &local_value, &local_tb); #if CYTHON_FAST_THREAD_STATE if (unlikely(tstate->curexc_type)) #else if (unlikely(PyErr_Occurred())) #endif goto bad; #if PY_MAJOR_VERSION >= 3 if (local_tb) { if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0)) goto bad; } #endif Py_XINCREF(local_tb); Py_XINCREF(local_type); Py_XINCREF(local_value); *type = local_type; *value = local_value; *tb = local_tb; #if CYTHON_FAST_THREAD_STATE #if CYTHON_USE_EXC_INFO_STACK { _PyErr_StackItem *exc_info = tstate->exc_info; tmp_type = exc_info->exc_type; tmp_value = exc_info->exc_value; tmp_tb = exc_info->exc_traceback; exc_info->exc_type = local_type; exc_info->exc_value = local_value; exc_info->exc_traceback = local_tb; } #else tmp_type = tstate->exc_type; tmp_value = tstate->exc_value; tmp_tb = tstate->exc_traceback; tstate->exc_type = local_type; tstate->exc_value = local_value; tstate->exc_traceback = local_tb; #endif Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); #else PyErr_SetExcInfo(local_type, local_value, local_tb); #endif return 0; bad: *type = 0; *value = 0; *tb = 0; Py_XDECREF(local_type); Py_XDECREF(local_value); Py_XDECREF(local_tb); return -1; } /* BytesEquals */ static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) { #if CYTHON_COMPILING_IN_PYPY return PyObject_RichCompareBool(s1, s2, equals); #else if (s1 == s2) { return (equals == Py_EQ); } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) { const char *ps1, *ps2; Py_ssize_t length = PyBytes_GET_SIZE(s1); if (length != PyBytes_GET_SIZE(s2)) return (equals == Py_NE); ps1 = PyBytes_AS_STRING(s1); ps2 = PyBytes_AS_STRING(s2); if (ps1[0] != ps2[0]) { return (equals == Py_NE); } else if (length == 1) { return (equals == Py_EQ); } else { int result; #if CYTHON_USE_UNICODE_INTERNALS Py_hash_t hash1, hash2; hash1 = ((PyBytesObject*)s1)->ob_shash; hash2 = ((PyBytesObject*)s2)->ob_shash; if (hash1 != hash2 && hash1 != -1 && hash2 != -1) { return (equals == Py_NE); } #endif result = memcmp(ps1, ps2, (size_t)length); return (equals == Py_EQ) ? (result == 0) : (result != 0); } } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) { return (equals == Py_NE); } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) { return (equals == Py_NE); } else { int result; PyObject* py_result = PyObject_RichCompare(s1, s2, equals); if (!py_result) return -1; result = __Pyx_PyObject_IsTrue(py_result); Py_DECREF(py_result); return result; } #endif } /* UnicodeEquals */ static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) { #if CYTHON_COMPILING_IN_PYPY return PyObject_RichCompareBool(s1, s2, equals); #else #if PY_MAJOR_VERSION < 3 PyObject* owned_ref = NULL; #endif int s1_is_unicode, s2_is_unicode; if (s1 == s2) { goto return_eq; } s1_is_unicode = PyUnicode_CheckExact(s1); s2_is_unicode = PyUnicode_CheckExact(s2); #if PY_MAJOR_VERSION < 3 if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) { owned_ref = PyUnicode_FromObject(s2); if (unlikely(!owned_ref)) return -1; s2 = owned_ref; s2_is_unicode = 1; } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) { owned_ref = PyUnicode_FromObject(s1); if (unlikely(!owned_ref)) return -1; s1 = owned_ref; s1_is_unicode = 1; } else if (((!s2_is_unicode) & (!s1_is_unicode))) { return __Pyx_PyBytes_Equals(s1, s2, equals); } #endif if (s1_is_unicode & s2_is_unicode) { Py_ssize_t length; int kind; void *data1, *data2; if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0)) return -1; length = __Pyx_PyUnicode_GET_LENGTH(s1); if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) { goto return_ne; } #if CYTHON_USE_UNICODE_INTERNALS { Py_hash_t hash1, hash2; #if CYTHON_PEP393_ENABLED hash1 = ((PyASCIIObject*)s1)->hash; hash2 = ((PyASCIIObject*)s2)->hash; #else hash1 = ((PyUnicodeObject*)s1)->hash; hash2 = ((PyUnicodeObject*)s2)->hash; #endif if (hash1 != hash2 && hash1 != -1 && hash2 != -1) { goto return_ne; } } #endif kind = __Pyx_PyUnicode_KIND(s1); if (kind != __Pyx_PyUnicode_KIND(s2)) { goto return_ne; } data1 = __Pyx_PyUnicode_DATA(s1); data2 = __Pyx_PyUnicode_DATA(s2); if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) { goto return_ne; } else if (length == 1) { goto return_eq; } else { int result = memcmp(data1, data2, (size_t)(length * kind)); #if PY_MAJOR_VERSION < 3 Py_XDECREF(owned_ref); #endif return (equals == Py_EQ) ? (result == 0) : (result != 0); } } else if ((s1 == Py_None) & s2_is_unicode) { goto return_ne; } else if ((s2 == Py_None) & s1_is_unicode) { goto return_ne; } else { int result; PyObject* py_result = PyObject_RichCompare(s1, s2, equals); #if PY_MAJOR_VERSION < 3 Py_XDECREF(owned_ref); #endif if (!py_result) return -1; result = __Pyx_PyObject_IsTrue(py_result); Py_DECREF(py_result); return result; } return_eq: #if PY_MAJOR_VERSION < 3 Py_XDECREF(owned_ref); #endif return (equals == Py_EQ); return_ne: #if PY_MAJOR_VERSION < 3 Py_XDECREF(owned_ref); #endif return (equals == Py_NE); #endif } /* None */ static CYTHON_INLINE Py_ssize_t __Pyx_div_Py_ssize_t(Py_ssize_t a, Py_ssize_t b) { Py_ssize_t q = a / b; Py_ssize_t r = a - q*b; q -= ((r != 0) & ((r ^ b) < 0)); return q; } /* GetAttr */ static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) { #if CYTHON_USE_TYPE_SLOTS #if PY_MAJOR_VERSION >= 3 if (likely(PyUnicode_Check(n))) #else if (likely(PyString_Check(n))) #endif return __Pyx_PyObject_GetAttrStr(o, n); #endif return PyObject_GetAttr(o, n); } /* ObjectGetItem */ #if CYTHON_USE_TYPE_SLOTS static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject* index) { PyObject *runerr; Py_ssize_t key_value; PySequenceMethods *m = Py_TYPE(obj)->tp_as_sequence; if (unlikely(!(m && m->sq_item))) { PyErr_Format(PyExc_TypeError, "'%.200s' object is not subscriptable", Py_TYPE(obj)->tp_name); return NULL; } key_value = __Pyx_PyIndex_AsSsize_t(index); if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) { return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1); } if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) { PyErr_Clear(); PyErr_Format(PyExc_IndexError, "cannot fit '%.200s' into an index-sized integer", Py_TYPE(index)->tp_name); } return NULL; } static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key) { PyMappingMethods *m = Py_TYPE(obj)->tp_as_mapping; if (likely(m && m->mp_subscript)) { return m->mp_subscript(obj, key); } return __Pyx_PyObject_GetIndex(obj, key); } #endif /* decode_c_string */ static CYTHON_INLINE PyObject* __Pyx_decode_c_string( const char* cstring, Py_ssize_t start, Py_ssize_t stop, const char* encoding, const char* errors, PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)) { Py_ssize_t length; if (unlikely((start < 0) | (stop < 0))) { size_t slen = strlen(cstring); if (unlikely(slen > (size_t) PY_SSIZE_T_MAX)) { PyErr_SetString(PyExc_OverflowError, "c-string too long to convert to Python"); return NULL; } length = (Py_ssize_t) slen; if (start < 0) { start += length; if (start < 0) start = 0; } if (stop < 0) stop += length; } length = stop - start; if (unlikely(length <= 0)) return PyUnicode_FromUnicode(NULL, 0); cstring += start; if (decode_func) { return decode_func(cstring, length, errors); } else { return PyUnicode_Decode(cstring, length, encoding, errors); } } /* GetAttr3 */ static PyObject *__Pyx_GetAttr3Default(PyObject *d) { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) return NULL; __Pyx_PyErr_Clear(); Py_INCREF(d); return d; } static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *o, PyObject *n, PyObject *d) { PyObject *r = __Pyx_GetAttr(o, n); return (likely(r)) ? r : __Pyx_GetAttr3Default(d); } /* SwapException */ #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; #if CYTHON_USE_EXC_INFO_STACK _PyErr_StackItem *exc_info = tstate->exc_info; tmp_type = exc_info->exc_type; tmp_value = exc_info->exc_value; tmp_tb = exc_info->exc_traceback; exc_info->exc_type = *type; exc_info->exc_value = *value; exc_info->exc_traceback = *tb; #else tmp_type = tstate->exc_type; tmp_value = tstate->exc_value; tmp_tb = tstate->exc_traceback; tstate->exc_type = *type; tstate->exc_value = *value; tstate->exc_traceback = *tb; #endif *type = tmp_type; *value = tmp_value; *tb = tmp_tb; } #else static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb); PyErr_SetExcInfo(*type, *value, *tb); *type = tmp_type; *value = tmp_value; *tb = tmp_tb; } #endif /* Import */ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { PyObject *empty_list = 0; PyObject *module = 0; PyObject *global_dict = 0; PyObject *empty_dict = 0; PyObject *list; #if PY_MAJOR_VERSION < 3 PyObject *py_import; py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import); if (!py_import) goto bad; #endif if (from_list) list = from_list; else { empty_list = PyList_New(0); if (!empty_list) goto bad; list = empty_list; } global_dict = PyModule_GetDict(__pyx_m); if (!global_dict) goto bad; empty_dict = PyDict_New(); if (!empty_dict) goto bad; { #if PY_MAJOR_VERSION >= 3 if (level == -1) { if (strchr(__Pyx_MODULE_NAME, '.')) { module = PyImport_ImportModuleLevelObject( name, global_dict, empty_dict, list, 1); if (!module) { if (!PyErr_ExceptionMatches(PyExc_ImportError)) goto bad; PyErr_Clear(); } } level = 0; } #endif if (!module) { #if PY_MAJOR_VERSION < 3 PyObject *py_level = PyInt_FromLong(level); if (!py_level) goto bad; module = PyObject_CallFunctionObjArgs(py_import, name, global_dict, empty_dict, list, py_level, (PyObject *)NULL); Py_DECREF(py_level); #else module = PyImport_ImportModuleLevelObject( name, global_dict, empty_dict, list, level); #endif } } bad: #if PY_MAJOR_VERSION < 3 Py_XDECREF(py_import); #endif Py_XDECREF(empty_list); Py_XDECREF(empty_dict); return module; } /* FastTypeChecks */ #if CYTHON_COMPILING_IN_CPYTHON static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { while (a) { a = a->tp_base; if (a == b) return 1; } return b == &PyBaseObject_Type; } static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) { PyObject *mro; if (a == b) return 1; mro = a->tp_mro; if (likely(mro)) { Py_ssize_t i, n; n = PyTuple_GET_SIZE(mro); for (i = 0; i < n; i++) { if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b) return 1; } return 0; } return __Pyx_InBases(a, b); } #if PY_MAJOR_VERSION == 2 static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) { PyObject *exception, *value, *tb; int res; __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ErrFetch(&exception, &value, &tb); res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0; if (unlikely(res == -1)) { PyErr_WriteUnraisable(err); res = 0; } if (!res) { res = PyObject_IsSubclass(err, exc_type2); if (unlikely(res == -1)) { PyErr_WriteUnraisable(err); res = 0; } } __Pyx_ErrRestore(exception, value, tb); return res; } #else static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) { int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0; if (!res) { res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2); } return res; } #endif static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { Py_ssize_t i, n; assert(PyExceptionClass_Check(exc_type)); n = PyTuple_GET_SIZE(tuple); #if PY_MAJOR_VERSION >= 3 for (i=0; i= 0 || (x^b) >= 0)) return PyInt_FromLong(x); return PyLong_Type.tp_as_number->nb_add(op1, op2); } #endif #if CYTHON_USE_PYLONG_INTERNALS if (likely(PyLong_CheckExact(op1))) { const long b = intval; long a, x; #ifdef HAVE_LONG_LONG const PY_LONG_LONG llb = intval; PY_LONG_LONG lla, llx; #endif const digit* digits = ((PyLongObject*)op1)->ob_digit; const Py_ssize_t size = Py_SIZE(op1); if (likely(__Pyx_sst_abs(size) <= 1)) { a = likely(size) ? digits[0] : 0; if (size == -1) a = -a; } else { switch (size) { case -2: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case 2: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case -3: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case 3: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case -4: if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; case 4: if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); break; #ifdef HAVE_LONG_LONG } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); goto long_long; #endif } CYTHON_FALLTHROUGH; default: return PyLong_Type.tp_as_number->nb_add(op1, op2); } } x = a + b; return PyLong_FromLong(x); #ifdef HAVE_LONG_LONG long_long: llx = lla + llb; return PyLong_FromLongLong(llx); #endif } #endif if (PyFloat_CheckExact(op1)) { const long b = intval; double a = PyFloat_AS_DOUBLE(op1); double result; PyFPE_START_PROTECT("add", return NULL) result = ((double)a) + (double)b; PyFPE_END_PROTECT(result) return PyFloat_FromDouble(result); } return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2); } #endif /* None */ static CYTHON_INLINE long __Pyx_div_long(long a, long b) { long q = a / b; long r = a - q*b; q -= ((r != 0) & ((r ^ b) < 0)); return q; } /* WriteUnraisableException */ static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno, CYTHON_UNUSED int lineno, CYTHON_UNUSED const char *filename, int full_traceback, CYTHON_UNUSED int nogil) { PyObject *old_exc, *old_val, *old_tb; PyObject *ctx; __Pyx_PyThreadState_declare #ifdef WITH_THREAD PyGILState_STATE state; if (nogil) state = PyGILState_Ensure(); #ifdef _MSC_VER else state = (PyGILState_STATE)-1; #endif #endif __Pyx_PyThreadState_assign __Pyx_ErrFetch(&old_exc, &old_val, &old_tb); if (full_traceback) { Py_XINCREF(old_exc); Py_XINCREF(old_val); Py_XINCREF(old_tb); __Pyx_ErrRestore(old_exc, old_val, old_tb); PyErr_PrintEx(1); } #if PY_MAJOR_VERSION < 3 ctx = PyString_FromString(name); #else ctx = PyUnicode_FromString(name); #endif __Pyx_ErrRestore(old_exc, old_val, old_tb); if (!ctx) { PyErr_WriteUnraisable(Py_None); } else { PyErr_WriteUnraisable(ctx); Py_DECREF(ctx); } #ifdef WITH_THREAD if (nogil) PyGILState_Release(state); #endif } /* ImportFrom */ static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) { PyObject* value = __Pyx_PyObject_GetAttrStr(module, name); if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) { PyErr_Format(PyExc_ImportError, #if PY_MAJOR_VERSION < 3 "cannot import name %.230s", PyString_AS_STRING(name)); #else "cannot import name %S", name); #endif } return value; } /* HasAttr */ static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) { PyObject *r; if (unlikely(!__Pyx_PyBaseString_Check(n))) { PyErr_SetString(PyExc_TypeError, "hasattr(): attribute name must be string"); return -1; } r = __Pyx_GetAttr(o, n); if (unlikely(!r)) { PyErr_Clear(); return 0; } else { Py_DECREF(r); return 1; } } /* StringJoin */ #if !CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyBytes_Join(PyObject* sep, PyObject* values) { return PyObject_CallMethodObjArgs(sep, __pyx_n_s_join, values, NULL); } #endif /* PyObject_GenericGetAttrNoDict */ #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) { PyErr_Format(PyExc_AttributeError, #if PY_MAJOR_VERSION >= 3 "'%.50s' object has no attribute '%U'", tp->tp_name, attr_name); #else "'%.50s' object has no attribute '%.400s'", tp->tp_name, PyString_AS_STRING(attr_name)); #endif return NULL; } static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) { PyObject *descr; PyTypeObject *tp = Py_TYPE(obj); if (unlikely(!PyString_Check(attr_name))) { return PyObject_GenericGetAttr(obj, attr_name); } assert(!tp->tp_dictoffset); descr = _PyType_Lookup(tp, attr_name); if (unlikely(!descr)) { return __Pyx_RaiseGenericGetAttributeError(tp, attr_name); } Py_INCREF(descr); #if PY_MAJOR_VERSION < 3 if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS))) #endif { descrgetfunc f = Py_TYPE(descr)->tp_descr_get; if (unlikely(f)) { PyObject *res = f(descr, obj, (PyObject *)tp); Py_DECREF(descr); return res; } } return descr; } #endif /* PyObject_GenericGetAttr */ #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) { if (unlikely(Py_TYPE(obj)->tp_dictoffset)) { return PyObject_GenericGetAttr(obj, attr_name); } return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name); } #endif /* SetVTable */ static int __Pyx_SetVtable(PyObject *dict, void *vtable) { #if PY_VERSION_HEX >= 0x02070000 PyObject *ob = PyCapsule_New(vtable, 0, 0); #else PyObject *ob = PyCObject_FromVoidPtr(vtable, 0); #endif if (!ob) goto bad; if (PyDict_SetItem(dict, __pyx_n_s_pyx_vtable, ob) < 0) goto bad; Py_DECREF(ob); return 0; bad: Py_XDECREF(ob); return -1; } /* SetupReduce */ static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { int ret; PyObject *name_attr; name_attr = __Pyx_PyObject_GetAttrStr(meth, __pyx_n_s_name_2); if (likely(name_attr)) { ret = PyObject_RichCompareBool(name_attr, name, Py_EQ); } else { ret = -1; } if (unlikely(ret < 0)) { PyErr_Clear(); ret = 0; } Py_XDECREF(name_attr); return ret; } static int __Pyx_setup_reduce(PyObject* type_obj) { int ret = 0; PyObject *object_reduce = NULL; PyObject *object_reduce_ex = NULL; PyObject *reduce = NULL; PyObject *reduce_ex = NULL; PyObject *reduce_cython = NULL; PyObject *setstate = NULL; PyObject *setstate_cython = NULL; #if CYTHON_USE_PYTYPE_LOOKUP if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD; #else if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD; #endif #if CYTHON_USE_PYTYPE_LOOKUP object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; #else object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; #endif reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto BAD; if (reduce_ex == object_reduce_ex) { #if CYTHON_USE_PYTYPE_LOOKUP object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; #else object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; #endif reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD; if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD; ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD; ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD; setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); if (!setstate) PyErr_Clear(); if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD; ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD; ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD; } PyType_Modified((PyTypeObject*)type_obj); } } goto GOOD; BAD: if (!PyErr_Occurred()) PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); ret = -1; GOOD: #if !CYTHON_USE_PYTYPE_LOOKUP Py_XDECREF(object_reduce); Py_XDECREF(object_reduce_ex); #endif Py_XDECREF(reduce); Py_XDECREF(reduce_ex); Py_XDECREF(reduce_cython); Py_XDECREF(setstate); Py_XDECREF(setstate_cython); return ret; } /* TypeImport */ #ifndef __PYX_HAVE_RT_ImportType #define __PYX_HAVE_RT_ImportType static PyTypeObject *__Pyx_ImportType(PyObject *module, const char *module_name, const char *class_name, size_t size, enum __Pyx_ImportType_CheckSize check_size) { PyObject *result = 0; char warning[200]; Py_ssize_t basicsize; #ifdef Py_LIMITED_API PyObject *py_basicsize; #endif result = PyObject_GetAttrString(module, class_name); if (!result) goto bad; if (!PyType_Check(result)) { PyErr_Format(PyExc_TypeError, "%.200s.%.200s is not a type object", module_name, class_name); goto bad; } #ifndef Py_LIMITED_API basicsize = ((PyTypeObject *)result)->tp_basicsize; #else py_basicsize = PyObject_GetAttrString(result, "__basicsize__"); if (!py_basicsize) goto bad; basicsize = PyLong_AsSsize_t(py_basicsize); Py_DECREF(py_basicsize); py_basicsize = 0; if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred()) goto bad; #endif if ((size_t)basicsize < size) { PyErr_Format(PyExc_ValueError, "%.200s.%.200s size changed, may indicate binary incompatibility. " "Expected %zd from C header, got %zd from PyObject", module_name, class_name, size, basicsize); goto bad; } if (check_size == __Pyx_ImportType_CheckSize_Error && (size_t)basicsize != size) { PyErr_Format(PyExc_ValueError, "%.200s.%.200s size changed, may indicate binary incompatibility. " "Expected %zd from C header, got %zd from PyObject", module_name, class_name, size, basicsize); goto bad; } else if (check_size == __Pyx_ImportType_CheckSize_Warn && (size_t)basicsize > size) { PyOS_snprintf(warning, sizeof(warning), "%s.%s size changed, may indicate binary incompatibility. " "Expected %zd from C header, got %zd from PyObject", module_name, class_name, size, basicsize); if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad; } return (PyTypeObject *)result; bad: Py_XDECREF(result); return NULL; } #endif /* FetchCommonType */ static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) { PyObject* fake_module; PyTypeObject* cached_type = NULL; fake_module = PyImport_AddModule((char*) "_cython_" CYTHON_ABI); if (!fake_module) return NULL; Py_INCREF(fake_module); cached_type = (PyTypeObject*) PyObject_GetAttrString(fake_module, type->tp_name); if (cached_type) { if (!PyType_Check((PyObject*)cached_type)) { PyErr_Format(PyExc_TypeError, "Shared Cython type %.200s is not a type object", type->tp_name); goto bad; } if (cached_type->tp_basicsize != type->tp_basicsize) { PyErr_Format(PyExc_TypeError, "Shared Cython type %.200s has the wrong size, try recompiling", type->tp_name); goto bad; } } else { if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad; PyErr_Clear(); if (PyType_Ready(type) < 0) goto bad; if (PyObject_SetAttrString(fake_module, type->tp_name, (PyObject*) type) < 0) goto bad; Py_INCREF(type); cached_type = type; } done: Py_DECREF(fake_module); return cached_type; bad: Py_XDECREF(cached_type); cached_type = NULL; goto done; } /* CythonFunction */ #include static PyObject * __Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *closure) { if (unlikely(op->func_doc == NULL)) { if (op->func.m_ml->ml_doc) { #if PY_MAJOR_VERSION >= 3 op->func_doc = PyUnicode_FromString(op->func.m_ml->ml_doc); #else op->func_doc = PyString_FromString(op->func.m_ml->ml_doc); #endif if (unlikely(op->func_doc == NULL)) return NULL; } else { Py_INCREF(Py_None); return Py_None; } } Py_INCREF(op->func_doc); return op->func_doc; } static int __Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context) { PyObject *tmp = op->func_doc; if (value == NULL) { value = Py_None; } Py_INCREF(value); op->func_doc = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { if (unlikely(op->func_name == NULL)) { #if PY_MAJOR_VERSION >= 3 op->func_name = PyUnicode_InternFromString(op->func.m_ml->ml_name); #else op->func_name = PyString_InternFromString(op->func.m_ml->ml_name); #endif if (unlikely(op->func_name == NULL)) return NULL; } Py_INCREF(op->func_name); return op->func_name; } static int __Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context) { PyObject *tmp; #if PY_MAJOR_VERSION >= 3 if (unlikely(value == NULL || !PyUnicode_Check(value))) #else if (unlikely(value == NULL || !PyString_Check(value))) #endif { PyErr_SetString(PyExc_TypeError, "__name__ must be set to a string object"); return -1; } tmp = op->func_name; Py_INCREF(value); op->func_name = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { Py_INCREF(op->func_qualname); return op->func_qualname; } static int __Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context) { PyObject *tmp; #if PY_MAJOR_VERSION >= 3 if (unlikely(value == NULL || !PyUnicode_Check(value))) #else if (unlikely(value == NULL || !PyString_Check(value))) #endif { PyErr_SetString(PyExc_TypeError, "__qualname__ must be set to a string object"); return -1; } tmp = op->func_qualname; Py_INCREF(value); op->func_qualname = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_self(__pyx_CyFunctionObject *m, CYTHON_UNUSED void *closure) { PyObject *self; self = m->func_closure; if (self == NULL) self = Py_None; Py_INCREF(self); return self; } static PyObject * __Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { if (unlikely(op->func_dict == NULL)) { op->func_dict = PyDict_New(); if (unlikely(op->func_dict == NULL)) return NULL; } Py_INCREF(op->func_dict); return op->func_dict; } static int __Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context) { PyObject *tmp; if (unlikely(value == NULL)) { PyErr_SetString(PyExc_TypeError, "function's dictionary may not be deleted"); return -1; } if (unlikely(!PyDict_Check(value))) { PyErr_SetString(PyExc_TypeError, "setting function's dictionary to a non-dict"); return -1; } tmp = op->func_dict; Py_INCREF(value); op->func_dict = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { Py_INCREF(op->func_globals); return op->func_globals; } static PyObject * __Pyx_CyFunction_get_closure(CYTHON_UNUSED __pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { Py_INCREF(Py_None); return Py_None; } static PyObject * __Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { PyObject* result = (op->func_code) ? op->func_code : Py_None; Py_INCREF(result); return result; } static int __Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) { int result = 0; PyObject *res = op->defaults_getter((PyObject *) op); if (unlikely(!res)) return -1; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS op->defaults_tuple = PyTuple_GET_ITEM(res, 0); Py_INCREF(op->defaults_tuple); op->defaults_kwdict = PyTuple_GET_ITEM(res, 1); Py_INCREF(op->defaults_kwdict); #else op->defaults_tuple = PySequence_ITEM(res, 0); if (unlikely(!op->defaults_tuple)) result = -1; else { op->defaults_kwdict = PySequence_ITEM(res, 1); if (unlikely(!op->defaults_kwdict)) result = -1; } #endif Py_DECREF(res); return result; } static int __Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) { PyObject* tmp; if (!value) { value = Py_None; } else if (value != Py_None && !PyTuple_Check(value)) { PyErr_SetString(PyExc_TypeError, "__defaults__ must be set to a tuple object"); return -1; } Py_INCREF(value); tmp = op->defaults_tuple; op->defaults_tuple = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { PyObject* result = op->defaults_tuple; if (unlikely(!result)) { if (op->defaults_getter) { if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL; result = op->defaults_tuple; } else { result = Py_None; } } Py_INCREF(result); return result; } static int __Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) { PyObject* tmp; if (!value) { value = Py_None; } else if (value != Py_None && !PyDict_Check(value)) { PyErr_SetString(PyExc_TypeError, "__kwdefaults__ must be set to a dict object"); return -1; } Py_INCREF(value); tmp = op->defaults_kwdict; op->defaults_kwdict = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { PyObject* result = op->defaults_kwdict; if (unlikely(!result)) { if (op->defaults_getter) { if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL; result = op->defaults_kwdict; } else { result = Py_None; } } Py_INCREF(result); return result; } static int __Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) { PyObject* tmp; if (!value || value == Py_None) { value = NULL; } else if (!PyDict_Check(value)) { PyErr_SetString(PyExc_TypeError, "__annotations__ must be set to a dict object"); return -1; } Py_XINCREF(value); tmp = op->func_annotations; op->func_annotations = value; Py_XDECREF(tmp); return 0; } static PyObject * __Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { PyObject* result = op->func_annotations; if (unlikely(!result)) { result = PyDict_New(); if (unlikely(!result)) return NULL; op->func_annotations = result; } Py_INCREF(result); return result; } static PyGetSetDef __pyx_CyFunction_getsets[] = { {(char *) "func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0}, {(char *) "__doc__", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0}, {(char *) "func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0}, {(char *) "__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0}, {(char *) "__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0}, {(char *) "__self__", (getter)__Pyx_CyFunction_get_self, 0, 0, 0}, {(char *) "func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0}, {(char *) "__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0}, {(char *) "func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0}, {(char *) "__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0}, {(char *) "func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0}, {(char *) "__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0}, {(char *) "func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0}, {(char *) "__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0}, {(char *) "func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0}, {(char *) "__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0}, {(char *) "__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0}, {(char *) "__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0}, {0, 0, 0, 0, 0} }; static PyMemberDef __pyx_CyFunction_members[] = { {(char *) "__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), PY_WRITE_RESTRICTED, 0}, {0, 0, 0, 0, 0} }; static PyObject * __Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, CYTHON_UNUSED PyObject *args) { #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromString(m->func.m_ml->ml_name); #else return PyString_FromString(m->func.m_ml->ml_name); #endif } static PyMethodDef __pyx_CyFunction_methods[] = { {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0}, {0, 0, 0, 0} }; #if PY_VERSION_HEX < 0x030500A0 #define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist) #else #define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func.m_weakreflist) #endif static PyObject *__Pyx_CyFunction_New(PyTypeObject *type, PyMethodDef *ml, int flags, PyObject* qualname, PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) { __pyx_CyFunctionObject *op = PyObject_GC_New(__pyx_CyFunctionObject, type); if (op == NULL) return NULL; op->flags = flags; __Pyx_CyFunction_weakreflist(op) = NULL; op->func.m_ml = ml; op->func.m_self = (PyObject *) op; Py_XINCREF(closure); op->func_closure = closure; Py_XINCREF(module); op->func.m_module = module; op->func_dict = NULL; op->func_name = NULL; Py_INCREF(qualname); op->func_qualname = qualname; op->func_doc = NULL; op->func_classobj = NULL; op->func_globals = globals; Py_INCREF(op->func_globals); Py_XINCREF(code); op->func_code = code; op->defaults_pyobjects = 0; op->defaults = NULL; op->defaults_tuple = NULL; op->defaults_kwdict = NULL; op->defaults_getter = NULL; op->func_annotations = NULL; PyObject_GC_Track(op); return (PyObject *) op; } static int __Pyx_CyFunction_clear(__pyx_CyFunctionObject *m) { Py_CLEAR(m->func_closure); Py_CLEAR(m->func.m_module); Py_CLEAR(m->func_dict); Py_CLEAR(m->func_name); Py_CLEAR(m->func_qualname); Py_CLEAR(m->func_doc); Py_CLEAR(m->func_globals); Py_CLEAR(m->func_code); Py_CLEAR(m->func_classobj); Py_CLEAR(m->defaults_tuple); Py_CLEAR(m->defaults_kwdict); Py_CLEAR(m->func_annotations); if (m->defaults) { PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m); int i; for (i = 0; i < m->defaults_pyobjects; i++) Py_XDECREF(pydefaults[i]); PyObject_Free(m->defaults); m->defaults = NULL; } return 0; } static void __Pyx__CyFunction_dealloc(__pyx_CyFunctionObject *m) { if (__Pyx_CyFunction_weakreflist(m) != NULL) PyObject_ClearWeakRefs((PyObject *) m); __Pyx_CyFunction_clear(m); PyObject_GC_Del(m); } static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m) { PyObject_GC_UnTrack(m); __Pyx__CyFunction_dealloc(m); } static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg) { Py_VISIT(m->func_closure); Py_VISIT(m->func.m_module); Py_VISIT(m->func_dict); Py_VISIT(m->func_name); Py_VISIT(m->func_qualname); Py_VISIT(m->func_doc); Py_VISIT(m->func_globals); Py_VISIT(m->func_code); Py_VISIT(m->func_classobj); Py_VISIT(m->defaults_tuple); Py_VISIT(m->defaults_kwdict); if (m->defaults) { PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m); int i; for (i = 0; i < m->defaults_pyobjects; i++) Py_VISIT(pydefaults[i]); } return 0; } static PyObject *__Pyx_CyFunction_descr_get(PyObject *func, PyObject *obj, PyObject *type) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; if (m->flags & __Pyx_CYFUNCTION_STATICMETHOD) { Py_INCREF(func); return func; } if (m->flags & __Pyx_CYFUNCTION_CLASSMETHOD) { if (type == NULL) type = (PyObject *)(Py_TYPE(obj)); return __Pyx_PyMethod_New(func, type, (PyObject *)(Py_TYPE(type))); } if (obj == Py_None) obj = NULL; return __Pyx_PyMethod_New(func, obj, type); } static PyObject* __Pyx_CyFunction_repr(__pyx_CyFunctionObject *op) { #if PY_MAJOR_VERSION >= 3 return PyUnicode_FromFormat("", op->func_qualname, (void *)op); #else return PyString_FromFormat("", PyString_AsString(op->func_qualname), (void *)op); #endif } static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) { PyCFunctionObject* f = (PyCFunctionObject*)func; PyCFunction meth = f->m_ml->ml_meth; Py_ssize_t size; switch (f->m_ml->ml_flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) { case METH_VARARGS: if (likely(kw == NULL || PyDict_Size(kw) == 0)) return (*meth)(self, arg); break; case METH_VARARGS | METH_KEYWORDS: return (*(PyCFunctionWithKeywords)(void*)meth)(self, arg, kw); case METH_NOARGS: if (likely(kw == NULL || PyDict_Size(kw) == 0)) { size = PyTuple_GET_SIZE(arg); if (likely(size == 0)) return (*meth)(self, NULL); PyErr_Format(PyExc_TypeError, "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)", f->m_ml->ml_name, size); return NULL; } break; case METH_O: if (likely(kw == NULL || PyDict_Size(kw) == 0)) { size = PyTuple_GET_SIZE(arg); if (likely(size == 1)) { PyObject *result, *arg0; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS arg0 = PyTuple_GET_ITEM(arg, 0); #else arg0 = PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL; #endif result = (*meth)(self, arg0); #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS) Py_DECREF(arg0); #endif return result; } PyErr_Format(PyExc_TypeError, "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)", f->m_ml->ml_name, size); return NULL; } break; default: PyErr_SetString(PyExc_SystemError, "Bad call flags in " "__Pyx_CyFunction_Call. METH_OLDARGS is no " "longer supported!"); return NULL; } PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments", f->m_ml->ml_name); return NULL; } static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) { return __Pyx_CyFunction_CallMethod(func, ((PyCFunctionObject*)func)->m_self, arg, kw); } static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) { PyObject *result; __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func; if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) { Py_ssize_t argc; PyObject *new_args; PyObject *self; argc = PyTuple_GET_SIZE(args); new_args = PyTuple_GetSlice(args, 1, argc); if (unlikely(!new_args)) return NULL; self = PyTuple_GetItem(args, 0); if (unlikely(!self)) { Py_DECREF(new_args); return NULL; } result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw); Py_DECREF(new_args); } else { result = __Pyx_CyFunction_Call(func, args, kw); } return result; } static PyTypeObject __pyx_CyFunctionType_type = { PyVarObject_HEAD_INIT(0, 0) "cython_function_or_method", sizeof(__pyx_CyFunctionObject), 0, (destructor) __Pyx_CyFunction_dealloc, 0, 0, 0, #if PY_MAJOR_VERSION < 3 0, #else 0, #endif (reprfunc) __Pyx_CyFunction_repr, 0, 0, 0, 0, __Pyx_CyFunction_CallAsMethod, 0, 0, 0, 0, Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, 0, (traverseproc) __Pyx_CyFunction_traverse, (inquiry) __Pyx_CyFunction_clear, 0, #if PY_VERSION_HEX < 0x030500A0 offsetof(__pyx_CyFunctionObject, func_weakreflist), #else offsetof(PyCFunctionObject, m_weakreflist), #endif 0, 0, __pyx_CyFunction_methods, __pyx_CyFunction_members, __pyx_CyFunction_getsets, 0, 0, __Pyx_CyFunction_descr_get, 0, offsetof(__pyx_CyFunctionObject, func_dict), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, #if PY_VERSION_HEX >= 0x030400a1 0, #endif #if PY_VERSION_HEX >= 0x030800b1 0, #endif }; static int __pyx_CyFunction_init(void) { __pyx_CyFunctionType = __Pyx_FetchCommonType(&__pyx_CyFunctionType_type); if (unlikely(__pyx_CyFunctionType == NULL)) { return -1; } return 0; } static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *func, size_t size, int pyobjects) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->defaults = PyObject_Malloc(size); if (unlikely(!m->defaults)) return PyErr_NoMemory(); memset(m->defaults, 0, size); m->defaults_pyobjects = pyobjects; return m->defaults; } static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->defaults_tuple = tuple; Py_INCREF(tuple); } static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->defaults_kwdict = dict; Py_INCREF(dict); } static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) { __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; m->func_annotations = dict; Py_INCREF(dict); } /* FusedFunction */ static PyObject * __pyx_FusedFunction_New(PyTypeObject *type, PyMethodDef *ml, int flags, PyObject *qualname, PyObject *self, PyObject *module, PyObject *globals, PyObject *code) { __pyx_FusedFunctionObject *fusedfunc = (__pyx_FusedFunctionObject *) __Pyx_CyFunction_New(type, ml, flags, qualname, self, module, globals, code); if (!fusedfunc) return NULL; fusedfunc->__signatures__ = NULL; fusedfunc->type = NULL; fusedfunc->self = NULL; return (PyObject *) fusedfunc; } static void __pyx_FusedFunction_dealloc(__pyx_FusedFunctionObject *self) { PyObject_GC_UnTrack(self); Py_CLEAR(self->self); Py_CLEAR(self->type); Py_CLEAR(self->__signatures__); __Pyx__CyFunction_dealloc((__pyx_CyFunctionObject *) self); } static int __pyx_FusedFunction_traverse(__pyx_FusedFunctionObject *self, visitproc visit, void *arg) { Py_VISIT(self->self); Py_VISIT(self->type); Py_VISIT(self->__signatures__); return __Pyx_CyFunction_traverse((__pyx_CyFunctionObject *) self, visit, arg); } static int __pyx_FusedFunction_clear(__pyx_FusedFunctionObject *self) { Py_CLEAR(self->self); Py_CLEAR(self->type); Py_CLEAR(self->__signatures__); return __Pyx_CyFunction_clear((__pyx_CyFunctionObject *) self); } static PyObject * __pyx_FusedFunction_descr_get(PyObject *self, PyObject *obj, PyObject *type) { __pyx_FusedFunctionObject *func, *meth; func = (__pyx_FusedFunctionObject *) self; if (func->self || func->func.flags & __Pyx_CYFUNCTION_STATICMETHOD) { Py_INCREF(self); return self; } if (obj == Py_None) obj = NULL; meth = (__pyx_FusedFunctionObject *) __pyx_FusedFunction_NewEx( ((PyCFunctionObject *) func)->m_ml, ((__pyx_CyFunctionObject *) func)->flags, ((__pyx_CyFunctionObject *) func)->func_qualname, ((__pyx_CyFunctionObject *) func)->func_closure, ((PyCFunctionObject *) func)->m_module, ((__pyx_CyFunctionObject *) func)->func_globals, ((__pyx_CyFunctionObject *) func)->func_code); if (!meth) return NULL; Py_XINCREF(func->func.func_classobj); meth->func.func_classobj = func->func.func_classobj; Py_XINCREF(func->__signatures__); meth->__signatures__ = func->__signatures__; Py_XINCREF(type); meth->type = type; Py_XINCREF(func->func.defaults_tuple); meth->func.defaults_tuple = func->func.defaults_tuple; if (func->func.flags & __Pyx_CYFUNCTION_CLASSMETHOD) obj = type; Py_XINCREF(obj); meth->self = obj; return (PyObject *) meth; } static PyObject * _obj_to_str(PyObject *obj) { if (PyType_Check(obj)) return PyObject_GetAttr(obj, __pyx_n_s_name_2); else return PyObject_Str(obj); } static PyObject * __pyx_FusedFunction_getitem(__pyx_FusedFunctionObject *self, PyObject *idx) { PyObject *signature = NULL; PyObject *unbound_result_func; PyObject *result_func = NULL; if (self->__signatures__ == NULL) { PyErr_SetString(PyExc_TypeError, "Function is not fused"); return NULL; } if (PyTuple_Check(idx)) { PyObject *list = PyList_New(0); Py_ssize_t n = PyTuple_GET_SIZE(idx); PyObject *string = NULL; PyObject *sep = NULL; int i; if (!list) return NULL; for (i = 0; i < n; i++) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS PyObject *item = PyTuple_GET_ITEM(idx, i); #else PyObject *item = PySequence_ITEM(idx, i); #endif string = _obj_to_str(item); #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS) Py_DECREF(item); #endif if (!string || PyList_Append(list, string) < 0) goto __pyx_err; Py_DECREF(string); } sep = PyUnicode_FromString("|"); if (sep) signature = PyUnicode_Join(sep, list); __pyx_err: ; Py_DECREF(list); Py_XDECREF(sep); } else { signature = _obj_to_str(idx); } if (!signature) return NULL; unbound_result_func = PyObject_GetItem(self->__signatures__, signature); if (unbound_result_func) { if (self->self || self->type) { __pyx_FusedFunctionObject *unbound = (__pyx_FusedFunctionObject *) unbound_result_func; Py_CLEAR(unbound->func.func_classobj); Py_XINCREF(self->func.func_classobj); unbound->func.func_classobj = self->func.func_classobj; result_func = __pyx_FusedFunction_descr_get(unbound_result_func, self->self, self->type); } else { result_func = unbound_result_func; Py_INCREF(result_func); } } Py_DECREF(signature); Py_XDECREF(unbound_result_func); return result_func; } static PyObject * __pyx_FusedFunction_callfunction(PyObject *func, PyObject *args, PyObject *kw) { __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func; int static_specialized = (cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD && !((__pyx_FusedFunctionObject *) func)->__signatures__); if (cyfunc->flags & __Pyx_CYFUNCTION_CCLASS && !static_specialized) { return __Pyx_CyFunction_CallAsMethod(func, args, kw); } else { return __Pyx_CyFunction_Call(func, args, kw); } } static PyObject * __pyx_FusedFunction_call(PyObject *func, PyObject *args, PyObject *kw) { __pyx_FusedFunctionObject *binding_func = (__pyx_FusedFunctionObject *) func; Py_ssize_t argc = PyTuple_GET_SIZE(args); PyObject *new_args = NULL; __pyx_FusedFunctionObject *new_func = NULL; PyObject *result = NULL; PyObject *self = NULL; int is_staticmethod = binding_func->func.flags & __Pyx_CYFUNCTION_STATICMETHOD; int is_classmethod = binding_func->func.flags & __Pyx_CYFUNCTION_CLASSMETHOD; if (binding_func->self) { Py_ssize_t i; new_args = PyTuple_New(argc + 1); if (!new_args) return NULL; self = binding_func->self; #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS) Py_INCREF(self); #endif Py_INCREF(self); PyTuple_SET_ITEM(new_args, 0, self); for (i = 0; i < argc; i++) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS PyObject *item = PyTuple_GET_ITEM(args, i); Py_INCREF(item); #else PyObject *item = PySequence_ITEM(args, i); if (unlikely(!item)) goto bad; #endif PyTuple_SET_ITEM(new_args, i + 1, item); } args = new_args; } else if (binding_func->type) { if (argc < 1) { PyErr_SetString(PyExc_TypeError, "Need at least one argument, 0 given."); return NULL; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS self = PyTuple_GET_ITEM(args, 0); #else self = PySequence_ITEM(args, 0); if (unlikely(!self)) return NULL; #endif } if (self && !is_classmethod && !is_staticmethod) { int is_instance = PyObject_IsInstance(self, binding_func->type); if (unlikely(!is_instance)) { PyErr_Format(PyExc_TypeError, "First argument should be of type %.200s, got %.200s.", ((PyTypeObject *) binding_func->type)->tp_name, self->ob_type->tp_name); goto bad; } else if (unlikely(is_instance == -1)) { goto bad; } } #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS) Py_XDECREF(self); self = NULL; #endif if (binding_func->__signatures__) { PyObject *tup; if (is_staticmethod && binding_func->func.flags & __Pyx_CYFUNCTION_CCLASS) { tup = PyTuple_Pack(3, args, kw == NULL ? Py_None : kw, binding_func->func.defaults_tuple); if (unlikely(!tup)) goto bad; new_func = (__pyx_FusedFunctionObject *) __Pyx_CyFunction_CallMethod( func, binding_func->__signatures__, tup, NULL); } else { tup = PyTuple_Pack(4, binding_func->__signatures__, args, kw == NULL ? Py_None : kw, binding_func->func.defaults_tuple); if (unlikely(!tup)) goto bad; new_func = (__pyx_FusedFunctionObject *) __pyx_FusedFunction_callfunction(func, tup, NULL); } Py_DECREF(tup); if (unlikely(!new_func)) goto bad; Py_XINCREF(binding_func->func.func_classobj); Py_CLEAR(new_func->func.func_classobj); new_func->func.func_classobj = binding_func->func.func_classobj; func = (PyObject *) new_func; } result = __pyx_FusedFunction_callfunction(func, args, kw); bad: #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS) Py_XDECREF(self); #endif Py_XDECREF(new_args); Py_XDECREF((PyObject *) new_func); return result; } static PyMemberDef __pyx_FusedFunction_members[] = { {(char *) "__signatures__", T_OBJECT, offsetof(__pyx_FusedFunctionObject, __signatures__), READONLY, 0}, {0, 0, 0, 0, 0}, }; static PyMappingMethods __pyx_FusedFunction_mapping_methods = { 0, (binaryfunc) __pyx_FusedFunction_getitem, 0, }; static PyTypeObject __pyx_FusedFunctionType_type = { PyVarObject_HEAD_INIT(0, 0) "fused_cython_function", sizeof(__pyx_FusedFunctionObject), 0, (destructor) __pyx_FusedFunction_dealloc, 0, 0, 0, #if PY_MAJOR_VERSION < 3 0, #else 0, #endif 0, 0, 0, &__pyx_FusedFunction_mapping_methods, 0, (ternaryfunc) __pyx_FusedFunction_call, 0, 0, 0, 0, Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE, 0, (traverseproc) __pyx_FusedFunction_traverse, (inquiry) __pyx_FusedFunction_clear, 0, 0, 0, 0, 0, __pyx_FusedFunction_members, __pyx_CyFunction_getsets, &__pyx_CyFunctionType_type, 0, __pyx_FusedFunction_descr_get, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, #if PY_VERSION_HEX >= 0x030400a1 0, #endif #if PY_VERSION_HEX >= 0x030800b1 0, #endif }; static int __pyx_FusedFunction_init(void) { __pyx_FusedFunctionType = __Pyx_FetchCommonType(&__pyx_FusedFunctionType_type); if (__pyx_FusedFunctionType == NULL) { return -1; } return 0; } /* CLineInTraceback */ #ifndef CYTHON_CLINE_IN_TRACEBACK static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { PyObject *use_cline; PyObject *ptype, *pvalue, *ptraceback; #if CYTHON_COMPILING_IN_CPYTHON PyObject **cython_runtime_dict; #endif if (unlikely(!__pyx_cython_runtime)) { return c_line; } __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); #if CYTHON_COMPILING_IN_CPYTHON cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime); if (likely(cython_runtime_dict)) { __PYX_PY_DICT_LOOKUP_IF_MODIFIED( use_cline, *cython_runtime_dict, __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback)) } else #endif { PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback); if (use_cline_obj) { use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True; Py_DECREF(use_cline_obj); } else { PyErr_Clear(); use_cline = NULL; } } if (!use_cline) { c_line = 0; PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); } else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { c_line = 0; } __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); return c_line; } #endif /* CodeObjectCache */ static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { int start = 0, mid = 0, end = count - 1; if (end >= 0 && code_line > entries[end].code_line) { return count; } while (start < end) { mid = start + (end - start) / 2; if (code_line < entries[mid].code_line) { end = mid; } else if (code_line > entries[mid].code_line) { start = mid + 1; } else { return mid; } } if (code_line <= entries[mid].code_line) { return mid; } else { return mid + 1; } } static PyCodeObject *__pyx_find_code_object(int code_line) { PyCodeObject* code_object; int pos; if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) { return NULL; } pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) { return NULL; } code_object = __pyx_code_cache.entries[pos].code_object; Py_INCREF(code_object); return code_object; } static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { int pos, i; __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; if (unlikely(!code_line)) { return; } if (unlikely(!entries)) { entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); if (likely(entries)) { __pyx_code_cache.entries = entries; __pyx_code_cache.max_count = 64; __pyx_code_cache.count = 1; entries[0].code_line = code_line; entries[0].code_object = code_object; Py_INCREF(code_object); } return; } pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) { PyCodeObject* tmp = entries[pos].code_object; entries[pos].code_object = code_object; Py_DECREF(tmp); return; } if (__pyx_code_cache.count == __pyx_code_cache.max_count) { int new_max = __pyx_code_cache.max_count + 64; entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); if (unlikely(!entries)) { return; } __pyx_code_cache.entries = entries; __pyx_code_cache.max_count = new_max; } for (i=__pyx_code_cache.count; i>pos; i--) { entries[i] = entries[i-1]; } entries[pos].code_line = code_line; entries[pos].code_object = code_object; __pyx_code_cache.count++; Py_INCREF(code_object); } /* AddTraceback */ #include "compile.h" #include "frameobject.h" #include "traceback.h" static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( const char *funcname, int c_line, int py_line, const char *filename) { PyCodeObject *py_code = 0; PyObject *py_srcfile = 0; PyObject *py_funcname = 0; #if PY_MAJOR_VERSION < 3 py_srcfile = PyString_FromString(filename); #else py_srcfile = PyUnicode_FromString(filename); #endif if (!py_srcfile) goto bad; if (c_line) { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); #else py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); #endif } else { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromString(funcname); #else py_funcname = PyUnicode_FromString(funcname); #endif } if (!py_funcname) goto bad; py_code = __Pyx_PyCode_New( 0, 0, 0, 0, 0, __pyx_empty_bytes, /*PyObject *code,*/ __pyx_empty_tuple, /*PyObject *consts,*/ __pyx_empty_tuple, /*PyObject *names,*/ __pyx_empty_tuple, /*PyObject *varnames,*/ __pyx_empty_tuple, /*PyObject *freevars,*/ __pyx_empty_tuple, /*PyObject *cellvars,*/ py_srcfile, /*PyObject *filename,*/ py_funcname, /*PyObject *name,*/ py_line, __pyx_empty_bytes /*PyObject *lnotab*/ ); Py_DECREF(py_srcfile); Py_DECREF(py_funcname); return py_code; bad: Py_XDECREF(py_srcfile); Py_XDECREF(py_funcname); return NULL; } static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename) { PyCodeObject *py_code = 0; PyFrameObject *py_frame = 0; PyThreadState *tstate = __Pyx_PyThreadState_Current; if (c_line) { c_line = __Pyx_CLineForTraceback(tstate, c_line); } py_code = __pyx_find_code_object(c_line ? -c_line : py_line); if (!py_code) { py_code = __Pyx_CreateCodeObjectForTraceback( funcname, c_line, py_line, filename); if (!py_code) goto bad; __pyx_insert_code_object(c_line ? -c_line : py_line, py_code); } py_frame = PyFrame_New( tstate, /*PyThreadState *tstate,*/ py_code, /*PyCodeObject *code,*/ __pyx_d, /*PyObject *globals,*/ 0 /*PyObject *locals*/ ); if (!py_frame) goto bad; __Pyx_PyFrame_SetLineNumber(py_frame, py_line); PyTraceBack_Here(py_frame); bad: Py_XDECREF(py_code); Py_XDECREF(py_frame); } #if PY_MAJOR_VERSION < 3 static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags) { if (PyObject_CheckBuffer(obj)) return PyObject_GetBuffer(obj, view, flags); if (__Pyx_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) return __pyx_pw_5numpy_7ndarray_1__getbuffer__(obj, view, flags); if (__Pyx_TypeCheck(obj, __pyx_array_type)) return __pyx_array_getbuffer(obj, view, flags); if (__Pyx_TypeCheck(obj, __pyx_memoryview_type)) return __pyx_memoryview_getbuffer(obj, view, flags); PyErr_Format(PyExc_TypeError, "'%.200s' does not have the buffer interface", Py_TYPE(obj)->tp_name); return -1; } static void __Pyx_ReleaseBuffer(Py_buffer *view) { PyObject *obj = view->obj; if (!obj) return; if (PyObject_CheckBuffer(obj)) { PyBuffer_Release(view); return; } if ((0)) {} else if (__Pyx_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) __pyx_pw_5numpy_7ndarray_3__releasebuffer__(obj, view); view->obj = NULL; Py_DECREF(obj); } #endif /* MemviewSliceIsContig */ static int __pyx_memviewslice_is_contig(const __Pyx_memviewslice mvs, char order, int ndim) { int i, index, step, start; Py_ssize_t itemsize = mvs.memview->view.itemsize; if (order == 'F') { step = 1; start = 0; } else { step = -1; start = ndim - 1; } for (i = 0; i < ndim; i++) { index = start + step * i; if (mvs.suboffsets[index] >= 0 || mvs.strides[index] != itemsize) return 0; itemsize *= mvs.shape[index]; } return 1; } /* OverlappingSlices */ static void __pyx_get_array_memory_extents(__Pyx_memviewslice *slice, void **out_start, void **out_end, int ndim, size_t itemsize) { char *start, *end; int i; start = end = slice->data; for (i = 0; i < ndim; i++) { Py_ssize_t stride = slice->strides[i]; Py_ssize_t extent = slice->shape[i]; if (extent == 0) { *out_start = *out_end = start; return; } else { if (stride > 0) end += stride * (extent - 1); else start += stride * (extent - 1); } } *out_start = start; *out_end = end + itemsize; } static int __pyx_slices_overlap(__Pyx_memviewslice *slice1, __Pyx_memviewslice *slice2, int ndim, size_t itemsize) { void *start1, *end1, *start2, *end2; __pyx_get_array_memory_extents(slice1, &start1, &end1, ndim, itemsize); __pyx_get_array_memory_extents(slice2, &start2, &end2, ndim, itemsize); return (start1 < end2) && (start2 < end1); } /* Capsule */ static CYTHON_INLINE PyObject * __pyx_capsule_create(void *p, CYTHON_UNUSED const char *sig) { PyObject *cobj; #if PY_VERSION_HEX >= 0x02070000 cobj = PyCapsule_New(p, sig, NULL); #else cobj = PyCObject_FromVoidPtr(p, NULL); #endif return cobj; } /* IsLittleEndian */ static CYTHON_INLINE int __Pyx_Is_Little_Endian(void) { union { uint32_t u32; uint8_t u8[4]; } S; S.u32 = 0x01020304; return S.u8[0] == 4; } /* BufferFormatCheck */ static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx, __Pyx_BufFmt_StackElem* stack, __Pyx_TypeInfo* type) { stack[0].field = &ctx->root; stack[0].parent_offset = 0; ctx->root.type = type; ctx->root.name = "buffer dtype"; ctx->root.offset = 0; ctx->head = stack; ctx->head->field = &ctx->root; ctx->fmt_offset = 0; ctx->head->parent_offset = 0; ctx->new_packmode = '@'; ctx->enc_packmode = '@'; ctx->new_count = 1; ctx->enc_count = 0; ctx->enc_type = 0; ctx->is_complex = 0; ctx->is_valid_array = 0; ctx->struct_alignment = 0; while (type->typegroup == 'S') { ++ctx->head; ctx->head->field = type->fields; ctx->head->parent_offset = 0; type = type->fields->type; } } static int __Pyx_BufFmt_ParseNumber(const char** ts) { int count; const char* t = *ts; if (*t < '0' || *t > '9') { return -1; } else { count = *t++ - '0'; while (*t >= '0' && *t <= '9') { count *= 10; count += *t++ - '0'; } } *ts = t; return count; } static int __Pyx_BufFmt_ExpectNumber(const char **ts) { int number = __Pyx_BufFmt_ParseNumber(ts); if (number == -1) PyErr_Format(PyExc_ValueError,\ "Does not understand character buffer dtype format string ('%c')", **ts); return number; } static void __Pyx_BufFmt_RaiseUnexpectedChar(char ch) { PyErr_Format(PyExc_ValueError, "Unexpected format string character: '%c'", ch); } static const char* __Pyx_BufFmt_DescribeTypeChar(char ch, int is_complex) { switch (ch) { case 'c': return "'char'"; case 'b': return "'signed char'"; case 'B': return "'unsigned char'"; case 'h': return "'short'"; case 'H': return "'unsigned short'"; case 'i': return "'int'"; case 'I': return "'unsigned int'"; case 'l': return "'long'"; case 'L': return "'unsigned long'"; case 'q': return "'long long'"; case 'Q': return "'unsigned long long'"; case 'f': return (is_complex ? "'complex float'" : "'float'"); case 'd': return (is_complex ? "'complex double'" : "'double'"); case 'g': return (is_complex ? "'complex long double'" : "'long double'"); case 'T': return "a struct"; case 'O': return "Python object"; case 'P': return "a pointer"; case 's': case 'p': return "a string"; case 0: return "end"; default: return "unparseable format string"; } } static size_t __Pyx_BufFmt_TypeCharToStandardSize(char ch, int is_complex) { switch (ch) { case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; case 'h': case 'H': return 2; case 'i': case 'I': case 'l': case 'L': return 4; case 'q': case 'Q': return 8; case 'f': return (is_complex ? 8 : 4); case 'd': return (is_complex ? 16 : 8); case 'g': { PyErr_SetString(PyExc_ValueError, "Python does not define a standard format string size for long double ('g').."); return 0; } case 'O': case 'P': return sizeof(void*); default: __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } static size_t __Pyx_BufFmt_TypeCharToNativeSize(char ch, int is_complex) { switch (ch) { case 'c': case 'b': case 'B': case 's': case 'p': return 1; case 'h': case 'H': return sizeof(short); case 'i': case 'I': return sizeof(int); case 'l': case 'L': return sizeof(long); #ifdef HAVE_LONG_LONG case 'q': case 'Q': return sizeof(PY_LONG_LONG); #endif case 'f': return sizeof(float) * (is_complex ? 2 : 1); case 'd': return sizeof(double) * (is_complex ? 2 : 1); case 'g': return sizeof(long double) * (is_complex ? 2 : 1); case 'O': case 'P': return sizeof(void*); default: { __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } } typedef struct { char c; short x; } __Pyx_st_short; typedef struct { char c; int x; } __Pyx_st_int; typedef struct { char c; long x; } __Pyx_st_long; typedef struct { char c; float x; } __Pyx_st_float; typedef struct { char c; double x; } __Pyx_st_double; typedef struct { char c; long double x; } __Pyx_st_longdouble; typedef struct { char c; void *x; } __Pyx_st_void_p; #ifdef HAVE_LONG_LONG typedef struct { char c; PY_LONG_LONG x; } __Pyx_st_longlong; #endif static size_t __Pyx_BufFmt_TypeCharToAlignment(char ch, CYTHON_UNUSED int is_complex) { switch (ch) { case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; case 'h': case 'H': return sizeof(__Pyx_st_short) - sizeof(short); case 'i': case 'I': return sizeof(__Pyx_st_int) - sizeof(int); case 'l': case 'L': return sizeof(__Pyx_st_long) - sizeof(long); #ifdef HAVE_LONG_LONG case 'q': case 'Q': return sizeof(__Pyx_st_longlong) - sizeof(PY_LONG_LONG); #endif case 'f': return sizeof(__Pyx_st_float) - sizeof(float); case 'd': return sizeof(__Pyx_st_double) - sizeof(double); case 'g': return sizeof(__Pyx_st_longdouble) - sizeof(long double); case 'P': case 'O': return sizeof(__Pyx_st_void_p) - sizeof(void*); default: __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } /* These are for computing the padding at the end of the struct to align on the first member of the struct. This will probably the same as above, but we don't have any guarantees. */ typedef struct { short x; char c; } __Pyx_pad_short; typedef struct { int x; char c; } __Pyx_pad_int; typedef struct { long x; char c; } __Pyx_pad_long; typedef struct { float x; char c; } __Pyx_pad_float; typedef struct { double x; char c; } __Pyx_pad_double; typedef struct { long double x; char c; } __Pyx_pad_longdouble; typedef struct { void *x; char c; } __Pyx_pad_void_p; #ifdef HAVE_LONG_LONG typedef struct { PY_LONG_LONG x; char c; } __Pyx_pad_longlong; #endif static size_t __Pyx_BufFmt_TypeCharToPadding(char ch, CYTHON_UNUSED int is_complex) { switch (ch) { case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; case 'h': case 'H': return sizeof(__Pyx_pad_short) - sizeof(short); case 'i': case 'I': return sizeof(__Pyx_pad_int) - sizeof(int); case 'l': case 'L': return sizeof(__Pyx_pad_long) - sizeof(long); #ifdef HAVE_LONG_LONG case 'q': case 'Q': return sizeof(__Pyx_pad_longlong) - sizeof(PY_LONG_LONG); #endif case 'f': return sizeof(__Pyx_pad_float) - sizeof(float); case 'd': return sizeof(__Pyx_pad_double) - sizeof(double); case 'g': return sizeof(__Pyx_pad_longdouble) - sizeof(long double); case 'P': case 'O': return sizeof(__Pyx_pad_void_p) - sizeof(void*); default: __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } static char __Pyx_BufFmt_TypeCharToGroup(char ch, int is_complex) { switch (ch) { case 'c': return 'H'; case 'b': case 'h': case 'i': case 'l': case 'q': case 's': case 'p': return 'I'; case 'B': case 'H': case 'I': case 'L': case 'Q': return 'U'; case 'f': case 'd': case 'g': return (is_complex ? 'C' : 'R'); case 'O': return 'O'; case 'P': return 'P'; default: { __Pyx_BufFmt_RaiseUnexpectedChar(ch); return 0; } } } static void __Pyx_BufFmt_RaiseExpected(__Pyx_BufFmt_Context* ctx) { if (ctx->head == NULL || ctx->head->field == &ctx->root) { const char* expected; const char* quote; if (ctx->head == NULL) { expected = "end"; quote = ""; } else { expected = ctx->head->field->type->name; quote = "'"; } PyErr_Format(PyExc_ValueError, "Buffer dtype mismatch, expected %s%s%s but got %s", quote, expected, quote, __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex)); } else { __Pyx_StructField* field = ctx->head->field; __Pyx_StructField* parent = (ctx->head - 1)->field; PyErr_Format(PyExc_ValueError, "Buffer dtype mismatch, expected '%s' but got %s in '%s.%s'", field->type->name, __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex), parent->type->name, field->name); } } static int __Pyx_BufFmt_ProcessTypeChunk(__Pyx_BufFmt_Context* ctx) { char group; size_t size, offset, arraysize = 1; if (ctx->enc_type == 0) return 0; if (ctx->head->field->type->arraysize[0]) { int i, ndim = 0; if (ctx->enc_type == 's' || ctx->enc_type == 'p') { ctx->is_valid_array = ctx->head->field->type->ndim == 1; ndim = 1; if (ctx->enc_count != ctx->head->field->type->arraysize[0]) { PyErr_Format(PyExc_ValueError, "Expected a dimension of size %zu, got %zu", ctx->head->field->type->arraysize[0], ctx->enc_count); return -1; } } if (!ctx->is_valid_array) { PyErr_Format(PyExc_ValueError, "Expected %d dimensions, got %d", ctx->head->field->type->ndim, ndim); return -1; } for (i = 0; i < ctx->head->field->type->ndim; i++) { arraysize *= ctx->head->field->type->arraysize[i]; } ctx->is_valid_array = 0; ctx->enc_count = 1; } group = __Pyx_BufFmt_TypeCharToGroup(ctx->enc_type, ctx->is_complex); do { __Pyx_StructField* field = ctx->head->field; __Pyx_TypeInfo* type = field->type; if (ctx->enc_packmode == '@' || ctx->enc_packmode == '^') { size = __Pyx_BufFmt_TypeCharToNativeSize(ctx->enc_type, ctx->is_complex); } else { size = __Pyx_BufFmt_TypeCharToStandardSize(ctx->enc_type, ctx->is_complex); } if (ctx->enc_packmode == '@') { size_t align_at = __Pyx_BufFmt_TypeCharToAlignment(ctx->enc_type, ctx->is_complex); size_t align_mod_offset; if (align_at == 0) return -1; align_mod_offset = ctx->fmt_offset % align_at; if (align_mod_offset > 0) ctx->fmt_offset += align_at - align_mod_offset; if (ctx->struct_alignment == 0) ctx->struct_alignment = __Pyx_BufFmt_TypeCharToPadding(ctx->enc_type, ctx->is_complex); } if (type->size != size || type->typegroup != group) { if (type->typegroup == 'C' && type->fields != NULL) { size_t parent_offset = ctx->head->parent_offset + field->offset; ++ctx->head; ctx->head->field = type->fields; ctx->head->parent_offset = parent_offset; continue; } if ((type->typegroup == 'H' || group == 'H') && type->size == size) { } else { __Pyx_BufFmt_RaiseExpected(ctx); return -1; } } offset = ctx->head->parent_offset + field->offset; if (ctx->fmt_offset != offset) { PyErr_Format(PyExc_ValueError, "Buffer dtype mismatch; next field is at offset %" CYTHON_FORMAT_SSIZE_T "d but %" CYTHON_FORMAT_SSIZE_T "d expected", (Py_ssize_t)ctx->fmt_offset, (Py_ssize_t)offset); return -1; } ctx->fmt_offset += size; if (arraysize) ctx->fmt_offset += (arraysize - 1) * size; --ctx->enc_count; while (1) { if (field == &ctx->root) { ctx->head = NULL; if (ctx->enc_count != 0) { __Pyx_BufFmt_RaiseExpected(ctx); return -1; } break; } ctx->head->field = ++field; if (field->type == NULL) { --ctx->head; field = ctx->head->field; continue; } else if (field->type->typegroup == 'S') { size_t parent_offset = ctx->head->parent_offset + field->offset; if (field->type->fields->type == NULL) continue; field = field->type->fields; ++ctx->head; ctx->head->field = field; ctx->head->parent_offset = parent_offset; break; } else { break; } } } while (ctx->enc_count); ctx->enc_type = 0; ctx->is_complex = 0; return 0; } static PyObject * __pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp) { const char *ts = *tsp; int i = 0, number; int ndim = ctx->head->field->type->ndim; ; ++ts; if (ctx->new_count != 1) { PyErr_SetString(PyExc_ValueError, "Cannot handle repeated arrays in format string"); return NULL; } if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; while (*ts && *ts != ')') { switch (*ts) { case ' ': case '\f': case '\r': case '\n': case '\t': case '\v': continue; default: break; } number = __Pyx_BufFmt_ExpectNumber(&ts); if (number == -1) return NULL; if (i < ndim && (size_t) number != ctx->head->field->type->arraysize[i]) return PyErr_Format(PyExc_ValueError, "Expected a dimension of size %zu, got %d", ctx->head->field->type->arraysize[i], number); if (*ts != ',' && *ts != ')') return PyErr_Format(PyExc_ValueError, "Expected a comma in format string, got '%c'", *ts); if (*ts == ',') ts++; i++; } if (i != ndim) return PyErr_Format(PyExc_ValueError, "Expected %d dimension(s), got %d", ctx->head->field->type->ndim, i); if (!*ts) { PyErr_SetString(PyExc_ValueError, "Unexpected end of format string, expected ')'"); return NULL; } ctx->is_valid_array = 1; ctx->new_count = 1; *tsp = ++ts; return Py_None; } static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts) { int got_Z = 0; while (1) { switch(*ts) { case 0: if (ctx->enc_type != 0 && ctx->head == NULL) { __Pyx_BufFmt_RaiseExpected(ctx); return NULL; } if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; if (ctx->head != NULL) { __Pyx_BufFmt_RaiseExpected(ctx); return NULL; } return ts; case ' ': case '\r': case '\n': ++ts; break; case '<': if (!__Pyx_Is_Little_Endian()) { PyErr_SetString(PyExc_ValueError, "Little-endian buffer not supported on big-endian compiler"); return NULL; } ctx->new_packmode = '='; ++ts; break; case '>': case '!': if (__Pyx_Is_Little_Endian()) { PyErr_SetString(PyExc_ValueError, "Big-endian buffer not supported on little-endian compiler"); return NULL; } ctx->new_packmode = '='; ++ts; break; case '=': case '@': case '^': ctx->new_packmode = *ts++; break; case 'T': { const char* ts_after_sub; size_t i, struct_count = ctx->new_count; size_t struct_alignment = ctx->struct_alignment; ctx->new_count = 1; ++ts; if (*ts != '{') { PyErr_SetString(PyExc_ValueError, "Buffer acquisition: Expected '{' after 'T'"); return NULL; } if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; ctx->enc_type = 0; ctx->enc_count = 0; ctx->struct_alignment = 0; ++ts; ts_after_sub = ts; for (i = 0; i != struct_count; ++i) { ts_after_sub = __Pyx_BufFmt_CheckString(ctx, ts); if (!ts_after_sub) return NULL; } ts = ts_after_sub; if (struct_alignment) ctx->struct_alignment = struct_alignment; } break; case '}': { size_t alignment = ctx->struct_alignment; ++ts; if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; ctx->enc_type = 0; if (alignment && ctx->fmt_offset % alignment) { ctx->fmt_offset += alignment - (ctx->fmt_offset % alignment); } } return ts; case 'x': if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; ctx->fmt_offset += ctx->new_count; ctx->new_count = 1; ctx->enc_count = 0; ctx->enc_type = 0; ctx->enc_packmode = ctx->new_packmode; ++ts; break; case 'Z': got_Z = 1; ++ts; if (*ts != 'f' && *ts != 'd' && *ts != 'g') { __Pyx_BufFmt_RaiseUnexpectedChar('Z'); return NULL; } CYTHON_FALLTHROUGH; case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I': case 'l': case 'L': case 'q': case 'Q': case 'f': case 'd': case 'g': case 'O': case 'p': if (ctx->enc_type == *ts && got_Z == ctx->is_complex && ctx->enc_packmode == ctx->new_packmode) { ctx->enc_count += ctx->new_count; ctx->new_count = 1; got_Z = 0; ++ts; break; } CYTHON_FALLTHROUGH; case 's': if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; ctx->enc_count = ctx->new_count; ctx->enc_packmode = ctx->new_packmode; ctx->enc_type = *ts; ctx->is_complex = got_Z; ++ts; ctx->new_count = 1; got_Z = 0; break; case ':': ++ts; while(*ts != ':') ++ts; ++ts; break; case '(': if (!__pyx_buffmt_parse_array(ctx, &ts)) return NULL; break; default: { int number = __Pyx_BufFmt_ExpectNumber(&ts); if (number == -1) return NULL; ctx->new_count = (size_t)number; } } } } /* TypeInfoCompare */ static int __pyx_typeinfo_cmp(__Pyx_TypeInfo *a, __Pyx_TypeInfo *b) { int i; if (!a || !b) return 0; if (a == b) return 1; if (a->size != b->size || a->typegroup != b->typegroup || a->is_unsigned != b->is_unsigned || a->ndim != b->ndim) { if (a->typegroup == 'H' || b->typegroup == 'H') { return a->size == b->size; } else { return 0; } } if (a->ndim) { for (i = 0; i < a->ndim; i++) if (a->arraysize[i] != b->arraysize[i]) return 0; } if (a->typegroup == 'S') { if (a->flags != b->flags) return 0; if (a->fields || b->fields) { if (!(a->fields && b->fields)) return 0; for (i = 0; a->fields[i].type && b->fields[i].type; i++) { __Pyx_StructField *field_a = a->fields + i; __Pyx_StructField *field_b = b->fields + i; if (field_a->offset != field_b->offset || !__pyx_typeinfo_cmp(field_a->type, field_b->type)) return 0; } return !a->fields[i].type && !b->fields[i].type; } } return 1; } /* MemviewSliceValidateAndInit */ static int __pyx_check_strides(Py_buffer *buf, int dim, int ndim, int spec) { if (buf->shape[dim] <= 1) return 1; if (buf->strides) { if (spec & __Pyx_MEMVIEW_CONTIG) { if (spec & (__Pyx_MEMVIEW_PTR|__Pyx_MEMVIEW_FULL)) { if (buf->strides[dim] != sizeof(void *)) { PyErr_Format(PyExc_ValueError, "Buffer is not indirectly contiguous " "in dimension %d.", dim); goto fail; } } else if (buf->strides[dim] != buf->itemsize) { PyErr_SetString(PyExc_ValueError, "Buffer and memoryview are not contiguous " "in the same dimension."); goto fail; } } if (spec & __Pyx_MEMVIEW_FOLLOW) { Py_ssize_t stride = buf->strides[dim]; if (stride < 0) stride = -stride; if (stride < buf->itemsize) { PyErr_SetString(PyExc_ValueError, "Buffer and memoryview are not contiguous " "in the same dimension."); goto fail; } } } else { if (spec & __Pyx_MEMVIEW_CONTIG && dim != ndim - 1) { PyErr_Format(PyExc_ValueError, "C-contiguous buffer is not contiguous in " "dimension %d", dim); goto fail; } else if (spec & (__Pyx_MEMVIEW_PTR)) { PyErr_Format(PyExc_ValueError, "C-contiguous buffer is not indirect in " "dimension %d", dim); goto fail; } else if (buf->suboffsets) { PyErr_SetString(PyExc_ValueError, "Buffer exposes suboffsets but no strides"); goto fail; } } return 1; fail: return 0; } static int __pyx_check_suboffsets(Py_buffer *buf, int dim, CYTHON_UNUSED int ndim, int spec) { if (spec & __Pyx_MEMVIEW_DIRECT) { if (buf->suboffsets && buf->suboffsets[dim] >= 0) { PyErr_Format(PyExc_ValueError, "Buffer not compatible with direct access " "in dimension %d.", dim); goto fail; } } if (spec & __Pyx_MEMVIEW_PTR) { if (!buf->suboffsets || (buf->suboffsets[dim] < 0)) { PyErr_Format(PyExc_ValueError, "Buffer is not indirectly accessible " "in dimension %d.", dim); goto fail; } } return 1; fail: return 0; } static int __pyx_verify_contig(Py_buffer *buf, int ndim, int c_or_f_flag) { int i; if (c_or_f_flag & __Pyx_IS_F_CONTIG) { Py_ssize_t stride = 1; for (i = 0; i < ndim; i++) { if (stride * buf->itemsize != buf->strides[i] && buf->shape[i] > 1) { PyErr_SetString(PyExc_ValueError, "Buffer not fortran contiguous."); goto fail; } stride = stride * buf->shape[i]; } } else if (c_or_f_flag & __Pyx_IS_C_CONTIG) { Py_ssize_t stride = 1; for (i = ndim - 1; i >- 1; i--) { if (stride * buf->itemsize != buf->strides[i] && buf->shape[i] > 1) { PyErr_SetString(PyExc_ValueError, "Buffer not C contiguous."); goto fail; } stride = stride * buf->shape[i]; } } return 1; fail: return 0; } static int __Pyx_ValidateAndInit_memviewslice( int *axes_specs, int c_or_f_flag, int buf_flags, int ndim, __Pyx_TypeInfo *dtype, __Pyx_BufFmt_StackElem stack[], __Pyx_memviewslice *memviewslice, PyObject *original_obj) { struct __pyx_memoryview_obj *memview, *new_memview; __Pyx_RefNannyDeclarations Py_buffer *buf; int i, spec = 0, retval = -1; __Pyx_BufFmt_Context ctx; int from_memoryview = __pyx_memoryview_check(original_obj); __Pyx_RefNannySetupContext("ValidateAndInit_memviewslice", 0); if (from_memoryview && __pyx_typeinfo_cmp(dtype, ((struct __pyx_memoryview_obj *) original_obj)->typeinfo)) { memview = (struct __pyx_memoryview_obj *) original_obj; new_memview = NULL; } else { memview = (struct __pyx_memoryview_obj *) __pyx_memoryview_new( original_obj, buf_flags, 0, dtype); new_memview = memview; if (unlikely(!memview)) goto fail; } buf = &memview->view; if (buf->ndim != ndim) { PyErr_Format(PyExc_ValueError, "Buffer has wrong number of dimensions (expected %d, got %d)", ndim, buf->ndim); goto fail; } if (new_memview) { __Pyx_BufFmt_Init(&ctx, stack, dtype); if (!__Pyx_BufFmt_CheckString(&ctx, buf->format)) goto fail; } if ((unsigned) buf->itemsize != dtype->size) { PyErr_Format(PyExc_ValueError, "Item size of buffer (%" CYTHON_FORMAT_SSIZE_T "u byte%s) " "does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "u byte%s)", buf->itemsize, (buf->itemsize > 1) ? "s" : "", dtype->name, dtype->size, (dtype->size > 1) ? "s" : ""); goto fail; } for (i = 0; i < ndim; i++) { spec = axes_specs[i]; if (!__pyx_check_strides(buf, i, ndim, spec)) goto fail; if (!__pyx_check_suboffsets(buf, i, ndim, spec)) goto fail; } if (buf->strides && !__pyx_verify_contig(buf, ndim, c_or_f_flag)) goto fail; if (unlikely(__Pyx_init_memviewslice(memview, ndim, memviewslice, new_memview != NULL) == -1)) { goto fail; } retval = 0; goto no_fail; fail: Py_XDECREF(new_memview); retval = -1; no_fail: __Pyx_RefNannyFinishContext(); return retval; } /* ObjectToMemviewSlice */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float32_t(PyObject *obj, int writable_flag) { __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_BufFmt_StackElem stack[1]; int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) }; int retcode; if (obj == Py_None) { result.memview = (struct __pyx_memoryview_obj *) Py_None; return result; } retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG, (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 1, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, stack, &result, obj); if (unlikely(retcode == -1)) goto __pyx_fail; return result; __pyx_fail: result.memview = NULL; result.data = NULL; return result; } /* ObjectToMemviewSlice */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_float64_t(PyObject *obj, int writable_flag) { __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_BufFmt_StackElem stack[1]; int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) }; int retcode; if (obj == Py_None) { result.memview = (struct __pyx_memoryview_obj *) Py_None; return result; } retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG, (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 1, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, stack, &result, obj); if (unlikely(retcode == -1)) goto __pyx_fail; return result; __pyx_fail: result.memview = NULL; result.data = NULL; return result; } /* ObjectToMemviewSlice */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_float_complex(PyObject *obj, int writable_flag) { __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_BufFmt_StackElem stack[1]; int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) }; int retcode; if (obj == Py_None) { result.memview = (struct __pyx_memoryview_obj *) Py_None; return result; } retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG, (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 1, &__Pyx_TypeInfo___pyx_t_float_complex, stack, &result, obj); if (unlikely(retcode == -1)) goto __pyx_fail; return result; __pyx_fail: result.memview = NULL; result.data = NULL; return result; } /* ObjectToMemviewSlice */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc___pyx_t_double_complex(PyObject *obj, int writable_flag) { __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_BufFmt_StackElem stack[1]; int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) }; int retcode; if (obj == Py_None) { result.memview = (struct __pyx_memoryview_obj *) Py_None; return result; } retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG, (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 1, &__Pyx_TypeInfo___pyx_t_double_complex, stack, &result, obj); if (unlikely(retcode == -1)) goto __pyx_fail; return result; __pyx_fail: result.memview = NULL; result.data = NULL; return result; } /* CIntFromPyVerify */ #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) #define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) #define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\ {\ func_type value = func_value;\ if (sizeof(target_type) < sizeof(func_type)) {\ if (unlikely(value != (func_type) (target_type) value)) {\ func_type zero = 0;\ if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\ return (target_type) -1;\ if (is_unsigned && unlikely(value < zero))\ goto raise_neg_overflow;\ else\ goto raise_overflow;\ }\ }\ return (target_type) value;\ } /* Declarations */ #if CYTHON_CCOMPLEX #ifdef __cplusplus static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { return ::std::complex< float >(x, y); } #else static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { return x + y*(__pyx_t_float_complex)_Complex_I; } #endif #else static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { __pyx_t_float_complex z; z.real = x; z.imag = y; return z; } #endif /* Arithmetic */ #if CYTHON_CCOMPLEX #else static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { return (a.real == b.real) && (a.imag == b.imag); } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; z.real = a.real + b.real; z.imag = a.imag + b.imag; return z; } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; z.real = a.real - b.real; z.imag = a.imag - b.imag; return z; } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; z.real = a.real * b.real - a.imag * b.imag; z.imag = a.real * b.imag + a.imag * b.real; return z; } #if 1 static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { if (b.imag == 0) { return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real); } else if (fabsf(b.real) >= fabsf(b.imag)) { if (b.real == 0 && b.imag == 0) { return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.imag); } else { float r = b.imag / b.real; float s = (float)(1.0) / (b.real + b.imag * r); return __pyx_t_float_complex_from_parts( (a.real + a.imag * r) * s, (a.imag - a.real * r) * s); } } else { float r = b.real / b.imag; float s = (float)(1.0) / (b.imag + b.real * r); return __pyx_t_float_complex_from_parts( (a.real * r + a.imag) * s, (a.imag * r - a.real) * s); } } #else static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { if (b.imag == 0) { return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real); } else { float denom = b.real * b.real + b.imag * b.imag; return __pyx_t_float_complex_from_parts( (a.real * b.real + a.imag * b.imag) / denom, (a.imag * b.real - a.real * b.imag) / denom); } } #endif static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex a) { __pyx_t_float_complex z; z.real = -a.real; z.imag = -a.imag; return z; } static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex a) { return (a.real == 0) && (a.imag == 0); } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex a) { __pyx_t_float_complex z; z.real = a.real; z.imag = -a.imag; return z; } #if 1 static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex z) { #if !defined(HAVE_HYPOT) || defined(_MSC_VER) return sqrtf(z.real*z.real + z.imag*z.imag); #else return hypotf(z.real, z.imag); #endif } static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex a, __pyx_t_float_complex b) { __pyx_t_float_complex z; float r, lnr, theta, z_r, z_theta; if (b.imag == 0 && b.real == (int)b.real) { if (b.real < 0) { float denom = a.real * a.real + a.imag * a.imag; a.real = a.real / denom; a.imag = -a.imag / denom; b.real = -b.real; } switch ((int)b.real) { case 0: z.real = 1; z.imag = 0; return z; case 1: return a; case 2: z = __Pyx_c_prod_float(a, a); return __Pyx_c_prod_float(a, a); case 3: z = __Pyx_c_prod_float(a, a); return __Pyx_c_prod_float(z, a); case 4: z = __Pyx_c_prod_float(a, a); return __Pyx_c_prod_float(z, z); } } if (a.imag == 0) { if (a.real == 0) { return a; } else if (b.imag == 0) { z.real = powf(a.real, b.real); z.imag = 0; return z; } else if (a.real > 0) { r = a.real; theta = 0; } else { r = -a.real; theta = atan2f(0.0, -1.0); } } else { r = __Pyx_c_abs_float(a); theta = atan2f(a.imag, a.real); } lnr = logf(r); z_r = expf(lnr * b.real - theta * b.imag); z_theta = theta * b.real + lnr * b.imag; z.real = z_r * cosf(z_theta); z.imag = z_r * sinf(z_theta); return z; } #endif #endif /* Declarations */ #if CYTHON_CCOMPLEX #ifdef __cplusplus static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) { return ::std::complex< double >(x, y); } #else static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) { return x + y*(__pyx_t_double_complex)_Complex_I; } #endif #else static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) { __pyx_t_double_complex z; z.real = x; z.imag = y; return z; } #endif /* Arithmetic */ #if CYTHON_CCOMPLEX #else static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { return (a.real == b.real) && (a.imag == b.imag); } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; z.real = a.real + b.real; z.imag = a.imag + b.imag; return z; } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; z.real = a.real - b.real; z.imag = a.imag - b.imag; return z; } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; z.real = a.real * b.real - a.imag * b.imag; z.imag = a.real * b.imag + a.imag * b.real; return z; } #if 1 static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { if (b.imag == 0) { return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real); } else if (fabs(b.real) >= fabs(b.imag)) { if (b.real == 0 && b.imag == 0) { return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.imag); } else { double r = b.imag / b.real; double s = (double)(1.0) / (b.real + b.imag * r); return __pyx_t_double_complex_from_parts( (a.real + a.imag * r) * s, (a.imag - a.real * r) * s); } } else { double r = b.real / b.imag; double s = (double)(1.0) / (b.imag + b.real * r); return __pyx_t_double_complex_from_parts( (a.real * r + a.imag) * s, (a.imag * r - a.real) * s); } } #else static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { if (b.imag == 0) { return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real); } else { double denom = b.real * b.real + b.imag * b.imag; return __pyx_t_double_complex_from_parts( (a.real * b.real + a.imag * b.imag) / denom, (a.imag * b.real - a.real * b.imag) / denom); } } #endif static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex a) { __pyx_t_double_complex z; z.real = -a.real; z.imag = -a.imag; return z; } static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex a) { return (a.real == 0) && (a.imag == 0); } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex a) { __pyx_t_double_complex z; z.real = a.real; z.imag = -a.imag; return z; } #if 1 static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex z) { #if !defined(HAVE_HYPOT) || defined(_MSC_VER) return sqrt(z.real*z.real + z.imag*z.imag); #else return hypot(z.real, z.imag); #endif } static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex a, __pyx_t_double_complex b) { __pyx_t_double_complex z; double r, lnr, theta, z_r, z_theta; if (b.imag == 0 && b.real == (int)b.real) { if (b.real < 0) { double denom = a.real * a.real + a.imag * a.imag; a.real = a.real / denom; a.imag = -a.imag / denom; b.real = -b.real; } switch ((int)b.real) { case 0: z.real = 1; z.imag = 0; return z; case 1: return a; case 2: z = __Pyx_c_prod_double(a, a); return __Pyx_c_prod_double(a, a); case 3: z = __Pyx_c_prod_double(a, a); return __Pyx_c_prod_double(z, a); case 4: z = __Pyx_c_prod_double(a, a); return __Pyx_c_prod_double(z, z); } } if (a.imag == 0) { if (a.real == 0) { return a; } else if (b.imag == 0) { z.real = pow(a.real, b.real); z.imag = 0; return z; } else if (a.real > 0) { r = a.real; theta = 0; } else { r = -a.real; theta = atan2(0.0, -1.0); } } else { r = __Pyx_c_abs_double(a); theta = atan2(a.imag, a.real); } lnr = log(r); z_r = exp(lnr * b.real - theta * b.imag); z_theta = theta * b.real + lnr * b.imag; z.real = z_r * cos(z_theta); z.imag = z_r * sin(z_theta); return z; } #endif #endif /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_char(unsigned char value) { const unsigned char neg_one = (unsigned char) ((unsigned char) 0 - (unsigned char) 1), const_zero = (unsigned char) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(unsigned char) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(unsigned char) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(unsigned char) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(unsigned char) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(unsigned char) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(unsigned char), little, !is_unsigned); } } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(long) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(long) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(long) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(long), little, !is_unsigned); } } /* MemviewDtypeToObject */ static CYTHON_INLINE PyObject *__pyx_memview_get_nn___pyx_t_5numpy_float32_t(const char *itemp) { return (PyObject *) PyFloat_FromDouble(*(__pyx_t_5numpy_float32_t *) itemp); } static CYTHON_INLINE int __pyx_memview_set_nn___pyx_t_5numpy_float32_t(const char *itemp, PyObject *obj) { __pyx_t_5numpy_float32_t value = __pyx_PyFloat_AsFloat(obj); if ((value == ((npy_float32)-1)) && PyErr_Occurred()) return 0; *(__pyx_t_5numpy_float32_t *) itemp = value; return 1; } /* MemviewDtypeToObject */ static CYTHON_INLINE PyObject *__pyx_memview_get_nn___pyx_t_5numpy_float64_t(const char *itemp) { return (PyObject *) PyFloat_FromDouble(*(__pyx_t_5numpy_float64_t *) itemp); } static CYTHON_INLINE int __pyx_memview_set_nn___pyx_t_5numpy_float64_t(const char *itemp, PyObject *obj) { __pyx_t_5numpy_float64_t value = __pyx_PyFloat_AsDouble(obj); if ((value == ((npy_float64)-1)) && PyErr_Occurred()) return 0; *(__pyx_t_5numpy_float64_t *) itemp = value; return 1; } /* FromPy */ static __pyx_t_float_complex __Pyx_PyComplex_As___pyx_t_float_complex(PyObject* o) { Py_complex cval; #if !CYTHON_COMPILING_IN_PYPY if (PyComplex_CheckExact(o)) cval = ((PyComplexObject *)o)->cval; else #endif cval = PyComplex_AsCComplex(o); return __pyx_t_float_complex_from_parts( (float)cval.real, (float)cval.imag); } /* MemviewDtypeToObject */ static CYTHON_INLINE PyObject *__pyx_memview_get___pyx_t_float_complex(const char *itemp) { return (PyObject *) __pyx_PyComplex_FromComplex(*(__pyx_t_float_complex *) itemp); } static CYTHON_INLINE int __pyx_memview_set___pyx_t_float_complex(const char *itemp, PyObject *obj) { __pyx_t_float_complex value = __Pyx_PyComplex_As___pyx_t_float_complex(obj); if (PyErr_Occurred()) return 0; *(__pyx_t_float_complex *) itemp = value; return 1; } /* FromPy */ static __pyx_t_double_complex __Pyx_PyComplex_As___pyx_t_double_complex(PyObject* o) { Py_complex cval; #if !CYTHON_COMPILING_IN_PYPY if (PyComplex_CheckExact(o)) cval = ((PyComplexObject *)o)->cval; else #endif cval = PyComplex_AsCComplex(o); return __pyx_t_double_complex_from_parts( (double)cval.real, (double)cval.imag); } /* MemviewDtypeToObject */ static CYTHON_INLINE PyObject *__pyx_memview_get___pyx_t_double_complex(const char *itemp) { return (PyObject *) __pyx_PyComplex_FromComplex(*(__pyx_t_double_complex *) itemp); } static CYTHON_INLINE int __pyx_memview_set___pyx_t_double_complex(const char *itemp, PyObject *obj) { __pyx_t_double_complex value = __Pyx_PyComplex_As___pyx_t_double_complex(obj); if (PyErr_Occurred()) return 0; *(__pyx_t_double_complex *) itemp = value; return 1; } /* MemviewDtypeToObject */ static CYTHON_INLINE PyObject *__pyx_memview_get_size_t(const char *itemp) { return (PyObject *) __Pyx_PyInt_FromSize_t(*(size_t *) itemp); } static CYTHON_INLINE int __pyx_memview_set_size_t(const char *itemp, PyObject *obj) { size_t value = __Pyx_PyInt_As_size_t(obj); if ((value == (size_t)-1) && PyErr_Occurred()) return 0; *(size_t *) itemp = value; return 1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(int) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(int) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(int) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(int), little, !is_unsigned); } } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { const enum NPY_TYPES neg_one = (enum NPY_TYPES) ((enum NPY_TYPES) 0 - (enum NPY_TYPES) 1), const_zero = (enum NPY_TYPES) 0; const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(enum NPY_TYPES) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(enum NPY_TYPES) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(enum NPY_TYPES) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(enum NPY_TYPES), little, !is_unsigned); } } /* MemviewSliceCopyTemplate */ static __Pyx_memviewslice __pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs, const char *mode, int ndim, size_t sizeof_dtype, int contig_flag, int dtype_is_object) { __Pyx_RefNannyDeclarations int i; __Pyx_memviewslice new_mvs = { 0, 0, { 0 }, { 0 }, { 0 } }; struct __pyx_memoryview_obj *from_memview = from_mvs->memview; Py_buffer *buf = &from_memview->view; PyObject *shape_tuple = NULL; PyObject *temp_int = NULL; struct __pyx_array_obj *array_obj = NULL; struct __pyx_memoryview_obj *memview_obj = NULL; __Pyx_RefNannySetupContext("__pyx_memoryview_copy_new_contig", 0); for (i = 0; i < ndim; i++) { if (from_mvs->suboffsets[i] >= 0) { PyErr_Format(PyExc_ValueError, "Cannot copy memoryview slice with " "indirect dimensions (axis %d)", i); goto fail; } } shape_tuple = PyTuple_New(ndim); if (unlikely(!shape_tuple)) { goto fail; } __Pyx_GOTREF(shape_tuple); for(i = 0; i < ndim; i++) { temp_int = PyInt_FromSsize_t(from_mvs->shape[i]); if(unlikely(!temp_int)) { goto fail; } else { PyTuple_SET_ITEM(shape_tuple, i, temp_int); temp_int = NULL; } } array_obj = __pyx_array_new(shape_tuple, sizeof_dtype, buf->format, (char *) mode, NULL); if (unlikely(!array_obj)) { goto fail; } __Pyx_GOTREF(array_obj); memview_obj = (struct __pyx_memoryview_obj *) __pyx_memoryview_new( (PyObject *) array_obj, contig_flag, dtype_is_object, from_mvs->memview->typeinfo); if (unlikely(!memview_obj)) goto fail; if (unlikely(__Pyx_init_memviewslice(memview_obj, ndim, &new_mvs, 1) < 0)) goto fail; if (unlikely(__pyx_memoryview_copy_contents(*from_mvs, new_mvs, ndim, ndim, dtype_is_object) < 0)) goto fail; goto no_fail; fail: __Pyx_XDECREF(new_mvs.memview); new_mvs.memview = NULL; new_mvs.data = NULL; no_fail: __Pyx_XDECREF(shape_tuple); __Pyx_XDECREF(temp_int); __Pyx_XDECREF(array_obj); __Pyx_RefNannyFinishContext(); return new_mvs; } /* CIntFromPy */ static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *x) { const size_t neg_one = (size_t) ((size_t) 0 - (size_t) 1), const_zero = (size_t) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(size_t) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(size_t, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (size_t) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (size_t) 0; case 1: __PYX_VERIFY_RETURN_INT(size_t, digit, digits[0]) case 2: if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) >= 2 * PyLong_SHIFT) { return (size_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } } break; case 3: if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) >= 3 * PyLong_SHIFT) { return (size_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } } break; case 4: if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) >= 4 * PyLong_SHIFT) { return (size_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (size_t) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(size_t) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(size_t) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (size_t) 0; case -1: __PYX_VERIFY_RETURN_INT(size_t, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(size_t, digit, +digits[0]) case -2: if (8 * sizeof(size_t) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { return (size_t) (((size_t)-1)*(((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; case 2: if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { return (size_t) ((((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; case -3: if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { return (size_t) (((size_t)-1)*(((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; case 3: if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { return (size_t) ((((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; case -4: if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) { return (size_t) (((size_t)-1)*(((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; case 4: if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) { return (size_t) ((((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); } } break; } #endif if (sizeof(size_t) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(size_t, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(size_t) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(size_t, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else size_t val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (size_t) -1; } } else { size_t val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (size_t) -1; val = __Pyx_PyInt_As_size_t(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to size_t"); return (size_t) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to size_t"); return (size_t) -1; } /* TypeInfoToFormat */ static struct __pyx_typeinfo_string __Pyx_TypeInfoToFormat(__Pyx_TypeInfo *type) { struct __pyx_typeinfo_string result = { {0} }; char *buf = (char *) result.string; size_t size = type->size; switch (type->typegroup) { case 'H': *buf = 'c'; break; case 'I': case 'U': if (size == 1) *buf = (type->is_unsigned) ? 'B' : 'b'; else if (size == 2) *buf = (type->is_unsigned) ? 'H' : 'h'; else if (size == 4) *buf = (type->is_unsigned) ? 'I' : 'i'; else if (size == 8) *buf = (type->is_unsigned) ? 'Q' : 'q'; break; case 'P': *buf = 'P'; break; case 'C': { __Pyx_TypeInfo complex_type = *type; complex_type.typegroup = 'R'; complex_type.size /= 2; *buf++ = 'Z'; *buf = __Pyx_TypeInfoToFormat(&complex_type).string[0]; break; } case 'R': if (size == 4) *buf = 'f'; else if (size == 8) *buf = 'd'; else *buf = 'g'; break; } return result; } /* CIntFromPy */ static CYTHON_INLINE unsigned int __Pyx_PyInt_As_unsigned_int(PyObject *x) { const unsigned int neg_one = (unsigned int) ((unsigned int) 0 - (unsigned int) 1), const_zero = (unsigned int) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(unsigned int) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(unsigned int, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (unsigned int) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (unsigned int) 0; case 1: __PYX_VERIFY_RETURN_INT(unsigned int, digit, digits[0]) case 2: if (8 * sizeof(unsigned int) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) >= 2 * PyLong_SHIFT) { return (unsigned int) (((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])); } } break; case 3: if (8 * sizeof(unsigned int) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) >= 3 * PyLong_SHIFT) { return (unsigned int) (((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])); } } break; case 4: if (8 * sizeof(unsigned int) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) >= 4 * PyLong_SHIFT) { return (unsigned int) (((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (unsigned int) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(unsigned int) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (unsigned int) 0; case -1: __PYX_VERIFY_RETURN_INT(unsigned int, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(unsigned int, digit, +digits[0]) case -2: if (8 * sizeof(unsigned int) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT) { return (unsigned int) (((unsigned int)-1)*(((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; case 2: if (8 * sizeof(unsigned int) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT) { return (unsigned int) ((((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; case -3: if (8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT) { return (unsigned int) (((unsigned int)-1)*(((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; case 3: if (8 * sizeof(unsigned int) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT) { return (unsigned int) ((((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; case -4: if (8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT) { return (unsigned int) (((unsigned int)-1)*(((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; case 4: if (8 * sizeof(unsigned int) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT) { return (unsigned int) ((((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); } } break; } #endif if (sizeof(unsigned int) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(unsigned int, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(unsigned int, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else unsigned int val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (unsigned int) -1; } } else { unsigned int val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (unsigned int) -1; val = __Pyx_PyInt_As_unsigned_int(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to unsigned int"); return (unsigned int) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to unsigned int"); return (unsigned int) -1; } /* CIntFromPy */ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(int) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (int) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (int) 0; case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) case 2: if (8 * sizeof(int) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); } } break; case 3: if (8 * sizeof(int) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); } } break; case 4: if (8 * sizeof(int) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (int) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(int) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (int) 0; case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) case -2: if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case 2: if (8 * sizeof(int) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case -3: if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case 3: if (8 * sizeof(int) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case -4: if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case 4: if (8 * sizeof(int) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; } #endif if (sizeof(int) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else int val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (int) -1; } } else { int val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (int) -1; val = __Pyx_PyInt_As_int(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to int"); return (int) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to int"); return (int) -1; } /* BytesContains */ static CYTHON_INLINE int __Pyx_BytesContains(PyObject* bytes, char character) { const Py_ssize_t length = PyBytes_GET_SIZE(bytes); char* char_start = PyBytes_AS_STRING(bytes); return memchr(char_start, (unsigned char)character, (size_t)length) != NULL; } /* ImportNumPyArray */ static PyObject* __Pyx__ImportNumPyArray(void) { PyObject *numpy_module, *ndarray_object = NULL; numpy_module = __Pyx_Import(__pyx_n_s_numpy, NULL, 0); if (likely(numpy_module)) { ndarray_object = PyObject_GetAttrString(numpy_module, "ndarray"); Py_DECREF(numpy_module); } if (unlikely(!ndarray_object)) { PyErr_Clear(); } if (unlikely(!ndarray_object || !PyObject_TypeCheck(ndarray_object, &PyType_Type))) { Py_XDECREF(ndarray_object); Py_INCREF(Py_None); ndarray_object = Py_None; } return ndarray_object; } static CYTHON_INLINE PyObject* __Pyx_ImportNumPyArrayTypeIfAvailable(void) { if (unlikely(!__pyx_numpy_ndarray)) { __pyx_numpy_ndarray = __Pyx__ImportNumPyArray(); } Py_INCREF(__pyx_numpy_ndarray); return __pyx_numpy_ndarray; } /* CIntFromPy */ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(long) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (long) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (long) 0; case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) case 2: if (8 * sizeof(long) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); } } break; case 3: if (8 * sizeof(long) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); } } break; case 4: if (8 * sizeof(long) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (long) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(long) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (long) 0; case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) case -2: if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case 2: if (8 * sizeof(long) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case -3: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case 3: if (8 * sizeof(long) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case -4: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case 4: if (8 * sizeof(long) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; } #endif if (sizeof(long) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else long val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (long) -1; } } else { long val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (long) -1; val = __Pyx_PyInt_As_long(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to long"); return (long) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to long"); return (long) -1; } /* CIntFromPy */ static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *x) { const char neg_one = (char) ((char) 0 - (char) 1), const_zero = (char) 0; const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(char) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(char, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (char) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (char) 0; case 1: __PYX_VERIFY_RETURN_INT(char, digit, digits[0]) case 2: if (8 * sizeof(char) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) >= 2 * PyLong_SHIFT) { return (char) (((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0])); } } break; case 3: if (8 * sizeof(char) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) >= 3 * PyLong_SHIFT) { return (char) (((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])); } } break; case 4: if (8 * sizeof(char) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) >= 4 * PyLong_SHIFT) { return (char) (((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (char) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(char) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(char, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(char) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(char, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (char) 0; case -1: __PYX_VERIFY_RETURN_INT(char, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(char, digit, +digits[0]) case -2: if (8 * sizeof(char) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) { return (char) (((char)-1)*(((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; case 2: if (8 * sizeof(char) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) { return (char) ((((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; case -3: if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) { return (char) (((char)-1)*(((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; case 3: if (8 * sizeof(char) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) { return (char) ((((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; case -4: if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 4 * PyLong_SHIFT) { return (char) (((char)-1)*(((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; case 4: if (8 * sizeof(char) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(char) - 1 > 4 * PyLong_SHIFT) { return (char) ((((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); } } break; } #endif if (sizeof(char) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(char, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(char) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(char, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else char val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (char) -1; } } else { char val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (char) -1; val = __Pyx_PyInt_As_char(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to char"); return (char) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to char"); return (char) -1; } /* ObjectToMemviewSlice */ static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_dc_size_t(PyObject *obj, int writable_flag) { __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } }; __Pyx_BufFmt_StackElem stack[1]; int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) }; int retcode; if (obj == Py_None) { result.memview = (struct __pyx_memoryview_obj *) Py_None; return result; } retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG, (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 1, &__Pyx_TypeInfo_size_t, stack, &result, obj); if (unlikely(retcode == -1)) goto __pyx_fail; return result; __pyx_fail: result.memview = NULL; result.data = NULL; return result; } /* CheckBinaryVersion */ static int __Pyx_check_binary_version(void) { char ctversion[4], rtversion[4]; PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion()); if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) { char message[200]; PyOS_snprintf(message, sizeof(message), "compiletime version %s of module '%.100s' " "does not match runtime version %s", ctversion, __Pyx_MODULE_NAME, rtversion); return PyErr_WarnEx(NULL, message, 1); } return 0; } /* VoidPtrImport */ #ifndef __PYX_HAVE_RT_ImportVoidPtr #define __PYX_HAVE_RT_ImportVoidPtr static int __Pyx_ImportVoidPtr(PyObject *module, const char *name, void **p, const char *sig) { PyObject *d = 0; PyObject *cobj = 0; d = PyObject_GetAttrString(module, (char *)"__pyx_capi__"); if (!d) goto bad; cobj = PyDict_GetItemString(d, name); if (!cobj) { PyErr_Format(PyExc_ImportError, "%.200s does not export expected C variable %.200s", PyModule_GetName(module), name); goto bad; } #if PY_VERSION_HEX >= 0x02070000 if (!PyCapsule_IsValid(cobj, sig)) { PyErr_Format(PyExc_TypeError, "C variable %.200s.%.200s has wrong signature (expected %.500s, got %.500s)", PyModule_GetName(module), name, sig, PyCapsule_GetName(cobj)); goto bad; } *p = PyCapsule_GetPointer(cobj, sig); #else {const char *desc, *s1, *s2; desc = (const char *)PyCObject_GetDesc(cobj); if (!desc) goto bad; s1 = desc; s2 = sig; while (*s1 != '\0' && *s1 == *s2) { s1++; s2++; } if (*s1 != *s2) { PyErr_Format(PyExc_TypeError, "C variable %.200s.%.200s has wrong signature (expected %.500s, got %.500s)", PyModule_GetName(module), name, sig, desc); goto bad; } *p = PyCObject_AsVoidPtr(cobj);} #endif if (!(*p)) goto bad; Py_DECREF(d); return 0; bad: Py_XDECREF(d); return -1; } #endif /* FunctionImport */ #ifndef __PYX_HAVE_RT_ImportFunction #define __PYX_HAVE_RT_ImportFunction static int __Pyx_ImportFunction(PyObject *module, const char *funcname, void (**f)(void), const char *sig) { PyObject *d = 0; PyObject *cobj = 0; union { void (*fp)(void); void *p; } tmp; d = PyObject_GetAttrString(module, (char *)"__pyx_capi__"); if (!d) goto bad; cobj = PyDict_GetItemString(d, funcname); if (!cobj) { PyErr_Format(PyExc_ImportError, "%.200s does not export expected C function %.200s", PyModule_GetName(module), funcname); goto bad; } #if PY_VERSION_HEX >= 0x02070000 if (!PyCapsule_IsValid(cobj, sig)) { PyErr_Format(PyExc_TypeError, "C function %.200s.%.200s has wrong signature (expected %.500s, got %.500s)", PyModule_GetName(module), funcname, sig, PyCapsule_GetName(cobj)); goto bad; } tmp.p = PyCapsule_GetPointer(cobj, sig); #else {const char *desc, *s1, *s2; desc = (const char *)PyCObject_GetDesc(cobj); if (!desc) goto bad; s1 = desc; s2 = sig; while (*s1 != '\0' && *s1 == *s2) { s1++; s2++; } if (*s1 != *s2) { PyErr_Format(PyExc_TypeError, "C function %.200s.%.200s has wrong signature (expected %.500s, got %.500s)", PyModule_GetName(module), funcname, sig, desc); goto bad; } tmp.p = PyCObject_AsVoidPtr(cobj);} #endif *f = tmp.fp; if (!(*f)) goto bad; Py_DECREF(d); return 0; bad: Py_XDECREF(d); return -1; } #endif /* InitStrings */ static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { while (t->p) { #if PY_MAJOR_VERSION < 3 if (t->is_unicode) { *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); } else if (t->intern) { *t->p = PyString_InternFromString(t->s); } else { *t->p = PyString_FromStringAndSize(t->s, t->n - 1); } #else if (t->is_unicode | t->is_str) { if (t->intern) { *t->p = PyUnicode_InternFromString(t->s); } else if (t->encoding) { *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL); } else { *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1); } } else { *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1); } #endif if (!*t->p) return -1; if (PyObject_Hash(*t->p) == -1) return -1; ++t; } return 0; } static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) { return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str)); } static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) { Py_ssize_t ignore; return __Pyx_PyObject_AsStringAndSize(o, &ignore); } #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT #if !CYTHON_PEP393_ENABLED static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { char* defenc_c; PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL); if (!defenc) return NULL; defenc_c = PyBytes_AS_STRING(defenc); #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII { char* end = defenc_c + PyBytes_GET_SIZE(defenc); char* c; for (c = defenc_c; c < end; c++) { if ((unsigned char) (*c) >= 128) { PyUnicode_AsASCIIString(o); return NULL; } } } #endif *length = PyBytes_GET_SIZE(defenc); return defenc_c; } #else static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL; #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII if (likely(PyUnicode_IS_ASCII(o))) { *length = PyUnicode_GET_LENGTH(o); return PyUnicode_AsUTF8(o); } else { PyUnicode_AsASCIIString(o); return NULL; } #else return PyUnicode_AsUTF8AndSize(o, length); #endif } #endif #endif static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) { #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT if ( #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII __Pyx_sys_getdefaultencoding_not_ascii && #endif PyUnicode_Check(o)) { return __Pyx_PyUnicode_AsStringAndSize(o, length); } else #endif #if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)) if (PyByteArray_Check(o)) { *length = PyByteArray_GET_SIZE(o); return PyByteArray_AS_STRING(o); } else #endif { char* result; int r = PyBytes_AsStringAndSize(o, &result, length); if (unlikely(r < 0)) { return NULL; } else { return result; } } } static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { int is_true = x == Py_True; if (is_true | (x == Py_False) | (x == Py_None)) return is_true; else return PyObject_IsTrue(x); } static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) { int retval; if (unlikely(!x)) return -1; retval = __Pyx_PyObject_IsTrue(x); Py_DECREF(x); return retval; } static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) { #if PY_MAJOR_VERSION >= 3 if (PyLong_Check(result)) { if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, "__int__ returned non-int (type %.200s). " "The ability to return an instance of a strict subclass of int " "is deprecated, and may be removed in a future version of Python.", Py_TYPE(result)->tp_name)) { Py_DECREF(result); return NULL; } return result; } #endif PyErr_Format(PyExc_TypeError, "__%.4s__ returned non-%.4s (type %.200s)", type_name, type_name, Py_TYPE(result)->tp_name); Py_DECREF(result); return NULL; } static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) { #if CYTHON_USE_TYPE_SLOTS PyNumberMethods *m; #endif const char *name = NULL; PyObject *res = NULL; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x) || PyLong_Check(x))) #else if (likely(PyLong_Check(x))) #endif return __Pyx_NewRef(x); #if CYTHON_USE_TYPE_SLOTS m = Py_TYPE(x)->tp_as_number; #if PY_MAJOR_VERSION < 3 if (m && m->nb_int) { name = "int"; res = m->nb_int(x); } else if (m && m->nb_long) { name = "long"; res = m->nb_long(x); } #else if (likely(m && m->nb_int)) { name = "int"; res = m->nb_int(x); } #endif #else if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) { res = PyNumber_Int(x); } #endif if (likely(res)) { #if PY_MAJOR_VERSION < 3 if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) { #else if (unlikely(!PyLong_CheckExact(res))) { #endif return __Pyx_PyNumber_IntOrLongWrongResultType(res, name); } } else if (!PyErr_Occurred()) { PyErr_SetString(PyExc_TypeError, "an integer is required"); } return res; } static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { Py_ssize_t ival; PyObject *x; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_CheckExact(b))) { if (sizeof(Py_ssize_t) >= sizeof(long)) return PyInt_AS_LONG(b); else return PyInt_AsSsize_t(b); } #endif if (likely(PyLong_CheckExact(b))) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)b)->ob_digit; const Py_ssize_t size = Py_SIZE(b); if (likely(__Pyx_sst_abs(size) <= 1)) { ival = likely(size) ? digits[0] : 0; if (size == -1) ival = -ival; return ival; } else { switch (size) { case 2: if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case -2: if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case 3: if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case -3: if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case 4: if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case -4: if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; } } #endif return PyLong_AsSsize_t(b); } x = PyNumber_Index(b); if (!x) return -1; ival = PyInt_AsSsize_t(x); Py_DECREF(x); return ival; } static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); } static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { return PyInt_FromSize_t(ival); } #endif /* Py_PYTHON_H */ PyWavelets-1.1.1/pywt/_extensions/_swt.pyx0000644000175000017500000003076513552333332021351 0ustar lee8rxlee8rx00000000000000#cython: boundscheck=False, wraparound=False from . cimport common from . cimport c_wt from cpython cimport bool import warnings import numpy as np cimport numpy as np from .common cimport pywt_index_t from ._pywt cimport c_wavelet_from_object, cdata_t, Wavelet, _check_dtype include "config.pxi" def swt_max_level(size_t input_len): """ swt_max_level(input_len) Calculates the maximum level of Stationary Wavelet Transform for data of given length. Parameters ---------- input_len : int Input data length. Returns ------- max_level : int Maximum level of Stationary Wavelet Transform for data of given length. Notes ----- For the current implementation of the stationary wavelet transform, this corresponds to the number of times ``input_len`` is evenly divisible by two. In other words, for an n-level transform, the signal length must be a multiple of ``2**n``. ``numpy.pad`` can be used to pad a signal up to an appropriate length as needed. """ if input_len < 1: raise ValueError("Cannot apply swt to a size 0 signal.") max_level = common.swt_max_level(input_len) if max_level == 0: warnings.warn( "No levels of stationary wavelet decomposition are possible. The " "signal to be transformed must have a size that is a multiple " "of 2**n for an n-level decomposition.") return max_level def swt(cdata_t[::1] data, Wavelet wavelet, size_t level, size_t start_level, bool trim_approx=False): cdef cdata_t[::1] cA, cD cdef Wavelet w cdef int retval cdef size_t end_level = start_level + level cdef size_t data_size, output_len, i if data.size % 2: raise ValueError("Length of data must be even.") if data.size < 1: raise ValueError("Data must have non-zero size") if level < 1: raise ValueError("Level value must be greater than zero.") if start_level >= common.swt_max_level(data.size): raise ValueError("start_level must be less than %d." % common.swt_max_level(data.size)) if end_level > common.swt_max_level(data.size): msg = ("Level value too high (max level for current data size and " "start_level is %d)." % ( common.swt_max_level(data.size) - start_level)) raise ValueError(msg) output_len = common.swt_buffer_length(data.size) if output_len < 1: raise RuntimeError("Invalid output length.") ret = [] for i in range(start_level+1, end_level+1): data_size = data.size # alloc memory, decompose D if cdata_t is np.float64_t: cD = np.zeros(output_len, dtype=np.float64) with nogil: retval = c_wt.double_swt_d(&data[0], data_size, wavelet.w, &cD[0], output_len, i) if retval < 0: raise RuntimeError("C swt failed.") elif cdata_t is np.float32_t: cD = np.zeros(output_len, dtype=np.float32) with nogil: retval = c_wt.float_swt_d(&data[0], data_size, wavelet.w, &cD[0], output_len, i) if retval < 0: raise RuntimeError("C swt failed.") IF HAVE_C99_CPLX: if cdata_t is np.complex128_t: cD = np.zeros(output_len, dtype=np.complex128) with nogil: retval = c_wt.double_complex_swt_d(&data[0], data_size, wavelet.w, &cD[0], output_len, i) if retval < 0: raise RuntimeError("C swt failed.") elif cdata_t is np.complex64_t: cD = np.zeros(output_len, dtype=np.complex64) with nogil: retval = c_wt.float_complex_swt_d(&data[0], data_size, wavelet.w, &cD[0], output_len, i) if retval < 0: raise RuntimeError("C swt failed.") # alloc memory, decompose A if cdata_t is np.float64_t: cA = np.zeros(output_len, dtype=np.float64) with nogil: retval = c_wt.double_swt_a(&data[0], data_size, wavelet.w, &cA[0], output_len, i) if retval < 0: raise RuntimeError("C swt failed.") elif cdata_t is np.float32_t: cA = np.zeros(output_len, dtype=np.float32) with nogil: retval = c_wt.float_swt_a(&data[0], data_size, wavelet.w, &cA[0], output_len, i) if retval < 0: raise RuntimeError("C swt failed.") IF HAVE_C99_CPLX: if cdata_t is np.complex128_t: cA = np.zeros(output_len, dtype=np.complex128) with nogil: retval = c_wt.double_complex_swt_a(&data[0], data_size, wavelet.w, &cA[0], output_len, i) if retval < 0: raise RuntimeError("C swt failed.") elif cdata_t is np.complex64_t: cA = np.zeros(output_len, dtype=np.complex64) with nogil: retval = c_wt.float_complex_swt_a(&data[0], data_size, wavelet.w, &cA[0], output_len, i) if retval < 0: raise RuntimeError("C swt failed.") data = cA if not trim_approx: ret.append((np.asarray(cA), np.asarray(cD))) else: ret.append(np.asarray(cD)) if trim_approx: ret.append(np.asarray(cA)) ret.reverse() return ret cpdef swt_axis(np.ndarray data, Wavelet wavelet, size_t level, size_t start_level, unsigned int axis=0, bool trim_approx=False): # memory-views do not support n-dimensional arrays, use np.ndarray instead cdef common.ArrayInfo data_info, output_info cdef np.ndarray cD, cA cdef size_t[::1] output_shape cdef size_t end_level = start_level + level cdef int retval = -5 cdef size_t i if data.shape[axis] % 2: raise ValueError("Length of data must be even along the transform axis.") if data.shape[axis] < 1: raise ValueError("Data must have non-zero size along the transform axis.") if level < 1: raise ValueError("Level value must be greater than zero.") if start_level >= common.swt_max_level(data.shape[axis]): raise ValueError("start_level must be less than %d." % common.swt_max_level(data.shape[axis])) if end_level > common.swt_max_level(data.shape[axis]): msg = ("Level value too high (max level for current data size and " "start_level is %d)." % ( common.swt_max_level(data.shape[axis]) - start_level)) raise ValueError(msg) data = data.astype(_check_dtype(data), copy=False) # For SWT, the output matches the shape of the input output_shape = data.shape data_info.ndim = data.ndim data_info.strides = data.strides data_info.shape = data.shape output_info.ndim = data.ndim ret = [] for i in range(start_level+1, end_level+1): cA = np.empty(output_shape, dtype=data.dtype) cD = np.empty(output_shape, dtype=data.dtype) # strides won't match data_info.strides if data is not C-contiguous output_info.strides = cA.strides output_info.shape = cA.shape if data.dtype == np.float64: with nogil: retval = c_wt.double_downcoef_axis( data.data, data_info, cA.data, output_info, wavelet.w, axis, common.COEF_APPROX, common.MODE_PERIODIZATION, i, common.SWT_TRANSFORM) if retval: raise RuntimeError( "C wavelet transform failed with error code %d" % retval) with nogil: retval = c_wt.double_downcoef_axis( data.data, data_info, cD.data, output_info, wavelet.w, axis, common.COEF_DETAIL, common.MODE_PERIODIZATION, i, common.SWT_TRANSFORM) if retval: raise RuntimeError( "C wavelet transform failed with error code %d" % retval) elif data.dtype == np.float32: with nogil: retval = c_wt.float_downcoef_axis( data.data, data_info, cA.data, output_info, wavelet.w, axis, common.COEF_APPROX, common.MODE_PERIODIZATION, i, common.SWT_TRANSFORM) if retval: raise RuntimeError( "C wavelet transform failed with error code %d" % retval) with nogil: retval = c_wt.float_downcoef_axis( data.data, data_info, cD.data, output_info, wavelet.w, axis, common.COEF_DETAIL, common.MODE_PERIODIZATION, i, common.SWT_TRANSFORM) if retval: raise RuntimeError( "C wavelet transform failed with error code %d" % retval) IF HAVE_C99_CPLX: if data.dtype == np.complex128: cA = np.zeros(output_shape, dtype=np.complex128) with nogil: retval = c_wt.double_complex_downcoef_axis( data.data, data_info, cA.data, output_info, wavelet.w, axis, common.COEF_APPROX, common.MODE_PERIODIZATION, i, common.SWT_TRANSFORM) if retval: raise RuntimeError( "C wavelet transform failed with error code %d" % retval) cD = np.zeros(output_shape, dtype=np.complex128) with nogil: retval = c_wt.double_complex_downcoef_axis( data.data, data_info, cD.data, output_info, wavelet.w, axis, common.COEF_DETAIL, common.MODE_PERIODIZATION, i, common.SWT_TRANSFORM) if retval: raise RuntimeError( "C wavelet transform failed with error code %d" % retval) elif data.dtype == np.complex64: cA = np.zeros(output_shape, dtype=np.complex64) with nogil: retval = c_wt.float_complex_downcoef_axis( data.data, data_info, cA.data, output_info, wavelet.w, axis, common.COEF_APPROX, common.MODE_PERIODIZATION, i, common.SWT_TRANSFORM) if retval: raise RuntimeError( "C wavelet transform failed with error code %d" % retval) cD = np.zeros(output_shape, dtype=np.complex64) with nogil: retval = c_wt.float_complex_downcoef_axis( data.data, data_info, cD.data, output_info, wavelet.w, axis, common.COEF_DETAIL, common.MODE_PERIODIZATION, i, common.SWT_TRANSFORM) if retval: raise RuntimeError( "C wavelet transform failed with error code %d" % retval) if retval == -5: raise TypeError("Array must be floating point, not {}" .format(data.dtype)) if not trim_approx: ret.append((cA, cD)) else: ret.append(cD) # previous approx coeffs are the data for the next level data = cA # update data_info to match the new data array data_info.strides = data.strides data_info.shape = data.shape if trim_approx: ret.append(cA) ret.reverse() return ret PyWavelets-1.1.1/pywt/_extensions/c/0000755000175000017500000000000013552543071020045 5ustar lee8rxlee8rx00000000000000PyWavelets-1.1.1/pywt/_extensions/c/common.c0000664000175000017500000000513713334573651021516 0ustar lee8rxlee8rx00000000000000/* Copyright (c) 2006-2012 Filip Wasilewski * Copyright (c) 2012-2016 The PyWavelets Developers * * See COPYING for license details. */ #include "common.h" #include // for U*_MAX // MSVC <= 2008 does not have stdint.h, but defines SIZE_MAX in limits.h #if (!defined(_MSC_VER)) || (_MSC_VER > 1500) #include // for SIZE_MAX #endif /* _MSC_VER */ /* Returns the floor of the base-2 log of it's input * * Undefined for x = 0 */ unsigned char size_log2(size_t x){ #if defined(_MSC_VER) unsigned long i; #if SIZE_MAX == 0xFFFFFFFF _BitScanReverse(&i, x); #elif SIZE_MAX == 0xFFFFFFFFFFFFFFFF _BitScanReverse64(&i, x); #else #error "Unrecognized SIZE_MAX" #endif /* SIZE_MAX */ return i; #else // GCC and clang // Safe cast: 0 <= clzl < arch_bits (64) where result is defined #if SIZE_MAX == UINT_MAX unsigned char leading_zeros = (unsigned char) __builtin_clz(x); #elif SIZE_MAX == ULONG_MAX unsigned char leading_zeros = (unsigned char) __builtin_clzl(x); #elif SIZE_MAX == ULLONG_MAX unsigned char leading_zeros = (unsigned char) __builtin_clzll(x); #else #error "Unrecognized SIZE_MAX" #endif /* SIZE_MAX */ return sizeof(size_t) * 8 - leading_zeros - 1; #endif /* _MSC_VER */ } /* buffers and max levels params */ size_t dwt_buffer_length(size_t input_len, size_t filter_len, MODE mode){ if(input_len < 1 || filter_len < 1) return 0; switch(mode){ case MODE_PERIODIZATION: return input_len / 2 + ((input_len%2) ? 1 : 0); default: return (input_len + filter_len - 1) / 2; } } size_t reconstruction_buffer_length(size_t coeffs_len, size_t filter_len){ if(coeffs_len < 1 || filter_len < 1) return 0; return 2*coeffs_len+filter_len-2; } size_t idwt_buffer_length(size_t coeffs_len, size_t filter_len, MODE mode){ switch(mode){ case MODE_PERIODIZATION: return 2*coeffs_len; default: return 2*coeffs_len-filter_len+2; } } size_t swt_buffer_length(size_t input_len){ return input_len; } unsigned char dwt_max_level(size_t input_len, size_t filter_len){ if(filter_len <= 1 || input_len < (filter_len-1)) return 0; return size_log2(input_len/(filter_len-1)); } unsigned char swt_max_level(size_t input_len){ /* check how many times input_len is divisible by 2 */ unsigned char j = 0; while (input_len > 0){ if (input_len % 2) return j; input_len /= 2; j++; } return j; } PyWavelets-1.1.1/pywt/_extensions/c/common.h0000664000175000017500000001027413340062070021502 0ustar lee8rxlee8rx00000000000000/* Copyright (c) 2006-2012 Filip Wasilewski * Copyright (c) 2012-2016 The PyWavelets Developers * * See COPYING for license details. */ /* Common constants, typedefs and functions */ #pragma once #include #include #ifdef HAVE_C99_COMPLEX /* For templating, we need typedefs without spaces for complex types. */ typedef float _Complex float_complex; typedef double _Complex double_complex; #endif /* ##### Typedefs ##### */ #ifdef PY_EXTENSION /* another declaration is in .c file generated by Pyrex */ #ifndef PY_SSIZE_T_CLEAN #define PY_SSIZE_T_CLEAN #include "Python.h" #include "structmember.h" #ifndef PY_LONG_LONG #define PY_LONG_LONG LONG_LONG #endif #else #include "Python.h" #endif /* on Solaris/SmartOS system, index_t is used in sys/types.h, so use pytw_index_t */ typedef Py_ssize_t pywt_index_t; #else typedef int pywt_index_t; #endif /* standard c memory management */ #define wtmalloc(size) malloc(size) #define wtfree(ptr) free(ptr) #define wtcalloc(len, size) calloc(len, size) #ifdef _MSC_VER #include #endif typedef struct { size_t * shape; pywt_index_t * strides; size_t ndim; } ArrayInfo; typedef enum { COEF_APPROX = 0, COEF_DETAIL = 1, } Coefficient; typedef enum { DWT_TRANSFORM = 0, SWT_TRANSFORM = 1, } DiscreteTransformType; /* Signal extension modes */ typedef enum { MODE_INVALID = -1, MODE_ZEROPAD = 0, /* default, signal extended with zeros */ MODE_SYMMETRIC, /* signal extended symmetrically (mirror) * also known as half-sample symmetric * For extensions greater than signal length, * mirror back and forth: * 2 3 3 2 1 | 1 2 3 | 3 2 1 1 2 */ MODE_CONSTANT_EDGE, /* signal extended with the border value */ MODE_SMOOTH, /* linear extrapolation (first derivative) */ MODE_PERIODIC, /* signal is treated as being periodic */ MODE_PERIODIZATION, /* signal is treated as being periodic, minimal output length */ MODE_REFLECT, /* signal extended symmetrically (reflect) * also known as whole-sample symmetric * For extensions greater than signal length, * reflect back and forth without repeating edge values: * 1 2 3 2 | 1 2 3 | 2 1 2 3 */ MODE_ANTISYMMETRIC, /* antisymmetric version of "MODE_SYMMETRIC" * also known as half-sample antisymmetric * 2 3 -3 -2 -1 | 1 2 3 | -3 -2 -1 1 2 */ MODE_ANTIREFLECT, /* antisymmetric version of "MODE_REFLECT" * also known as whole-sample antisymmetric * 0 -1 -2 -1 0 | 1 2 3 | 4 5 6 5 4 */ MODE_MAX, } MODE; /* ##### Calculating buffer lengths for various operations ##### */ /* * Length of DWT coeffs for specified input data length, filter length and * signal extension mode. */ size_t dwt_buffer_length(size_t input_len, size_t filter_len, MODE mode); /* * Length of reconstructed signal for specified input coeffs length and filter * length. It is used for direct reconstruction from coefficients (normal * convolution of upsampled coeffs with filter). */ size_t reconstruction_buffer_length(size_t coeffs_len, size_t filter_len); /* * Length of IDWT reconstructed signal for specified input coeffs length, filter * length and extension mode. */ size_t idwt_buffer_length(size_t coeffs_len, size_t filter_len, MODE mode); /* Length of SWT coefficients for specified input signal length (== input_len) */ size_t swt_buffer_length(size_t input_len); /* Maximum useful level of DWT decomposition. */ unsigned char dwt_max_level(size_t input_len, size_t filter_len); /* Maximum useful level of SWT decomposition. */ unsigned char swt_max_level(size_t input_len); PyWavelets-1.1.1/pywt/_extensions/c/convolution.c0000664000175000017500000000131213317422762022571 0ustar lee8rxlee8rx00000000000000#include "convolution.h" #ifdef TYPE #error TYPE should not be defined here. #else #ifdef REAL_TYPE #error REAL_TYPE should not be defined here. #else #define TYPE float #define REAL_TYPE float #include "convolution.template.c" #undef REAL_TYPE #undef TYPE #define TYPE double #define REAL_TYPE double #include "convolution.template.c" #undef REAL_TYPE #undef TYPE #ifdef HAVE_C99_COMPLEX #define TYPE float_complex #define REAL_TYPE float #include "convolution.template.c" #undef REAL_TYPE #undef TYPE #define TYPE double_complex #define REAL_TYPE double #include "convolution.template.c" #undef REAL_TYPE #undef TYPE #endif #endif /* REAL_TYPE */ #endif /* TYPE */ PyWavelets-1.1.1/pywt/_extensions/c/convolution.h0000664000175000017500000000132313317422762022600 0ustar lee8rxlee8rx00000000000000#pragma once #include "common.h" #ifdef TYPE #error TYPE should not be defined here. #else #ifdef REAL_TYPE #error REAL_TYPE should not be defined here. #else #define TYPE float #define REAL_TYPE float #include "convolution.template.h" #undef REAL_TYPE #undef TYPE #define TYPE double #define REAL_TYPE double #include "convolution.template.h" #undef REAL_TYPE #undef TYPE #ifdef HAVE_C99_COMPLEX #define TYPE float_complex #define REAL_TYPE float #include "convolution.template.h" #undef REAL_TYPE #undef TYPE #define TYPE double_complex #define REAL_TYPE double #include "convolution.template.h" #undef REAL_TYPE #undef TYPE #endif #endif /* REAL_TYPE */ #endif /* TYPE */ PyWavelets-1.1.1/pywt/_extensions/c/convolution.template.c0000664000175000017500000005366313340062070024407 0ustar lee8rxlee8rx00000000000000/* Copyright (c) 2006-2012 Filip Wasilewski * Copyright (c) 2012-2016 The PyWavelets Developers * * See COPYING for license details. */ #include "templating.h" #ifndef REAL_TYPE #error REAL_TYPE must be defined here. #else #ifndef TYPE #error TYPE must be defined here. #else #include "convolution.h" #if defined _MSC_VER #define restrict __restrict #elif defined __GNUC__ #define restrict __restrict__ #endif /* This file contains several functions for computing the convolution of a * signal with a filter. The general scheme is: * output[o] = sum(filter[j] * input[i-j] for j = [0..F) and i = [0..N)) * where 'o', 'i' and 'j' may progress at different rates. * * Most of the code deals with different edge extension modes. Values are * computed on-demand, in four steps: * 1. Filter extends past signal on the left. * 2. Filter completely contained within signal (no extension). * 3. Filter extends past signal on both sides (only if F > N). * 4. Filter extends past signal on the right. * * MODE_PERIODIZATION produces different output lengths to other modes, so is * implemented as a separate function for each case. * * See 'common.h' for descriptions of the extension modes. */ int CAT(TYPE, _downsampling_convolution_periodization)(const TYPE * const restrict input, const size_t N, const REAL_TYPE * const restrict filter, const size_t F, TYPE * const restrict output, const size_t step, const size_t fstep) { size_t i = F/2, o = 0; const size_t padding = (step - (N % step)) % step; for (; i < F && i < N; i += step, ++o) { TYPE sum = 0; size_t j; size_t k_start = 0; for (j = 0; j <= i; j += fstep) sum += filter[j] * input[i-j]; if (fstep > 1) k_start = j - (i + 1); while (j < F){ size_t k; for (k = k_start; k < padding && j < F; k += fstep, j += fstep) sum += filter[j] * input[N-1]; for (k = k_start; k < N && j < F; k += fstep, j += fstep) sum += filter[j] * input[N-1-k]; } output[o] = sum; } for(; i < N; i+=step, ++o){ TYPE sum = 0; size_t j; for(j = 0; j < F; j += fstep) sum += input[i-j]*filter[j]; output[o] = sum; } for (; i < F && i < N + F/2; i += step, ++o) { TYPE sum = 0; size_t j = 0; size_t k_start = 0; while (i-j >= N){ size_t k; // for simplicity, not using fstep here for (k = 0; k < padding && i-j >= N; ++k, ++j) sum += filter[i-N-j] * input[N-1]; for (k = 0; k < N && i-j >= N; ++k, ++j) sum += filter[i-N-j] * input[k]; } if (fstep > 1) j += (fstep - j % fstep) % fstep; // move to next non-zero entry for (; j <= i; j += fstep) sum += filter[j] * input[i-j]; if (fstep > 1) k_start = j - (i + 1); while (j < F){ size_t k; for (k = k_start; k < padding && j < F; k += fstep, j += fstep) sum += filter[j] * input[N-1]; for (k = k_start; k < N && j < F; k += fstep, j += fstep) sum += filter[j] * input[N-1-k]; } output[o] = sum; } for(; i < N + F/2; i += step, ++o){ TYPE sum = 0; size_t j = 0; while (i-j >= N){ // for simplicity, not using fstep here size_t k; for (k = 0; k < padding && i-j >= N; ++k, ++j) sum += filter[i-N-j] * input[N-1]; for (k = 0; k < N && i-j >= N; ++k, ++j) sum += filter[i-N-j] * input[k]; } if (fstep > 1) j += (fstep - j % fstep) % fstep; // move to next non-zero entry for (; j < F; j += fstep) sum += filter[j] * input[i-j]; output[o] = sum; } return 0; } int CAT(TYPE, _downsampling_convolution)(const TYPE * const restrict input, const size_t N, const REAL_TYPE * const restrict filter, const size_t F, TYPE * const restrict output, const size_t step, MODE mode) { /* This convolution performs efficient downsampling by computing every * step'th element of normal convolution (currently tested only for step=1 * and step=2). */ size_t i = step - 1, o = 0; if(mode == MODE_PERIODIZATION) return CAT(TYPE, _downsampling_convolution_periodization)(input, N, filter, F, output, step, 1); if (mode == MODE_SMOOTH && N < 2) mode = MODE_CONSTANT_EDGE; // left boundary overhang for(; i < F && i < N; i+=step, ++o){ TYPE sum = 0; size_t j; for(j = 0; j <= i; ++j) sum += filter[j]*input[i-j]; switch(mode) { case MODE_SYMMETRIC: while (j < F){ size_t k; for(k = 0; k < N && j < F; ++j, ++k) sum += filter[j]*input[k]; for(k = 0; k < N && j < F; ++k, ++j) sum += filter[j]*input[N-1-k]; } break; case MODE_ANTISYMMETRIC: // half-sample anti-symmetric while (j < F){ size_t k; for(k = 0; k < N && j < F; ++j, ++k) sum -= filter[j]*input[k]; for(k = 0; k < N && j < F; ++k, ++j) sum += filter[j]*input[N-1-k]; } break; case MODE_REFLECT: while (j < F){ size_t k; for(k = 1; k < N && j < F; ++j, ++k) sum += filter[j]*input[k]; for(k = 1; k < N && j < F; ++k, ++j) sum += filter[j]*input[N-1-k]; } break; case MODE_ANTIREFLECT:{ // whole-sample anti-symmetric size_t k; TYPE le = input[0]; // current left edge value TYPE tmp = 0; while (j < F) { for(k = 1; k < N && j < F; ++j, ++k){ tmp = le - (input[k] - input[0]); sum += filter[j]*tmp; } le = tmp; for(k = 1; k < N && j < F; ++j, ++k){ tmp = le + (input[N-1-k] - input[N-1]); sum += filter[j]*tmp; } le = tmp; } break; } case MODE_CONSTANT_EDGE: for(; j < F; ++j) sum += filter[j]*input[0]; break; case MODE_SMOOTH:{ size_t k; for(k = 1; j < F; ++j, ++k) sum += filter[j]*(input[0] + k * (input[0] - input[1])); break; } case MODE_PERIODIC: while (j < F){ size_t k; for(k = 0; k < N && j < F; ++k, ++j) sum += filter[j]*input[N-1-k]; } break; case MODE_ZEROPAD: default: break; } output[o] = sum; } // center (if input equal or wider than filter: N >= F) for(; i < N; i+=step, ++o){ TYPE sum = 0; size_t j; for(j = 0; j < F; ++j) sum += input[i-j]*filter[j]; output[o] = sum; } // center (if filter is wider than input: F > N) for(; i < F; i+=step, ++o){ TYPE sum = 0; size_t j = 0; switch(mode) { case MODE_SYMMETRIC: // Included from original: TODO: j < F-_offset /* Iterate over filter in reverse to process elements away from * data. This gives a known first input element to process (N-1) */ while (i - j >= N){ size_t k; for(k = 0; k < N && i-j >= N; ++j, ++k) sum += filter[i-N-j]*input[N-1-k]; for(k = 0; k < N && i-j >= N; ++j, ++k) sum += filter[i-N-j]*input[k]; } break; case MODE_ANTISYMMETRIC: // half-sample anti-symmetric while (i - j >= N){ size_t k; for(k = 0; k < N && i-j >= N; ++j, ++k) sum -= filter[i-N-j]*input[N-1-k]; for(k = 0; k < N && i-j >= N; ++j, ++k) sum += filter[i-N-j]*input[k]; } break; case MODE_REFLECT: while (i - j >= N){ size_t k; for(k = 1; k < N && i-j >= N; ++j, ++k) sum += filter[i-N-j]*input[N-1-k]; for(k = 1; k < N && i-j >= N; ++j, ++k) sum += filter[i-N-j]*input[k]; } break; case MODE_ANTIREFLECT:{ // whole-sample anti-symmetric size_t k; TYPE re = input[N-1]; // current right edge value TYPE tmp = 0; while (i - j >= N) { for(k = 1; k < N && i-j >= N; ++j, ++k){ tmp = re - (input[N-1-k] - input[N-1]); sum += filter[i-N-j]*tmp; } re = tmp; for(k = 1; k < N && i-j >= N; ++j, ++k){ tmp = re + (input[k] - input[0]); sum += filter[i-N-j]*tmp; } re = tmp; } break; } case MODE_CONSTANT_EDGE: for(; i-j >= N; ++j) sum += filter[j]*input[N-1]; break; case MODE_SMOOTH:{ size_t k; for(k = i - N + 1; i-j >= N; ++j, --k) sum += filter[j]*(input[N-1] + k * (input[N-1] - input[N-2])); break; } case MODE_PERIODIC: while (i-j >= N){ size_t k; for (k = 0; k < N && i-j >= N; ++j, ++k) sum += filter[i-N-j]*input[k]; } break; case MODE_ZEROPAD: default: j = i - N + 1; break; } for(; j <= i; ++j) sum += filter[j]*input[i-j]; switch(mode) { case MODE_SYMMETRIC: while (j < F){ size_t k; for(k = 0; k < N && j < F; ++j, ++k) sum += filter[j]*input[k]; for(k = 0; k < N && j < F; ++k, ++j) sum += filter[j]*input[N-1-k]; } break; case MODE_ANTISYMMETRIC: // half-sample anti-symmetric while (j < F){ size_t k; for(k = 0; k < N && j < F; ++j, ++k) sum -= filter[j]*input[k]; for(k = 0; k < N && j < F; ++k, ++j) sum += filter[j]*input[N-1-k]; } break; case MODE_REFLECT: while (j < F){ size_t k; for(k = 1; k < N && j < F; ++j, ++k) sum += filter[j]*input[k]; for(k = 1; k < N && j < F; ++k, ++j) sum += filter[j]*input[N-1-k]; } break; case MODE_ANTIREFLECT:{ // whole-sample anti-symmetric size_t k; TYPE le = input[0]; // current left edge value TYPE tmp = 0; while (j < F) { for(k = 1; k < N && j < F; ++j, ++k){ tmp = le - (input[k] - input[0]); sum += filter[j]*tmp; } le = tmp; for(k = 1; k < N && j < F; ++j, ++k){ tmp = le + (input[N-1-k] - input[N-1]); sum += filter[j]*tmp; } le = tmp; } break; } case MODE_CONSTANT_EDGE: for(; j < F; ++j) sum += filter[j]*input[0]; break; case MODE_SMOOTH:{ size_t k; for(k = 1; j < F; ++j, ++k) sum += filter[j]*(input[0] + k * (input[0] - input[1])); break; } case MODE_PERIODIC: while (j < F){ size_t k; for(k = 0; k < N && j < F; ++k, ++j) sum += filter[j]*input[N-1-k]; } break; case MODE_ZEROPAD: default: break; } output[o] = sum; } // right boundary overhang for(; i < N+F-1; i += step, ++o){ TYPE sum = 0; size_t j = 0; switch(mode) { case MODE_SYMMETRIC: // Included from original: TODO: j < F-_offset while (i - j >= N){ size_t k; for(k = 0; k < N && i-j >= N; ++j, ++k) sum += filter[i-N-j]*input[N-1-k]; for(k = 0; k < N && i-j >= N; ++j, ++k) sum += filter[i-N-j]*input[k]; } break; case MODE_ANTISYMMETRIC: // half-sample anti-symmetric while (i - j >= N){ size_t k; for(k = 0; k < N && i-j >= N; ++j, ++k) sum -= filter[i-N-j]*input[N-1-k]; for(k = 0; k < N && i-j >= N; ++j, ++k) sum += filter[i-N-j]*input[k]; } break; case MODE_REFLECT: while (i - j >= N){ size_t k; for(k = 1; k < N && i-j >= N; ++j, ++k) sum += filter[i-N-j]*input[N-1-k]; for(k = 1; k < N && i-j >= N; ++j, ++k) sum += filter[i-N-j]*input[k]; } break; case MODE_ANTIREFLECT:{ // whole-sample anti-symmetric size_t k; TYPE re = input[N-1]; //current right edge value TYPE tmp = 0; while (i - j >= N) { //first reflection for(k = 1; k < N && i-j >= N; ++j, ++k){ tmp = re - (input[N-1-k] - input[N-1]); sum += filter[i-N-j]*tmp; } re = tmp; //second reflection for(k = 1; k < N && i-j >= N; ++j, ++k){ tmp = re + (input[k] - input[0]); sum += filter[i-N-j]*tmp; } re = tmp; } break; } case MODE_CONSTANT_EDGE: for(; i-j >= N; ++j) sum += filter[j]*input[N-1]; break; case MODE_SMOOTH:{ size_t k; for(k = i - N + 1; i-j >= N; ++j, --k) sum += filter[j]*(input[N-1] + k * (input[N-1] - input[N-2])); break; } case MODE_PERIODIC: while (i-j >= N){ size_t k; for (k = 0; k < N && i-j >= N; ++j, ++k) sum += filter[i-N-j]*input[k]; } break; case MODE_ZEROPAD: default: j = i - N + 1; break; } for(; j < F; ++j) sum += filter[j]*input[i-j]; output[o] = sum; } return 0; } int CAT(TYPE, _upsampling_convolution_full)(const TYPE * const restrict input, const size_t N, const REAL_TYPE * const restrict filter, const size_t F, TYPE * const restrict output, const size_t O) { /* Performs a zero-padded convolution, using each input element for two * consecutive filter elements. This simulates an upsampled input. * * In contrast to downsampling_convolution, this adds to the output. This * allows multiple runs with different inputs and the same output to be used * for idwt. */ // If check omitted, this function would be a no-op for F<2 size_t i = 0, o = 0; if(F<2) return -1; if(F%2) return -3; for(; i < N && i < F/2; ++i, o += 2){ size_t j; for(j = 0; j <= i; ++j){ output[o] += filter[j*2] * input[i-j]; output[o+1] += filter[j*2+1] * input[i-j]; } } for(; i < N; ++i, o += 2){ size_t j; for(j = 0; j < F/2; ++j){ output[o] += filter[j*2] * input[i-j]; output[o+1] += filter[j*2+1] * input[i-j]; } } for(; i < F/2; ++i, o += 2){ size_t j; for(j = i-(N-1); j <= i; ++j){ output[o] += filter[j*2] * input[i-j]; output[o+1] += filter[j*2+1] * input[i-j]; } } for(; i < N+F/2; ++i, o += 2){ size_t j; for(j = i-(N-1); j < F/2; ++j){ output[o] += filter[j*2] * input[i-j]; output[o+1] += filter[j*2+1] * input[i-j]; } } return 0; } static int CAT(TYPE, _upsampling_convolution_valid_sf_periodization)(const TYPE * const restrict input, const size_t N, const REAL_TYPE * const restrict filter, const size_t F, TYPE * const restrict output, const size_t O) { // TODO? Allow for non-2 step size_t const start = F/4; size_t i = start; size_t const end = N + start - (((F/2)%2) ? 0 : 1); size_t o = 0; if(F%2) return -3; /* Filter must have even-length. */ if ((F/2)%2 == 0){ // Shift output one element right. This is necessary for perfect reconstruction. // i = N-1; even element goes to output[O-1], odd element goes to output[0] size_t j = 0; while(j <= start-1){ size_t k; for (k = 0; k < N && j <= start-1; ++k, ++j){ output[2*N-1] += filter[2*(start-1-j)] * input[k]; output[0] += filter[2*(start-1-j)+1] * input[k]; } } for (; j <= N+start-1 && j < F/2; ++j){ output[2*N-1] += filter[2*j] * input[N+start-1-j]; output[0] += filter[2*j+1] * input[N+start-1-j]; } while (j < F / 2){ size_t k; for (k = 0; k < N && j < F/2; ++k, ++j){ output[2*N-1] += filter[2*j] * input[N-1-k]; output[0] += filter[2*j+1] * input[N-1-k]; } } o += 1; } for (; i < F/2 && i < N; ++i, o += 2){ size_t j = 0; for(; j <= i; ++j){ output[o] += filter[2*j] * input[i-j]; output[o+1] += filter[2*j+1] * input[i-j]; } while (j < F/2){ size_t k; for(k = 0; k < N && j < F/2; ++k, ++j){ output[o] += filter[2*j] * input[N-1-k]; output[o+1] += filter[2*j+1] * input[N-1-k]; } } } for (; i < N; ++i, o += 2){ size_t j; for(j = 0; j < F/2; ++j){ output[o] += filter[2*j] * input[i-j]; output[o+1] += filter[2*j+1] * input[i-j]; } } for (; i < F/2 && i < end; ++i, o += 2){ size_t j = 0; while(i-j >= N){ size_t k; for (k = 0; k < N && i-j >= N; ++k, ++j){ output[o] += filter[2*(i-N-j)] * input[k]; output[o+1] += filter[2*(i-N-j)+1] * input[k]; } } for (; j <= i && j < F/2; ++j){ output[o] += filter[2*j] * input[i-j]; output[o+1] += filter[2*j+1] * input[i-j]; } while (j < F / 2){ size_t k; for (k = 0; k < N && j < F/2; ++k, ++j){ output[o] += filter[2*j] * input[N-1-k]; output[o+1] += filter[2*j+1] * input[N-1-k]; } } } for (; i < end; ++i, o += 2){ size_t j = 0; while(i-j >= N){ size_t k; for (k = 0; k < N && i-j >= N; ++k, ++j){ output[o] += filter[2*(i-N-j)] * input[k]; output[o+1] += filter[2*(i-N-j)+1] * input[k]; } } for (; j <= i && j < F/2; ++j){ output[o] += filter[2*j] * input[i-j]; output[o+1] += filter[2*j+1] * input[i-j]; } } return 0; } /* * performs IDWT for all modes * * The upsampling is performed by splitting filters to even and odd elements * and performing 2 convolutions. After refactoring the PERIODIZATION mode * case to separate function this looks much clearer now. */ int CAT(TYPE, _upsampling_convolution_valid_sf)(const TYPE * const restrict input, const size_t N, const REAL_TYPE * const restrict filter, const size_t F, TYPE * const restrict output, const size_t O, MODE mode) { // TODO: Allow non-2 step? if(mode == MODE_PERIODIZATION) return CAT(TYPE, _upsampling_convolution_valid_sf_periodization)(input, N, filter, F, output, O); if((F%2) || (N < F/2)) return -1; // Perform only stage 2 - all elements in the filter overlap an input element. { size_t o, i; for(o = 0, i = F/2 - 1; i < N; ++i, o += 2){ TYPE sum_even = 0; TYPE sum_odd = 0; size_t j; for(j = 0; j < F/2; ++j){ sum_even += filter[j*2] * input[i-j]; sum_odd += filter[j*2+1] * input[i-j]; } output[o] += sum_even; output[o+1] += sum_odd; } } return 0; } /* -> swt - todo */ int CAT(TYPE, _upsampled_filter_convolution)(const TYPE * const restrict input, const size_t N, const REAL_TYPE * const restrict filter, const size_t F, TYPE * const restrict output, const size_t step, MODE mode) { return -1; } #undef restrict #endif /* REAL_TYPE */ #endif /* TYPE */ PyWavelets-1.1.1/pywt/_extensions/c/convolution.template.h0000664000175000017500000000644713317422762024426 0ustar lee8rxlee8rx00000000000000/* Copyright (c) 2006-2012 Filip Wasilewski * Copyright (c) 2012-2016 The PyWavelets Developers * * See COPYING for license details. */ #include "templating.h" #ifndef REAL_TYPE #error REAL_TYPE must be defined here. #else #ifndef TYPE #error TYPE must be defined here. #else #include "common.h" #if defined _MSC_VER #define restrict __restrict #elif defined __GNUC__ #define restrict __restrict__ #endif /* Performs convolution of input with filter and downsamples by taking every * step-th element from the result. * * input - input data * N - input data length * filter - filter data * F - filter data length * output - output data * step - decimation step * mode - signal extension mode */ /* memory efficient version */ int CAT(TYPE, _downsampling_convolution)(const TYPE * const restrict input, const size_t N, const REAL_TYPE * const restrict filter, const size_t F, TYPE * const restrict output, const size_t step, MODE mode); /* downsampling convolution routine specific to periodization mode. * * input - input data * N - input data length * filter - filter data * F - filter data length * output - output data * step - decimation step * fstep - step size between non-zero entries in filter * (used to improve performance for the multilevel swt) */ int CAT(TYPE, _downsampling_convolution_periodization)( const TYPE * const restrict input, const size_t N, const REAL_TYPE * const restrict filter, const size_t F, TYPE * const restrict output, const size_t step, const size_t fstep); /* * Performs normal (full) convolution of "upsampled" input coeffs array with * filter Requires zero-filled output buffer (adds values instead of * overwriting - can be called many times with the same output). * * input - input data * N - input data length * filter - filter data * F - filter data length * output - output data * O - output lenght (currently not used) * mode - signal extension mode */ int CAT(TYPE, _upsampling_convolution_full)(const TYPE * const restrict input, const size_t N, const REAL_TYPE * const restrict filter, const size_t F, TYPE * const restrict output, const size_t O); /* Performs valid convolution (signals must overlap) * Extends (virtually) input for MODE_PERIODIZATION. */ int CAT(TYPE, _upsampling_convolution_valid_sf)(const TYPE * const restrict input, const size_t N, const REAL_TYPE * const restrict filter, const size_t F, TYPE * const restrict output, const size_t O, MODE mode); /* TODO * for SWT * int upsampled_filter_convolution(const TYPE * const restrict input, const int N, * const REAL_TYPE * const restrict filter, const int F, * TYPE * const restrict output, int step, int mode); */ #undef restrict #endif /* REAL_TYPE */ #endif /* TYPE */ PyWavelets-1.1.1/pywt/_extensions/c/cwt.c0000664000175000017500000000032513270003221020771 0ustar lee8rxlee8rx00000000000000#include "cwt.h" #ifdef TYPE #error TYPE should not be defined here. #else #define TYPE float #include "cwt.template.c" #undef TYPE #define TYPE double #include "cwt.template.c" #undef TYPE #endif /* TYPE */ PyWavelets-1.1.1/pywt/_extensions/c/cwt.h0000664000175000017500000000042613270003221021000 0ustar lee8rxlee8rx00000000000000#pragma once #include "common.h" #include "convolution.h" #include "wavelets.h" #ifdef TYPE #error TYPE should not be defined here. #else #define TYPE float #include "cwt.template.h" #undef TYPE #define TYPE double #include "cwt.template.h" #undef TYPE #endif /* TYPE */ PyWavelets-1.1.1/pywt/_extensions/c/cwt.template.c0000664000175000017500000003325413317422762022633 0ustar lee8rxlee8rx00000000000000/* Copyright (c) 2016 Holger Nahrstaedt */ /* See COPYING for license details. */ #include "templating.h" #ifndef TYPE #error TYPE must be defined here. #else #include "cwt.h" #include "convolution.h" #if defined _MSC_VER #define restrict __restrict #elif defined __GNUC__ #define restrict __restrict__ #endif #define _USE_MATH_DEFINES #include "math.h" TYPE CAT(TYPE, _pow)(const TYPE x, const TYPE y) { if (sizeof(TYPE) == sizeof(double)) return pow(x,y); else return powf(x,y); } TYPE CAT(TYPE, _sqrt)(const TYPE x) { if (sizeof(TYPE) == sizeof(double)) return sqrt(x); else return sqrtf(x); } TYPE CAT(TYPE, _exp)(const TYPE x) { if (sizeof(TYPE) == sizeof(double)) return exp(x); else return expf(x); } TYPE CAT(TYPE, _cos)(const TYPE x) { if (sizeof(TYPE) == sizeof(double)) return cos(x); else return cosf(x); } TYPE CAT(TYPE, _sin)(const TYPE x) { if (sizeof(TYPE) == sizeof(double)) return sin(x); else return sinf(x); } TYPE CAT(TYPE, _pi)(void) { if (sizeof(TYPE) == sizeof(double)) return M_PI; else return (TYPE)M_PI; } void CAT(TYPE, _gaus)(const TYPE * const restrict input, TYPE * const restrict output, const size_t N, const size_t number){ size_t i = 0; for (i = 0; i < N; i++) { switch (number) { case 1: output[i] = -2*input[i]*CAT(TYPE, _exp)(-CAT(TYPE, _pow)(input[i], 2.0))/CAT(TYPE, _sqrt)(CAT(TYPE, _sqrt)(CAT(TYPE, _pi)()/2)); break; case 2: output[i] = -2*(2*CAT(TYPE, _pow)(input[i], 2.0)-1)*CAT(TYPE, _exp)(-CAT(TYPE, _pow)(input[i], 2.0))/CAT(TYPE, _sqrt)(3*CAT(TYPE, _sqrt)(CAT(TYPE, _pi)()/2)); break; case 3: output[i] = -4*(-2*CAT(TYPE, _pow)(input[i], 3.0)+3*input[i])*CAT(TYPE, _exp)(-CAT(TYPE, _pow)(input[i], 2.0))/CAT(TYPE, _sqrt)(15*CAT(TYPE, _sqrt)(CAT(TYPE, _pi)()/2)); break; case 4: output[i] = 4*(-12*CAT(TYPE, _pow)(input[i], 2.0)+4*CAT(TYPE, _pow)(input[i], 4.0)+3)*CAT(TYPE, _exp)(-CAT(TYPE, _pow)(input[i], 2.0))/CAT(TYPE, _sqrt)(105*CAT(TYPE, _sqrt)(CAT(TYPE, _pi)()/2)); break; case 5: output[i] = 8*(-4*CAT(TYPE, _pow)(input[i], 5.0)+20*CAT(TYPE, _pow)(input[i], 3.0)-15*input[i])*CAT(TYPE, _exp)(-CAT(TYPE, _pow)(input[i], 2.0))/CAT(TYPE, _sqrt)(105*9*CAT(TYPE, _sqrt)(CAT(TYPE, _pi)()/2)); break; case 6: output[i] = -8*(8*CAT(TYPE, _pow)(input[i], 6.0)-60*CAT(TYPE, _pow)(input[i], 4.0)+90*CAT(TYPE, _pow)(input[i], 2.0)-15)*CAT(TYPE, _exp)(-CAT(TYPE, _pow)(input[i], 2.0))/CAT(TYPE, _sqrt)(105*9*11*CAT(TYPE, _sqrt)(CAT(TYPE, _pi)()/2)); break; case 7: output[i] = -16*(-8*CAT(TYPE, _pow)(input[i], 7.0)+84*CAT(TYPE, _pow)(input[i], 5.0)-210*CAT(TYPE, _pow)(input[i], 3.0)+105*(input[i]))*CAT(TYPE, _exp)(-CAT(TYPE, _pow)(input[i], 2.0))/CAT(TYPE, _sqrt)(105*9*11*13*CAT(TYPE, _sqrt)(CAT(TYPE, _pi)()/2)); break; case 8: output[i] = 16*(16*CAT(TYPE, _pow)(input[i], 8.0)-224*CAT(TYPE, _pow)(input[i], 6.0)+840*CAT(TYPE, _pow)(input[i], 4.0)-840*CAT(TYPE, _pow)(input[i], 2.0)+105)*CAT(TYPE, _exp)(-CAT(TYPE, _pow)(input[i], 2.0))/CAT(TYPE, _sqrt)(105*9*11*13*15*CAT(TYPE, _sqrt)(CAT(TYPE, _pi)()/2)); break; } } } void CAT(TYPE, _mexh)(const TYPE * const restrict input, TYPE * const restrict output, const size_t N) { size_t i = 0; for (i = 0; i < N; i++) { output[i] = (1-CAT(TYPE, _pow)(input[i], 2.0))*CAT(TYPE, _exp)(-CAT(TYPE, _pow)(input[i], 2.0)/2)*2/(CAT(TYPE, _sqrt)(3)*CAT(TYPE, _sqrt)(CAT(TYPE, _sqrt)(CAT(TYPE, _pi)()))); } } void CAT(TYPE, _morl)(const TYPE * const restrict input, TYPE * const restrict output, const size_t N) { size_t i = 0; for (i = 0; i < N; i++) { output[i] = CAT(TYPE, _cos)(5*input[i])*CAT(TYPE, _exp)(-CAT(TYPE, _pow)(input[i], 2.0)/2); } } void CAT(TYPE, _cgau)(const TYPE * const restrict input, TYPE * const restrict output_r, TYPE * const restrict output_i, const size_t N, const size_t number){ size_t i = 0; for (i = 0; i < N; i++) { switch (number) { case 1: output_r[i] = (-2*input[i]*CAT(TYPE, _cos)(input[i])-CAT(TYPE, _sin)(input[i]))*CAT(TYPE, _exp)(-CAT(TYPE, _pow)(input[i], 2.0))/CAT(TYPE, _sqrt)(2*CAT(TYPE, _sqrt)(CAT(TYPE, _pi)()/2)); output_i[i] = (2*input[i]*CAT(TYPE, _sin)(input[i])-CAT(TYPE, _cos)(input[i]))*CAT(TYPE, _exp)(-CAT(TYPE, _pow)(input[i], 2.0))/CAT(TYPE, _sqrt)(2*CAT(TYPE, _sqrt)(CAT(TYPE, _pi)()/2)); break; case 2: output_r[i] = (4*CAT(TYPE, _pow)(input[i], 2.0)*CAT(TYPE, _cos)(input[i])+4*input[i]*CAT(TYPE, _sin)(input[i])-3*CAT(TYPE, _cos)(input[i]))*CAT(TYPE, _exp)(-CAT(TYPE, _pow)(input[i], 2.0))/CAT(TYPE, _sqrt)(10*CAT(TYPE, _sqrt)(CAT(TYPE, _pi)()/2)); output_i[i] = (-4*CAT(TYPE, _pow)(input[i], 2.0)*CAT(TYPE, _sin)(input[i])+4*input[i]*CAT(TYPE, _cos)(input[i])+3*CAT(TYPE, _sin)(input[i]))*CAT(TYPE, _exp)(-CAT(TYPE, _pow)(input[i], 2.0))/CAT(TYPE, _sqrt)(10*CAT(TYPE, _sqrt)(CAT(TYPE, _pi)()/2)); break; case 3: output_r[i] = (-8*CAT(TYPE, _pow)(input[i], 3.0)*CAT(TYPE, _cos)(input[i])-12*CAT(TYPE, _pow)(input[i], 2.0)*CAT(TYPE, _sin)(input[i])+18*input[i]*CAT(TYPE, _cos)(input[i])+7*CAT(TYPE, _sin)(input[i]))*CAT(TYPE, _exp)(-CAT(TYPE, _pow)(input[i], 2.0))/CAT(TYPE, _sqrt)(76*CAT(TYPE, _sqrt)(CAT(TYPE, _pi)()/2)); output_i[i] = (8*CAT(TYPE, _pow)(input[i], 3.0)*CAT(TYPE, _sin)(input[i])-12*CAT(TYPE, _pow)(input[i], 2.0)*CAT(TYPE, _cos)(input[i])-18*input[i]*CAT(TYPE, _sin)(input[i])+7*CAT(TYPE, _cos)(input[i]))*CAT(TYPE, _exp)(-CAT(TYPE, _pow)(input[i], 2.0))/CAT(TYPE, _sqrt)(76*CAT(TYPE, _sqrt)(CAT(TYPE, _pi)()/2)); break; case 4: output_r[i] = (16*CAT(TYPE, _pow)(input[i], 4.0)*CAT(TYPE, _cos)(input[i])+32*CAT(TYPE, _pow)(input[i], 3.0)*CAT(TYPE, _sin)(input[i])-72*CAT(TYPE, _pow)(input[i], 2.0)*CAT(TYPE, _cos)(input[i])-56*input[i]*CAT(TYPE, _sin)(input[i])+25*CAT(TYPE, _cos)(input[i]))*CAT(TYPE, _exp)(-CAT(TYPE, _pow)(input[i], 2.0))/CAT(TYPE, _sqrt)(764*CAT(TYPE, _sqrt)(CAT(TYPE, _pi)()/2));; output_i[i] = (-16*CAT(TYPE, _pow)(input[i], 4.0)*CAT(TYPE, _sin)(input[i])+32*CAT(TYPE, _pow)(input[i], 3.0)*CAT(TYPE, _cos)(input[i])+72*CAT(TYPE, _pow)(input[i], 2.0)*CAT(TYPE, _sin)(input[i])-56*input[i]*CAT(TYPE, _cos)(input[i])-25*CAT(TYPE, _sin)(input[i]))*CAT(TYPE, _exp)(-CAT(TYPE, _pow)(input[i], 2.0))/CAT(TYPE, _sqrt)(764*CAT(TYPE, _sqrt)(CAT(TYPE, _pi)()/2)); break; case 5: output_r[i] = (-32*CAT(TYPE, _pow)(input[i], 5.0)*CAT(TYPE, _cos)(input[i])-80*CAT(TYPE, _pow)(input[i], 4.0)*CAT(TYPE, _sin)(input[i])+240*CAT(TYPE, _pow)(input[i], 3.0)*CAT(TYPE, _cos)(input[i])+280*CAT(TYPE, _pow)(input[i], 2.0)*CAT(TYPE, _sin)(input[i])-250*input[i]*CAT(TYPE, _cos)(input[i])-81*CAT(TYPE, _sin)(input[i]))*CAT(TYPE, _exp)(-CAT(TYPE, _pow)(input[i], 2.0))/CAT(TYPE, _sqrt)(9496*CAT(TYPE, _sqrt)(CAT(TYPE, _pi)()/2)); output_i[i] = (32*CAT(TYPE, _pow)(input[i], 5.0)*CAT(TYPE, _sin)(input[i])-80*CAT(TYPE, _pow)(input[i], 4.0)*CAT(TYPE, _cos)(input[i])-240*CAT(TYPE, _pow)(input[i], 3.0)*CAT(TYPE, _sin)(input[i])+280*CAT(TYPE, _pow)(input[i], 2.0)*CAT(TYPE, _cos)(input[i])+250*input[i]*CAT(TYPE, _sin)(input[i])-81*CAT(TYPE, _cos)(input[i]))*CAT(TYPE, _exp)(-CAT(TYPE, _pow)(input[i], 2.0))/CAT(TYPE, _sqrt)(9496*CAT(TYPE, _sqrt)(CAT(TYPE, _pi)()/2)); break; case 6: output_r[i] = (64*CAT(TYPE, _pow)(input[i], 6.0)*CAT(TYPE, _cos)(input[i])+192*CAT(TYPE, _pow)(input[i], 5.0)*CAT(TYPE, _sin)(input[i])-720*CAT(TYPE, _pow)(input[i], 4.0)*CAT(TYPE, _cos)(input[i])-1120*CAT(TYPE, _pow)(input[i], 3.0)*CAT(TYPE, _sin)(input[i])+1500*CAT(TYPE, _pow)(input[i], 2.0)*CAT(TYPE, _cos)(input[i])+972*input[i]*CAT(TYPE, _sin)(input[i])-331*CAT(TYPE, _cos)(input[i]))*CAT(TYPE, _exp)(-CAT(TYPE, _pow)(input[i], 2.0))/CAT(TYPE, _sqrt)(140152*CAT(TYPE, _sqrt)(CAT(TYPE, _pi)()/2)); output_i[i] = (-64*CAT(TYPE, _pow)(input[i], 6.0)*CAT(TYPE, _sin)(input[i])+192*CAT(TYPE, _pow)(input[i], 5.0)*CAT(TYPE, _cos)(input[i])+720*CAT(TYPE, _pow)(input[i], 4.0)*CAT(TYPE, _sin)(input[i])-1120*CAT(TYPE, _pow)(input[i], 3.0)*CAT(TYPE, _cos)(input[i])-1500*CAT(TYPE, _pow)(input[i], 2.0)*CAT(TYPE, _sin)(input[i])+972*input[i]*CAT(TYPE, _cos)(input[i])+331*CAT(TYPE, _sin)(input[i]))*CAT(TYPE, _exp)(-CAT(TYPE, _pow)(input[i], 2.0))/CAT(TYPE, _sqrt)(140152*CAT(TYPE, _sqrt)(CAT(TYPE, _pi)()/2)); break; case 7: output_r[i] = (-128*CAT(TYPE, _pow)(input[i], 7.0)*CAT(TYPE, _cos)(input[i])-448*CAT(TYPE, _pow)(input[i], 6.0)*CAT(TYPE, _sin)(input[i])+2016*CAT(TYPE, _pow)(input[i], 5.0)*CAT(TYPE, _cos)(input[i])+3920*CAT(TYPE, _pow)(input[i], 4.0)*CAT(TYPE, _sin)(input[i])-7000*CAT(TYPE, _pow)(input[i], 3.0)*CAT(TYPE, _cos)(input[i])-6804*CAT(TYPE, _pow)(input[i], 2.0)*CAT(TYPE, _sin)(input[i])+4634*input[i]*CAT(TYPE, _cos)(input[i])+1303*CAT(TYPE, _sin)(input[i]))*CAT(TYPE, _exp)(-CAT(TYPE, _pow)(input[i], 2.0))/CAT(TYPE, _sqrt)(2390480*CAT(TYPE, _sqrt)(CAT(TYPE, _pi)()/2)); output_i[i] = (128*CAT(TYPE, _pow)(input[i], 7.0)*CAT(TYPE, _sin)(input[i])-448*CAT(TYPE, _pow)(input[i], 6.0)*CAT(TYPE, _cos)(input[i])-2016*CAT(TYPE, _pow)(input[i], 5.0)*CAT(TYPE, _sin)(input[i])+3920*CAT(TYPE, _pow)(input[i], 4.0)*CAT(TYPE, _cos)(input[i])+7000*CAT(TYPE, _pow)(input[i], 3.0)*CAT(TYPE, _sin)(input[i])-6804*CAT(TYPE, _pow)(input[i], 2.0)*CAT(TYPE, _cos)(input[i])-4634*input[i]*CAT(TYPE, _sin)(input[i])+1303*CAT(TYPE, _cos)(input[i]))*CAT(TYPE, _exp)(-CAT(TYPE, _pow)(input[i], 2.0))/CAT(TYPE, _sqrt)(2390480*CAT(TYPE, _sqrt)(CAT(TYPE, _pi)()/2)); break; case 8: output_r[i] = (256*CAT(TYPE, _pow)(input[i], 8.0)*CAT(TYPE, _cos)(input[i])+1024*CAT(TYPE, _pow)(input[i], 7.0)*CAT(TYPE, _sin)(input[i])-5376*CAT(TYPE, _pow)(input[i], 6.0)*CAT(TYPE, _cos)(input[i])-12544*CAT(TYPE, _pow)(input[i], 5.0)*CAT(TYPE, _sin)(input[i])+28000*CAT(TYPE, _pow)(input[i], 4.0)*CAT(TYPE, _cos)(input[i])+36288*CAT(TYPE, _pow)(input[i], 3.0)*CAT(TYPE, _sin)(input[i])-37072*CAT(TYPE, _pow)(input[i], 2.0)*CAT(TYPE, _cos)(input[i])-20848*input[i]*CAT(TYPE, _sin)(input[i])+5937*CAT(TYPE, _cos)(input[i]))*CAT(TYPE, _exp)(-CAT(TYPE, _pow)(input[i], 2.0))/CAT(TYPE, _sqrt)(46206736*CAT(TYPE, _sqrt)(CAT(TYPE, _pi)()/2)); output_i[i] = (-256*CAT(TYPE, _pow)(input[i], 8.0)*CAT(TYPE, _sin)(input[i])+1024*CAT(TYPE, _pow)(input[i], 7.0)*CAT(TYPE, _cos)(input[i])+5376*CAT(TYPE, _pow)(input[i], 6.0)*CAT(TYPE, _sin)(input[i])-12544*CAT(TYPE, _pow)(input[i], 5.0)*CAT(TYPE, _cos)(input[i])-28000*CAT(TYPE, _pow)(input[i], 4.0)*CAT(TYPE, _sin)(input[i])+36288*CAT(TYPE, _pow)(input[i], 3.0)*CAT(TYPE, _cos)(input[i])+37072*CAT(TYPE, _pow)(input[i], 2.0)*CAT(TYPE, _sin)(input[i])-20848*input[i]*CAT(TYPE, _cos)(input[i])-5937*CAT(TYPE, _sin)(input[i]))*CAT(TYPE, _exp)(-CAT(TYPE, _pow)(input[i], 2.0))/CAT(TYPE, _sqrt)(46206736*CAT(TYPE, _sqrt)(CAT(TYPE, _pi)()/2)); break; } } } void CAT(TYPE, _shan)(const TYPE * const restrict input, TYPE * const restrict output_r, TYPE * const restrict output_i, const size_t N, const TYPE FB, const TYPE FC) { size_t i = 0; for (i = 0; i < N; i++) { output_r[i] =CAT(TYPE, _cos)(2*CAT(TYPE, _pi)()*FC*input[i])*CAT(TYPE, _sqrt)(FB); output_i[i] = CAT(TYPE, _sin)(2*CAT(TYPE, _pi)()*FC*input[i])*CAT(TYPE, _sqrt)(FB); if (input[i] != 0) { output_r[i] *= CAT(TYPE, _sin)(input[i]*FB*CAT(TYPE, _pi)())/(input[i]*FB*CAT(TYPE, _pi)()); output_i[i] *= CAT(TYPE, _sin)(input[i]*FB*CAT(TYPE, _pi)())/(input[i]*FB*CAT(TYPE, _pi)()); } } } void CAT(TYPE, _fbsp)(const TYPE * const restrict input, TYPE * const restrict output_r, TYPE * const restrict output_i, const size_t N, const unsigned int M, const TYPE FB, const TYPE FC) { size_t i = 0; for (i = 0; i < N; i++) { if (input[i] != 0) { output_r[i] = CAT(TYPE, _cos)(2*CAT(TYPE, _pi)()*FC*input[i])*CAT(TYPE, _sqrt)(FB)*CAT(TYPE, _pow)(CAT(TYPE, _sin)(CAT(TYPE, _pi)()*input[i]*FB/(TYPE)M)/(CAT(TYPE, _pi)()*input[i]*FB/(TYPE)M),(TYPE)M); output_i[i] = CAT(TYPE, _sin)(2*CAT(TYPE, _pi)()*FC*input[i])*CAT(TYPE, _sqrt)(FB)*CAT(TYPE, _pow)(CAT(TYPE, _sin)(CAT(TYPE, _pi)()*input[i]*FB/(TYPE)M)/(CAT(TYPE, _pi)()*input[i]*FB/(TYPE)M),(TYPE)M); } else { output_r[i] = CAT(TYPE, _cos)(2*CAT(TYPE, _pi)()*FC*input[i])*CAT(TYPE, _sqrt)(FB); output_i[i] = CAT(TYPE, _sin)(2*CAT(TYPE, _pi)()*FC*input[i])*CAT(TYPE, _sqrt)(FB); } } } void CAT(TYPE, _cmor)(const TYPE * const restrict input, TYPE * const restrict output_r, TYPE * const restrict output_i, const size_t N, const TYPE FB, const TYPE FC) { size_t i = 0; for (i = 0; i < N; i++) { output_r[i] =CAT(TYPE, _cos)(2*CAT(TYPE, _pi)()*FC*input[i])*CAT(TYPE, _exp)(-CAT(TYPE, _pow)(input[i], 2.0)/FB)/CAT(TYPE, _sqrt)(CAT(TYPE, _pi)()*FB); output_i[i] = CAT(TYPE, _sin)(2*CAT(TYPE, _pi)()*FC*input[i])*CAT(TYPE, _exp)(-CAT(TYPE, _pow)(input[i], 2.0)/FB)/CAT(TYPE, _sqrt)(CAT(TYPE, _pi)()*FB); } } #endif /* TYPE */ #undef restrict PyWavelets-1.1.1/pywt/_extensions/c/cwt.template.h0000664000175000017500000000304013270003221022605 0ustar lee8rxlee8rx00000000000000/* Copyright (c) 2016 Holger Nahrstaedt */ /* See COPYING for license details. */ #include "templating.h" #ifndef TYPE #error TYPE must be defined here. #else #include "cwt.h" #if defined _MSC_VER #define restrict __restrict #elif defined __GNUC__ #define restrict __restrict__ #endif void CAT(TYPE, _gaus)(const TYPE * const restrict input, TYPE * const restrict output, const size_t N, const size_t number); void CAT(TYPE, _mexh)(const TYPE * const restrict input, TYPE * const restrict output, const size_t N); void CAT(TYPE, _morl)(const TYPE * const restrict input, TYPE * const restrict output, const size_t N); void CAT(TYPE, _cgau)(const TYPE * const restrict input, TYPE * const restrict output_r, TYPE * const restrict output_i, const size_t N, const size_t number); void CAT(TYPE, _shan)(const TYPE * const restrict input, TYPE * const restrict output_r, TYPE * const restrict output_i, const size_t N, const TYPE FB, const TYPE FC); void CAT(TYPE, _fbsp)(const TYPE * const restrict input, TYPE * const restrict output_r, TYPE * const restrict output_i, const size_t N, const unsigned int M, const TYPE FB, const TYPE FC); void CAT(TYPE, _cmor)(const TYPE * const restrict input, TYPE * const restrict output_r, TYPE * const restrict output_i, const size_t N, const TYPE FB, const TYPE FC); #endif /* TYPE */ #undef restrict PyWavelets-1.1.1/pywt/_extensions/c/templating.h0000664000175000017500000000011713270003221022344 0ustar lee8rxlee8rx00000000000000#pragma once #define CAT_HELPER(A, B) A##B #define CAT(A, B) CAT_HELPER(A, B) PyWavelets-1.1.1/pywt/_extensions/c/wavelets.c0000664000175000017500000005414313334573651022061 0ustar lee8rxlee8rx00000000000000/* Copyright (c) 2006-2012 Filip Wasilewski * Copyright (c) 2012-2016 The PyWavelets Developers * * See COPYING for license details. */ /* Allocating, setting properties and destroying wavelet structs */ #include "wavelets.h" #include "wavelets_coeffs.h" #define SWAP(t, x, y) {t tmp = x; x = y; y = tmp;} #define NELEMS(x) (sizeof(x) / sizeof(*x)) int is_discrete_wavelet(WAVELET_NAME name) { switch(name){ case HAAR: return 1; case RBIO: return 1; case DB: return 1; case SYM: return 1; case COIF: return 1; case BIOR: return 1; case DMEY: return 1; case GAUS: return 0; case MEXH: return 0; case MORL: return 0; case CGAU: return 0; case SHAN: return 0; case FBSP: return 0; case CMOR: return 0; default: return -1; } } DiscreteWavelet* discrete_wavelet(WAVELET_NAME name, unsigned int order) { DiscreteWavelet *w; /* Haar wavelet */ if(name == HAAR){ /* the same as db1 */ w = discrete_wavelet(DB, 1); w->base.family_name = "Haar"; w->base.short_name = "haar"; return w; /* Reverse biorthogonal wavelets family */ } else if (name == RBIO) { /* rbio is like bior, only with switched filters */ w = discrete_wavelet(BIOR, order); if (w == NULL) return NULL; SWAP(size_t, w->dec_len, w->rec_len); SWAP(float*, w->rec_lo_float, w->dec_lo_float); SWAP(float*, w->rec_hi_float, w->dec_hi_float); SWAP(double*, w->rec_lo_double, w->dec_lo_double); SWAP(double*, w->rec_hi_double, w->dec_hi_double); { size_t i, j; for(i = 0, j = w->rec_len - 1; i < j; i++, j--){ SWAP(float, w->rec_lo_float[i], w->rec_lo_float[j]); SWAP(float, w->rec_hi_float[i], w->rec_hi_float[j]); SWAP(float, w->dec_lo_float[i], w->dec_lo_float[j]); SWAP(float, w->dec_hi_float[i], w->dec_hi_float[j]); SWAP(double, w->rec_lo_double[i], w->rec_lo_double[j]); SWAP(double, w->rec_hi_double[i], w->rec_hi_double[j]); SWAP(double, w->dec_lo_double[i], w->dec_lo_double[j]); SWAP(double, w->dec_hi_double[i], w->dec_hi_double[j]); } } w->base.family_name = "Reverse biorthogonal"; w->base.short_name = "rbio"; return w; } switch(name){ /* Daubechies wavelets family */ case DB: { size_t coeffs_idx = order - 1; if (coeffs_idx >= NELEMS(db_float) || coeffs_idx >= NELEMS(db_double)) return NULL; w = blank_discrete_wavelet(2 * order); if(w == NULL) return NULL; w->vanishing_moments_psi = order; w->vanishing_moments_phi = 0; w->base.support_width = 2*order - 1; w->base.orthogonal = 1; w->base.biorthogonal = 1; w->base.symmetry = ASYMMETRIC; w->base.compact_support = 1; w->base.family_name = "Daubechies"; w->base.short_name = "db"; { size_t i; for(i = 0; i < w->rec_len; ++i){ w->rec_lo_float[i] = db_float[coeffs_idx][i]; w->dec_lo_float[i] = db_float[coeffs_idx][w->dec_len-1-i]; w->rec_hi_float[i] = ((i % 2) ? -1 : 1) * db_float[coeffs_idx][w->dec_len-1-i]; w->dec_hi_float[i] = (((w->dec_len-1-i) % 2) ? -1 : 1) * db_float[coeffs_idx][i]; } } { size_t i; for(i = 0; i < w->rec_len; ++i){ w->rec_lo_double[i] = db_double[coeffs_idx][i]; w->dec_lo_double[i] = db_double[coeffs_idx][w->dec_len-1-i]; w->rec_hi_double[i] = ((i % 2) ? -1 : 1) * db_double[coeffs_idx][w->dec_len-1-i]; w->dec_hi_double[i] = (((w->dec_len-1-i) % 2) ? -1 : 1) * db_double[coeffs_idx][i]; } } break; } /* Symlets wavelets family */ case SYM: { size_t coeffs_idx = order - 2; if (coeffs_idx >= NELEMS(sym_float) || coeffs_idx >= NELEMS(sym_double)) return NULL; w = blank_discrete_wavelet(2 * order); if(w == NULL) return NULL; w->vanishing_moments_psi = order; w->vanishing_moments_phi = 0; w->base.support_width = 2*order - 1; w->base.orthogonal = 1; w->base.biorthogonal = 1; w->base.symmetry = NEAR_SYMMETRIC; w->base.compact_support = 1; w->base.family_name = "Symlets"; w->base.short_name = "sym"; { size_t i; for(i = 0; i < w->rec_len; ++i){ w->rec_lo_float[i] = sym_float[coeffs_idx][i]; w->dec_lo_float[i] = sym_float[coeffs_idx][w->dec_len-1-i]; w->rec_hi_float[i] = ((i % 2) ? -1 : 1) * sym_float[coeffs_idx][w->dec_len-1-i]; w->dec_hi_float[i] = (((w->dec_len-1-i) % 2) ? -1 : 1) * sym_float[coeffs_idx][i]; } } { size_t i; for(i = 0; i < w->rec_len; ++i){ w->rec_lo_double[i] = sym_double[coeffs_idx][i]; w->dec_lo_double[i] = sym_double[coeffs_idx][w->dec_len-1-i]; w->rec_hi_double[i] = ((i % 2) ? -1 : 1) * sym_double[coeffs_idx][w->dec_len-1-i]; w->dec_hi_double[i] = (((w->dec_len-1-i) % 2) ? -1 : 1) * sym_double[coeffs_idx][i]; } } break; } /* Coiflets wavelets family */ case COIF: { size_t coeffs_idx = order - 1; if (coeffs_idx >= NELEMS(coif_float) || coeffs_idx >= NELEMS(coif_double)) return NULL; w = blank_discrete_wavelet(6 * order); if(w == NULL) return NULL; w->vanishing_moments_psi = 2*order; w->vanishing_moments_phi = 2*order -1; w->base.support_width = 6*order - 1; w->base.orthogonal = 1; w->base.biorthogonal = 1; w->base.symmetry = NEAR_SYMMETRIC; w->base.compact_support = 1; w->base.family_name = "Coiflets"; w->base.short_name = "coif"; { size_t i; for(i = 0; i < w->rec_len; ++i){ w->rec_lo_float[i] = coif_float[coeffs_idx][i] * sqrt2_float; w->dec_lo_float[i] = coif_float[coeffs_idx][w->dec_len-1-i] * sqrt2_float; w->rec_hi_float[i] = ((i % 2) ? -1 : 1) * coif_float[coeffs_idx][w->dec_len-1-i] * sqrt2_float; w->dec_hi_float[i] = (((w->dec_len-1-i) % 2) ? -1 : 1) * coif_float[coeffs_idx][i] * sqrt2_float; } } { size_t i; for(i = 0; i < w->rec_len; ++i){ w->rec_lo_double[i] = coif_double[coeffs_idx][i] * sqrt2_double; w->dec_lo_double[i] = coif_double[coeffs_idx][w->dec_len-1-i] * sqrt2_double; w->rec_hi_double[i] = ((i % 2) ? -1 : 1) * coif_double[coeffs_idx][w->dec_len-1-i] * sqrt2_double; w->dec_hi_double[i] = (((w->dec_len-1-i) % 2) ? -1 : 1) * coif_double[coeffs_idx][i] * sqrt2_double; } } break; } /* Biorthogonal wavelets family */ case BIOR: { unsigned int N = order / 10, M = order % 10; size_t M_idx; size_t M_max; switch (N) { case 1: if (M % 2 != 1 || M > 5) return NULL; M_idx = M / 2; M_max = 5; break; case 2: if (M % 2 != 0 || M < 2 || M > 8) return NULL; M_idx = M / 2 - 1; M_max = 8; break; case 3: if (M % 2 != 1) return NULL; M_idx = M / 2; M_max = 9; break; case 4: case 5: if (M != N) return NULL; M_idx = 0; M_max = M; break; case 6: if (M != 8) return NULL; M_idx = 0; M_max = 8; break; default: return NULL; } w = blank_discrete_wavelet((N == 1) ? 2 * M : 2 * M + 2); if(w == NULL) return NULL; w->vanishing_moments_psi = order/10; w->vanishing_moments_phi = order % 10; w->base.support_width = -1; w->base.orthogonal = 0; w->base.biorthogonal = 1; w->base.symmetry = SYMMETRIC; w->base.compact_support = 1; w->base.family_name = "Biorthogonal"; w->base.short_name = "bior"; { size_t n = M_max - M; size_t i; for(i = 0; i < w->rec_len; ++i){ w->rec_lo_float[i] = bior_float[N - 1][0][i+n]; w->dec_lo_float[i] = bior_float[N - 1][M_idx+1][w->dec_len-1-i]; w->rec_hi_float[i] = ((i % 2) ? -1 : 1) * bior_float[N - 1][M_idx+1][w->dec_len-1-i]; w->dec_hi_float[i] = (((w->dec_len-1-i) % 2) ? -1 : 1) * bior_float[N - 1][0][i+n]; } } { size_t n = M_max - M; size_t i; for(i = 0; i < w->rec_len; ++i){ w->rec_lo_double[i] = bior_double[N - 1][0][i+n]; w->dec_lo_double[i] = bior_double[N - 1][M_idx+1][w->dec_len-1-i]; w->rec_hi_double[i] = ((i % 2) ? -1 : 1) * bior_double[N - 1][M_idx+1][w->dec_len-1-i]; w->dec_hi_double[i] = (((w->dec_len-1-i) % 2) ? -1 : 1) * bior_double[N - 1][0][i+n]; } } break; } /* Discrete FIR filter approximation of Meyer wavelet */ case DMEY: w = blank_discrete_wavelet(62); if(w == NULL) return NULL; w->vanishing_moments_psi = -1; w->vanishing_moments_phi = -1; w->base.support_width = -1; w->base.orthogonal = 1; w->base.biorthogonal = 1; w->base.symmetry = SYMMETRIC; w->base.compact_support = 1; w->base.family_name = "Discrete Meyer (FIR Approximation)"; w->base.short_name = "dmey"; { size_t i; for(i = 0; i < w->rec_len; ++i){ w->rec_lo_float[i] = dmey_float[i]; w->dec_lo_float[i] = dmey_float[w->dec_len-1-i]; w->rec_hi_float[i] = ((i % 2) ? -1 : 1) * dmey_float[w->dec_len-1-i]; w->dec_hi_float[i] = (((w->dec_len-1-i) % 2) ? -1 : 1) * dmey_float[i]; } } { size_t i; for(i = 0; i < w->rec_len; ++i){ w->rec_lo_double[i] = dmey_double[i]; w->dec_lo_double[i] = dmey_double[w->dec_len-1-i]; w->rec_hi_double[i] = ((i % 2) ? -1 : 1) * dmey_double[w->dec_len-1-i]; w->dec_hi_double[i] = (((w->dec_len-1-i) % 2) ? -1 : 1) * dmey_double[i]; } } break; default: return NULL; } return w; } ContinuousWavelet* continuous_wavelet(WAVELET_NAME name, unsigned int order) { ContinuousWavelet *w; switch(name){ /* Gaussian Wavelets */ case GAUS: if (order > 8) return NULL; w = blank_continuous_wavelet(); if(w == NULL) return NULL; w->base.support_width = -1; w->base.orthogonal = 0; w->base.biorthogonal = 0; if (order % 2 == 0) w->base.symmetry = SYMMETRIC; else w->base.symmetry = ANTI_SYMMETRIC; w->base.compact_support = 0; w->base.family_name = "Gaussian"; w->base.short_name = "gaus"; w->complex_cwt = 0; w->lower_bound = -5; w->upper_bound = 5; w->center_frequency = 0; w->bandwidth_frequency = 0; w->fbsp_order = 0; break; case MEXH: w = blank_continuous_wavelet(); if(w == NULL) return NULL; w->base.support_width = -1; w->base.orthogonal = 0; w->base.biorthogonal = 0; w->base.symmetry = SYMMETRIC; w->base.compact_support = 0; w->base.family_name = "Mexican hat wavelet"; w->base.short_name = "mexh"; w->complex_cwt = 0; w->lower_bound = -8; w->upper_bound = 8; w->center_frequency = 0; w->bandwidth_frequency = 0; w->fbsp_order = 0; break; case MORL: w = blank_continuous_wavelet(); if(w == NULL) return NULL; w->base.support_width = -1; w->base.orthogonal = 0; w->base.biorthogonal = 0; w->base.symmetry = SYMMETRIC; w->base.compact_support = 0; w->base.family_name = "Morlet wavelet"; w->base.short_name = "morl"; w->complex_cwt = 0; w->lower_bound = -8; w->upper_bound = 8; w->center_frequency = 0; w->bandwidth_frequency = 0; w->fbsp_order = 0; break; case CGAU: if (order > 8) return NULL; w = blank_continuous_wavelet(); if(w == NULL) return NULL; w->base.support_width = -1; w->base.orthogonal = 0; w->base.biorthogonal = 0; if (order % 2 == 0) w->base.symmetry = SYMMETRIC; else w->base.symmetry = ANTI_SYMMETRIC; w->base.compact_support = 0; w->base.family_name = "Complex Gaussian wavelets"; w->base.short_name = "cgau"; w->complex_cwt = 1; w->lower_bound = -5; w->upper_bound = 5; w->center_frequency = 0; w->bandwidth_frequency = 0; w->fbsp_order = 0; break; case SHAN: w = blank_continuous_wavelet(); if(w == NULL) return NULL; w->base.support_width = -1; w->base.orthogonal = 0; w->base.biorthogonal = 0; w->base.symmetry = ASYMMETRIC; w->base.compact_support = 0; w->base.family_name = "Shannon wavelets"; w->base.short_name = "shan"; w->complex_cwt = 1; w->lower_bound = -20; w->upper_bound = 20; w->center_frequency = 1; w->bandwidth_frequency = 0.5; w->fbsp_order = 0; break; case FBSP: w = blank_continuous_wavelet(); if(w == NULL) return NULL; w->base.support_width = -1; w->base.orthogonal = 0; w->base.biorthogonal = 0; w->base.symmetry = ASYMMETRIC; w->base.compact_support = 0; w->base.family_name = "Frequency B-Spline wavelets"; w->base.short_name = "fbsp"; w->complex_cwt = 1; w->lower_bound = -20; w->upper_bound = 20; w->center_frequency = 0.5; w->bandwidth_frequency = 1; w->fbsp_order = 2; break; case CMOR: w = blank_continuous_wavelet(); if(w == NULL) return NULL; w->base.support_width = -1; w->base.orthogonal = 0; w->base.biorthogonal = 0; w->base.symmetry = ASYMMETRIC; w->base.compact_support = 0; w->base.family_name = "Complex Morlet wavelets"; w->base.short_name = "cmor"; w->complex_cwt = 1; w->lower_bound = -8; w->upper_bound = 8; w->center_frequency = 0.5; w->bandwidth_frequency = 1; w->fbsp_order = 0; break; default: return NULL; } return w; } DiscreteWavelet* blank_discrete_wavelet(size_t filters_length) { DiscreteWavelet* w; /* pad to even length */ if(filters_length > 0 && filters_length % 2) ++filters_length; w = wtmalloc(sizeof(DiscreteWavelet)); if(w == NULL) return NULL; w->dec_len = w->rec_len = filters_length; if (filters_length > 0) { w->dec_lo_float = wtcalloc(filters_length, sizeof(float)); w->dec_hi_float = wtcalloc(filters_length, sizeof(float)); w->rec_lo_float = wtcalloc(filters_length, sizeof(float)); w->rec_hi_float = wtcalloc(filters_length, sizeof(float)); w->dec_lo_double = wtcalloc(filters_length, sizeof(double)); w->dec_hi_double = wtcalloc(filters_length, sizeof(double)); w->rec_lo_double = wtcalloc(filters_length, sizeof(double)); w->rec_hi_double = wtcalloc(filters_length, sizeof(double)); if(w->dec_lo_float == NULL || w->dec_hi_float == NULL || w->rec_lo_float == NULL || w->rec_hi_float == NULL || w->dec_lo_double == NULL || w->dec_hi_double == NULL || w->rec_lo_double == NULL || w->rec_hi_double == NULL){ free_discrete_wavelet(w); return NULL; } } else { w->dec_lo_float = NULL; w->dec_hi_float = NULL; w->rec_lo_float = NULL; w->rec_hi_float = NULL; w->dec_lo_double = NULL; w->dec_hi_double = NULL; w->rec_lo_double = NULL; w->rec_hi_double = NULL; } /* set w->base properties to "blank" values */ w->base.support_width = -1; w->base.orthogonal = 0; w->base.biorthogonal = 0; w->base.symmetry = UNKNOWN; w->base.compact_support = 0; w->base.family_name = ""; w->base.short_name = ""; w->vanishing_moments_psi = 0; w->vanishing_moments_phi = 0; return w; } ContinuousWavelet* blank_continuous_wavelet(void) { ContinuousWavelet* w; w = wtmalloc(sizeof(ContinuousWavelet)); if(w == NULL) return NULL; /* set properties to "blank" values */ w->center_frequency = -1; w->bandwidth_frequency = -1; w->fbsp_order = 0; return w; } DiscreteWavelet* copy_discrete_wavelet(DiscreteWavelet* base) { DiscreteWavelet* w; if(base == NULL) return NULL; w = wtmalloc(sizeof(DiscreteWavelet)); if(w == NULL) return NULL; memcpy(w, base, sizeof(DiscreteWavelet)); if (base->dec_len > 0) { w->dec_lo_float = wtmalloc(w->dec_len * sizeof(float)); w->dec_hi_float = wtmalloc(w->dec_len * sizeof(float)); w->dec_lo_double = wtmalloc(w->dec_len * sizeof(double)); w->dec_hi_double = wtmalloc(w->dec_len * sizeof(double)); if(w->dec_lo_float == NULL || w->dec_hi_float == NULL || w->dec_lo_double == NULL || w->dec_hi_double == NULL){ free_discrete_wavelet(w); return NULL; } } else { w->dec_lo_float = NULL; w->dec_hi_float = NULL; w->dec_lo_double = NULL; w->dec_hi_double = NULL; } if (base->rec_len > 0) { w->rec_lo_float = wtmalloc(w->rec_len * sizeof(float)); w->rec_hi_float = wtmalloc(w->rec_len * sizeof(float)); w->rec_lo_double = wtmalloc(w->rec_len * sizeof(double)); w->rec_hi_double = wtmalloc(w->rec_len * sizeof(double)); if( w->rec_lo_float == NULL || w->rec_hi_float == NULL || w->rec_lo_double == NULL || w->rec_hi_double == NULL){ free_discrete_wavelet(w); return NULL; } } else { w->rec_lo_float = NULL; w->rec_hi_float = NULL; w->rec_lo_double = NULL; w->rec_hi_double = NULL; } // FIXME: Test coverage, the only use in `wavelet` overwrites the filter if (base->dec_len > 0) { memcpy(w->dec_lo_float, base->dec_lo_float, w->dec_len * sizeof(float)); memcpy(w->dec_hi_float, base->dec_hi_float, w->dec_len * sizeof(float)); memcpy(w->dec_lo_double, base->dec_lo_double, w->dec_len * sizeof(double)); memcpy(w->dec_hi_double, base->dec_hi_double, w->dec_len * sizeof(double)); } if (base->rec_len > 0) { memcpy(w->rec_lo_float, base->rec_lo_float, w->rec_len * sizeof(float)); memcpy(w->rec_hi_float, base->rec_hi_float, w->rec_len * sizeof(float)); memcpy(w->rec_lo_double, base->rec_lo_double, w->rec_len * sizeof(double)); memcpy(w->rec_hi_double, base->rec_hi_double, w->rec_len * sizeof(double)); } return w; } void free_discrete_wavelet(DiscreteWavelet *w){ /* deallocate filters */ if (w->dec_len > 0) { wtfree(w->dec_lo_float); wtfree(w->dec_hi_float); wtfree(w->dec_lo_double); wtfree(w->dec_hi_double); } if (w->rec_len > 0) { wtfree(w->rec_lo_float); wtfree(w->rec_hi_float); wtfree(w->rec_lo_double); wtfree(w->rec_hi_double); } /* finally free struct */ wtfree(w); } void free_continuous_wavelet(ContinuousWavelet *w){ /* finally free struct */ wtfree(w); } #undef SWAP #undef NELEMS PyWavelets-1.1.1/pywt/_extensions/c/wavelets.h0000664000175000017500000000523013334573651022057 0ustar lee8rxlee8rx00000000000000/* Copyright (c) 2006-2012 Filip Wasilewski * Copyright (c) 2012-2016 The PyWavelets Developers * * See COPYING for license details. */ #pragma once #include "common.h" /* Wavelet symmetry properties */ typedef enum { UNKNOWN = -1, ASYMMETRIC = 0, NEAR_SYMMETRIC = 1, SYMMETRIC = 2, ANTI_SYMMETRIC = 3 } SYMMETRY; /* Wavelet name */ typedef enum { HAAR, RBIO, DB, SYM, COIF, BIOR, DMEY, GAUS, MEXH, MORL, CGAU, SHAN, FBSP, CMOR } WAVELET_NAME; /* Wavelet structure holding pointers to filter arrays and property attributes */ typedef struct { /* Wavelet properties */ pywt_index_t support_width; SYMMETRY symmetry; unsigned int orthogonal:1; unsigned int biorthogonal:1; unsigned int compact_support:1; int _builtin; char* family_name; char* short_name; } BaseWavelet; typedef struct { BaseWavelet base; double* dec_hi_double; /* highpass decomposition */ double* dec_lo_double; /* lowpass decomposition */ double* rec_hi_double; /* highpass reconstruction */ double* rec_lo_double; /* lowpass reconstruction */ float* dec_hi_float; float* dec_lo_float; float* rec_hi_float; float* rec_lo_float; size_t dec_len; /* length of decomposition filter */ size_t rec_len; /* length of reconstruction filter */ int vanishing_moments_psi; int vanishing_moments_phi; } DiscreteWavelet; typedef struct { BaseWavelet base; float lower_bound; float upper_bound; /* Parameters for shan, fbsp, cmor*/ int complex_cwt; float center_frequency; float bandwidth_frequency; unsigned int fbsp_order; } ContinuousWavelet; int is_discrete_wavelet(WAVELET_NAME name); /* * Allocate Wavelet struct and set its attributes * name - (currently) a character codename of a wavelet family * order - order of the wavelet (ie. coif3 has order 3) */ DiscreteWavelet* discrete_wavelet(WAVELET_NAME name, unsigned int order); ContinuousWavelet* continuous_wavelet(WAVELET_NAME name, unsigned int order); /* * Allocate blank Discrete Wavelet with zero-filled filters of given length */ DiscreteWavelet* blank_discrete_wavelet(size_t filters_length); ContinuousWavelet* blank_continuous_wavelet(void); /* Deep copy Discrete Wavelet */ DiscreteWavelet* copy_discrete_wavelet(DiscreteWavelet* base); /* * Free wavelet struct. Use this to free Wavelet allocated with * wavelet(...) or blank_wavelet(...) functions. */ void free_discrete_wavelet(DiscreteWavelet *wavelet); void free_continuous_wavelet(ContinuousWavelet *wavelet); PyWavelets-1.1.1/pywt/_extensions/c/wavelets_coeffs.h0000664000175000017500000000110313270003221023353 0ustar lee8rxlee8rx00000000000000#pragma once #ifdef TYPE #error TYPE should not be defined here. #else /* ignore warning about initializing floats from double values */ #if defined _MSC_VER #pragma warning (push) #pragma warning (disable:4305) #elif defined __GNUC__ #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif #define TYPE float #include "wavelets_coeffs.template.h" #undef TYPE #if defined _MSC_VER #pragma warning (pop) #elif defined __GNUC__ #pragma GCC diagnostic pop #endif #define TYPE double #include "wavelets_coeffs.template.h" #undef TYPE #endif /* TYPE */ PyWavelets-1.1.1/pywt/_extensions/c/wavelets_coeffs.template.h0000664000175000017500000056514313270003221025210 0ustar lee8rxlee8rx00000000000000#include "templating.h" #ifndef TYPE #error TYPE must be defined here. #else /* * Filters coefficients for selected wavelets * * Daubechies: db1 - db20 * Symlets: sym2 - sym20 * Coiflets: coif1 - coif5 * Biorthogonal: bior 1.1, 1.3, 1.5, * 2.2, 2.4, 2.6, 2.8, * 3.1, 3.3, 3.5, 3.7, 3.9, * 4.4, 5.5, 6.8 * Discrete Meyer wavelet *approximation*: dmey * * Coefficients for Daubechies wavelets 1-38 * ----------------------------------------- * 2000.08.10 - Some more info added. * (http://www.musicdsp.org/files/daub.h) * * Computed by Kazuo Hatano, Aichi Institute of Technology. * ftp://phase.etl.go.jp/pub/phase/wavelet/index.html * * Compiled and verified by Olli Niemitalo. * * Coefficients for Coiflets wavelets 1-17 * ----------------------------------------- * Computed by Kazuo Hatano, Aichi Institute of Technology. * http://repository.kulib.kyoto-u.ac.jp/dspace/handle/2433/60181 */ static const TYPE CAT(db1_, TYPE)[2] = { 7.071067811865475244008443621048490392848359376884740365883398e-01, 7.071067811865475244008443621048490392848359376884740365883398e-01 }; static const TYPE CAT(db2_, TYPE)[4] = { 4.829629131445341433748715998644486838169524195042022752011715e-01, 8.365163037378079055752937809168732034593703883484392934953414e-01, 2.241438680420133810259727622404003554678835181842717613871683e-01, -1.294095225512603811744494188120241641745344506599652569070016e-01 }; static const TYPE CAT(db3_, TYPE)[6] = { 3.326705529500826159985115891390056300129233992450683597084705e-01, 8.068915093110925764944936040887134905192973949948236181650920e-01, 4.598775021184915700951519421476167208081101774314923066433867e-01, -1.350110200102545886963899066993744805622198452237811919756862e-01, -8.544127388202666169281916918177331153619763898808662976351748e-02, 3.522629188570953660274066471551002932775838791743161039893406e-02 }; static const TYPE CAT(db4_, TYPE)[8] = { 2.303778133088965008632911830440708500016152482483092977910968e-01, 7.148465705529156470899219552739926037076084010993081758450110e-01, 6.308807679298589078817163383006152202032229226771951174057473e-01, -2.798376941685985421141374718007538541198732022449175284003358e-02, -1.870348117190930840795706727890814195845441743745800912057770e-01, 3.084138183556076362721936253495905017031482172003403341821219e-02, 3.288301166688519973540751354924438866454194113754971259727278e-02, -1.059740178506903210488320852402722918109996490637641983484974e-02 }; static const TYPE CAT(db5_, TYPE)[10] = { 1.601023979741929144807237480204207336505441246250578327725699e-01, 6.038292697971896705401193065250621075074221631016986987969283e-01, 7.243085284377729277280712441022186407687562182320073725767335e-01, 1.384281459013207315053971463390246973141057911739561022694652e-01, -2.422948870663820318625713794746163619914908080626185983913726e-01, -3.224486958463837464847975506213492831356498416379847225434268e-02, 7.757149384004571352313048938860181980623099452012527983210146e-02, -6.241490212798274274190519112920192970763557165687607323417435e-03, -1.258075199908199946850973993177579294920459162609785020169232e-02, 3.335725285473771277998183415817355747636524742305315099706428e-03 }; static const TYPE CAT(db6_, TYPE)[12] = { 1.115407433501094636213239172409234390425395919844216759082360e-01, 4.946238903984530856772041768778555886377863828962743623531834e-01, 7.511339080210953506789344984397316855802547833382612009730420e-01, 3.152503517091976290859896548109263966495199235172945244404163e-01, -2.262646939654398200763145006609034656705401539728969940143487e-01, -1.297668675672619355622896058765854608452337492235814701599310e-01, 9.750160558732304910234355253812534233983074749525514279893193e-02, 2.752286553030572862554083950419321365738758783043454321494202e-02, -3.158203931748602956507908069984866905747953237314842337511464e-02, 5.538422011614961392519183980465012206110262773864964295476524e-04, 4.777257510945510639635975246820707050230501216581434297593254e-03, -1.077301085308479564852621609587200035235233609334419689818580e-03 }; static const TYPE CAT(db7_, TYPE)[14] = { 7.785205408500917901996352195789374837918305292795568438702937e-02, 3.965393194819173065390003909368428563587151149333287401110499e-01, 7.291320908462351199169430703392820517179660611901363782697715e-01, 4.697822874051931224715911609744517386817913056787359532392529e-01, -1.439060039285649754050683622130460017952735705499084834401753e-01, -2.240361849938749826381404202332509644757830896773246552665095e-01, 7.130921926683026475087657050112904822711327451412314659575113e-02, 8.061260915108307191292248035938190585823820965629489058139218e-02, -3.802993693501441357959206160185803585446196938467869898283122e-02, -1.657454163066688065410767489170265479204504394820713705239272e-02, 1.255099855609984061298988603418777957289474046048710038411818e-02, 4.295779729213665211321291228197322228235350396942409742946366e-04, -1.801640704047490915268262912739550962585651469641090625323864e-03, 3.537137999745202484462958363064254310959060059520040012524275e-04 }; static const TYPE CAT(db8_, TYPE)[16] = { 5.441584224310400995500940520299935503599554294733050397729280e-02, 3.128715909142999706591623755057177219497319740370229185698712e-01, 6.756307362972898068078007670471831499869115906336364227766759e-01, 5.853546836542067127712655200450981944303266678053369055707175e-01, -1.582910525634930566738054787646630415774471154502826559735335e-02, -2.840155429615469265162031323741647324684350124871451793599204e-01, 4.724845739132827703605900098258949861948011288770074644084096e-04, 1.287474266204784588570292875097083843022601575556488795577000e-01, -1.736930100180754616961614886809598311413086529488394316977315e-02, -4.408825393079475150676372323896350189751839190110996472750391e-02, 1.398102791739828164872293057263345144239559532934347169146368e-02, 8.746094047405776716382743246475640180402147081140676742686747e-03, -4.870352993451574310422181557109824016634978512157003764736208e-03, -3.917403733769470462980803573237762675229350073890493724492694e-04, 6.754494064505693663695475738792991218489630013558432103617077e-04, -1.174767841247695337306282316988909444086693950311503927620013e-04 }; static const TYPE CAT(db9_, TYPE)[18] = { 3.807794736387834658869765887955118448771714496278417476647192e-02, 2.438346746125903537320415816492844155263611085609231361429088e-01, 6.048231236901111119030768674342361708959562711896117565333713e-01, 6.572880780513005380782126390451732140305858669245918854436034e-01, 1.331973858250075761909549458997955536921780768433661136154346e-01, -2.932737832791749088064031952421987310438961628589906825725112e-01, -9.684078322297646051350813353769660224825458104599099679471267e-02, 1.485407493381063801350727175060423024791258577280603060771649e-01, 3.072568147933337921231740072037882714105805024670744781503060e-02, -6.763282906132997367564227482971901592578790871353739900748331e-02, 2.509471148314519575871897499885543315176271993709633321834164e-04, 2.236166212367909720537378270269095241855646688308853754721816e-02, -4.723204757751397277925707848242465405729514912627938018758526e-03, -4.281503682463429834496795002314531876481181811463288374860455e-03, 1.847646883056226476619129491125677051121081359600318160732515e-03, 2.303857635231959672052163928245421692940662052463711972260006e-04, -2.519631889427101369749886842878606607282181543478028214134265e-04, 3.934732031627159948068988306589150707782477055517013507359938e-05 }; static const TYPE CAT(db10_, TYPE)[20] = { 2.667005790055555358661744877130858277192498290851289932779975e-02, 1.881768000776914890208929736790939942702546758640393484348595e-01, 5.272011889317255864817448279595081924981402680840223445318549e-01, 6.884590394536035657418717825492358539771364042407339537279681e-01, 2.811723436605774607487269984455892876243888859026150413831543e-01, -2.498464243273153794161018979207791000564669737132073715013121e-01, -1.959462743773770435042992543190981318766776476382778474396781e-01, 1.273693403357932600826772332014009770786177480422245995563097e-01, 9.305736460357235116035228983545273226942917998946925868063974e-02, -7.139414716639708714533609307605064767292611983702150917523756e-02, -2.945753682187581285828323760141839199388200516064948779769654e-02, 3.321267405934100173976365318215912897978337413267096043323351e-02, 3.606553566956169655423291417133403299517350518618994762730612e-03, -1.073317548333057504431811410651364448111548781143923213370333e-02, 1.395351747052901165789318447957707567660542855688552426721117e-03, 1.992405295185056117158742242640643211762555365514105280067936e-03, -6.858566949597116265613709819265714196625043336786920516211903e-04, -1.164668551292854509514809710258991891527461854347597362819235e-04, 9.358867032006959133405013034222854399688456215297276443521873e-05, -1.326420289452124481243667531226683305749240960605829756400674e-05 }; static const TYPE CAT(db11_, TYPE)[22] = { 1.869429776147108402543572939561975728967774455921958543286692e-02, 1.440670211506245127951915849361001143023718967556239604318852e-01, 4.498997643560453347688940373853603677806895378648933474599655e-01, 6.856867749162005111209386316963097935940204964567703495051589e-01, 4.119643689479074629259396485710667307430400410187845315697242e-01, -1.622752450274903622405827269985511540744264324212130209649667e-01, -2.742308468179469612021009452835266628648089521775178221905778e-01, 6.604358819668319190061457888126302656753142168940791541113457e-02, 1.498120124663784964066562617044193298588272420267484653796909e-01, -4.647995511668418727161722589023744577223260966848260747450320e-02, -6.643878569502520527899215536971203191819566896079739622858574e-02, 3.133509021904607603094798408303144536358105680880031964936445e-02, 2.084090436018106302294811255656491015157761832734715691126692e-02, -1.536482090620159942619811609958822744014326495773000120205848e-02, -3.340858873014445606090808617982406101930658359499190845656731e-03, 4.928417656059041123170739741708273690285547729915802418397458e-03, -3.085928588151431651754590726278953307180216605078488581921562e-04, -8.930232506662646133900824622648653989879519878620728793133358e-04, 2.491525235528234988712216872666801088221199302855425381971392e-04, 5.443907469936847167357856879576832191936678525600793978043688e-05, -3.463498418698499554128085159974043214506488048233458035943601e-05, 4.494274277236510095415648282310130916410497987383753460571741e-06 }; static const TYPE CAT(db12_, TYPE)[24] = { 1.311225795722951750674609088893328065665510641931325007748280e-02, 1.095662728211851546057045050248905426075680503066774046383657e-01, 3.773551352142126570928212604879206149010941706057526334705839e-01, 6.571987225793070893027611286641169834250203289988412141394281e-01, 5.158864784278156087560326480543032700677693087036090056127647e-01, -4.476388565377462666762747311540166529284543631505924139071704e-02, -3.161784537527855368648029353478031098508839032547364389574203e-01, -2.377925725606972768399754609133225784553366558331741152482612e-02, 1.824786059275796798540436116189241710294771448096302698329011e-01, 5.359569674352150328276276729768332288862665184192705821636342e-03, -9.643212009650708202650320534322484127430880143045220514346402e-02, 1.084913025582218438089010237748152188661630567603334659322512e-02, 4.154627749508444073927094681906574864513532221388374861287078e-02, -1.221864906974828071998798266471567712982466093116558175344811e-02, -1.284082519830068329466034471894728496206109832314097633275225e-02, 6.711499008795509177767027068215672450648112185856456740379455e-03, 2.248607240995237599950865211267234018343199786146177099262010e-03, -2.179503618627760471598903379584171187840075291860571264980942e-03, 6.545128212509595566500430399327110729111770568897356630714552e-06, 3.886530628209314435897288837795981791917488573420177523436096e-04, -8.850410920820432420821645961553726598738322151471932808015443e-05, -2.424154575703078402978915320531719580423778362664282239377532e-05, 1.277695221937976658714046362616620887375960941439428756055353e-05, -1.529071758068510902712239164522901223197615439660340672602696e-06 }; static const TYPE CAT(db13_, TYPE)[26] = { 9.202133538962367972970163475644184667534171916416562386009703e-03, 8.286124387290277964432027131230466405208113332890135072514277e-02, 3.119963221604380633960784112214049693946683528967180317160390e-01, 6.110558511587876528211995136744180562073612676018239438526582e-01, 5.888895704312189080710395347395333927665986382812836042235573e-01, 8.698572617964723731023739838087494399231884076619701250882016e-02, -3.149729077113886329981698255932282582876888450678789025950306e-01, -1.245767307508152589413808336021260180792739295173634719572069e-01, 1.794760794293398432348450072339369013581966256244133393042881e-01, 7.294893365677716380902830610477661983325929026879873553627963e-02, -1.058076181879343264509667304196464849478860754801236658232360e-01, -2.648840647534369463963912248034785726419604844297697016264224e-02, 5.613947710028342886214501998387331119988378792543100244737056e-02, 2.379972254059078811465170958554208358094394612051934868475139e-03, -2.383142071032364903206403067757739134252922717636226274077298e-02, 3.923941448797416243316370220815526558824746623451404043918407e-03, 7.255589401617566194518393300502698898973529679646683695269828e-03, -2.761911234656862178014576266098445995350093330501818024966316e-03, -1.315673911892298936613835370593643376060412592653652307238124e-03, 9.323261308672633862226517802548514100918088299801952307991569e-04, 4.925152512628946192140957387866596210103778299388823500840094e-05, -1.651289885565054894616687709238000755898548214659776703347801e-04, 3.067853757932549346649483228575476236600428217237900563128230e-05, 1.044193057140813708170714991080596951670706436217328169641474e-05, -4.700416479360868325650195165061771321650383582970958556568059e-06, 5.220035098454864691736424354843176976747052155243557001531901e-07 }; static const TYPE CAT(db14_, TYPE)[28] = { 6.461153460087947818166397448622814272327159419201199218101404e-03, 6.236475884939889832798566758434877428305333693407667164602518e-02, 2.548502677926213536659077886778286686187042416367137443780084e-01, 5.543056179408938359926831449851154844078269830951634609683997e-01, 6.311878491048567795576617135358172348623952456570017289788809e-01, 2.186706877589065214917475918217517051765774321270432059030273e-01, -2.716885522787480414142192476181171094604882465683330814311896e-01, -2.180335299932760447555558812702311911975240669470604752747127e-01, 1.383952138648065910739939690021573713989900463229686119059119e-01, 1.399890165844607012492943162271163440328221555614326181333683e-01, -8.674841156816968904560822066727795382979149539517503657492964e-02, -7.154895550404613073584145115173807990958069673129538099990913e-02, 5.523712625921604411618834060533403397913833632511672157671107e-02, 2.698140830791291697399031403215193343375766595807274233284349e-02, -3.018535154039063518714822623489137573781575406658652624883756e-02, -5.615049530356959133218371367691498637457297203925810387698680e-03, 1.278949326633340896157330705784079299374903861572058313481534e-02, -7.462189892683849371817160739181780971958187988813302900435487e-04, -3.849638868022187445786349316095551774096818508285700493058915e-03, 1.061691085606761843032566749388411173033941582147830863893939e-03, 7.080211542355278586442977697617128983471863464181595371670094e-04, -3.868319473129544821076663398057314427328902107842165379901468e-04, -4.177724577037259735267979539839258928389726590132730131054323e-05, 6.875504252697509603873437021628031601890370687651875279882727e-05, -1.033720918457077394661407342594814586269272509490744850691443e-05, -4.389704901781394115254042561367169829323085360800825718151049e-06, 1.724994675367812769885712692741798523587894709867356576910717e-06, -1.787139968311359076334192938470839343882990309976959446994022e-07 }; static const TYPE CAT(db15_, TYPE)[30] = { 4.538537361578898881459394910211696346663671243788786997916513e-03, 4.674339489276627189170969334843575776579151700214943513113197e-02, 2.060238639869957315398915009476307219306138505641930902702047e-01, 4.926317717081396236067757074029946372617221565130932402160160e-01, 6.458131403574243581764209120106917996432608287494046181071489e-01, 3.390025354547315276912641143835773918756769491793554669336690e-01, -1.932041396091454287063990534321471746304090039142863827937754e-01, -2.888825965669656462484125009822332981311435630435342594971292e-01, 6.528295284877281692283107919869574882039174285596144125965101e-02, 1.901467140071229823484893116586020517959501258174336696878156e-01, -3.966617655579094448384366751896200668381742820683736805449745e-02, -1.111209360372316933656710324674058608858623762165914120505657e-01, 3.387714392350768620854817844433523770864744687411265369463195e-02, 5.478055058450761268913790312581879108609415997422768564244845e-02, -2.576700732843996258594525754269826392203641634825340138396836e-02, -2.081005016969308167788483424677000162054657951364899040996166e-02, 1.508391802783590236329274460170322736244892823305627716233968e-02, 5.101000360407543169708860185565314724801066527344222055526631e-03, -6.487734560315744995181683149218690816955845639388826407928967e-03, -2.417564907616242811667225326300179605229946995814535223329411e-04, 1.943323980382211541764912332541087441011424865579531401452302e-03, -3.734823541376169920098094213645414611387630968030256625740226e-04, -3.595652443624688121649620075909808858194202454084090305627480e-04, 1.558964899205997479471658241227108816255567059625495915228603e-04, 2.579269915531893680925862417616855912944042368767340709160119e-05, -2.813329626604781364755324777078478665791443876293788904267255e-05, 3.362987181737579803124845210420177472134846655864078187186304e-06, 1.811270407940577083768510912285841160577085925337507850590290e-06, -6.316882325881664421201597299517657654166137915121195510416641e-07, 6.133359913305752029056299460289788601989190450885396512173845e-08 }; static const TYPE CAT(db16_, TYPE)[32] = { 3.189220925347738029769547564645958687067086750131428767875878e-03, 3.490771432367334641030147224023020009218241430503984146140054e-02, 1.650642834888531178991252730561134811584835002342723240213592e-01, 4.303127228460038137403925424357684620633970478036986773924646e-01, 6.373563320837888986319852412996030536498595940814198125967751e-01, 4.402902568863569000390869163571679288527803035135272578789884e-01, -8.975108940248964285718718077442597430659247445582660149624718e-02, -3.270633105279177046462905675689119641757228918228812428141723e-01, -2.791820813302827668264519595026873204339971219174736041535479e-02, 2.111906939471042887209680163268837900928491426167679439251042e-01, 2.734026375271604136485245757201617965429027819507130220231500e-02, -1.323883055638103904500474147756493375092287817706027978798549e-01, -6.239722752474871765674503394120025865444656311678760990761458e-03, 7.592423604427631582148498743941422461530405946100943351940313e-02, -7.588974368857737638494890864636995796586975144990925400097160e-03, -3.688839769173014233352666320894554314718748429706730831064068e-02, 1.029765964095596941165000580076616900528856265803662208854147e-02, 1.399376885982873102950451873670329726409840291727868988490100e-02, -6.990014563413916670284249536517288338057856199646469078115759e-03, -3.644279621498389932169000540933629387055333973353108668841215e-03, 3.128023381206268831661202559854678767821471906193608117450360e-03, 4.078969808497128362417470323406095782431952972310546715071397e-04, -9.410217493595675889266453953635875407754747216734480509250273e-04, 1.142415200387223926440228099555662945839684344936472652877091e-04, 1.747872452253381803801758637660746874986024728615399897971953e-04, -6.103596621410935835162369150522212811957259981965919143961722e-05, -1.394566898820889345199078311998401982325273569198675335408707e-05, 1.133660866127625858758848762886536997519471068203753661757843e-05, -1.043571342311606501525454737262615404887478930635676471546032e-06, -7.363656785451205512099695719725563646585445545841663327433569e-07, 2.308784086857545866405412732942006121306306735866655525372544e-07, -2.109339630100743097000572623603489906836297584591605307745349e-08 }; static const TYPE CAT(db17_, TYPE)[34] = { 2.241807001037312853535962677074436914062191880560370733250531e-03, 2.598539370360604338914864591720788315473944524878241294399948e-02, 1.312149033078244065775506231859069960144293609259978530067004e-01, 3.703507241526411504492548190721886449477078876896803823650425e-01, 6.109966156846228181886678867679372082737093893358726291371783e-01, 5.183157640569378393254538528085968046216817197718416402439904e-01, 2.731497040329363500431250719147586480350469818964563003672942e-02, -3.283207483639617360909665340725061767581597698151558024679130e-01, -1.265997522158827028744679110933825505053966260104086162103728e-01, 1.973105895650109927854047044781930142551422414135646917122284e-01, 1.011354891774702721509699856433434802196622545499664876109437e-01, -1.268156917782863110948571128662331680384792185915017065732137e-01, -5.709141963167692728911239478651382324161160869845347053990144e-02, 8.110598665416088507965885748555429201024364190954499194020678e-02, 2.231233617810379595339136059534813756232242114093689244020869e-02, -4.692243838926973733300897059211400507138768125498030602878439e-02, -3.270955535819293781655360222177494452069525958061609392809275e-03, 2.273367658394627031845616244788448969906713741338339498024864e-02, -3.042989981354637068592482637907206078633395457225096588287881e-03, -8.602921520322854831713706413243659917926736284271730611920986e-03, 2.967996691526094872806485060008038269959463846548378995044195e-03, 2.301205242153545624302059869038423604241976680189447476064764e-03, -1.436845304802976126222890402980384903503674530729935809561434e-03, -3.281325194098379713954444017520115075812402442728749700195651e-04, 4.394654277686436778385677527317841632289249319738892179465910e-04, -2.561010956654845882729891210949920221664082061531909655178413e-05, -8.204803202453391839095482576282189866136273049636764338689593e-05, 2.318681379874595084482068205706277572106695174091895338530734e-05, 6.990600985076751273204549700855378627762758585902057964027481e-06, -4.505942477222988194102268206378312129713572600716499944918416e-06, 3.016549609994557415605207594879939763476168705217646897702706e-07, 2.957700933316856754979905258816151367870345628924317307354639e-07, -8.423948446002680178787071296922877068410310942222799622593133e-08, 7.267492968561608110879767441409035034158581719789791088892046e-09 }; static const TYPE CAT(db18_, TYPE)[36] = { 1.576310218440760431540744929939777747670753710991660363684429e-03, 1.928853172414637705921391715829052419954667025288497572236714e-02, 1.035884658224235962241910491937253596470696555220241672976224e-01, 3.146789413370316990571998255652579931786706190489374509491307e-01, 5.718268077666072234818589370900623419393673743130930561295324e-01, 5.718016548886513352891119994065965025668047882818525060759395e-01, 1.472231119699281415750977271081072312557864107355701387801677e-01, -2.936540407365587442479030994981150723935710729035053239661752e-01, -2.164809340051429711237678625668271471437937235669492408388692e-01, 1.495339755653777893509301738913667208804816691893765610261943e-01, 1.670813127632574045149318139950134745324205646353988083152250e-01, -9.233188415084628060429372558659459731431848000144569612074508e-02, -1.067522466598284855932200581614984861385266404624112083917702e-01, 6.488721621190544281947577955141911463129382116634147846137149e-02, 5.705124773853688412090768846499622260596226120431038524600676e-02, -4.452614190298232471556143559744653492971477891439833592755034e-02, -2.373321039586000103275209582665216110197519330713490233071565e-02, 2.667070592647059029987908631672020343207895999936072813363471e-02, 6.262167954305707485236093144497882501990325204745013190268052e-03, -1.305148094661200177277636447600807169755191054507571666606133e-02, 1.186300338581174657301741592161819084544899417452317405185615e-04, 4.943343605466738130665529516802974834299638313366477765295203e-03, -1.118732666992497072800658855238650182318060482584970145512687e-03, -1.340596298336106629517567228251583609823044524685986640323942e-03, 6.284656829651457125619449885420838217551022796301582874349652e-04, 2.135815619103406884039052814341926025873200325996466522543440e-04, -1.986485523117479485798245416362489554927797880264017876139605e-04, -1.535917123534724675069770335876717193700472427021513236587288e-07, 3.741237880740038181092208138035393952304292615793985030731363e-05, -8.520602537446695203919254911655523022437596956226376512305917e-06, -3.332634478885821888782452033341036827311505907796498439829337e-06, 1.768712983627615455876328730755375176412501359114058815453100e-06, -7.691632689885176146000152878539598405817397588156525116769908e-08, -1.176098767028231698450982356561292561347579777695396953528141e-07, 3.068835863045174800935478294933975372450179787894574492930570e-08, -2.507934454948598267195173183147126731806317144868275819941403e-09 }; static const TYPE CAT(db19_, TYPE)[38] = { 1.108669763181710571099154195209715164245299677773435932135455e-03, 1.428109845076439737439889152950199234745663442163665957870715e-02, 8.127811326545955065296306784901624839844979971028620366497726e-02, 2.643884317408967846748100380289426873862377807211920718417385e-01, 5.244363774646549153360575975484064626044633641048072116393160e-01, 6.017045491275378948867077135921802620536565639585963293313931e-01, 2.608949526510388292872456675310528324172673101301907739925213e-01, -2.280913942154826463746325776054637207093787237086425909534822e-01, -2.858386317558262418545975695028984237217356095588335149922119e-01, 7.465226970810326636763433111878819005865866149731909656365399e-02, 2.123497433062784888090608567059824197077074200878839448416908e-01, -3.351854190230287868169388418785731506977845075238966819814032e-02, -1.427856950387365749779602731626112812998497706152428508627562e-01, 2.758435062562866875014743520162198655374474596963423080762818e-02, 8.690675555581223248847645428808443034785208002468192759640352e-02, -2.650123625012304089901835843676387361075068017686747808171345e-02, -4.567422627723090805645444214295796017938935732115630050880109e-02, 2.162376740958504713032984257172372354318097067858752542571020e-02, 1.937554988917612764637094354457999814496885095875825546406963e-02, -1.398838867853514163250401235248662521916813867453095836808366e-02, -5.866922281012174726584493436054373773814608340808758177372765e-03, 7.040747367105243153014511207400620109401689897665383078229398e-03, 7.689543592575483559749139148673955163477947086039406129546422e-04, -2.687551800701582003957363855070398636534038920982478290170267e-03, 3.418086534585957765651657290463808135214214848819517257794031e-04, 7.358025205054352070260481905397281875183175792779904858189494e-04, -2.606761356786280057318315130897522790383939362073563408613547e-04, -1.246007917341587753449784408901653990317341413341980904757592e-04, 8.711270467219922965416862388191128268412933893282083517729443e-05, 5.105950487073886053049222809934231573687367992106282669389264e-06, -1.664017629715494454620677719899198630333675608812018108739144e-05, 3.010964316296526339695334454725943632645798938162427168851382e-06, 1.531931476691193063931832381086636031203123032723477463624141e-06, -6.862755657769142701883554613486732854452740752771392411758418e-07, 1.447088298797844542078219863291615420551673574071367834316167e-08, 4.636937775782604223430857728210948898871748291085962296649320e-08, -1.116402067035825816390504769142472586464975799284473682246076e-08, 8.666848838997619350323013540782124627289742190273059319122840e-10 }; static const TYPE CAT(db20_, TYPE)[40] = { 7.799536136668463215861994818889370970510722039232863880031127e-04, 1.054939462495039832454480973015641498231961468733236691299796e-02, 6.342378045908151497587346582668785136406523315729666353643372e-02, 2.199421135513970450080335972537209392121306761010882209298252e-01, 4.726961853109016963710241465101446230757804141171727845834637e-01, 6.104932389385938201631515660084201906858628924695448898824748e-01, 3.615022987393310629195602665268631744967084723079677894136358e-01, -1.392120880114838725806970545155530518264944915437808314813582e-01, -3.267868004340349674031122837905370666716645587480021744425550e-01, -1.672708830907700757517174997304297054003744303620479394006890e-02, 2.282910508199163229728429126648223086437547237250290835639880e-01, 3.985024645777120219790581076522174181104027576954427684456660e-02, -1.554587507072679559315307870562464374359996091752285157077477e-01, -2.471682733861358401587992299169922262915151413349313513685587e-02, 1.022917191744425578861013681016866083888381385233081516583444e-01, 5.632246857307435506953246988215209861566800664402785938591145e-03, -6.172289962468045973318658334083283558209278762007041823250642e-02, 5.874681811811826491300679742081997167209743446956901841959711e-03, 3.229429953076958175885440860617219117564558605035979601073235e-02, -8.789324923901561348753650366700695916503030939283830968151332e-03, -1.381052613715192007819606423860356590496904285724730356602106e-02, 6.721627302259456835336850521405425560520025237915708362002910e-03, 4.420542387045790963058229526673514088808999478115581153468068e-03, -3.581494259609622777556169638358238375765194248623891034940330e-03, -8.315621728225569192482585199373230956924484221135739973390038e-04, 1.392559619323136323905254999347967283760544147397530531142397e-03, -5.349759843997695051759716377213680036185796059087353172073952e-05, -3.851047486992176060650288501475716463266233035937022303649838e-04, 1.015328897367029050797488785306056522529979267572003990901472e-04, 6.774280828377729558011184406727978221295796652200819839464354e-05, -3.710586183394712864227221271216408416958225264980612822617745e-05, -4.376143862183996810373095822528607606900620592585762190542483e-06, 7.241248287673620102843105877497181565468725757387007139555885e-06, -1.011994010018886150340475413756849103197395069431085005709201e-06, -6.847079597000556894163334787575159759109091330092963990364192e-07, 2.633924226270001084129057791994367121555769686616747162262697e-07, 2.014322023550512694324757845944026047904414136633776958392681e-10, -1.814843248299695973210605258227024081458531110762083371310917e-08, 4.056127055551832766099146230616888024627380574113178257963252e-09, -2.998836489619319566407767078372705385732460052685621923178375e-10 }; static const TYPE CAT(db21_, TYPE)[42] = { 5.488225098526837086776336675992521426750673054588245523834775e-04, 7.776639052354783754338787398088799862510779059555623704879234e-03, 4.924777153817727491399853378340056968104483161598320693657954e-02, 1.813596254403815156260378722764624190931951510708050516519181e-01, 4.196879449393627730946850609089266339973601543036294871772653e-01, 6.015060949350038975629880664020955953066542593896126705346122e-01, 4.445904519276003403643290994523601016151342743089878478478962e-01, -3.572291961725529045922914178005307189036762547143966578066838e-02, -3.356640895305295094832978867114363069987575282256098351499731e-01, -1.123970715684509813515004981340306901641824212464197973490295e-01, 2.115645276808723923846781645238468659430862736248896128529373e-01, 1.152332984396871041993434411681730428103160016594558944687967e-01, -1.399404249325472249247758764839776903226503657502071670245304e-01, -8.177594298086382887387303634193790542522570670234556157566786e-02, 9.660039032372422070232189700372539681627783322249829842275517e-02, 4.572340574922879239251202944731235421034828710753381191345186e-02, -6.497750489373232063332311106008616685748929419452249544690967e-02, -1.865385920211851534093244412008141266131208093007217139232170e-02, 3.972683542785044175197464400756126818299918992482587866999707e-02, 3.357756390338110842532604766376200760791669954106679933144723e-03, -2.089205367797907948785235479746212371728219866525211135343707e-02, 2.403470920805434762380632169785689545910525667396313550679652e-03, 8.988824381971911875349463398395464114417817949738911101372312e-03, -2.891334348588901247375268718015882610844675931117463495551958e-03, -2.958374038932831280750770228215510959830170264176955719827510e-03, 1.716607040630624138494506282569230126333308533535502799235333e-03, 6.394185005120302146432543767052865436099994387647359452249347e-04, -6.906711170821016507268939228893784790518270744313525548714065e-04, -3.196406277680437193708834220804640347636984901270948088339102e-05, 1.936646504165080615323696689856004910579777568504218782029027e-04, -3.635520250086338309442855006186370752206331429871136596927137e-05, -3.499665984987447953974079490046597240276268044409625722689849e-05, 1.535482509276049283124233498646050472096482329299719141107128e-05, 2.790330539814487046106169582691767916283793946025922387556917e-06, -3.090017164545699197158555936852697325985864588418167982685400e-06, 3.166095442367030556603889009833954440058545355777781782000278e-07, 2.992136630464852794401294607536813682771292352506328096125857e-07, -1.000400879030597332045460600516621971679363965166249211063755e-07, -2.254014974673330131563184851456825991617915549643308754828159e-09, 7.058033541231121859020947976903904685464512825731230495144226e-09, -1.471954197650365265189549600816698778213247061389470277337173e-09, 1.038805571023706553035373138760372703492942617518816122570050e-10}; static const TYPE CAT(db22_, TYPE)[44] = { 3.862632314910982158524358900615460368877852009576899680767316e-04, 5.721854631334539120809783403484493333555361591386208129183833e-03, 3.806993723641108494769873046391825574447727068953448390456335e-02, 1.483675408901114285014404448710249837385836373168215616427030e-01, 3.677286834460374788614690818452372827430535649696462720334897e-01, 5.784327310095244271421181831735444106385099957908657145590104e-01, 5.079010906221639018391523325390716836568713192498711562711282e-01, 7.372450118363015165570139016530653113725172412104955350368114e-02, -3.127265804282961918033226222621788537078452535993545440716988e-01, -2.005684061048870939324361244042200174132905844868237447130382e-01, 1.640931881067664818606223226286885712554385317412228836705888e-01, 1.799731879928913037252154295313083168387840791424988422757762e-01, -9.711079840911470969274209179691733251456735137994201552926799e-02, -1.317681376866834107513648518146838345477875022352088357523838e-01, 6.807631439273221556739202147004580559367442550641388181886023e-02, 8.455737636682607503362813659356786494357635805197410905877078e-02, -5.136425429744413245727949984018884707909441768477091944584584e-02, -4.653081182750671347875833607846979997825771277976548080904423e-02, 3.697084662069802057615318892988581825637896696876361343354380e-02, 2.058670762756536044060249710676656807281671451609632981487139e-02, -2.348000134449318868560142854519364987363882333754753819791381e-02, -6.213782849364658499069336123807608293122900450508440420104462e-03, 1.256472521834337406887017835495604463815382993214296088172221e-02, 3.001373985076435951229129255588255746904937042979316054485183e-04, -5.455691986156717076595353163071679107868762395367234726592273e-03, 1.044260739186025323350755659184734060807432172611689413745029e-03, 1.827010495657279080112597436850157110235336772062961041154607e-03, -7.706909881231196232880372722955519781655769913634565757339739e-04, -4.237873998391800799531947768003976978197438302533528661825758e-04, 3.286094142136787341983758471405935405823323072829619248523697e-04, 4.345899904532003379046992625575076092823809665933575578710696e-05, -9.405223634815760421845190098352673647881298980040512091599943e-05, 1.137434966212593172736144274866639210339820203135670505287250e-05, 1.737375695756189356163565074505405906859746605867772002320509e-05, -6.166729316467578372152251668422979152169587307212708981768966e-06, -1.565179131995160159307426993578204733378112742579926503832095e-06, 1.295182057318877573889711232345068147800395721925682566394936e-06, -8.779879873361286276888117046153049053917243760475816789226764e-08, -1.283336228751754417819693932114064887075096030264748079976736e-07, 3.761228749337362366156711648187743399164239397803629022612862e-08, 1.680171404922988885554331183691280245962290247654438114807112e-09, -2.729623146632976083449327361739104754443221903317745768938846e-09, 5.335938821667489905169783227036804533253011117886586305435615e-10, -3.602113484339554703794807810939301847299106970237814334104274e-11}; static const TYPE CAT(db23_, TYPE)[46] = { 2.719041941282888414192673609703302357098336003920923958924757e-04, 4.202748893183833538390034372523511472345215563611003407984701e-03, 2.931000365788411514736204018929480427874317460676079959515131e-02, 1.205155317839719336306053895611899089004274336891709067958035e-01, 3.184508138528652363416527748460472152790575031409830417259640e-01, 5.449311478735204282674240672421984387504149924834544495466793e-01, 5.510185172419193913452724227212507720514144116478727269717859e-01, 1.813926253638400136259098302138614937264260737638175539416540e-01, -2.613921480306441118856795735210118413900307577511142987337375e-01, -2.714020986078430556604069575184718123763697177381058877113471e-01, 9.212540708241805260646030910734894258577648089100630012130261e-02, 2.235736582420402317149513960822561717689875252792817094811874e-01, -3.303744709428937875006612792463031409461636228731285046551636e-02, -1.640113215318759250156057837165276039181451149292112929401186e-01, 2.028307457564929974897286607551313323418860610791382310375731e-02, 1.122970436181072886950734465075645977754665593869789965874572e-01, -2.112621235622724100704783293549467048999443844657058425212982e-02, -7.020739157490110946204219011957565343899895499962369353294028e-02, 2.176585683449997560776882472168730165799461445156766923497545e-02, 3.849533252256919901057154320407596073180564628069920893870768e-02, -1.852351365015615979794689960740674782817814176166333519597796e-02, -1.753710100303584537915846117408613551147985251726558719415169e-02, 1.275194393152828646243157404474947115052750581861997731041018e-02, 6.031840650024162816289878206037841640814102314209075233751820e-03, -7.075319273706152814194039481466556204493276773483821748740018e-03, -1.134865473356251691289337120013286756337393784110786907825400e-03, 3.122876449818144997419144765125750522437659393621577492535411e-03, -2.465014005163512031940473100375377210862560761576109755841161e-04, -1.061231228886651321139357625683805642193648671030425010215075e-03, 3.194204927099011503676530359692366990929679170022583007683112e-04, 2.567624520078737205563856675376636092314813400664190770435450e-04, -1.500218503490340967673163290447832236259277810659068637402668e-04, -3.378894834120903434270962452674534330903724108906662510305045e-05, 4.426071203109246077621875303440935335701832843654692827539837e-05, -2.635207889249186237209225933170897825432335273771458456888097e-06, -8.347875567854625544366043748844183086765894974439245409223337e-06, 2.397569546840240057403739507525641239509517148980849889986407e-06, 8.147574834779447778085443041422881439860288287528356019216814e-07, -5.339005405209421154584783682848780965053642859373536945701365e-07, 1.853091785633965019353699857864654181728710556702529908304185e-08, 5.417549179539278736503176166323685597634496102979977037271945e-08, -1.399935495437998845130909687361847103274208993447892120341999e-08, -9.472885901812050535221582074673490573092096712822067564903012e-10, 1.050446453696543404071105111096438573423068913105255997908040e-09, -1.932405111313417542192651899622541612314066389643607507706887e-10, 1.250203302351040941433216718217504240541423430995137507404787e-11}; static const TYPE CAT(db24_, TYPE)[48] = { 1.914358009475513695026138336474115599435172088053846745168462e-04, 3.082081714905494436206199424544404720984720556128685270556458e-03, 2.248233994971641072358415157184825628226776692231940577581580e-02, 9.726223583362519663806545734008355914527504417674578571164300e-02, 2.729089160677263268706137134412557268751671263458895098625356e-01, 5.043710408399249919771876890402814109246866444441814540282099e-01, 5.749392210955419968460807901923407033144945935105622912839838e-01, 2.809855532337118833442626085115402941842959475929278883281409e-01, -1.872714068851562376981887159775791469060265778441667840307934e-01, -3.179430789993627375453948489797707550898087789160025182664299e-01, 4.776613684344728187950198323031360866349104994035553200788631e-03, 2.392373887803108551973268291945824822214858134512317715815616e-01, 4.252872964148383258147364472170645232684343235486951540533893e-02, -1.711753513703468896897638515080572393949165942335556397917666e-01, -3.877717357792001620177594726199572688446488033750771020190283e-02, 1.210163034692242362312637311149062286659377039046006801523826e-01, 2.098011370914481534980883827326017063121637262728447783605518e-02, -8.216165420800166702291466006164189460916816748629968198028898e-02, -4.578436241819221637997516339765068825260159169893967894877272e-03, 5.130162003998087915555334881398688958843078494595140394873884e-02, -4.944709428125628299815920032649550811877887219282751174798211e-03, -2.821310709490189098113895361900699228886900995412759197674058e-02, 7.661721881646585897329899904308764405384658404613669817843430e-03, 1.304997087108573583052494067883717533043101857128653233783396e-02, -6.291435370018187780721843581169343900864298634085743861509767e-03, -4.746568786323113800477796959513558401732252800905982385017245e-03, 3.736046178282523345179052160810332868725126356493155728625572e-03, 1.153764936839481504858282495202271984454410046682805375157566e-03, -1.696456818974824394274534636412116243080312601322325642741589e-03, -4.416184856141520063365958900079406737636243682138363561877750e-05, 5.861270593183109933716735450272894035425792347806515678695765e-04, -1.181233237969554740613021227756568966806892308457221016257961e-04, -1.460079817762616838924301818082729036314539476811023255670666e-04, 6.559388639305634085303738560455061974369354538271316071502698e-05, 2.183241460466558363365044032984257709791187640963509380549307e-05, -2.022888292612697682860859987200455702614855595412267510558659e-05, 1.341157750809114719319937553186023660581084151828593222893663e-08, 3.901100338597702610409014129024223853127911530009766793352492e-06, -8.980253143938407724149926669980791166378388013293887718404796e-07, -4.032507756879971624098983247358983425236092110387724315244646e-07, 2.166339653278574639176393978510246335478946697396400359281412e-07, -5.057645419792500308492508924343248979317507866520688417567606e-10, -2.255740388176086107368821674947175804005323153443170526520277e-08, 5.157776789671999638950774266313208715015419699643333784626363e-09, 4.748375824256231118094453549799175824526559994333227456737433e-10, -4.024658644584379774251499574468195118601698713554294941756559e-10, 6.991801157638230974132696433509625934021677793453732225542951e-11, -4.342782503803710247259037552886749457951053124203814185811297e-12}; static const TYPE CAT(db25_, TYPE)[50] = { 1.348029793470188994578489247159356055370460656508881471268611e-04, 2.256959591854779520121391049628056149270016860666661928130747e-03, 1.718674125404015533817186914954848902241194002444696221013131e-02, 7.803586287213267559750659320481403668422052199257139168386084e-02, 2.316935078860218199900621518057089104946216881512075361624214e-01, 4.596834151460945937896973864539659944010260858049947396093277e-01, 5.816368967460577833534892038757085635755639698734580573323031e-01, 3.678850748029466984371319740855532278670733841012809062966976e-01, -9.717464096463814276130048169040892607068486428294030952842447e-02, -3.364730796417461309562110148848845218930261030262170601615289e-01, -8.758761458765466140226687673880006154266689569025041229545538e-02, 2.245378197451017129525176510409543155930843160711989062118482e-01, 1.181552867199598604563067876819931882639429216001523151773895e-01, -1.505602137505796309518094206831433270850173484773520730186277e-01, -9.850861528996022153725952822686729410420350758543226219234795e-02, 1.066338050184779528831274540522414711301747903916268438037723e-01, 6.675216449401860666895983072443984697329752470942906490126865e-02, -7.708411105657419356208567671699032054872853174701595359329826e-02, -3.717396286112250887598137324046870459877639250821705817221557e-02, 5.361790939877949960629041419546536897037332284703545849594129e-02, 1.554260592910229163981295854603203625062268043511894295387375e-02, -3.404232046065334099320628584033729153497903561399447916116575e-02, -3.079836794847036661636693963570288706232460663070983852354326e-03, 1.892280447662762841086581178691039363674755753459524525886478e-02, -1.989425782202736494289461896386235348901617760816745484282494e-03, -8.860702618046368399013064252456556969199612331833605310278698e-03, 2.726936258738495739871469244610042793734119359765762028996059e-03, 3.322707773973191780118197357194829286271392998979276105842863e-03, -1.842484290203331280837780430014195744813667655929909114672154e-03, -8.999774237462950491085382524008429604309720852269895692000702e-04, 8.772581936748274843488806190175921376284150686011179612908221e-04, 1.153212440466300456460181455345639872216326644527860903202733e-04, -3.098800990984697989530544245356271119416614147098459162436317e-04, 3.543714523276059005284289830559259809540337561365927850248007e-05, 7.904640003965528255137496303166001735463107762646364003487560e-05, -2.733048119960041746353244004225286857636045649642652816856524e-05, -1.277195293199783804144903848434605690990373526086311486716394e-05, 8.990661393062588905369930197413951232059323587543226269327396e-06, 5.232827708153076417963912065899772684403904504491727061662335e-07, -1.779201332653634562565948556039009149458987774189389221295909e-06, 3.212037518862519094895005816661093988294166712919881121802831e-07, 1.922806790142371601278104244711267420759978799176017569693322e-07, -8.656941732278507163388031517930974947984281611717187862530250e-08, -2.611598556111770864259843089151782206922842627174274274741722e-09, 9.279224480081372372250073354726511359667401736947170444723772e-09, -1.880415755062155537197782595740975189878162661203102565611681e-09, -2.228474910228168899314793352064795957306403503495743572518755e-10, 1.535901570162657197021927739530721955859277615795931442682785e-10, -2.527625163465644811048864286169758128142169484216932624854015e-11, 1.509692082823910867903367712096001664979004526477422347957324e-12}; static const TYPE CAT(db26_, TYPE)[52] = { 9.493795750710592117802731381148054398461637804818126397577999e-05, 1.650520233532988247022384885622071050555268137055829216839523e-03, 1.309755429255850082057770240106799154079932963479202407364818e-02, 6.227474402514960484193581705107415937690538641013309745983962e-02, 1.950394387167700994245891508369324694703820522489789125908612e-01, 4.132929622783563686116108686666547082846741228042232731476147e-01, 5.736690430342222603195557147853022060758392664086633396520345e-01, 4.391583117891662321931477565794105633815363384084590559889493e-01, 1.774076780986685727823533562031556893226571319881417676492595e-03, -3.263845936917800216385340830055349953447745005769416287177497e-01, -1.748399612893925042664835683606584215248582345438816346170042e-01, 1.812918323111226960705459766025430918716233584167982942044424e-01, 1.827554095896723746537533832033286839689931924709760567945595e-01, -1.043239002859270439148009137202747658420968144330108510179290e-01, -1.479771932752544935782314546369458188243947772922980064071205e-01, 6.982318611329236513756591683950208955110603212379412334701145e-02, 1.064824052498086303236593797715344405836015002929319291715777e-01, -5.344856168148319149493577269390074213960237013099439431132086e-02, -6.865475960403591525454725258715351280947435823354011140858001e-02, 4.223218579637203541206570902753288247790857760067894456114927e-02, 3.853571597111186425832144567362328142994885395255438867968781e-02, -3.137811036306775484244644776337594435094096964336402798072360e-02, -1.776090356835818354094298625884058170354129044259951019182732e-02, 2.073492017996382475887790073068984224515077665517103399898854e-02, 5.829580555318887971939315747596613038479561943085291072787359e-03, -1.178549790619302893728624468402138072504226527540325463847390e-02, -5.287383992626814439198630765217969804966319971038003993984480e-04, 5.601947239423804853206514239940474788977188460452053462770324e-03, -9.390582504738289646165698675070641765810790863514339205205998e-04, -2.145530281567620980305401403432221668847980295600748913748902e-03, 8.383488056543616046381924054554052104937784379435436426690560e-04, 6.161382204574344193703789012696411561214682388271673214197731e-04, -4.319557074261807466712901913481943478521991611607433971794602e-04, -1.060574748283803889966150803551837402553866816191659959347053e-04, 1.574795238607493590547765666590811258087715699737771458390360e-04, -5.277795493037868976293566636015627609248847457646525246271036e-06, -4.109673996391477816326502438997466532822639385119090230965252e-05, 1.074221540872195031273584409245060623104931330938273936484593e-05, 7.000078682964986734859102495210684809643657474253921074934684e-06, -3.887400161856795187587790410706550576033603097954065074023128e-06, -4.650463220640262639231145944536092973446596027469833860001618e-07, 7.939210633709952088373459255067360793370284788682979065122810e-07, -1.079004237578671411922961583845716126060658213943840375162654e-07, -8.904466370168590769052983362721567202750591914741016835071257e-08, 3.407795621290730008673832107214820587991557116806912418558069e-08, 2.169328259850323106986222296525930099935873861026310788086221e-09, -3.776010478532324328184043667556576385639846460337894963138621e-09, 6.780047245828636668305808192607091517605349478677442468580825e-10, 1.002303191046526913509281844136258004034177309673269533418644e-10, -5.840408185341171468465492447799819262905317576847426970757700e-11, 9.130510016371796243923232926650252570239054815939483900056681e-12, -5.251871224244435037810503452564279828539007071678724285717464e-13}; static const TYPE CAT(db27_, TYPE)[54] = { 6.687131385431931734918880680779563307675740731544063787599480e-05, 1.205531231673213234251999812212394463872002561229330125152073e-03, 9.952588780876619771874091297340545740163119816300838847749336e-03, 4.945259998290488004302995584228917712171023349013386944893643e-02, 1.629220275023933206396286389387812803673796872000118325233533e-01, 3.671102141253898226423388094379126394383458407087000700420400e-01, 5.538498609904800487605460395549044755068663194750017660900436e-01, 4.934061226779989979265447084358038959373468583404767251300717e-01, 1.028408550618229112710739475157388764479351682549490307668477e-01, -2.897168033145948463175311101489473923261698802610323264603418e-01, -2.482645819032605667810198368127693701263349361209208170092197e-01, 1.148230195177853576326445213787661879970642975306605349249036e-01, 2.272732884141708265275037216925482827043581894357907763081103e-01, -3.878641863180231062443346843661817078060143110529946543683356e-02, -1.780317409590085821070366277249759321269342801053489323888575e-01, 1.579939746024048431173907799261019471878724997312653292884660e-02, 1.311979717171553289711406975836688896451835867594492827800969e-01, -1.406275155580876537026622167053147161846397735962817855782362e-02, -9.102290652956591798241345515773322449830692586525337562864481e-02, 1.731101826549371089085675445961947677452358872325373949295769e-02, 5.796940573471798814748840657698008349462526768238833307489106e-02, -1.851249356199807710545837861298826718763077900221574749342712e-02, -3.273906663102087145481936428049519742538150452785563039743756e-02, 1.614696692239566682272152627542980896527822528487665111124260e-02, 1.566559564892457873003263983940819950829497022298967052103291e-02, -1.157718645897628140054089958116866381056430680879332334217267e-02, -5.862096345462925972966025215266179082657169806555503857975278e-03, 6.856635609684880675273184141746359000591385833807880272568038e-03, 1.342626877303679609082208800217479591902967766971379107017011e-03, -3.332854469520006162763300141047111065412307706449049389557931e-03, 1.457529625931728587128588244152604734177322144376309490881599e-04, 1.301177450244135139135787970279897042994109161268159963884641e-03, -3.418351226915427611946547437228006377896519777431057005796358e-04, -3.879018574101327604369144470124819695479087900682219330965466e-04, 2.019719879690326857104208791272390315160018069955787875123234e-04, 7.660058387068576876674274961751262847965101108848090019821555e-05, -7.711145517797584208411720507329584053382646435270054267102827e-05, -3.517483614907445391752737841583832374184046409747387149129674e-06, 2.063442647736885318487206413360228908558806028468062177953960e-05, -3.901164070638425528170558032557368703418425915665413541985623e-06, -3.657500908187104997045760131046655906827644494899206692043298e-06, 1.634369624725637835424610743915128591988676092276368687669255e-06, 3.050880686251999094242671997731089918322345713516567387655763e-07, -3.472468147394389269364673179891460601330730511237974736379548e-07, 3.286558968055159530983261866450459360074591641809187825408848e-08, 4.026255052866908637178682747490340533992340623231336911661711e-08, -1.321332273990056558848617809101876846857728483295631388083263e-08, -1.309465606856955151282041809232358209226373823424148862843577e-09, 1.521614984778521740775073159445241799352681846880808663329946e-09, -2.415526928011130660506395791946234018673860470542996426005750e-10, -4.374986224293654395069947682013996351823060759948583134078918e-11, 2.213662088067662485181472969374945928903854605356443772873438e-11, -3.295790122476585807069953975043096139541415768606924980926275e-12, 1.828188352882424933624530026056448539377272017834175009418822e-13}; static const TYPE CAT(db28_, TYPE)[56] = { 4.710807775014051101066545468288837625869263629358873937759173e-05, 8.794985159843870273564636742144073059158975665525081816488582e-04, 7.542650377646859177160195786201116927568410621050693986450538e-03, 3.909260811540534426092083794403768111329778710541126982205076e-02, 1.351379142536410450770749411679708279921694061092200363031937e-01, 3.225633612855224257318486139030596702170126503618082416187649e-01, 5.249982316303355562348293243640252929543774162151269406404636e-01, 5.305162934414858075256978195354516449402692654391295761050628e-01, 2.001761440459844380384404537971725815970574972480152145882083e-01, -2.304989540475825257279397658067038304888129374484095837624889e-01, -3.013278095326417816909366061441334075444383937588485826752087e-01, 3.285787916338710468450547883547348694255260871071954509422161e-02, 2.458081513737595535752949960866466132239832334168533456626848e-01, 3.690688531571127205290633425993077868843846977265847006108551e-02, -1.828773307329849166920408764650763092868965221608724574218473e-01, -4.683823374455167616514752420549419665215987106243491879971921e-02, 1.346275679102260877490923315484152662987698625205479167761416e-01, 3.447863127509970524678534595639646616244376966117385829345554e-02, -9.768535580565244174963692133038973587005628990493154911133358e-02, -1.734192283130589908795581592406238282930530566316914040035812e-02, 6.774789550190933956165341752699717255041141690153626336867769e-02, 3.448018955540951137600471926079622335842207388713342609755316e-03, -4.333336861608628393863254980828284403766309203453808666888800e-02, 4.431732910062988320487418656322338284504389482966303454010563e-03, 2.468806001015186586264188361362046240243934625858343309818244e-02, -6.815549764552309639259447104811254179605050667281644254737890e-03, -1.206359196821849005842466619530619474644989878503490321948471e-02, 5.838816627748944864497370576838809711476027837762897602935327e-03, 4.784863112454241718009916669120329848973107781600157214960003e-03, -3.725461247074254799171427871442937099025589672466088044410521e-03, -1.360373845639692436577650137133777929659265166644839235882291e-03, 1.875998668202795626152766912508562385106168761893900192731562e-03, 1.415672393140464257573780581396205840941849282748250523509874e-04, -7.486749559114629991320679819683227355746847370960399216568306e-04, 1.154656063658921251969297916771881248142872975490882572741198e-04, 2.295790982233456202366621544054366855729175050420515776344878e-04, -8.903901490044488099517361247378396756893227855233897357882978e-05, -4.907713416190250858324783990436748073854807494400738311968278e-05, 3.641401211050802781223450761733180188911730291497201507086247e-05, 4.638664981394294654002871426476885751050837817671843706915388e-06, -1.004326041333422601781848560432120920634648692782357855473103e-05, 1.247900317574834146052381692752796047052443265982232422642017e-06, 1.840363734517769191684379309039277810350620305330900536404818e-06, -6.670215479954892588747450458085225880096882699397256774967304e-07, -1.757461173209842779903676264971918635870906983281392939812547e-07, 1.490660013535362170989340065033061951960933954388633507264360e-07, -8.262387315626556965966429243600984899650039704831080988658278e-09, -1.784138690875710077191713941441263246560738410213624546116655e-08, 5.044047056383436444631252840057862002264087720676808580373667e-09, 6.944540328946226952976704718677697525410051405055662575530111e-10, -6.077041247229010224760245305596307803830053533836849384680534e-10, 8.492220011056382105461206077240377024404404638947591299761197e-11, 1.867367263783390418963879146175452376940453585791428841004699e-11, -8.365490471258800799349289794397908900767054085216008197372193e-12, 1.188850533405901520842321749021089497203940688882364518455403e-12, -6.367772354714857335632692092267254266368934590973693820942617e-14}; static const TYPE CAT(db29_, TYPE)[58] = { 3.318966279841524761813546359818075441349169975922439988843475e-05, 6.409516803044434540833706729120596322083061716935004987374676e-04, 5.702126517773375434760843998623507494914551464968126455168657e-03, 3.077358022140837676716707336516751814713312018344719150923618e-02, 1.113701169517405304762186166370327770191325772342190715118617e-01, 2.806534559709829376968881262770480606500920092398534229615289e-01, 4.897588047621993143592705932993573539235839610055331620240518e-01, 5.513744327583751951223746071670135992466984391233429663886536e-01, 2.891052383358291634605691113586264061513180158354460952469246e-01, -1.540287344599000542466293779503370141731339982919280951230240e-01, -3.300409489175880520295083779487012611959310539629627124613719e-01, -5.570680007294085781514541931715795784309410235726214400350351e-02, 2.361052361530259415983110734054626770649468357328362426830433e-01, 1.124191748731883764769740670535880543076817816861518667898467e-01, -1.608779885941877360771615465531852333085159940159968393590303e-01, -1.078459499387214201077881957354707913786241153934264316589273e-01, 1.144722958938182579734135930060053286267822797640393386903440e-01, 8.322074716244975790297348835032537357891920536002627784941129e-02, -8.512549261563550232832311331420804581881235448862834507281486e-02, -5.502748952532572320924541450626650067707344725344841099873446e-02, 6.347916458421186633577789314698972361081611994794140119302163e-02, 3.053154327270413646637328212093941030592133225231728964047047e-02, -4.518798127778834515979704475304405691390090327474972089790857e-02, -1.291714255426679462966473962555410660387671182428076570686472e-02, 2.947043187174764111028122319949903667638786379520519899154373e-02, 2.648327307678167915542397563479749119673768286990136051577167e-03, -1.704122457360668969234196743407615179099529206118693044741086e-02, 1.737880332720511164430027824345354801611373419264590068097416e-03, 8.469725493560752287772961661104710791306496373354237126998903e-03, -2.550807127789472659145072247724735637183590942511858255354005e-03, -3.473798989681100630649790255076233970957721666820195620598374e-03, 1.877120925723650133179338154344873477230567340668548016358682e-03, 1.087053942226062966738944397844498417945523630053411148182206e-03, -1.000778327085680541055696707760062870925897014530348262794137e-03, -2.000711363076779808296301110796026470163110202848894744316755e-04, 4.111283454742767033424740543004041500054889660665367490129376e-04, -2.292018041214499897382298271438084577065170236103859181134525e-05, -1.293044840080720609161466939678226852440475312744714379499074e-04, 3.645026068562774967665464216602750761690984830805534178557146e-05, 2.913344750169041218495787251929571015775436967652945386217480e-05, -1.657328395306616289863396387854880512976861409870690029695161e-05, -3.593644804025187638066915189731950450034629392522542962477168e-06, 4.750609246452552850197117564759363194953518317428400241629683e-06, -3.029054592052818286474228294307141792053791695855058563299597e-07, -8.975701750636280734511651941681818767895052287332471537510510e-07, 2.633898386997696553900967704111473475368019612368922599394214e-07, 9.387197411095863026484410601284876812292554863800653292318725e-08, -6.286156922010786166768503252870590953166867739448102804392389e-08, 1.076591906619196137385201975028785139607670319821266803566785e-09, 7.768978854770062238895964639391324551611701293594055935346266e-09, -1.893995386171984147774611076618946011337498790609031626697228e-09, -3.426800863263089001811012278889864200550342566386405676893537e-10, 2.407099453509342962399811991929330725186626582891090462239366e-10, -2.940589250764532582888473974638273664244682541297835986306504e-11, -7.832509733627817032356556582819494794884131433810848844709881e-12, 3.152762413370310423797539876893861621418382024668704492620948e-12, -4.285654870068344101898185073376307686875386259541180967347399e-13, 2.219191311588302960934661700068023727737812918006011019184982e-14}; static const TYPE CAT(db30_, TYPE)[60] = { 2.338616172731421471474407279894891960011661146356580425400538e-05, 4.666379504285509336662000111055365140848987563882199035322085e-04, 4.300797165048069510045016757402827408493482974782286966500398e-03, 2.413083267158837895194919987958311943976725005113561262334092e-02, 9.123830406701570679321575555085899708564500191080751595642650e-02, 2.420206709402140994467599658342919512318194032687898436229538e-01, 4.504878218533178366981351802898336415314944375740699506554771e-01, 5.575722329128364304078082520999850413492571645754785374629734e-01, 3.662426833716279793144871151369089533016299234992584741629624e-01, -6.618367077593731501909741041813726474911212544474895441395148e-02, -3.329669750208556069196849320598850505877494561268613506392514e-01, -1.419685133300829310219026267403758254954270602825020111483505e-01, 1.994621215806643032428990062111230223523226088131364328774921e-01, 1.778298732448367361280250921330425046260289700971176750362566e-01, -1.145582194327077814891518778613672243404957549114393749173137e-01, -1.572368179599938126878197378886501553251711910617673398124611e-01, 7.277865897036442699893544326605244235248713804556715604416632e-02, 1.227477460450093778691578797698150091624353365248212907325446e-01, -5.380646545825707676022015051837304300338645984615639237930800e-02, -8.765869003638366048026572053699028353846982304851342479893827e-02, 4.380166467141773250305407710250135373016604593736480428415303e-02, 5.671236574473569492590636983030617493807140224924978946302257e-02, -3.567339749675960965780819743176056734137251336781389369397564e-02, -3.226375891935220815954913483392725682165778426411705216010280e-02, 2.707861959529418272206848318420006522973840949600186710327776e-02, 1.528796076985739546052896626042375110302102640936712142026221e-02, -1.839974386811734118728169880549148389603890445324127330811811e-02, -5.296859666131086629169938675330494864053932988161015674773617e-03, 1.091563165830488927536881480211929049886878831313700460017968e-02, 6.196717564977244383592534999284255315694546230739551683085460e-04, -5.530730148192003288871383856487027893918513053091795443517653e-03, 8.433845866620933982126003584365932145598126087481400294999080e-04, 2.324520094060099304385756339638431339131122661576649123053845e-03, -8.609276968110423879660725173525347077801305237644122054954659e-04, -7.678782504380918697963922441514742758516706160788123977340073e-04, 5.050948239033467796256544554086554367969638627715114003635557e-04, 1.724825842351709725545759714374272164367933578194910678479473e-04, -2.161718301169633804271038862087964094429005266172702380483361e-04, -8.548305467584070994787824796256108217987765582429940610377190e-06, 6.982008370808327851082027193100914402221658444151889697045071e-05, -1.339716863293971629296314599448901465078920406443516550195793e-05, -1.636152478725426488654528710478856195004608401773950511915162e-05, 7.252145535890469015723401169934327900622894130695550273452916e-06, 2.327549098493686509557358103785598216688723737824121617676858e-06, -2.187267676996166416699555236143059249832615777542412142603694e-06, 1.099474338526203304286307383463498542376432972308342428764576e-08, 4.261662326011572446469849114416378817419458434583398455985144e-07, -1.000414682354500898864979332965559934104686157639553850670490e-07, -4.764379965139453357729154748688006975561934425368712852985388e-08, 2.605442754977625431940885841950955928085338672381046225838880e-08, 5.553397861397053982967618072672572206490972606026556946910028e-10, -3.331105680467578245901976412732595596538702049437802824373020e-09, 6.984862691832182584221096665570313611280449991512869846064780e-10, 1.613622978270904360610418704685783656905979134344922647926295e-10, -9.461387997276802120884525814092001871993910062127702293573920e-11, 1.000105131393171192746337860330428369495110180346654025287492e-11, 3.239428638532286114355931428908079297696045600279108835760520e-12, -1.185237592101582328254231496310584611948560976394420324137742e-12, 1.543997570847620046003616417646988780670333040868954794039905e-13, -7.737942630954405708679963277418806436871098329050829841696327e-15}; static const TYPE CAT(db31_, TYPE)[62] = { 1.648013386456140748122177817418358316441195236228590958603489e-05, 3.394122037769956699157160165352942212213928231154233571163033e-04, 3.236884068627721221829662672296912258338131668810067169630813e-03, 1.885369161298591269159568944275763468999829139547989648553486e-02, 7.433609301164788697908776495388047669378919816041031344650271e-02, 2.070128744852353286198055444111916450619762837756134323019573e-01, 4.091922000374278563928213235836188963704298775635493549519369e-01, 5.511398409142754983590484577074663132074992263886810324421617e-01, 4.294688082061372955430413148799008354573408538414331312236645e-01, 2.716921249736946422305354732634261873401679092095992827198308e-02, -3.109551183195075186926560285811004715398678229333522634202008e-01, -2.179784855235633521693544507220105631639547435903112747133934e-01, 1.401782887652732681656253206993073895422881511380152633441096e-01, 2.249667114737370933697297905066886078307490136415302624018330e-01, -4.992634916046823977000579399730138693074543903234092797936484e-02, -1.869623608957154494374577196258383009208655076187653847079167e-01, 1.543698842948893409652995335281236231845293548571166883219023e-02, 1.450895009319931981518942907854879059128872873116921504156674e-01, -8.139832273469236863527708715566588550006680549152344840146851e-03, -1.076127733234956326668605511648013952380301953590447106075614e-01, 1.094129745236496925725237900637802669504835743555466811796369e-02, 7.535361174328140695528289751109133941376701984419452638686226e-02, -1.488002661810482202699555987503429289100801979910046913257306e-02, -4.861907546485433003537603385831190109391263542044516048871113e-02, 1.615417156598591113619453864586701665635869166193865651960591e-02, 2.804761936675616906861927211659154977049392281479113764697785e-02, -1.427627527776351943309800140756746087215016194775579070599004e-02, -1.390055293926652880755898888934447671732373519028670201124816e-02, 1.051763948737184089128633441244991643331033825102031908858652e-02, 5.516163573310992566561289762241160214476622662764637181816550e-03, -6.520852375874612553325469682628530079210293774541131381751695e-03, -1.428264223218909891400516038687842292177211292295049238921068e-03, 3.393066776715931928419358796960612411097347419792355896915546e-03, -6.397901106014600492881202314307290077992972755016494062875201e-05, -1.459041741985160943114515221598080223845239255190055621901681e-03, 3.431398296904734438118401084929505912208229684629857530009147e-04, 4.998816175637222614896912406679513231966722440032799024979502e-04, -2.396583469402949615285646688069476140260781708006174912535660e-04, -1.243411617250228669409179807383399199879641177993453588807726e-04, 1.089584350416766882738651833752634206358441308880869184416670e-04, 1.501335727444532997071651937630983442758297688087711521441229e-05, -3.631255157860086164261313773172162991107348698083164489165837e-05, 4.034520235184278839752741499546098778993926344831736074409765e-06, 8.795301342692987765440618030678349427367022581211855857458220e-06, -3.035142365891509630069007852947057220760887215249503512783023e-06, -1.369060230942940782050489751987123955074404782177163471279285e-06, 9.810015422044371573950976088058064384946146188110905321673802e-07, 5.327250656974915426977440959783080593776012130063170688309127e-08, -1.975925129170206248152121156696590501303803187231928513867046e-07, 3.616826517331004805247567218405798591329788122337274956172315e-08, 2.328309713821409644308538888589329921141948539678106680777082e-08, -1.061529602150252306500404266150823962402673780484965538270541e-08, -6.474311687959861398702581539341954438747926255671605657095807e-10, 1.408568151025177427076547804944585301332087108125727813194374e-09, -2.524043954153353306183643702933218308617979467184848456565837e-10, -7.348930032486263904766913919653624379586487437915175106407348e-11, 3.692108808871129411604189196259677640440919369478263728899602e-11, -3.327008967125979929910636246337150851642079794871116041187279e-12, -1.324334917243963163878274345609465717294426628053460151843705e-12, 4.445467096291932163298411852093011459626037560439178917611592e-13, -5.559442050579014337641375730083534521513818164827556763756543e-14, 2.699382879762665647295493928801387173921314576598505507855504e-15}; static const TYPE CAT(db32_, TYPE)[64] = { 1.161463302135014885567464100760659332951431420121048996305591e-05, 2.466566906380903352739104211274667134470169443886449124673996e-04, 2.431261919572266100780423071905958127811969678055971488060574e-03, 1.468104638141913563547809006402194831107662001343421893488086e-02, 6.025749912033537081745451975527967031851677384078997261920024e-02, 1.757507836394388988189299915753348505208376399651864661397588e-01, 3.675096285973496361995340339143234125206079560406868595968025e-01, 5.343179193409538322901117858552186425529774700290587495921679e-01, 4.778091637339484033555130814414794130354053753675509287934741e-01, 1.206305382656178269538098710665261299391507308342013788891222e-01, -2.666981814766755535489784087869865024226542605534080371507405e-01, -2.774215815584272153338153320303401666681294506143291967655666e-01, 6.471335480551623831000090095167664918448659157720155321560811e-02, 2.483106423568801736064852157222867588791898170114101300999760e-01, 2.466244483969740441701479334808723214802614938081258920635302e-02, -1.921023447085468984341365278247990525863123891147783426068990e-01, -4.899511718467173853355943225576377418394280156945986899417475e-02, 1.452320794752866460838830744051944832326998342053148426312341e-01, 4.440490819993974022640619534046603571086531544468421519143629e-02, -1.094561131160893831027722774343269232755171130623890041619420e-01, -2.962787250844770491204452379051215505049068645551070779367843e-02, 8.087414063848395744090831590426327690818854671836423275412813e-02, 1.410615151610660772869738802931740150275269382463799031013905e-02, -5.692631406247843550478416271158537960555270097953330567652364e-02, -2.380264464932573834443178362086503847328134994591954135879789e-03, 3.705145792354468010437633458013030898015496905609424004450953e-02, -4.145907660827218781460700428862611061267328108653649653634276e-03, -2.166282283639119347634778516947485598599029367518033869601702e-02, 6.167527310685675112579059689520105004744367282412921739811164e-03, 1.101740071540688116532806119564345712473051769079712407908648e-02, -5.411568257275791208581502410752383050600045942275647685361370e-03, -4.649216751184411528658094984504900172989190128905887602541396e-03, 3.627224640687864960122122984391704782343548385375321260251988e-03, 1.468955100468467772528811782840480639166582822577191079260543e-03, -1.964740555821778254183647540656746450092725858126595984907304e-03, -2.211678729579097916278097586914956834196749138610403102772710e-04, 8.673058518450555343925662389563539890596549655683386287799624e-04, -1.024537310607396186949656796812972062290796122915930356634122e-04, -3.059654423826911750479261161552574500739091332121504634422577e-04, 1.053915461739828114700905192091104141076083602686374410146603e-04, 8.103678329134838389828091896334156224227821362491626044950428e-05, -5.259809282684322782648914338377962890245975842272425408122506e-05, -1.294045779405512723950480259110995722517019870286295908085366e-05, 1.824268401980691220603850117995712615809177092802967489081228e-05, -6.361781532260254953363913076575914206506177493714496098327288e-07, -4.558309576264423135123964145585288808181431652781253437738445e-06, 1.202889036321620990296134494079846952404216422923750605507047e-06, 7.560047625595947819392627283726711361273296630256477108501994e-07, -4.285970693151457255418342315045357407199066350632593899896712e-07, -5.003361868748230293692887222336390314786090450819216035110269e-08, 8.965966311957728376981484572655177545054433542721057470726361e-08, -1.219924359483373093110396748985081720383992859961285213840740e-08, -1.104383021722648979552131128575075255513372249283096583736746e-08, 4.250422311980592983740943309197245384991941251563471671065543e-09, 4.384387799940474369553236949848427579687147486892033587998023e-10, -5.881091462634605628881794361152305108432139465417759716875076e-10, 8.904723796221605490455387579189371137903330749397374037644960e-11, 3.263270741332907875981844980104948375955551273115386408552080e-11, -1.430918765169202320188022211739750594608742928641485026836608e-11, 1.075610653501062115165734990153347111902874668945095034791947e-12, 5.361482229611801638107331379599434078296259332654994508124989e-13, -1.663800489433402369889818192962259823988673359967722467427927e-13, 2.000715303810524954375796020597627467104635766752154321244151e-14, -9.421019139535078421314655362291088223782497046057523323473331e-16}; static const TYPE CAT(db33_, TYPE)[66] = { 8.186358314175091939858945975190102731733968885547217619434602e-06, 1.791016153702791479424389068736094134247294413108336017758506e-04, 1.822709435164084208084617771787691709255513374281497713580568e-03, 1.139594337458160925830840619716397130445853638888472948832932e-02, 4.861466653171619508385707681587366397164931431125053574327899e-02, 1.481863131800528081784673514426737436792606299953305691300616e-01, 3.267181301177075783930752787756046348844272437670999719562429e-01, 5.093761725149396552227892926384090200953139820961482931291482e-01, 5.112547705832674655425831875568453973369927971748064975152374e-01, 2.095823507130554216526494469993023406452629154801126958766008e-01, -2.042026223985421049629055102642279430174095014493415546881477e-01, -3.159974107665602561905181464284910961862968513875028980451424e-01, -1.927833943695275915600583425408664108893845271616240406358226e-02, 2.454206121192791114179964351253140999836791489738418857473689e-01, 9.985155868033815698139640215477639365289384281516885362929979e-02, -1.714280990518593279308738113273443832545615219650436927029674e-01, -1.108441331167107910806084983056783194189909198734302929909672e-01, 1.219678564037346149389134584371009777591763921148126952722200e-01, 9.478808805061595889263191779090571160237408179346345390888721e-02, -9.114696835133148913093153757138373418923462847746880902676089e-02, -7.030248505405615921453280814171665167171986608963193275084895e-02, 7.019114394099653254998935842432841393915841096633514680190145e-02, 4.573456189389667743139040427641638967843459421665709740086516e-02, -5.347125133582228919431110824663168583260050383336359554980188e-02, -2.524858297747649929258392207837724793937727346177294684700378e-02, 3.868706076024496481748675031852528047303323816250150793091832e-02, 1.070326582001954942654534968137727769698168853186071888736311e-02, -2.572876175473297336123211392278301875687760837710204579628265e-02, -2.167758617353607324783298657172830203896433848418061622436727e-03, 1.531695411585766548347442266431874060229304787191589430967538e-02, -1.594288782414604768637856446111392724059836934455189837500244e-03, -7.953540387057939240459305406538116220678495240302592677582773e-03, 2.389062408165908575935815973439728988151836094753689966108405e-03, 3.480800953405711999411461002429227385937942254778524257436278e-03, -1.860718214455795912074482150710567824317228203897000129729967e-03, -1.204309257604658876916644980097327372892008586047095719636829e-03, 1.074380696351291355073899234941719080473877020595209197706651e-03, 2.727305847336937211749282358350196461733595290569540045817329e-04, -4.908329007590351474487792254066540683724948757382104652497458e-04, 4.393166251766185755059005296958129844094063524324718175254673e-06, 1.780431898251245351831728023200069586928513661382622116969992e-04, -4.160438516273709306234368807933932360567787692918883118883736e-05, -4.929564423417301834310231482621574127409950921583062559483686e-05, 2.423335398816890365621188379922041046073808819182024026589770e-05, 9.070805757828453800203677464921508178468256685438211818575040e-06, -8.866121366757736169176034432364298134186929098274651022820760e-06, -3.607516102879771631230351118595069330196155459105589342866625e-07, 2.288371276141527305481395545993763010565968667577768164201792e-06, -4.426923407952870147984002129341809185622768353983550670755106e-07, -3.985791291985944076942626511739220753169387460984290019185514e-07, 1.822443332571053437467128998002798233969112236553215291639303e-07, 3.377972703730854377516206663481869099376154259897212784144779e-08, -3.987838198518880722819502850814936369197384392561970319349663e-08, 3.672863576838181340505563759379169099717712645283448779390320e-09, 5.111211857347453839549366593998758891130921028374576213256027e-09, -1.671392677251932495173219614104411841891545601521784559793012e-09, -2.496402105246193648073519269370197331176405371538404298745013e-10, 2.426833102305682309891302883361232297664099485514601790344279e-10, -3.049574453945863430361296931455141500128170151643206937547928e-11, -1.420236859889936792437077844940412749343225644487770840543290e-11, 5.509414720765524548752673631197714447818740985929081064907524e-12, -3.343481218953278765982532722689984725170758193566174566492199e-13, -2.152488386833302618520603545685994753329478275805993737095214e-13, 6.214740247174398315576214699577230693021307854673557214652751e-14, -7.196510545363322414033654470779070592316600780697558361083151e-15, 3.289373678416306368625564108782095644036415401902518812978798e-16}; static const TYPE CAT(db34_, TYPE)[68] = { 5.770510632730285627466067796809329117324708919047900817738025e-06, 1.299476200679530037833484815390569400369432658207722720405084e-04, 1.364061390059049998200014449396877439591680435610837369411339e-03, 8.819889403884978803182764563095879335330977939541630862804757e-03, 3.904884135178594138905026219591569204043816577941517019631916e-02, 1.241524821113768081954449898210969172708199672428635378051285e-01, 2.877650592337145629334256618087718872558560120999651277991839e-01, 4.784787462793710621468610706120519466268010329031345843336104e-01, 5.305550996564631773133260223990794445605699030503652382795600e-01, 2.903663295072749510455945186199530115755664977934564128822650e-01, -1.282468421744371672912377747048558427612774932943748628650824e-01, -3.315253015083869417715548463087537345035828886426345397256876e-01, -1.038919155156404718287260506925867970596448618647006698388596e-01, 2.169072201874275950610018667099322465619408030256534197819784e-01, 1.666017504122074437311574334509261366682993700573488534577890e-01, -1.273373582238011562843862636988693890108793629966541695807247e-01, -1.609249271778668063014799490429649196614628857267382976958607e-01, 7.799184693794810738265349531832015087096882277333968473726399e-02, 1.341259602711361284802399913977387999358280900708582462625539e-01, -5.448296806413904636632671383140642554265865948686157271017286e-02, -1.029475969928140852342073823689090498245496056845473569066667e-01, 4.357609464963129726428486610925800727137724136370669421246609e-02, 7.318523543679560555546221335452045680757998947493883124934567e-02, -3.701283841786244960356402125554190040750079009127461655784927e-02, -4.743855964527776247220681410983851377889756018716427358008296e-02, 3.073974657395934459931226513844134346305562928466993208164603e-02, 2.722835075635419610095839895805858855202745897718117731496534e-02, -2.367173792282636485046786438094940427456079528043555566867110e-02, -1.314398001665716086105827506126287041342680578404007359439612e-02, 1.640937419986519252112261495537409592363156309874473310057471e-02, 4.713649260999809905918876125437488856235874027077755004539205e-03, -1.004550670836151917439146861146431000364858401181337134891421e-02, -6.194748845153872839014356621835501857322345445234809347431098e-04, 5.334950768759936032170270195983921511565539100791906952901398e-03, -7.692127975067836975989490900561029844887285335804349474993607e-04, -2.399453943537055863933124827688081952701780599883067560501870e-03, 8.589959874363661955444898475746536583497522107459291718900058e-04, 8.751999064078688732610570055224339733760304773327228476255647e-04, -5.527355762144197975516415296735124460550632283763688359649888e-04, -2.326732140233531635428863212833942245597361085708567528230733e-04, 2.650772397558057819755811309071002543822145660933016957735937e-04, 2.660050018453441903046828468025589086403126180798464347801678e-05, -9.914697770780134603580350758869378471802751837608461971022567e-05, 1.353117227249649581251887376414486225127346352042209141315562e-05, 2.844951419697807376503080001943765930601242225183893658540032e-05, -1.057657494257950623848316304755218120233253479317574337409622e-05, -5.710826510998303938275050074333400305512451419983646591762318e-06, 4.169871758547028398316761659984928804362023643629741358799744e-06, 4.979718101421307748081857636471761057429219265531618602960147e-07, -1.116306534817008428597995070751765080383261658112656948526954e-06, 1.448195708333185127061180618150009526758658641231104901703561e-07, 2.025990666667859216690536885693725545344933235432307649205497e-07, -7.526701740412589411177481797841044281662555785969415398369019e-08, -1.990346501531736915866180448337614967570744211158241514589121e-08, 1.740423332936068076497051274445147160190783847854409836489662e-08, -8.665744261368722215864741166245385888818567571145958531936939e-10, -2.316501946995482751582294240136010067415084499025753117941001e-09, 6.446378210323402313101214894500231181606520211579581132442548e-10, 1.300410318609415248880403259300467720631189120978928377152233e-10, -9.904774537632409015479530333979124540183199174591377762845227e-11, 1.004208735461769864836516428998306778031143650101842361622330e-11, 6.080125354000167254059025929915591291115751734288584563131636e-12, -2.107879108915301546285370395443778864676275235126044599683271e-12, 9.799451158211597727901178520526388692140586041163624252991805e-14, 8.579194051799733179793112298652600511486581216528683482143106e-14, -2.317083703906408481078257081903089523234020423092175261925515e-14, 2.587338381935699555813538163144986688834142571207152879144731e-15, -1.148944754480590128244815794312606245147888158018823490936280e-16}; static const TYPE CAT(db35_, TYPE)[70] = { 4.067934061148559026665247110206084571051201477121972612218005e-06, 9.421469475576740631603027533116630224451049736050903361458759e-05, 1.019122680375098109319314672751485080202557607467199213778085e-03, 6.807292884319132011971333979015625113494050642797397817625326e-03, 3.123628851149071453063391210769353068187088999495893257051179e-02, 1.034044558614783789938787754929279183985553322796063517049140e-01, 2.513073789944933128513251971488905042866779761014740192816902e-01, 4.435927392240354378183910489448494594782039032807956294826105e-01, 5.370084275091661028670690231716974547580034932361053607723887e-01, 3.603456405180473278744458573988718422538114217890792270621563e-01, -4.388388187393404111343479394097224312100349011932028865098625e-02, -3.238228649121161212147302807993176715625480327235512530593160e-01, -1.817869767667278325788350264528191676841493369460849123538616e-01, 1.660413574907809195438433327470947940538097914525298064477785e-01, 2.172992893210892977675493456199559114036326358517672106972956e-01, -6.526287131067753892154895911331108284007380738865652420304233e-02, -1.919195892985939528760786800798636198516495957924798820500876e-01, 1.930954466601835091947734585938109944647435243484967057775110e-02, 1.552924803962371144206753760712566993987319378965231186477630e-01, -4.752680834111350445288110998030979143710864689041902167119118e-03, -1.205855226433935545076589480704957722635324456812322150437989e-01, 4.734229172641948763293980314992213293971770695480616789828384e-03, 8.991354757072954417865374195261962983644048998218233900481856e-02, -9.318558949903924837875002823617504227246562152671894579504378e-03, -6.335603744044346612098887534020545705731671718057964802006671e-02, 1.322854958503655524455929847605110719648746890497356808289302e-02, 4.125469306470509212749750814299126656151504805845417994651417e-02, -1.436683978422007182104025173214012797788904894291716373493525e-02, -2.416949780166026740294880681731084091264533168816746227537030e-02, 1.276645671565674419403918018742432714973656598227939824940035e-02, 1.228943600811871086161967625814297050611100200023898377949151e-02, -9.577797899235709998147309703713518608283233882793489733491642e-03, -5.085991649233429881797636583578921194675393807761154549733547e-03, 6.137754586740521089596801883631921221145712545042519987641234e-03, 1.428088794070762107355585870669842132609159040625895090070111e-03, -3.357644380922383229567732565298665639037348585961127075507937e-03, 7.615969435172736546769649923895317451534703066016116257300160e-06, 1.549637469702362975561719246539787717204438637997824935787688e-03, -3.346692164250854961608526121524596908041109918361306282201310e-04, -5.864810318991817532175809224131456738367101035694188223408841e-04, 2.648328819961289039302810122699710966048565368047575218693134e-04, 1.700012283661249043584690194716767771204207742625746308522935e-04, -1.365883072261161602559926714744746422567509177443594045709653e-04, -2.976995962848509743944225866488519668585242655980656646544319e-05, 5.304143122913310222538317980686374696005605533475685587486683e-05, -2.437001526827789860990429478540556752694389693432668831073769e-06, -1.572442077270281693663288966405861215692805972737981986121447e-05, 4.308047861716731191350493437937513220737450410132878032163179e-06, 3.353345862871309889390877168046133657377105681618708355266688e-06, -1.895929617693153288493891051875444439753318548105998166574535e-06, -3.903931733287306166657519468494511920760767388397825775326745e-07, 5.302368616904760917074352633915743250769600635829229600812520e-07, -3.700308378205124537986402644918879149894035910106489082512364e-08, -9.990396944534900755781728477561240762191443422318249128866740e-08, 3.008188650719066928230268918661718274504955045022550217051301e-08, 1.084902733789934825266560240100449884702749303326571747323086e-08, -7.458116552893037631192407611262788593505988638365840409367117e-09, 5.897951310384361575470355861162022501172491937837712969865619e-11, 1.030823345485433383811700481488557422005210168069163779730908e-09, -2.433545573751672936168877250405940817227367937230289801251648e-10, -6.407938256501889018430608323235974406219193176918284664973727e-11, 4.000536627253744510742788201354093006471710416671002244302586e-11, -3.125639357108557540598098228678150768528121565391376265627294e-12, -2.567065476155081449204643852428401530283519685638256074752850e-12, 8.015088533687900921948605418789324826115616416343391081288979e-13, -2.597954328893848084315198205094389145706680129208998638802995e-14, -3.397720856796267431956783825659069596940335130100871912329556e-14, 8.624037434720089202680337663692777682810714650060805832406135e-15, -9.298012529324185420921555664719863501848315099116725184370339e-16, 4.014628712333488654318569164614220308046021091178184654250982e-17}; static const TYPE CAT(db36_, TYPE)[72] = { 2.867925182755946334630479473029238615535511775894262711054705e-06, 6.826028678546358691748629102209605362240344266505035981791715e-05, 7.602151099668488285869792677106082100141275054892389379198545e-04, 5.240297377409884366201603524392995696042174937194435235003941e-03, 2.489056564482796484885927333959115579403023347044729739255255e-02, 8.565209259526409083864716995521111486437594750377856524772704e-02, 2.177569530979008149637945915719999746248969705650625533415876e-01, 4.064336977082553467407793990250384445903151630768558142125382e-01, 5.322668952607286914777444748641462027213554723153906901129337e-01, 4.178753356009697863620634559374236455222275302996931178265919e-01, 4.397519752934862993862182898358763783110745559238982179690132e-02, -2.944210395891145711100715969898758940722458887377844633443675e-01, -2.468070369781255270524798278622698446566520718230313889086016e-01, 9.811420416311477050518401371401568038943437322299913514049728e-02, 2.465372776089742110529709111809595434656418762898152706621356e-01, 7.278515095792229009687682299460382878643139026668958884429641e-03, -1.993372056086496198603363400094784142714162256792182570541036e-01, -4.586140074639271639145126228774831743002971373998329604574394e-02, 1.541062366276428841776316300420654875883842819413623395358262e-01, 5.027618007353842862036816972809884096761706036019748316890913e-02, -1.188037543101356316801816931383547446073152951044444224449501e-01, -3.988085357551317584091699967924044034100374257075864260934102e-02, 9.115678225801654406336059281306715151058903055370522031843771e-02, 2.503872144956848989919484296709846860569180993040383621980546e-02, -6.820901663681751124880436344265538690580358108714540763125119e-02, -1.131910031681742794381808082173695022123056280821611354577883e-02, 4.851308354780908538616267662315735632292989749013261207046367e-02, 1.424972661765391603147802607378542396323429657660009755652404e-03, -3.198072067763969654470293513742344601172739688274251641873778e-02, 3.984040198717004857397179486790082321314291366656151213429068e-03, 1.906359478062535932877576164368198274858108513696832728889209e-02, -5.657813245058818380424016973516714570499161434975761798379020e-03, -9.990263473281372348001743806489172665465685056975652497503772e-03, 5.022989106665829004699819220796538830393945994687289792465541e-03, 4.413484835350575251918616780287775585471012556848037301025999e-03, -3.484541445404883311209541395428535732697661971818727286003028e-03, -1.503074066296643749549363655363411879858070202740814054964603e-03, 1.990793771851737270404293245701878186600899439513475823305914e-03, 2.776812795712026068152384207605140383490242756921936501940389e-04, -9.463403823261101964604918059447913047725482130063492242779878e-04, 8.614565758992702032613879159402330909634737204578606399403107e-05, 3.693507284967510502620040341882236687749563414433432842567511e-04, -1.155118895843527096848376999413102395191976350936666573818799e-04, -1.131899468084665671727391922924411467938450743565106978099456e-04, 6.694741196930590257104231749283786251555566773398199990337698e-05, 2.375106683660860777161950832380341362257503761490580896617678e-05, -2.731390824654337912922346414722045404779935825834384250023192e-05, -1.183471059985615942783182762352360917304348034947412986608322e-06, 8.372218198160788432628056043217491552198857358432112275253310e-06, -1.586145782434577495502614631566211839722879492827911790709498e-06, -1.870811602859180713762972281154953528056257451900381097476968e-06, 8.311421279707778528163597405935375886855029592150424544500718e-07, 2.548423522556577831218519052844387478819866531902854523544709e-07, -2.455377658434232699135878286794578515387138194247693201846263e-07, 2.753249073339512254085076456700241929492720457889076058451072e-09, 4.799043465450992009934526867650497683545716858606119786327559e-08, -1.156093688817008406756913949175208452083765368825442482226093e-08, -5.612784343327791397474114357094368557982413895802980814813369e-09, 3.138841695782424018351567952158415003571380699236147752239001e-09, 1.090815553713751810964713058800448676068475673611349566405716e-10, -4.512545778563249634425200856088490195004077806062978067796020e-10, 8.962418203859611987065968320295929679774693465791367610044773e-11, 3.037429098112535221800013609576297196061786927734556635696416e-11, -1.599716689261357143200396922409448515398648489795044468046420e-11, 8.876846287217374213524399682895564055949886050748321818411161e-13, 1.070969357114017002424433471621197579059927261727846375968378e-12, -3.029285026974877268896134589769473854669758797446795757329862e-13, 5.542263182639804235231685861028995158694397223907295269180336e-15, 1.338071386299105896025578761458472955294763310766371178363783e-14, -3.204628543401749860439316638848579711789176444320134355253750e-15, 3.339971984818693213132578777712503670014459411167839211495237e-16, -1.403274175373190617489823209168013922564353495443487431242610e-17}; static const TYPE CAT(db37_, TYPE)[74] = { 2.022060862498392121815038335333633351464174415618614893795880e-06, 4.942343750628132004714286117434454499485737947791397867195910e-05, 5.662418377066724013768394373249439163518654840493603575144737e-04, 4.024140368257286770702140124893772447952256842478891548092703e-03, 1.976228615387959153244055502205017461538589475705618414896893e-02, 7.058482597718160832030361890793007659963483925312132741868671e-02, 1.873263318620649448028843491747601576761901656888288838192023e-01, 3.684409724003061409445838616964941132670287724754729425204047e-01, 5.181670408556228873104519667534437205387109579265718071174178e-01, 4.622075536616057145505448401528172070050768534504278694229363e-01, 1.308789632330201726057701201017649601034381070893275586898075e-01, -2.461804297610834132869018581145720710365433914584680691693717e-01, -2.943759152626617722808219575932673733674290772235644691367427e-01, 1.967150045235938977077768648740052380288156507222647187301894e-02, 2.515232543602686933435224095078166291442923992611593827552710e-01, 8.180602838721862339029076982652411696000045533716726027662147e-02, -1.819622917786080007408824256525225216444443143868752611284260e-01, -1.084517138233017845554078812341876568514835176341639783558543e-01, 1.299296469598537527842528895259188653120602318620944502979726e-01, 1.017802968388141797470948228505865617480048287983176581607964e-01, -9.660754061668439030915405045955772715988585374771282291315496e-02, -8.233021190655740867404073660920379414988302492018783774702028e-02, 7.504761994836017933579005072594245435071674452882148228583865e-02, 5.956741087152995245435589042520108066877114768216272503684398e-02, -5.925681563265897095153806724965924334077555174281436189512239e-02, -3.825382947938424882011108885090442116802994193611884738133373e-02, 4.580794415126833246633256156110381805848138158784734496981778e-02, 2.097280059259754883313769469036393294461497749083921162354229e-02, -3.352358406410096994358662875913243067234786296009238949920582e-02, -8.833493890410232394064187990625563257107429109130726291528648e-03, 2.261865154459947356571431658958802912061105608212828675323452e-02, 1.690472383484423743663952859090705636512807161536954018400081e-03, -1.376398196289478433857985486097070339786225136728067000591187e-02, 1.519305778833399218481261844599507408563295102235964076544334e-03, 7.387757452855583640107787619408806919082115520707105052944171e-03, -2.248053187003824706127276829147166466869908326245810952521710e-03, -3.394523276408398601988475786247462646314228994098320665709345e-03, 1.816871343801423525477184531347879515909226877688306010517914e-03, 1.263934258117477182626760951047019242187910977671449470318766e-03, -1.111484865318630197259018233162929628309920117691177260742614e-03, -3.280788470880198419407186455190899535706232295554613820907245e-04, 5.490532773373631230219769273898345809368332716288071475378651e-04, 1.534439023195503211083338679106161291342621676983096723309776e-05, -2.208944032455493852493630802748509781675182699536797043565515e-04, 4.336726125945695214852398433524024058216834313839357806404424e-05, 7.055138782065465075838703109997365141906130284669094131032488e-05, -3.098662927619930052417611453170793938796310141219293329658062e-05, -1.639162496160583099236044020495877311072716199713679670940295e-05, 1.354327718416781810683349121150634031343717637827354228989989e-05, 1.849945003115590390789683032647334516600314304175482456338006e-06, -4.309941556597092389020622638271988877959028012481278949268461e-06, 4.854731396996411681769911684430785681028852413859386141424939e-07, 1.002121399297177629772998172241869405763288457224082581829033e-06, -3.494948603445727645895194867933547164628229076947330682199174e-07, -1.509885388671583553484927666148474078148724554849968758642331e-07, 1.109031232216439389999036327867142640916239658806376290861690e-07, 5.350657515461434290618742656970344024396382191417247602674540e-09, -2.252193836724805775389816424695618411834716065179297102428180e-08, 4.224485706362419268050011630338101126995607958955688879525896e-09, 2.793974465953982659829387370821677112004867350709951380622807e-09, -1.297205001469435139867686007585972538983682739297235604327668e-09, -1.031411129096974965677950646498153071722880698222864687038596e-10, 1.946164894082315021308714557636277980079559327508927751052218e-10, -3.203398244123241367987902201268363088933939831689591684670080e-11, -1.398415715537641487959551682557483348661602836709278513081908e-11, 6.334955440973913249611879065201632922100533284261000819747915e-12, -2.096363194234800541614775742755555713279549381264881030843258e-13, -4.421612409872105367333572734854401373201808896976552663098518e-13, 1.138052830921439682522395208295427884729893377395129205716662e-13, -4.518889607463726394454509623712773172513778367070839294449849e-16, -5.243025691884205832260354503748325334301994904062750850180233e-15, 1.189012387508252879928637969242590755033933791160383262132698e-15, -1.199280335852879554967035114674445327319437557227036460257649e-16, 4.906615064935203694857690087429901193139905690549533773201453e-18}; static const TYPE CAT(db38_, TYPE)[76] = { 1.425776641674131672055420247567865803211784397464191115245081e-06, 3.576251994264023012742569014888876217958307227940126418281357e-05, 4.211702664727116432247014444906469155300573201130549739553848e-04, 3.083088119253751774288740090262741910177322520624582862578292e-03, 1.563724934757215617277490102724080070486270026632620664785632e-02, 5.788994361285925649727664279317241952513246287766481213301801e-02, 1.600719935641106973482800861166599685169395465055048951307626e-01, 3.307757814110146511493637534404611754800768677041577030757306e-01, 4.965911753117180976599171147718708939352414838951726087564419e-01, 4.933560785171007975728485346997317064969513623594359091115804e-01, 2.130505713555785138286743353458562451255624665951160445122307e-01, -1.828676677083358907975548507946239135218223185041410632924815e-01, -3.216756378089978628483471725406916361929841940528189059002548e-01, -6.226650604782432226643360160478765847565862101045597180310490e-02, 2.321259638353531085028708104285994998671615563662858079262996e-01, 1.499851196187170199586403453788927307298226028262603028635758e-01, -1.417956859730596216710053144522330276392591055375830654519080e-01, -1.599125651582443618288533214523534937804208844386102639177693e-01, 8.563812155615105741612217814369165313487129645536001850276987e-02, 1.414147340733826800884683119379170594092606174915755283496153e-01, -5.658645863072738145681787657843320646815509410635114234947902e-02, -1.147311707107443752394144019458942779715665489230169950201022e-01, 4.309589543304764288137871223616030624246568683595408792078602e-02, 8.720439826203975011910714164154456762073786124233088471855868e-02, -3.660510340287429567372071039506772372567938710943432838908247e-02, -6.176620870841315993604736705613246241897497782373337911398117e-02, 3.198987753153780630818381136366859026137035450576631134176875e-02, 4.005498110511594820952087086241114309038577379366732959648548e-02, -2.689149388089451438550851767715967313417890393287236700072071e-02, -2.311413402054931680856913553585621248925303865540203357180768e-02, 2.090464525565524340215982365351342094670261491526831672682244e-02, 1.129049727868596484270081487761544232851115891449843967151657e-02, -1.470188206539868213708986402816605045648481224662435114088245e-02, -4.131306656031089274123231103326745723188134548520938157995702e-03, 9.214785032197180512031534870181734003522861645903894504302286e-03, 5.625715748403532005741565594881148757066703437214522101740941e-04, -5.071314509218348093935061417505663002006821323958752649640329e-03, 7.169821821064019257784165364894915621888541496773370435889585e-04, 2.400697781890973183892306914082592143984140550210130139535193e-03, -8.448626665537775009068937851465856973251363010924003314643612e-04, -9.424614077227377964015942271780098283910230639908018778588910e-04, 5.810759750532863662020321063678196633409555706981476723988312e-04, 2.817639250380670746018048967535608190123523180612961062603672e-04, -3.031020460726611993600629020329784682496477106470427787747855e-04, -4.555682696668420274688683005987764360677217149927938344795290e-05, 1.262043350166170705382346537131817701361522387904917335958705e-04, -1.155409103833717192628479047983460953381959342642374175822863e-05, -4.175141648540397797296325065775711309197411926289412468280801e-05, 1.334176149921350382547503457286060922218070031330137601427324e-05, 1.037359184045599795632258335010065103524959844966094870217687e-05, -6.456730428469619160379910439617575420986972394137121953806236e-06, -1.550844350118602575853380148525912999401292473185534395740371e-06, 2.149960269939665207789548199790770596890252405076394885606038e-06, -8.487087586072593071869805266089426629606479876982221840833098e-08, -5.187733738874144426008474683378542368066310000602823096009187e-07, 1.396377545508355481227961581059961184519872502493462010264633e-07, 8.400351046895965526933587176781279507953080669259318722910523e-08, -4.884757937459286762082185411608763964041010392101914854918157e-08, -5.424274800287298511126684174854414928447521710664476410973981e-09, 1.034704539274858480924046490952803937328239537222908159451039e-08, -1.436329487795135706854539856979275911183628476521636251660849e-09, -1.349197753983448821850381770889786301246741304307934955997111e-09, 5.261132557357598494535766638772624572100332209198979659077082e-10, 6.732336490189308685740626964182623159759767536724844030164551e-11, -8.278256522538134727330692938158991115335384611795874767521731e-11, 1.101692934599454551150832622160224231280195362919498540913658e-11, 6.291537317039508581580913620859140835852886308989584198166174e-12, -2.484789237563642857043361214502760723611468591833262675852242e-12, 2.626496504065252070488282876470525379851429538389481576454618e-14, 1.808661236274530582267084846343959377085922019067808145635263e-13, -4.249817819571463006966616371554206572863122562744916796556474e-14, -4.563397162127373109101691643047923747796563449194075621854491e-16, 2.045099676788988907802272564402310095398641092819367167252952e-15, -4.405307042483461342449027139838301611006835285455050155842865e-16, 4.304596839558790016251867477122791508849697688058169053134463e-17, -1.716152451088744188732404281737964277713026087224248235541071e-18}; static const TYPE CAT(sym2_, TYPE)[4] = { 0.48296291314469025, 0.83651630373746899, 0.22414386804185735, -0.12940952255092145 }; static const TYPE CAT(sym3_, TYPE)[6] = { 0.33267055295095688, 0.80689150931333875, 0.45987750211933132, -0.13501102001039084, -0.085441273882241486, 0.035226291882100656 }; static const TYPE CAT(sym4_, TYPE)[8] = { 0.032223100604042702, -0.012603967262037833, -0.099219543576847216, 0.29785779560527736, 0.80373875180591614, 0.49761866763201545, -0.02963552764599851, -0.075765714789273325 }; static const TYPE CAT(sym5_, TYPE)[10] = { 0.019538882735286728, -0.021101834024758855, -0.17532808990845047, 0.016602105764522319, 0.63397896345821192, 0.72340769040242059, 0.1993975339773936, -0.039134249302383094, 0.029519490925774643, 0.027333068345077982 }; static const TYPE CAT(sym6_, TYPE)[12] = { -0.007800708325034148, 0.0017677118642428036, 0.044724901770665779, -0.021060292512300564, -0.072637522786462516, 0.3379294217276218, 0.787641141030194, 0.49105594192674662, -0.048311742585632998, -0.11799011114819057, 0.0034907120842174702, 0.015404109327027373 }; static const TYPE CAT(sym7_, TYPE)[14] = { 0.010268176708511255, 0.0040102448715336634, -0.10780823770381774, -0.14004724044296152, 0.28862963175151463, 0.76776431700316405, 0.5361019170917628, 0.017441255086855827, -0.049552834937127255, 0.067892693501372697, 0.03051551316596357, -0.01263630340325193, -0.0010473848886829163, 0.0026818145682578781 }; static const TYPE CAT(sym8_, TYPE)[16] = { 0.0018899503327594609, -0.0003029205147213668, -0.014952258337048231, 0.0038087520138906151, 0.049137179673607506, -0.027219029917056003, -0.051945838107709037, 0.3644418948353314, 0.77718575170052351, 0.48135965125837221, -0.061273359067658524, -0.14329423835080971, 0.0076074873249176054, 0.031695087811492981, -0.00054213233179114812, -0.0033824159510061256 }; static const TYPE CAT(sym9_, TYPE)[18] = { 0.0010694900329086053, -0.00047315449868008311, -0.010264064027633142, 0.0088592674934004842, 0.06207778930288603, -0.018233770779395985, -0.19155083129728512, 0.035272488035271894, 0.61733844914093583, 0.717897082764412, 0.238760914607303, -0.054568958430834071, 0.00058346274612580684, 0.03022487885827568, -0.01152821020767923, -0.013271967781817119, 0.00061978088898558676, 0.0014009155259146807 }; static const TYPE CAT(sym10_, TYPE)[20] = { -0.00045932942100465878, 5.7036083618494284e-005, 0.0045931735853118284, -0.00080435893201654491, -0.02035493981231129, 0.0057649120335819086, 0.049994972077376687, -0.0319900568824278, -0.035536740473817552, 0.38382676106708546, 0.7695100370211071, 0.47169066693843925, -0.070880535783243853, -0.15949427888491757, 0.011609893903711381, 0.045927239231092203, -0.0014653825813050513, -0.0086412992770224222, 9.5632670722894754e-005, 0.00077015980911449011 }; static const TYPE CAT(sym11_, TYPE)[22] = { 0.00048926361026192387, 0.00011053509764272153, -0.0063896036664548919, -0.0020034719001093887, 0.043000190681552281, 0.035266759564466552, -0.14460234370531561, -0.2046547944958006, 0.23768990904924897, 0.73034354908839572, 0.57202297801008706, 0.097198394458909473, -0.022832651022562687, 0.069976799610734136, 0.0370374159788594, -0.024080841595864003, -0.0098579348287897942, 0.0065124956747714497, 0.00058835273539699145, -0.0017343662672978692, -3.8795655736158566e-005, 0.00017172195069934854 }; static const TYPE CAT(sym12_, TYPE)[24] = { -0.00017906658697508691, -1.8158078862617515e-005, 0.0023502976141834648, 0.00030764779631059454, -0.014589836449234145, -0.0026043910313322326, 0.057804179445505657, 0.01530174062247884, -0.17037069723886492, -0.07833262231634322, 0.46274103121927235, 0.76347909778365719, 0.39888597239022, -0.022162306170337816, -0.035848830736954392, 0.049179318299660837, 0.0075537806116804775, -0.024220722675013445, -0.0014089092443297553, 0.007414965517654251, 0.00018021409008538188, -0.0013497557555715387, -1.1353928041541452e-005, 0.00011196719424656033 }; static const TYPE CAT(sym13_, TYPE)[26] = { 7.0429866906944016e-005, 3.6905373423196241e-005, -0.0007213643851362283, 0.00041326119884196064, 0.0056748537601224395, -0.0014924472742598532, -0.020749686325515677, 0.017618296880653084, 0.092926030899137119, 0.0088197576704205465, -0.14049009311363403, 0.11023022302137217, 0.64456438390118564, 0.69573915056149638, 0.19770481877117801, -0.12436246075153011, -0.059750627717943698, 0.013862497435849205, -0.017211642726299048, -0.02021676813338983, 0.0052963597387250252, 0.0075262253899680996, -0.00017094285853022211, -0.0011360634389281183, -3.5738623648689009e-005, 6.8203252630753188e-005 }; static const TYPE CAT(sym14_, TYPE)[28] = { 4.4618977991475265e-005, 1.9329016965523917e-005, -0.00060576018246643346, -7.3214213567023991e-005, 0.0045326774719456481, 0.0010131419871842082, -0.019439314263626713, -0.0023650488367403851, 0.069827616361807551, 0.025898587531046669, -0.15999741114652205, -0.058111823317717831, 0.47533576263420663, 0.75997624196109093, 0.39320152196208885, -0.035318112114979733, -0.057634498351326995, 0.037433088362853452, 0.0042805204990193782, -0.029196217764038187, -0.0027537747912240711, 0.010037693717672269, 0.00036647657366011829, -0.002579441725933078, -6.2865424814776362e-005, 0.00039843567297594335, 1.1210865808890361e-005, -2.5879090265397886e-005 }; static const TYPE CAT(sym15_, TYPE)[30] = { 2.8660708525318081e-005, 2.1717890150778919e-005, -0.00040216853760293483, -0.00010815440168545525, 0.003481028737064895, 0.0015261382781819983, -0.017171252781638731, -0.0087447888864779517, 0.067969829044879179, 0.068393310060480245, -0.13405629845625389, -0.1966263587662373, 0.2439627054321663, 0.72184302963618119, 0.57864041521503451, 0.11153369514261872, -0.04108266663538248, 0.040735479696810677, 0.021937642719753955, -0.038876716876833493, -0.019405011430934468, 0.010079977087905669, 0.003423450736351241, -0.0035901654473726417, -0.00026731644647180568, 0.0010705672194623959, 5.5122547855586653e-005, -0.00016066186637495343, -7.3596667989194696e-006, 9.7124197379633478e-006 }; static const TYPE CAT(sym16_, TYPE)[32] = { -1.0797982104319795e-005, -5.3964831793152419e-006, 0.00016545679579108483, 3.656592483348223e-005, -0.0013387206066921965, -0.00022211647621176323, 0.0069377611308027096, 0.001359844742484172, -0.024952758046290123, -0.0035102750683740089, 0.078037852903419913, 0.03072113906330156, -0.15959219218520598, -0.054040601387606135, 0.47534280601152273, 0.75652498787569711, 0.39712293362064416, -0.034574228416972504, -0.066983049070217779, 0.032333091610663785, 0.0048692744049046071, -0.031051202843553064, -0.0031265171722710075, 0.012666731659857348, 0.00071821197883178923, -0.0038809122526038786, -0.0001084456223089688, 0.00085235471080470952, 2.8078582128442894e-005, -0.00010943147929529757, -3.1135564076219692e-006, 6.2300067012207606e-006 }; static const TYPE CAT(sym17_, TYPE)[34] = { 3.7912531943321266e-006, -2.4527163425832999e-006, -7.6071244056051285e-005, 2.5207933140828779e-005, 0.0007198270642148971, 5.8400428694052584e-005, -0.0039323252797979023, -0.0019054076898526659, 0.012396988366648726, 0.0099529825235095976, -0.01803889724191924, -0.0072616347509287674, 0.016158808725919346, -0.086070874720733381, -0.15507600534974825, 0.18053958458111286, 0.68148899534492502, 0.65071662920454565, 0.14239835041467819, -0.11856693261143636, 0.0172711782105185, 0.10475461484223211, 0.017903952214341119, -0.033291383492359328, -0.0048192128031761478, 0.010482366933031529, 0.0008567700701915741, -0.0027416759756816018, -0.00013864230268045499, 0.0004759963802638669, -1.3506383399901165e-005, -6.2937025975541919e-005, 2.7801266938414138e-006, 4.297343327345983e-006 }; static const TYPE CAT(sym18_, TYPE)[36] = { -1.5131530692371587e-006, 7.8472980558317646e-007, 2.9557437620930811e-005, -9.858816030140058e-006, -0.00026583011024241041, 4.7416145183736671e-005, 0.0014280863270832796, -0.00018877623940755607, -0.0052397896830266083, 0.0010877847895956929, 0.015012356344250213, -0.0032607442000749834, -0.031712684731814537, 0.0062779445543116943, 0.028529597039037808, -0.073799207290607169, -0.032480573290138676, 0.40148386057061813, 0.75362914010179283, 0.47396905989393956, -0.052029158983952786, -0.15993814866932407, 0.033995667103947358, 0.084219929970386548, -0.0050770851607570529, -0.030325091089369604, 0.0016429863972782159, 0.0095021643909623654, -0.00041152110923597756, -0.0023138718145060992, 7.0212734590362685e-005, 0.00039616840638254753, -1.4020992577726755e-005, -4.5246757874949856e-005, 1.354915761832114e-006, 2.6126125564836423e-006 }; static const TYPE CAT(sym19_, TYPE)[38] = { 1.7509367995348687e-006, 2.0623170632395688e-006, -2.8151138661550245e-005, -1.6821387029373716e-005, 0.00027621877685734072, 0.00012930767650701415, -0.0017049602611649971, -0.00061792232779831076, 0.0082622369555282547, 0.0043193518748949689, -0.027709896931311252, -0.016908234861345205, 0.084072676279245043, 0.093630843415897141, -0.11624173010739675, -0.17659686625203097, 0.25826616923728363, 0.71955552571639425, 0.57814494533860505, 0.10902582508127781, -0.067525058040294086, 0.0089545911730436242, 0.0070155738571741596, -0.046635983534938946, -0.022651993378245951, 0.015797439295674631, 0.0079684383206133063, -0.005122205002583014, -0.0011607032572062486, 0.0021214250281823303, 0.00015915804768084938, -0.00063576451500433403, -4.6120396002105868e-005, 0.0001155392333357879, 8.8733121737292863e-006, -1.1880518269823984e-005, -6.4636513033459633e-007, 5.4877327682158382e-007 }; static const TYPE CAT(sym20_, TYPE)[40] = { -6.3291290447763946e-007, -3.2567026420174407e-007, 1.22872527779612e-005, 4.5254222091516362e-006, -0.00011739133516291466, -2.6615550335516086e-005, 0.00074761085978205719, 0.00012544091723067259, -0.0034716478028440734, -0.0006111263857992088, 0.012157040948785737, 0.0019385970672402002, -0.035373336756604236, -0.0068437019650692274, 0.088919668028199561, 0.036250951653933078, -0.16057829841525254, -0.051088342921067398, 0.47199147510148703, 0.75116272842273002, 0.40583144434845059, -0.029819368880333728, -0.078994344928398158, 0.025579349509413946, 0.0081232283560096815, -0.031629437144957966, -0.0033138573836233591, 0.017004049023390339, 0.0014230873594621453, -0.0066065857990888609, -0.0003052628317957281, 0.0020889947081901982, 7.2159911880740349e-005, -0.00049473109156726548, -1.928412300645204e-005, 7.992967835772481e-005, 3.0256660627369661e-006, -7.919361411976999e-006, -1.9015675890554106e-007, 3.695537474835221e-007 }; // The coif wavelets have to be multiplied by sqrt(2) static const TYPE CAT(sqrt2_, TYPE) = 1.4142135623730951454746218587388284504413604736328125; static const TYPE CAT(coif1_, TYPE)[6] = { -5.142972847076845595317549230122688830344559947132656813651045e-02, 2.389297284707684559531754923012268883034455994713265681365104e-01, 6.028594569415369119063509846024537766068911989426531362730209e-01, 2.721405430584630880936490153975462233931088010573468637269790e-01, -5.142972847076845595317549230122688830344559947132656813651045e-02, -1.107027152923154404682450769877311169655440052867343186348954e-02 }; static const TYPE CAT(coif2_, TYPE)[12] = { 1.158759673871686817889714882853120395708315073355502818875931e-02, -2.932013798346856448679594524397843054053420947418409889774786e-02, -4.763959031100813225872995081511549408622753909592460525840745e-02, 2.730210465347666137982239328923516270034828327990699588033501e-01, 5.746823938568638472459483149751499367740786490481481391460366e-01, 2.948671936956191896750637208703777973914107635455611537640778e-01, -5.408560709171142997443672832006888537570221990444706777525838e-02, -4.202648046077160694657530752545884878978719268926222513485613e-02, 1.674441016327950635146257083249391698866289538037299820224006e-02, 3.967883612962012109043447090269950094081810916481648252817197e-03, -1.289203356140659543141355500990678257894936161704492503370186e-03, -5.095053991076441489598480835620951586540050976664367876412655e-04 }; static const TYPE CAT(coif3_, TYPE)[18] = { -2.682418670922068664584689955153722375535836177157637134187840e-03, 5.503126707831385107969640263617469178794666057252906037981936e-03, 1.658356047917034608134280439996549525220639437145367606178002e-02, -4.650776447872697640390293095170192691113917841041002855534619e-02, -4.322076356021191118175840907244577856782537221435748296465882e-02, 2.865033352736474630249006862976158896891076238443844211133873e-01, 5.612852568703300445990941995240077241406247774064453800050914e-01, 3.029835717728241602862575774374668529867757043461413348549577e-01, -5.077014075488886159516471867138370972545857441670871832472707e-02, -5.819625076158553022607041679522801089624825903982541419721721e-02, 2.443409432116695639462954438418928805487699080947974989338820e-02, 1.122924096203786563399489540091488781245346096838814728167341e-02, -6.369601011048822977293753932627342482077585617391852852955559e-03, -1.820458915566242322836631665832145136570132777862391313328351e-03, 7.902051009575939937150950543290226440287715441826917281929124e-04, 3.296651737931830308416338897758022998655744276957481989605186e-04, -5.019277455327664998007173088097694083956570594580641192332170e-05, -2.446573425530813115445387662881902303945941576472342106918209e-05 }; static const TYPE CAT(coif4_, TYPE)[24] = { 6.309612114309468490753696608619526520153127603444406835368201e-04, -1.152225143769973488683007937016166047881572156705066038094891e-03, -5.194525163470323267558201363327294331811309729430512113592118e-03, 1.136246148326482276463392678363118465908960082105224676102131e-02, 1.886723856956305960822813160712701905823879297781452350370094e-02, -5.746424190192718517290527411385172124443396690932404284859269e-02, -3.965265296244913762718094206756579981738035770770645437919302e-02, 2.936674050161006858761278962798582650835466243678172528509866e-01, 5.531264550395492870333469741987846570947502710783248169642137e-01, 3.071573096678856987248881030393884808414165269795297009902001e-01, -4.711273752389572084912399351781012121935994396763702238263689e-02, -6.803811467802056988332974920928626798429778679560269769187728e-02, 2.781363695846951303169163645831936314699164412528991864702607e-02, 1.773583142270308388403079552822372238681544967313003044695583e-02, -1.075631615508724933047071603601897536695959225169888787867102e-02, -4.001010844950535391911552472397083276670126595827549403173754e-03, 2.652664913530499860820143301690017184933302935238430721089152e-03, 8.955939276952843603555618778866181384528643960440369133096025e-04, -4.165001950941708741516836418852536615951250588002878691463468e-04, -1.838296167136253805617482342622910940008368723403836355183423e-04, 4.408022661597206973006038672236031501663774161685451815597956e-05, 2.208284691230832960893331999804142845136324572860276715790883e-05, -2.304919162676504406778986897925054839632903355820414483306851e-06, -1.262179179994622253884862172782890488140153502131112374520603e-06 }; static const TYPE CAT(coif5_, TYPE)[30] = { -1.499645228345950331670593167919531667975440598691604525531231e-04, 2.535527523580334712936363872191554706055603482812691726895588e-04, 1.540286725995222360335148244676269541414659303531250711822333e-03, -2.941078164035693185044038586065593320891475311414770624555173e-03, -7.164112349410053294382279572472252500899544810929605832362178e-03, 1.655218330649288840540841623080651353621667424921282557975513e-02, 1.991901719798432056056857854066125809443504706772520641876273e-02, -6.499837825472324963374262221660858232544804226063450042795603e-02, -3.680255347446873527191823500872992242220223547780834450868002e-02, 2.980959014587191795511466861338063554509597132272839414668911e-01, 5.475082713540367154128337935687830970431964302909253422329131e-01, 3.097002590784203529311533316221254677074498876376965941549923e-01, -4.386731482823615640442730013366750193381707273908757638050452e-02, -7.464442013283971243472663968192859562973186442054433655531762e-02, 2.919469277528073666095772398605275751022315529465178441510318e-02, 2.310457227706684192610065243663928370022983285246219996141160e-02, -1.397129268638200558584119246355879336305763752871371182932059e-02, -6.476749751505861835547590642967453082384538848552165075614441e-03, 4.781116799130657606400088024549264921093190305150784065791191e-03, 1.719383484385504023022397097446276782318002683055773803854075e-03, -1.174947934413537690027670037110105795928147523549002426409332e-03, -4.508222400696236312231932151038336110220594834213702970043431e-04, 2.134457975086291667348984871136041914777578046177470626552867e-04, 9.924691139873533169989496559631669037970741600337089424730635e-05, -2.914684388622130824599478843558087403539428940986384077972155e-05, -1.504031798197685905639227292876711236513927746903476131955063e-05, 2.616809660013118152124234488302931243021794024318439103773996e-06, 1.457502921355163070577152619048168436286350537937563166257584e-06, -1.148199649902979726237655584441763456854312591680755421569962e-07, -6.791060677322355511541065559242475254516249773485524025251102e-08 }; static const TYPE CAT(coif6_, TYPE)[36] = { 3.590369176713147297619137585162985487882983106558813483919654e-05, -5.739587600308579302553116112640931312834124316491419262693257e-05, -4.416681189774217015420887950711066328841194295133755225305844e-04, 7.718952365964601416123598337617069164684563206275891099236221e-04, 2.502464949920583984721024494943552146200854870661622211002418e-03, -4.970540926794084916072709193212250530229884674851059194676904e-03, -8.649031599946572670088689962363342931064457587276457635862837e-03, 2.096272704497140779792663941456374769474253019820508756967019e-02, 2.035485665853858604541136567848434116598037957308057353920592e-02, -7.047945564795552885905434147081164203757922879137146339823510e-02, -3.448140611368923447131875491841937617457159299006945091335206e-02, 3.010998878403483951866118786441379902683440623823004392113350e-01, 5.433431541205752976643226361323847389491208513427704619816300e-01, 3.114106686884303879320332890564758567306967030720816157048784e-01, -4.108920994584877203854246950993119698209208008049962179892675e-02, -7.938037857340304740867638342147592451705918503253249849143539e-02, 2.959417996664270964779250587338231669479158250990737014414477e-02, 2.749324945396978289421721884832761949259069726774638450310483e-02, -1.622820901345195945858655272139343256940218447777075044002063e-02, -8.944948800734973559175903045029991278019908264185511730556261e-03, 6.781924902353432370456282863377674743820538634665380239602198e-03, 2.727776322637165251200756406544564359327985321401403409245472e-03, -2.173603470504406274543289770274934991733554729244606459300157e-03, -8.184301467772110627838702680469158860544118224504527036324346e-04, 5.443695006423825218320707989235387077885356717678678221237514e-04, 2.299669354496271337796680394777537358902688275513954507765924e-04, -1.093025858275705388257100771765109469841731265349469854748449e-04, -5.323102894235956524250869703703947941287269765076967124254140e-05, 1.749138884456354646795465632327170008020712055425505484223307e-05, 9.291277996211799255766657547295162218792966588358292566578482e-06, -2.067852860108562040355056354764683583070734740977224663511355e-06, -1.173528057754959701015486666538811237336231287996985858558749e-06, 1.595231380068613024221709499993144713297922814623646799204434e-07, 9.548236102970597211555688470325396069418862428946106509526618e-08, -6.001316648399794543233636397364817876191104394511939069108879e-09, -3.754092421718877429714314525761519021787631896344301745834088e-09 }; static const TYPE CAT(coif7_, TYPE)[42] = { -8.642436297638419945610948131417508321449359042880382837616795e-06, 1.323092600668737320653618189565188176193563004626002735569108e-05, 1.238159302411191700694316904823586790698547751438666389964909e-04, -2.030827471878621660379666662315021490193874834607822591973651e-04, -8.268301617880235510290843066205662542616488856061409195612586e-04, 1.489005690114437686460337716452079526238674405271430102926760e-03, 3.414934412450460679215304700817226231104673750197184931650456e-03, -7.027860242269773782347401141338545341343547479199220829531083e-03, -9.759879698174635975799287457121964575077621800626382384905922e-03, 2.468545489421116360102434627504896094772630565645374342185378e-02, 2.046157861402903980087467083352777920759194756736646791948754e-02, -7.463948234553393791576174267216063661913646014250615692345955e-02, -3.255052720695225444262327386510843067531614239181091226317606e-02, 3.032701839810768064176188260727440638632962820833222425246103e-01, 5.400990244606528900971955967395441757408783874674606654776292e-01, 3.126383971738483006163784309975347847899010543829381537178238e-01, -3.871497424779051301839419764560067767205245057921330411662831e-02, -8.293907947422769053048964127950429060647696494556080282464817e-02, 2.949014117259198370970425259971349135137714379653805589390139e-02, 3.110778126696628039496809790347026077516532785378620954115443e-02, -1.778674610242698080195492177636195380628008680534327644027865e-02, -1.127612352465961805417517163375322309389029593356595515710364e-02, 8.522290099960163136478259451975210336102817817562221392657719e-03, 3.840520687530513060929693850444023135936063807811968697808645e-03, -3.265307484878191553686608663193259573061021023330761877609170e-03, -1.273879229605184944648413513123685328329522201334094650099164e-03, 1.014515696091098223010746848382433126910091720031207326903328e-03, 4.097679895401914370060120309164154094898913488243766819496226e-04, -2.609696573094586622328219462237882874111293043254082981395787e-04, -1.186646887145157446962850804940522053646675640116219334763007e-04, 5.636383526557468584243108976415315613118268111676116113791335e-05, 2.858866828380331402146557751682881290895951013741692838961144e-05, -1.006611544197303027244467426357681984010120261232862556289963e-05, -5.495099010556417822017774697665452170235386110376505191968507e-06, 1.415682965517504934011008339473818198664994789606034408294717e-06, 8.188133233610314217903522752009348948778608588070621911086501e-07, -1.463230575247395655425908281663831406004216665367756779712751e-07, -8.874835827294529368648499409085591173735229589713890206258021e-08, 9.853606453775557692052504971290731996468795418172901924493247e-09, 6.220130833773100584817683046405291459615130548784852993590582e-09, -3.237371065873786031415974713833345092654235228652968924822315e-10, -2.114649662048637955296836248309680136665362492693075345297952e-10 }; static const TYPE CAT(coif8_, TYPE)[48] = { 2.089031388199542217649735304633077946477575993553137874997499e-06, -3.088829676466960594403785936495123295795735325141186563064826e-06, -3.415065199420814308581377665735877442810613593316182887801764e-05, 5.336794978475752885866749586223668039582360880077534324830961e-05, 2.625452092146307108027768728326461036005400582791844219135485e-04, -4.409238208772274245312366838988697089610792049225817119782188e-04, -1.260955244697859087126122671343741939804055800993471565939717e-03, 2.334035748516809401796699851512493931521487402803856088184519e-03, 4.238998515964122916906367014472885263525332429616686168386780e-03, -9.010216682788485374574179959374952745626145790175446525921665e-03, -1.059137210972160452062877264732854070957273640727973500291258e-02, 2.784023497265315551670806338623371354680279388669611745037381e-02, 2.038491393825460625255433218588522954822776999829791972608492e-02, -7.790193780817760648856650048481215968473342802126754335290911e-02, -3.091398960464199635355286295557605183007519885588326376800431e-02, 3.049113846932028296232414935045248095543039057351616871735909e-01, 5.374812703269839615372906413514102630694929400948606989937313e-01, 3.135612340595966380418077448086007870950549040456326333016594e-01, -3.667108316665038246204915903550010028035229188747930760164446e-02, -8.570923901203457457230067054960180625904745972345544735005669e-02, 2.912276318941918093502808667205448538832711003842651923199100e-02, 3.411957880301561499047582538207723820508873324357307771206279e-02, -1.884914078883376071043287013172570992844993887415459298291641e-02, -1.342459526650064517082192966318056581890805569912583356614454e-02, 9.982558825082415904373108133470460186315362848702191453854950e-03, 4.996294194193990739772329108378853011245087219628720892888460e-03, -4.353415716030435524873558659254500246467092155734985247834619e-03, -1.798882274878169625580021134613003566863070625422298385086326e-03, 1.580842866685999532270584538283553531040029730619088591607990e-03, 6.341164354094166487421798386547881496331208497274921165613427e-04, -4.859037288504776883185923185674204816335250660367189593401172e-04, -2.105615022500261821665621601578029342187313061309595147668812e-04, 1.284762650553455535249206074613997094898698286922036784576671e-04, 6.190332439714985153834932259246488292329875513962818749340013e-05, -2.932710247776567240870160300128192249260665410455632214571613e-05, -1.541634258578732960762233596163970199686495285352470015267722e-05, 5.679130231196248852811714735791066544261806333156564637706958e-06, 3.179814253819903951090335509892218398493686680727385157906016e-06, -9.018823843695175549580166675906964282301328192772638509290562e-07, -5.313922705051620291263120753790527283196870682052587236468039e-07, 1.123841380424949688574412705744289982140965409566073018148117e-07, 6.910143395859795983361485345968765950977315740669289349714194e-08, -1.028133863272738862101812736488937814136249072478179304322756e-08, -6.555732343557023119114074649273108865362704549509543350446188e-09, 6.130612315575721972473587395696526436552798806104270539014282e-10, 4.033910072490666571003953018881489938766267669840899254802129e-10, -1.785744077894230068079099924407862882873224386100989050429950e-11, -1.207731024612356156550871498168833597517735826635815624658975e-11 }; static const TYPE CAT(coif9_, TYPE)[54] = { -5.066363823597422392806056574334164019913184490360944548316318e-07, 7.278391993125473027029583168671424388748658656372670262448419e-07, 9.304737272738569335426840667700605845237073216830127313873309e-06, -1.399166643491873035927397151326087921115765448962913723958371e-05, -8.091702401289310224621206748421921014290936300934460833068239e-05, 1.288948603756442891955388200793566964011433484841725529675464e-04, 4.429833292564910878782752821721584532350914860569614883397891e-04, -7.604638375385009047720991576053046852032649468701121074994496e-04, -1.712076406330546261864476465012314688415071394908910205115863e-03, 3.250609771558499559986242897495101339387218580957593472948506e-03, 4.965544559205420047336110923957506351279457718709199656899118e-03, -1.087293322510375296786682178855708097994536728252120886318829e-02, -1.121487186714498120022344911296954171366809171629939577546416e-02, 3.053409241514424830665032185876170313664500941851818086027391e-02, 2.020392698610770380447570514810463753302939216061746963067828e-02, -8.052780090649459945830240285306098489931000767407230573519424e-02, -2.950481547909572113527928936790826747949471856175409844500779e-02, 3.061961521402196297060170641420108731472017553153312985302650e-01, 5.353120232520133713115706737209774227378476257207779817606799e-01, 3.142791902169524902984239510600746503211251765067043225338625e-01, -3.489491800009343033063601189229669581774254383120018514658627e-02, -8.792560957387142697108395104950963599558244039650648988222216e-02, 2.861927542811334614253853950282153483993260752259557922334958e-02, 3.665967931975593019562623910949450882200844831012366323592970e-02, -1.955945002554213167931774103463762372167104971118382178710488e-02, -1.538279230927754406350075858557526842247910581873511998413085e-02, 1.118552122310349928798438523781104471338643824158961043502858e-02, 6.153778805250375760539535917130018322120240439861388830004320e-03, -5.383941047406102653501165062580070636876629329655105558566173e-03, -2.374234426766700376811893833905319565227030464607844605997432e-03, 2.201384480544939153490212385667343932208692420769790727070706e-03, 8.978070631742198872611262172632408686645841161925814232909679e-04, -7.748091639808001244045755147010278445955718484470643940080615e-04, -3.271988742130504187500457463514277973862371006416232573352337e-04, 2.382340816470993068532708118584131071285832153866665367058914e-04, 1.098939547757907591024137319089517624469653929668339354098746e-04, -6.459841534412000641464605011582059745094736001136249665670393e-05, -3.262384353548798509572707535297893969508001470867657290979350e-05, 1.539823757133791368834354345267796411124232848770592546980638e-05, 8.354049038925734685227308673812966075026848925201707946720101e-06, -3.173574058801678589943416130953277710277471261605337088707621e-06, -1.818949869332426905097083388417804018910760658657704860329107e-06, 5.517186750972799125927280958782447793255276643806997727626076e-07, 3.308966123618421063439933908570170555222439095610467058151640e-07, -7.846530733490392810972396794430929632826504340137889923489193e-08, -4.890737315241025544677728915264690823141541323355311455146920e-08, 8.750627874791451325430828577550291173132606932489491650978024e-09, 5.638473635810843029376963642806188780738425364694324846641801e-09, -7.167429275081674956250392820907257304489315331347262926580420e-10, -4.754207280832321963819557935464843642627576884386666887645887e-10, 3.830468826216721628160165172614737318957786647293037946018968e-11, 2.606522688312826422093936510197703125780060151935658173250167e-11, -1.001456631869681899515352955030379117902110811720682559024841e-12, -6.970967839322873084383232882845795920838117679540306239345441e-13 }; static const TYPE CAT(coif10_, TYPE)[60] = { 1.232039860648044172279299405224082875252688628145893763395790e-07, -1.727295600804314762711191670132331791341141012661151334481794e-07, -2.511081517709769407961552319066117068245327429766666733928049e-06, 3.658544046042552874351627900962366978528997860123373895778793e-06, 2.436668276348995654567141715803151760606013118025710110377401e-05, -3.722543982033220274394394471108112000512191070987312940916252e-05, -1.497469279949762172542844959871018020917187701428092381975699e-04, 2.428593780445920993243261353647084659003272232610773863151794e-04, 6.540313182060373357098490399551418144208877502266803289923939e-04, -1.146063191568871560182378726825944083414392177714466101235875e-03, -2.159498802066973425125604747126061872540389369353813104148470e-03, 4.198356898750693446005403941056755251392636143022056890090725e-03, 5.598275450294209413911534747591226887261098750954757306041384e-03, -1.260095805571421166223679712763560488266840720081803933722030e-02, -1.168247265355164122837179014169010489974316491167398434017964e-02, 3.285412351493396730558710291243592888780292689130164184828513e-02, 1.996368405025267515773975348713442321055648689376329104127913e-02, -8.268628841732119164746367518414478774806468603519900610269584e-02, -2.827515877359611439071634624194631537427006948348240041241060e-02, 3.072295399526691328155262418641709088201200529352508961256835e-01, 5.334767884906935739862412544069281108017755758434730066259645e-01, 3.148528691610333337017175073118974445216093370484743945217914e-01, -3.333673484145423901496513466029874130150784824285513273324710e-02, -8.973828824876461620729131462736908322846203417126514244115363e-02, 2.804975877403786393498709022507676088711706121355859697479949e-02, 3.882650078944377967276663169043218713908993336081868910959595e-02, -2.001823819093022389853947550669865247947997489243455484715571e-02, -1.715959267288721579873571730849821259719260958329570391883719e-02, 1.216641740406415476398704875951061876471553491032831272757748e-02, 7.287002668222967317616933795891484580054714258414483676611073e-03, -6.330873585683910945116572500327893678512281593087324528956428e-03, -2.982656931766638403179439090660944850553111019029093184942893e-03, 2.842726797184870190904247769487845255184476983143715832751782e-03, 1.194989100375986838359310533134452087293580850721847113981799e-03, -1.113592929026716220582486976294877082540073971334172516478939e-03, -4.665959023435428623124863826904417915798780109069842899171733e-04, 3.854915448171689185378413676726041277985033697385268395398737e-04, 1.722736489049248280735630694200218710841097211364504157426810e-04, -1.192039440276314665828270011182318354192262701354872993867613e-04, -5.799804551608036312810594836126727444524814767625101691871260e-05, 3.303955116680311017462087431863046046226866796792060186027460e-05, 1.735375106985050789058251093166552848987592399630060085283037e-05, -8.153689583347474492592925111165323709051679031024702923650800e-06, -4.549758014112714450559595397423919633198378184124113284457878e-06, 1.765789027517910443710091424096930382691903616281733579514694e-06, 1.034104799224371158938634470768393243015388383126290286799001e-06, -3.293437798170512614804826256037338836342628817269828495710584e-07, -2.008825017273243555706624872035287742407494975566457013532182e-07, 5.172869892752758054467150354777867503503057315845912340980461e-08, 3.267471887025676044777185234904542674259187212800749921513620e-08, -6.644210603985367626472026676249006537350458801953377329083388e-09, -4.326722848192605397244652678298064482622875881609332553562911e-09, 6.694767246505386091091135023442214060965867621406459703646360e-10, 4.478193476940001390457010880530025539995676698350272513506529e-10, -4.958883523601264332798684165341380344606385498242825617652400e-11, -3.396977896617646756144544675014526730130390520604930211664642e-11, 2.399541927897950965447863495074910322552410081226759270966602e-12, 1.679108441896732974456456195021048198285552771033686283521003e-12, -5.688326582012783070559328035350356616163807538811872116072541e-14, -4.057351322008929507004790032757210978914475486123608161502457e-14 }; static const TYPE CAT(coif11_, TYPE)[66] = { -3.002841270578181341151286551992204393218350582050331595402947e-08, 4.122272295217427667266356780879156258114498741519631516920331e-08, 6.724990810124306151562398023851821394904913501570357570065506e-07, -9.541360761072246280269422180608056185383175100955611359233360e-07, -7.202532561401011173077639437360684947826378373817567768549254e-06, 1.063453162485789261522879856606560854907350313528134680849924e-05, 4.909272375475312318494348591512780526373439988508822238418822e-05, -7.613184050961339338779773068101736230733664198546980476770618e-05, -2.390784892821873979161511417107775995428809136314600188678204e-04, 3.943679383279311167583246559267867071442290440944189999981643e-04, 8.853493370435959653823385085809947651235906281219659248568656e-04, -1.581686514051756535736270395427784669332587895176156014356356e-03, -2.590742746810224935563114329456904019725483278674143464295211e-03, 5.149870818465970012295826228755714553228583889769273657074563e-03, 6.145845672897527026066671647152239861924038000733917998375367e-03, -1.419393259281191647250120633508339618223543447429480888885451e-02, -1.203207413449444640173778009728050814154121296076212013667261e-02, 3.486923068039100484429764121043168480751638068774959794674373e-02, 1.969083876878412756398286849757105734674338626918970666727437e-02, -8.449176235282616008524865397153001199569198030863676330987291e-02, -2.718999570426944985720147291173682797300682913513030026037261e-02, 3.080790765578655262603080397883700945436205022547475195838858e-01, 5.318981263183423043747894675482113686160804211740980090048888e-01, 3.153211471627422880186647707469009438784368258990685746892257e-01, -3.195766007061928848761664009258043321006644364041143491101353e-02, -9.124769812610534134560255473252823728312230005712995741316249e-02, 2.745384767698916118757918507086581985709771313695467894960792e-02, 4.069416828919323054368101934164054080633716017333800953161065e-02, -2.029580028320762422710091483209306643651315777764043153811346e-02, -1.877019961372162622019431440913198179510661354819964912645659e-02, 1.296101510005597271938818874849814161448679262503765364267420e-02, 8.380611488139723458203988762791929393262625838897962724368728e-03, -7.184830591966413369120495146871921423473823635538498945128881e-03, -3.609859908793898337842135309705990038242466823111355909651691e-03, 3.480855644490575075872348257576088455972056599653664736521251e-03, 1.519587122349825377958385405834371021723021014013798688930949e-03, -1.487476950041717485556524898256248562236771186568035610613046e-03, -6.266221323526552965740711288191177473318091288369663188353385e-04, 5.669194750141824007727306877180277155664136228075876060283768e-04, 2.483548169561553353815465009266736653140504966736322870003302e-04, -1.947562130464613262021359493483333444690328898219310892360572e-04, -9.182970970440133704016563635061723131880458403925476794220964e-05, 6.068684153958316426511545635539425250648039719186543457181453e-05, 3.088900022390199858477343797815906237906306891829977141838519e-05, -1.713715146668224571508596341585374794778243270230714316209873e-05, -9.308177549019247529116617185853630140339620355105237169582950e-06, 4.350944607244218897315593155029012286145084684860699651446177e-06, 2.489826198091695152209251895295085602387717821947484457226637e-06, -9.810226131982706356161587985205307909654994261025367440308819e-07, -5.860477917929613862778466907321520994203794368308376828863000e-07, 1.935841542281693216091905456706113598339749921662496254592563e-07, 1.199713894157469549665332933845486904444785619477457333399722e-07, -3.286315290852867745345772422742964814900623793534583508718160e-08, -2.102733655956564692974301994118024161699559390143901211493212e-08, 4.697313377266824850774441291113868308618121213665395500265262e-09, 3.091127346541495169376181275469205804231142302008934448079057e-09, -5.492931291038498819123339772152269159856609319161416280911575e-10, -3.705832674015332129353734352375876066802108394411578196121359e-10, 5.043003455436262175385618694799102815016439527671656113021805e-11, 3.478819684783597645372027295624442362976569795450758846730982e-11, -3.407139658961008818238265022607619145960800136177153397899540e-12, -2.397817050423233350570935216927526718398777501751418933159848e-12, 1.505627237721835119751916336971964703936303188134672123458877e-13, 1.078921592982513510792367677790040203074764526102391850430293e-13, -3.263876236830110071269528317803593334490309684938793753165837e-15, -2.377548488823423543125139291778920077224497814021891145988281e-15, }; static const TYPE CAT(coif12_, TYPE)[72] = { 7.332768095940030936479170284005726526900547838823690875511772e-09, -9.882788960094173321966534093367099204293628590516819427395258e-09, -1.789770690933674811780047200109598433010386971973430500672055e-07, 2.482235718295242398333562594286195512316082783324858732252918e-07, 2.096862898770904613564680054212556937787154121601629543533841e-06, -3.008997523302885197296541933722942006923516241629763269568385e-06, -1.569727511606401439531655092040058072751445499110659438977086e-05, 2.347282446659006948884988502182500910534796840878776320306027e-05, 8.432620671960839513456175441990492843161437159914478159180496e-05, -1.326465700910231806666155456982630828426491024439193157580022e-04, -3.461069031961523260598540665989975463806418435597964924450827e-04, 5.801724592109383434087721189210231779950668973412340708531782e-04, 1.128329952931538448642997807830809340563912699376148776100497e-03, -2.052978207989856468257756671236218003175082899217794093393105e-03, -2.998854718805581165102352821152213608341151163107294684246684e-03, 6.087234661002692098937246236052456417362244403536977448648695e-03, 6.618258248500649305698119745808151708404790949797235636697129e-03, -1.565844764466259880161945578291943699894979290174981301878469e-02, -1.229143532595011743051583354556862863433008454113067034110364e-02, 3.663359030520896940491446552702346213307676159344592871561174e-02, 1.940158311172772932244832520273815443263367988550797208188773e-02, -8.602421369693663560157681223178103065887873009243441444273671e-02, -2.622309610147498279896640360042796723325043337619084753451538e-02, 3.087901191936800440665016928578559620370136549385877375418705e-01, 5.305215546028922252760737677862501004955798466743925981589890e-01, 3.157101125097144187884255713018906584467729236429617965600542e-01, -3.072728270411850832025519617026920233823691270616686168610683e-02, -9.252355517407954901591096183036942267909813631619741203079509e-02, 2.685426980489526041311526911968158600872135457665305597171601e-02, 4.231906584194910461336004572125137067789978502941750699346161e-02, -2.044171277278771763990740324636394218858904394719947562326197e-02, -2.023145788215137568397333973747514178822985181848891022548418e-02, 1.360136074289957261858358098198061002684141161420690992513613e-02, 9.426267566785124441978318969535742805562416304113067761168412e-03, -7.945708281838580982329878679291156067815423974682242221896984e-03, -4.244616137562462768873148640133872748101997290450405726506771e-03, 4.099701294107222470709340142349077619300436310693220618061200e-03, 1.865723923369076273507077887878603520484228647302554964863350e-03, -1.883095146836284131126558963690882906898471660722337699052360e-03, -8.050306441934266570411103136671969129999167330943811990532568e-04, 7.774244768363498320173652454360791629397769478205798411568457e-04, 3.372847962851042846971724663631080138529114657505401824166820e-04, -2.913208318185371820345028586920081498099751816901944041981459e-04, -1.340525559954698716569234001877227886256687091468901002407760e-04, 9.982127673611594435680485331533411291981760920599082733502195e-05, 4.937348728732130704294498684307923950522584256106944886949448e-05, -3.135036716312241024722693180559594774556478340860978546951440e-05, -1.658147773498940772484726369548058692747045913396859511266770e-05, 8.993369381780249884815177697768622600696214964193331328463550e-06, 5.029634518357754652723486937747064581822127275361432214835696e-06, -2.337864167664466494570925080931611944904459384149351585277512e-06, -1.368676631106717262348517888568825801321041470548296848624890e-06, 5.450688318062644286926839313049161286349015828217309026636711e-07, 3.316523922200394953147539061914190708715734274178414348860243e-07, -1.126508114108817402586366374763002332801656314726353024056859e-07, -7.087035083421007145362900821929976013240319835720189106840565e-08, 2.036136552214949970328712725606531020556011014972233106738542e-08, 1.319046726965912968164902682289037946241823978447803297147618e-08, -3.166087228464481990319888550523695148079523238750557992010525e-09, -2.104991149449598511738256933418413456831105806964526595267674e-09, 4.146945431639040971236501326093312709747378328969720686955287e-10, 2.821776098897944456514363403112985675647966425504805181915693e-10, -4.446983453406239471384232757602885317329111550023751533862821e-11, -3.089624808780293616300620576734718588630028421505260673719541e-11, 3.747462360879854551489729939613548244791307999347455031364712e-12, 2.653081274384644726529610503659130177381947905208003616541403e-12, -2.326413554174593468421370682954805683688973923244290583476656e-13, -1.675405289088832668656302656638525011959950143853262083260676e-13, 9.457233677790636292829124094363707169383163229929980763002159e-15, 6.917698090475727804437168736067302147625040054118083556555473e-15, -1.888230812078774308964339134901795324778762733781901178118498e-16, -1.401017335540698807093219863467094751924636611380629198255055e-16 }; static const TYPE CAT(coif13_, TYPE)[78] = { -1.793548393002850396214718676857202286659666424187461477734916e-09, 2.378211185014311786110879108757436954350720046766491611553072e-09, 4.738378239463632066007380653022285879027956504083662158044852e-08, -6.443042549205366017018471056937057609502890297774359019447097e-08, -6.027665210865901726655682284996751140817763415224888556619716e-07, 8.442063562432018658923481573987170154629168292318465207460091e-07, 4.916019713173742217516567081751095460187255617230097133575212e-06, -7.131597545851986841244858233956149652674565400158665885083228e-06, -2.887621717983862897214028125602451735414281976333647039362767e-05, 4.370659106170444884665034460659021177081728764017693131624860e-05, 1.301010589502334343162340998315752253281092458614582842230339e-04, -2.074517436437432445981843921824038136707694799228389255014386e-04, -4.675659350970496983228743630930465551287595323790670572391233e-04, 7.958726623965077575159821003474228536032266651825968350366428e-04, 1.376238684291389421260151294679793034786767219476646917508650e-03, -2.547925839943045924066603828685111513038130582703762656864035e-03, -3.380448382429659921946074764411430359936216225160144993981999e-03, 6.999176747558747594441502446219623982632259493449887383625331e-03, 7.025277873701559172377638256697086265819697238858476588169332e-03, -1.700403721911182477272019360628329604078467241211115244215388e-02, -1.248110041093927898560561468789729670710805348798639274049645e-02, 3.818992191138900815386778979798299217649095657811074673392633e-02, 1.910593122449920408487253901211150453954067290839567103918095e-02, -8.734123305433746527793626123316474698117075663794485992246041e-02, -2.535440772516182914289995632242460491764482405133781896194027e-02, 3.093942491825020619708297996329932122162946840728332042771585e-01, 5.293074910143676049377270336094486347453907972435992671221709e-01, 3.160379244009616024122892848920228469630372079810266391126280e-01, -2.962163220306191371882270857478632946112548274231313092509283e-02, -9.361576444399936039733984609999327008143196158286264947803189e-02, 2.626405247194866459650693584890446232517026215635389354877327e-02, 4.374461075475828517065334688194008307695911637366798984389094e-02, -2.049134157245617651216272008653608168147661681048849172375451e-02, -2.155975349513035485872319905355436164781967949252709342828195e-02, 1.411469715539851095863611028564527062867149436850684547048665e-02, 1.042015012705080744964255765999888273943255976544095301354753e-02, -8.618241965220092705853657584595597150491673418403411002408392e-03, -4.878411229018901327291501121500987653856731550945133361152065e-03, 4.689231319014487945639277139124902021493524893685817080310457e-03, 2.228006944652422042461995816835639158465376266146249271470082e-03, -2.289300216009735975701956488620738834491684014507704186201093e-03, -9.995141996257751415873914459680403989351818715310372734784204e-04, 1.011237075436018016549433779140494575127827962961245293854167e-03, 4.381342083712223181655422780539654899256457840343499415845070e-04, -4.077800844935014982451276827385817092870017635124843071185474e-04, -1.844040745436007917646038575655224990196066190810660605304526e-04, 1.512620828188999164176721097533404532449113024454664717717400e-04, 7.298889914269074881614764112188558106800789316340412477261329e-05, -5.182922229726125421401881179344203187294861819954288822285889e-05, -2.672839739746518397507211250706440905085295052637683361350922e-05, 1.639620996879063097510387977200493175731056979428359020893174e-05, 8.963666558523048764112718546851367368030517279319460108445549e-06, -4.766464838000155192746436553819324857933144402808057358218020e-06, -2.735466156072759824467664346873929524570661158335396527180534e-06, 1.263996241706422344627321843525682342021921638088785036829943e-06, 7.554924136965026151745000640360811330632516737592082697244460e-07, -3.031372027194064857797292192738025195545051465615020648049694e-07, -1.876153353569459383609680347900216851365226014600160596860682e-07, 6.512178154867684103162618794588474859582328666119453018835115e-08, 4.155335593309412282776259416691605536103007067016402041304343e-08, -1.239596814755558143100692869308986827004606690663547726503092e-08, -8.126161332398177051328184604237057975154642800593274318357692e-09, 2.063790114950702612059895249532033343340137201326403800942906e-09, 1.385901944573589656765876273409079665095347609123824623959651e-09, -2.957224178853409095488876110988057035662351440629962056952036e-10, -2.029311934113340193298299122766339237347606272015477168851847e-10, 3.571772829282367453820656456837216050596922160503361259637188e-11, 2.499410377682389724091314347623318996671569127462013112818877e-11, -3.534890218851825710748828088218388133415831376956616696797412e-12, -2.517884527624136958659745558559312992706644927689162729125510e-12, 2.751761925220381284379520354168022844435052022760463778480642e-13, 1.992032170370043447922955009924406643179442598661368210363579e-13, -1.579660989452381199649841550208895174521301273998672860864606e-14, -1.160591617584672995112625842000957667465588057411636690187883e-14, 5.944365969270122882900608066221185975352672745351687370149379e-16, 4.427175531427877551269875594300908130209116956704562714053338e-16, -1.099853008896742180355036418837212161914020836623592509294684e-17, -8.294635939298345162821665414627459859677158780165562383375210e-18 }; static const TYPE CAT(coif14_, TYPE)[84] = { 4.393123283287643046743977676392679809833123671791969857529554e-10, -5.740995333980705032482946798804467194492616738218164095035288e-10, -1.248927009234748737577807595315202881486499763243765085950971e-08, 1.668938708534669081372944925855130859570883667030296283192275e-08, 1.714224718466457012729254240886670886351889068326223437908249e-07, -2.350888489707823711598280869672645467891128086655653747378426e-07, -1.512829449512444398231569819651340325454203862764615475827846e-06, 2.138843028494803759906484297432258680083063727505990520765838e-06, 9.645189410175859129875925155219070194081512175741287765540858e-06, -1.413900766434184664705667161036292966126778120705989526301092e-05, -4.732386374886606069931596084808261069441902397080602834581236e-05, 7.246665915416318653041426061722482786676878913517175624718883e-05, 1.858717516638060924675018895058421783537325657288962327083514e-04, -3.002639346667087045056450058456524356780635529605230858304448e-04, -6.001981648119978322839905692747076742955350870879313864711891e-04, 1.036704424281183769332139455241059670502046121189437350622494e-03, 1.624019729102622430009407806264396637075700567293622239292888e-03, -3.056866654227471285910973139305702040302592610826831936007958e-03, -3.734374338375411359548223317593068662165508326760318658468879e-03, 7.878974156362307531137246310651783340668870035859860685992973e-03, 7.375794892775370758210034597418329565084392014608514718594919e-03, -1.824112316356241062692741179162085194558935295694349102012547e-02, -1.261644961352131486551701382111180567640901225706461078977920e-02, 3.957213740580164637883912093052435411100033612855489943952285e-02, 1.881013375897047936537530404984248905528105177371268733601760e-02, -8.848531745012440411869086432922856738256941097681738588710806e-02, -2.456831883802970358635588048610460583666496666472048714250036e-02, 3.099141258514769597675719014297798938256245460277150903434604e-01, 5.282263993480420420172683726700426615634588134049161997619639e-01, 3.163176118910136471847844244749096048202155473691440639981631e-01, -2.862162705070505721847062425772578719710517153178747344517326e-02, -9.456098562568806415195259578154116428430268415200065101526812e-02, 2.569051606124748855707310139514692975138855764331441058027644e-02, 4.500466183802795354926526381495033532360504829689303112753676e-02, -2.047021532120584933449635791950977974026461349249053431599797e-02, -2.277014831481950414178652294664971699995306130850012029895679e-02, 1.452361964346076643465698934593935628651549016326324569145137e-02, 1.136128541937039082819287050631790459539185066230834792169280e-02, -9.209420947381265408066732190659507079985769827890316211408732e-03, -5.504969422021670816364481890406139436891358063842746391250159e-03, 5.243747074749862954985821475569406094355637198674133818712452e-03, 2.601674598427237622587421382305601947017094209097298433834035e-03, -2.697275841549192002303803931030430917736443859609363181433549e-03, -1.207776471356184889908600913725134183482141825908028112001291e-03, 1.262622737054852256202461193382270265994430106051249583099008e-03, 5.499311966045329956589364039445100979613421696316486920186038e-04, -5.422272627380624698839955658312215512244309349484916450185708e-04, -2.425184361340171436100075350681685661504913784969748899389596e-04, 2.152149496400025476355694208172147853936641059086477755698365e-04, 1.017555903218396117566574602158457196612571864784370737617320e-04, -7.935125388684553688655161870002244461407761128159434896618062e-05, -3.998277597219932662226493843559158394980004861650575475073792e-05, 2.721796546580936689236981518793293817082739932936290854597108e-05, 1.455457611510765292828084081835640403374221862390765492386559e-05, -8.665251169633984802148726995857663363842070697439942022312573e-06, -4.876002876304524386897822246961544519628259634511055566637692e-06, 2.547630497377554690874245620888763103208548188356120375663417e-06, 1.496291521165122830795751824395745883743697658779928306182602e-06, -6.871963182955767930114979093149987762546939511820085867823395e-07, -4.186054213338905216716743937485713975287167010801084873077525e-07, 1.688323085510447043387946782295494719025294305992339556134599e-07, 1.061608664532340347260400721455574451686604605297267706650340e-07, -3.748126052504886126462262044258726754387739289902914735975186e-08, -2.423790421295234792457591882318039900764790491363232906013318e-08, 7.451944128021296384873848910815562162615603046168848323657834e-09, 4.940829113027976152032509192714512864500880531926251999539656e-09, -1.313004290651891746787587770064129324937346786322188934177725e-09, -8.903006190166202390134120838864396696475015840820998020804486e-10, 2.024339408983577773846670331538285833569817328592031229378977e-10, 1.400716332649913272902011493738096845560270049348128272163217e-10, -2.687843639588594104182180535839092397502172743578767496300069e-11, -1.894326416951989057103502558801200560928286148276804817046860e-11, 3.010449065125004813763195657162392547592377042598795440577733e-12, 2.157549110009031291962129877779262524544188824969196959112637e-12, -2.765131213310687469788780767616475716770096486689988092675382e-13, -2.012365100006663638325338350119352463903184738855668161185981e-13, 1.999559651890099694974046277400337493312467655228527142562129e-14, 1.475855904098499257323658940826580143845487753742438097885182e-14, -1.067284385873308952698526062594338734883390319779112369515680e-15, -7.980454732861187078908378609623987154745352892645906516335706e-16, 3.737960558513592434172838302437103561627990707012528832920768e-17, 2.828736827706445597408742152789813333751511825684331285246309e-17, -6.443221017103948534696419228196665121335677484790396728190832e-19, -4.930480277882556230626331748820167974609092329853622801401922e-19 }; static const TYPE CAT(coif15_, TYPE)[90] = { -1.077388305690034925568519317607342584913833777614742512289616e-10, 1.389587596342677833974329883522061230029685955993897881938371e-10, 3.279393998194510988634872448273529681786105568152537128188232e-09, -4.314917428064750425742001408005222171763816486950620059656063e-09, -4.830480955281757774084367520164529040833872636548135345926328e-08, 6.503442589750190197880818956936279316947206899423481669747179e-08, 4.586202226530976939526210331832939590139698224375343383858299e-07, -6.341483528169214053400193756836695190022413814118163945498651e-07, -3.153995479916402549978249764513192992770609509053150015780527e-06, 4.499804120432346419024095680248633407936442025574963153980269e-06, 1.673949137596284707730217911852880032270066826000466620282769e-05, -2.478673953689472562808496884430051456931244781632393118270780e-05, -7.133403721727709318079068467834164023289442323885459167236538e-05, 1.104625554161070296128803495762953054143520115043831806016786e-04, 2.507269022498110858235302333943956572610456366436693548255909e-04, -4.101297424840067893342949874400724512592760895309517943587399e-04, -7.410047143677847135223722282750946641042780322618912256742384e-04, 1.298007949810447142342589176001928848518589813981439840532480e-03, 1.868002036616641522111287518387513439361411763383193116215989e-03, -3.572228252449254403963990114096416980805538949675814075573840e-03, -4.060845546989816000749383711188465103702344678606463573419343e-03, 8.722973601634679156834244798678586473379340842447624760010613e-03, 7.677632624610885216379589736677645849428563543670856456892832e-03, -1.937998629272623327245351651340032378963145895629830248355253e-02, -1.270912987080621205738379925710726654478701862241529402092432e-02, 4.080738066060462170763876758586958836909785300855426384151542e-02, 1.851809057592325149969383820293931082576986760496903450942510e-02, -8.948849897626424781521688387105939501138967888885573845565360e-02, -2.385247670399674430387895964623311594722573671400958395974253e-02, 3.103664257008206645231191613171869470278587854279025003466673e-01, 5.272557364814477983716848071901714167787737772153872785679251e-01, 3.165587650075045121866443592930838541058283366878004666876859e-01, -2.771191753156204367193336798361266628380497625857187392479985e-02, -9.538675074777090841664081647061476726485316724852952970342536e-02, 2.513756235583785139515577768765056710377747798734684870047976e-02, 4.612595054152007266785799039333521785448817048938105661049367e-02, -2.039697130032260717744814776948275153234836586193746022325595e-02, -2.387610261602642412532087773123245712932154519493636933580111e-02, 1.484665336652742504720315601481410278546028124094856659564326e-02, 1.225045078722903548958708772567092776061773279630721958212731e-02, -9.727026988684677132100204448228164919286050721340500899358847e-03, -6.119790408666201569472108881793143052368912545364690258267249e-03, 5.760546284765569349029577236247005441326471924211526110831333e-03, 2.982639689783411796793051935450475228274526754982054792962250e-03, -3.100326747810698908670357861857946527442099277807566353764288e-03, -1.427598950056448560388339550760364489836477975524209634886824e-03, 1.526288902864820487351136408213978592286541943096968601069530e-03, 6.716807141163574375155812673929624759515069203426478824767004e-04, -6.923091961922026215168169239588952998971619503794813547976866e-04, -3.079753690537485675760336348529151045406687032785607559287851e-04, 2.913765589242728312575501892839254155123375897451413662654452e-04, 1.355892883935182989877008830272296210763299728475431240359051e-04, -1.144136457600174453829439526659056859019745676077854858593439e-04, -5.647366526527395256230283878165734782055526539079541637152500e-05, 4.202814469137045804231920127700407277374824908280103138814183e-05, 2.200691925199183606470694553320593703444346894670462898724267e-05, -1.443487126829503983751150823245149445739823542713233210642676e-05, -7.967044068720793687142187645523516573594381036006224439668751e-06, 4.620529572512414091638085200280358471196525782083614164517925e-06, 2.667271171141226202145908685103109359180536100787642097511661e-06, -1.371646007677255108283723404199936479217347063529498435611186e-06, -8.226257775777933787075210506019317042435483731184419620540542e-07, 3.754707488446600189267042303254271529522879725934705336303128e-07, 2.327460534735607792375886758810039203536663498026314128685740e-07, -9.419176207630012538547307468277369699399418776908683708933552e-08, -6.010901363192621272223652431192551853015388169886067903126279e-08, 2.151040529867103646106333296464104096442766675831068812680466e-08, 1.408663721444152455727196509866657267275259238167897249854527e-08, -4.438471764420978016551707826632529934591397495469950610230150e-09, -2.974872318653716789002892729632634360902192191395110942422961e-09, 8.203736354629479986724051586473684219941281670765722417668819e-10, 5.614906982011763291961026759329761169245818883997411717426871e-10, -1.344369082215606926514414754427875310059984578418456061162278e-10, -9.377858898150921640144384471918102613403240839501295781875527e-11, 1.928845257086926701816336874687366534718638777936590534635229e-11, 1.369011182657074022662376575505428888871791726174235399548870e-11, -2.384934840461770473688929159579828219691317417791483110727798e-12, -1.719778967631011393923929779685944798509748321140853638527672e-12, 2.489379237039083598560573205355055108535626207998662168681925e-13, 1.821429711569697474507499816102915339752696477298299745504329e-13, -2.132622020734041001406592439010728287329439597809749096351270e-14, -1.581480392919139876757416822279485491215786823105416373080481e-14, 1.439584163156225165032712921349710482363055530913169445190637e-15, 1.080870877608085873106724565550332487149959687560803170944524e-15, -7.178988398852581130761463819471838970960348029733518906208378e-17, -5.452456075593213060858973182314766684639894698667113525487884e-17, 2.351146114661327422889598894161189162646924206890382575430334e-18, 1.804873032260938513483901979969512893697634895683128101624000e-18, -3.793093840880643734719632714511071568608235299231836638122279e-20, -2.940897685979289093951754752537580047693528343881245635936847e-20 }; static const TYPE CAT(coif16_, TYPE)[96] = { 2.645128227931334401194749017856094903839224759604187535975348e-11, -3.371203198492327805593180795398582247961552853458158404332701e-11, -8.582602955015851169989985547605915833769704579350018283905453e-10, 1.113682743874024896922872631560006089322116513037553196433140e-09, 1.350357555669007302187662129540475982947984508250679168402207e-08, -1.788542662216945768696335511240007863403120034978963421466759e-08, -1.372399767643349435868829666738563944471884881660198607643932e-07, 1.861142798232072777457875152815716474831537306031011659394987e-07, 1.012632916853084889127303847166996705778109099232881893357767e-06, -1.411391218929900871875409836854758822959995175269209988265964e-06, -5.780354906513060544090253238716694637224354416047278875195167e-06, 8.319552925349192408642980463945086193729912325909182155797371e-06, 2.656172937335282438452193694808438866757101525885555802877363e-05, -3.971488503705784806195172735954055483778562353132473949420383e-05, -1.009502477694915360037551527344779468467449497309371492607906e-04, 1.580205984850860534574382720595384850826996029171338643269624e-04, 3.235585956460851636390368611428001979093146497993005344305241e-04, -5.356766020478135601304959841352994036589791570941083598445719e-04, -8.873556546319179065472262621811119401586608437112185894641021e-04, 1.575478281351532632439717118803866388929199851338529206979138e-03, 2.105606651204431619054524746734864557623457229083947484722320e-03, -4.088191894353650561276869582147927639352373035186017974748492e-03, -4.360872292782198728376270454745337063294048791901294558973734e-03, 9.529568586822569351636224042126142702339784399550130407812201e-03, 7.937554616751835390855349461479084645184690272876975812761538e-03, -2.043028062273575036423529610008583445387419918322244014076844e-02, -1.276805798943377800134681508900535312774995954006995157514628e-02, 4.191756976239118832120686348770409281363202997039966458608067e-02, 1.823220381522837114361006424809362329414770645451392462449888e-02, -9.037537219708957768297195651417043288020180323453952191219619e-02, -2.319696593669936172505243393626168348704758643822052626742965e-02, 3.107636928082792940641010571409269845541349652957861643505019e-01, 5.263779607858160898968654079428530858936436413545697317378081e-01, 3.167685981610576430160454114053628826549777499820093838585069e-01, -2.688002764399130975457186260346246083982252335484396969696049e-02, -9.611413622779535731607299381683923415585409438866982806312433e-02, 2.460702264184366170433044783596672126378075093050623290409127e-02, 4.712982774514209557951414612253477983062538454664569371378627e-02, -2.028535796367687397692592233666898932654122251735124185611584e-02, -2.488947090480479804467455088466028171550905433401327138474797e-02, 1.509891466100476055081827485608676509355525843509560496666700e-02, 1.308946215944044192535019406077351673456069366724670016932535e-02, -1.017883680802027111277390598900318783317279547588070199634251e-02, -6.719748071003458935775571012030544444136724430402220957162335e-03, 6.238935489467385921022852560870393671940489207452244538094472e-03, 3.367468902298941859370206452925695206983662336670801038560071e-03, -3.493551700182803646132263836442232208288107750606295145197587e-03, -1.656892742742846792662641923332649254682158396970453428791079e-03, 1.797580707568879158693851162651173871535491718081800368907782e-03, 8.023813584888036977682855962559617079147220211451113235479547e-04, -8.554898439358329127957776138969823280630767426284649193621767e-04, -3.803250541195305567062453832052319106641157897723285573667716e-04, 3.790575215750319491406179627066855114144121793545714885424013e-04, 1.743405946247572050905785206176608832450147638063148826743472e-04, -1.572439781316405883265776380849622489840291930399907686729106e-04, -7.624948592584476281257978178990423864516589094309239278548039e-05, 6.128060596774506984228013865022369414316454857306786928520834e-05, 3.146741963266068084535293135528229727240575644439933447074425e-05, -2.245327295507508821937104934719536410602401822650676684612963e-05, -1.216243182507186686293172059854826389902098520645342122978134e-05, 7.720917364617828003652627867578175616946793895014715674935806e-06, 4.381753178661449645296516382515863584261691809111376008934184e-06, -2.482767124382555232483399147672417058164552715497813674691440e-06, -1.466343698163771614780524818641106403735083198445173705132776e-06, 7.432014174835368770981871416234950435655553162638884480980583e-07, 4.542989331759269644535718413196051785388101460827659003970839e-07, -2.060699879933986058206760300398806699720723820737944360367781e-07, -1.298170865048347187816076578378402307087125075336611133383038e-07, 5.264581641375993977610164728920521257086259803613235153366270e-08, 3.406393391619068289195417747073909213446800676676765817676367e-08, -1.232185691522856953729451450757280208371851915642712294292861e-08, -8.166093443152050070015881861916421702970930717440939870025784e-09, 2.625409011502555900921203294713520941212542142978903897341494e-09, 1.777971486566651937150629742259638331676290922471013840418127e-09, -5.055670327267217324394512474432436609546961385665820073629149e-10, -3.491603047784209234885018449563067499142505674739795662842523e-10, 8.724442027269310202793317644100398216549268990858642429012803e-11, 6.134056646089015827615754897419277972739575045939973674430929e-11, -1.335550933533140093069772884082926341856038121300357216420744e-11, -9.545001301055681232254913151946668780573427381542116387716243e-12, 1.791132091052570705585609717173338686203233385162086497884597e-12, 1.299479612944140546458425080979636378248568664374156541007765e-12, -2.071542478174027600308270770710599707024301130761618879837078e-13, -1.523876419589572596433135600175398293765409391592690642809664e-13, 2.024011564013098795384504309899456379953546444981404140928647e-14, 1.508090533430543564179721448102668377867975040540446828012097e-14, -1.624316869855319846554453444493486257563508484962017834581348e-15, -1.224719779181149805165600696876308523367619824015832031858679e-15, 1.027939569018525333323110570745538777072560620646729968488678e-16, 7.836461641294003176782800892601140107677607857155479918585838e-17, -4.809623970748619654544928861639842603928203458148585584400867e-18, -3.704428468500691125388142845245956973807333959654959653370468e-18, 1.479077310414365270465857340835402997778146774718460154867300e-19, 1.150168591577669048697174066699145993471476194503387272230234e-19, -2.242407694525583556140058750006128491924916204038852290292985e-21, -1.759447752651847364048938898264828071373418617420955762135442e-21 }; static const TYPE CAT(coif17_, TYPE)[102] = { -6.500464389707599365209386548586351053892021378458138653304423e-12, 8.195092532207287031929315133511822259455558174314608981943899e-12, 2.239711179183031212893330219097909418305437894719629936823048e-10, -2.869947756536888954496920486027606890198732779175975385193469e-10, -3.748652869247186892176371615982066497362408141014325378716294e-09, 4.892949218890121214706505923918329440794016605904313473814529e-09, 4.060535996907768482760233032378242455655290824022613838518523e-08, -5.412800273268200651966255945372126329232373624996043338727765e-08, -3.199646878369895994575449942065193991181771279589753273012370e-07, 4.369727725871308893880916467851990680716049438182815833632030e-07, 1.954675426993304663744299195821942913722501797065421760283585e-06, -2.745513146733188764932399232387671708256227137296795085887882e-06, -9.634412972188383779747780077033215938910939748761965263335434e-06, 1.398510128440620079969365258470536422184684456048432702271769e-05, 3.936982972446342694180294131275967364969863087882012583523302e-05, -5.942171285371293607280496067664382735077180061970981330506268e-05, -1.360187671549120330733322490500505609713066081377747046659631e-04, 2.151477677680517385918241110555023784071910115637214853600854e-04, 4.031846985142799308758422861627631567915210555326501592195629e-04, -6.753056524717059857256997400254135291064617085196739372670596e-04, -1.037019038482154436516186769361377053347840390147975287354903e-03, 1.865278399043969526599364729851177613810456808562792176901007e-03, 2.335092479166843852619505691860960037151295448017402395490464e-03, -4.600362410545124310128593731153519957157915045164845600048444e-03, -4.635901516367530468266774633995064938864595165304482662269926e-03, 1.029849878093488912016135237127927932437021681117450333050470e-02, 8.161354844742695166287867590528306934013230497272094086439853e-03, -2.140083454707180990471957764441619892415141666259178396074188e-02, -1.280013066407215003063560801494039614508212222821778081264683e-02, 4.292055861596262214973257156936151304056714777314126061614130e-02, 1.795390690266262592020002418739607395852481356276768335967618e-02, -9.116513012907441746922273129338011409075492893988681588200024e-02, -2.259372514218996220695158554614204610976204851195489170219594e-02, 3.111155431954246180810318298644662465180042749292370227009409e-01, 5.255791920096491971882691260862499824764740619924123678110320e-01, 3.169526419329032746356987532605638232939637480462148442295005e-01, -2.611571666365402171510563042119336240297149649416458785911946e-02, -9.675954853667507935197631998670465823029201914294383672129969e-02, 2.409947009460623399471523812196780471148876929014194101062573e-02, 4.803353218498044015416060073004473385881416575908077296603559e-02, -2.014561229992014297122142514992242081365435497050595479226927e-02, -2.582061660161950684110954569039206647948969052599286532681994e-02, 1.529272640253308240084109219531756056459883643674183337274434e-02, 1.388071397467832912373059115868453151221079623138136285750566e-02, -1.057221105345110246802817506341466648095287774314054180322389e-02, -7.302762653438232901227689142950547329538140829539078289487808e-03, 6.679525479155670944534388145244600799904556867195771509687913e-03, 3.753327910175261617061638983698597354605196849112621375976962e-03, -3.873502044238494209221075063035775273773018743760471430473527e-03, -1.893732606269440797293869629956889668362203362383552157238979e-03, 2.072543024867895178559272835210161485056077281253166510139696e-03, 9.410418747008923962829724903349867736584130840706583199324136e-04, -1.029236208596613388068225340603899734435060101885503041426292e-03, -4.591014336769466560134513688989777037625141817691452272446129e-04, 4.773008760819621131157362935521176506345390013016953367673484e-04, 2.178204082961996755621953357319268908714183698410765755733914e-04, -2.078309675413889310430737904787028903664009273165646558840663e-04, -9.929997042562200063281249722482587882228792457135570086630464e-05, 8.530214005775875557344845401830936434184861259249422544962929e-05, 4.303127018338600126871147843984523103940762542407178890295340e-05, -3.305701987257830145946843240723975476098534205446659095902282e-05, -1.758829650866963971776918784161632040379719078606077372721020e-05, 1.208769577843697327040603409274814451217826643812352568992268e-05, 6.746467675120962867147670937319739759733836479700116679771234e-06, -4.160355187316342019270990597595419877216228873682832991804769e-06, -2.420254904648915254014955740890841226083885744291947005091657e-06, 1.342994249603250343064678689811024077753583828488987218045940e-06, 8.097294554089061667504430331210249043842934823174097650144144e-07, -4.049444940788524829884048775715404594466969342774847971126013e-07, -2.518965167469206882003809454171378587968607051431751373150446e-07, 1.135553617795151208855033374367694728763504841965654332076720e-07, 7.261651917558697862566637161896385928154192436065001744633099e-08, -2.947980283978599533805321526934370923141985995773718687989809e-08, -1.932361910368835906234029388933678481624943182582035193495632e-08, 7.050321193690929766855893625237523724477327743751448148520006e-09, 4.725540898626838453733797773219853119997567959454100093653807e-09, -1.544890271654104814899353348226128082357337920194464818206503e-09, -1.056616142600432792887732860128652200494175165768667682069691e-09, 3.082594659999300699574359679210901640096775130739951087627160e-10, 2.147504833829198392113195006888709994262573995228896673552773e-10, -5.561286894620042086964943668161558452409502342704415471486767e-11, -3.940143496183440249847057247704879900653366187527397859030185e-11, 8.995643580413385770110048797179920790859544777777746910312038e-12, 6.472787221353141291937900214024339897450801045313739690950453e-12, -1.291529680835762905157565016413333440330657604408304192114484e-12, -9.426669651972276882689445158605509492502686267040217113580068e-13, 1.625527264466347733962941488626801955710436180523082414371005e-13, 1.202192377372031845627082725619201334357843245869818759928528e-13, -1.765518459644471564018808330096255160185888800253188548281582e-14, -1.321779015475951542862804164493083633990380882447565336832597e-14, 1.621075287427611093636143991429535087675201571842337901672180e-15, 1.227498087932053340876125326218310922521150243946862677354389e-15, -1.223432402366205698930334886661193082730379267225732134795174e-16, -9.362464931639200345906241184043712676525956780242932081695469e-17, 7.286307451400376946525901096753718888478670661483802452725131e-18, 5.631244920089436674573794405513798919334447045845529038034991e-18, -3.210669220728058803342344742726907080377349121830123276313938e-19, -2.504389307995414770751414118526232971373346964470499339128194e-19, 9.305380936099856808127703965979897197171695480831630403884988e-21, 7.321457794081650002123376485818067154029026613875178979778160e-21, -1.330546671429478643380151195298922795778536160301584472334406e-22, -1.055408614665356789775787814731337905514088897800715301399902e-22 }; static const TYPE CAT(bior1_0_, TYPE)[10] = { 0.0, 0.0, 0.0, 0.0, 0.70710678118654752440084436210, 0.70710678118654752440084436210, 0.0, 0.0, 0.0, 0.0 }; static const TYPE CAT(bior1_1_, TYPE)[2] = { 0.70710678118654752440084436210, 0.70710678118654752440084436210 }; static const TYPE CAT(bior1_3_, TYPE)[6] = { -0.0883883476483184405501055452631, 0.0883883476483184405501055452631, 0.70710678118654752440084436210, 0.70710678118654752440084436210, 0.0883883476483184405501055452631, -0.0883883476483184405501055452631 }; static const TYPE CAT(bior1_5_, TYPE)[10] = { 0.0165728151840597076031447897368, -0.0165728151840597076031447897368, -0.1215339780164378557563951247368, 0.1215339780164378557563951247368, 0.70710678118654752440084436210, 0.70710678118654752440084436210, 0.1215339780164378557563951247368, -0.1215339780164378557563951247368, -0.0165728151840597076031447897368, 0.0165728151840597076031447897368 }; static const TYPE CAT(bior2_0_, TYPE)[18] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.3535533905932737622004221810524, 0.7071067811865475244008443621048, 0.3535533905932737622004221810524, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; static const TYPE CAT(bior2_2_, TYPE)[6] = { -0.1767766952966368811002110905262, 0.3535533905932737622004221810524, 1.0606601717798212866012665431573, 0.3535533905932737622004221810524, -0.1767766952966368811002110905262, 0.0 }; static const TYPE CAT(bior2_4_, TYPE)[10] = { 0.0331456303681194152062895794737, -0.0662912607362388304125791589473, -0.1767766952966368811002110905262, 0.4198446513295125926130013399998, 0.9943689110435824561886873842099, 0.4198446513295125926130013399998, -0.1767766952966368811002110905262, -0.0662912607362388304125791589473, 0.0331456303681194152062895794737, 0.0 }; static const TYPE CAT(bior2_6_, TYPE)[14] = { -0.0069053396600248781679769957237, 0.0138106793200497563359539914474, 0.0469563096881691715422435709210, -0.1077232986963880994204411332894, -0.1698713556366120029322340948025, 0.4474660099696121052849093228945, 0.9667475524034829435167794013152, 0.4474660099696121052849093228945, -0.1698713556366120029322340948025, -0.1077232986963880994204411332894, 0.0469563096881691715422435709210, 0.0138106793200497563359539914474, -0.0069053396600248781679769957237, 0.0}; static const TYPE CAT(bior2_8_, TYPE)[18] = { 0.0015105430506304420992449678146, -0.0030210861012608841984899356291, -0.0129475118625466465649568669819, 0.0289161098263541773284036695929, 0.0529984818906909399392234421792, -0.1349130736077360572068505539514, -0.1638291834340902345352542235443, 0.4625714404759165262773590010400, 0.9516421218971785225243297231697, 0.4625714404759165262773590010400, -0.1638291834340902345352542235443, -0.1349130736077360572068505539514, 0.0529984818906909399392234421792, 0.0289161098263541773284036695929, -0.0129475118625466465649568669819, -0.0030210861012608841984899356291, 0.0015105430506304420992449678146, 0.0 }; static const TYPE CAT(bior3_0_, TYPE)[20] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1767766952966368811002110905262, 0.5303300858899106433006332715786, 0.5303300858899106433006332715786, 0.1767766952966368811002110905262, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0} ; static const TYPE CAT(bior3_1_, TYPE)[4] = { -0.3535533905932737622004221810524, 1.0606601717798212866012665431573, 1.0606601717798212866012665431573, -0.3535533905932737622004221810524 }; static const TYPE CAT(bior3_3_, TYPE)[8] = { 0.0662912607362388304125791589473, -0.1988737822087164912377374768420, -0.1546796083845572709626847042104, 0.9943689110435824561886873842099, 0.9943689110435824561886873842099, -0.1546796083845572709626847042104, -0.1988737822087164912377374768420, 0.0662912607362388304125791589473 }; static const TYPE CAT(bior3_5_, TYPE)[12] = { -0.0138106793200497563359539914474, 0.0414320379601492690078619743421, 0.0524805814161890740766251675000, -0.2679271788089652729175074340788, -0.0718155324642587329469607555263, 0.9667475524034829435167794013152, 0.9667475524034829435167794013152, -0.0718155324642587329469607555263, -0.2679271788089652729175074340788, 0.0524805814161890740766251675000, 0.0414320379601492690078619743421, -0.0138106793200497563359539914474 }; static const TYPE CAT(bior3_7_, TYPE)[16] = { 0.0030210861012608841984899356291, -0.0090632583037826525954698068873, -0.0168317654213106405344439270765, 0.0746639850740189951912512662623, 0.0313329787073628846871956180962, -0.3011591259228349991008967259990, -0.0264992409453454699696117210896, 0.9516421218971785225243297231697, 0.9516421218971785225243297231697, -0.0264992409453454699696117210896, -0.3011591259228349991008967259990, 0.0313329787073628846871956180962, 0.0746639850740189951912512662623, -0.0168317654213106405344439270765, -0.0090632583037826525954698068873, 0.0030210861012608841984899356291 }; static const TYPE CAT(bior3_9_, TYPE)[20] = { -0.0006797443727836989446602355165, 0.0020392331183510968339807065496, 0.0050603192196119810324706421788, -0.0206189126411055346546938106687, -0.0141127879301758447558029850103, 0.0991347824942321571990197448581, 0.0123001362694193142367090236328, -0.3201919683607785695513833204624, 0.0020500227115698857061181706055, 0.9421257006782067372990864259380, 0.9421257006782067372990864259380, 0.0020500227115698857061181706055, -0.3201919683607785695513833204624, 0.0123001362694193142367090236328, 0.0991347824942321571990197448581, -0.0141127879301758447558029850103, -0.0206189126411055346546938106687, 0.0050603192196119810324706421788, 0.0020392331183510968339807065496, -0.0006797443727836989446602355165 }; static const TYPE CAT(bior4_0_, TYPE)[10] = { 0.0, -0.064538882628697058, -0.040689417609164058, 0.41809227322161724, 0.7884856164055829, 0.41809227322161724, -0.040689417609164058, -0.064538882628697058, 0.0, 0.0 }; static const TYPE CAT(bior4_4_, TYPE)[10] = { 0.03782845550726404, -0.023849465019556843, -0.11062440441843718,0.37740285561283066, 0.85269867900889385,0.37740285561283066, -0.11062440441843718, -0.023849465019556843, 0.03782845550726404, 0.0 }; static const TYPE CAT(bior5_0_, TYPE)[12] = { 0.013456709459118716, -0.0026949668801115071, -0.13670658466432914, -0.093504697400938863, 0.47680326579848425, 0.89950610974864842, 0.47680326579848425, -0.093504697400938863, -0.13670658466432914, -0.0026949668801115071, 0.013456709459118716, 0.0 }; static const TYPE CAT(bior5_5_, TYPE)[12] = { 0.0, 0.03968708834740544, 0.0079481086372403219, -0.054463788468236907, 0.34560528195603346,0.73666018142821055, 0.34560528195603346, -0.054463788468236907, 0.0079481086372403219, 0.03968708834740544, 0.0, 0.0 }; static const TYPE CAT(bior6_0_, TYPE)[18] = { 0.0, 0.0, 0.0, 0.014426282505624435, 0.014467504896790148, -0.078722001062628819, -0.040367979030339923, 0.41784910915027457, 0.75890772945365415, 0.41784910915027457, -0.040367979030339923, -0.078722001062628819, 0.014467504896790148, 0.014426282505624435, 0.0, 0.0, 0.0, 0.0 }; static const TYPE CAT(bior6_8_, TYPE)[18] = { 0.0019088317364812906, -0.0019142861290887667, -0.016990639867602342, 0.01193456527972926, 0.04973290349094079, -0.077263173167204144, -0.09405920349573646, 0.42079628460982682, 0.82592299745840225, 0.42079628460982682, -0.09405920349573646, -0.077263173167204144, 0.04973290349094079, 0.01193456527972926, -0.016990639867602342, -0.0019142861290887667, 0.0019088317364812906, 0.0 }; static const TYPE CAT(dmey_, TYPE)[62] = { -1.0099999569414229e-012, 8.519459636796214e-009, -1.111944952595278e-008, -1.0798819539621958e-008, 6.0669757413511352e-008, -1.0866516536735883e-007, 8.2006806503864813e-008, 1.1783004497663934e-007, -5.5063405652522782e-007, 1.1307947017916706e-006, -1.4895492164971559e-006, 7.367572885903746e-007, 3.2054419133447798e-006, -1.6312699734552807e-005, 6.5543059305751491e-005, -0.00060115023435160925, -0.002704672124643725, 0.0022025341009110021, 0.006045814097323304, -0.0063877183184971563, -0.011061496392513451, 0.015270015130934803, 0.017423434103729693, -0.032130793990211758, -0.024348745906078023, 0.063739024322801596, 0.030655091960824263, -0.13284520043622938, -0.035087555656258346, 0.44459300275757724, 0.74458559231880628, 0.44459300275757724, -0.035087555656258346, -0.13284520043622938, 0.030655091960824263, 0.063739024322801596, -0.024348745906078023, -0.032130793990211758, 0.017423434103729693, 0.015270015130934803, -0.011061496392513451, -0.0063877183184971563, 0.006045814097323304, 0.0022025341009110021, -0.002704672124643725, -0.00060115023435160925, 6.5543059305751491e-005, -1.6312699734552807e-005, 3.2054419133447798e-006, 7.367572885903746e-007, -1.4895492164971559e-006, 1.1307947017916706e-006, -5.5063405652522782e-007, 1.1783004497663934e-007, 8.2006806503864813e-008, -1.0866516536735883e-007, 6.0669757413511352e-008, -1.0798819539621958e-008, -1.111944952595278e-008, 8.519459636796214e-009, -1.0099999569414229e-012, 0.0 }; static const TYPE * const CAT(db_, TYPE)[38] = { CAT(db1_, TYPE), CAT(db2_, TYPE), CAT(db3_, TYPE), CAT(db4_, TYPE), CAT(db5_, TYPE), CAT(db6_, TYPE), CAT(db7_, TYPE), CAT(db8_, TYPE), CAT(db9_, TYPE), CAT(db10_, TYPE), CAT(db11_, TYPE), CAT(db12_, TYPE), CAT(db13_, TYPE), CAT(db14_, TYPE), CAT(db15_, TYPE), CAT(db16_, TYPE), CAT(db17_, TYPE), CAT(db18_, TYPE), CAT(db19_, TYPE), CAT(db20_, TYPE), CAT(db21_, TYPE), CAT(db22_, TYPE), CAT(db23_, TYPE), CAT(db24_, TYPE), CAT(db25_, TYPE), CAT(db26_, TYPE), CAT(db27_, TYPE), CAT(db28_, TYPE), CAT(db29_, TYPE), CAT(db30_, TYPE), CAT(db31_, TYPE), CAT(db32_, TYPE), CAT(db33_, TYPE), CAT(db34_, TYPE), CAT(db35_, TYPE), CAT(db36_, TYPE), CAT(db37_, TYPE), CAT(db38_, TYPE), }; static const TYPE * const CAT(sym_, TYPE)[19] = { CAT(sym2_, TYPE), CAT(sym3_, TYPE), CAT(sym4_, TYPE), CAT(sym5_, TYPE), CAT(sym6_, TYPE), CAT(sym7_, TYPE), CAT(sym8_, TYPE), CAT(sym9_, TYPE), CAT(sym10_, TYPE), CAT(sym11_, TYPE), CAT(sym12_, TYPE), CAT(sym13_, TYPE), CAT(sym14_, TYPE), CAT(sym15_, TYPE), CAT(sym16_, TYPE), CAT(sym17_, TYPE), CAT(sym18_, TYPE), CAT(sym19_, TYPE), CAT(sym20_, TYPE), }; static const TYPE * const CAT(coif_, TYPE)[17] = { CAT(coif1_, TYPE), CAT(coif2_, TYPE), CAT(coif3_, TYPE), CAT(coif4_, TYPE), CAT(coif5_, TYPE), CAT(coif6_, TYPE), CAT(coif7_, TYPE), CAT(coif8_, TYPE), CAT(coif9_, TYPE), CAT(coif10_, TYPE), CAT(coif11_, TYPE), CAT(coif12_, TYPE), CAT(coif13_, TYPE), CAT(coif14_, TYPE), CAT(coif15_, TYPE), CAT(coif16_, TYPE), CAT(coif17_, TYPE), }; static const TYPE * const CAT(bior1_, TYPE)[4] = { CAT(bior1_0_, TYPE), CAT(bior1_1_, TYPE), CAT(bior1_3_, TYPE), CAT(bior1_5_, TYPE), }; static const TYPE * const CAT(bior2_, TYPE)[5] = { CAT(bior2_0_, TYPE), CAT(bior2_2_, TYPE), CAT(bior2_4_, TYPE), CAT(bior2_6_, TYPE), CAT(bior2_8_, TYPE), }; static const TYPE * const CAT(bior3_, TYPE)[6] = { CAT(bior3_0_, TYPE), CAT(bior3_1_, TYPE), CAT(bior3_3_, TYPE), CAT(bior3_5_, TYPE), CAT(bior3_7_, TYPE), CAT(bior3_9_, TYPE), }; static const TYPE * const CAT(bior4_, TYPE)[2] = { CAT(bior4_0_, TYPE), CAT(bior4_4_, TYPE), }; static const TYPE * const CAT(bior5_, TYPE)[2] = { CAT(bior5_0_, TYPE), CAT(bior5_5_, TYPE), }; static const TYPE * const CAT(bior6_, TYPE)[2] = { CAT(bior6_0_, TYPE), CAT(bior6_8_, TYPE), }; // Array of 6 pointers to array of 4 pointers to float static const TYPE * const (* const CAT(bior_, TYPE)[6]) = { CAT(bior1_, TYPE), CAT(bior2_, TYPE), CAT(bior3_, TYPE), CAT(bior4_, TYPE), CAT(bior5_, TYPE), CAT(bior6_, TYPE), }; #endif /* TYPE */ PyWavelets-1.1.1/pywt/_extensions/c/wt.c0000664000175000017500000000123513317422762020650 0ustar lee8rxlee8rx00000000000000#include "wt.h" #ifdef TYPE #error TYPE should not be defined here. #else #ifdef REAL_TYPE #error REAL_TYPE should not be defined here. #else #define TYPE float #define REAL_TYPE float #include "wt.template.c" #undef REAL_TYPE #undef TYPE #define TYPE double #define REAL_TYPE double #include "wt.template.c" #undef REAL_TYPE #undef TYPE #ifdef HAVE_C99_COMPLEX #define TYPE float_complex #define REAL_TYPE float #include "wt.template.c" #undef REAL_TYPE #undef TYPE #define TYPE double_complex #define REAL_TYPE double #include "wt.template.c" #undef REAL_TYPE #undef TYPE #endif #endif /* REAL_TYPE */ #endif /* TYPE */ PyWavelets-1.1.1/pywt/_extensions/c/wt.h0000664000175000017500000000133613317422762020657 0ustar lee8rxlee8rx00000000000000#pragma once #include "common.h" #include "convolution.h" #include "wavelets.h" #ifdef TYPE #error TYPE should not be defined here. #else #ifdef REAL_TYPE #error REAL_TYPE should not be defined here. #else #define TYPE float #define REAL_TYPE float #include "wt.template.h" #undef REAL_TYPE #undef TYPE #define TYPE double #define REAL_TYPE double #include "wt.template.h" #undef REAL_TYPE #undef TYPE #ifdef HAVE_C99_COMPLEX #define TYPE float_complex #define REAL_TYPE float #include "wt.template.h" #undef REAL_TYPE #undef TYPE #define TYPE double_complex #define REAL_TYPE double #include "wt.template.h" #undef REAL_TYPE #undef TYPE #endif #endif /* REAL_TYPE */ #endif /* TYPE */ PyWavelets-1.1.1/pywt/_extensions/c/wt.template.c0000664000175000017500000004606613334573651022500 0ustar lee8rxlee8rx00000000000000/* Copyright (c) 2006-2012 Filip Wasilewski * Copyright (c) 2012-2016 The PyWavelets Developers * * See COPYING for license details. */ #include "templating.h" #ifndef TYPE #error TYPE must be defined here. #else #ifndef REAL_TYPE #error REAL_TYPE must be defined here. #else #include "wt.h" #if defined _MSC_VER #define restrict __restrict #elif defined __GNUC__ #define restrict __restrict__ #endif /* Decomposition of input with lowpass filter */ int CAT(TYPE, _downcoef_axis)(const TYPE * const restrict input, const ArrayInfo input_info, TYPE * const restrict output, const ArrayInfo output_info, const DiscreteWavelet * const restrict wavelet, const size_t axis, const Coefficient coef, const MODE dwt_mode, const size_t swt_level, const DiscreteTransformType transform){ size_t i; size_t num_loops = 1; TYPE * temp_input = NULL, * temp_output = NULL; // These are boolean values, but MSVC does not have int make_temp_input, make_temp_output; if (input_info.ndim != output_info.ndim) return 1; if (axis >= input_info.ndim) return 2; for (i = 0; i < input_info.ndim; ++i){ if (i == axis){ switch (transform) { case DWT_TRANSFORM: if (dwt_buffer_length(input_info.shape[i], wavelet->dec_len, dwt_mode) != output_info.shape[i]) return 3; break; case SWT_TRANSFORM: if (swt_buffer_length(input_info.shape[i]) != output_info.shape[i]) return 4; break; } } else { if (input_info.shape[i] != output_info.shape[i]) return 5; } } make_temp_input = input_info.strides[axis] != sizeof(TYPE); make_temp_output = output_info.strides[axis] != sizeof(TYPE); if (make_temp_input) if ((temp_input = malloc(input_info.shape[axis] * sizeof(TYPE))) == NULL) goto cleanup; if (make_temp_output) if ((temp_output = malloc(output_info.shape[axis] * sizeof(TYPE))) == NULL) goto cleanup; for (i = 0; i < output_info.ndim; ++i){ if (i != axis) num_loops *= output_info.shape[i]; } for (i = 0; i < num_loops; ++i){ size_t j; size_t input_offset = 0, output_offset = 0; const TYPE * input_row; TYPE * output_row; // Calculate offset into linear buffer { size_t reduced_idx = i; for (j = 0; j < output_info.ndim; ++j){ size_t j_rev = output_info.ndim - 1 - j; if (j_rev != axis){ size_t axis_idx = reduced_idx % output_info.shape[j_rev]; reduced_idx /= output_info.shape[j_rev]; input_offset += (axis_idx * input_info.strides[j_rev]); output_offset += (axis_idx * output_info.strides[j_rev]); } } } // Copy to temporary input if necessary if (make_temp_input) for (j = 0; j < input_info.shape[axis]; ++j) // Offsets are byte offsets, to need to cast to char and back temp_input[j] = *(TYPE *)(((char *) input) + input_offset + j * input_info.strides[axis]); // Select temporary or direct output and input input_row = make_temp_input ? temp_input : (const TYPE *)((const char *) input + input_offset); output_row = make_temp_output ? temp_output : (TYPE *)((char *) output + output_offset); switch (transform) { case DWT_TRANSFORM: // Apply along axis switch (coef){ case COEF_APPROX: CAT(TYPE, _dec_a)(input_row, input_info.shape[axis], wavelet, output_row, output_info.shape[axis], dwt_mode); break; case COEF_DETAIL: CAT(TYPE, _dec_d)(input_row, input_info.shape[axis], wavelet, output_row, output_info.shape[axis], dwt_mode); break; } break; case SWT_TRANSFORM: // Apply along axis switch (coef){ case COEF_APPROX: CAT(TYPE, _swt_a)(input_row, input_info.shape[axis], wavelet, output_row, output_info.shape[axis], swt_level); break; case COEF_DETAIL: CAT(TYPE, _swt_d)(input_row, input_info.shape[axis], wavelet, output_row, output_info.shape[axis], swt_level); break; } break; } // Copy from temporary output if necessary if (make_temp_output) for (j = 0; j < output_info.shape[axis]; ++j) // Offsets are byte offsets, to need to cast to char and back *(TYPE *)((char *) output + output_offset + j * output_info.strides[axis]) = output_row[j]; } free(temp_input); free(temp_output); return 0; cleanup: free(temp_input); free(temp_output); return 6; } int CAT(TYPE, _idwt_axis)(const TYPE * const restrict coefs_a, const ArrayInfo * const a_info, const TYPE * const restrict coefs_d, const ArrayInfo * const d_info, TYPE * const restrict output, const ArrayInfo output_info, const DiscreteWavelet * const restrict wavelet, const size_t axis, const MODE mode){ size_t i; size_t num_loops = 1; TYPE * temp_coefs_a = NULL, * temp_coefs_d = NULL, * temp_output = NULL; // These are boolean values, but MSVC does not have int make_temp_coefs_a, make_temp_coefs_d, make_temp_output; int have_a = ((coefs_a != NULL) && (a_info != NULL)); int have_d = ((coefs_d != NULL) && (d_info != NULL)); if (!have_a && !have_d) return 3; if ((have_a && (a_info->ndim != output_info.ndim)) || (have_d && (d_info->ndim != output_info.ndim))) return 1; if (axis >= output_info.ndim) return 1; for (i = 0; i < output_info.ndim; ++i){ if (i == axis){ size_t input_shape; if (have_a && have_d && (d_info->shape[i] != a_info->shape[i])) return 1; input_shape = have_a ? a_info->shape[i] : d_info->shape[i]; /* TODO: reconstruction_buffer_length should take a & d shapes * - for odd output_len, d_len == (a_len - 1) */ if (idwt_buffer_length(input_shape, wavelet->rec_len, mode) != output_info.shape[i]) return 1; } else { if ((have_a && (a_info->shape[i] != output_info.shape[i])) || (have_d && (d_info->shape[i] != output_info.shape[i]))) return 1; } } make_temp_coefs_a = have_a && a_info->strides[axis] != sizeof(TYPE); make_temp_coefs_d = have_d && d_info->strides[axis] != sizeof(TYPE); make_temp_output = output_info.strides[axis] != sizeof(TYPE); if (make_temp_coefs_a) if ((temp_coefs_a = malloc(a_info->shape[axis] * sizeof(TYPE))) == NULL) goto cleanup; if (make_temp_coefs_d) if ((temp_coefs_d = malloc(d_info->shape[axis] * sizeof(TYPE))) == NULL) goto cleanup; if (make_temp_output) if ((temp_output = malloc(output_info.shape[axis] * sizeof(TYPE))) == NULL) goto cleanup; for (i = 0; i < output_info.ndim; ++i){ if (i != axis) num_loops *= output_info.shape[i]; } for (i = 0; i < num_loops; ++i){ size_t j; size_t a_offset = 0, d_offset = 0, output_offset = 0; TYPE * output_row; // Calculate offset into linear buffer { size_t reduced_idx = i; for (j = 0; j < output_info.ndim; ++j){ size_t j_rev = output_info.ndim - 1 - j; if (j_rev != axis){ size_t axis_idx = reduced_idx % output_info.shape[j_rev]; reduced_idx /= output_info.shape[j_rev]; if (have_a) a_offset += (axis_idx * a_info->strides[j_rev]); if (have_d) d_offset += (axis_idx * d_info->strides[j_rev]); output_offset += (axis_idx * output_info.strides[j_rev]); } } } // Copy to temporary input if necessary if (make_temp_coefs_a) for (j = 0; j < a_info->shape[axis]; ++j) // Offsets are byte offsets, to need to cast to char and back temp_coefs_a[j] = *(TYPE *)((char *) coefs_a + a_offset + j * a_info->strides[axis]); if (make_temp_coefs_d) for (j = 0; j < d_info->shape[axis]; ++j) // Offsets are byte offsets, to need to cast to char and back temp_coefs_d[j] = *(TYPE *)((char *) coefs_d + d_offset + j * d_info->strides[axis]); // Select temporary or direct output output_row = make_temp_output ? temp_output : (TYPE *)((char *) output + output_offset); // upsampling_convolution adds to input, so zero memset(output_row, 0, output_info.shape[axis] * sizeof(TYPE)); if (have_a){ // Pointer arithmetic on NULL is undefined const TYPE * a_row = make_temp_coefs_a ? temp_coefs_a : (const TYPE *)((const char *) coefs_a + a_offset); CAT(TYPE, _upsampling_convolution_valid_sf) (a_row, a_info->shape[axis], wavelet->CAT(rec_lo_, REAL_TYPE), wavelet->rec_len, output_row, output_info.shape[axis], mode); } if (have_d){ // Pointer arithmetic on NULL is undefined const TYPE * d_row = make_temp_coefs_d ? temp_coefs_d : (const TYPE *)((const char *) coefs_d + d_offset); CAT(TYPE, _upsampling_convolution_valid_sf) (d_row, d_info->shape[axis], wavelet->CAT(rec_hi_, REAL_TYPE), wavelet->rec_len, output_row, output_info.shape[axis], mode); } // Copy from temporary output if necessary if (make_temp_output) for (j = 0; j < output_info.shape[axis]; ++j) // Offsets are byte offsets, to need to cast to char and back *(TYPE *)((char *) output + output_offset + j * output_info.strides[axis]) = output_row[j]; } free(temp_coefs_a); free(temp_coefs_d); free(temp_output); return 0; cleanup: free(temp_coefs_a); free(temp_coefs_d); free(temp_output); return 2; } int CAT(TYPE, _dec_a)(const TYPE * const restrict input, const size_t input_len, const DiscreteWavelet * const restrict wavelet, TYPE * const restrict output, const size_t output_len, const MODE mode){ /* check output length */ if(output_len != dwt_buffer_length(input_len, wavelet->dec_len, mode)){ return -1; } return CAT(TYPE, _downsampling_convolution)(input, input_len, wavelet->CAT(dec_lo_, REAL_TYPE), wavelet->dec_len, output, 2, mode); } /* Decomposition of input with highpass filter */ int CAT(TYPE, _dec_d)(const TYPE * const restrict input, const size_t input_len, const DiscreteWavelet * const restrict wavelet, TYPE * const restrict output, const size_t output_len, const MODE mode){ /* check output length */ if(output_len != dwt_buffer_length(input_len, wavelet->dec_len, mode)) return -1; return CAT(TYPE, _downsampling_convolution)(input, input_len, wavelet->CAT(dec_hi_, REAL_TYPE), wavelet->dec_len, output, 2, mode); } /* Direct reconstruction with lowpass reconstruction filter */ int CAT(TYPE, _rec_a)(const TYPE * const restrict coeffs_a, const size_t coeffs_len, const DiscreteWavelet * const restrict wavelet, TYPE * const restrict output, const size_t output_len){ /* check output length */ if(output_len != reconstruction_buffer_length(coeffs_len, wavelet->rec_len)) return -1; return CAT(TYPE, _upsampling_convolution_full)(coeffs_a, coeffs_len, wavelet->CAT(rec_lo_, REAL_TYPE), wavelet->rec_len, output, output_len); } /* Direct reconstruction with highpass reconstruction filter */ int CAT(TYPE, _rec_d)(const TYPE * const restrict coeffs_d, const size_t coeffs_len, const DiscreteWavelet * const restrict wavelet, TYPE * const restrict output, const size_t output_len){ /* check for output length */ if(output_len != reconstruction_buffer_length(coeffs_len, wavelet->rec_len)) return -1; return CAT(TYPE, _upsampling_convolution_full)(coeffs_d, coeffs_len, wavelet->CAT(rec_hi_, REAL_TYPE), wavelet->rec_len, output, output_len); } /* * IDWT reconstruction from approximation and detail coeffs, either of which may * be NULL. * * Requires zero-filled output buffer. */ int CAT(TYPE, _idwt)(const TYPE * const restrict coeffs_a, const size_t coeffs_a_len, const TYPE * const restrict coeffs_d, const size_t coeffs_d_len, TYPE * const restrict output, const size_t output_len, const DiscreteWavelet * const restrict wavelet, const MODE mode){ size_t input_len; if(coeffs_a != NULL && coeffs_d != NULL){ if(coeffs_a_len != coeffs_d_len) goto error; input_len = coeffs_a_len; } else if(coeffs_a != NULL){ input_len = coeffs_a_len; } else if (coeffs_d != NULL){ input_len = coeffs_d_len; } else { goto error; } /* check output size */ if(output_len != idwt_buffer_length(input_len, wavelet->rec_len, mode)) goto error; /* * Set output to zero (this can be omitted if output array is already * cleared) memset(output, 0, output_len * sizeof(TYPE)); */ /* reconstruct approximation coeffs with lowpass reconstruction filter */ if(coeffs_a){ if(CAT(TYPE, _upsampling_convolution_valid_sf)(coeffs_a, input_len, wavelet->CAT(rec_lo_, REAL_TYPE), wavelet->rec_len, output, output_len, mode) < 0){ goto error; } } /* * Add reconstruction of details coeffs performed with highpass * reconstruction filter. */ if(coeffs_d){ if(CAT(TYPE, _upsampling_convolution_valid_sf)(coeffs_d, input_len, wavelet->CAT(rec_hi_, REAL_TYPE), wavelet->rec_len, output, output_len, mode) < 0){ goto error; } } return 0; error: return -1; } /* basic SWT step (TODO: optimize) */ int CAT(TYPE, _swt_)(const TYPE * const restrict input, pywt_index_t input_len, const REAL_TYPE * const restrict filter, pywt_index_t filter_len, TYPE * const restrict output, size_t output_len, unsigned int level){ REAL_TYPE * e_filter; pywt_index_t i, e_filter_len, fstep; int ret; if(level < 1) return -1; if(level > swt_max_level(input_len)) return -2; if(output_len != swt_buffer_length(input_len)) return -1; /* TODO: quick hack, optimize */ if(level > 1){ /* allocate filter first */ e_filter_len = filter_len << (level-1); if ((e_filter = wtcalloc(e_filter_len, sizeof(TYPE))) == NULL) goto cleanup; if(e_filter == NULL) return -1; fstep = 1 << (level - 1); // spacing between non-zero filter entries /* compute upsampled filter values */ for(i = 0; i < filter_len; ++i){ e_filter[i << (level-1)] = filter[i]; } ret = CAT(TYPE, _downsampling_convolution_periodization)(input, input_len, e_filter, e_filter_len, output, 1, fstep); wtfree(e_filter); return ret; } else { return CAT(TYPE, _downsampling_convolution_periodization)(input, input_len, filter, filter_len, output, 1, 1); } cleanup: wtfree(e_filter); return -3; } /* * Approximation at specified level * input - approximation coeffs from upper level or signal if level == 1 */ int CAT(TYPE, _swt_a)(const TYPE * const restrict input, pywt_index_t input_len, const DiscreteWavelet * const restrict wavelet, TYPE * const restrict output, pywt_index_t output_len, unsigned int level){ return CAT(TYPE, _swt_)(input, input_len, wavelet->CAT(dec_lo_, REAL_TYPE), wavelet->dec_len, output, output_len, level); } /* Details at specified level * input - approximation coeffs from upper level or signal if level == 1 */ int CAT(TYPE, _swt_d)(const TYPE * const restrict input, pywt_index_t input_len, const DiscreteWavelet * const restrict wavelet, TYPE * const restrict output, pywt_index_t output_len, unsigned int level){ return CAT(TYPE, _swt_)(input, input_len, wavelet->CAT(dec_hi_, REAL_TYPE), wavelet->dec_len, output, output_len, level); } #endif /* REAL_TYPE */ #endif /* TYPE */ #undef restrict PyWavelets-1.1.1/pywt/_extensions/c/wt.template.h0000664000175000017500000000754513317422762022501 0ustar lee8rxlee8rx00000000000000/* Copyright (c) 2006-2012 Filip Wasilewski * Copyright (c) 2012-2016 The PyWavelets Developers * * See COPYING for license details. */ /* Wavelet transforms using convolution functions defined in convolution.h */ #include "templating.h" #ifndef TYPE #error TYPE must be defined here. #else #include "wt.h" #if defined _MSC_VER #define restrict __restrict #elif defined __GNUC__ #define restrict __restrict__ #endif /* _a suffix - wavelet transform approximations */ /* _d suffix - wavelet transform details */ int CAT(TYPE, _downcoef_axis)(const TYPE * const restrict input, const ArrayInfo input_info, TYPE * const restrict output, const ArrayInfo output_info, const DiscreteWavelet * const restrict wavelet, const size_t axis, const Coefficient detail, const MODE dwt_mode, const size_t swt_level, const DiscreteTransformType transform); // a_info and d_info are pointers, as they may be NULL int CAT(TYPE, _idwt_axis)(const TYPE * const restrict coefs_a, const ArrayInfo * a_info, const TYPE * const restrict coefs_d, const ArrayInfo * d_info, TYPE * const restrict output, const ArrayInfo output_info, const DiscreteWavelet * const restrict wavelet, const size_t axis, const MODE mode); /* Single level decomposition */ int CAT(TYPE, _dec_a)(const TYPE * const restrict input, const size_t input_len, const DiscreteWavelet * const restrict wavelet, TYPE * const restrict output, const size_t output_len, const MODE mode); int CAT(TYPE, _dec_d)(const TYPE * const restrict input, const size_t input_len, const DiscreteWavelet * const restrict wavelet, TYPE * const restrict output, const size_t output_len, const MODE mode); /* Single level reconstruction */ int CAT(TYPE, _rec_a)(const TYPE * const restrict coeffs_a, const size_t coeffs_len, const DiscreteWavelet * const restrict wavelet, TYPE * const restrict output, const size_t output_len); int CAT(TYPE, _rec_d)(const TYPE * const restrict coeffs_d, const size_t coeffs_len, const DiscreteWavelet * const restrict wavelet, TYPE * const restrict output, const size_t output_len); /* Single level IDWT reconstruction */ int CAT(TYPE, _idwt)(const TYPE * const restrict coeffs_a, const size_t coeffs_a_len, const TYPE * const restrict coeffs_d, const size_t coeffs_d_len, TYPE * const restrict output, const size_t output_len, const DiscreteWavelet * const restrict wavelet, const MODE mode); /* SWT decomposition at given level */ int CAT(TYPE, _swt_a)(const TYPE * const restrict input, pywt_index_t input_len, const DiscreteWavelet * const restrict wavelet, TYPE * const restrict output, pywt_index_t output_len, unsigned int level); int CAT(TYPE, _swt_d)(const TYPE * const restrict input, pywt_index_t input_len, const DiscreteWavelet * const restrict wavelet, TYPE * const restrict output, pywt_index_t output_len, unsigned int level); int CAT(TYPE, _swt_axis)(const TYPE * const restrict input, const ArrayInfo input_info, TYPE * const restrict output, const ArrayInfo output_info, const DiscreteWavelet * const restrict wavelet, const size_t axis, const Coefficient detail, unsigned int level); #endif /* TYPE */ #undef restrict PyWavelets-1.1.1/pywt/_extensions/c_wt.pxd0000664000175000017500000003304513453134055021301 0ustar lee8rxlee8rx00000000000000# Copyright (c) 2006-2012 Filip Wasilewski # Copyright (c) 2012-2016 The PyWavelets Developers # # See COPYING for license details. from .common cimport (MODE, pywt_index_t, ArrayInfo, Coefficient, DiscreteTransformType) from .wavelet cimport DiscreteWavelet, ContinuousWavelet include "config.pxi" cdef extern from "c/wt.h": # Cython does not know the 'restrict' keyword cdef int double_downcoef_axis(const double * const input, const ArrayInfo input_info, double * const output, const ArrayInfo output_info, const DiscreteWavelet * const wavelet, const size_t axis, const Coefficient detail, const MODE dwt_mode, const size_t swt_level, const DiscreteTransformType transform) nogil cdef int double_idwt_axis(const double * const coefs_a, const ArrayInfo * const a_info, const double * const coefs_d, const ArrayInfo * const d_info, double * const output, const ArrayInfo output_info, const DiscreteWavelet * const wavelet, const size_t axis, const MODE mode) nogil cdef int double_dec_a(const double * const input, const size_t input_len, const DiscreteWavelet * const wavelet, double * const output, const size_t output_len, const MODE mode) nogil cdef int double_dec_d(const double * const input, const size_t input_len, const DiscreteWavelet * const wavelet, double * const output, const size_t output_len, const MODE mode) nogil cdef int double_rec_a(const double * const coeffs_a, const size_t coeffs_len, const DiscreteWavelet * const wavelet, double * const output, const size_t output_len) nogil cdef int double_rec_d(const double * const coeffs_d, const size_t coeffs_len, const DiscreteWavelet * const wavelet, double * const output, const size_t output_len) nogil cdef int double_idwt(const double * const coeffs_a, const size_t coeffs_a_len, const double * const coeffs_d, const size_t coeffs_d_len, double * const output, const size_t output_len, const DiscreteWavelet * const wavelet, const MODE mode) nogil cdef int double_swt_a(const double * const input, pywt_index_t input_len, const DiscreteWavelet * const wavelet, double * const output, pywt_index_t output_len, int level) nogil cdef int double_swt_d(const double * const input, pywt_index_t input_len, const DiscreteWavelet * const wavelet, double * const output, pywt_index_t output_len, int level) nogil cdef int float_downcoef_axis(const float * const input, const ArrayInfo input_info, float * const output, const ArrayInfo output_info, const DiscreteWavelet * const wavelet, const size_t axis, const Coefficient detail, const MODE dwt_mode, const size_t swt_level, const DiscreteTransformType transform) nogil cdef int float_idwt_axis(const float * const coefs_a, const ArrayInfo * const a_info, const float * const coefs_d, const ArrayInfo * const d_info, float * const output, const ArrayInfo output_info, const DiscreteWavelet * const wavelet, const size_t axis, const MODE mode) nogil cdef int float_dec_a(const float * const input, const size_t input_len, const DiscreteWavelet * const wavelet, float * const output, const size_t output_len, const MODE mode) nogil cdef int float_dec_d(const float * const input, const size_t input_len, const DiscreteWavelet * const wavelet, float * const output, const size_t output_len, const MODE mode) nogil cdef int float_rec_a(const float * const coeffs_a, const size_t coeffs_len, const DiscreteWavelet * const wavelet, float * const output, const size_t output_len) nogil cdef int float_rec_d(const float * const coeffs_d, const size_t coeffs_len, const DiscreteWavelet * const wavelet, float * const output, const size_t output_len) nogil cdef int float_idwt(const float * const coeffs_a, const size_t coeffs_a_len, const float * const coeffs_d, const size_t coeffs_d_len, float * const output, const size_t output_len, const DiscreteWavelet * const wavelet, const MODE mode) nogil cdef int float_swt_a(const float * const input, pywt_index_t input_len, const DiscreteWavelet * const wavelet, float * const output, pywt_index_t output_len, int level) nogil cdef int float_swt_d(const float * const input, pywt_index_t input_len, const DiscreteWavelet * const wavelet, float * const output, pywt_index_t output_len, int level) nogil IF HAVE_C99_CPLX: # complex variants only available if the compiler supports C99 complex cdef int double_complex_downcoef_axis(const double complex * const input, const ArrayInfo input_info, double complex * const output, const ArrayInfo output_info, const DiscreteWavelet * const wavelet, const size_t axis, const Coefficient detail, const MODE dwt_mode, const size_t swt_level, const DiscreteTransformType transform) nogil cdef int double_complex_idwt_axis(const double complex * const coefs_a, const ArrayInfo * const a_info, const double complex * const coefs_d, const ArrayInfo * const d_info, double complex * const output, const ArrayInfo output_info, const DiscreteWavelet * const wavelet, const size_t axis, const MODE mode) nogil cdef int double_complex_dec_a(const double complex * const input, const size_t input_len, const DiscreteWavelet * const wavelet, double complex * const output, const size_t output_len, const MODE mode) nogil cdef int double_complex_dec_d(const double complex * const input, const size_t input_len, const DiscreteWavelet * const wavelet, double complex * const output, const size_t output_len, const MODE mode) nogil cdef int double_complex_rec_a(const double complex * const coeffs_a, const size_t coeffs_len, const DiscreteWavelet * const wavelet, double complex * const output, const size_t output_len) nogil cdef int double_complex_rec_d(const double complex * const coeffs_d, const size_t coeffs_len, const DiscreteWavelet * const wavelet, double complex * const output, const size_t output_len) nogil cdef int double_complex_idwt(const double complex * const coeffs_a, const size_t coeffs_a_len, const double complex * const coeffs_d, const size_t coeffs_d_len, double complex * const output, const size_t output_len, const DiscreteWavelet * const wavelet, const MODE mode) nogil cdef int double_complex_swt_a(const double complex * const input, size_t input_len, const DiscreteWavelet * const wavelet, double complex * const output, size_t output_len, int level) nogil cdef int double_complex_swt_d(const double complex * const input, size_t input_len, const DiscreteWavelet * const wavelet, double complex * const output, size_t output_len, int level) nogil cdef int float_complex_downcoef_axis(const float complex * const input, const ArrayInfo input_info, float complex * const output, const ArrayInfo output_info, const DiscreteWavelet * const wavelet, const size_t axis, const Coefficient detail, const MODE dwt_mode, const size_t swt_level, const DiscreteTransformType transform) nogil cdef int float_complex_idwt_axis(const float complex * const coefs_a, const ArrayInfo * const a_info, const float complex * const coefs_d, const ArrayInfo * const d_info, float complex * const output, const ArrayInfo output_info, const DiscreteWavelet * const wavelet, const size_t axis, const MODE mode) nogil cdef int float_complex_dec_a(const float complex * const input, const size_t input_len, const DiscreteWavelet * const wavelet, float complex * const output, const size_t output_len, const MODE mode) nogil cdef int float_complex_dec_d(const float complex * const input, const size_t input_len, const DiscreteWavelet * const wavelet, float complex * const output, const size_t output_len, const MODE mode) nogil cdef int float_complex_rec_a(const float complex * const coeffs_a, const size_t coeffs_len, const DiscreteWavelet * const wavelet, float complex * const output, const size_t output_len) nogil cdef int float_complex_rec_d(const float complex * const coeffs_d, const size_t coeffs_len, const DiscreteWavelet * const wavelet, float complex * const output, const size_t output_len) nogil cdef int float_complex_idwt(const float complex * const coeffs_a, const size_t coeffs_a_len, const float complex * const coeffs_d, const size_t coeffs_d_len, float complex * const output, const size_t output_len, const DiscreteWavelet * const wavelet, const MODE mode) nogil cdef int float_complex_swt_a(const float complex * const input, size_t input_len, const DiscreteWavelet* const wavelet, float complex * const output, size_t output_len, int level) nogil cdef int float_complex_swt_d(const float complex * const input, size_t input_len, const DiscreteWavelet* const wavelet, float complex * const output, size_t output_len, int level) nogil cdef extern from "c/cwt.h": # Cython does not know the 'restrict' keyword cdef void double_gaus(const double * const input, double * const output, const size_t N, const size_t number) nogil cdef void double_mexh(const double * const input, double * const output, const size_t N) nogil cdef void double_morl(const double * const input, double * const output, const size_t N) nogil cdef void double_cgau(const double * const input, double * const output_r, double * const output_i, const size_t N, const size_t number) nogil cdef void double_shan(const double * const input, double * const output_r, double * const output_i, const size_t N, double FB, double FC) nogil cdef void double_fbsp(const double * const input, double * const output_r, double * const output_i, const size_t N, int M, double FB, double FC) nogil cdef void double_cmor(const double * const input, double * const output_r, double * const output_i, const size_t N, double FB, double FC) nogil cdef void float_gaus(const float * const input, float * const output, const size_t N, const size_t number) nogil cdef void float_mexh(const float * const input, float * const output, const size_t N) nogil cdef void float_morl(const float * const input, float * const output, const size_t N) nogil cdef void float_cgau(const float * const input, float * const output_r, float * const output_i, const size_t N, const size_t number) nogil cdef void float_shan(const float * const input, float * const output_r, float * const output_i, const size_t N, float FB, float FC) nogil cdef void float_fbsp(const float * const input, float * const output_r, float * const output_i, const size_t N, int M, float FB, float FC) nogil cdef void float_cmor(const float * const input, float * const output_r, float * const output_i, const size_t N, float FB, float FC) nogil PyWavelets-1.1.1/pywt/_extensions/common.pxd0000664000175000017500000000250213340062070021617 0ustar lee8rxlee8rx00000000000000cdef extern from "c/common.h": ctypedef int pywt_index_t cdef void* wtmalloc(long size) cdef void* wtcalloc(long len, long size) cdef void wtfree(void* ptr) ctypedef struct ArrayInfo: size_t * shape pywt_index_t * strides size_t ndim ctypedef enum Coefficient: COEF_APPROX = 0 COEF_DETAIL = 1 ctypedef enum DiscreteTransformType: DWT_TRANSFORM = 0 SWT_TRANSFORM = 1 ctypedef enum MODE: MODE_INVALID = -1 MODE_ZEROPAD = 0 MODE_SYMMETRIC MODE_CONSTANT_EDGE MODE_SMOOTH MODE_PERIODIC MODE_PERIODIZATION MODE_REFLECT MODE_ANTISYMMETRIC MODE_ANTIREFLECT MODE_MAX # buffers lengths cdef size_t dwt_buffer_length(size_t input_len, size_t filter_len, MODE mode) cdef size_t upsampling_buffer_length(size_t coeffs_len, size_t filter_len, MODE mode) cdef size_t reconstruction_buffer_length(size_t coeffs_len, size_t filter_len) cdef size_t idwt_buffer_length(size_t coeffs_len, size_t filter_len, MODE mode) cdef size_t swt_buffer_length(size_t coeffs_len) # max dec levels cdef unsigned char dwt_max_level(size_t input_len, size_t filter_len) cdef unsigned char swt_max_level(size_t input_len) PyWavelets-1.1.1/pywt/_extensions/config.pxi0000644000175000017500000000012313552543065021611 0ustar lee8rxlee8rx00000000000000# Autogenerated file containing Cython compile-time defines DEF HAVE_C99_CPLX = 1 PyWavelets-1.1.1/pywt/_extensions/wavelet.pxd0000664000175000017500000000370013453134055022007 0ustar lee8rxlee8rx00000000000000from .common cimport pywt_index_t cdef extern from "c/wavelets.h": ctypedef enum SYMMETRY: ASYMMETRIC NEAR_SYMMETRIC SYMMETRIC ANTI_SYMMETRIC ctypedef enum WAVELET_NAME: HAAR RBIO DB SYM COIF BIOR DMEY GAUS MEXH MORL CGAU SHAN FBSP CMOR ctypedef struct BaseWavelet: pywt_index_t support_width unsigned int orthogonal unsigned int biorthogonal unsigned int compact_support SYMMETRY symmetry int _builtin char* family_name char* short_name ctypedef struct DiscreteWavelet: double* dec_hi_double # highpass decomposition double* dec_lo_double # lowpass decomposition double* rec_hi_double # highpass reconstruction double* rec_lo_double # lowpass reconstruction float* dec_hi_float float* dec_lo_float float* rec_hi_float float* rec_lo_float size_t dec_len # length of decomposition filter size_t rec_len # length of reconstruction filter int vanishing_moments_psi int vanishing_moments_phi BaseWavelet base ctypedef struct ContinuousWavelet: BaseWavelet base float lower_bound float upper_bound float center_frequency float bandwidth_frequency unsigned int fbsp_order int complex_cwt cdef int is_discrete_wavelet(WAVELET_NAME name) cdef DiscreteWavelet* discrete_wavelet(WAVELET_NAME name, int type) cdef DiscreteWavelet* blank_discrete_wavelet(size_t filter_length) cdef void free_discrete_wavelet(DiscreteWavelet* wavelet) cdef ContinuousWavelet* continuous_wavelet(WAVELET_NAME name, int type) cdef ContinuousWavelet* blank_continuous_wavelet() cdef void free_continuous_wavelet(ContinuousWavelet* wavelet) PyWavelets-1.1.1/pywt/_extensions/wavelets_list.pxi0000664000175000017500000001006713373761260023243 0ustar lee8rxlee8rx00000000000000# Copyright (c) 2006-2012 Filip Wasilewski # Copyright (c) 2012-2016 The PyWavelets Developers # # See COPYING for license details. # Mapping of wavelet names to the C backend codes cdef extern from "c/wavelets.h": ctypedef enum WAVELET_NAME: HAAR RBIO DB SYM COIF BIOR DMEY GAUS MEXH MORL CGAU SHAN FBSP CMOR cdef __wname_to_code __wname_to_code = { "haar": (HAAR, 0), "db1": (DB, 1), "db2": (DB, 2), "db3": (DB, 3), "db4": (DB, 4), "db5": (DB, 5), "db6": (DB, 6), "db7": (DB, 7), "db8": (DB, 8), "db9": (DB, 9), "db10": (DB, 10), "db11": (DB, 11), "db12": (DB, 12), "db13": (DB, 13), "db14": (DB, 14), "db15": (DB, 15), "db16": (DB, 16), "db17": (DB, 17), "db18": (DB, 18), "db19": (DB, 19), "db20": (DB, 20), "db21": (DB, 21), "db22": (DB, 22), "db23": (DB, 23), "db24": (DB, 24), "db25": (DB, 25), "db26": (DB, 26), "db27": (DB, 27), "db28": (DB, 28), "db29": (DB, 29), "db30": (DB, 30), "db31": (DB, 31), "db32": (DB, 32), "db33": (DB, 33), "db34": (DB, 34), "db35": (DB, 35), "db36": (DB, 36), "db37": (DB, 37), "db38": (DB, 38), "sym2": (SYM, 2), "sym3": (SYM, 3), "sym4": (SYM, 4), "sym5": (SYM, 5), "sym6": (SYM, 6), "sym7": (SYM, 7), "sym8": (SYM, 8), "sym9": (SYM, 9), "sym10": (SYM, 10), "sym11": (SYM, 11), "sym12": (SYM, 12), "sym13": (SYM, 13), "sym14": (SYM, 14), "sym15": (SYM, 15), "sym16": (SYM, 16), "sym17": (SYM, 17), "sym18": (SYM, 18), "sym19": (SYM, 19), "sym20": (SYM, 20), "coif1": (COIF, 1), "coif2": (COIF, 2), "coif3": (COIF, 3), "coif4": (COIF, 4), "coif5": (COIF, 5), "coif6": (COIF, 6), "coif7": (COIF, 7), "coif8": (COIF, 8), "coif9": (COIF, 9), "coif10": (COIF, 10), "coif11": (COIF, 11), "coif12": (COIF, 12), "coif13": (COIF, 13), "coif14": (COIF, 14), "coif15": (COIF, 15), "coif16": (COIF, 16), "coif17": (COIF, 17), "bior1.1": (BIOR, 11), "bior1.3": (BIOR, 13), "bior1.5": (BIOR, 15), "bior2.2": (BIOR, 22), "bior2.4": (BIOR, 24), "bior2.6": (BIOR, 26), "bior2.8": (BIOR, 28), "bior3.1": (BIOR, 31), "bior3.3": (BIOR, 33), "bior3.5": (BIOR, 35), "bior3.7": (BIOR, 37), "bior3.9": (BIOR, 39), "bior4.4": (BIOR, 44), "bior5.5": (BIOR, 55), "bior6.8": (BIOR, 68), "rbio1.1": (RBIO, 11), "rbio1.3": (RBIO, 13), "rbio1.5": (RBIO, 15), "rbio2.2": (RBIO, 22), "rbio2.4": (RBIO, 24), "rbio2.6": (RBIO, 26), "rbio2.8": (RBIO, 28), "rbio3.1": (RBIO, 31), "rbio3.3": (RBIO, 33), "rbio3.5": (RBIO, 35), "rbio3.7": (RBIO, 37), "rbio3.9": (RBIO, 39), "rbio4.4": (RBIO, 44), "rbio5.5": (RBIO, 55), "rbio6.8": (RBIO, 68), "dmey": (DMEY, 0), "gaus1": (GAUS, 1), "gaus2": (GAUS, 2), "gaus3": (GAUS, 3), "gaus4": (GAUS, 4), "gaus5": (GAUS, 5), "gaus6": (GAUS, 6), "gaus7": (GAUS, 7), "gaus8": (GAUS, 8), "mexh": (MEXH, 0), "morl": (MORL, 0), "cgau1": (CGAU, 1), "cgau2": (CGAU, 2), "cgau3": (CGAU, 3), "cgau4": (CGAU, 4), "cgau5": (CGAU, 5), "cgau6": (CGAU, 6), "cgau7": (CGAU, 7), "cgau8": (CGAU, 8), "shan": (SHAN, 0), "fbsp": (FBSP, 0), "cmor": (CMOR, 0), } ## Lists of family names cdef __wfamily_list_short, __wfamily_list_long __wfamily_list_short = [ "haar", "db", "sym", "coif", "bior", "rbio", "dmey", "gaus", "mexh", "morl", "cgau", "shan", "fbsp", "cmor"] __wfamily_list_long = [ "Haar", "Daubechies", "Symlets", "Coiflets", "Biorthogonal", "Reverse biorthogonal", "Discrete Meyer (FIR Approximation)", "Gaussian", "Mexican hat wavelet", "Morlet wavelet", "Complex Gaussian wavelets", "Shannon wavelets", "Frequency B-Spline wavelets", "Complex Morlet wavelets"] PyWavelets-1.1.1/pywt/_functions.py0000664000175000017500000001552713445742251020024 0ustar lee8rxlee8rx00000000000000# Copyright (c) 2006-2012 Filip Wasilewski # Copyright (c) 2012-2016 The PyWavelets Developers # # See COPYING for license details. """ Other wavelet related functions. """ from __future__ import division, print_function, absolute_import import warnings import numpy as np from numpy.fft import fft from ._extensions._pywt import DiscreteContinuousWavelet, Wavelet, ContinuousWavelet __all__ = ["integrate_wavelet", "central_frequency", "scale2frequency", "qmf", "orthogonal_filter_bank", "intwave", "centrfrq", "scal2frq", "orthfilt"] _DEPRECATION_MSG = ("`{old}` has been renamed to `{new}` and will " "be removed in a future version of pywt.") def _integrate(arr, step): integral = np.cumsum(arr) integral *= step return integral def intwave(*args, **kwargs): msg = _DEPRECATION_MSG.format(old='intwave', new='integrate_wavelet') warnings.warn(msg, DeprecationWarning) return integrate_wavelet(*args, **kwargs) def centrfrq(*args, **kwargs): msg = _DEPRECATION_MSG.format(old='centrfrq', new='central_frequency') warnings.warn(msg, DeprecationWarning) return central_frequency(*args, **kwargs) def scal2frq(*args, **kwargs): msg = _DEPRECATION_MSG.format(old='scal2frq', new='scale2frequency') warnings.warn(msg, DeprecationWarning) return scale2frequency(*args, **kwargs) def orthfilt(*args, **kwargs): msg = _DEPRECATION_MSG.format(old='orthfilt', new='orthogonal_filter_bank') warnings.warn(msg, DeprecationWarning) return orthogonal_filter_bank(*args, **kwargs) def integrate_wavelet(wavelet, precision=8): """ Integrate `psi` wavelet function from -Inf to x using the rectangle integration method. Parameters ---------- wavelet : Wavelet instance or str Wavelet to integrate. If a string, should be the name of a wavelet. precision : int, optional Precision that will be used for wavelet function approximation computed with the wavefun(level=precision) Wavelet's method (default: 8). Returns ------- [int_psi, x] : for orthogonal wavelets [int_psi_d, int_psi_r, x] : for other wavelets Examples -------- >>> from pywt import Wavelet, integrate_wavelet >>> wavelet1 = Wavelet('db2') >>> [int_psi, x] = integrate_wavelet(wavelet1, precision=5) >>> wavelet2 = Wavelet('bior1.3') >>> [int_psi_d, int_psi_r, x] = integrate_wavelet(wavelet2, precision=5) """ # FIXME: this function should really use scipy.integrate.quad if type(wavelet) in (tuple, list): msg = ("Integration of a general signal is deprecated " "and will be removed in a future version of pywt.") warnings.warn(msg, DeprecationWarning) elif not isinstance(wavelet, (Wavelet, ContinuousWavelet)): wavelet = DiscreteContinuousWavelet(wavelet) if type(wavelet) in (tuple, list): psi, x = np.asarray(wavelet[0]), np.asarray(wavelet[1]) step = x[1] - x[0] return _integrate(psi, step), x functions_approximations = wavelet.wavefun(precision) if len(functions_approximations) == 2: # continuous wavelet psi, x = functions_approximations step = x[1] - x[0] return _integrate(psi, step), x elif len(functions_approximations) == 3: # orthogonal wavelet phi, psi, x = functions_approximations step = x[1] - x[0] return _integrate(psi, step), x else: # biorthogonal wavelet phi_d, psi_d, phi_r, psi_r, x = functions_approximations step = x[1] - x[0] return _integrate(psi_d, step), _integrate(psi_r, step), x def central_frequency(wavelet, precision=8): """ Computes the central frequency of the `psi` wavelet function. Parameters ---------- wavelet : Wavelet instance, str or tuple Wavelet to integrate. If a string, should be the name of a wavelet. precision : int, optional Precision that will be used for wavelet function approximation computed with the wavefun(level=precision) Wavelet's method (default: 8). Returns ------- scalar """ if not isinstance(wavelet, (Wavelet, ContinuousWavelet)): wavelet = DiscreteContinuousWavelet(wavelet) functions_approximations = wavelet.wavefun(precision) if len(functions_approximations) == 2: psi, x = functions_approximations else: # (psi, x) for (phi, psi, x) # (psi_d, x) for (phi_d, psi_d, phi_r, psi_r, x) psi, x = functions_approximations[1], functions_approximations[-1] domain = float(x[-1] - x[0]) assert domain > 0 index = np.argmax(abs(fft(psi)[1:])) + 2 if index > len(psi) / 2: index = len(psi) - index + 2 return 1.0 / (domain / (index - 1)) def scale2frequency(wavelet, scale, precision=8): """ Parameters ---------- wavelet : Wavelet instance or str Wavelet to integrate. If a string, should be the name of a wavelet. scale : scalar precision : int, optional Precision that will be used for wavelet function approximation computed with ``wavelet.wavefun(level=precision)``. Default is 8. Returns ------- freq : scalar """ return central_frequency(wavelet, precision=precision) / scale def qmf(filt): """ Returns the Quadrature Mirror Filter(QMF). The magnitude response of QMF is mirror image about `pi/2` of that of the input filter. Parameters ---------- filt : array_like Input filter for which QMF needs to be computed. Returns ------- qm_filter : ndarray Quadrature mirror of the input filter. """ qm_filter = np.array(filt)[::-1] qm_filter[1::2] = -qm_filter[1::2] return qm_filter def orthogonal_filter_bank(scaling_filter): """ Returns the orthogonal filter bank. The orthogonal filter bank consists of the HPFs and LPFs at decomposition and reconstruction stage for the input scaling filter. Parameters ---------- scaling_filter : array_like Input scaling filter (father wavelet). Returns ------- orth_filt_bank : tuple of 4 ndarrays The orthogonal filter bank of the input scaling filter in the order : 1] Decomposition LPF 2] Decomposition HPF 3] Reconstruction LPF 4] Reconstruction HPF """ if not (len(scaling_filter) % 2 == 0): raise ValueError("`scaling_filter` length has to be even.") scaling_filter = np.asarray(scaling_filter, dtype=np.float64) rec_lo = np.sqrt(2) * scaling_filter / np.sum(scaling_filter) dec_lo = rec_lo[::-1] rec_hi = qmf(rec_lo) dec_hi = rec_hi[::-1] orth_filt_bank = (dec_lo, dec_hi, rec_lo, rec_hi) return orth_filt_bank PyWavelets-1.1.1/pywt/_multidim.py0000644000175000017500000002607013552333332017624 0ustar lee8rxlee8rx00000000000000# Copyright (c) 2006-2012 Filip Wasilewski # Copyright (c) 2012-2016 The PyWavelets Developers # # See COPYING for license details. """ 2D and nD Discrete Wavelet Transforms and Inverse Discrete Wavelet Transforms. """ from __future__ import division, print_function, absolute_import from itertools import product import numpy as np from ._c99_config import _have_c99_complex from ._extensions._dwt import dwt_axis, idwt_axis from ._utils import _wavelets_per_axis, _modes_per_axis __all__ = ['dwt2', 'idwt2', 'dwtn', 'idwtn'] def dwt2(data, wavelet, mode='symmetric', axes=(-2, -1)): """ 2D Discrete Wavelet Transform. Parameters ---------- data : array_like 2D array with input data wavelet : Wavelet object or name string, or 2-tuple of wavelets Wavelet to use. This can also be a tuple containing a wavelet to apply along each axis in ``axes``. mode : str or 2-tuple of strings, optional Signal extension mode, see :ref:`Modes `. This can also be a tuple of modes specifying the mode to use on each axis in ``axes``. axes : 2-tuple of ints, optional Axes over which to compute the DWT. Repeated elements mean the DWT will be performed multiple times along these axes. Returns ------- (cA, (cH, cV, cD)) : tuple Approximation, horizontal detail, vertical detail and diagonal detail coefficients respectively. Horizontal refers to array axis 0 (or ``axes[0]`` for user-specified ``axes``). Examples -------- >>> import numpy as np >>> import pywt >>> data = np.ones((4,4), dtype=np.float64) >>> coeffs = pywt.dwt2(data, 'haar') >>> cA, (cH, cV, cD) = coeffs >>> cA array([[ 2., 2.], [ 2., 2.]]) >>> cV array([[ 0., 0.], [ 0., 0.]]) """ axes = tuple(axes) data = np.asarray(data) if len(axes) != 2: raise ValueError("Expected 2 axes") if data.ndim < len(np.unique(axes)): raise ValueError("Input array has fewer dimensions than the specified " "axes") coefs = dwtn(data, wavelet, mode, axes) return coefs['aa'], (coefs['da'], coefs['ad'], coefs['dd']) def idwt2(coeffs, wavelet, mode='symmetric', axes=(-2, -1)): """ 2-D Inverse Discrete Wavelet Transform. Reconstructs data from coefficient arrays. Parameters ---------- coeffs : tuple (cA, (cH, cV, cD)) A tuple with approximation coefficients and three details coefficients 2D arrays like from ``dwt2``. If any of these components are set to ``None``, it will be treated as zeros. wavelet : Wavelet object or name string, or 2-tuple of wavelets Wavelet to use. This can also be a tuple containing a wavelet to apply along each axis in ``axes``. mode : str or 2-tuple of strings, optional Signal extension mode, see :ref:`Modes `. This can also be a tuple of modes specifying the mode to use on each axis in ``axes``. axes : 2-tuple of ints, optional Axes over which to compute the IDWT. Repeated elements mean the IDWT will be performed multiple times along these axes. Examples -------- >>> import numpy as np >>> import pywt >>> data = np.array([[1,2], [3,4]], dtype=np.float64) >>> coeffs = pywt.dwt2(data, 'haar') >>> pywt.idwt2(coeffs, 'haar') array([[ 1., 2.], [ 3., 4.]]) """ # L -low-pass data, H - high-pass data LL, (HL, LH, HH) = coeffs axes = tuple(axes) if len(axes) != 2: raise ValueError("Expected 2 axes") coeffs = {'aa': LL, 'da': HL, 'ad': LH, 'dd': HH} return idwtn(coeffs, wavelet, mode, axes) def dwtn(data, wavelet, mode='symmetric', axes=None): """ Single-level n-dimensional Discrete Wavelet Transform. Parameters ---------- data : array_like n-dimensional array with input data. wavelet : Wavelet object or name string, or tuple of wavelets Wavelet to use. This can also be a tuple containing a wavelet to apply along each axis in ``axes``. mode : str or tuple of string, optional Signal extension mode used in the decomposition, see :ref:`Modes `. This can also be a tuple of modes specifying the mode to use on each axis in ``axes``. axes : sequence of ints, optional Axes over which to compute the DWT. Repeated elements mean the DWT will be performed multiple times along these axes. A value of ``None`` (the default) selects all axes. Axes may be repeated, but information about the original size may be lost if it is not divisible by ``2 ** nrepeats``. The reconstruction will be larger, with additional values derived according to the ``mode`` parameter. ``pywt.wavedecn`` should be used for multilevel decomposition. Returns ------- coeffs : dict Results are arranged in a dictionary, where key specifies the transform type on each dimension and value is a n-dimensional coefficients array. For example, for a 2D case the result will look something like this:: {'aa': # A(LL) - approx. on 1st dim, approx. on 2nd dim 'ad': # V(LH) - approx. on 1st dim, det. on 2nd dim 'da': # H(HL) - det. on 1st dim, approx. on 2nd dim 'dd': # D(HH) - det. on 1st dim, det. on 2nd dim } For user-specified ``axes``, the order of the characters in the dictionary keys map to the specified ``axes``. """ data = np.asarray(data) if not _have_c99_complex and np.iscomplexobj(data): real = dwtn(data.real, wavelet, mode, axes) imag = dwtn(data.imag, wavelet, mode, axes) return dict((k, real[k] + 1j * imag[k]) for k in real.keys()) if data.dtype == np.dtype('object'): raise TypeError("Input must be a numeric array-like") if data.ndim < 1: raise ValueError("Input data must be at least 1D") if axes is None: axes = range(data.ndim) axes = [a + data.ndim if a < 0 else a for a in axes] modes = _modes_per_axis(mode, axes) wavelets = _wavelets_per_axis(wavelet, axes) coeffs = [('', data)] for axis, wav, mode in zip(axes, wavelets, modes): new_coeffs = [] for subband, x in coeffs: cA, cD = dwt_axis(x, wav, mode, axis) new_coeffs.extend([(subband + 'a', cA), (subband + 'd', cD)]) coeffs = new_coeffs return dict(coeffs) def _fix_coeffs(coeffs): missing_keys = [k for k, v in coeffs.items() if v is None] if missing_keys: raise ValueError( "The following detail coefficients were set to None:\n" "{0}\n" "For multilevel transforms, rather than setting\n" "\tcoeffs[key] = None\n" "use\n" "\tcoeffs[key] = np.zeros_like(coeffs[key])\n".format( missing_keys)) invalid_keys = [k for k, v in coeffs.items() if not set(k) <= set('ad')] if invalid_keys: raise ValueError( "The following invalid keys were found in the detail " "coefficient dictionary: {}.".format(invalid_keys)) key_lengths = [len(k) for k in coeffs.keys()] if len(np.unique(key_lengths)) > 1: raise ValueError( "All detail coefficient names must have equal length.") return dict((k, np.asarray(v)) for k, v in coeffs.items()) def idwtn(coeffs, wavelet, mode='symmetric', axes=None): """ Single-level n-dimensional Inverse Discrete Wavelet Transform. Parameters ---------- coeffs: dict Dictionary as in output of ``dwtn``. Missing or ``None`` items will be treated as zeros. wavelet : Wavelet object or name string, or tuple of wavelets Wavelet to use. This can also be a tuple containing a wavelet to apply along each axis in ``axes``. mode : str or list of string, optional Signal extension mode used in the decomposition, see :ref:`Modes `. This can also be a tuple of modes specifying the mode to use on each axis in ``axes``. axes : sequence of ints, optional Axes over which to compute the IDWT. Repeated elements mean the IDWT will be performed multiple times along these axes. A value of ``None`` (the default) selects all axes. For the most accurate reconstruction, the axes should be provided in the same order as they were provided to ``dwtn``. Returns ------- data: ndarray Original signal reconstructed from input data. """ # drop the keys corresponding to value = None coeffs = dict((k, v) for k, v in coeffs.items() if v is not None) # Raise error for invalid key combinations coeffs = _fix_coeffs(coeffs) if (not _have_c99_complex and any(np.iscomplexobj(v) for v in coeffs.values())): real_coeffs = dict((k, v.real) for k, v in coeffs.items()) imag_coeffs = dict((k, v.imag) for k, v in coeffs.items()) return (idwtn(real_coeffs, wavelet, mode, axes) + 1j * idwtn(imag_coeffs, wavelet, mode, axes)) # key length matches the number of axes transformed ndim_transform = max(len(key) for key in coeffs.keys()) try: coeff_shapes = (v.shape for k, v in coeffs.items() if v is not None and len(k) == ndim_transform) coeff_shape = next(coeff_shapes) except StopIteration: raise ValueError("`coeffs` must contain at least one non-null wavelet " "band") if any(s != coeff_shape for s in coeff_shapes): raise ValueError("`coeffs` must all be of equal size (or None)") if axes is None: axes = range(ndim_transform) ndim = ndim_transform else: ndim = len(coeff_shape) axes = [a + ndim if a < 0 else a for a in axes] modes = _modes_per_axis(mode, axes) wavelets = _wavelets_per_axis(wavelet, axes) for key_length, (axis, wav, mode) in reversed( list(enumerate(zip(axes, wavelets, modes)))): if axis < 0 or axis >= ndim: raise ValueError("Axis greater than data dimensions") new_coeffs = {} new_keys = [''.join(coef) for coef in product('ad', repeat=key_length)] for key in new_keys: L = coeffs.get(key + 'a', None) H = coeffs.get(key + 'd', None) if L is not None and H is not None: if L.dtype != H.dtype: # upcast to a common dtype (float64 or complex128) if L.dtype.kind == 'c' or H.dtype.kind == 'c': dtype = np.complex128 else: dtype = np.float64 L = np.asarray(L, dtype=dtype) H = np.asarray(H, dtype=dtype) new_coeffs[key] = idwt_axis(L, H, wav, mode, axis) coeffs = new_coeffs return coeffs[''] PyWavelets-1.1.1/pywt/_multilevel.py0000644000175000017500000015634713552333332020175 0ustar lee8rxlee8rx00000000000000# Copyright (c) 2006-2012 Filip Wasilewski # Copyright (c) 2012-2018 The PyWavelets Developers # # See COPYING for license details. """ Multilevel 1D and 2D Discrete Wavelet Transform and Inverse Discrete Wavelet Transform. """ from __future__ import division, print_function, absolute_import import numbers import warnings from itertools import product from copy import copy import numpy as np from ._extensions._pywt import Wavelet, Modes from ._extensions._dwt import dwt_max_level from ._dwt import dwt, idwt, dwt_coeff_len from ._multidim import dwt2, idwt2, dwtn, idwtn, _fix_coeffs from ._utils import _as_wavelet, _wavelets_per_axis, _modes_per_axis __all__ = ['wavedec', 'waverec', 'wavedec2', 'waverec2', 'wavedecn', 'waverecn', 'coeffs_to_array', 'array_to_coeffs', 'ravel_coeffs', 'unravel_coeffs', 'dwtn_max_level', 'wavedecn_size', 'wavedecn_shapes', 'fswavedecn', 'fswaverecn', 'FswavedecnResult'] def _check_level(sizes, dec_lens, level): if np.isscalar(sizes): sizes = (sizes, ) if np.isscalar(dec_lens): dec_lens = (dec_lens, ) max_level = np.min([dwt_max_level(s, d) for s, d in zip(sizes, dec_lens)]) if level is None: level = max_level elif level < 0: raise ValueError( "Level value of %d is too low . Minimum level is 0." % level) elif level > max_level: warnings.warn( ("Level value of {} is too high: all coefficients will experience " "boundary effects.").format(level)) return level def wavedec(data, wavelet, mode='symmetric', level=None, axis=-1): """ Multilevel 1D Discrete Wavelet Transform of data. Parameters ---------- data: array_like Input data wavelet : Wavelet object or name string Wavelet to use mode : str, optional Signal extension mode, see :ref:`Modes `. level : int, optional Decomposition level (must be >= 0). If level is None (default) then it will be calculated using the ``dwt_max_level`` function. axis: int, optional Axis over which to compute the DWT. If not given, the last axis is used. Returns ------- [cA_n, cD_n, cD_n-1, ..., cD2, cD1] : list Ordered list of coefficients arrays where ``n`` denotes the level of decomposition. The first element (``cA_n``) of the result is approximation coefficients array and the following elements (``cD_n`` - ``cD_1``) are details coefficients arrays. Examples -------- >>> from pywt import wavedec >>> coeffs = wavedec([1,2,3,4,5,6,7,8], 'db1', level=2) >>> cA2, cD2, cD1 = coeffs >>> cD1 array([-0.70710678, -0.70710678, -0.70710678, -0.70710678]) >>> cD2 array([-2., -2.]) >>> cA2 array([ 5., 13.]) """ data = np.asarray(data) wavelet = _as_wavelet(wavelet) try: axes_shape = data.shape[axis] except IndexError: raise ValueError("Axis greater than data dimensions") level = _check_level(axes_shape, wavelet.dec_len, level) coeffs_list = [] a = data for i in range(level): a, d = dwt(a, wavelet, mode, axis) coeffs_list.append(d) coeffs_list.append(a) coeffs_list.reverse() return coeffs_list def waverec(coeffs, wavelet, mode='symmetric', axis=-1): """ Multilevel 1D Inverse Discrete Wavelet Transform. Parameters ---------- coeffs : array_like Coefficients list [cAn, cDn, cDn-1, ..., cD2, cD1] wavelet : Wavelet object or name string Wavelet to use mode : str, optional Signal extension mode, see :ref:`Modes `. axis: int, optional Axis over which to compute the inverse DWT. If not given, the last axis is used. Notes ----- It may sometimes be desired to run ``waverec`` with some sets of coefficients omitted. This can best be done by setting the corresponding arrays to zero arrays of matching shape and dtype. Explicitly removing list entries or setting them to None is not supported. Specifically, to ignore detail coefficients at level 2, one could do:: coeffs[-2] == np.zeros_like(coeffs[-2]) Examples -------- >>> import pywt >>> coeffs = pywt.wavedec([1,2,3,4,5,6,7,8], 'db1', level=2) >>> pywt.waverec(coeffs, 'db1') array([ 1., 2., 3., 4., 5., 6., 7., 8.]) """ if not isinstance(coeffs, (list, tuple)): raise ValueError("Expected sequence of coefficient arrays.") if len(coeffs) < 1: raise ValueError( "Coefficient list too short (minimum 1 arrays required).") elif len(coeffs) == 1: # level 0 transform (just returns the approximation coefficients) return coeffs[0] a, ds = coeffs[0], coeffs[1:] for d in ds: if d is not None and not isinstance(d, np.ndarray): raise ValueError(( "Unexpected detail coefficient type: {}. Detail coefficients " "must be arrays as returned by wavedec. If you are using " "pywt.array_to_coeffs or pywt.unravel_coeffs, please specify " "output_format='wavedec'").format(type(d))) if (a is not None) and (d is not None): try: if a.shape[axis] == d.shape[axis] + 1: a = a[tuple(slice(s) for s in d.shape)] elif a.shape[axis] != d.shape[axis]: raise ValueError("coefficient shape mismatch") except IndexError: raise ValueError("Axis greater than coefficient dimensions") a = idwt(a, d, wavelet, mode, axis) return a def wavedec2(data, wavelet, mode='symmetric', level=None, axes=(-2, -1)): """ Multilevel 2D Discrete Wavelet Transform. Parameters ---------- data : ndarray 2D input data wavelet : Wavelet object or name string, or 2-tuple of wavelets Wavelet to use. This can also be a tuple containing a wavelet to apply along each axis in ``axes``. mode : str or 2-tuple of str, optional Signal extension mode, see :ref:`Modes `. This can also be a tuple containing a mode to apply along each axis in ``axes``. level : int, optional Decomposition level (must be >= 0). If level is None (default) then it will be calculated using the ``dwt_max_level`` function. axes : 2-tuple of ints, optional Axes over which to compute the DWT. Repeated elements are not allowed. Returns ------- [cAn, (cHn, cVn, cDn), ... (cH1, cV1, cD1)] : list Coefficients list. For user-specified ``axes``, ``cH*`` corresponds to ``axes[0]`` while ``cV*`` corresponds to ``axes[1]``. The first element returned is the approximation coefficients for the nth level of decomposition. Remaining elements are tuples of detail coefficients in descending order of decomposition level. (i.e. ``cH1`` are the horizontal detail coefficients at the first level) Examples -------- >>> import pywt >>> import numpy as np >>> coeffs = pywt.wavedec2(np.ones((4,4)), 'db1') >>> # Levels: >>> len(coeffs)-1 2 >>> pywt.waverec2(coeffs, 'db1') array([[ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.]]) """ data = np.asarray(data) if data.ndim < 2: raise ValueError("Expected input data to have at least 2 dimensions.") axes = tuple(axes) if len(axes) != 2: raise ValueError("Expected 2 axes") if len(axes) != len(set(axes)): raise ValueError("The axes passed to wavedec2 must be unique.") try: axes_sizes = [data.shape[ax] for ax in axes] except IndexError: raise ValueError("Axis greater than data dimensions") wavelets = _wavelets_per_axis(wavelet, axes) dec_lengths = [w.dec_len for w in wavelets] level = _check_level(axes_sizes, dec_lengths, level) coeffs_list = [] a = data for i in range(level): a, ds = dwt2(a, wavelet, mode, axes) coeffs_list.append(ds) coeffs_list.append(a) coeffs_list.reverse() return coeffs_list def waverec2(coeffs, wavelet, mode='symmetric', axes=(-2, -1)): """ Multilevel 2D Inverse Discrete Wavelet Transform. coeffs : list or tuple Coefficients list [cAn, (cHn, cVn, cDn), ... (cH1, cV1, cD1)] wavelet : Wavelet object or name string, or 2-tuple of wavelets Wavelet to use. This can also be a tuple containing a wavelet to apply along each axis in ``axes``. mode : str or 2-tuple of str, optional Signal extension mode, see :ref:`Modes `. This can also be a tuple containing a mode to apply along each axis in ``axes``. axes : 2-tuple of ints, optional Axes over which to compute the IDWT. Repeated elements are not allowed. Returns ------- 2D array of reconstructed data. Notes ----- It may sometimes be desired to run ``waverec2`` with some sets of coefficients omitted. This can best be done by setting the corresponding arrays to zero arrays of matching shape and dtype. Explicitly removing list or tuple entries or setting them to None is not supported. Specifically, to ignore all detail coefficients at level 2, one could do:: coeffs[-2] == tuple([np.zeros_like(v) for v in coeffs[-2]]) Examples -------- >>> import pywt >>> import numpy as np >>> coeffs = pywt.wavedec2(np.ones((4,4)), 'db1') >>> # Levels: >>> len(coeffs)-1 2 >>> pywt.waverec2(coeffs, 'db1') array([[ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.]]) """ if not isinstance(coeffs, (list, tuple)): raise ValueError("Expected sequence of coefficient arrays.") if len(axes) != len(set(axes)): raise ValueError("The axes passed to waverec2 must be unique.") if len(coeffs) < 1: raise ValueError( "Coefficient list too short (minimum 1 array required).") elif len(coeffs) == 1: # level 0 transform (just returns the approximation coefficients) return coeffs[0] a, ds = coeffs[0], coeffs[1:] a = np.asarray(a) for d in ds: if not isinstance(d, (list, tuple)) or len(d) != 3: raise ValueError(( "Unexpected detail coefficient type: {}. Detail coefficients " "must be a 3-tuple of arrays as returned by wavedec2. If you " "are using pywt.array_to_coeffs or pywt.unravel_coeffs, " "please specify output_format='wavedec2'").format(type(d))) d = tuple(np.asarray(coeff) if coeff is not None else None for coeff in d) d_shapes = (coeff.shape for coeff in d if coeff is not None) try: d_shape = next(d_shapes) except StopIteration: idxs = slice(None), slice(None) else: if not all(s == d_shape for s in d_shapes): raise ValueError("All detail shapes must be the same length.") idxs = tuple(slice(None, -1 if a_len == d_len + 1 else None) for a_len, d_len in zip(a.shape, d_shape)) a = idwt2((a[idxs], d), wavelet, mode, axes) return a def _prep_axes_wavedecn(shape, axes): if len(shape) < 1: raise ValueError("Expected at least 1D input data.") ndim = len(shape) if np.isscalar(axes): axes = (axes, ) if axes is None: axes = range(ndim) else: axes = tuple(axes) if len(axes) != len(set(axes)): raise ValueError("The axes passed to wavedecn must be unique.") try: axes_shapes = [shape[ax] for ax in axes] except IndexError: raise ValueError("Axis greater than data dimensions") ndim_transform = len(axes) return axes, axes_shapes, ndim_transform def wavedecn(data, wavelet, mode='symmetric', level=None, axes=None): """ Multilevel nD Discrete Wavelet Transform. Parameters ---------- data : ndarray nD input data wavelet : Wavelet object or name string, or tuple of wavelets Wavelet to use. This can also be a tuple containing a wavelet to apply along each axis in ``axes``. mode : str or tuple of str, optional Signal extension mode, see :ref:`Modes `. This can also be a tuple containing a mode to apply along each axis in ``axes``. level : int, optional Decomposition level (must be >= 0). If level is None (default) then it will be calculated using the ``dwt_max_level`` function. axes : sequence of ints, optional Axes over which to compute the DWT. Axes may not be repeated. The default is None, which means transform all axes (``axes = range(data.ndim)``). Returns ------- [cAn, {details_level_n}, ... {details_level_1}] : list Coefficients list. Coefficients are listed in descending order of decomposition level. ``cAn`` are the approximation coefficients at level ``n``. Each ``details_level_i`` element is a dictionary containing detail coefficients at level ``i`` of the decomposition. As a concrete example, a 3D decomposition would have the following set of keys in each ``details_level_i`` dictionary:: {'aad', 'ada', 'daa', 'add', 'dad', 'dda', 'ddd'} where the order of the characters in each key map to the specified ``axes``. Examples -------- >>> import numpy as np >>> from pywt import wavedecn, waverecn >>> coeffs = wavedecn(np.ones((4, 4, 4)), 'db1') >>> # Levels: >>> len(coeffs)-1 2 >>> waverecn(coeffs, 'db1') # doctest: +NORMALIZE_WHITESPACE array([[[ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.]], [[ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.]], [[ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.]], [[ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.]]]) """ data = np.asarray(data) axes, axes_shapes, ndim_transform = _prep_axes_wavedecn(data.shape, axes) wavelets = _wavelets_per_axis(wavelet, axes) dec_lengths = [w.dec_len for w in wavelets] level = _check_level(axes_shapes, dec_lengths, level) coeffs_list = [] a = data for i in range(level): coeffs = dwtn(a, wavelet, mode, axes) a = coeffs.pop('a' * ndim_transform) coeffs_list.append(coeffs) coeffs_list.append(a) coeffs_list.reverse() return coeffs_list def _match_coeff_dims(a_coeff, d_coeff_dict): # For each axis, compare the approximation coeff shape to one of the # stored detail coeffs and truncate the last element along the axis # if necessary. if a_coeff is None: return None if not d_coeff_dict: return a_coeff d_coeff = d_coeff_dict[next(iter(d_coeff_dict))] size_diffs = np.subtract(a_coeff.shape, d_coeff.shape) if np.any((size_diffs < 0) | (size_diffs > 1)): print(size_diffs) raise ValueError("incompatible coefficient array sizes") return a_coeff[tuple(slice(s) for s in d_coeff.shape)] def waverecn(coeffs, wavelet, mode='symmetric', axes=None): """ Multilevel nD Inverse Discrete Wavelet Transform. coeffs : array_like Coefficients list [cAn, {details_level_n}, ... {details_level_1}] wavelet : Wavelet object or name string, or tuple of wavelets Wavelet to use. This can also be a tuple containing a wavelet to apply along each axis in ``axes``. mode : str or tuple of str, optional Signal extension mode, see :ref:`Modes `. This can also be a tuple containing a mode to apply along each axis in ``axes``. axes : sequence of ints, optional Axes over which to compute the IDWT. Axes may not be repeated. Returns ------- nD array of reconstructed data. Notes ----- It may sometimes be desired to run ``waverecn`` with some sets of coefficients omitted. This can best be done by setting the corresponding arrays to zero arrays of matching shape and dtype. Explicitly removing list or dictionary entries or setting them to None is not supported. Specifically, to ignore all detail coefficients at level 2, one could do:: coeffs[-2] = {k: np.zeros_like(v) for k, v in coeffs[-2].items()} Examples -------- >>> import numpy as np >>> from pywt import wavedecn, waverecn >>> coeffs = wavedecn(np.ones((4, 4, 4)), 'db1') >>> # Levels: >>> len(coeffs)-1 2 >>> waverecn(coeffs, 'db1') # doctest: +NORMALIZE_WHITESPACE array([[[ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.]], [[ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.]], [[ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.]], [[ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.]]]) """ if len(coeffs) < 1: raise ValueError( "Coefficient list too short (minimum 1 array required).") a, ds = coeffs[0], coeffs[1:] # this dictionary check must be prior to the call to _fix_coeffs if len(ds) > 0 and not all([isinstance(d, dict) for d in ds]): raise ValueError(( "Unexpected detail coefficient type: {}. Detail coefficients " "must be a dicionary of arrays as returned by wavedecn. If " "you are using pywt.array_to_coeffs or pywt.unravel_coeffs, " "please specify output_format='wavedecn'").format(type(ds[0]))) # Raise error for invalid key combinations ds = list(map(_fix_coeffs, ds)) if not ds: # level 0 transform (just returns the approximation coefficients) return coeffs[0] if a is None and not any(ds): raise ValueError( "At least one coefficient must contain a valid value.") coeff_ndims = [] if a is not None: a = np.asarray(a) coeff_ndims.append(a.ndim) for d in ds: coeff_ndims += [v.ndim for k, v in d.items()] # test that all coefficients have a matching number of dimensions unique_coeff_ndims = np.unique(coeff_ndims) if len(unique_coeff_ndims) == 1: ndim = unique_coeff_ndims[0] else: raise ValueError( "All coefficients must have a matching number of dimensions") if np.isscalar(axes): axes = (axes, ) if axes is None: axes = range(ndim) else: axes = tuple(axes) if len(axes) != len(set(axes)): raise ValueError("The axes passed to waverecn must be unique.") ndim_transform = len(axes) for idx, d in enumerate(ds): if a is None and not d: continue # The following if statement handles the case where the approximation # coefficient returned at the previous level may exceed the size of the # stored detail coefficients by 1 on any given axis. if idx > 0: a = _match_coeff_dims(a, d) d['a' * ndim_transform] = a a = idwtn(d, wavelet, mode, axes) return a def _coeffs_wavedec_to_wavedecn(coeffs): """Convert wavedec coefficients to the wavedecn format.""" if len(coeffs) == 0: return coeffs coeffs = copy(coeffs) for n in range(1, len(coeffs)): if coeffs[n] is None: continue if coeffs[n].ndim != 1: raise ValueError("expected a 1D coefficient array") coeffs[n] = dict(d=coeffs[n]) return coeffs def _coeffs_wavedec2_to_wavedecn(coeffs): """Convert wavedec2 coefficients to the wavedecn format.""" if len(coeffs) == 0: return coeffs coeffs = copy(coeffs) for n in range(1, len(coeffs)): if not isinstance(coeffs[n], (tuple, list)) or len(coeffs[n]) != 3: raise ValueError("expected a 3-tuple of detail coefficients") (da, ad, dd) = coeffs[n] if da is None or ad is None or dd is None: raise ValueError( "Expected numpy arrays of detail coefficients. Setting " "coefficients to None is not supported.") coeffs[n] = dict(ad=ad, da=da, dd=dd) return coeffs def _determine_coeff_array_shape(coeffs, axes): arr_shape = np.asarray(coeffs[0].shape) axes = np.asarray(axes) # axes that were transformed ndim_transform = len(axes) ncoeffs = coeffs[0].size for d in coeffs[1:]: arr_shape[axes] += np.asarray(d['d'*ndim_transform].shape)[axes] for k, v in d.items(): ncoeffs += v.size arr_shape = tuple(arr_shape.tolist()) # if the total number of coefficients doesn't equal the size of the array # then tight packing is not possible. is_tight_packing = (np.prod(arr_shape) == ncoeffs) return arr_shape, is_tight_packing def _prepare_coeffs_axes(coeffs, axes): """Helper function to check type of coeffs and axes. This code is used by both coeffs_to_array and ravel_coeffs. """ if not isinstance(coeffs, list) or len(coeffs) == 0: raise ValueError("input must be a list of coefficients from wavedecn") if coeffs[0] is None: raise ValueError("coeffs_to_array does not support missing " "coefficients.") if not isinstance(coeffs[0], np.ndarray): raise ValueError("first list element must be a numpy array") ndim = coeffs[0].ndim if len(coeffs) > 1: # convert wavedec or wavedec2 format coefficients to waverecn format if isinstance(coeffs[1], dict): pass elif isinstance(coeffs[1], np.ndarray): coeffs = _coeffs_wavedec_to_wavedecn(coeffs) elif isinstance(coeffs[1], (tuple, list)): coeffs = _coeffs_wavedec2_to_wavedecn(coeffs) else: raise ValueError("invalid coefficient list") if len(coeffs) == 1: # no detail coefficients were found return coeffs, axes, ndim, None # Determine the number of dimensions that were transformed via key length ndim_transform = len(list(coeffs[1].keys())[0]) if axes is None: if ndim_transform < ndim: raise ValueError( "coeffs corresponds to a DWT performed over only a subset of " "the axes. In this case, axes must be specified.") axes = np.arange(ndim) if len(axes) != ndim_transform: raise ValueError( "The length of axes doesn't match the number of dimensions " "transformed.") return coeffs, axes, ndim, ndim_transform def coeffs_to_array(coeffs, padding=0, axes=None): """ Arrange a wavelet coefficient list from ``wavedecn`` into a single array. Parameters ---------- coeffs : array-like dictionary of wavelet coefficients as returned by pywt.wavedecn padding : float or None, optional If None, raise an error if the coefficients cannot be tightly packed. axes : sequence of ints, optional Axes over which the DWT that created ``coeffs`` was performed. The default value of None corresponds to all axes. Returns ------- coeff_arr : array-like Wavelet transform coefficient array. coeff_slices : list List of slices corresponding to each coefficient. As a 2D example, ``coeff_arr[coeff_slices[1]['dd']]`` would extract the first level detail coefficients from ``coeff_arr``. See Also -------- array_to_coeffs : the inverse of coeffs_to_array Notes ----- Assume a 2D coefficient dictionary, c, from a two-level transform. Then all 2D coefficients will be stacked into a single larger 2D array as follows:: +---------------+---------------+-------------------------------+ | | | | | c[0] | c[1]['da'] | | | | | | +---------------+---------------+ c[2]['da'] | | | | | | c[1]['ad'] | c[1]['dd'] | | | | | | +---------------+---------------+ ------------------------------+ | | | | | | | | | | c[2]['ad'] | c[2]['dd'] | | | | | | | | | | +-------------------------------+-------------------------------+ Examples -------- >>> import pywt >>> cam = pywt.data.camera() >>> coeffs = pywt.wavedecn(cam, wavelet='db2', level=3) >>> arr, coeff_slices = pywt.coeffs_to_array(coeffs) """ coeffs, axes, ndim, ndim_transform = _prepare_coeffs_axes(coeffs, axes) # initialize with the approximation coefficients. a_coeffs = coeffs[0] a_shape = a_coeffs.shape if len(coeffs) == 1: # only a single approximation coefficient array was found return a_coeffs, [tuple([slice(None)] * ndim)] # determine size of output and if tight packing is possible arr_shape, is_tight_packing = _determine_coeff_array_shape(coeffs, axes) # preallocate output array if padding is None: if not is_tight_packing: raise ValueError("array coefficients cannot be tightly packed") coeff_arr = np.empty(arr_shape, dtype=a_coeffs.dtype) else: coeff_arr = np.full(arr_shape, padding, dtype=a_coeffs.dtype) a_slices = tuple([slice(s) for s in a_shape]) coeff_arr[a_slices] = a_coeffs # initialize list of coefficient slices coeff_slices = [] coeff_slices.append(a_slices) # loop over the detail cofficients, adding them to coeff_arr ds = coeffs[1:] for coeff_dict in ds: coeff_slices.append({}) # new dictionary for detail coefficients if np.any([d is None for d in coeff_dict.values()]): raise ValueError("coeffs_to_array does not support missing " "coefficients.") d_shape = coeff_dict['d' * ndim_transform].shape for key in coeff_dict.keys(): d = coeff_dict[key] slice_array = [slice(None), ] * ndim for i, let in enumerate(key): ax_i = axes[i] # axis corresponding to this transform index if let == 'a': slice_array[ax_i] = slice(d.shape[ax_i]) elif let == 'd': slice_array[ax_i] = slice(a_shape[ax_i], a_shape[ax_i] + d.shape[ax_i]) else: raise ValueError("unexpected letter: {}".format(let)) slice_array = tuple(slice_array) coeff_arr[slice_array] = d coeff_slices[-1][key] = slice_array a_shape = [a_shape[n] + d_shape[n] for n in range(ndim)] return coeff_arr, coeff_slices def array_to_coeffs(arr, coeff_slices, output_format='wavedecn'): """ Convert a combined array of coefficients back to a list compatible with ``waverecn``. Parameters ---------- arr : array-like An array containing all wavelet coefficients. This should have been generated via ``coeffs_to_array``. coeff_slices : list of tuples List of slices corresponding to each coefficient as obtained from ``array_to_coeffs``. output_format : {'wavedec', 'wavedec2', 'wavedecn'} Make the form of the coefficients compatible with this type of multilevel transform. Returns ------- coeffs: array-like Wavelet transform coefficient array. See Also -------- coeffs_to_array : the inverse of array_to_coeffs Notes ----- A single large array containing all coefficients will have subsets stored, into a ``waverecn`` list, c, as indicated below:: +---------------+---------------+-------------------------------+ | | | | | c[0] | c[1]['da'] | | | | | | +---------------+---------------+ c[2]['da'] | | | | | | c[1]['ad'] | c[1]['dd'] | | | | | | +---------------+---------------+ ------------------------------+ | | | | | | | | | | c[2]['ad'] | c[2]['dd'] | | | | | | | | | | +-------------------------------+-------------------------------+ Examples -------- >>> import pywt >>> from numpy.testing import assert_array_almost_equal >>> cam = pywt.data.camera() >>> coeffs = pywt.wavedecn(cam, wavelet='db2', level=3) >>> arr, coeff_slices = pywt.coeffs_to_array(coeffs) >>> coeffs_from_arr = pywt.array_to_coeffs(arr, coeff_slices, ... output_format='wavedecn') >>> cam_recon = pywt.waverecn(coeffs_from_arr, wavelet='db2') >>> assert_array_almost_equal(cam, cam_recon) """ arr = np.asarray(arr) coeffs = [] if len(coeff_slices) == 0: raise ValueError("empty list of coefficient slices") else: coeffs.append(arr[coeff_slices[0]]) # difference coefficients at each level for n in range(1, len(coeff_slices)): if output_format == 'wavedec': d = arr[coeff_slices[n]['d']] elif output_format == 'wavedec2': d = (arr[coeff_slices[n]['da']], arr[coeff_slices[n]['ad']], arr[coeff_slices[n]['dd']]) elif output_format == 'wavedecn': d = {} for k, v in coeff_slices[n].items(): d[k] = arr[v] else: raise ValueError( "Unrecognized output format: {}".format(output_format)) coeffs.append(d) return coeffs def wavedecn_shapes(shape, wavelet, mode='symmetric', level=None, axes=None): """Subband shapes for a multilevel nD discrete wavelet transform. Parameters ---------- shape : sequence of ints The shape of the data to be transformed. wavelet : Wavelet object or name string, or tuple of wavelets Wavelet to use. This can also be a tuple containing a wavelet to apply along each axis in ``axes``. mode : str or tuple of str, optional Signal extension mode, see :ref:`Modes `. This can also be a tuple containing a mode to apply along each axis in ``axes``. level : int, optional Decomposition level (must be >= 0). If level is None (default) then it will be calculated using the ``dwt_max_level`` function. axes : sequence of ints, optional Axes over which to compute the DWT. Axes may not be repeated. The default is None, which means transform all axes (``axes = range(data.ndim)``). Returns ------- shapes : [cAn, {details_level_n}, ... {details_level_1}] : list Coefficients shape list. Mirrors the output of ``wavedecn``, except it contains only the shapes of the coefficient arrays rather than the arrays themselves. Examples -------- >>> import pywt >>> pywt.wavedecn_shapes((64, 32), wavelet='db2', level=3, axes=(0, )) [(10, 32), {'d': (10, 32)}, {'d': (18, 32)}, {'d': (33, 32)}] """ axes, axes_shapes, ndim_transform = _prep_axes_wavedecn(shape, axes) wavelets = _wavelets_per_axis(wavelet, axes) modes = _modes_per_axis(mode, axes) dec_lengths = [w.dec_len for w in wavelets] level = _check_level(min(axes_shapes), max(dec_lengths), level) shapes = [] for i in range(level): detail_keys = [''.join(c) for c in product('ad', repeat=len(axes))] new_shapes = {k: list(shape) for k in detail_keys} for axis, wav, mode in zip(axes, wavelets, modes): s = dwt_coeff_len(shape[axis], filter_len=wav.dec_len, mode=mode) for k in detail_keys: new_shapes[k][axis] = s for k, v in new_shapes.items(): new_shapes[k] = tuple(v) shapes.append(new_shapes) shape = new_shapes.pop('a' * ndim_transform) shapes.append(shape) shapes.reverse() return shapes def wavedecn_size(shapes): """Compute the total number of wavedecn coefficients. Parameters ---------- shapes : list of coefficient shapes A set of coefficient shapes as returned by ``wavedecn_shapes``. Alternatively, the user can specify a set of coefficients as returned by ``wavedecn``. Returns ------- size : int The total number of coefficients. Examples -------- >>> import numpy as np >>> import pywt >>> data_shape = (64, 32) >>> shapes = pywt.wavedecn_shapes(data_shape, 'db2', mode='periodization') >>> pywt.wavedecn_size(shapes) 2048 >>> coeffs = pywt.wavedecn(np.ones(data_shape), 'sym4', mode='symmetric') >>> pywt.wavedecn_size(coeffs) 3087 """ def _size(x): """Size corresponding to ``x`` as either a shape tuple or ndarray.""" if isinstance(x, np.ndarray): return x.size else: return np.prod(x) ncoeffs = _size(shapes[0]) for d in shapes[1:]: for k, v in d.items(): if v is None: raise ValueError( "Setting coefficient arrays to None is not supported.") ncoeffs += _size(v) return ncoeffs def dwtn_max_level(shape, wavelet, axes=None): """Compute the maximum level of decomposition for n-dimensional data. This returns the maximum number of levels of decomposition suitable for use with ``wavedec``, ``wavedec2`` or ``wavedecn``. Parameters ---------- shape : sequence of ints Input data shape. wavelet : Wavelet object or name string, or tuple of wavelets Wavelet to use. This can also be a tuple containing a wavelet to apply along each axis in ``axes``. axes : sequence of ints, optional Axes over which to compute the DWT. Axes may not be repeated. Returns ------- level : int Maximum level. Notes ----- The level returned is the smallest ``dwt_max_level`` over all axes. Examples -------- >>> import pywt >>> pywt.dwtn_max_level((64, 32), 'db2') 3 """ # Determine the axes and shape for the transform axes, axes_shapes, ndim_transform = _prep_axes_wavedecn(shape, axes) # initialize a Wavelet object per (transformed) axis wavelets = _wavelets_per_axis(wavelet, axes) # maximum level of decomposition per axis max_levels = [dwt_max_level(n, wav.dec_len) for n, wav in zip(axes_shapes, wavelets)] return min(max_levels) def ravel_coeffs(coeffs, axes=None): """Ravel a set of multilevel wavelet coefficients into a single 1D array. Parameters ---------- coeffs : array-like A list of multilevel wavelet coefficients as returned by ``wavedec``, ``wavedec2`` or ``wavedecn``. This function is also compatible with the output of ``swt``, ``swt2`` and ``swtn`` if those functions were called with ``trim_approx=True``. axes : sequence of ints, optional Axes over which the DWT that created ``coeffs`` was performed. The default value of None corresponds to all axes. Returns ------- coeff_arr : array-like Wavelet transform coefficient array. All coefficients have been concatenated into a single array. coeff_slices : list List of slices corresponding to each coefficient. As a 2D example, ``coeff_arr[coeff_slices[1]['dd']]`` would extract the first level detail coefficients from ``coeff_arr``. coeff_shapes : list List of shapes corresponding to each coefficient. For example, in 2D, ``coeff_shapes[1]['dd']`` would contain the original shape of the first level detail coefficients array. See Also -------- unravel_coeffs : the inverse of ravel_coeffs Examples -------- >>> import pywt >>> cam = pywt.data.camera() >>> coeffs = pywt.wavedecn(cam, wavelet='db2', level=3) >>> arr, coeff_slices, coeff_shapes = pywt.ravel_coeffs(coeffs) """ coeffs, axes, ndim, ndim_transform = _prepare_coeffs_axes(coeffs, axes) # initialize with the approximation coefficients. a_coeffs = coeffs[0] a_size = a_coeffs.size if len(coeffs) == 1: # only a single approximation coefficient array was found return a_coeffs.ravel(), [slice(a_size), ], [a_coeffs.shape, ] # preallocate output array arr_size = wavedecn_size(coeffs) coeff_arr = np.empty((arr_size, ), dtype=a_coeffs.dtype) a_slice = slice(a_size) coeff_arr[a_slice] = a_coeffs.ravel() # initialize list of coefficient slices coeff_slices = [] coeff_shapes = [] coeff_slices.append(a_slice) coeff_shapes.append(coeffs[0].shape) # loop over the detail cofficients, embedding them in coeff_arr ds = coeffs[1:] offset = a_size for coeff_dict in ds: # new dictionaries for detail coefficient slices and shapes coeff_slices.append({}) coeff_shapes.append({}) if np.any([d is None for d in coeff_dict.values()]): raise ValueError("coeffs_to_array does not support missing " "coefficients.") # sort to make sure key order is consistent across Python versions keys = sorted(coeff_dict.keys()) for key in keys: d = coeff_dict[key] sl = slice(offset, offset + d.size) offset += d.size coeff_arr[sl] = d.ravel() coeff_slices[-1][key] = sl coeff_shapes[-1][key] = d.shape return coeff_arr, coeff_slices, coeff_shapes def unravel_coeffs(arr, coeff_slices, coeff_shapes, output_format='wavedecn'): """Unravel a raveled array of multilevel wavelet coefficients. Parameters ---------- arr : array-like An array containing all wavelet coefficients. This should have been generated by applying ``ravel_coeffs`` to the output of ``wavedec``, ``wavedec2`` or ``wavedecn`` (or via ``swt``, ``swt2`` or ``swtn`` with ``trim_approx=True``). coeff_slices : list of tuples List of slices corresponding to each coefficient as obtained from ``ravel_coeffs``. coeff_shapes : list of tuples List of shapes corresponding to each coefficient as obtained from ``ravel_coeffs``. output_format : {'wavedec', 'wavedec2', 'wavedecn', 'swt', 'swt2', 'swtn'}, optional Make the form of the unraveled coefficients compatible with this type of multilevel transform. The default is ``'wavedecn'``. Returns ------- coeffs: list List of wavelet transform coefficients. The specific format of the list elements is determined by ``output_format``. See Also -------- ravel_coeffs : the inverse of unravel_coeffs Examples -------- >>> import pywt >>> from numpy.testing import assert_array_almost_equal >>> cam = pywt.data.camera() >>> coeffs = pywt.wavedecn(cam, wavelet='db2', level=3) >>> arr, coeff_slices, coeff_shapes = pywt.ravel_coeffs(coeffs) >>> coeffs_from_arr = pywt.unravel_coeffs(arr, coeff_slices, coeff_shapes, ... output_format='wavedecn') >>> cam_recon = pywt.waverecn(coeffs_from_arr, wavelet='db2') >>> assert_array_almost_equal(cam, cam_recon) """ arr = np.asarray(arr) coeffs = [] if len(coeff_slices) == 0: raise ValueError("empty list of coefficient slices") elif len(coeff_shapes) == 0: raise ValueError("empty list of coefficient shapes") elif len(coeff_shapes) != len(coeff_slices): raise ValueError("coeff_shapes and coeff_slices have unequal length") else: coeffs.append(arr[coeff_slices[0]].reshape(coeff_shapes[0])) # difference coefficients at each level for n in range(1, len(coeff_slices)): slice_dict = coeff_slices[n] shape_dict = coeff_shapes[n] if output_format in ['wavedec', 'swt']: d = arr[slice_dict['d']].reshape(shape_dict['d']) elif output_format in ['wavedec2', 'swt2']: d = (arr[slice_dict['da']].reshape(shape_dict['da']), arr[slice_dict['ad']].reshape(shape_dict['ad']), arr[slice_dict['dd']].reshape(shape_dict['dd'])) elif output_format in ['wavedecn', 'swtn']: d = {} for k, v in coeff_slices[n].items(): d[k] = arr[v].reshape(shape_dict[k]) else: raise ValueError( "Unrecognized output format: {}".format(output_format)) coeffs.append(d) return coeffs def _check_fswavedecn_axes(data, axes): """Axes checks common to fswavedecn, fswaverecn.""" if len(axes) != len(set(axes)): raise ValueError("The axes passed to fswavedecn must be unique.") try: [data.shape[ax] for ax in axes] except IndexError: raise ValueError("Axis greater than data dimensions") class FswavedecnResult(object): """Object representing fully separable wavelet transform coefficients. Parameters ---------- coeffs : ndarray The coefficient array. coeff_slices : list List of slices corresponding to each detail or approximation coefficient array. wavelets : list of pywt.DiscreteWavelet objects The wavelets used. Will be a list with length equal to ``len(axes)``. mode_enums : list of int The border modes used. Will be a list with length equal to ``len(axes)``. axes : tuple of int The set of axes over which the transform was performed. """ def __init__(self, coeffs, coeff_slices, wavelets, mode_enums, axes): self._coeffs = coeffs self._coeff_slices = coeff_slices self._axes = axes if not np.all(isinstance(w, Wavelet) for w in wavelets): raise ValueError( "wavelets must contain pywt.Wavelet objects") self._wavelets = wavelets if not np.all(isinstance(m, int) for m in mode_enums): raise ValueError( "mode_enums must be integers") self._mode_enums = mode_enums @property def coeffs(self): """ndarray: All coefficients stacked into a single array.""" return self._coeffs @coeffs.setter def coeffs(self, c): if c.shape != self._coeffs.shape: raise ValueError("new coefficient array must match the existing " "coefficient shape") self._coeffs = c @property def coeff_slices(self): """List: List of coefficient slices.""" return self._coeff_slices @property def ndim(self): """int: Number of data dimensions.""" return self.coeffs.ndim @property def ndim_transform(self): """int: Number of axes transformed.""" return len(self.axes) @property def axes(self): """List of str: The axes the transform was performed along.""" return self._axes @property def levels(self): """List of int: Levels of decomposition along each transformed axis.""" return [len(s) - 1 for s in self.coeff_slices] @property def wavelets(self): """List of pywt.DiscreteWavelet: wavelet for each transformed axis.""" return self._wavelets @property def wavelet_names(self): """List of pywt.DiscreteWavelet: wavelet for each transformed axis.""" return [w.name for w in self._wavelets] @property def modes(self): """List of str: The border mode used along each transformed axis.""" names_dict = {getattr(Modes, mode): mode for mode in Modes.modes} return [names_dict[m] for m in self._mode_enums] def _get_coef_sl(self, levels): sl = [slice(None), ] * self.ndim for n, (ax, lev) in enumerate(zip(self.axes, levels)): sl[ax] = self.coeff_slices[n][lev] return tuple(sl) @property def approx(self): """ndarray: The approximation coefficients.""" sl = self._get_coef_sl((0, )*self.ndim) return self._coeffs[sl] @approx.setter def approx(self, a): sl = self._get_coef_sl((0, )*self.ndim) if self._coeffs[sl].shape != a.shape: raise ValueError( "x does not match the shape of the requested coefficient") self._coeffs[sl] = a def _validate_index(self, levels): levels = tuple(levels) if len(levels) != len(self.axes): raise ValueError( "levels must match the number of transformed axes") # check that all elements are non-negative integers if (not np.all([isinstance(lev, numbers.Number) for lev in levels]) or np.any(np.asarray(levels) % 1 > 0) or np.any([lev < 0 for lev in levels])): raise ValueError("Index must be a tuple of non-negative integers") # convert integer-valued floats to int levels = tuple([int(lev) for lev in levels]) # check for out of range levels if np.any([lev > maxlev for lev, maxlev in zip(levels, self.levels)]): raise ValueError( "Specified indices exceed the number of transform levels.") def __getitem__(self, levels): """Retrieve a coefficient subband. Parameters ---------- levels : tuple of int The number of degrees of decomposition along each transformed axis. """ self._validate_index(levels) sl = self._get_coef_sl(levels) return self._coeffs[sl] def __setitem__(self, levels, x): """Assign values to a coefficient subband. Parameters ---------- levels : tuple of int The number of degrees of decomposition along each transformed axis. x : ndarray The data corresponding to assign. It must match the expected shape and dtype of the specified subband. """ self._validate_index(levels) sl = self._get_coef_sl(levels) current_dtype = self._coeffs[sl].dtype if self._coeffs[sl].shape != x.shape: raise ValueError( "x does not match the shape of the requested coefficient") if x.dtype != current_dtype: warnings.warn("dtype mismatch: converting the provided array to" "dtype {}".format(current_dtype)) self._coeffs[sl] = x def detail_keys(self): """Return a list of all detail coefficient keys. Returns ------- keys : list of str List of all detail coefficient keys. """ keys = list(product(*(range(l+1) for l in self.levels))) keys.remove((0, )*len(self.axes)) return sorted(keys) def fswavedecn(data, wavelet, mode='symmetric', levels=None, axes=None): """Fully Separable Wavelet Decomposition. This is a variant of the multilevel discrete wavelet transform where all levels of decomposition are performed along a single axis prior to moving onto the next axis. Unlike in ``wavedecn``, the number of levels of decomposition are not required to be the same along each axis which can be a benefit for anisotropic data. Parameters ---------- data: array_like Input data wavelet : Wavelet object or name string, or tuple of wavelets Wavelet to use. This can also be a tuple containing a wavelet to apply along each axis in ``axes``. mode : str or tuple of str, optional Signal extension mode, see :ref:`Modes `. This can also be a tuple containing a mode to apply along each axis in ``axes``. levels : int or sequence of ints, optional Decomposition levels along each axis (must be >= 0). If an integer is provided, the same number of levels are used for all axes. If ``levels`` is None (default), ``dwt_max_level`` will be used to compute the maximum number of levels possible for each axis. axes : sequence of ints, optional Axes over which to compute the transform. Axes may not be repeated. The default is to transform along all axes. Returns ------- fswavedecn_result : FswavedecnResult object Contains the wavelet coefficients, slice objects to allow obtaining the coefficients per detail or approximation level, and more. See ``FswavedecnResult`` for details. Examples -------- >>> from pywt import fswavedecn >>> fs_result = fswavedecn(np.ones((32, 32)), 'sym2', levels=(1, 3)) >>> print(fs_result.detail_keys()) [(0, 1), (0, 2), (0, 3), (1, 0), (1, 1), (1, 2), (1, 3)] >>> approx_coeffs = fs_result.approx >>> detail_1_2 = fs_result[(1, 2)] Notes ----- This transformation has been variously referred to as the (fully) separable wavelet transform (e.g. refs [1]_, [3]_), the tensor-product wavelet ([2]_) or the hyperbolic wavelet transform ([4]_). It is well suited to data with anisotropic smoothness. In [2]_ it was demonstrated that fully separable transform performs at least as well as the DWT for image compression. Computation time is a factor 2 larger than that for the DWT. See Also -------- fswaverecn : inverse of fswavedecn References ---------- .. [1] PH Westerink. Subband Coding of Images. Ph.D. dissertation, Dept. Elect. Eng., Inf. Theory Group, Delft Univ. Technol., Delft, The Netherlands, 1989. (see Section 2.3) http://resolver.tudelft.nl/uuid:a4d195c3-1f89-4d66-913d-db9af0969509 .. [2] CP Rosiene and TQ Nguyen. Tensor-product wavelet vs. Mallat decomposition: A comparative analysis, in Proc. IEEE Int. Symp. Circuits and Systems, Orlando, FL, Jun. 1999, pp. 431-434. .. [3] V Velisavljevic, B Beferull-Lozano, M Vetterli and PL Dragotti. Directionlets: Anisotropic Multidirectional Representation With Separable Filtering. IEEE Transactions on Image Processing, Vol. 15, No. 7, July 2006. .. [4] RA DeVore, SV Konyagin and VN Temlyakov. "Hyperbolic wavelet approximation," Constr. Approx. 14 (1998), 1-26. """ data = np.asarray(data) if axes is None: axes = tuple(np.arange(data.ndim)) _check_fswavedecn_axes(data, axes) if levels is None or np.isscalar(levels): levels = [levels, ] * len(axes) if len(levels) != len(axes): raise ValueError("levels must match the length of the axes list") modes = _modes_per_axis(mode, axes) wavelets = _wavelets_per_axis(wavelet, axes) coeff_slices = [slice(None), ] * len(axes) coeffs_arr = data for ax_count, (ax, lev, wav, mode) in enumerate( zip(axes, levels, wavelets, modes)): coeffs = wavedec(coeffs_arr, wav, mode=mode, level=lev, axis=ax) # Slice objects for accessing coefficient subsets. # These can be used to access specific detail coefficient arrays # (e.g. as needed for inverse transformation via fswaverecn). c_shapes = [c.shape[ax] for c in coeffs] c_offsets = np.cumsum([0, ] + c_shapes) coeff_slices[ax_count] = [ slice(c_offsets[d], c_offsets[d+1]) for d in range(len(c_shapes))] # stack the coefficients from all levels into a single array coeffs_arr = np.concatenate(coeffs, axis=ax) return FswavedecnResult(coeffs_arr, coeff_slices, wavelets, modes, axes) def fswaverecn(fswavedecn_result): """Fully Separable Inverse Wavelet Reconstruction. Parameters ---------- fswavedecn_result : FswavedecnResult object FswavedecnResult object from ``fswavedecn``. Returns ------- reconstructed : ndarray Array of reconstructed data. Notes ----- This transformation has been variously referred to as the (fully) separable wavelet transform (e.g. refs [1]_, [3]_), the tensor-product wavelet ([2]_) or the hyperbolic wavelet transform ([4]_). It is well suited to data with anisotropic smoothness. In [2]_ it was demonstrated that the fully separable transform performs at least as well as the DWT for image compression. Computation time is a factor 2 larger than that for the DWT. See Also -------- fswavedecn : inverse of fswaverecn References ---------- .. [1] PH Westerink. Subband Coding of Images. Ph.D. dissertation, Dept. Elect. Eng., Inf. Theory Group, Delft Univ. Technol., Delft, The Netherlands, 1989. (see Section 2.3) http://resolver.tudelft.nl/uuid:a4d195c3-1f89-4d66-913d-db9af0969509 .. [2] CP Rosiene and TQ Nguyen. Tensor-product wavelet vs. Mallat decomposition: A comparative analysis, in Proc. IEEE Int. Symp. Circuits and Systems, Orlando, FL, Jun. 1999, pp. 431-434. .. [3] V Velisavljevic, B Beferull-Lozano, M Vetterli and PL Dragotti. Directionlets: Anisotropic Multidirectional Representation With Separable Filtering. IEEE Transactions on Image Processing, Vol. 15, No. 7, July 2006. .. [4] RA DeVore, SV Konyagin and VN Temlyakov. "Hyperbolic wavelet approximation," Constr. Approx. 14 (1998), 1-26. """ coeffs_arr = fswavedecn_result.coeffs coeff_slices = fswavedecn_result.coeff_slices axes = fswavedecn_result.axes modes = fswavedecn_result.modes wavelets = fswavedecn_result.wavelets _check_fswavedecn_axes(coeffs_arr, axes) if len(axes) != len(coeff_slices): raise ValueError("dimension mismatch") arr = coeffs_arr csl = [slice(None), ] * arr.ndim # for ax_count, (ax, wav, mode) in reversed( # list(enumerate(zip(axes, wavelets, modes)))): for ax_count, (ax, wav, mode) in enumerate(zip(axes, wavelets, modes)): coeffs = [] for sl in coeff_slices[ax_count]: csl[ax] = sl coeffs.append(arr[tuple(csl)]) csl[ax] = slice(None) arr = waverec(coeffs, wav, mode=mode, axis=ax) return arr PyWavelets-1.1.1/pywt/_pytest.py0000644000175000017500000000472113552333332017327 0ustar lee8rxlee8rx00000000000000"""common test-related code.""" import os import sys import multiprocessing import numpy as np import pytest __all__ = ['uses_matlab', # skip if pymatbridge and Matlab unavailable 'uses_futures', # skip if futures unavailable 'uses_pymatbridge', # skip if no PYWT_XSLOW environment variable 'uses_precomputed', # skip if PYWT_XSLOW environment variable found 'matlab_result_dict_cwt', # dict with precomputed Matlab dwt data 'matlab_result_dict_dwt', # dict with precomputed Matlab cwt data 'futures', # the futures module or None 'max_workers', # the number of workers available to futures 'size_set', # the set of Matlab tests to run ] try: if sys.version_info[0] == 2: import futures else: from concurrent import futures max_workers = multiprocessing.cpu_count() futures_available = True except ImportError: futures_available = False futures = None # check if pymatbridge + MATLAB tests should be run matlab_result_dict_dwt = None matlab_result_dict_cwt = None matlab_missing = True use_precomputed = True size_set = 'reduced' if 'PYWT_XSLOW' in os.environ: try: from pymatbridge import Matlab mlab = Matlab() matlab_missing = False use_precomputed = False size_set = 'full' except ImportError: print("To run Matlab compatibility tests you need to have MathWorks " "MATLAB, MathWorks Wavelet Toolbox and the pymatbridge Python " "package installed.") if use_precomputed: # load dictionaries of precomputed results data_dir = os.path.join(os.path.dirname(__file__), 'tests', 'data') matlab_data_file_cwt = os.path.join( data_dir, 'cwt_matlabR2015b_result.npz') matlab_result_dict_cwt = np.load(matlab_data_file_cwt) matlab_data_file_dwt = os.path.join( data_dir, 'dwt_matlabR2012a_result.npz') matlab_result_dict_dwt = np.load(matlab_data_file_dwt) uses_futures = pytest.mark.skipif( not futures_available, reason='futures not available') uses_matlab = pytest.mark.skipif( matlab_missing, reason='pymatbridge and/or Matlab not available') uses_pymatbridge = pytest.mark.skipif( use_precomputed, reason='PYWT_XSLOW set: skipping tests against precomputed Matlab results') uses_precomputed = pytest.mark.skipif( not use_precomputed, reason='PYWT_XSLOW not set: test against precomputed matlab tests') PyWavelets-1.1.1/pywt/_pytesttester.py0000644000175000017500000001144713552333332020561 0ustar lee8rxlee8rx00000000000000""" Pytest test running. This module implements the ``test()`` function for NumPy modules. The usual boiler plate for doing that is to put the following in the module ``__init__.py`` file:: from pywt._pytesttester import PytestTester test = PytestTester(__name__).test del PytestTester Warnings filtering and other runtime settings should be dealt with in the ``pytest.ini`` file in the pywt repo root. The behavior of the test depends on whether or not that file is found as follows: * ``pytest.ini`` is present (develop mode) All warnings except those explicily filtered out are raised as error. * ``pytest.ini`` is absent (release mode) DeprecationWarnings and PendingDeprecationWarnings are ignored, other warnings are passed through. In practice, tests run from the PyWavelets repo are run in develop mode. That includes the standard ``python runtests.py`` invocation. """ from __future__ import division, absolute_import, print_function import sys import os __all__ = ['PytestTester'] def _show_pywt_info(): import pywt from pywt._c99_config import _have_c99_complex print("PyWavelets version %s" % pywt.__version__) if _have_c99_complex: print("Compiled with C99 complex support.") else: print("Compiled without C99 complex support.") class PytestTester(object): """ Pytest test runner. This class is made available in ``pywt.testing``, and a test function is typically added to a package's __init__.py like so:: from pywt.testing import PytestTester test = PytestTester(__name__).test del PytestTester Calling this test function finds and runs all tests associated with the module and all its sub-modules. Attributes ---------- module_name : str Full path to the package to test. Parameters ---------- module_name : module name The name of the module to test. """ def __init__(self, module_name): self.module_name = module_name def __call__(self, label='fast', verbose=1, extra_argv=None, doctests=False, coverage=False, durations=-1, tests=None): """ Run tests for module using pytest. Parameters ---------- label : {'fast', 'full'}, optional Identifies the tests to run. When set to 'fast', tests decorated with `pytest.mark.slow` are skipped, when 'full', the slow marker is ignored. verbose : int, optional Verbosity value for test outputs, in the range 1-3. Default is 1. extra_argv : list, optional List with any extra arguments to pass to pytests. doctests : bool, optional .. note:: Not supported coverage : bool, optional If True, report coverage of NumPy code. Default is False. Requires installation of (pip) pytest-cov. durations : int, optional If < 0, do nothing, If 0, report time of all tests, if > 0, report the time of the slowest `timer` tests. Default is -1. tests : test or list of tests Tests to be executed with pytest '--pyargs' Returns ------- result : bool Return True on success, false otherwise. Examples -------- >>> result = np.lib.test() #doctest: +SKIP ... 1023 passed, 2 skipped, 6 deselected, 1 xfailed in 10.39 seconds >>> result True """ import pytest module = sys.modules[self.module_name] module_path = os.path.abspath(module.__path__[0]) # setup the pytest arguments pytest_args = ["-l"] # offset verbosity. The "-q" cancels a "-v". pytest_args += ["-q"] # Filter out annoying import messages. Want these in both develop and # release mode. pytest_args += [ "-W ignore:Not importing directory", "-W ignore:numpy.dtype size changed", "-W ignore:numpy.ufunc size changed", ] if doctests: raise ValueError("Doctests not supported") if extra_argv: pytest_args += list(extra_argv) if verbose > 1: pytest_args += ["-" + "v"*(verbose - 1)] if coverage: pytest_args += ["--cov=" + module_path] if label == "fast": pytest_args += ["-m", "not slow"] elif label != "full": pytest_args += ["-m", label] if durations >= 0: pytest_args += ["--durations=%s" % durations] if tests is None: tests = [self.module_name] pytest_args += ["--pyargs"] + list(tests) # run tests. _show_pywt_info() try: code = pytest.main(pytest_args) except SystemExit as exc: code = exc.code return code == 0 PyWavelets-1.1.1/pywt/_swt.py0000644000175000017500000007126513552333332016623 0ustar lee8rxlee8rx00000000000000import warnings from itertools import product import numpy as np from ._c99_config import _have_c99_complex from ._extensions._dwt import idwt_single from ._extensions._swt import swt_max_level, swt as _swt, swt_axis as _swt_axis from ._extensions._pywt import Wavelet, Modes, _check_dtype from ._multidim import idwt2, idwtn from ._utils import _as_wavelet, _wavelets_per_axis __all__ = ["swt", "swt_max_level", 'iswt', 'swt2', 'iswt2', 'swtn', 'iswtn'] def _rescale_wavelet_filterbank(wavelet, sf): wav = Wavelet(wavelet.name + 'r', [np.asarray(f) * sf for f in wavelet.filter_bank]) # copy attributes from the original wavelet wav.orthogonal = wavelet.orthogonal wav.biorthogonal = wavelet.biorthogonal return wav def swt(data, wavelet, level=None, start_level=0, axis=-1, trim_approx=False, norm=False): """ Multilevel 1D stationary wavelet transform. Parameters ---------- data : Input signal wavelet : Wavelet to use (Wavelet object or name) level : int, optional The number of decomposition steps to perform. start_level : int, optional The level at which the decomposition will begin (it allows one to skip a given number of transform steps and compute coefficients starting from start_level) (default: 0) axis: int, optional Axis over which to compute the SWT. If not given, the last axis is used. trim_approx : bool, optional If True, approximation coefficients at the final level are retained. norm : bool, optional If True, transform is normalized so that the energy of the coefficients will be equal to the energy of ``data``. In other words, ``np.linalg.norm(data.ravel())`` will equal the norm of the concatenated transform coefficients when ``trim_approx`` is True. Returns ------- coeffs : list List of approximation and details coefficients pairs in order similar to wavedec function:: [(cAn, cDn), ..., (cA2, cD2), (cA1, cD1)] where n equals input parameter ``level``. If ``start_level = m`` is given, then the beginning m steps are skipped:: [(cAm+n, cDm+n), ..., (cAm+1, cDm+1), (cAm, cDm)] If ``trim_approx`` is ``True``, then the output list is exactly as in ``pywt.wavedec``, where the first coefficient in the list is the approximation coefficient at the final level and the rest are the detail coefficients:: [cAn, cDn, ..., cD2, cD1] Notes ----- The implementation here follows the "algorithm a-trous" and requires that the signal length along the transformed axis be a multiple of ``2**level``. If this is not the case, the user should pad up to an appropriate size using a function such as ``numpy.pad``. A primary benefit of this transform in comparison to its decimated counterpart (``pywt.wavedecn``), is that it is shift-invariant. This comes at cost of redundancy in the transform (the size of the output coefficients is larger than the input). When the following three conditions are true: 1. The wavelet is orthogonal 2. ``swt`` is called with ``norm=True`` 3. ``swt`` is called with ``trim_approx=True`` the transform has the following additional properties that may be desirable in applications: 1. energy is conserved 2. variance is partitioned across scales When used with ``norm=True``, this transform is closely related to the multiple-overlap DWT (MODWT) as popularized for time-series analysis, although the underlying implementation is slightly different from the one published in [1]_. Specifically, the implementation used here requires a signal that is a multiple of ``2**level`` in length. References ---------- .. [1] DB Percival and AT Walden. Wavelet Methods for Time Series Analysis. Cambridge University Press, 2000. """ if not _have_c99_complex and np.iscomplexobj(data): data = np.asarray(data) coeffs_real = swt(data.real, wavelet, level, start_level, trim_approx) coeffs_imag = swt(data.imag, wavelet, level, start_level, trim_approx) if not trim_approx: coeffs_cplx = [] for (cA_r, cD_r), (cA_i, cD_i) in zip(coeffs_real, coeffs_imag): coeffs_cplx.append((cA_r + 1j*cA_i, cD_r + 1j*cD_i)) else: coeffs_cplx = [cr + 1j*ci for (cr, ci) in zip(coeffs_real, coeffs_imag)] return coeffs_cplx # accept array_like input; make a copy to ensure a contiguous array dt = _check_dtype(data) data = np.array(data, dtype=dt) wavelet = _as_wavelet(wavelet) if norm: if not wavelet.orthogonal: warnings.warn( "norm=True, but the wavelet is not orthogonal: \n" "\tThe conditions for energy preservation are not satisfied.") wavelet = _rescale_wavelet_filterbank(wavelet, 1/np.sqrt(2)) if axis < 0: axis = axis + data.ndim if not 0 <= axis < data.ndim: raise ValueError("Axis greater than data dimensions") if level is None: level = swt_max_level(data.shape[axis]) if data.ndim == 1: ret = _swt(data, wavelet, level, start_level, trim_approx) else: ret = _swt_axis(data, wavelet, level, start_level, axis, trim_approx) return ret def iswt(coeffs, wavelet, norm=False): """ Multilevel 1D inverse discrete stationary wavelet transform. Parameters ---------- coeffs : array_like Coefficients list of tuples:: [(cAn, cDn), ..., (cA2, cD2), (cA1, cD1)] where cA is approximation, cD is details. Index 1 corresponds to ``start_level`` from ``pywt.swt``. wavelet : Wavelet object or name string Wavelet to use norm : bool, optional Controls the normalization used by the inverse transform. This must be set equal to the value that was used by ``pywt.swt`` to preserve the energy of a round-trip transform. Returns ------- 1D array of reconstructed data. Examples -------- >>> import pywt >>> coeffs = pywt.swt([1,2,3,4,5,6,7,8], 'db2', level=2) >>> pywt.iswt(coeffs, 'db2') array([ 1., 2., 3., 4., 5., 6., 7., 8.]) """ # copy to avoid modification of input data # If swt was called with trim_approx=False, first element is a tuple trim_approx = not isinstance(coeffs[0], (tuple, list)) if trim_approx: cA = coeffs[0] coeffs = coeffs[1:] else: cA = coeffs[0][0] dt = _check_dtype(cA) output = np.array(cA, dtype=dt, copy=True) if not _have_c99_complex and np.iscomplexobj(output): # compute real and imaginary separately then combine if trim_approx: coeffs_real = [c.real for c in coeffs] coeffs_imag = [c.imag for c in coeffs] else: coeffs_real = [(cA.real, cD.real) for (cA, cD) in coeffs] coeffs_imag = [(cA.imag, cD.imag) for (cA, cD) in coeffs] return iswt(coeffs_real, wavelet) + 1j*iswt(coeffs_imag, wavelet) # num_levels, equivalent to the decomposition level, n num_levels = len(coeffs) wavelet = _as_wavelet(wavelet) if norm: wavelet = _rescale_wavelet_filterbank(wavelet, np.sqrt(2)) mode = Modes.from_object('periodization') for j in range(num_levels, 0, -1): step_size = int(pow(2, j-1)) last_index = step_size if trim_approx: cD = coeffs[-j] else: _, cD = coeffs[-j] cD = np.asarray(cD, dtype=_check_dtype(cD)) if cD.dtype != output.dtype: # upcast to a common dtype (float64 or complex128) if output.dtype.kind == 'c' or cD.dtype.kind == 'c': dtype = np.complex128 else: dtype = np.float64 output = np.asarray(output, dtype=dtype) cD = np.asarray(cD, dtype=dtype) for first in range(last_index): # 0 to last_index - 1 # Getting the indices that we will transform indices = np.arange(first, len(cD), step_size) # select the even indices even_indices = indices[0::2] # select the odd indices odd_indices = indices[1::2] # perform the inverse dwt on the selected indices, # making sure to use periodic boundary conditions # Note: indexing with an array of ints returns a contiguous # copy as required by idwt_single. x1 = idwt_single(output[even_indices], cD[even_indices], wavelet, mode) x2 = idwt_single(output[odd_indices], cD[odd_indices], wavelet, mode) # perform a circular shift right x2 = np.roll(x2, 1) # average and insert into the correct indices output[indices] = (x1 + x2)/2. return output def swt2(data, wavelet, level, start_level=0, axes=(-2, -1), trim_approx=False, norm=False): """ Multilevel 2D stationary wavelet transform. Parameters ---------- data : array_like 2D array with input data wavelet : Wavelet object or name string, or 2-tuple of wavelets Wavelet to use. This can also be a tuple of wavelets to apply per axis in ``axes``. level : int The number of decomposition steps to perform. start_level : int, optional The level at which the decomposition will start (default: 0) axes : 2-tuple of ints, optional Axes over which to compute the SWT. Repeated elements are not allowed. trim_approx : bool, optional If True, approximation coefficients at the final level are retained. norm : bool, optional If True, transform is normalized so that the energy of the coefficients will be equal to the energy of ``data``. In other words, ``np.linalg.norm(data.ravel())`` will equal the norm of the concatenated transform coefficients when ``trim_approx`` is True. Returns ------- coeffs : list Approximation and details coefficients (for ``start_level = m``). If ``trim_approx`` is ``True``, approximation coefficients are retained for all levels:: [ (cA_m+level, (cH_m+level, cV_m+level, cD_m+level) ), ..., (cA_m+1, (cH_m+1, cV_m+1, cD_m+1) ), (cA_m, (cH_m, cV_m, cD_m) ) ] where cA is approximation, cH is horizontal details, cV is vertical details, cD is diagonal details and m is ``start_level``. If ``trim_approx`` is ``False``, approximation coefficients are only retained at the final level of decomposition. This matches the format used by ``pywt.wavedec2``:: [ cA_m+level, (cH_m+level, cV_m+level, cD_m+level), ..., (cH_m+1, cV_m+1, cD_m+1), (cH_m, cV_m, cD_m), ] Notes ----- The implementation here follows the "algorithm a-trous" and requires that the signal length along the transformed axes be a multiple of ``2**level``. If this is not the case, the user should pad up to an appropriate size using a function such as ``numpy.pad``. A primary benefit of this transform in comparison to its decimated counterpart (``pywt.wavedecn``), is that it is shift-invariant. This comes at cost of redundancy in the transform (the size of the output coefficients is larger than the input). When the following three conditions are true: 1. The wavelet is orthogonal 2. ``swt2`` is called with ``norm=True`` 3. ``swt2`` is called with ``trim_approx=True`` the transform has the following additional properties that may be desirable in applications: 1. energy is conserved 2. variance is partitioned across scales """ axes = tuple(axes) data = np.asarray(data) if len(axes) != 2: raise ValueError("Expected 2 axes") if len(axes) != len(set(axes)): raise ValueError("The axes passed to swt2 must be unique.") if data.ndim < len(np.unique(axes)): raise ValueError("Input array has fewer dimensions than the specified " "axes") coefs = swtn(data, wavelet, level, start_level, axes, trim_approx, norm) ret = [] if trim_approx: ret.append(coefs[0]) coefs = coefs[1:] for c in coefs: if trim_approx: ret.append((c['da'], c['ad'], c['dd'])) else: ret.append((c['aa'], (c['da'], c['ad'], c['dd']))) return ret def iswt2(coeffs, wavelet, norm=False): """ Multilevel 2D inverse discrete stationary wavelet transform. Parameters ---------- coeffs : list Approximation and details coefficients:: [ (cA_n, (cH_n, cV_n, cD_n) ), ..., (cA_2, (cH_2, cV_2, cD_2) ), (cA_1, (cH_1, cV_1, cD_1) ) ] where cA is approximation, cH is horizontal details, cV is vertical details, cD is diagonal details and n is the number of levels. Index 1 corresponds to ``start_level`` from ``pywt.swt2``. wavelet : Wavelet object or name string, or 2-tuple of wavelets Wavelet to use. This can also be a 2-tuple of wavelets to apply per axis. norm : bool, optional Controls the normalization used by the inverse transform. This must be set equal to the value that was used by ``pywt.swt2`` to preserve the energy of a round-trip transform. Returns ------- 2D array of reconstructed data. Examples -------- >>> import pywt >>> coeffs = pywt.swt2([[1,2,3,4],[5,6,7,8], ... [9,10,11,12],[13,14,15,16]], ... 'db1', level=2) >>> pywt.iswt2(coeffs, 'db1') array([[ 1., 2., 3., 4.], [ 5., 6., 7., 8.], [ 9., 10., 11., 12.], [ 13., 14., 15., 16.]]) """ # If swt was called with trim_approx=False, first element is a tuple trim_approx = not isinstance(coeffs[0], (tuple, list)) if trim_approx: cA = coeffs[0] coeffs = coeffs[1:] else: cA = coeffs[0][0] # copy to avoid modification of input data dt = _check_dtype(cA) output = np.array(cA, dtype=dt, copy=True) if output.ndim != 2: raise ValueError( "iswt2 only supports 2D arrays. see iswtn for a general " "n-dimensionsal ISWT") # num_levels, equivalent to the decomposition level, n num_levels = len(coeffs) wavelets = _wavelets_per_axis(wavelet, axes=(0, 1)) if norm: wavelets = [_rescale_wavelet_filterbank(wav, np.sqrt(2)) for wav in wavelets] for j in range(num_levels): step_size = int(pow(2, num_levels-j-1)) last_index = step_size if trim_approx: (cH, cV, cD) = coeffs[j] else: _, (cH, cV, cD) = coeffs[j] # We are going to assume cH, cV, and cD are of equal size if (cH.shape != cV.shape) or (cH.shape != cD.shape): raise RuntimeError( "Mismatch in shape of intermediate coefficient arrays") # make sure output shares the common dtype # (conversion of dtype for individual coeffs is handled within idwt2 ) common_dtype = np.result_type(*( [dt, ] + [_check_dtype(c) for c in [cH, cV, cD]])) if output.dtype != common_dtype: output = output.astype(common_dtype) for first_h in range(last_index): # 0 to last_index - 1 for first_w in range(last_index): # 0 to last_index - 1 # Getting the indices that we will transform indices_h = slice(first_h, cH.shape[0], step_size) indices_w = slice(first_w, cH.shape[1], step_size) even_idx_h = slice(first_h, cH.shape[0], 2*step_size) even_idx_w = slice(first_w, cH.shape[1], 2*step_size) odd_idx_h = slice(first_h + step_size, cH.shape[0], 2*step_size) odd_idx_w = slice(first_w + step_size, cH.shape[1], 2*step_size) # perform the inverse dwt on the selected indices, # making sure to use periodic boundary conditions x1 = idwt2((output[even_idx_h, even_idx_w], (cH[even_idx_h, even_idx_w], cV[even_idx_h, even_idx_w], cD[even_idx_h, even_idx_w])), wavelets, 'periodization') x2 = idwt2((output[even_idx_h, odd_idx_w], (cH[even_idx_h, odd_idx_w], cV[even_idx_h, odd_idx_w], cD[even_idx_h, odd_idx_w])), wavelets, 'periodization') x3 = idwt2((output[odd_idx_h, even_idx_w], (cH[odd_idx_h, even_idx_w], cV[odd_idx_h, even_idx_w], cD[odd_idx_h, even_idx_w])), wavelets, 'periodization') x4 = idwt2((output[odd_idx_h, odd_idx_w], (cH[odd_idx_h, odd_idx_w], cV[odd_idx_h, odd_idx_w], cD[odd_idx_h, odd_idx_w])), wavelets, 'periodization') # perform a circular shifts x2 = np.roll(x2, 1, axis=1) x3 = np.roll(x3, 1, axis=0) x4 = np.roll(x4, 1, axis=0) x4 = np.roll(x4, 1, axis=1) output[indices_h, indices_w] = (x1 + x2 + x3 + x4) / 4 return output def swtn(data, wavelet, level, start_level=0, axes=None, trim_approx=False, norm=False): """ n-dimensional stationary wavelet transform. Parameters ---------- data : array_like n-dimensional array with input data. wavelet : Wavelet object or name string, or tuple of wavelets Wavelet to use. This can also be a tuple of wavelets to apply per axis in ``axes``. level : int The number of decomposition steps to perform. start_level : int, optional The level at which the decomposition will start (default: 0) axes : sequence of ints, optional Axes over which to compute the SWT. A value of ``None`` (the default) selects all axes. Axes may not be repeated. trim_approx : bool, optional If True, approximation coefficients at the final level are retained. norm : bool, optional If True, transform is normalized so that the energy of the coefficients will be equal to the energy of ``data``. In other words, ``np.linalg.norm(data.ravel())`` will equal the norm of the concatenated transform coefficients when ``trim_approx`` is True. Returns ------- [{coeffs_level_n}, ..., {coeffs_level_1}]: list of dict Results for each level are arranged in a dictionary, where the key specifies the transform type on each dimension and value is a n-dimensional coefficients array. For example, for a 2D case the result at a given level will look something like this:: {'aa': # A(LL) - approx. on 1st dim, approx. on 2nd dim 'ad': # V(LH) - approx. on 1st dim, det. on 2nd dim 'da': # H(HL) - det. on 1st dim, approx. on 2nd dim 'dd': # D(HH) - det. on 1st dim, det. on 2nd dim } For user-specified ``axes``, the order of the characters in the dictionary keys map to the specified ``axes``. If ``trim_approx`` is ``True``, the first element of the list contains the array of approximation coefficients from the final level of decomposition, while the remaining coefficient dictionaries contain only detail coefficients. This matches the behavior of `pywt.wavedecn`. Notes ----- The implementation here follows the "algorithm a-trous" and requires that the signal length along the transformed axes be a multiple of ``2**level``. If this is not the case, the user should pad up to an appropriate size using a function such as ``numpy.pad``. A primary benefit of this transform in comparison to its decimated counterpart (``pywt.wavedecn``), is that it is shift-invariant. This comes at cost of redundancy in the transform (the size of the output coefficients is larger than the input). When the following three conditions are true: 1. The wavelet is orthogonal 2. ``swtn`` is called with ``norm=True`` 3. ``swtn`` is called with ``trim_approx=True`` the transform has the following additional properties that may be desirable in applications: 1. energy is conserved 2. variance is partitioned across scales """ data = np.asarray(data) if not _have_c99_complex and np.iscomplexobj(data): real = swtn(data.real, wavelet, level, start_level, axes, trim_approx) imag = swtn(data.imag, wavelet, level, start_level, axes, trim_approx) if trim_approx: cplx = [real[0] + 1j * imag[0]] offset = 1 else: cplx = [] offset = 0 for rdict, idict in zip(real[offset:], imag[offset:]): cplx.append( dict((k, rdict[k] + 1j * idict[k]) for k in rdict.keys())) return cplx if data.dtype == np.dtype('object'): raise TypeError("Input must be a numeric array-like") if data.ndim < 1: raise ValueError("Input data must be at least 1D") if axes is None: axes = range(data.ndim) axes = [a + data.ndim if a < 0 else a for a in axes] if len(axes) != len(set(axes)): raise ValueError("The axes passed to swtn must be unique.") num_axes = len(axes) wavelets = _wavelets_per_axis(wavelet, axes) if norm: if not np.all([wav.orthogonal for wav in wavelets]): warnings.warn( "norm=True, but the wavelets used are not orthogonal: \n" "\tThe conditions for energy preservation are not satisfied.") wavelets = [_rescale_wavelet_filterbank(wav, 1/np.sqrt(2)) for wav in wavelets] ret = [] for i in range(start_level, start_level + level): coeffs = [('', data)] for axis, wavelet in zip(axes, wavelets): new_coeffs = [] for subband, x in coeffs: cA, cD = _swt_axis(x, wavelet, level=1, start_level=i, axis=axis)[0] new_coeffs.extend([(subband + 'a', cA), (subband + 'd', cD)]) coeffs = new_coeffs coeffs = dict(coeffs) ret.append(coeffs) # data for the next level is the approximation coeffs from this level data = coeffs['a' * num_axes] if trim_approx: coeffs.pop('a' * num_axes) if trim_approx: ret.append(data) ret.reverse() return ret def iswtn(coeffs, wavelet, axes=None, norm=False): """ Multilevel nD inverse discrete stationary wavelet transform. Parameters ---------- coeffs : list [{coeffs_level_n}, ..., {coeffs_level_1}]: list of dict wavelet : Wavelet object or name string, or tuple of wavelets Wavelet to use. This can also be a tuple of wavelets to apply per axis in ``axes``. axes : sequence of ints, optional Axes over which to compute the inverse SWT. Axes may not be repeated. The default is ``None``, which means transform all axes (``axes = range(data.ndim)``). norm : bool, optional Controls the normalization used by the inverse transform. This must be set equal to the value that was used by ``pywt.swtn`` to preserve the energy of a round-trip transform. Returns ------- nD array of reconstructed data. Examples -------- >>> import pywt >>> coeffs = pywt.swtn([[1,2,3,4],[5,6,7,8], ... [9,10,11,12],[13,14,15,16]], ... 'db1', level=2) >>> pywt.iswtn(coeffs, 'db1') array([[ 1., 2., 3., 4.], [ 5., 6., 7., 8.], [ 9., 10., 11., 12.], [ 13., 14., 15., 16.]]) """ # key length matches the number of axes transformed ndim_transform = max(len(key) for key in coeffs[-1].keys()) trim_approx = not isinstance(coeffs[0], dict) if trim_approx: cA = coeffs[0] coeffs = coeffs[1:] else: cA = coeffs[0]['a'*ndim_transform] # copy to avoid modification of input data dt = _check_dtype(cA) output = np.array(cA, dtype=dt, copy=True) ndim = output.ndim if axes is None: axes = range(output.ndim) axes = [a + ndim if a < 0 else a for a in axes] if len(axes) != len(set(axes)): raise ValueError("The axes passed to swtn must be unique.") if ndim_transform != len(axes): raise ValueError("The number of axes used in iswtn must match the " "number of dimensions transformed in swtn.") # num_levels, equivalent to the decomposition level, n num_levels = len(coeffs) wavelets = _wavelets_per_axis(wavelet, axes) if norm: wavelets = [_rescale_wavelet_filterbank(wav, np.sqrt(2)) for wav in wavelets] # initialize various slice objects used in the loops below # these will remain slice(None) only on axes that aren't transformed indices = [slice(None), ]*ndim even_indices = [slice(None), ]*ndim odd_indices = [slice(None), ]*ndim odd_even_slices = [slice(None), ]*ndim for j in range(num_levels): step_size = int(pow(2, num_levels-j-1)) last_index = step_size if not trim_approx: a = coeffs[j].pop('a'*ndim_transform) # will restore later details = coeffs[j] # make sure dtype matches the coarsest level approximation coefficients common_dtype = np.result_type(*( [dt, ] + [v.dtype for v in details.values()])) if output.dtype != common_dtype: output = output.astype(common_dtype) # We assume all coefficient arrays are of equal size shapes = [v.shape for k, v in details.items()] if len(set(shapes)) != 1: raise RuntimeError( "Mismatch in shape of intermediate coefficient arrays") # shape of a single coefficient array, excluding non-transformed axes coeff_trans_shape = tuple([shapes[0][ax] for ax in axes]) # nested loop over all combinations of axis offsets at this level for firsts in product(*([range(last_index), ]*ndim_transform)): for first, sh, ax in zip(firsts, coeff_trans_shape, axes): indices[ax] = slice(first, sh, step_size) even_indices[ax] = slice(first, sh, 2*step_size) odd_indices[ax] = slice(first+step_size, sh, 2*step_size) # nested loop over all combinations of odd/even inidices approx = output.copy() output[tuple(indices)] = 0 ntransforms = 0 for odds in product(*([(0, 1), ]*ndim_transform)): for o, ax in zip(odds, axes): if o: odd_even_slices[ax] = odd_indices[ax] else: odd_even_slices[ax] = even_indices[ax] # extract the odd/even indices for all detail coefficients details_slice = {} for key, value in details.items(): details_slice[key] = value[tuple(odd_even_slices)] details_slice['a'*ndim_transform] = approx[ tuple(odd_even_slices)] # perform the inverse dwt on the selected indices, # making sure to use periodic boundary conditions x = idwtn(details_slice, wavelets, 'periodization', axes=axes) for o, ax in zip(odds, axes): # circular shift along any odd indexed axis if o: x = np.roll(x, 1, axis=ax) output[tuple(indices)] += x ntransforms += 1 output[tuple(indices)] /= ntransforms # normalize if not trim_approx: coeffs[j]['a'*ndim_transform] = a # restore approx coeffs to dict return output PyWavelets-1.1.1/pywt/_thresholding.py0000664000175000017500000002113113453117224020465 0ustar lee8rxlee8rx00000000000000# Copyright (c) 2006-2012 Filip Wasilewski # Copyright (c) 2012-2016 The PyWavelets Developers # # See COPYING for license details. """ The thresholding helper module implements the most popular signal thresholding functions. """ from __future__ import division, print_function, absolute_import import numpy as np __all__ = ['threshold', 'threshold_firm'] def soft(data, value, substitute=0): data = np.asarray(data) magnitude = np.absolute(data) with np.errstate(divide='ignore'): # divide by zero okay as np.inf values get clipped, so ignore warning. thresholded = (1 - value/magnitude) thresholded.clip(min=0, max=None, out=thresholded) thresholded = data * thresholded if substitute == 0: return thresholded else: cond = np.less(magnitude, value) return np.where(cond, substitute, thresholded) def nn_garrote(data, value, substitute=0): """Non-negative Garrote.""" data = np.asarray(data) magnitude = np.absolute(data) with np.errstate(divide='ignore'): # divide by zero okay as np.inf values get clipped, so ignore warning. thresholded = (1 - value**2/magnitude**2) thresholded.clip(min=0, max=None, out=thresholded) thresholded = data * thresholded if substitute == 0: return thresholded else: cond = np.less(magnitude, value) return np.where(cond, substitute, thresholded) def hard(data, value, substitute=0): data = np.asarray(data) cond = np.less(np.absolute(data), value) return np.where(cond, substitute, data) def greater(data, value, substitute=0): data = np.asarray(data) if np.iscomplexobj(data): raise ValueError("greater thresholding only supports real data") return np.where(np.less(data, value), substitute, data) def less(data, value, substitute=0): data = np.asarray(data) if np.iscomplexobj(data): raise ValueError("less thresholding only supports real data") return np.where(np.greater(data, value), substitute, data) thresholding_options = {'soft': soft, 'hard': hard, 'greater': greater, 'less': less, 'garrote': nn_garrote, # misspelled garrote for backwards compatibility 'garotte': nn_garrote, } def threshold(data, value, mode='soft', substitute=0): """ Thresholds the input data depending on the mode argument. In ``soft`` thresholding [1]_, data values with absolute value less than `param` are replaced with `substitute`. Data values with absolute value greater or equal to the thresholding value are shrunk toward zero by `value`. In other words, the new value is ``data/np.abs(data) * np.maximum(np.abs(data) - value, 0)``. In ``hard`` thresholding, the data values where their absolute value is less than the value param are replaced with `substitute`. Data values with absolute value greater or equal to the thresholding value stay untouched. ``garrote`` corresponds to the Non-negative garrote threshold [2]_, [3]_. It is intermediate between ``hard`` and ``soft`` thresholding. It behaves like soft thresholding for small data values and approaches hard thresholding for large data values. In ``greater`` thresholding, the data is replaced with `substitute` where data is below the thresholding value. Greater data values pass untouched. In ``less`` thresholding, the data is replaced with `substitute` where data is above the thresholding value. Lesser data values pass untouched. Both ``hard`` and ``soft`` thresholding also support complex-valued data. Parameters ---------- data : array_like Numeric data. value : scalar Thresholding value. mode : {'soft', 'hard', 'garrote', 'greater', 'less'} Decides the type of thresholding to be applied on input data. Default is 'soft'. substitute : float, optional Substitute value (default: 0). Returns ------- output : array Thresholded array. See Also -------- threshold_firm References ---------- .. [1] D.L. Donoho and I.M. Johnstone. Ideal Spatial Adaptation via Wavelet Shrinkage. Biometrika. Vol. 81, No. 3, pp.425-455, 1994. DOI:10.1093/biomet/81.3.425 .. [2] L. Breiman. Better Subset Regression Using the Nonnegative Garrote. Technometrics, Vol. 37, pp. 373-384, 1995. DOI:10.2307/1269730 .. [3] H-Y. Gao. Wavelet Shrinkage Denoising Using the Non-Negative Garrote. Journal of Computational and Graphical Statistics Vol. 7, No. 4, pp.469-488. 1998. DOI:10.1080/10618600.1998.10474789 Examples -------- >>> import numpy as np >>> import pywt >>> data = np.linspace(1, 4, 7) >>> data array([ 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. ]) >>> pywt.threshold(data, 2, 'soft') array([ 0. , 0. , 0. , 0.5, 1. , 1.5, 2. ]) >>> pywt.threshold(data, 2, 'hard') array([ 0. , 0. , 2. , 2.5, 3. , 3.5, 4. ]) >>> pywt.threshold(data, 2, 'garrote') array([ 0. , 0. , 0. , 0.9 , 1.66666667, 2.35714286, 3. ]) >>> pywt.threshold(data, 2, 'greater') array([ 0. , 0. , 2. , 2.5, 3. , 3.5, 4. ]) >>> pywt.threshold(data, 2, 'less') array([ 1. , 1.5, 2. , 0. , 0. , 0. , 0. ]) """ try: return thresholding_options[mode](data, value, substitute) except KeyError: # Make sure error is always identical by sorting keys keys = ("'{0}'".format(key) for key in sorted(thresholding_options.keys())) raise ValueError("The mode parameter only takes values from: {0}." .format(', '.join(keys))) def threshold_firm(data, value_low, value_high): """Firm threshold. The approach is intermediate between soft and hard thresholding [1]_. It behaves the same as soft-thresholding for values below `value_low` and the same as hard-thresholding for values above `thresh_high`. For intermediate values, the thresholded value is in between that corresponding to soft or hard thresholding. Parameters ---------- data : array-like The data to threshold. This can be either real or complex-valued. value_low : float Any values smaller then `value_low` will be set to zero. value_high : float Any values larger than `value_high` will not be modified. Notes ----- This thresholding technique is also known as semi-soft thresholding [2]_. For each value, `x`, in `data`. This function computes:: if np.abs(x) <= value_low: return 0 elif np.abs(x) > value_high: return x elif value_low < np.abs(x) and np.abs(x) <= value_high: return x * value_high * (1 - value_low/x)/(value_high - value_low) ``firm`` is a continuous function (like soft thresholding), but is unbiased for large values (like hard thresholding). If ``value_high == value_low`` this function becomes hard-thresholding. If ``value_high`` is infinity, this function becomes soft-thresholding. Returns ------- val_new : array-like The values after firm thresholding at the specified thresholds. See Also -------- threshold References ---------- .. [1] H.-Y. Gao and A.G. Bruce. Waveshrink with firm shrinkage. Statistica Sinica, Vol. 7, pp. 855-874, 1997. .. [2] A. Bruce and H-Y. Gao. WaveShrink: Shrinkage Functions and Thresholds. Proc. SPIE 2569, Wavelet Applications in Signal and Image Processing III, 1995. DOI:10.1117/12.217582 """ if value_low < 0: raise ValueError("value_low must be non-negative.") if value_high < value_low: raise ValueError( "value_high must be greater than or equal to value_low.") data = np.asarray(data) magnitude = np.absolute(data) with np.errstate(divide='ignore'): # divide by zero okay as np.inf values get clipped, so ignore warning. vdiff = value_high - value_low thresholded = value_high * (1 - value_low/magnitude) / vdiff thresholded.clip(min=0, max=None, out=thresholded) thresholded = data * thresholded # restore hard-thresholding behavior for values > value_high large_vals = np.where(magnitude > value_high) if np.any(large_vals[0]): thresholded[large_vals] = data[large_vals] return thresholded PyWavelets-1.1.1/pywt/_utils.py0000644000175000017500000000663413552333332017144 0ustar lee8rxlee8rx00000000000000# Copyright (c) 2017 The PyWavelets Developers # # See COPYING for license details. import inspect import numpy as np import sys from collections.abc import Iterable from ._extensions._pywt import (Wavelet, ContinuousWavelet, DiscreteContinuousWavelet, Modes) # define string_types as in six for Python 2/3 compatibility if sys.version_info[0] == 3: string_types = str, else: string_types = basestring, def _as_wavelet(wavelet): """Convert wavelet name to a Wavelet object.""" if not isinstance(wavelet, (ContinuousWavelet, Wavelet)): wavelet = DiscreteContinuousWavelet(wavelet) if isinstance(wavelet, ContinuousWavelet): raise ValueError( "A ContinuousWavelet object was provided, but only discrete " "Wavelet objects are supported by this function. A list of all " "supported discrete wavelets can be obtained by running:\n" "print(pywt.wavelist(kind='discrete'))") return wavelet def _wavelets_per_axis(wavelet, axes): """Initialize Wavelets for each axis to be transformed. Parameters ---------- wavelet : Wavelet or tuple of Wavelets If a single Wavelet is provided, it will used for all axes. Otherwise one Wavelet per axis must be provided. axes : list The tuple of axes to be transformed. Returns ------- wavelets : list of Wavelet objects A tuple of Wavelets equal in length to ``axes``. """ axes = tuple(axes) if isinstance(wavelet, string_types + (Wavelet, )): # same wavelet on all axes wavelets = [_as_wavelet(wavelet), ] * len(axes) elif isinstance(wavelet, Iterable): # (potentially) unique wavelet per axis (e.g. for dual-tree DWT) if len(wavelet) == 1: wavelets = [_as_wavelet(wavelet[0]), ] * len(axes) else: if len(wavelet) != len(axes): raise ValueError(( "The number of wavelets must match the number of axes " "to be transformed.")) wavelets = [_as_wavelet(w) for w in wavelet] else: raise ValueError("wavelet must be a str, Wavelet or iterable") return wavelets def _modes_per_axis(modes, axes): """Initialize mode for each axis to be transformed. Parameters ---------- modes : str or tuple of strings If a single mode is provided, it will used for all axes. Otherwise one mode per axis must be provided. axes : tuple The tuple of axes to be transformed. Returns ------- modes : tuple of int A tuple of Modes equal in length to ``axes``. """ axes = tuple(axes) if isinstance(modes, string_types + (int, )): # same wavelet on all axes modes = [Modes.from_object(modes), ] * len(axes) elif isinstance(modes, Iterable): if len(modes) == 1: modes = [Modes.from_object(modes[0]), ] * len(axes) else: # (potentially) unique wavelet per axis (e.g. for dual-tree DWT) if len(modes) != len(axes): raise ValueError(("The number of modes must match the number " "of axes to be transformed.")) modes = [Modes.from_object(mode) for mode in modes] else: raise ValueError("modes must be a str, Mode enum or iterable") return modes PyWavelets-1.1.1/pywt/_wavelet_packets.py0000664000175000017500000006010113453117224021154 0ustar lee8rxlee8rx00000000000000# Copyright (c) 2006-2012 Filip Wasilewski # Copyright (c) 2012-2016 The PyWavelets Developers # # See COPYING for license details. """1D and 2D Wavelet packet transform module.""" from __future__ import division, print_function, absolute_import __all__ = ["BaseNode", "Node", "WaveletPacket", "Node2D", "WaveletPacket2D"] import numpy as np from ._extensions._pywt import Wavelet, _check_dtype from ._dwt import dwt, idwt, dwt_max_level from ._multidim import dwt2, idwt2 def get_graycode_order(level, x='a', y='d'): graycode_order = [x, y] for i in range(level - 1): graycode_order = [x + path for path in graycode_order] + \ [y + path for path in graycode_order[::-1]] return graycode_order class BaseNode(object): """ BaseNode for wavelet packet 1D and 2D tree nodes. The BaseNode is a base class for `Node` and `Node2D`. It should not be used directly unless creating a new transformation type. It is included here to document the common interface of 1D and 2D node and wavelet packet transform classes. Parameters ---------- parent : Parent node. If parent is None then the node is considered detached (ie root). data : 1D or 2D array Data associated with the node. 1D or 2D numeric array, depending on the transform type. node_name : A name identifying the coefficients type. See `Node.node_name` and `Node2D.node_name` for information on the accepted subnodes names. """ # PART_LEN and PARTS attributes that define path tokens for node[] lookup # must be defined in subclasses. PART_LEN = None PARTS = None def __init__(self, parent, data, node_name): self.parent = parent if parent is not None: self.wavelet = parent.wavelet self.mode = parent.mode self.level = parent.level + 1 self._maxlevel = parent.maxlevel self.path = parent.path + node_name else: self.wavelet = None self.mode = None self.path = "" self.level = 0 # data - signal on level 0, coeffs on higher levels self.data = data # Need to retain original data size/shape so we can trim any excess # boundary coefficients from the inverse transform. if self.data is None: self._data_shape = None else: self._data_shape = np.asarray(data).shape self._init_subnodes() def _init_subnodes(self): for part in self.PARTS: self._set_node(part, None) def _create_subnode(self, part, data=None, overwrite=True): raise NotImplementedError() def _create_subnode_base(self, node_cls, part, data=None, overwrite=True): self._validate_node_name(part) if not overwrite and self._get_node(part) is not None: return self._get_node(part) node = node_cls(self, data, part) self._set_node(part, node) return node def _get_node(self, part): return getattr(self, part) def _set_node(self, part, node): setattr(self, part, node) def _delete_node(self, part): self._set_node(part, None) def _validate_node_name(self, part): if part not in self.PARTS: raise ValueError("Subnode name must be in [%s], not '%s'." % (', '.join("'%s'" % p for p in self.PARTS), part)) def _evaluate_maxlevel(self, evaluate_from='parent'): """ Try to find the value of maximum decomposition level if it is not specified explicitly. Parameters ---------- evaluate_from : {'parent', 'subnodes'} """ assert evaluate_from in ('parent', 'subnodes') if self._maxlevel is not None: return self._maxlevel elif self.data is not None: return self.level + dwt_max_level( min(self.data.shape), self.wavelet) if evaluate_from == 'parent': if self.parent is not None: return self.parent._evaluate_maxlevel(evaluate_from) elif evaluate_from == 'subnodes': for node_name in self.PARTS: node = getattr(self, node_name, None) if node is not None: level = node._evaluate_maxlevel(evaluate_from) if level is not None: return level return None @property def maxlevel(self): if self._maxlevel is not None: return self._maxlevel # Try getting the maxlevel from parents first self._maxlevel = self._evaluate_maxlevel(evaluate_from='parent') # If not found, check whether it can be evaluated from subnodes if self._maxlevel is None: self._maxlevel = self._evaluate_maxlevel(evaluate_from='subnodes') return self._maxlevel @property def node_name(self): return self.path[-self.PART_LEN:] def decompose(self): """ Decompose node data creating DWT coefficients subnodes. Performs Discrete Wavelet Transform on the `~BaseNode.data` and returns transform coefficients. Note ---- Descends to subnodes and recursively calls `~BaseNode.reconstruct` on them. """ if self.level < self.maxlevel: return self._decompose() else: raise ValueError("Maximum decomposition level reached.") def _decompose(self): raise NotImplementedError() def reconstruct(self, update=False): """ Reconstruct node from subnodes. Parameters ---------- update : bool, optional If True, then reconstructed data replaces the current node data (default: False). Returns: - original node data if subnodes do not exist - IDWT of subnodes otherwise. """ if not self.has_any_subnode: return self.data return self._reconstruct(update) def _reconstruct(self): raise NotImplementedError() # override this in subclasses def get_subnode(self, part, decompose=True): """ Returns subnode or None (see `decomposition` flag description). Parameters ---------- part : Subnode name decompose : bool, optional If the param is True and corresponding subnode does not exist, the subnode will be created using coefficients from the DWT decomposition of the current node. (default: True) """ self._validate_node_name(part) subnode = self._get_node(part) if subnode is None and decompose and not self.is_empty: self.decompose() subnode = self._get_node(part) return subnode def __getitem__(self, path): """ Find node represented by the given path. Similar to `~BaseNode.get_subnode` method with `decompose=True`, but can access nodes on any level in the decomposition tree. Parameters ---------- path : str String composed of node names. See `Node.node_name` and `Node2D.node_name` for node naming convention. Notes ----- If node does not exist yet, it will be created by decomposition of its parent node. """ if isinstance(path, str): if (self.maxlevel is not None and len(path) > self.maxlevel * self.PART_LEN): raise IndexError("Path length is out of range.") if path: return self.get_subnode(path[0:self.PART_LEN], True)[ path[self.PART_LEN:]] else: return self else: raise TypeError("Invalid path parameter type - expected string but" " got %s." % type(path)) def __setitem__(self, path, data): """ Set node or node's data in the decomposition tree. Nodes are identified by string `path`. Parameters ---------- path : str String composed of node names. data : array or BaseNode subclass. """ if isinstance(path, str): if ( self.maxlevel is not None and len(self.path) + len(path) > self.maxlevel * self.PART_LEN ): raise IndexError("Path length out of range.") if path: subnode = self.get_subnode(path[0:self.PART_LEN], False) if subnode is None: self._create_subnode(path[0:self.PART_LEN], None) subnode = self.get_subnode(path[0:self.PART_LEN], False) subnode[path[self.PART_LEN:]] = data else: if isinstance(data, BaseNode): self.data = np.asarray(data.data) else: self.data = np.asarray(data) # convert data to nearest supported dtype dtype = _check_dtype(data) if self.data.dtype != dtype: self.data = self.data.astype(dtype) else: raise TypeError("Invalid path parameter type - expected string but" " got %s." % type(path)) def __delitem__(self, path): """ Remove node from the tree. Parameters ---------- path : str String composed of node names. """ node = self[path] # don't clear node value and subnodes (node may still exist outside # the tree) # # node._init_subnodes() # # node.data = None parent = node.parent node.parent = None # TODO if parent and node.node_name: parent._delete_node(node.node_name) @property def is_empty(self): return self.data is None @property def has_any_subnode(self): for part in self.PARTS: if self._get_node(part) is not None: # and not .is_empty return True return False def get_leaf_nodes(self, decompose=False): """ Returns leaf nodes. Parameters ---------- decompose : bool, optional (default: True) """ result = [] def collect(node): if node.level == node.maxlevel and not node.is_empty: result.append(node) return False if not decompose and not node.has_any_subnode: result.append(node) return False return True self.walk(collect, decompose=decompose) return result def walk(self, func, args=(), kwargs=None, decompose=True): """ Traverses the decomposition tree and calls ``func(node, *args, **kwargs)`` on every node. If `func` returns True, descending to subnodes will continue. Parameters ---------- func : callable Callable accepting `BaseNode` as the first param and optional positional and keyword arguments args : func params kwargs : func keyword params decompose : bool, optional If True (default), the method will also try to decompose the tree up to the `maximum level `. """ if kwargs is None: kwargs = {} if func(self, *args, **kwargs) and self.level < self.maxlevel: for part in self.PARTS: subnode = self.get_subnode(part, decompose) if subnode is not None: subnode.walk(func, args, kwargs, decompose) def walk_depth(self, func, args=(), kwargs=None, decompose=True): """ Walk tree and call func on every node starting from the bottom-most nodes. Parameters ---------- func : callable Callable accepting :class:`BaseNode` as the first param and optional positional and keyword arguments args : func params kwargs : func keyword params decompose : bool, optional (default: False) """ if kwargs is None: kwargs = {} if self.level < self.maxlevel: for part in self.PARTS: subnode = self.get_subnode(part, decompose) if subnode is not None: subnode.walk_depth(func, args, kwargs, decompose) func(self, *args, **kwargs) def __str__(self): return self.path + ": " + str(self.data) class Node(BaseNode): """ WaveletPacket tree node. Subnodes are called `a` and `d`, just like approximation and detail coefficients in the Discrete Wavelet Transform. """ A = 'a' D = 'd' PARTS = A, D PART_LEN = 1 def _create_subnode(self, part, data=None, overwrite=True): return self._create_subnode_base(node_cls=Node, part=part, data=data, overwrite=overwrite) def _decompose(self): """ See also -------- dwt : for 1D Discrete Wavelet Transform output coefficients. """ if self.is_empty: data_a, data_d = None, None if self._get_node(self.A) is None: self._create_subnode(self.A, data_a) if self._get_node(self.D) is None: self._create_subnode(self.D, data_d) else: data_a, data_d = dwt(self.data, self.wavelet, self.mode) self._create_subnode(self.A, data_a) self._create_subnode(self.D, data_d) return self._get_node(self.A), self._get_node(self.D) def _reconstruct(self, update): data_a, data_d = None, None node_a, node_d = self._get_node(self.A), self._get_node(self.D) if node_a is not None: data_a = node_a.reconstruct() # TODO: (update) ??? if node_d is not None: data_d = node_d.reconstruct() # TODO: (update) ??? if data_a is None and data_d is None: raise ValueError("Node is a leaf node and cannot be reconstructed" " from subnodes.") else: rec = idwt(data_a, data_d, self.wavelet, self.mode) if self._data_shape is not None and ( rec.shape != self._data_shape): rec = rec[tuple([slice(sz) for sz in self._data_shape])] if update: self.data = rec return rec class Node2D(BaseNode): """ WaveletPacket tree node. Subnodes are called 'a' (LL), 'h' (HL), 'v' (LH) and 'd' (HH), like approximation and detail coefficients in the 2D Discrete Wavelet Transform """ LL = 'a' HL = 'h' LH = 'v' HH = 'd' PARTS = LL, HL, LH, HH PART_LEN = 1 def _create_subnode(self, part, data=None, overwrite=True): return self._create_subnode_base(node_cls=Node2D, part=part, data=data, overwrite=overwrite) def _decompose(self): """ See also -------- dwt2 : for 2D Discrete Wavelet Transform output coefficients. """ if self.is_empty: data_ll, data_lh, data_hl, data_hh = None, None, None, None else: data_ll, (data_hl, data_lh, data_hh) =\ dwt2(self.data, self.wavelet, self.mode) self._create_subnode(self.LL, data_ll) self._create_subnode(self.LH, data_lh) self._create_subnode(self.HL, data_hl) self._create_subnode(self.HH, data_hh) return (self._get_node(self.LL), self._get_node(self.HL), self._get_node(self.LH), self._get_node(self.HH)) def _reconstruct(self, update): data_ll, data_lh, data_hl, data_hh = None, None, None, None node_ll, node_lh, node_hl, node_hh =\ self._get_node(self.LL), self._get_node(self.LH),\ self._get_node(self.HL), self._get_node(self.HH) if node_ll is not None: data_ll = node_ll.reconstruct() if node_lh is not None: data_lh = node_lh.reconstruct() if node_hl is not None: data_hl = node_hl.reconstruct() if node_hh is not None: data_hh = node_hh.reconstruct() if (data_ll is None and data_lh is None and data_hl is None and data_hh is None): raise ValueError( "Tree is missing data - all subnodes of `%s` node " "are None. Cannot reconstruct node." % self.path ) else: coeffs = data_ll, (data_hl, data_lh, data_hh) rec = idwt2(coeffs, self.wavelet, self.mode) if self._data_shape is not None and ( rec.shape != self._data_shape): rec = rec[tuple([slice(sz) for sz in self._data_shape])] if update: self.data = rec return rec def expand_2d_path(self, path): expanded_paths = { self.HH: 'hh', self.HL: 'hl', self.LH: 'lh', self.LL: 'll' } return (''.join([expanded_paths[p][0] for p in path]), ''.join([expanded_paths[p][1] for p in path])) class WaveletPacket(Node): """ Data structure representing Wavelet Packet decomposition of signal. Parameters ---------- data : 1D ndarray Original data (signal) wavelet : Wavelet object or name string Wavelet used in DWT decomposition and reconstruction mode : str, optional Signal extension mode for the `dwt` and `idwt` decomposition and reconstruction functions. maxlevel : int, optional Maximum level of decomposition. If None, it will be calculated based on the `wavelet` and `data` length using `pywt.dwt_max_level`. """ def __init__(self, data, wavelet, mode='symmetric', maxlevel=None): super(WaveletPacket, self).__init__(None, data, "") if not isinstance(wavelet, Wavelet): wavelet = Wavelet(wavelet) self.wavelet = wavelet self.mode = mode if data is not None: data = np.asarray(data) assert data.ndim == 1 self.data_size = data.shape[0] if maxlevel is None: maxlevel = dwt_max_level(self.data_size, self.wavelet) else: self.data_size = None self._maxlevel = maxlevel def reconstruct(self, update=True): """ Reconstruct data value using coefficients from subnodes. Parameters ---------- update : bool, optional If True (default), then data values will be replaced by reconstruction values, also in subnodes. """ if self.has_any_subnode: data = super(WaveletPacket, self).reconstruct(update) if update: self.data = data return data return self.data # return original data def get_level(self, level, order="natural", decompose=True): """ Returns all nodes on the specified level. Parameters ---------- level : int Specifies decomposition `level` from which the nodes will be collected. order : {'natural', 'freq'}, optional - "natural" - left to right in tree (default) - "freq" - band ordered decompose : bool, optional If set then the method will try to decompose the data up to the specified `level` (default: True). Notes ----- If nodes at the given level are missing (i.e. the tree is partially decomposed) and the `decompose` is set to False, only existing nodes will be returned. """ assert order in ["natural", "freq"] if level > self.maxlevel: raise ValueError("The level cannot be greater than the maximum" " decomposition level value (%d)" % self.maxlevel) result = [] def collect(node): if node.level == level: result.append(node) return False return True self.walk(collect, decompose=decompose) if order == "natural": return result elif order == "freq": result = dict((node.path, node) for node in result) graycode_order = get_graycode_order(level) return [result[path] for path in graycode_order if path in result] else: raise ValueError("Invalid order name - %s." % order) class WaveletPacket2D(Node2D): """ Data structure representing 2D Wavelet Packet decomposition of signal. Parameters ---------- data : 2D ndarray Data associated with the node. wavelet : Wavelet object or name string Wavelet used in DWT decomposition and reconstruction mode : str, optional Signal extension mode for the `dwt` and `idwt` decomposition and reconstruction functions. maxlevel : int Maximum level of decomposition. If None, it will be calculated based on the `wavelet` and `data` length using `pywt.dwt_max_level`. """ def __init__(self, data, wavelet, mode='smooth', maxlevel=None): super(WaveletPacket2D, self).__init__(None, data, "") if not isinstance(wavelet, Wavelet): wavelet = Wavelet(wavelet) self.wavelet = wavelet self.mode = mode if data is not None: data = np.asarray(data) assert data.ndim == 2 self.data_size = data.shape if maxlevel is None: maxlevel = dwt_max_level(min(self.data_size), self.wavelet) else: self.data_size = None self._maxlevel = maxlevel def reconstruct(self, update=True): """ Reconstruct data using coefficients from subnodes. Parameters ---------- update : bool, optional If True (default) then the coefficients of the current node and its subnodes will be replaced with values from reconstruction. """ if self.has_any_subnode: data = super(WaveletPacket2D, self).reconstruct(update) if update: self.data = data return data return self.data # return original data def get_level(self, level, order="natural", decompose=True): """ Returns all nodes from specified level. Parameters ---------- level : int Decomposition `level` from which the nodes will be collected. order : {'natural', 'freq'}, optional If `natural` (default) a flat list is returned. If `freq`, a 2d structure with rows and cols sorted by corresponding dimension frequency of 2d coefficient array (adapted from 1d case). decompose : bool, optional If set then the method will try to decompose the data up to the specified `level` (default: True). """ assert order in ["natural", "freq"] if level > self.maxlevel: raise ValueError("The level cannot be greater than the maximum" " decomposition level value (%d)" % self.maxlevel) result = [] def collect(node): if node.level == level: result.append(node) return False return True self.walk(collect, decompose=decompose) if order == "freq": nodes = {} for (row_path, col_path), node in [ (self.expand_2d_path(node.path), node) for node in result ]: nodes.setdefault(row_path, {})[col_path] = node graycode_order = get_graycode_order(level, x='l', y='h') nodes = [nodes[path] for path in graycode_order if path in nodes] result = [] for row in nodes: result.append( [row[path] for path in graycode_order if path in row] ) return result PyWavelets-1.1.1/pywt/conftest.py0000644000175000017500000000021713552333332017461 0ustar lee8rxlee8rx00000000000000import pytest def pytest_configure(config): config.addinivalue_line("markers", "slow: Tests that are slow.") PyWavelets-1.1.1/pywt/data/0000755000175000017500000000000013552543071016176 5ustar lee8rxlee8rx00000000000000PyWavelets-1.1.1/pywt/data/__init__.py0000644000175000017500000000014013516504110020271 0ustar lee8rxlee8rx00000000000000from ._readers import ascent, aero, ecg, camera, nino from ._wavelab_signals import demo_signal PyWavelets-1.1.1/pywt/data/_readers.py0000644000175000017500000001066213516504110020330 0ustar lee8rxlee8rx00000000000000import os import numpy as np def ascent(): """ Get an 8-bit grayscale bit-depth, 512 x 512 derived image for easy use in demos The image is derived from accent-to-the-top.jpg at http://www.public-domain-image.com/people-public-domain-images-pictures/ Parameters ---------- None Returns ------- ascent : ndarray convenient image to use for testing and demonstration Examples -------- >>> import pywt.data >>> ascent = pywt.data.ascent() >>> ascent.shape == (512, 512) True >>> ascent.max() 255 >>> import matplotlib.pyplot as plt >>> plt.gray() >>> plt.imshow(ascent) # doctest: +ELLIPSIS >>> plt.show() # doctest: +SKIP """ fname = os.path.join(os.path.dirname(__file__), 'ascent.npz') ascent = np.load(fname)['data'] return ascent def aero(): """ Get an 8-bit grayscale bit-depth, 512 x 512 derived image for easy use in demos Parameters ---------- None Returns ------- aero : ndarray convenient image to use for testing and demonstration Examples -------- >>> import pywt.data >>> aero = pywt.data.ascent() >>> aero.shape == (512, 512) True >>> aero.max() 255 >>> import matplotlib.pyplot as plt >>> plt.gray() >>> plt.imshow(aero) # doctest: +ELLIPSIS >>> plt.show() # doctest: +SKIP """ fname = os.path.join(os.path.dirname(__file__), 'aero.npz') aero = np.load(fname)['data'] return aero def camera(): """ Get an 8-bit grayscale bit-depth, 512 x 512 derived image for easy use in demos Parameters ---------- None Returns ------- camera : ndarray convenient image to use for testing and demonstration Examples -------- >>> import pywt.data >>> camera = pywt.data.ascent() >>> camera.shape == (512, 512) True >>> import matplotlib.pyplot as plt >>> plt.gray() >>> plt.imshow(camera) # doctest: +ELLIPSIS >>> plt.show() # doctest: +SKIP """ fname = os.path.join(os.path.dirname(__file__), 'camera.npz') camera = np.load(fname)['data'] return camera def ecg(): """ Get 1024 points of an ECG timeseries. Parameters ---------- None Returns ------- ecg : ndarray convenient timeseries to use for testing and demonstration Examples -------- >>> import pywt.data >>> ecg = pywt.data.ecg() >>> ecg.shape == (1024,) True >>> import matplotlib.pyplot as plt >>> plt.plot(ecg) # doctest: +ELLIPSIS [] >>> plt.show() # doctest: +SKIP """ fname = os.path.join(os.path.dirname(__file__), 'ecg.npy') ecg = np.load(fname) return ecg def nino(): """ This data contains the averaged monthly sea surface temperature in degrees Celcius of the Pacific Ocean, between 0-10 degrees South and 90-80 degrees West, from 1950 to 2016. This dataset is in the public domain and was obtained from NOAA. National Oceanic and Atmospheric Administration's National Weather Service ERSSTv4 dataset, nino 3, http://www.cpc.ncep.noaa.gov/data/indices/ Parameters ---------- None Returns ------- time : ndarray convenient timeseries to use for testing and demonstration sst : ndarray convenient timeseries to use for testing and demonstration Examples -------- >>> import pywt.data >>> time, sst = pywt.data.nino() >>> sst.shape == (264,) True >>> import matplotlib.pyplot as plt >>> plt.plot(time,sst) # doctest: +ELLIPSIS [] >>> plt.show() # doctest: +SKIP """ fname = os.path.join(os.path.dirname(__file__), 'sst_nino3.npz') sst_csv = np.load(fname)['sst_csv'] # sst_csv = pd.read_csv("http://www.cpc.ncep.noaa.gov/data/indices/ersst4.nino.mth.81-10.ascii", sep=' ', skipinitialspace=True) # take only full years n = int(np.floor(sst_csv.shape[0]/12.)*12.) # Building the mean of three mounth # the 4. column is nino 3 sst = np.mean(np.reshape(np.array(sst_csv)[:n, 4], (n//3, -1)), axis=1) sst = (sst - np.mean(sst)) / np.std(sst, ddof=1) dt = 0.25 time = np.arange(len(sst)) * dt + 1950.0 # construct time array return time, sst PyWavelets-1.1.1/pywt/data/_wavelab_signals.py0000664000175000017500000002240413334573651022061 0ustar lee8rxlee8rx00000000000000# -*- coding:utf-8 -*- from __future__ import division import numpy as np __all__ = ['demo_signal'] _implemented_signals = [ 'Blocks', 'Bumps', 'HeaviSine', 'Doppler', 'Ramp', 'HiSine', 'LoSine', 'LinChirp', 'TwoChirp', 'QuadChirp', 'MishMash', 'WernerSorrows', 'HypChirps', 'LinChirps', 'Chirps', 'Gabor', 'sineoneoverx', 'Piece-Regular', 'Piece-Polynomial', 'Riemann'] def demo_signal(name='Bumps', n=None): """Simple 1D wavelet test functions. This function can generate a number of common 1D test signals used in papers by David Donoho and colleagues (e.g. [1]_) as well as the wavelet book by Stéphane Mallat [2]_. Parameters ---------- name : {'Blocks', 'Bumps', 'HeaviSine', 'Doppler', ...} The type of test signal to generate (`name` is case-insensitive). If `name` is set to `'list'`, a list of the avialable test functions is returned. n : int or None The length of the test signal. This should be provided for all test signals except `'Gabor'` and `'sineoneoverx'` which have a fixed length. Returns ------- f : np.ndarray Array of length ``n`` corresponding to the specified test signal type. References ---------- .. [1] D.L. Donoho and I.M. Johnstone. Ideal spatial adaptation by wavelet shrinkage. Biometrika, vol. 81, pp. 425–455, 1994. .. [2] S. Mallat. A Wavelet Tour of Signal Processing: The Sparse Way. Academic Press. 2009. Notes ----- This function is a partial reimplementation of the `MakeSignal` function from the [Wavelab](https://statweb.stanford.edu/~wavelab/) toolbox. These test signals are provided with permission of Dr. Donoho to encourage reproducible research. """ if name.lower() == 'list': return _implemented_signals if n is not None: if n < 1 or (n % 1) != 0: raise ValueError("n must be an integer >= 1") t = np.arange(1/n, 1 + 1/n, 1/n) # The following function types don't allow user-specified `n`. n_hard_coded = ['gabor', 'sineoneoverx'] name = name.lower() if name in n_hard_coded and n is not None: raise ValueError( "Parameter n must be set to None when name is {}".format(name)) elif n is None and name not in n_hard_coded: raise ValueError( "Parameter n must be provided when name is {}".format(name)) if name == 'blocks': t0s = [.1, .13, .15, .23, .25, .4, .44, .65, .76, .78, .81] hs = [4, -5, 3, -4, 5, -4.2, 2.1, 4.3, -3.1, 2.1, -4.2] f = 0 for (t0, h) in zip(t0s, hs): f += h * (1 + np.sign(t - t0)) / 2 elif name == 'bumps': t0s = [.1, .13, .15, .23, .25, .4, .44, .65, .76, .78, .81] hs = [4, 5, 3, 4, 5, 4.2, 2.1, 4.3, 3.1, 5.1, 4.2] ws = [.005, .005, .006, .01, .01, .03, .01, .01, .005, .008, .005] f = 0 for (t0, h, w) in zip(t0s, hs, ws): f += h / (1 + np.abs((t - t0) / w))**4 elif name == 'heavisine': f = 4 * np.sin(4 * np.pi * t) - np.sign(t - 0.3) - np.sign(0.72 - t) elif name == 'doppler': f = np.sqrt(t * (1 - t)) * np.sin(2 * np.pi * 1.05 / (t + 0.05)) elif name == 'ramp': f = t - (t >= .37) elif name == 'hisine': f = np.sin(np.pi * (n * .6902) * t) elif name == 'losine': f = np.sin(np.pi * (n * .3333) * t) elif name == 'linchirp': f = np.sin(np.pi * t * ((n * .500) * t)) elif name == 'twochirp': f = np.sin(np.pi * t * (n * t)) + np.sin((np.pi / 3) * t * (n * t)) elif name == 'quadchirp': f = np.sin((np.pi / 3) * t * (n * t**2)) elif name == 'mishmash': # QuadChirp + LinChirp + HiSine f = np.sin((np.pi / 3) * t * (n * t**2)) f += np.sin(np.pi * (n * .6902) * t) f += np.sin(np.pi * t * (n * .125 * t)) elif name == 'wernersorrows': f = np.sin(np.pi * t * (n / 2 * t**2)) f = f + np.sin(np.pi * (n * .6902) * t) f = f + np.sin(np.pi * t * (n * t)) pos = [.1, .13, .15, .23, .25, .40, .44, .65, .76, .78, .81] hgt = [4, 5, 3, 4, 5, 4.2, 2.1, 4.3, 3.1, 5.1, 4.2] wth = [.005, .005, .006, .01, .01, .03, .01, .01, .005, .008, .005] for p, h, w in zip(pos, hgt, wth): f += h / (1 + np.abs((t - p) / w))**4 elif name == 'hypchirps': # Hyperbolic Chirps of Mallat's book alpha = 15 * n * np.pi / 1024 beta = 5 * n * np.pi / 1024 t = np.arange(1.001, n + .001 + 1) / n f1 = np.zeros(n) f2 = np.zeros(n) f1 = np.sin(alpha / (.8 - t)) * (0.1 < t) * (t < 0.68) f2 = np.sin(beta / (.8 - t)) * (0.1 < t) * (t < 0.75) m = int(np.round(0.65 * n)) p = m // 4 envelope = np.ones(m) # the rinp.sing cutoff function tmp = np.arange(1, p + 1)-np.ones(p) envelope[:p] = (1 + np.sin(-np.pi / 2 + tmp / (p - 1) * np.pi)) / 2 envelope[m-p:m] = envelope[:p][::-1] env = np.zeros(n) env[int(np.ceil(n / 10)) - 1:m + int(np.ceil(n / 10)) - 1] = \ envelope[:m] f = (f1 + f2) * env elif name == 'linchirps': # Linear Chirps of Mallat's book b = 100 * n * np.pi / 1024 a = 250 * n * np.pi / 1024 t = np.arange(1, n + 1) / n A1 = np.sqrt((t - 1 / n) * (1 - t)) f = A1 * (np.cos(a * t**2) + np.cos(b * t + a * t**2)) elif name == 'chirps': # Mixture of Chirps of Mallat's book t = np.arange(1, n + 1)/n * 10 * np.pi f1 = np.cos(t**2 * n / 1024) a = 30 * n / 1024 t = np.arange(1, n + 1)/n * np.pi f2 = np.cos(a * (t**3)) f2 = f2[::-1] ix = np.arange(-n, n + 1) / n * 20 g = np.exp(-ix**2 * 4 * n / 1024) i1 = slice(n // 2, n // 2 + n) i2 = slice(n // 8, n // 8 + n) j = np.arange(1, n + 1) / n f3 = g[i1] * np.cos(50 * np.pi * j * n / 1024) f4 = g[i2] * np.cos(350 * np.pi * j * n / 1024) f = f1 + f2 + f3 + f4 envelope = np.ones(n) # the rinp.sing cutoff function tmp = np.arange(1, n // 8 + 1) - np.ones(n // 8) envelope[:n // 8] = ( 1 + np.sin(-np.pi / 2 + tmp / (n / 8 - 1) * np.pi)) / 2 envelope[7 * n // 8:n] = envelope[:n // 8][::-1] f = f*envelope elif name == 'gabor': # two modulated Gabor functions in Mallat's book n = 512 t = np.arange(-n, n + 1)*5 / n j = np.arange(1, n + 1) / n g = np.exp(-t**2 * 20) i1 = slice(2*n // 4, 2 * n // 4 + n) i2 = slice(n // 4, n // 4 + n) f1 = 3 * g[i1] * np.exp(1j * (n // 16) * np.pi * j) f2 = 3 * g[i2] * np.exp(1j * (n // 4) * np.pi * j) f = f1 + f2 elif name == 'sineoneoverx': # np.sin(1/x) in Mallat's book n = 1024 i1 = np.arange(-n + 1, n + 1, dtype=float) i1[i1 == 0] = 1 / 100 i1 = i1 / (n - 1) f = np.sin(1.5 / i1) f = f[512:1536] elif name == 'piece-regular': f = np.zeros(n) n_12 = int(np.fix(n / 12)) n_7 = int(np.fix(n / 7)) n_5 = int(np.fix(n / 5)) n_3 = int(np.fix(n / 3)) n_2 = int(np.fix(n / 2)) n_20 = int(np.fix(n / 20)) f1 = -15 * demo_signal('bumps', n) t = np.arange(1, n_12 + 1) / n_12 f2 = -np.exp(4 * t) t = np.arange(1, n_7 + 1) / n_7 f5 = np.exp(4 * t)-np.exp(4) t = np.arange(1, n_3 + 1) / n_3 fma = 6 / 40 f6 = -70 * np.exp(-((t - 0.5) * (t - 0.5)) / (2 * fma**2)) f[:n_7] = f6[:n_7] f[n_7:n_5] = 0.5 * f6[n_7:n_5] f[n_5:n_3] = f6[n_5:n_3] f[n_3:n_2] = f1[n_3:n_2] f[n_2:n_2 + n_12] = f2 f[n_2 + 2 * n_12 - 1:n_2 + n_12 - 1:-1] = f2 f[n_2 + 2 * n_12 + n_20:n_2 + 2 * n_12 + 3 * n_20] = -np.ones( n_2 + 2*n_12 + 3*n_20 - n_2 - 2*n_12 - n_20) * 25 k = n_2 + 2 * n_12 + 3 * n_20 f[k:k + n_7] = f5 diff = n - 5 * n_5 f[5 * n_5:n] = f[diff - 1::-1] # zero-mean bias = np.sum(f) / n f = bias - f elif name == 'piece-polynomial': f = np.zeros(n) n_5 = int(np.fix(n / 5)) n_10 = int(np.fix(n / 10)) n_20 = int(np.fix(n / 20)) t = np.arange(1, n_5 + 1) / n_5 f1 = 20 * (t**3 + t**2 + 4) f3 = 40 * (2 * t**3 + t) + 100 f2 = 10 * t**3 + 45 f4 = 16 * t**2 + 8 * t + 16 f5 = 20 * (t + 4) f6 = np.ones(n_10) * 20 f[:n_5] = f1 f[2 * n_5 - 1:n_5 - 1:-1] = f2 f[2 * n_5:3 * n_5] = f3 f[3 * n_5:4 * n_5] = f4 f[4 * n_5:5 * n_5] = f5[n_5::-1] diff = n - 5*n_5 f[5 * n_5:n] = f[diff - 1::-1] f[n_20:n_20 + n_10] = np.ones(n_10) * 10 f[n - n_10:n + n_20 - n_10] = np.ones(n_20) * 150 # zero-mean bias = np.sum(f) / n f = f - bias elif name == 'riemann': # Riemann's Non-differentiable Function sqn = int(np.round(np.sqrt(n))) idx = np.arange(1, sqn + 1) idx *= idx f = np.zeros_like(t) f[idx - 1] = 1. / np.arange(1, sqn + 1) f = np.real(np.fft.ifft(f)) else: raise ValueError( "unknown name: {}. name must be one of: {}".format( name, _implemented_signals)) return f PyWavelets-1.1.1/pywt/data/aero.npz0000664000175000017500000067471013270003221017657 0ustar lee8rxlee8rx00000000000000PKGVyPdata.npyUx\gڦ;tg!݁ĉbIX%J*1K%33YdI?s9o}I%VZG>6I]}om'߿ '_ICgO_OuGegO]WzM]OO?}%)CBH$&[$XmfaG)*y:,MwAzg۫羸 Yl,έ./M/,mml`q2] BB)1:l1Y$ZQa\Πivew zNH#Pϥx4LL"gӥ|& fp֓3q%D6HQL&ɢ!L 3i8, ludǝ,fޛo(' oo}m>h5-Τ6Y n8liX.7]c6jZF$fŪ3 _ՕӏynsO[:.)=tE-/ύw u4VhlnoxUǷnݸq':dbbbxx29]RXJbh6a)84px s$`wDv٠0jʨSk%:gB :81?<=< C/Fsյu4|enC!4:tKeyBP(FQcRrV/fqJV]&p߉" $dhO"stAH<2B$aJAQ[TU8-Žv;+~~Rd *V6nŨeyn+0;mV#%FURL( Oϟɝ_ٕ'%\~p}蝳zf6C?xKf&kkk[+^>{{w߼r'ď#qbj-̃AD3)d`r>ALfLˠq-Oᴙ-ZR ؑkzSW,H$g&z:zPX(lriessy6/,tfDL2ϗJe2nLfNhu@LP~xN?Vre08,mNX:O޿_4ct"FAπ ănDb, ] :$V,zʢT)/r7{ovUm_cV @(ejJ%WY6al^Ba 86nPJTFW*QC Dzԉ/>oW=g_{wa׿|݋7~ͱNYtlbyuIYt*C%HXGh2N"(*D*pDu|R*Q]42s{D#Vf'Ða8 #cq6\\ L@(l.%(BO&*"Uw[-fUe2uF0Bv Z~8>̓bChHbVw0 b6IKHM ͤQT:@on#WW\;ȥ|/Y=(sRo^2`T2L$h:0uɗ E~u{^ITΎFpxRLgU7vn/o"oiKr;6lgƷ(kޑщ֊چڊW>}x"oM'axO"e"<XG!2P%=h;Q3u*Ŏ0rV g}޺x˳~}gx\ˏ\ۚC j^@Q%R2d mkijmhly޽vΞ8q 12:=X(T D y< TYl,a7Y2R`WzvIDZ%a֦'&gg`p8*bl 1&&YxOds 0`H">LHb. $\F[tVZ0Oäx]tGww8~Fc `b*%p>K@sTy?L#_,on(kD.t*%d6#`k"M9RL~?W/݃7o:]|{o|lUHzFfty 'p~Τ[Td(RҬV\:3_|??}7V}^Qt\mpF*zvcVX@?t`ںW55Օϟ<}楫n\3 T`bbjbl~iezfȤDtqlJgX"P"Q[.H;Zw,.X:=>y#M6[]p,slc6d* Fp2x6=ZYYBmК$Ò(t$IL D,~ 'pM PX0ɕ~{_3X?^7{b[6Uoi5" CO Lx.g4 zh *#AJ &#rR>r(4rqaK 7dbqh"ϖXL6AQMDÁX@r|nORM٤GK;Nݬ3 zŤW_CB:N|o~O?8^H[l܉s5?X "ڪBjz{:[ۚ_ַ5W>y˗GWccW!I(l 1F3PXIDcPd@lzP :QjԬWJbఙ'rcK021..-OA&cЙ lCn]8 J*T*j@.ȕ:/쳘ݪ1Lp볻VJk6ln4+Ӊ_xr}dL*CB2qksG!X"#a҅|X.cy$M$ w"h"l[-_{/ ˯+@bhÿc.`p>gxNmv @B% V?={_?>󍯿>=wإHDmVǛikmonninxUT_㗕<|p;/:]dzlj|jb 1bQ&1\$i)$:ơ$Rණ21_d4Z-:R -vnb' N---/ Ƨci8lttrrH S(l*Igr"bGoTJvd;Z͎`sNnz._  G~ m6ͭ1>- Ad|:NxN4 !< L<$z1|$*Os>Kt(DdHwD{DZd O%dqi("?b>dAR9wth$;BRSh-& В4rWպxÕʆV<B]+R`o{GwKg_Og{Ëj뫟<|t浫/^|̉#q@H6 Cӈ` dсh$*BqT@̡8RTe0@Pz!3( 436,t2:>M1K S𥙡1tr3Ix .G$թT CȕK#"xG#TA60;t# Q{tn'*gR|\ b<@0 n+Mg󉤒G&bح-@`0xl9b!C <1A"b?ҥd!̖2n1W.9|w?+jzG` 2\kkm6:P01ZF6F٩`77|wF<=釛??gva^51<69ϯHkhF342J`3 TZU'/?u։w.+婑n$ >5$h@cx"8ʐHD&SE* j:B I\He0șu::!ãI*|na~jwg:XXZ]\[x0j|H(Ȅ\x O!ۑ2@!X%j\6/YVho&;'y6~ bk`dm6Vo4'_<v >9,"D]8s?_=˧~|y&RHoAlZ u664W7>{]\WUyիo_W.xKٹI(ddB OtH8"RYt& GR98\"uf\# L\iGEgV`C}=}@F`Itw21 [ZZ_ZZlH$Qyb1FԪjJB6p^m ǼAG4cajwpCWmDP4IFH4dn/{{Ɉ7)OSiL Dox<4 J%ShDK P:& &X8Vr݃T"өBX(ٷR1j0:tZZ@qa2nc 85\}{ȡ3VH |W??ąN~쇊KWu[^vP{738de]mcsSkkkeucc7K7/x;ptx2?!$zΦPT23Ry ֛<2GX̤y! K:[& 2+ pO[gWWk{]G skkH,ϐ&O$EBN#ȕbTcAz%88i>/9 F~, xyA dt8dG/ݽla7XȢ0Hۨm< t@%T2 K p[$Hc|*M%b1QdRx6s+ ?^}`| &V(Fid7>j3 -zILNg7Kӝ~>O>_?:_⓫-nëT- 7B>MټƆ!`wSKCգښՍU u /=q[9yf 02=2 No!8,!mX gtGX|&C*<.S Tp\_ I  ]Mhhm' #cp2(1`46Ier9R#ܑEr0ReF^Ÿ1Z p.$0N?{+ B>_, ?hP(3\&ǣ\fxaZ£6Ġ8 ?zᘦHDzB*&=IKoslC:躔l2fF!X69LNg;:받d{_ɏn~GP_6 ,-^/wgErH+m5mMC# 5W=xYWQWʺׯ\??ᶦf@Cp4㶐L>u E0d"e d38LaJ$`Goird |MF::;{;!0X/tgodvozvavnfr6Mgjry"H5H|!2XOWX{ZZlLf7o0Fy#(p}{py!o&N HiD2 G|* #Ih<k$!B#(8"G`[[,nNr:D` Il>.n/fVgSM:ä3i4ZVo2 &b08^Ө,> I-tܿy/XCm|wg@?}i{kcmg8UISM͍- ]m/_=A]s[sk}sk'Ϫ*627&bdR<KXw{:mffZfmQj`88;F¾@ M%cG'$`p8'#ׇoRM.& 9l:d M2^_YYd^6^g3{/Hd@`l=^6e0M&p8n_ 7'6*߻z֣N}[/^܉}qw?~rw>%>]Y}ԳIe4دCwtumjhmn~/_5BZn5t4T_IeW͟;s~ed1 OC{'@56q M4TikK!3|) R`,e)B"p9<&l-/-MM] @:;[ں!ЩqhwkkK@tjenvFAhCzeVzP贂iCB,.z?`0z('cL׿b/:dTѩ&BH&Ul<!2h+s]|RawT>xSdAc:pyNanj4ZnSAjz|s7Na o?:vSN^ww~>'N;{'4j b'w6 wkloojjijlzÚΜ\82W7Tb*R4"Et*KIeBpHjB CJ"DDAJFn,Ƨgg=#}bv1R AnLg$By6jZa9[Vh2wLv y|T8 <.8SP8 K no,ο)/JO l"h67A(dPpLH $ XkSrE)&N_2d6RlhZlWҀouY}>8T{krė;Aw véO|WO/<ٯK߽·_~sJ3/ ;kds/k:uZ{;^4uttV54>}Q]W/\9uza{:G Go(ˤPxGdR ,˖2&E`dX|!0` qwDl"LYxoK}SKG{G{/*ðŕm2Y 'p [5&Ag7i5*PEq{ Y:sڽ@AN2(QP|$Obd.ϦA_  ҅rm& H  E!p8,C&>KbRX61F^O6V+撱Bu0EPd\L|ڝ*s::(XAZ%.(LC/~ |[ .|sc_߸_ɳ'>/NU&M4Cesjk?z^\^e{O=}\]VWΓ/Gŕ=[nMN.!``<Z"H 92?<G)-2\HtY*J|:M( T*2hdr7 : o 281=??90 C SH"EgE@ct3A/0Ln0fi' K A,Rd*I$әX/%;G\)D-}"*Nqq,`hTf9| pL6GaEZ_: <Ry\^^>WJjX Q v ݥ75VQg3MGab #6_nhn"ymav>1>69997bVD04:L&`l"`AgYP$sCq9H•Mz<AGG CC} -}ce`SMwKs{|oxtja 6E>Ze2H]D$MN;^w8P]˧p( cL*<8,guR)<@yNZtY=b֛fpGDV`^b\{z?ǟ7~yzZQxhwԳMFk쭯ohhio{Q]Z>^\UWʥ[奵iPbAQdvs,Je2\{H8䰹"s%"F&Q#S}= =сv}Yu2r t2&Vvh0w04۽nv[ bYn~>'8L (+@ӃX0Hr&s/Bt,Y&B2ٳE8փ&8agҨ D"E(H%e9 &D3t0Ηsxxԣi*P): Yc-64}^TeL W"&ݻp{O<:[p?ݭ]$>R現R1F>siIۭg6@Gm}SkU_kSEe]kgOG[|$Ɔʺڪ&p_,|fC& ͂O%c![xN'ЩD ",.-+<0xHy"&YDy /SIv^Q+4:%0N6h]ǭ(8n G`k/~Zz>g'N7ڹߞzV_lzx{^.Y;?C帎ƺꊦʊގ;?]}V (}MM}KmCM#3 6Ap, qp^Y%R yD"`(2E4ŠO` @"bS cϖ2Z#sp267 h6uugg3 P5;fs;.M~ry"P0'p>g~.'t)HFmP.9 m@ArK `DK>Jd2R0x"H2|e |y+}h(6Y:f_3CP+;j\QZF/S7ـ񸍢-@o`@s5إN??\=yn(dm>y^=~ym߳WW7W^u0^ޟUu^+A9ikwGGWo{gOOsSsmMc}[Sm{{u}[mKos㫊f4lfrq 1@acc k("ǦTpxD"AQ$,MgriLJ\IđnS+;hljk~|y9 I> F>5ZGH)<CЁ&\!LOg@,&Ġ3t:4xuRT#ӨG5w@eWVЉ)h{wg_lq E 54jj[]\\ZXXd ZhulN+`nsV%x*[}x0;\&^,R{ ?UHs{`jK^: 1TK&0,D㰅,6O&K2\$l:ј*q) ~1-ytptU<+~ H:ljml5i X 7Yj)a\_\)W{//>j4GPBϳ>;(g5^&)PN:kn[Ûjj]-Nt74WWU4u6 'ݸ7P][P_QIE80 tBLJp$B:ESAB!1tdƑ^R!-d;t:äKJVA%mn." FaK㰱 -m=Cٙ٥ٙM$@ax嶺A_3Zf3 V'`qw&{\9[Ȕo pgbppp_lt/ ,;Lt4l 8.%1 .M'H&W~{Ń$o  fTf2a^Sh"-ztsLiLZjaqIFYkkyvՋNos\%N!Xzx9><ĵ&)NRζG7o<읞jjUSwwOm0lddkZ[[ZZ^U|ZX_C{oO]{MY$_ wBf54aN 1hFh2S@WipT (D" #ҩ 3h\|.+J i4+~owo Y.oy_L璉X.痩5RVBJR^:MgׁܶKI':n߼uꅊʇdy_ Oe#quoVcK/ Ɉ`ŨٺW.\8c:ӧ=5w&ֺۻ^YP_WXeec{˺檦֊gh6>;5;NMNl,om4HQq$A2H$a1$?qTR) bَRQ)Aiȍy$[-nLk: =54 Tjq{l@ jS5fo)wF X|*Fao0D\OJ?O犻\txK!ǠlhX,!3 O(jr]&||vXz]Za?-޾=է7GVQ=?m}X54>?ɋʚڪꚚƆZ &m@# AfאK[ ãhD aOR4"zt_Ηy,+!S`05,*S"yrL IiAE M<@YOL A;!K֦憦h l~qqqemma+4:B~5GR##plFaBI$=T>ʉaPLlpt,CȔˀϋb\~=ڤ1LLҩ,Hex -H4FSwB){~|4U𷃃>PAT OzNѨQ 2BgQgs:1R[уԍRԼ镍~8ppJ Wg.%k296=5/?2Ik}'=ۺu_1S眶v;*YVlK%,sA ss΁Dd(9t3sfRU$/ϻZ+U|_\t3_e}ΓGO=zS^QP :VF&lij!654p{y> 3O,n@22lЫNP 2AgX: ۯٌZaLlkTRaJY]I"447twu 4ՀStFCcc#h,'@BH0.`8M__X_]B^[^H-禗62knvs;]gL  멆Q̍LP9`]1\Λ=z&ήx:orzVڝ7qlNgl*6_+=Wϟ1PqU7+'r_{qŕtr˷}}x7E4h`' 5w޹ɝBk/Opu*bŷz PYZU*`wwwOW{{{-IS{SC-}T>8 DHy-P>*DBL 4hJF&RKZ!8447> X^MfV.׶2*pr*^__ZNNE_ʹ"GKVQBD" FW666X:8l-eR[#dr;א h崃{\N5#A MơV>z⇗{7s'?{7W:CV*J7?>Bm B>]W5Ķ^{Wto?-44~s>g?<겗pi_W/T9$Q\5ł 2dX&$B1 XYJ JF㣨D*KрaߐS3HAA<_ WSS XGn9VӬ3:6is9ÁrxM-ӟ}[UWzw}=ԣxpn[|.jS^WT4>(t>s3'/E9?ėn?xW@r>yOVqE-\5B롓&"_MH ݽ4n?L 86̧ ":AlPfPKX,ԠK$ Z JPT(V( a]o,*e2fPu U|]mrʪmmШL/%&j}x,6:#SS@B|bf588^ؘ[^v|-J&W痳ĴL4pT( QA`T%˕ X3Z \%|D &Pfp;n:88ͬ&kSހ5:O`ay!'``4ŪӚĽun]8}_ f7d#o<(N΍t2t_yY^+-(%4߽sWN=u̹o~w(OK$Zճŕ.)& s$\?;:=F;8>z{ Zj`[\@=v?lad6CfF`w??=}ۥTxeIYUYnY'):|ucxn*d ~˂ ?c aeZA)ZQ*(B+KQT*jF#Ǧ+A?$r"3(ۛIUe*\aYQiyA9Oă_IS946pAtj0^Gzb9 jl+a@D P@(^f̨TspiflG}ye-x0򰾹g`Ce90H1nMJYݣf@Oc3Yl5f#NogSfr5 L^z㵻=7?X</ 2HD.3\a@<:{6v9χ;{mnfw~u`hpgi:C6 c3+A3km 9:&p{ŏܺ՗g>LCe^=xu{O+9,v(9ÀFQ֫ ;RrSG?|Kgϟ=[Alkr~Ey=&US*Õ֖TִV5VW|X֣܇/__|կ]v>^>:_ީ ZЫkL:]=t>pI0\$|/l6$P T"Q(JcN$L,kQӠRcG6 BR""lrwSsMU]M1P]QWWWHڮ~sP iDuZbjp?1xl!o4Z"3㓉zfim~u9L'ҙ6ɕ[,Z|{3zGk{ovם= ǀ%9ΎC =v>Z:lbn:Zw/Ξ93gwOO|@ zQ{H5]LM`aDMeSd2à3YLg`1QX,BP $dRB~U$!4蜟EՅ/ JJJK*Jj*|sqYY^9h={O{֏{ O>y>/\}| E&wӘLjΤstZ?EP qG"d\B@"WhRP*JR,Aj(dPn0B`?)RmMEJ\X4L {5^5`GfjuGkqFbc 6y6MM酕ڿgV2Idf{cuammean)\IP,XÒHeHԪ("dб,r?K$V3Gowҙ_cVjo/>2$O~+ ;1O 96v.ͦWJT2B.|q—gOs-#m? PT JZ*d* Kn IErp!t:<7>>269M.LLNo`Kuo{k}gws+T l6Xf4ⷙ4Xl@!7$MLe2㍽/o6[o~G]'h$$MLD٩Db.`s`fRˢp>YXEjGx q'tҲUWVV*ꁑkʻŸWwnݾk__Wqᣏ??/7FwWvaD-Ri=ͭ,2",ibYtcs` f! @S,b[@1D&I%RZR-\"TYlFNmPkE(bMmhli'IPZPRDj|Z")0"W[b\g0YT ҰǦ3cb:\_X^Y&kŕU;oq}wceD#B0\#ɥZ+@"R6%DEظiS6:Ll|~?Lhtxfzr|.1>p(0 @$< =Cc^אpn_nS!*~x>;'K] )\]/KҊj_4WVVTpb %sg<˗.';{<|?uĕz;ښz t.3<D#!upx\.Jg8L:@Ebb3,DʹD0OTD 6If\uYQ~~EˇO?yq/r'O>w?W߿|7-Ծ~lcLr!>S1! \T ɡ3<*xlėD惲ш#*QH"ךTNt-&34D%=-ݝĆZW[X7EPXBL!ڝ:ﰺlJ谘 V;61:NL:ƹLL̮.DfֲV2Mod766LJldW)!̢20FM] \2+WrĢV ko[o޾/;[GG~fj{8GX, #3h"bh8 9]ibz_~{/?YԕzpCӓ/zoM+ X_]Y+Ʒ65ۛKA* K* {Ǐ>w/.>+_||?/.YO{@g@ m T 1cREQ<E1Pt6<* T,Hej R T.S8mJ@QVۮQ)h-M֦:H,+inhi'pQ 0Ҡ]nrլ6h,MOLN.,&gⓉJzmaavjnvfV2~Ýlr.TH_8\":M7PF?12B+C@_Ylnlnd`kuo{`k3 ̨?HcD ՙxG,EAivVUFr^.&a|4'>o&MU2Y-XHjmll"4 E%^ܿzpǫ_? <{.ήn:V)4)0ؘn`Meshb'DH +P@ R"QvKp$@_/ʑIXޞ:"H."[[[Z[9~.¨1l-d0lrRhVh`lri~razrz<1_J-.L.LMNo,'+̓ݭ1؁%`TbƮqVf4*X,Sy"00j̭ ku_7ۙlQ؟cMLF⓱p|lycn|,:LG€QG‘6~oٳonaV2sF!^ _*]njmm%x|YEeaiq ltA?~{޾oo͉Owè>8|QOgL:C46hT&S0~DF@X_BR"K@ !I(6^orZk3 쾞^Hy޾6B HaW^'7 Z,y` 0Jhl4*bd_d5_X\XLSsˋsK3Jv!IcSl*nKEj  KwFi1jX21Bsbuyyfqm%ZOd~m7?`7;?m}#ñLbD$b6 yJHyCܕkfW֔WVTյww57TWZ8?ǯ=zw=z_}O}ߟ)Rqӏ]#wLnj* @×0DabCxæ3Y[*`Àlʱc ҤJ8)B٤1jQFF!Pr@ɔڎ֞RIa XK}}[jh,`(O(y( 0tVҊ [l&i G.Ƨǧf*\r9w}p u?{5bZTPiA#3vRDb272jj؇խݣe-ȣã$pnh$ &CDlmTdxtlt80 Gcf4 ,%KtR/zDs|է=>I-aGX,p%EyO>|y=?pη׮]݉8txmåSt |( @-#T4X\>hI,<6,Q"LT J Z쁰D"PX4(B 3z:I5TZZ[Z[8B㈅H$rPHEd3Ymfwbh,NH,DfSs33 :Tja9:Śj@ b.SjXV4&* XK:E<!WF2u[{?9LJ;eG]~/  ã !x<8酉X# &CAp ubBȔ !b H`.9d߈G!UWTxNh"V4D)_[e{w=z ˗/r|{ ϟ=uuN_w}>N 4iL68B!D. < < T6}bPl@UX|DgZ. uJB0*UB6 XJT!!h UKʪkښZU㚩T:@ R˰C-, t[42C!_Xxlj|:Y,L?8==I:>؛wVe5jJXk:VmY ^Qcc|aÃwkw7ݍ9cÁ!p($㓑h [,>7;;51ht&>25 ~:bʁQ@'AaV윫g?OݪUlq/* ^UWU6IeJp%%_|ܗJ+K rݽ}>9_>) |ww [{;H}ʥcF[yl rh,N)=6299DFg#vp þА j Õ+l¦cۈ[$^3߼1W/?UANAE]u-XQ[o$4?"*x^eAWy/>G>8ׯrWgK X"6-T ʀӸLf0ah%`".Vr-<Ud A fʬ*R@gR(~Z_[OGMhUEdIZΪ@B)@ ڕ2Xa C#CQLlvf~e+< P<^A6IRʤBIљCh|V*@H5χۻG[?XlgcDx>tZLLǧg' H(0 R$C>E"Aň CTp5uIĂr\ُϊ4*煅+ոڪF|i0?G>xGϟ<UH҂?ݺt?;Sߓ{kdE?@j̥1<!si|>cs8 ALT.@S0WP``X@" J @xx0}P1FJ\V ρD.0on"j*_*k s޶nJ6F=`:S$,,m^/^vɨxdjbf~j~a.>>$W֦&'J*Jnln%7àJL!UHL V֨۬&04JDtH%-͂Y\Jmnon9}?w7wVVGƧ#Dl<0@ХpLt$<;GH( 2Dȗɵz oKFFawG(Edҫs__[(aE5DBUI~^Ϋ?<˗/~EQYiIIeyeUUm%PWϝ?y?~͓׈_&[-AZ'ePlD@Kp90͂v⏏(af2@Y !EGr6d:PTd+e2̃؀a"rTa WZ\_]ZO<٠1;< E`._n>u^ļLDƧbjmmu%G'"㳫kZj9hF(RrA?ƞ&zf$b쉧(=Jf=<8e}gm.4 &b/49L;271Zp|$ xb|f"8Q"S 5hrtwZeC^R0/eZ[J+p%/rIy/<}uݻϞ>enG$444 55幏oڗ'>gٿ}pLs;zA6bR8b<`2Yͧr\lW* @"2M*,'TeDex&BgBʡݭ-Z\YT_A&zښZ{hTDc e d2 z$ZfZmpd(4q͏O`g;Wfcbrqfyei TJ6uz+j9p&S+-1T$<^\BXb*^_oyiue3zZQtdd4EgGGrbvarr|l,FS1ơ6 F~ϐEg4vͭǰXG7ZgwOg|ߢ2 y}dRkK`22\.ā!kf rQ).`jDE P9}.PIuj'""rX22ی0G!2m +%UU5tk/H"B|z2j2:F5j J SSdksuy1ά3c׭eLDF!vlU0lv9u"JP"!vbNf}+ ce}coo^6}o?om 2h  rəʼnd|zt,C`hd:< ZhR`ǵ69_pFjN!PgkGT_VWUUW>{2W_ۄ/{yū/fP}T&BX\>őq-D,Jl$>6AZF!:=v99D*WKUrGOkCTOl_JWI-}==,ZBr;Ma9NNĦÑŹdf}#ͤSKmowL&\HPX)P%zbs;nW#Dr!{|`#]Ymg7v 6#=!S1 ^ XOHRd:4hljʁDJ[󺼦ە5݃}?}{>|γr\uM]cuXTiSO JW/x7oj/i\NwG_;h>ʢ2ʃV/ p\D Y :eaf elX De,H%\Pt b^&"J?JTU"\(Alhkm U74 Br]#Aa Cb:6 @<OE㱉Db62[NnQ̿Mm.'ӳ. $ Qi5>f4u !hRUuJ&x}nM8l:^k׻A@!#`,G&Ӌ+3Ssш:Hxd;?AAC IfXЫ6hT*!#RmWe%e%y/ ]-n#644U? `<{pݻ0 ʾ_D5>l Z[-ՄO9yE[w>92v4ww@ϢY,^˦ t E %($Jk*Lua *Ħ9L` 3§`yB@(S r!DEDlq(#x_ZdAf]m-xRmsS}-'5w"h&5v72PTftJHZ6r@ѩt E[\c p3KsX1vqk`8qK%g#@  T:VtFzlXX)AE GyPөUKRt*/noDwwݙ{zzzd˖mr%[%1D ATBIH `9);{z$Ӣ@ o9WW;y?sj&5%Sx& .`X-+ۍZΧg\*K%'AGb!j ,eΌ glWl:ۻ_EWP7ޥhN(z|`܁A*CZ?w;SGѰHGШF4ZP4I:ލC%KE`.j${Le,mjI]Θ-N= v;xl!B.SԪQ`W`BRMLHErD \Nx-(s %܌|iZKbueU]:\~~z뫃n v9@! Ef''}.lV\88>>;><=<=ŭ88닥rua̍+TSPX(dbV/l-V*͕fPJ%rRRFpI'm7s?hsx,4tx>;:(UO ?;?KdG?{?𬹥/J@$H/:tD1ۧ(jZ+4:P P/7s?IM&3AQj=ZlXڽ@$ Q(j\)ÃC٘P)Sc H#TB45:'cpx&ӹL83Qȿ՝P{)WΏ~|urg*СZb,n"ш+R%Miw~`˷\۟ysp!]r9ڕ*T2J@U+ˍjmmkca(P˔B\$Rˬ%̡0] hYL 9Lz[Gߵ C!5~.{i{OЀ7x#C#|t|B& %2͘x_~{IÏӓzH(;'t_('tTUvzfSfX*S\(,kh,/7V6vwΎN\]^0%76!2h}_7owߪ_>|ӦAT<7*Œ %:.)#?ßҶ/ܢcEܠW3ZRo:Pԓ% Zˆ$p8˴$NbbFa=fSO ;@l*Og 4R%rH8>8*üTPT(c"Lz,9<`>pl鴇H(,.+^TYOaMSf<OMϚ;{{{GyYRaHX)ƅ_xL}:T!R&j/4jCڮqRS e݌$P!IsޏDq#%&&Xn1a\b&>cpR+&&tt@,d:V#EH#qF"?? z5?Ӄ/|7ޙ<սMM2Z' ѡ1ި\!L02,`#/_ij6|4HJ5_,@Y| F&6Q8x)@11pVEvYg$Xnحv2<0&%g" /T>&E"DUkB2EfB'ty~S 3==5}YZ]X^\mlk>XtzHRaqPf$׋ ;(pn\-a'WN;~W??/W?/J`0<|?]ff6_]ǭf渉q\-p_gKsӓK$ 4j)0"#ml|lBePqxyۓ~>w?>}Ѷ~lyYWۓX? & PZ1蝿?QϿb@ɆǵR 8I~(fXBin۠uz`'1@]- .lMn1f1!Ft=^%ө䬗qR(I"Cdϗ+R!DPHwbv A DSx6 t">[˦\iV^_4j[cn"T~j@H# eFCu}NHi#H8*m\^ѫ_^roh囷,@I뵥uz~yPZٹLj.W)edvv.Xpٟ)-/T ԤvCt&в:_%Ӡ)F2 ǡ")3Mf+I2zmom ٌ&fNd|k\Jf#3 zChtF$|FJݘɨR6"?rd@83Xd:I泙T:WXT՝fh 7Y4v &^W tiڀ6F_q׋㫫}+nj`b)RRcVV*Y卵j~.]&EpT)1uLFS,dF˗*B%usy\ fXF340BJ؋|b"t >o8zW_Z^AboِD:cb*ժtVҀj=u1AT4iZY-bb5ffD6IF1{,^VbP(8MFnX /b('Pi#cR _{p> Bo'r U*5jE=8RJnt:=> p_q`Hh?],7m7YMYm.d($f`HxʎTGAqN#C "pZ!Sm&/YOBaϴNs륉l~a-B㷱k+[խャӽdТ4k+9>>::=[],U9q56WKˋKKˍrP_YX0FT LbW$2' rW5^+RP '52V돚͔J* 2hd30"Ѫ#|Bi3C\9 |ܩx"97Nrjxq!Y} N瞝lmOPV`*fqT{I06m㫣GO^=x_]_:>>;?;?찚+fr r/n6Gz1X[ UɹL B@$"ɩiA41rP"+Gvx `[7Ã6 uw5m{Oz>nKoא^u``Ζa^G(!ˡVpgwR a1CB23(D#B:5iˏ*V0 L΀Zn)PhH@(Fv w@l-@n#R˸@<>Gt65' I`7O&{PQUh42|Ӊ@ø\d2'⩩b9_*KتTjl013Z%ͬbzAw8:YL1ٍ7G{ΎL^l)[)\R[YVZdyQKKKd":57ӑX,xܿGux=ީ *|t|D?[X.FmFjwokQ'xn'=|L6hizz8E5(A ʨSkurNT5JV+WbħnP#m8)D:Shz A0ziPf"HD;=h$uRFRYʬ( kZS>3jP-&\R?,ʸm:he -z|рwxcpgBT:;=WtiIK{kGkv5cpb4,f8vp[|\JȟdHt6OON_9<>:9<;;??8XJ%J B2_Y(ΗҙٹZcymaXo4VFceim\RL%3xd2 &}qAXd=/~OqwX-vE@>oo':^>;_n}vˎz'/z{bHO0hLoШ1FR*rbB S cAQ5 c" )jGtFĿA!dB e}7 # ;U pdG]N-n zQK$ =XaHg*4ftͯ.oll.5ՕjuZYi,Uk\z"`sٜV SQ|>{}CWJePe@wx{hL"mjztosn]S{{/OTӒ݃C_67kl܂5r*5F-hۮb`?ש A $ntPƘ)Ik97bZ֐pZ4𻜌e4d5._tKf6a 8,z5%D7. uT"R*1xR P' WpfJlz;EQ[Us17drE:Llzx^k8mkx+M}zl՛ !w.Nz}qWMV~u~Q[~ťZuue)_WoTKU T:< ΂*V˵@9}ϾygTz{1tzww}v{>w>uþ y74'uup-3LkHB *D2굄7 >zIeCAH7Gt =KP~JL AIFJݝir Xk~ed6cwOʂCeH0r0JP*B. e )p#mTOJ\b*S-kB:,TkǍMizzx#F+M!n.qonxdw׳'P'GW';'gW;Kh4.J| $`X//jXd2L.WϕJB)_jLbz6EfB3`{>? Xs?jyzFFbFMZ |ƀQ i4: g9 dPH.i+7 A8Vnm%6vcc^;NntR()j|BDt\E %8|L2 ?_X( ]]^__;[]YYۿZRZT ` WwhqA-N.nퟞqO./v^۽=ћt(6L^)kRR!X/,-r^ܨ ty0,kL!_XHSpX(57qM^ l4>O]}i$}.z{zۚ;^<|xgn{7߽'JlgUVDl$0_CpԂ)V93"o~ߵ*G{ M)5Z-J-4zQT(N0MT5K`0y,KiV# rsP8BDJL"+1Hԃ;h6jlCөl"rr$P[X][nmﯭnqK6{K)F`f'hja6ZagxĸMFi1:M&mK.sA_^]W'NΏN6SLf\k,TRyouQ,@WKJXeR;_:5~Ekq/ڟ>asO߉{>'7ny򲵭s@0&|7)fc=frݱܣ 1q"POj )qR1?E%ˆq:X$-6FP`U ʀT83!JK@=c-fd6s,>ll Fa/wmP_+HUJ\! @ጎ)$J@GiqicٹDr6t-ήVVkVlBGqPZGhq&A$&b&j=FP&K^<9>=R, ӉR27MSs:P /Wb%Je!SSJ!3 ϤP8t3$O0NIIaLR.F1d< S pOYE7_|᭛O'& Q@ոVUzL$f͗~"BOSf4SĨC /i@Z8itiDA2N;Ղ n8C*T)g(\&E!Z܀a*.~`|\έ5t;LVNq}ST\-gL`simddwk`{v)* EY>=:h U>:?0?҉[h~Ih'n"g~7_򰭩e+|_822w6ƆYS:ϮTkIBvyh E: I`8]u?epdwtdǗǤ2 f @Лu4ւhG1c0$Aqd&no5FZ, V= uf3( UI\hժqpo0PӓQ+Ǖ ClKeӐBh6k'`/.֫RғD4)УfW v̀12M6v.^]]97`{wou!4ǧClZ+\f`hVwnԊj8_jq\ TrWz\@MZDriBg =𒍲" ~O_45u yӟ[޹O^<esOSWo\:LF2\.*4 ^!C Jt|EJ*ZTni~;_} ϾyYk狧^stzqo7~>{ t:8}uħfz,fRq\V Ri`R\)euES3T$6뱹~d u Ӂ@7#d:ΓJrŏ_?jnk|t[=xݗ߾qǷ>km~G:m5ZJJr 4M x(Eתyr6ZAFTcĘ |}oOoW/7"S\Gʀb %(R p}ÎK `̤I[vlHYDD^80sO_(J!|2i\)Ke⑁!PR*~B>*i;8G qQ|,6W7';Gk(6< j 𳙹J i2u'd%P5ꂓח`O\z旷~|qyvVa힜 C3RqNŹq |6W,J |e~Zp{ta.R+jDq93 DBLn.@[m,EiT" h(Oh]~xt7?{}ɭ'OZ^6=yz~iVAF(Ubl HZW% fʋs@Fj-Kuvv u hPkie:pHs.љA0fdN-:VDDF3qqYGR(Z$ v %J hT8>-}:2\TvwvVN=,:d4Y0l7\>j61 7!13.O@:<9<8/ζ d 4\{'R-?Vb^]//$@sr|v0n{4 Œ巓(IddOv| N`7^IGGkl|ѭ?K^wgGgNjގ۵_ĔЈJ2>Q%PL2B4T N-qӢZt_{HoP EcsXnd 4(z$I`AM >N̚fJG4D가 rT]f`$iҌ#R9<84"ȕZ kQ%P\X+כֿ[VB4as8@H|3Փ#_Oώw./_]]ǛWg>=e\Lt$Uj|&,ss\R^X\\(qF^V\JR-- OƂhl62N{00Kj(*y=]}?~CسrhWo>{t<.6ftZb7npO K@J,nɠ%Z0(%CLQbq7e$PR8P)E|\[h3`XZoPPDcOMܳ? 8N3#H103j`j^jz^+cwMH1鄸sH v`NvG8q& r1YYZ^mm]:;>>\e 8߇ !qq帋O(' B͓ݣルӋ/Oۛ^y^M)HϳdT.J>S,V^j1_$(Tdn8xWɘﴰV $>m?]Z"\*_\:z{7WHڛ~۷>=mݝmqR j6`&fT#(:bxB )U4cbDMՠҘ1*VL/?~wXbJoc )D\-"ޠ8n"fg!Qn1(XYr#$#*=|N8(9.Siq`X? L'f\r-r|uzuqiqigۋ斗͏HL.S,A Wcpcp59#t:]v{10dT" PjPɥ"P"#61t 4W}mx>kk3|?.O^nE)33d9sf;[{'G'N>{ub) GG*/'Rv$gR`E tr*%ӕB HH*.c`r*}6 6;05:ٗʗ2XRO#-/ޗ?4u>kk·?L6w_w~}Gdz_>}pY+e2p<m%JJD7<(GLR˄Bj?1AM * $J@ZqI{zz1ڈF``13"d"0P;49F9(f70 Kh jWmdnt70ӠL! yqN 9q MjtLML!//,/.K!ro7BL\gl&hm A[K{;DWo_]\_՛\!9 ftZʖze>g*L*db6JAϖt<1Ʉfb PkZHD2d)4&cϞ>{ڞ<ӗ)c2O'-/*p=o@m6{jلJJ;C1k&TrR jn5Ucc* #h@ndC2܄  JM[l4B f@h#e2 ;cb&s,@2$B)?B2!;'=iPB5&W e w(I<\eqyX+/mo^eV52(A@1N> cZY͝*)g瓟Q}.OsLv&;gLnuq>涢d+Sl<OLN#ST:u$⳹T0I(Ǡn7`Fޠf FbsKjJ$`zˋ֦M-/=xr?|3@BO>7C--O޽4 Qj*_&"F Z0;wunBjnV+'&4òzTј7*e΁aPא?T) C [G34 :ԐiNFVϝq]P؟0҈*\@<#"^J5.' L&SU RA5a3dtP[hWWzThrVR* W "4ØpMq799:ݹ\8:'{\__^D"IΥbjffr!Y.,j%ny1I/% L @i.Cn/0 D49φ}H 6$=t9n++dj2R*.V1.jh>7C"h?uϟ =m} 90e%R #0FbȸJ'TF 2YHRFZ,iPʭVJZ+ظ'Y8m=C#"H4T1]I3) cb&a ۜV3WpڅaF#m,t µ(AdFo*64i RSj b\!':-jnqATx6W/.T+k5f|\Ad*!IG06'Sf" fY ӽyzvv}o.jXtz6-Jt:-ʙjripv,$H2OeiauPdj@IƧ"tl2{ހLt4:r-rj?>w_.p/>/?֣ϛtH*e J"2JjߦDct$M#`5,j!iTL*Z-#dB.Wޘ :^tyZDQ끋PTHdle``I}!tBQxCP*NNE3!QkPURpZeJ(eS!L+d JX\^]Y.lm/J>tjzFGYV4du8cgY"Y>9=9z躪sos= ^(I-꽯vWiKUl*!9~{b |5;ff^q:$;׮-.]}śf5ˀAѓcɑ@\Dgb\>84:nkd:j\MhH<B9CYn6MѮ_nʯ֬1Ox[Ykbm:Pdh9Cq#)3F Ih]F-c뷹if4"irwӷ7 ,3``8!(f 8RLļ tU:YxE&D0i2IbU,)9rqept6BArs<͵G#cm0gg](LX͛Ul8^#ү,)0A M_0{yB?qŅ;K7-XX>Y-\L :3S#Ƨ:CN:680928<2bݒ}lcJ0\O3p:;hTTy*rp WqѪE uC6lڱ~;'n۱gG޽>tۿm!x6.[Jr4I +(s/9YiC6b^/ͫ`u,6 5bp$|5#LK}lnpG`4& $ t~Ek|yL̩/Aޖ(PiQl)Q̤Aq uP~[4h2D"t}x≩c'[Zc ܕ3" b4(uBӽ,MbMrԹK]:{ginvwέwon_ykʥJU)Vp؉' 7&'Ϝ?q̼t|tjlbd@̆"~rbPT:L%ͤC̥x—MTq\ XBx%dP#nߺaƵV|ΏVھ0pCloÏ6%QG?d0sV+0*BC,`@yk>0ʺ( ]bb:%9ŬnBA),$-+W%rΟI "ӈÎj"# 8o#@')i&U:69>7LJ'_zz)WH(@ 2m~4x4kN?{:Dƛn]_~cu疮^JG3|XNjz֪FOONO=16259>18>ox5ڨTa SU`6Vksg%j$l"f0jpVK`x5mZzo+w;}xۖ_}n]G6m5{+  R.7j@c=ɀ4 WNGQQC,ep7UO4`0@D .f3,.B J8OFcЉ`L֙8~bFI܌bjD|7~T^Cs&ϟ:yҭ%;K@XZxkLٲf=}Ϧ_jֽ]Vwknٰ /Fe/8P!Ⱥ@(OAP]fYYI5TwCDț⠸# PD3N#=Vmn8EMm$8y!>^D9I}Pkf<"%A4vzr?Dl6It^7$ f swc+򚒪$#vZ`ƒO<~a豓b1~i')r'3J١} +C* +X0/ 3n6UH$plavgA#%CEC2 8"CNo̾#WfYCP"s"D( T` l!Px.jLDŽb= $a Qh:ʆ)`ێ8EpBNb"QCc'&;VFwZ1+%p?E8/$ʺ\8Gz3s^rm+ oM\u}\&ͦ)fP J]wBiF*Y< b%]-Tsx>ɡ^̈Tp3/^ ]kW~jƍz{_W|aÎ];vnzW4g,<Иa Z}:.h*(8<NGYN2'b:¬.%d ;zix;Gzu賲8Jf0$x BHY#xEsK8 Ƅoo.1$NZ!CtD9INlnur9S7I|)JrZr8l6[#]Ba6u+0Zmϩ.ܸza~aqwgvsf߻7'JԹl94ʃB._4'ǎO4;C`9@VZRUŁf%Od*tAdpZU"TPf}W~ݮ]y[8}ԅ lo/_z]vݴ՟굛v>pЁZvڶӭ'>U.jvE4xE 0 <2e!p$l@RX7e$ADVP-K8^F\v72N KQyoUS2J(hINaCI{%.zSɐ?R!~2APYPnRժJ!NJšVkgL|rYY](Qj0 {YTfh>_v•ٹ3s.\vssso_;+ aR.[)*b)7A;c|{Tn7f^f|Y'bl&~ABͯ  zvДTJgݕ<~rbޮ#oXŚ 7~Olޝoغn+?]vÖ{r`n8 ^BorྠEC?Ȃy&)0>| x(T8%EOIl j[1BAqq5 "QYSj19z@%rS(qGL* j=Q$B. 8Q'Bc-WB_gZ(*D}5[&O9PP7.JTt~hUPZD{aި_~IP$4~pz~e0\X(pI0$Eb(G$Q4C!(8.'A6;l6"Hp"i~\^brm`*櫑`UjNLyw9l]}X F数ϫ`0/CaBZc^|Yw\[43?7{u3PjO͑f )U7Wy 4`@ިlX%±^D'C$Xcjد8~'o̠C?ȃ,OJ7N=vݿ>_i>-׭Y?+7lnB:L/fDq35iuYWe  `qD" ˫)`a#ȪDE$y !C.k3A0 WHg e(~H- ْuI! /Gxx/% K  wr♬} >xO $)gDR4F1E+U@v%wYx܎#=fTQq sHXIc](rԅs^4sqܕ+/GB-,--^\??xd>Bl6d4Y4x7ZC`A<HE|8BO%x(HyXA[}{G^ߞ+{~ۿ[??}鿬۰/>^jŚ _Zh8ڴ_{{-$p00:0xE՘H@5hr)^8 .!r b58T{`("Oo$DxFQXp}d8E0祀yMգ)Eua IxpsCTy;o%49̉+l`Fy}*H/&ЊV+3͉Vk8Iu9{݈{C@RPVh !2gf.\׮_^6pc~p*)fڙR20>nfB=5a.LLF;Ęٽ4 d:DeMtPb u $HI 0Ð߿3Ͼw4shv~Zcu^o=>ww?bՆ !\gc\BiR Ar@q,pš!^ ZṀyB'5eAaBӠ)x0"D0PڮZI[8AHyH٥Q%QZRbS¡H| Ơj7Wt <*o>Rz qJ@ $jGH4U4)×L2^ƺo]{9\GpA~$dA$hA`iإK禯\|e !\qsiiq~Wf Kf6N:C`^1@́hmUa:@hHFB`2M s@8nb9›QpOЂɝ-7:rbaos/oxKoWZO KD+"4bGyt q^AU 6 Jf&thY{bO>3/m^y`݊d|Rv  8x;aLd @ǛKr9Ϋ y}LO6영g<וluzPvCS2# ,I,Ҩm|`$# q!%8<# a9ιQu( ^-`>UdWB(lo޷oߖ]^ ȧ7At+I_N5BMNʿ<}̥]_tusoߝu™\5XT+zYoK`pchDc O4:5z!ԋV%ݼ*v`˘nGybwx?}3_~楗~ګ?=<¯^yW-+ r5D:ŧ߼`t^ߧ eneꁈ.3j~EheEH}FQfnWVlHAB !&`'3\z\xF.):k,Ze GN~cAE]bH2$ ޮ͍?2\6;P/7 Hm2S騪:޾i灃]''*j.KHQJɩ~/\ow^{}ݚraXh`4KSjRK7Pk|ppc@6n՚DzTl5r<Pͳ,9t!u㹧~G^p-hx~³?y__b 7;IB"OpYVt7P iOO^J0mTH%UP j$bd§r@< \<ul6 QEhAiI^[Q'2!hf̓|<(BH~1᪾H/ 0i1jHTԥlTJJ"^JCl. <6oشmȑNͳ&0yRi >h|'M;s¥_vyy[7n--J>+6'rktžNl*X9. |^*r*_ʥ$q,/]|2VP-v F #~3˗=?ҝ.](㹧yp#PoO=>kWg~k_ׯzrzBq0xʾPT3doHyVR! @%( (4P}#ThW[9IEnqĂ{<7I8\XwA$Lݔ[A5).^b]\. lP5z u/])@PX$MSL6H'` I&4u`瞮w|}=G,,7 HMt&;uų3N,,Xyƍ~7gֿ/ jzj6B60hCfX H^7b&Wj5N7WU!?L| \~T8VPnןyG柭 53'ZÏ=K?e~?rGM;W_sW1842|_Hy }!o${ym] "0]PaB $憒 0!(-Gҵ&äPB'3l"Uo<ţ-;y뷯>ȯz?XA6k#<|e?~:T/ "D*JЛA{M$haB!⿽G>cȦS Nq#EAeE@sDPMN&nGp!`Yw*ɣ(O\WŀvSx9B.ݖ.b6yLK@4b%p@YX4DD|DKx$ ݶm{ܲm۾n~ ̵MX4NNZO?cN^=s̵k fn߼sߘ{u2]o6L.Wd4Z3911zNQwt45t=7PdULPUjz&n1]{b٦2v|ulɜ=#?|?˖=pSϿk?{__rm[DU o)TMӡA/>O@%CW~@0(2),%1Oc%spY\5=Dzuh,mown#~ pL)AfKp֧iDBHuGykj["($IAb L6c!Py{|"R&BKG"έwںi]{-V'HіB͖Ԅ Cegϟ:5uIgg.]1?wmaڍ;n,.]hrJ5*5ZT eszYm:Ǝ8;i1qѠ뇋Mi)B"FC~E Sx"+Bv6.I~=db(x־O*gVߣ3/_z՟绊<;9TEC^lRD"6 &yCP_׫@>NV%%C<}2U^WL:aI偈hH r8ݽřx,+ 8 Xag$Znq sY[bG6E\(B"΅^!Y|`h`7B,D(o߱ڱk={{\^(IcWc1(S =vj䉱/\:{͙sǝ{{vDЇ m@E)gΫUl?8q,6ht8d$^ͣo"(K2')@8,TıH,ŢR k6Yv޽imwL"X>֏@HvYp9X9~ ӗ]<{bfnna~go][sZ; 7'3LeT*jrD{șj{xręNgYigSASpʈQ FBX(( hЂPF6X=`H6 #to_b7_ybSUѣ<{t$aywz~+B!gk‚ڥh(H /,#R<{=Nb^e dB(|o$ '>ZdgB0Sh~EYNhb50^Md˜r(@^ e!uC~r#YEsyH uqp^,h1~vh% r۝ [-(DT+@r4]whL$nn̥sfHG=޸qm[o߱hwr&JRs# κG4Pԙ5rW{^vw=O<{%%r_N-HR|Ixp~pu#UBACւ: J@iUdƁc%pQQgɜ)/X( Oz,NWxhOqÚ0JƁȜ.B$ &E2hAVq n C{nTAcr6G}~ M7B ρĢD< %]CGٸm}lڼi,'JkGHc'/:=sĴy;w~;wn^} N1LhՊ\ռ4֟(}|NOM;cz"6@2̅}`C`2T5z!=6}~nߴ~C;}~^a2e~yA|}iڥ?o""ِ/34,) !0!)P`Y>ˊYIdd/I{ r1Q)"6`J̎ÿP@AqB<EFfiiT(s  [0C )0'&JiY4CV%g$\Z s!xb{v]q#\۶mٲ}vW.ݍ8iCN O=1qS|ewo-\vw >f./V*HL]j:ÝBk~~8W M;yHsaZ)LЃdgAVyW1 scB01À ]ZHE)oVl_@܅R2 ^sO1+\$"UO&+~4jpIYGO(J5JHq4^MRY~=n{A8(sPB$MIY2wn``\0Kw?Q׏6>>9q؉S'Ϟ<;s[Kwn޾ _]vd9WZcVA Kǎ 4Zz=WAnєH hD11 /T#!3Mi,*~+W~ʏWͿ;﬎5+^P޿{Ko}xY[~;WrG~JeN |D\e<0e$*,+|+y% 9a5(2q  E)U/FfSp dy3jkS.a扱xqb#4SE K0X:Epqq86IB@jP>P: o'w}am[wھ5۹Ё^bwH?Ly-=y҉g/|i΍7w̃o߾{s{UB6jsSkԛ#&̭#cƧF&JR(UsT>S鐡C>D1o0ѐ B3PǑm_W_x^gf.&?Ϟz޻yC+片'Gޒ-R}[VZ&|L7$%|" t9)@QQR}"pORDA(kh4F "-| AA|I8eZl]Î(CNpܥ3N_w/^ťfJEfU)Wr{h ?6vɑfR՚|T?˗<|b"x@˥0(y#WM%o^/~}|c?M[TN\ҏ_ygpsG*˟{~Ϭw>[)~]i%4ID2T:7 K Ƃxg.IdxNug1bHz,Jp#yW] 1,AdiB{HsˉXl ry+bu<򴡲* x1 !=F io;a!Ԧ~ezd0dA!jb!]>u_oݽm6ܹkG0̉nsپM;u:5b*SSW.̞=y̅ť[7woݺ~ҍ,^=HBHͭ:V ( _l4:ͣO(K|QtSbYJDŠJ(,-BЫ}h$ '*ruޣݛ{W~{^?yit>s>xw>ԲUˏ>~~bï~5eGSL,+ |& gސku\i`;cdW9WqBD( \ ԜscOC 7 7n熐@]}Y<(J`%!gN)JDaa!Nip۝ssh?_uTmt*1 G>ID(-RQdkںeWn߶w߾{{~wȖ9rSC'_+ zP E"L^gxbsj Y˧z|{}{G߿7?|?y}ڿ|`$l$ \@ D1b?7o(:\QK**0&KV$|E¨# D\-⠦y$J%pa v8p{visP:07{oͥ7޾uT)VjB:[*Z;MV2oև/5ڣrg`=>ޮfS`l.UϕL&OSB9񅣆ʂ"yJUd8 FbrX {{=~o<oc^{|q />ī<_X/|WklIßf)Kh@П.9^E1 nU!#N.;\' 89I(a0>ԉR `(E0!P4n@v7Ls/\C{윇ppAdTIf?ww_8^[Վc$¹0wm_>q4||(\0 Åtç0GG~ɪ6޺e/Vn߱k߷Ǚy\־~+Ƥ[g_:5̥3ׯ__w޼tmqvlQgJm TZ}=P,ʕ`Yi tZɱvJFR2]4{U%KX0ϕ+t(dM9^Q513tuh0ӧ?/ϾЙ쩈?٫/,x==C=wݳG>=sϼc'Չ]- gꁰ$t @4%)hnDW,>Xp$߼QNC~`QlҜcUE`Jq(ݎyhj==v6 h0( hQB>{p-X%_}Ց?۰wt977n~/7nZ k6ٵ{q9He` "S'?sevkW^ppk¹fm4Z[R.B:Wl5FRi:`l-?1 DOJ-wXSY3gfttdDTR,(`/X{,[z$IitX;[[JֳwtA8]V7qR)YʤVZVqٽ^ zm59R'.N)8)/*= ;0?`ƍ;kIS&&'LLI2݇ϯ~ϯ߿?eVol D]x$zHwO  7ZF_kkSjuzeVtJ5MrL &081,v4uE-̞;物jv{~5PO27'%3fO$4cqQMSΙ:}ʣjDcVT:KheuvquBhbfU$D`), ŔF(=_8LHd2HO( j!屖QX Պ`He1Z"9 N$0L C"Ce`! XK4*T߫W+u2X!20ߏ]0 ѕcN׵ fg8kwWܹC:qKe*aP$I傪[woTSe{_<{гg>}x_~?} li Z# ~'4<±X7 tB΀?my=^~gs(ufl;_Ipם:.+]'CMrRL ': 5[*ع@у*NXyֽj:I@U]pZ?{7Ń'_r`ފ3/ߨTAwkݬXyZ߼ѳ_=z ͻ|/}˛_?}ׇx 5#"4 v 㡡h4ĺ&:Ps[s#3kڭnyP fqj;[v]U<7c/{q;,/w;G}}f9~uykӧLZ|[^LVOc1L&nv9ajtNxVVztt*~ G|%5k"(`)ԧ Z(1 2:%0>c4`m |z#ː$T=[$^&;_N ( J qݛ5` @r_u㧏lQޅWo^v#n];7۲{'_']Y%WW__[- n]r峇Ox/>ۧO;w46;:# ٷ56|P?߫s~޾pt0H{sۺAhrxfYo2P_{߃@8cli74)Ω Ι={K<"(ntɱ-s~ğGO6͝:dl(LJ,\^XT} 8}``5Fow8:/Ba0$ Ši8J5K :0Kci 0t@x{_ ԃi/J!B]`iD&fwI wU)k$FR8@Ᵽ^lC+w\gPr>9u{7m(+?xvVݺammM=33<|mo__>/CA_vP8 GCxOlx'?0;]x8?}H748 ;Vjԩ5j/pA'BZTR\U1?o̴- &[Pr [(mV؄#'eLᧄɴ9S'38sEWS/kSKg4Fh7MSjhliiv; jgUM q"[%U$"4Sjc0=8Y2(LͨD?tJ _*_v jj!|  r<7( &Hl_M,:o1IgoW|˕7.ރ{w([~Te`n^YSSO(S%[>~x~wo_~ÛסPWknvvw=B}ޞЃhd/ t|`g1m[|~!hn34_XP4[m6:k˶\8k)@˦Q#FOޔ6mԸˊ,pGݲG.8);uK fGk F]6j TAFg]6tLYY[T RΚ8ul̜ /N0򻿏5v3։I Voy75ki-vG1[m96e].d.N398Uj |V(=Z+pX$Wb\+ LX@ca@UQ*!D|G_ک2aF$2`ƥ2 ` Ja X  >PX!淢WnIqˤ3(\EάY\zUV-ݻ+Wj.xJee嵪\s^~ᣡ'^=}Gm?I4v+ė D};UwX|]`ߣ_}??C`;|];֦Pa_w< ƺ/"'uG ozu]>}yc/q_&'C:cjne7Fnt[Lvl5*h6jO|WFZi%(``0(&$L`JOr%ZLNPBbH*6_Z.*1 X0Q@`$ 4*( }+.^ȩ['yv˙z'g/LqFzJTZjϞse+lwP/>ÛWo~w>|/c`@$ntý}.`;#]`p@p߃OBCc] ́S^gi;.o~GN+-V~ZZ}`뚼Ko}vvƺ;o㸼旮o[UO~8 ߏYlyqt#5:ݢ8}[{A;.nhh0zc|:Ѡqv]t6#M6?6x(q28ddH6o!Z2Nu,S[RNP\$@,/Hp~:z$&Q`ebRS(,& <i C%CIwU12D2KKX~%wo^[hJ]WTRSN{Q_S[pӧ^{//|7:m݁ր?{pG$0Ćb'Ov7&\?sdkM];lEW)Z]KesjKM+rٛ6'1⡍IǍ똯;oB V3!`(ўx'7=C}x;k,(=gŶXҳW._lm{_$MJ(^o筽(]auRYVČJ^w=}KV s1o?qJvtł䂼 =Gj{d;v#puV/Skttfa(Ѩ# @ZmW$cJG1XeԔ+=7!R8a 0( b tO"$R@PՊ kD2.gYFiF$U`b72UzJ@4EKqNwhvaEFfj5SR)Iϼ;y) OZStufͱ}E"w>~_?ᦎxK3 bPh(>}?x4008fo=~_nM7dP3OM4QZtkur5T)9V\8kVVۧ3[r~sf2k)sB7mc*3v/9zHf3F: V4i 2؝`1veө *l:U44=/ 1xP>ߍ[i4+IHJ)*,f@4q" ETbQ\A&\A 9nĸJ',\v*lx;A! CHϓw߽x_>>𴯹Gzz=!~? ?~hP,|?m :MDϞ{xIQzuKmR$Z|WEfiv٩=Ygwmٹ04wVO/vęcٓHw&%]<{-[&̙:wʶ2@ڍ{MI=k|ڒQU;lZs/p &Ӥ5u8,zC44z[mVs<V[KM狋kҺlz^ZYb #9@}~Ϗ}kp&[ctw@4Gz=B}O{>ww? "ްY\{hgD./\ 7-(][Q^PR*8dqsgUO;g]qEo_6y ?͟Zd'\wbCY'?eڝ:jJjkjUPM.`&IƠ3X|-͍6jpl<fj7: * `NopRQ| \R1fUҬ"gA"Ff1KӀ\,Id_OX `owX.@1) RA(}h@7jmEPHj [vn+p)EZ>3iV.۶%K*.o[tF+Vglؑ5{ {S_3euvRҔԪ-m|g^znp68x$#k GײJF}].|'W`e rZ]k0Tzg1NB `- 0%b3q!u y+a9ê z N@dR5F`H uξi\WnCs2g$^3qJ9jj3GY?75eYۋwl]8[ =~0α=yу߿x9/;[~Ջp8  ^~ϣx ppAoo~,o*6^Y`ٙ ͜<-qշfN/3_x9KvH#[=o,]9rhջkjüGl8aNW9&co~IϧM>+'czҴ7GV[Iv픣iv8p:=nߪͶFp&ɠ,* ˷%5JʠRZB EHD1%ŷEXT YV 8LJ50 i|CuTʟG R( A+x(T#AP`X #Y=2FoJw 4 2#G ș3%%{fqB}Fˆ{V/Ibk;gn*7g}ir5e20 '?~W zØlokinkj;?~#`  G@zb;qdyF PHuURL8uEgv\uxeD]Km9} ޴6!v&[wjbK2+JK%M֢t,;~4qvBٳ6ٳinV6! V^ijitX9nq:%Fsmv7{zɪa V,_sFթ8L"pWjI#@V@8 Vs|8%Er0T8%̎R,.A4E0'mZ@FI)GYԠ1ädg463e}gӧ]7;/+}nܵW1m*F-lAZStҵpCG8xœ^?6Z;{zB]|_gK$6GcCǃ|@ lojixuw7]>r+2ZdyY{5^=pwپ{_pY/sKnXSso !_pQot7"^ش?Z*/)u洟3~7}]̝d2R =:-Y}n*.kCe_s 67H njqN֬Wl@xاLJU7ӪϩIZLM+] B\SjVX(݄rcB 8'Jk0X(QPJ"\&(T)``|>-FI@ja@X at HBl[8}OEٿf]]rҲfdOK0pce&|?r"y]Wn=rnwz"w?m]M]]H85Hw;{{zmojhzWyd 䞍kW.p|SAaZMٲZ|3F_ ŭ[85+kjp+fA0xθ,,P4৚ ZMhL~"15 $F✊aX;~VJA9;~sΛ42qI7<05i7(Εۗ/9GO\8{[V5 >wv~\|Nm|>>m)m* 㛂 jSOŖv>hk}p!'e`~yuilQS静ɉ9w?<6q9WU?x9[@[ϟk7Jз805:\(Pq<1>gys ($12e(ϐhֳ:yrdj!ݍ覢ڇ [Wq./_Hr0898pU"\NzݪP=aOd<= xCk` tͱ4MND1Ai%DiFg1B i$,+6 q 4ЂHRV(*T̺ᴓv`cms]tqE"r(#9b 3c I*:#.'W]p*.iɸwrr"**+_,H=~6ˊ7;fo?YXt-N.P$vzj~[̫w Kvi>Ïv{{>Oh`5#adsx#oo[Q]2Puި8ۻNfzdhͧ)W'!w=ovPםK/;~d)}1Of弚JJ2ahul+*i~39 ?{7ѻov=asS~  i[!YB? h*ۭ15D]"#+ &pxO D$ޠ "(Λӣ M`(8NZ`a.ځ#:.鰺HD$nw8 'ƲArƢ@Hdf4 /9Ԇ-) xq[wřԢ[ /LN>Zq*-o;X7{37FWWsevݭ|cebٲe3'g_/ο]]S_G{G>p/h7 + z60"WM7Z I odfM<+ͯJ/ʊ_ƣy῎47]:[r@-+;"!*RrZR|-% L=mȯ+bII8y⛿|*?ny>hA_ޝ=vvvwrp5٧A9 aa5>&8,)r ,"#Ȓ4EsI"%Q .d< (#`߁Q4P%@%P q"|p7fӁ%JFC\4PIʼK XӃѤa*C Xp+rb.+>X|sΦm]KN}Z/l4Ƶrje sG@G{[!/p2 (ydxчnÉ#nqD+YuUuɑѩ9eCk 9MEMMK֧1^rۺnd>ih+j~ؔ[cs>r[3 U%÷of7>z4u~*1ǿ*nM;w'Oxi} ȅB~aP nxt-"6 <@4UHNXY01$yp#{%DBMh z%R IgEBY#N$Xq٠̱N.KyP"(b}yX`΂!p熍 QEJ<`e]yjLܥ3ԖV5޺~T̓g.Gf>rV[cFaӓ/-_wˋ Nϻ~ʡ>oufNUFGs}>gvGFtꓻ93[7[N\p ;^on5Ο=?{b W9ʶbk_Tr<{v('*}1dXgsͦo$/ȰARZ2$p0`8mJN͒" =$əD^3ҰAYxpAt-%uћ3lڝ1t]oƭNy&AHҵi߰n.s X  ,g43IM^mU7TE=r-%1Kwܼ)"Ļ{Iee5w^^Yq7_ξ~=?N}^(K"k"v($DaD! *^Ȫ@`+i"'!~v`wuEvⅳQy܂W f_RPKW(ͫZk%59.ݎ6+Y6ZoݜIMίhJ-~4O.T>,dE|ooRr2X;gr}}ri{nN ]w{b|dII"K/[ۥkwuOVe5u$ 1S+vIJN`ˋKkַW6ģ-x49pkX1aqoOBa/rG[gZRKm7ޅ~P1~sPoWSMAFͮů[f+S2tŤ7 Ε&<oNO?y9__^>Wqbf|BN\Vkk= k9|Ur%?|gnm>/)d]\Z^?Px[[a0|t{e_5nj0P5dx ΏFKZ *KE4/xM"Y GSc v0b86P{ld.r,vXjv$\[vQ$;6lNs4pLej\p0+gLKIR1E ϒƞwfcRc^Nɉ K/[ !e֍ׯ7qo_w|\?K]9]ÚFiKARaE׋6 7mmKoHy|6qmb"PXzKgN}oߟI,R^ߞ~E=-mziUàh۷(Cy*h +!<K)錂2|_,Boi'uiw p 0CU(كQJqJ3gWnѴ(֞T'\@"1rbeq@nfỉ+k+$A궍5 QEmv 3[J8Fu!՗r,sI>)#2=w%O^ԗf;ŝ;YbjlOGy`#b6y8Nڽ?Wi#l6bo-Q;6@=`I&eܳɧmyE7{ vzϫyRgԘ'1iOS⣌s'f4͸ڋ$5&OEޗg'7K bXeA.8wETU,ά)+Qx\|~U: n$ ol{5,`\4&\P_i(Y` d%pqG#ڇ͍ ?x23GX6.!E$PJn2'-V7 B f2^v HZ`9v$%&LJFFJNjcpgyQqV~{r16oF+1?D{g.35wljZg %dv=uyvr§c%$]:_:8lr?vX~Am~ ֫zxoAI,+; JdN6h(O yYiV++t! )%LUIo}jJ'r~4k^K~G7)+/ F$fWV~Z3Z5k6D|)PēΖkypsJPm!e{׏AP6W_]^[H@WQ4ܚ3jYWe8V/'UIYoVJRo,e=oOo~ܙ*g>sNI6{CJduUw&D:YT9y%Ok wc 8s:.w u^y3p. 9!= %dհ F]bU%C<-qis> 7PcB: qBp81XbN4, X4+/ l>3P(ߛ5=u Ԛd!d슇̯7RDbn%`qev38"ߟ+Ϻ|L_CzkO7†k_ue\;&?{D{[m|C՘I{=2Xʶv} DuYCs fDyݚiQ0҆Pcjkk'_4V<)jow/v=y^y>:7%FGMfjj㎋ODF\O|'ɬ}^s~]|a]>pfvˉ삮W]U'Vwˊ{ݔfhT! DBxn˯^C@ˊji`zK`} `@B pC 1NGa4FaH9-b 4=AI4н0 Vp u#m EyTqar c J%ee/@6I &6ef3:~%`8;#b2{٭8 wVFg^̈^OBR1]$C{~k-NLT Jh,8eF eh/k.OOoʫx2PR8)= *^gӇ/l-8WT_Vr.RlfƍcϡUޙz0`Yxr q++겎s>29)rNÅU6d=s+q#eggPY= <۫=ESyD`\r e1P2E2//U Ic`K: ;q'2iJdxAPBw 0D8+j(CIGYqI#3GQ*R6pBB$+ROa1 ec=ݩ7V&of^8rcau'}]}Y_Um|,sAWEPX6h5[>MHDEH֟Ż5Ets\ݴ[ח`{irܕ̒VO l}UYv{ûk3B97QiUu1g.%T76"1:0prLg7g6iLy/n$^|;G_yChо75IT 7/(Ea%s  q C!*!VK=p͖e6%ДX%*a{;šJ *T2ʂ28 P5NJsL.û,m c=q)iv~­˖β[36Q\TSQ(=Y1126"72.*wJLӐzGwER^;}6:jQ'#/>2S 6rnlA"!p+j 뾐aJVa$^ P25@7n΀!<s2+2[U8% F 4%UHYA4_WEbߛǠi^Ϩ)k~[]vbB[\tzv~CqzTN@/%p۰P,+zTd|PI2j PiA1{,$9wP~PhAxsl NAgITWf0`)|5'1Psa!СỄc9QPU}nnʛQ˅7&?{dA߫S1ۚ!Mj9pZ$-,"ow>Atn:@v̍ *O,9;ZSQX)|ζܾwS(giIGJAנ7#jqY{B˫kEQWc2owH='rh+Wila]pk*1ƵFy+WRқR; 3f|Ȣ|Ggh u;{ֶBޠ۷{ y}zm(²$cEMWI#@hLY3P=< !(nQu`Jh>u0"$pI!' 2 Cz2K8Z{sA .PVH\'pFO_x?_p&3#eԄe^;cl[ڈqb3 ,nKŨeW묇w}~|_OQ#+B@ ܾA x *J2F8I0JcH27o`"&Ҭ$v`@*h y{4e W(ZVbcaqP*@<͘pdYv3P{$6-2$7ʄW|oTX2j[~{AG/ǀ6mkWw{v(^w:v+`v&cTWn }l.spF9UHrW޸1$,|HΑ7&f+'?h.>)hART|^Bz^a5zSܸљqɚ[v'b/p~HX2Ҳ>WZ9WSt6 ԕv~UՊcf vh{+zts9pEDI@<"8Dg4՜&/%OՠDS`8|ț3XW b`{ - <+P*(F$Ā1%6"9DDx8:.bz7Īظ?_x出钋gɧOZ_o.X>wx_̬l;)^=fܴZ6W(\}Reu{5P4Q[!KBB9\L@*R`>ii|eq hp(+e\ցݷ 'j#?κz73=yvsfoJBdbmCu^Qf8sm?8yܩԲ -S-*͍v\OiY<̞Ɗ =~ z= wfRyt\'RU H !͡SwT&Ow :g>ϕ8TJȀ, ʀjChiN@ uP"]\$EŃ5sܔ5\UQ@!t.' I:qP@ ptz7'!6*?57ѓ6wJI(}ĝZGθ,s[R~,P gus6uci}BA3$Lᢇs+^[XpP)(ed] \WEMFXk}1ٯ[Rs_+ȭⶬʶ y )#m /Mi]FwzԅΜ9{r]WKV΃E32bĄG?ȤnC1\mIl^wȿn{wg+t^%ctM`ڙ7~K^F1JyQ67Ɋ "4م9/@vK(֖e8!0 xBGydf`9F.@ '^V0_䂫7($Xb[[csXZݜY7;w#Ϊv`&s} Z/5/9[GT^ M6|2)ʈűf;lklN JayIÿ:V1F%TBygأ`P/E-AAFƆYUx,=?+:o0{z296ZfqrbFSԻ%w75~;tru>yLT쩨3U5vW ޫhik#VWm2.ƖL . P$-n^0 ¡Pxk/h2R O1O6%xBAhv$)[˩Lx9}UW{k]-+eSǧl7usN:*JWN#񉂛ħyEw +ke9Ob }z {[[~`P&UA}<~%p6^Si H!9<V v G nO{Ux*J40 {)$b.p0@M^D"u!l6P^" (V3aY7t0f N5}/~?;vĺ[)Os=Ϫ jok-Zx7<2o']NㅏĨ*#b][nZU0, e޹}' AXzT&ĹG~좙(rًfӷi]M %9´ %7ۻz:+Cy0#E@Mkޭ+o(t΀_>)zp;} >)'Q A1{QmqGU厒Ĥ5W.Z2a2rZﶧg?wn%u +gay?pjKA\LIUioV]#dw핉̧1}5Q/tm gQ[j@ cU4N(NI" 8Hf=xNd4݊Ds2/¢H"L{e̎$r#:8A4pcsv EeXQ ^S8Hs{ q8 #oOeŒK6ʤFީioRVW.'t=MMqzCLdzlcBYIMqNjdRKr Mv>$\x\v0q'>:^wvnh]ju./* .c0:K/@TѲd QqJ @8cq Ayj q *f,"/- -Ҡ>pFH9Ed`Mϱ2#4dыP[}B\|rrS35S-כ'G˓ߙu=;eͽcJiuU}nzR`mo)uecx̹ Ha6J `u[~H/_ $$CY`Xn@@3X[gKf&D]N왑Cs/&4.nlV7zVv9j} x顡3QʯDdMkK=uJ΍S+Ȩ+I) Q)#OJR**k^[2@AN^з;Vثt]%u9.qkhr Ђ62$޿QBKj-& (j6D<]f aGML44;Nnw"IEAhheX|PDj8/r[Y2MBz\vJ!MmVmx[ݷz{;j:_#s,9f1] P]e%S4,ko6vewٝhkU L)m]TC/~/_>]ڈA tԲ߫/y~4U)Ҽksٿ͋HC,-=޿]PXj++9j Ϟ?zٻm@"ʌ,nu +N@^9 $2]XITeη3dU_Ӭ Z*9 %5ns@[ o y|!?j]pW܆ף܉A)D1+`=/f`! 9\%IkLQl(hQW~#ۈ5^$<5 <@'I` hĉE$4wbbYQd g)n摕?=|_~}p>_x n:0Ks/ԗ斴tL=z%+=ג/eUd%մ^-(~ cM>s!n`h񝲖3EJVfoI^j o؇33J2S#\$wT۶/z?/Kq 1H'w[`!TftrXŅ`KmJcA EF? V Zr [z]a/0FE((|tpC4:^%@|i%rXqcixUx ,β.ZR,&S Uid'qmwʂSA!Μۺ5~q3_wgq} w/_";O!gw$t(]H,nC AfFn۹"@ YH O|M&ҩ@8Q.P'+Z]kQkܿgMe6#]yƅۊJs.쭃G疖+i;XlŢKm=xxP{lծ;;se^΂]MVi26VyAWmUuWm} kmHG[w0ݗ55tȜ-db@1]n/Uxo'EИy3)%u8|iT0ȱ ƍiAۜflcQ+!Vw":bpS ,F(n xgA,cώ]M[ʎ(,/X]E廎׬(ݹ苋;/T7ڳg ?x7?yՍ:}0:EMx[1w 3,+8H $^Yq(J`tDYEׂaEx$NL9;_N8?sC{dz7?A>z`_cw^Ddc]e1fy5ro`+Lټt^]+s7?Rȑgszo jdBY/X2Ϛvmd8b{Wc9MsF/ۄq^pEL89qv2c,LSF^]#P+0eJQ8 %H8U9pIBǭ(IEǑ(+b8L6T(*OK;L Ah(e\I?c5+*,;rQe*;ʳ ׯZd3g =fׇ- `pGχVBxHS+jV̫;g{0y-+׮]ɿr-[Op֦?$R^(.9):m,;iTUQYYVUVWyVل_qH/<2 "Fp)Շ8H7oL?S$tA'{ks.\QR[^VaT|{Oδ׬ٹ|ʚ뗞~r=ik/]xټחTלn%; d1|̻-Vrk 7 q( f8`=.s @p T ( r' QF 7F11aC(hftFM= Ƃ )NN**rt ʟ6D$E\ "(.t `ylW}ݼ .nQHcˉ j 7^8PWX_[]vҍyoaLޮneͽZsGH q芪JTrJx'"a]qϤÙd:QhU_dvf <ɑD"3Me[iƩx$1חl*\twq3_렘Oz/9Kp٨:"3/*kN5g!RU//D[+& %  I'9@5F'8HíAj^>b^gPC FIDdYXR͠CH )?LэNTPңQP1Jy(]1oÛ֗m[jYs҆y%W{->^7,].\U!1'u|p1Dª^Oeh]qE* jqX2DñH:3=`4'@"IF&4qjh$ݻlA ⢜+s~-k֝=[{#ۻ s;P,-t=is8z-%s(Gb(Uӎe D˂X5)M; ST4 Q_:Gh?LG2D0%~H Wj8OV$Xp}֭Z&;}gw4s|%+?ZUv5WSmUE=,ZpUን'Οs 3}o,Z` Xڣ -7^DG~ۆZ%{# 꾐tk<)He5`"S":uJ?z' ,H^7b"E%=cli`'>x(uovX6 H_p` GIl& %ڰ(0r ,xKݣ)_(\ G5r7j\[SZe]49R_ fO?.i]7E?b5u;I*ua3{kut1}S!yU*Q8)ʪ,Y]sq(NSɑH?2ã#D:"ٹt*;2>584N$CH2Av !ey9w?ۂ{_r+e7o:Qvӡ]+BG)ƃU9 j^EԞ;yns绬ݯμ/[aNJyV|7yث\bi͋ NTd(L _8QsJ 81`GUYQ0B4Ipets4PiCxt@8%X > 7xp=r@@NZ8J 4R*`q2(:Ӹ")ŕeGvXPJMIź+sVo{t{/T/~y]O+<~t`7!6A*ƤNÝ]LwF(AtI)QݢPЗC i %C񁉁tF4 Ŧ~EP* >P_~U0rX梼`IڲwnUn?~mi5N>ul=eŹ5LGT6V}=wܩt`׼[;w_Y3_#/h^j5[6R9 |>""+A4 gDpARX$h I܉` xuuZW'I2Nɹp$En4B 9hlTW: @@3jfLby64n3*wrZQYtʎNq|K\zҥugu~ (+)g9m&0q.A^KH$>9ͫ`zTǓL'PH:1 ƇRDj`z:NN|F<IN1HW@ ϩڸT^ K,\U拋kWl8x][7\yQti!temo_- -,mvG;x|>,Ƌ HAAL"d?ORX8gF'Fff>LSϟNp0LptrmkV-}k鉦_ѧv^;/TZնAmiktp%+_V󼬨qڳ.e,a޳U+Ko?PU@z(.aySOsK./!iAQM53Pc/ K[me{hw 4GQ}OY*A8TMTեyujϟ_[Yݒ3[t%iq9 w:fndj8 Y=-[_zه6S_[wڇ*fu.+~$H*='p(όdəos٩AP Bi LfHbxK&q2__x~iyJo.\˵rpu/wJͼЩ`}}fO_|I^R]ێyx !V`YuŪ]N:뉴7 ch؝NP@  j OJ.MiXY>N{; 9yRX$skd8I,&:Ka4aԸDb&hBqM2m%2LޫڴbѮlv {{Ugwy}|i7[{럴 zӁIоN[[^5YaC{V8Pdrj.7FɁPv?DSt&5822I gǧFgFٱh2IG'OSf2ٱO &5@)(ooߺ,ow/^Pq p˫7Hbd6kC]6HߞWO۳$ղU%]}ƍg hGªuUCWZwh( ݆t+u~]'hWec ռ?q^5g8P4 Ahtx0Nd٩d6;9288֟IIbԠQ+ yP"PrX_@%k,9Q_'>4zz׏i2IY^\l_j9-ZLM΍Jk{bwN<~tiN)g\>/1YLl7;l8o찺5oԌ2,rfG2x2Gҡ/#; v+G6m,Yp~aEIN kϞn=qMP||%!,Nhsl,^bNT8zXq{˓gvmrdڥKVU}#v`VPQ1'W3YBxv@[l..~}`'# k q,V4ZIzyKVp0i;)ĸ#B59PպOip$+<ň,8M88'I FV!C[{I9Ϙ~Z?]%K*)orƇ7WU?l3@F1 M==- ^<`Jz([/ SH8Jn^GDp*%T E2d2՟LR特69_ԗ##ӟ L@( kGn{]JK7,^` xڃ>yWo*Y IW!6qr87Y<ݞՋsJn?ru㍋o_敓wjV[S{{ľ 7ZqHK,sX@ 5q]MxᴙeSyTͥIz9)G *iQf|A]hUaYJQNyA0lf@%8I(E.?/)$,4p:r|і!;{M1uttvi~wfZl}&?X@ӳQfUSd0L24,z,Dcq}Cbh,>>39MFDz +'ۗ/_ǧg&_w).75ƃwV_:V/-vk~\ni42-lR5gysq W_ȅ-믞.]fn+{Kң}MGZlF ƉLb4cGFjT]UpKK Hn^t^ 2Wp #%{(9dxa1^HcI 8(ex8]i .N~Daw%P`rC܁`/h`QfM 77_Pyެ\V}>[koo{{ll}iz떶V *(cA. ɯ䉺㮤ŧGcP&X@zXp6EFN0繹@TӃcd {wՔ]lEe͆]\x[ FeRdqaN;m/*YZqM;U(yіW[n71ryM/yu~WUAoz80rACdv7*Gn7O40ݺXXݐ/ƾ_ olU5 =H `&`%\g((({FdtGvƣ '"BEQ*?er$bX %InEH# /m(ZYy~eI+,7/MNrtŋO*YZ?tzݦ֖kLJW߿o{ǻTV)רRwh$|݉D Sp8 'P2HH&ӟ8u߾}?}m+t$CH nr辭rWW5)ҙi[Ӓs+9Yhl}vc:F:6V/+p)dKwؕgO&V-̿p__U4ܹ{ݕMycifzќ@1ݫ2es0^ ˪VK =pcF@[%`D ֭U&\.`FF$֌q֍;ny$cɲ$Ȁ/A M$`aQ|G/-|g={6]}nΚڋ+T<ڍOm=vsW}ii~]7!JFQhw^ECh@]n?ʧ`@$KDS#Clr ҟΌ Y~o>~mftbDpv8t 4}{PmUҕN]'lw>vi֎_:dO .[PMm(\⥵K,qaWPosTCEӏ>j~(8WE|9hhFJ 8JgXˀ<^WfAD_,3 M!dMP!Q.Xq8lN(A])'HYIϣ@2$aTk2f(2u4PhJ^u /-}rkr ku禆]NWɅ9g'ݦ_iukO۶w]7/޾|ݨW.{@# ) Zҡ`4$L$yB`|ptd$N N3C׹ӳ411=;5qo#فXjd`jx<FCNY:yb 5;=Uqg7[U/q^?rG(.`E s+ܔPҺ>;VvusݡWU%{^h<ɹT˜u(%qs1 aFfd]R\%(OJh^EWU`I9óہqY`$CK2@?,4. S ܼK~yxZhp8Y.1A,f#ơK* U֞jae5k7{5˗onX{"߾Kio{qL-uz:MY~3.2O S@Jpzt$ >_j(689HgPrlܟ| }zTvp( }͎ gᘮ`?vlώ yKl;xS+/]o-^.F؝ӔAÝ6ӣk+yqhq뭻k]nxp+),۲M[~V֋hl|th iHr *LJn q>]\.10H (Fqc8ocάm]H5|N ]}=_w;;͌FIBP5ğ$|h,Jl1X@"L3'ҙ$@jhhx`$3=;陯3G&'߿~NgA($ёXڣtm߰jڵ\H{LK]Z,jshٍ VYԤ ( uLc+ vUXUv畫7=l9x-JO~\Ln!޺ÍNNga'\ gl:K"1R0./u.1  $"}."Kh B8X7խ{2z )k*sxBtRaxZZqg''&'>|짉l:98tr 닖,(na^9j,^ʺ^_qvY' h[ WڰtEUk朻UG3ϯ/W~O\lv'i4US5Z$IY >Ո GALEIЀ]>vI!E Q45PS`XY+N'f@iQ'UhHs2D>*:4e4&ZyؾQ!t*$gMف_w-~-WoX]_k{<~{ ru$psZ>sO4(I4m6jQUyEP0y|n/Jfhfh"3>Lv|̧o_>3;43>L c'HDiulۦ’U9{[8}aS?-_ٜx& c339i-o^Z^zզl~׵O=а>?oE;ƪ}mԃ;=p$R\8@5yf#:qju6 h[nԝnH:D àQ>o5N@-N`P1PX]WNМE`9`X(QO$J?uz֞y yUh]uΜ|hge޳<˵sO^ͯ0sg׍tZMV񮗑D^qɚ1CEy]:=0:RcH#Cp"=oS_g33~o>37HT"@PuӺlCuIuiYy'^?+~R_ fl*iT0;MO.n|nCNyxWuϱW/}x=wߜ,X>i/T]Æp<yz\P V)`,cUXMeZVdUhF8NVHAI^#TȥKh{x+4G<F6ĄLnrKbF Ӈr:!Pj@)P,AOԈ?OǃÙaXhj(.3`#`P*?f矿e'G@jx8bQOuQG7^]ÑG;_˫DN]ILs6+Ę V|s ׭Z-;[Qtݗo-/?\[TZr9:a={uԀ? z] Ր}FF=@yέH>_<y<.y82UPUQe [!uBK Ea404rQ q Gl1f"C%(;**F'ڌ,@*ϲԁ#U>|ؑ3=Ӓ*pM,xvӛ:1"ȜނX ACF˄$W< @( Ùdrdp090IT4hft? eGx˧?>ǧ81ラT, c1xjLlo"T_^oZWmb:a>,D1a$Eẚe NTvDƞnSzY*wٲM;wOO#B6߸r}Jb1}t,{AɊKU0K K,5.$^s)NPvn@aȿZI ' Z`a@$8E.$(dz'N(vBۧ7.)رyox֋>˝'͏Z;エ&SaA`Nw"`;{ hүP%/ Ftz(1߿?`x"3@H2.XL=ɕ7۲sʅ[i[AUg(K++"VhU@A$=x`o]%+mۓ$϶]=@c /YWʈՕ[{_?{ɧfZ!@뚬SܲıgU~w4ŨGu.X{}˯_Wh8cĻ!(i İ0(8\0pi/ J8 %Ǯ=prmOtų_o_]׋^uSnU}AFf:/b8ډH>{=nz|P\o|hd 'ct*2@4ܟMM b቉ɉO3̧Nxvbjpl x"q{rsX/m,Y]iǏ=lgirWˇmmEVKKJ(6 SLMfL`Abp JDBi󓣃`<3<<4 +J eGfgG2c߾M|</O/cS>}26=95I =Bۭcvo8RУ+_ޚӒ5e۪w?"28'6jxlH'}oӟ>OMdܟI!qڭU5{8^m\}8|EK+" HBiєD5k;$gV9n.-hܾr*֟.ݜSqo]=Zsުcv׾]lC̈nĐVOXNM,W\wq'A74s{~/2R~[TfK9oqPx,EdXWwe8p*t'qÀeUHqE%y{~ѻ_:w~ˎGn{r{Ggϭt{sd@{11Wy^P&LtGQ? Gc@?&GSxlb 'Lz0p|$>62Vt` ;258>:2329=˟~8mv|__M͎ $D?vŽ:- 7.}t-YxˉFO`EFIBN\4jY^$Z߳؁e?.]R{k}펪 {Ɵ8mv>yP_X©]\ js6 CI3 :é<SDIIv{4%s<:z<*#cȀ5h'9, jn%yyQ5:'s@8J,1Ƹ`C8x+fT`c$g) p2hN 3BPq7?3^=}Y'Xz{pg֑uڌd[>TrM}`ihfU0DQb,Xj"I$D8==MgSɡ?g&G&O_f3}o_럎H& K%kVշ` ,ǒUE;^<؉Ag1?j ZU2:rbe@1Î==^WUvEe_?|cO:o= ]QtNvśIY@-(ߴ{/%F"yuЃ DAx$Vr{$^4nYA=nXE2v;LN\tꅘr:2[eHM"9cF $(BHtIqϤx:[@1BkHV&0\ QyY}v &XA8)oF "-Sd<3<`:1,Hzw,}vVKK̂H %2[UksN{sPU}ɋ>p8{5g9 nPlb}Tm5kARu;AQ7+F)_hRsFroyym)aM}ọݶMC~'Lnd,f&(@W-C<<=0хX7s ;_~?8]ON]/sSo|Vk;z @´C!26el 2"yxJ4>x$B"σ%(NdV%xHr@@یxX$ɩpHx=oͷG9wC?瓟}\vd 'tBX ,ab"SsgO緞:k祧?y#߿|ī?qϱ?}5yo l>~'R `[I4ç3&+R j:(A$ezLQs)DˀX(i(;D@.DI-A<$1y4I%X YE`$O0q,bbDM7x0 䅙<.:a16EƵиb8x!6IP5g pqFH2K$ǐwMEJy^ruPjiR~ݮR;Ka hKO\/k]Ŝd\1,;v=x׾]?{mϯydD!sSX;7Iz} x&QG287 s?ݽƭm>wO7qs94<:˲2t] ڰPx |=j RV@dqRLtFX 44(QH$L1HQ@󺜒uO.\s2<9 MIT8˳,7vR2>1o2*u`9uQUM!@y$0 TKg$P@6\6 X.z*m2ӅZU-RZPJhz V~okkhmXCN}Pk=x*rw}uR'Nys7U{nSO3"x'$"$,Œh3ddr.toܳ뮸abu|}So>30X"=}̔68|Vu) QCڢHFnF%QL iĀ'` ʊHqT3K Wᛢh|3)r<Y& ;M2,$* ŰIs%B8؆%qתּ*(&I,ᨺ d'f#Mby^. AWJlYW\\nw;qyF|eyy}qqui4\ﵺF5\5'q:]W8tߞt_=ş~zp79Z#X<6,@JU1O;;13{Nw믾sn꫷fy녷OSSF\eH2ȹj;*% 4X]aI BX"81DaGc,Ðm2DCSߞ"g#LaIr>:eJc!h'qY$c0a <&)deJJlNqa҆4Ƀi8tо ,AV FXRZH;3\/Gxeyxǵ卍^3:N/^Mv7̑{{./m_lzK5#EIa I L$0f'Mݩ^8]ntl{;~7qwyd~;fZr>2NŒpsD& 97vJ-G"+Gy&Fs5+p4M/ $bje,URYWSTy쾓ul<\l\)VWϔkF+GVǃ[絵VrӪf`6䓔 .U_}j׵Ϝzv}?5ܶz⥏> 5se3,C$KDx!DX"F IQdI*,Pg?{xMGoS/N͠X| d`x\TR(Dzl9NMH M+\ڄ+j!WGmh邃 f$OjNJF3x# 2N_޷eU7nM[o;߹o7μ<<Ν;͞;M}?׉wV %X #4BEup@2Z!I WTFMQs`iNqTXXa㨚0\$1|&%fIAGѨ&0N 9LFtR5<J'b]">" V\F:RCd3!H,p a Rɑ,9'_m6KU,B6V~ BZhjJ=ϫ+Kz-m7˝Qpu4[puZB5J뺆m.2}Ǐ[nuM7닯j0/aR"؄7uM4ں lza_xt ;;G|G?U?{7BqƗݼe,|3؅) <6?:O*I '*0̎!鬔 ].HB`H˲!Q2:t(*"` ]B,/0 8lWnjP)h`G` @! #Bb 9dHl IZeBaS"P-Al=(fd LlѬuz)-fYV!/B YETV@QTP9pENu(Vjt/t9DžG0,Q$0TCL&dtMYXSn[|O܅7}/w\s=>{/dhGfΟdnv*pna,9F}Mm@ R/:@JBx$790T??*J˵BY .X` ȴX 1 p\t "+ Z"I梖 AP"ŴLZ%gک\m.4Z3]5v͞(+X.Bqt~D4OP9O0}b l_[jIkQU~rtumF+ˋ˫vSjǝAU4Jz~v8z75; O~87WXU݌H5/N2+@j6zmTCRQtUT C;ɲI8M61.WJRB  Ċ&[I{ZPmġR| 6Z>6tALq#<Z*D14'>𒣩f4YFQaT"b5u]b vY JbTvc:?jwZR,.VF}p}kKxemmث׆޸?4NrT1+:zvCvz౧}($ QAR,-%i2!ɉəxIFx7m;x83׎>oy?z[}%'~u2эjy꠼iXh>eZF>2{MF[>*V4/~Pm-r-H_mmt`y :?.m\f{=X˽n)f|=d2AUS>nO\뫯~鍊v}pbD cM ,3-$sJ1й3Q*ŢZ>cz)Vs-ULΞ<}wݶu۞wmߟs5=!&5g |/^Z-M$9~Fp@$xS5TR fɼnA7ՎZtS4D݃2x8Ik*D-.:C;l8QL>[J+ɂ/J,TN*lPVk𜖒"!=SHP^sXIܿ8)*XBHqa-+Vxʩ 1)#kY_,5R/T^QF*`Jh.j]YZŵ՟zVVח?^\_ohZRxL h^xnћ| _0,5D~H%IV8OܷDCQ~jnm@ʘ>ƛȮ>}ǡw1D^{#/Gz,Ǟ~}NbЄ9iF\!]/譯 GaxٰtIuף-tm,I u)L`HA4@t#&8 $8}xLqQQfyV2JvRnZfwzJKtDEelfxGθ>2Θ).$f%S)<~o ,oA*b:[dR>[r3Li7NFviO?.p0:Օp6 Rk\A!.QKGv=u~]}oqkpp8զyifNO GBB!6ݔi^328Gܻu׳?yGx3F sz~ s?%OP):"˲`j @UW 4p_4k=TCUe (4\5a8C,`26"d ɢ7 i TBXFr ')H =%ɌB#9,S!yFHD6u۲`eWPy۰S mi'4QUQ)dVH@ܓPKJ-_yTQ[2dR?dH$|F@BK(bPPfNZjR*w) EO*dLT5 6+ڍ$FQmclR$+HNϢ Z4:[W\Yvkt*2jBx{6_wiZ|o?.Z[..^5k*{A.t6<Oqտ*0q~i:8DMЉdHF5gyzfCɩ_\#;)wܜf6;>vhύWnw_>x셳߾M= Lϰo| ߞ< /wc 3< PTٶ /a*抠/Jee`M[Fx m̐)1DHi@yt3AȚ62 @< N$(*)`_,qJTl,Cf-VR)SeF38K[ ٖ횞"m3f,7*B(eN9A Srs|9{JW-VvQԛli*v? VGETk8n768J^ ˅b\-WT!/8l^:~+zzW{3YbI) 2YR4&q"/`L(47=Y氄 L9N y׵|vlٿ͏=ڙsk4xt>v#'Y͏NL@Ǣ=MJW8xNT'іJ": , y$ *4YEtN;@IIM&%PI Ra>dX\@0& 1* 7FSu/$.SJR5jJ*7mFgjZ.DN^Lk R3=hj^U(RlGQ@8rfm06zi/"|_rRTnU j2nP,՚%#[n_Ge_hU@*IT$8\8MM|?#Ν[)/WΔ oʁkb"gOxv|}|2nk+y|‰>J')OOhiUA3r 25G4I%Uq4őVܴ|jܺe[W@ťeV@5uv*`8@˻EeDKo-*=J4x" DV`6~P૫z5W}tm)6\LXuŒǫ4p+2)8 i2l,4rNg9nvA)4 b4/Ð~Q8^]^.-.WmU,Y4:R(T[@gϝ#oqo߯{6yέ[^Z:cDn&AhDf ӧ'.~":YSN:gRƲiسm-|ǎ=7zΟ|.I_}ݻN·36L"+@NRղ+ :%kBW,_Q]|>(-B"lǒu[6<ӓU0 $J8.P` $0$Bx)b }@$Id\pce_S$g[uUcne+*LF|XeT5M+\ `;䴕zHSSzh-IqjP-++E3iz#|]+5+90YV/- {x_[[_Z[j?/2\ _JE*0DPJvz͒Ӓ{/>z/]k~{Ë{ynMfPzxd45-’ j̹ 8~3S !y#ex)[9 _9-p㗟wӳ3yg9[upR5m]e -<*Ċ[eR f 9ZzD$$M[1}9|Ori+e1]PZ:I!dxnڲ/@uss,ZdSD X^Vy tXٔy!O#IڧkZMEBmZقZ6̻芨*($ПD'H(R74Ҝe8M[rhe@aA,t 7 QY% TTۭTK/ꎑ/+Z/\S3SeXl֖y/)F :UL6h Hiv:իz+jw씻N/W_/?V^C8Aou˭vFTIZ73s7`:P,ghAYbM$9K̅レXH`ɐY-d\1 %r1(d4ٓ7sgSe;n߽O3 )ca\04Q4PPc"z!CʊDUUdR#oҚ`5Jtutg IL`,(?p Lf@a;$EPmYǣ>D$㠜"8Mq С1 0IRf&櫾\ZΗ굠lUlߵX,ՔF>zK+8/3NAY0H:g 1/j3K!^ Ka *Q1I2)tж^m4ML75EV)L$x>>dC4,YJ:[tbb^s)eiy\)hF ,&ӖlP̀.b\|7duikv;=yu~\q[/_wǽVUfJ^t1sFPɩڽemW׻z| }wӊIdQQ8%!D(>NNL͝33љ0Z*Y:b U=W?ܡG{|o1G3[l)I@}ՔR<1 2L)q C4 F!HWXSQ%MEו,Gs3TTEt)E1$IN8d?-flQZEuA%r@ b D`!Rd=Q6핥~b4rvzLʖ)NtT k;| b :TJ.|QNSw bs0 qgqiyϋ v1^Z񏕋ƥufө[zȧrt)V5 c>ؾۯmԧ;u;Tx 1U4tF/s7O0== PX'_{Z۬U:vZ)=/>{COup)*gTV._<0V`]#ZUb8[ EJiMB X_Ru$ (P @_$XMGe+mWX $()&J0".As qw]eZ,cj*~ՏS@Or 7t01=KUQJٔ YS -X*c&6 hO88 pEfBqX&Y$TYL$p%%3IBD.AƷX۱J4KfިW^5 5s}ċٻ 7'>ȩߛ>3xa1 H3 @5]V'ez)( t/RUel} 8Dž i0uCA@B(p`4YdO4.$:Lj6]Ю[oqקL s5/cRچFXd C碜+~ƀc[vJWsz imo{OwO<"ow4 0Y>B.`)y#Jv|ʹRIeM GXgD&ݬpdhIo-q~YvۖemmA`%[K%fY`13żI'33c2_*԰5ogZun{NDMC3[q82f h-QAPiJP8'I[3)&+4K0LAl[m@NI2̰bK~UO/Tuύl7 =qB0Td/JK3]#I# 2+ R~.𲑧~Q/STapzy{˝d=۞~Wy\%E,w,s\xScǞ/W\Gmw]zr k?v%Bl0,jh|~OOo)* /^\$Z&ӨkTn9rt//;σRo??\#kMA(% v:xzK^@t^b5Kh30flLݖxsI2 Hq-ҪL@Ì$d;ûK@( {$C񊎋A 8p_e?s- nWjp.3|1H`Y7lILAfc.H7ۍ0]KqIth~QWiMǓn;3ݯΞ;$`g/wwOp{_-:sܹݽ3gg+/ꮇK^[M"ᶚ+Ϋ##F_yM59EUf0$2DGt4[ PF`p0p8C^(R?y Q\hj*ũ$ǶXf$K"#΂Dc0FP{*/(xe8V'86*6c`:S3OU=.e{!I!Ȍ N5.\ RCfҏhVV.>Sן,aO;}=۞n&h{|{E4qꆦA9>^r{w‹.;1O8(ɷaA4_OؖcزL .)FZ/H27 -*Y&&Z=sMWWʧvU g-kt@OI֔$c5.̭ ˨0x+ʜ ㋞02 ݣO$Mdi$oB:R|iE< "K/#)5VZ$ƠSl@zc[w5`6Вi:n7GlCUtlNev$ uY@"S#ZwB~϶,kQ tZ4'sWݬgqw{ '&QΝ;? XN!x0{dP. v|tH5K_o/ww?_o?x⣇+7v-˷ZEZ S+'>?zգb @H(nĺhE ;e1Gz󍧞W>W7^Xp_S6[Omxcd(WxpTNUN ˊƀÿ! y l P cw:,H"s:I"7Y :Nq@cD*̵Fޡ,u]7w*bԜqtճUSۤETd߶8Ct^7I|*+Cr eX1h' hYi0MB< v'vOgj{ ho?ۛq4]05)S}5\.z֗h?X;֤u'JQAN۾oЭZg\$UlR2VZFBҊFTt;NW^}xCi= ߀Zk5[?udهnp )*U4`LX]SYJ2l S4dMҀU8WB=>HRlsto!I58';ȐŠꡔ(i:6#2*|3$zb" vAɵʻyliA1*KwuMt]t/rT֔UE4iiyG(QAwCGl :)gC-?^*(Ĉ2f |lrsOo=lwgہ̰?;YNr0Gtaÿ_}=G~~[n/Jc` t} K%:EنICZʧq|'ؖ ^,}䡨p1/ԋ̭4w?^+=<;X[ ~rWVotPtDd^TQc%MYPLOP SQS,t@eHB*#I 4֡[P1Z\e9ъj&/۔d鋠>.-NjaC_k7hsiŮ8;a٪g7q kxE0B{|`'xR]t"T)Lr4ETh0gN W0@{ ?0f<ݯϷxW|?NAs&0XC[7]?wuw_zRz}edL:3Eb3'EֿGa2 U(¬EZNGD|G~+o+KozONWA%VO  @ QEY-U38QTIt^t4]9ZQmE5<;-Ebi<[cEuhb 4%Xae2Y$EP%AE &@@pHN`ɵ$P%Ux)rت̶]MPe&C6 M si8L;m2 8jnTWK컉^/NmĈ\5Yh̗;gx2ߙe:nٝ[zO'v=7ˏW}gWGu?G7mԭoQ|tV-Ajh0'#Ƿxt M/DɱAɞ q7dbGw\zek cNo~qiaOo76 k5k:7,*dcu"7uUQl8"!=yGq7 jD40R'2}َNH0 8i (q0ly6ۢMMcpv 'KHY/44'4`ZR#54Hy-'n l CF Bs؁ lĔIe? ˮvY7A=! )gÝ؅П0ǽ;řW_,aM,sk9~~\+[uK0 #sl EYvZY;޽^]D^] EY0OOe7( Ͷl<źq,%\eL F AtU 28*;nqlNdgo__~}zow1\@ 64ziVfp~;? VF\b ^~Stw*nI'8껚$xgPؠ?)y[wyJۙ,~5~M I^xx7|癛~v޷/_/)'O;*4Tx _=}Aߊv"JD}kء Cˊ,%C80L $ 0*ݬ~]/|kpMor)8%qB6jx#l;xq9Z$-ҚX)o*Xy]2*E Hm^qq8I@e 5V&" ҁ#N64]fQY%i"4`Q6X[B='qďeKs[@Q5)!vS;I:( 5j0|ve ar@ 4$7I<[-l}zد3fPVFUdVa'hMrRi8upM7%럽rqO7q2V Eo}^x7 Meszg|.kZ$zո8>:M >m̡o/8[bw ^f [M5hP"z=JLH+`YĪ:"-F3d6!4N[(ȁ{lP?Qlږd<˒ی %ϡ#\Iؒm@.v;Zdm*A)qՅҾ*4(敭1jiB'a9˘p;4 /p]ݍ%a_;qYUeEe =!_MYZtro[LƃQ @d(0IԳ\|4>iu-vH4,8oFWUz[oogl"PsUoVe08ViꢇY:9[!$nhz<ۘ߸7j\knlmf m9o0jD؂%ܖhQ#Y ]`8}Vk04ZURQ8HAh#z/( .!Zϱ0`Dne["R5-#J> #9Nb:y\lOvw I`P*;r<*+qlaYg8\~ݵZaYmnv`OG eҟw?Ϸ˯wd:*CE+Ҷ6 O>to.\ۮډz.<|E=JFeRc{G~'?xɗ_?Qw-U%cI/y HA:R ,LpNͻ˝bW\NQV_y7g^7w{8kNl5"[1Px^vMT7P9cilj:4ΐll4mCH͓f !I-(s&h"$H ͨ6Vq֠(6|KyQK=r1/vEl[q~Fg:ZǣTGxgGucE* ;}y/d6˯nU`8>}ϝ;_==Om mk炳:F?^tԄ l<Qt/YXa_~q}E6pc"0oVio9fYr^1&I }ⳏc8M_=zYo6Z8ת꧶xG nkB E'ij0PGSpx o@BxUXZd @AZì5P1x'(њh-C; *Gف;2 ځYw@uRM_yF2' oaEMQ]'(ܲ `diUb5IBjJX:Bq [IbDӳA^o-EY&n9>'Z?_?ixÛG>ZY{隫o^V q-(Y\̀1/&.a^k F&t癮eQGdwŠC[}w_^êlg>)'.vc&z}XhW7o#|𕏷L$6o|́{o 0LMARA46 ,GPzPu a4Av$kj$.{_/aTiben츎jm$Ey]x'M~UIVJ'u]w ˑ;Tdnmnmb\ƦW$qiS#?#~SHOBU,~O ** 2@04 ^"[`D8 NYVnE*FgF!wkm Bä"yEFpmM:5zY -0]4xn~ ݯ&CL‘I-]_\Ci߅ .7Dke+`-p1+O'g<ƃɴLR=UΟ2 LA"W1(kOwuw>.-z&E+=(BZW>HR'#EiUD}. PAvp<'AI_<l{'^x#A7lsi7k&u9vy=h FfT O WCӥ&d|QFd( ТN]=WPɀ0 E9D%ZM ] aVѸ C Jx4 Ei] -Gh&(đE  /qfIyĶyCSqBD~eGr:%sv< l;GUI2M[g/s?<_'+kO>qv'뇑n1ʉs=MiYlnkkѠBLז4C=ɵ<} ghVƳnZi:2p E4[/]7},ɤQ\Td: /]g=ՂKW_Y[@`{g緳ܟt4v LIH MTL#e#27??vgOz/rE?C?f-ݪH p9k~믻6Y}B]̰.TH Y4Lr3t(=W`UIl:[ K4~O?|_q{n4nZv$PC:jTN*n0ʨ?( 9MJ"P+g,/Udd9PIY+TOg)\"X`U14MdtPdYFhڣ*qd9a/ Jې5ReӲ,SYfѴ4'L3 Ӭ0,,( ~h>.sl"R&V龉4wB3;A=G`4r4YFt4}93_-;w隶b2s[۟|K~}}umn;U?1*Iaf>h[~=xݓ3qy:1  on(@ݠJu}Ww`GIM@v5]糪=NeV,W?3?r-=]k_IZBM[Wk5|Y<\;l wU4n`; axЧJӀ%i;4dbuA7 ɝI4NMsr?9;ٕx7Ыэ&M.ЂO?xim>(]t `֌MHs)c A LIwl;CʲaYTEo4jP~5. /wý+}ǍN?:`` fbsL,ft]&'j@ ,Տ QFo5Zll8@x-:ρ5Zzquz]BxeUU0h`^T$ސ7 0+6e.)@#Oe-u0RKv5 "Ϗp߯E鹡S$; r1PAb_RK5 ; B4bSj܇TUٸi$4Oy՗s~w3Xoj; BWZA`O1pj< &fNmag:K0O굏><;_˄/]9`kQG_3PJ*e~?F.jQݏMۃqo=rwx?};nv/VjXY_\i70vb <`7iZ#dMfEZcgʊb×]^"ACu0ٲRU}1anqʁat*O 2K*((5-)6`'~jo}xcbFyYDm_xoڇ+sWiʥ7K^hޛ ,LVE3LjQΗۋp8-=lˏ?v poܡ#kmlo5[5(c 7$ kt!N`Z0 \h4z_;ѴY:Cm1ph *ZlTw$E <@mmFyVŮ[ 3w8.$.U;s匆۷?Kxys믞D&y\DNfi8:7@ MJ8|;[DCRuVX'0bd:%gsTbS&C5H^HuH |0dڎ H 6q3DC!f ߶QMցwdn{S (_n< ,7J~~qw!K~օ|0^f$'l=NDG@QaӪ[جtKHng 7{{q߯)hO?vȰHPpkO//ol0^G>lua+AہeRFe 8)Al6,*zl3\ǜ'khPxiYyh:'c ?xg~tWܾ%9ʿ=!1+xc۵uu% /ye* 4DZ<֦D+Խ,.X IU4thЏ6OsQ7U"!.iG[zp'7]lnbmZ}x S͚@ Ρ ȷDlֶ8iC>oe"/"byU b\V$HEOAqqX0z"|7DQQ(uM1kj? )Ȝ Fs f۱$*P|)/^TV~ 8T,Oʸ]{] tPT"!1,yZ%hr QګƳQ5frrf\ݬ?t߻@e70Er$l T;߳>_^|^o ۏ=I^UxmцWg^9EqNNAvXho`-M9z.9\wܵ=>-LR%%ٖ-ɲD+3 `3DΩrUs3HQ: =#8bT.BUo[)C*uZx0rx8^LQJ5GA,~zGNWKqp# HL$*1$ P>M6XɃMqZdQa!5]`aI/&'ŠXx; [E AK ݮ* ! Y|Iы / <'Q=/6 YOu fnn԰-7? ^tn XV2mxOG7Ap[l^v8^^a9Z:K7|;Wx._/l9w zHNf`уl6"4|Q,|u肝V%H"89FQdҨYtKJQxRrIkxmm7G`U.Fd>Z|U6CPc0{5qp3o0FFrjt]thZw~q\Hz?yO>>Y.!8 fM;a][??k_ѓy{uv׮h֕s[=+2D6YȤl[pm. J>Aҩ%= f'7H.^#7oz'~G[RJP eL6JSL[(RRQ4AAlP@  Lآ1J5b/x1AP) o>Z KT N`NP"D:j,Jah&,gY;ʵj ja~WTN .Iـxf}4]7 :=Nko6r;#׵>Hɸr \ H{Nò;J1X9[hN7[OO؟y0kP,c¡5.'uWf ˣs/o(#$Sl)-`W+Gbc BUVR騱->f5˕"nkd|ZנLv'$8iD>:w(|꧿U2, f¦p3dXII˧($ $#0yN dP(h2es,W,,"L@ ]FYW #l-)_YR erKɨQRiZZZ|4шFY+ jliZjv]+Xx3ɰ=Ogm%i3"9ĵ2(|0%OD %2hֵ,kZ\o[,v_V %qϛ]oA&}#u+g<3/~tH7/5+T )GavADʒ4/fIY,#qL*G*D&ǀD9apQ82J T&EnY @ ǝ2#DHॢFOɦ ݪE5_5cwn>;iHMtX[6Z2/jz8f7/N n7KdVkQ.u#G+u =;(jv,\( |:f>J)VeVXov~o}{oKf1}wG~oOdx~f&^7+瞽ީht..( o(lBay4bEȒ]:Gp'.(XYă-P $+_t/ZJ,bljPi"0@m  EVPX4KkF6tyQ gI{]$Qݖ۱Arkh V0NWxW3vV{`d ם?>7mۙ.E놵>Uڱzbl #nصO|ǁ׳䳓z5[iUVKvyԏo}?y׏:'兝3hRkjsPv3O?c/QBaPQ$H}ڂ2ZR w=i%@fC-~wbuk2 X}_z}G G.o~rZ3ףdqP P )dP 7HHx6 a!%t"4bE:I\AADAB%gI ʩB ^ɗV$#-,JHR H%_h3o dj "RXmfP4,t?'<sZ.`^lLvt`uyf9Sg=kٸm F,6![zW,]r=tZ`fph9t9z n+a+3Qjbݫ{?~{Gފb{!D ٿ|o{}Ïߤ1j0F1Jٺlu*(,^UN~3\F}x8n p}iَ3tBwμtN/Ϫv$L2,!T#H38Mҩ̒) T$Y)W40_UXX/KH)t8CHZj#K(Cݐ8`U[f k^0,k%BUKVj x3vng><;&pScHgh#D$Jh)dFZTT,R \8SWD O25^,+E*)*E4EkE!6j귋F\ka[0iMV[>`5jp_w3N jziaVA _vMF *lz|:\-MkraW^3uE4J,Q`E7~w_飗,~_{g~t|ϝyK{I(X|zyصH-q X,qgVg.wM7̼V6jۆ*[UpkϦ?֠v\ %d˟\`?~bqV*GJ@~4Au"8E8Ũd%9>ª2:kGæ,貂s4˹)* EQ*)(Ҁ<$PhP9 9E@D*x1pgi굒e ʵbp:Fl m`Ns~G.dt`4Y7.+t+U?׊k8hkFx:ׂޯ7o߂j |3^O` A] VS,X+c>߾?S<ᛏ?|/\~}*I]w}g^|~=2CRS{x:oZVʗ^k}bn ':{q7|uµK{.m_~DƢ,0%PFeiaai! EFȒhɄN!Ev!4x<)P":OP4@T]9υ]|SU3U6,NNpmGYmW yjf Fc5[btzjs|/mV;sFh6V;y3n1tuAS k4;+Wb1fqkq,-|2uPaxlu8zG;q\'=Cι?.(Wsg)Kν֙S>/~LbC[D # v )uMX,eӪ֕V3L!x_^NR{ϿO>ثYew(GY 9Nr@m4(9"p:/(*Lb j8_e>N :0}JP(9 $0A2R%uX 9 aFT PLB^Q.UJno6JӲ'}{;I@nNV['6Ng8h^-btk)x l֬V7K=:plGz<'f:[v, @ӄIRI7J=}wW_Bُo_?˯exT:q‡g_^}g?|Gk ΨcawH&ÑtV*^Q,V*낸bO|y=ccwS0W}S?o8{1>g/~}QgEⱬ"QإS&9Y0 s$Rl:O$ ETN UcsPAEB$F X.9UyR(YE: +GY3$AXʆj䅰+@]RRCs6N,U5[7jNJ;XԵl=/dt|sٛi0zٴ;V8 ^L^؇VզfcB u,vN_Gp1דfجfqkŮJpC}#}?;;#/yS/Gb/bٝN HGw<#O={ȑD"^? oceU/%0562kfxx8FL|ϳܡդ;vMVb3Ko&gh|?{Hhvҩ(cXihFzE282F6H#Y}Eä U%Nj F02Nʥb90,3!, 2Â(#x:A<ќ+2d oGS Nj:}ceìzj So7:f6;!ā? <*=mw<<^M& h ?_z&z £}S*2,E?p5O}2bn+_*˼(Rlc|k_yd/z~u;I<Ap;o=lFrQA4,uV*r\0ÞAFZt- >Y`؟{sǞ\;L.%X`g {Z.rhk m,W;bԪvz0o#]tmR4eI/zg?{vX$XxV)<" HX((34DZIJbL}$F2KR' ϲ&sp(& d@EeuGPj-,u A8ʈK9^t֮أR *j.W NrP'P׭֟N>=Mp< {{~@`M2<׮u˩[-idb^`<os}v0$PJ;{z_b~of HdSx2Υc߮wZ[t[FR/JZnTZ٫T[ͭ` zrYs^~dm|r@M +!,*"EY5,PJ $K#JSHEU)5<%Д kE|q:@m(J UeVq꾪(s"(aB N"K5}Byn;cSVRQ2 rcJvFb>۳?f|s{t`>uz]hGSo6hQrY:qMFS{tz!&Zb4Y$*W+k=^~뵭4^xƥ{/ i Oae.lO"Ӊ2J|[zl4z֐+a/uk)xQ/Tpg %oh5fܬi*0vwճ;z/ x&fs24"(X0hL# If((M@w)< `3y]` %^҈-M3 ~$GMD8NA'U *.(J,MU\I&v#MrPp8oj݆jjF^v:h~rLf7[|x~Fz8h]`ж;̚PfY''۳37WKb5 Ɵ"X MQ-_]_/}k?}ŋ] Y׷.v,Ep 0x*~pp=~p~->*eveI_.eY0B"lY,sG;> :zPiLE A𽋟+w~˵2w~gr-ue;MP9&AIX"\6G $erHiCD) ErRA4P̄#k!"@wXR~/Q.5 Ia@4C$dF_2\8ht"Vlnm^MFۭIUw6Ղe[b8玽Oé,P}oZ?g-wɬal3ܾnfǷᩁ|1; d:{މWyRPd*H1kyǗc~"~=hE:Ac;[%qbo;l+;K{/w9pQ8l_jmڥp^bX0fAQUYi+foz8X߼yYٶ3V+0g &x;r92fkhޯ Œ[fns}eWf48ZJI5${·.}r)VS{bCmfi 3 PP@9ȞPM%) [9mBewzA#qM" %r$C1)N*U|7%Ub%E )<͢f|aEU8F^jb%TR, 2Jp4`'ތ}u=o9jsx>z?r'߱܁ͽӷ3/g| y0ݷZ| VqEp8]g̞o-<:hI,ݿu_;˻՗:}5A(${>GDRu={.Ro-Mv[~+0 5ۭ5źL,gԳ[ɸ=hWM φaO2_N:zwZn.čg_:oռb^c->#,͆r|!B#2IH,ˤ1%II90h[qD7!" 1 p,K*R,%MP$YR+h̝`l>lB:zɐղ K\.Caݫi{_39\2 Z@_B\xxڇgcyBLi6j.nxG'cL*fxU;zLtm[ðgdΠ^q6AS$a&+L@AUUx$I@rBsx.OFdDA1zCaw7,#r|<^vbl-֋G2n<`X'W1VV4Xy=Gdi#qV TV Gw>H@O-ʜj644{#]7yG{溰_Q1?QjbNb1<VSTZ5|]3fۂzNe[Uofcok;fIIk/}lf!?<&ZSR{1QxwKp)0E#NgYLE0DAe1YY#!TSraH@Osh TKl6!Ye4prnW`XU+HmDb4J#V 4M`(Na 6&_ȃ3nǷgFul3cٞvF9 N6Nw{AFLgb8fֱNNG/N-Ǯ{4,ZuJb;w[JhpJ%w^K*u__߿EF85ꪘھQ]5G{?d*ދϿ=J+IG#+߽&.S)x{ۯ|O|њ|W~EA* 4rdc3ܽ|u+{=£{;ٜح+Yj5nZ93 ze7̗[]f.VszW^l/~>|UݭHNfGQ# eiNqX& pX<'('u`éP n@IbQAp`IN7 zU U/ %UU|^`^ˋTF!##}l4D#T if$‘fȐYt [3`2=_W&8[^,V{ZMF`1{c0b1Ozux2u|}F9:jzq{#:/&eHa :f9$Lן{wwW/~{#B|Ԃ5<ؽƒMɵN:#t_۱,~dn<۹qb>|mtڥvȯiqiF= 㑷Z@qͰ"O,@?9s7Q;qU-P(MCs,rIsYDL'! LD /S(4L(=!r|Q+@C3J/0" "΅Ԓ+":dWol% $ë +,U%%@0X ;Fal|\*.\pP=7M6a˼*PNJr4bivz70`lbjy^ݳ*Q<"@jl]?ػ?{K_׿璒*#Bh|⇏ߟ :RtRH];!g y7A"ɭW1VԪdZ86}ӬY^=7zfwfԒXeZ 4E<߯#M3l.M!T6AM M ERY$KPp %45M sQB2܈RX+8|FYAxbP+yyL0@[#}%sD$I"h+0aI2bKzxO''z{\bZk†- OWd^ݞ;sE::wtsdϼVutR*k7eɜ7 8 \fktx=Ctbkrl7߽玿;Ջ7z'{]nm1E+n||Di'Okxn}&R~-'\|c;IHvj6;)HRPl;^0Jeͨ]4 B(i:L*e`Q>x7?zﴅk,Nd!8:N'2<1`IRbGҙ,BY"O$J K'T&Q' ve7D*&>׌F >(Ry,ͫy&C"*_4 albnb6%&)iHAV2X+4 hϏoZg7Ap|wެ|:\kϵ/&.h}5}˛56(35tlVR CY⩭w^{үw}ږjftaebJH$߿Y 0C-3͒U£EeX2M_|7R;Z׺ۨj7X+7JU8NyG=\MY2i&x2ϠמϘXeH4EdNpgnCfp$&H,T:BCr(0 /$%pr+EI$yR+z8U`}< ˝"xWx jēKfUΑ 4McQ;M\`-H!D9l&BC뵪= $oXo}z>_~bLGph>^㛇k;x2̧fo0۵:asWGs:,$L&\=ѵ7>N#={'4eP)E F㑳Cni^.^ZNӫUThux2v Z;_6$Hl*tg"貱xD'∪%1ҍ"3YKaDwH$  H Y. A 4#,*jjͰu$ <hhfOQbX`uT L!x,LcT6T04 P7 M75f-˦߷^: G7?O PCwh6Z=g<̛t:Vp8omѨgb,GaUQ8ۂo[>m[ouG,ݿv|S> Ay* STQKNt?<y.ޠ5t +hFlg ';׮1:GJXZRj |jR^t,‡-|U7Mhz Ck[]Z2KݭdH&,xoL0Q,h00#3Mgrd"p3} cY+P9J~'O=xU^wzGǴ&T()(T.$2Aagr fQ RѽAb?پ^$Wj}iyhN8V; nؤUnժWVީFت^sh KEϝՏ/D.H&0(_yo0=/7|<}khY7Wx eNeصl7*=䗇hPXtf`Ez1ΰ?~0{nZ5;>rX8QZo~|ORQOz&/J,Ѹ_ON7uE{2 RkfSĄ(CĿ_J)q:Q.(d", wi!h5T9h)ᠲF+q4MR)89(YR RS8YU-rZ34ɸl:bN{?g'$F֌Le` (8YaRL2N@E$G(AʬAIO`4N`q{G~?ʈZfj"*σz ,~X|_}|f:w:[]nx~Rj9]͝ʹ 0iUslШ! |oWں_UZ6O*Q1Fs /=omj8ZDi7 (uۓ˻o~_}j~ysԞݽ=of77j}}!6`o٨Ml6v}jU@҉daGR4I^äo~G٥N$Zq:bts?|)Q%!rݼYX/˽P7(cxxBn*l<bYbPo JaXh+ b)I2)KiF6%e(s?!jaT %M^'A_+NݾG(B8%IKU4Q@RԶ<-Bvގ7A)<8IhMwFe Yk+i3&|^FvgR+;u\bد,i4V$NTi. \>1ynA}tjF*G!)%<Aͦ ʬi q?<|+VPkeA@X4EUS1UQP,p-3YDhNdNỷlK>37S\I{PL7SgQ 6WOx4I'8Fr /#%Hn~P _"j'Js>՛hZLWWRi8Y]]y^}_O3HbZ]ߝ/ӛ}'xvtb3KVkTFRlgd4z̜~+t8h_iCƊbN)JN~qYP7rxbm}82T'E?.pL>ZJsڭA+:tSԧYo5eӞ[1E0o ^L,4P K LR,x4DO;Cz"i,Ay)紗,d xU;XԆU5l(4s. `i<")*, т #nE#hb8W.gׯnWŨ?Fۋ]Z׋rwWl>WxţJ4o8}x%qdHD\ĹeI@Y9t-ʋ C9Au^iTX^T%Z!oEg# D0{FLU)+A5v9k&GqCd ^`]ɖjqǿ'XH ,@# LJ^57fS2Sld4Ea<9E0VARSlA7lZj[fSZڵvIX2ټ.JVyq{8~./Älԣ"@(NQp )/a0SD" AdgT^$wwG.sd\Ql^ d ibɬ4% ,4lUI+B1(%'!h00:KG PxUM,ml!] ֤.Fk(YMo^߽\N!%``y.oooWUk&t8:/}m;3+a?kvsUfQ+I)JXDaԏÿ?N:,Tug~7aYxB0ވ1x 4rI.HFB!\h+97+jΖY5{Ҵ6lT8%ٺ+ Q!_h}"j<'~O |(tNiX|+DuM_W@bl;4E7(hCtSsx0j9:F ])KcÔd~8\ua);EZBqTΒ$J8ƂD7Es$mAuFSD=5Ӌb O'닛=L/'ս Hw~wwwP?]\.Wb'l<u[ȶxXΗ2ZYL@ *HhqTS(4I݁PP}7a_|eX'?˧?txv]`0 VZF6Sy;f38qBiP0M5bZ,N{qת3Yjr1l4R%!gt%"[GH~GVW0 @Ѣ%awV,V<:Wz$M02B ,K2 GnDJBChDQUDU 'l8A,%(@s[fHyMRaaC>!!>$rբ.23o VTt *~8dt~z,. i9!1ϖesXfb<^3 vTS \:ZhdsY4JF13.輄34'wN#{'Gi(Q4>BTHlx@ ({uS+n<L.D^ڪNE|t^\_Nb<I ?XNob}6&l_OeG3ɡSNj:2”$hx6[.i;ns˲<`0'P>?_gRF7ldusG/w]H;,$EV) p',(jfA@lL+jflw t42T6+Ѥ3BNad^6!!``XdgJH7> D)e)4gIe-,/d@ ݢ[jFk4HV5eT6f[kbhDEoŲ2KshD@cב}BC^OXR@ĝD,5Zl1[h5<.Wd5nwݫp6]o_ݽjt|9\ϻQoGjT4SQLp=ʦn۶MEJH/ Qow?<|œQ>?I@lC+L^<{gϞ'?}8A.fE):\_7t6$J&|^m4`EzXc^o2#@P(Y5t}O@{b q!@!PUuS8OJnP|Zlݙ $?.fZu]( m`Lr@*Y%*Ulʶ՜ @*$ aDBd9VxFPm"(Y4a0mcWt^lX&^zf\/^fsQg8_/fu=Δ gf}}n;#"dZN&prbNvhiU.Q ULVy3uEp>t  Cѩ{?~gA<>rM|G||盧ZiIYLALӼ'B$@\.YQ9)jU=I{2րC ƃp*% q '9|N|{|ahyN`zs]fl]f)PUf5VXI,R8\uѩ^ -;;-⢄(|TI!<0,sB,:9$NzáS ebfR|la Hz굻=0s`Rsܪ Gg>8x^_|<yc4^N'zL'2NWd̴3 3Kk#`fH@ABmy|Maۏں `ΞuŧxN%eA5lMcycҭ !5rF.V+|֟tྜྷMtnv[NH) 2e ?ţϷwn}Q$F@"$3\G( Pf"hT@E3ECeYdh;ґxbٺ344Oͪ DI=*$tD HPx@}'; .\,:Ȱl+UZ~FLn/.'fo'z!?uY)(B(o DX UD9W:d(jڍi)A)!H΅xQdsY> V\NZP̨!@МdhFd@I-fó`}~zMvϖZQ9CH+"$,.K<$4"צ>7?ԟPp2(R,F' ơ{~ 0ӳTTWIP+ؓP`~b,Cl]Aa4Zӂ+ÝtjvmWLE PW{oi>?}A?'I"Q$ YVG"4'$ iAuŹt˲* _ j:  (4aqiQs4ɚ9eiI9 4%$MδUU)P3@H%O`N6PH<^|RX\\ ׋󛫻b&@||yXVi˫o\b A4ͫO5 V%S*<]>(LӪ UUD"/x|l<?N>Y-6R"nR?᏷NBwQzeQ fi(<)pC4$Hd:)4ҥQT۹FY-T+bjz;WVʕV d 4N=a}'|m<}O6kcT8-,H`")aőci:SHe(FVTY$F+AZ8 T< H hDT/,MuUEd%QfeGTEm#c 'H N/py@+c̜Vxm4ZۋwwWw/fȸr|H͛˯߿zu{vZ݌gW|],!gWWFm jzl v  U, BgyQ Ik[O~?]]!/醳6 n,'[nqaAb{^H*L4E$[ O̦dDN$$2LWYVK,ĝ`8'd>%MB[! p#)r)WLvW/~y}sTnw}wWoݛ݃Wl^oFnם4` vFlY`Ipg%j- QI!|U泿o^>ɳdAV 2ă~{~ĻsǩLg%)΄Q(b坃 (=Y+Hċa #\Ze `vo=G mW]O!d SHA^<;и 2G@G`$0KL8@L@1IFMNmY$euzpme)^%ITσV6_2jV6M*L4&H( v$1=]tCgtYe]!ACumHm 6  q;GPL6og8ja0!';^ \PeђPT&vX*񔩌, ee`p1pl0 ql`-ˇOlIi 5ra0 r/$T^APý}d+0Lt@p$ D,8I2u!/*s=92pJ9xȒ5U4JZa|CZ2kjÆ k@ΰ.M&첥| M9R"i*Ex4G&ȴN@\&b8'" ROa֫}>ZbRl1Q7[L4-+@`j1_z}qu}ww˯A{XFlBzZ-Uk~,,'TgG uy|s8L[Qiש_~u|/w6wN^X+ D Ӄ/tM}4"Qa S m4;\9zgyw ,cN\:4 OtÓ})WBhWV'a$Āf`?9acD`шh!Ðc, pC)`~TP ^↠N8^V,:jBZp1A7X3Zh.-݀XE9dL2-3̦,Mh3uU5x0LgZfŠOV7p=ux<|~/V7./oon&`iuԹ~Z.uSVVk@r59X""HG`(LD!Pm?sv`'N\ǻ]DC\.c0'p|s{pɳ8zkF,ε l^Պ2QQC˗/^:`!ftW1&px#N5a4!H CQE$8MwOlTcbg8a5.bLQ"PZJi;t}1~6Xg6&͈NG%j2Npl1F6iTVEܟA$7>uA#xbV-kb!,&睤.nWx9]NsFķ^|ջחbtw{jtg+d4n_rܮ4R*c$)$5Bӓ#UTrr{svO{>\:BD" I DFiAF8B4׭i]ː@: {'϶?ac]B!> qf,fˍr3j6lOŀpNgb>blSq$}B\@BoUsO3 |fTvfx !(X0)$ UfJtJs5 di-&* ljh:!c7-B,QJ$-hxzrzӏ?{EZի߼jZΝ=jh6_M0v_˿\.wkl>L8Vnu;VZ-fP*( t|XA"w:Oostx𜞺۞H8^oe; Rxs#lK(-ho "+,$rVf'WK x^DT!xpkO~?>x k0Bq"~-KZr7kZL5],5S) cigowo <4Aa>A0%|6rFz=&dt6:]-ܾo^ݽ}ub:l|w2NVn~*jUg]*&r†aϡ"e1Oy#'Ϗ-7-ҹF4j#17=: 'N{i ؖaQ!q9 dʱd^wC#‘nw~<Ó /w}ZPn۵Zl8x*aIc-ȷ}|v6T #?F"pD-HJ  "6l(TH'NG+hl-ĩ(@D:Ϙx8Pl;D2.@dLr"y)m+*8Yu]K`@1Eyhrh8>8yç;[?|[G7^L..^.՜2O;^g0[]V|WWjYFv/kJLtY糕z-Vɕ29]^pDA Sׁw:BLt-a×ӓ¤b*<~}=9Avl/pABRPod IΧ*[CQ ,ꉄ@j1|3tVIRo L4B,~ƒG{Sǒ#!O(MT C_k:z/>o?~[ۅ7_lӟ/Z=rwww_W뻫WKPVw\˃qt ʭBZ*lB) QX "o;jг mKM iUI2C#BH`4xahNvUS~x?p`ֳg?gONNZ{0 B*wD&]fPC={Y[|.p !mNdJEe-IyI0*Mwws9"X9 ׍|:T=a˂Ԣm&-SPC"( ,h2 8+sF4P+ZTIGǾ|᧏_l6#\wL!LJg5@yC@h`T؟l8r( gb%.S ӉRMA" 8i0< FooNY4Q,V5EM3:j7) ۂMآB"%[IJ.o_Eٸ&YCWt$Sð-F4ȸiƝ>!J BM:NVP1\3LQNz9|G?x/<W׋ۮ bFsA ~~ͻד|t>/Zj`95L1Ό!a T(x -~Q]h W`щc =;@évWeIL`iD*ۭUE4L`x( }~y'<}µgϞxGTI-J2TJ{={cl۷bC@dC( PF$fK6ED)]dUTeMtsĺ ϴxt4H ?iI)Ld` d%νE +8@ 'ʜ%⺢ĝAqXLYyIA(9X`^SL֬uw/?/>ϟ?ڋoWoI(y$gB1X&՛W/rj2ZjaP [rm#jD$F0ӔD3:fj>h^,K3A J=ɇ^l Fywwvv>]td:O'A۞ Ft44Z墑떢J,A$ QCh!,ʡ-p'u+QR]C; #p0Ȕ@RyFB$%o:Eb'8Mhpe/>>8<=x8/67;ۮYvgprFĖ҆YOQ띢I"?AA2_8A4<9Ic~/R0i( \-G!3 %U!$6QlƃO27َi$K #<:g3r+ukVVwUWM-@{'2a$"˵ff짽ы:"P@f>DZKR\!r,ɦe]R:_tK3sfhr1@UCwqjuW<ՂMܹ}嫗?cwo_],+{[?8?ZY[YVysG={l/}p}mu5-m/joV(T}W׀eUAp2E3Y$_؛XlllJF햃Rޭvyg$Bb C9<\Lqz|rz1-8h,`IQ#e"B4â|*PȨ  Tĵk7&f.,\p ܹ}`CӗY^~nzSm{Ҕ2@4hV`$!Ɵ, iF7)!h`+O9r+v^Δ-RZo:іb`y'{% +j(yE΃U%ǶB2ChEVAdIU4JdIu4Rd@wCε7c(A,Ln/ ~{Rvz`J4ascgs}t+J- e[ȩr˦1,>K,fXI%-&fgG o$H-rnyݙƩ<|vfQR5d YAXF@qƣ>zɩHGw4:8vktß}8m.n6kBܩrתu2}!0Hal,d}jG;zYPhʎn9Z>︶p2vݖl`5R)IP%:ڢMv  Ue*PD(&S*i`eSȲm(E\~qʵѱwG&(h|r&639Bniy {ûՃՕp\yN-RV5>X[o Nom)kat}1tx3'kª#b"K*^ba"1?;N.N/\ݯ:مyUɅũc ʢ3d*"Tq\%2: Y~rykd˷$޽17{?umo&ffFO~, Z7J/uKU6PB4IO2ulƀE`' +/BYD jdQF $?,ݮ7DϷu[ s l'jQyz/ K 4KHMDmC*P$8T[P/!31099;>55HHƓ44T@Ha)4KBR`'PŘJlZe,NNMMxڥ[7ӱwnjdq­?x 9~ev͍å^+~c9TU+;*Q8M@ fhR4*J&Rss۞IͺbAAE` 9w z9,earG Vt![ 4 Q/O!:4)Q`qD+xiEuX%oc]?7[dd$#Ss=1X`O~~_k7\4x9Xromc[y@JɈᣳ_ #p$s4+-ƧffE Ǧf #x?<8?pi} O4Hٵ,dfI6i̵`zZ1953ucd˷&?8?fnjsps{gow[f5h|H蚎hkAy)l`"dH@iAP+9у>ZtAڼ-`uTIj)@QUS)<*@StŬT У`t͂Rt c8ch~ʇ#S _LzǷs/~p`?wˁbVC|hnԪnmS+Ae Ot#3c] &-\bvbavarMgbsS'BoikkssaXl~rffe"$:ϐD&aL`$XxQ4 3P\'>96zcdrAnr4%66[Kݥ2XZ) ^YjRv>pXF(,:ꡜ>Kp4Ȳn75Mi3/yH_0$cÉ+YnHm Q, rU(+B]VP(F/ NruMa8@i 485X (T=h9wsPH^dq]y^WTVӯObڇ7op{7F1YQOdd_ܨN!iy[ϕr0Zi|;o0@XsaRJaU6\&H:=7!%6n6K:XXE=HetǓH,\l<.4AP$WZyKP* c'&̵:7FbwUݕZg[FV jAPBP3 8YZ^Y4ȷWBGqVڭI@pAk,.V :vfd +x,n,~N  D{ 8BpI&hו0ޮ /8MҪA%g'&f'c7G'u+f_v{y֛~X2V4OR0˘Wu j _*bfY;2Y*kJla ښ̹PBSwhsWISjM|Ūf͹-C ЦT0Mۀ CQ$fA򪡚2gaci1Kc,#'~K?ٟ*r<t<.FcG+kR-l6(A1WQ,x9Ort<b"fQBmm=ϮuׇFӮ-.no7B B7= T6 Y`(#/fHRuLt:=ytG'Ãݕ慞sJd:n}y@\٣_}|hscR.R)47lL YG,N~;7FFb7w?;,QW׆;+~gnVF\,*ͦS5G*r3 1AI(,$eyHnS?:_W5?򥢣(cW0(kfɩrndjPoU ~ B`_5SBP{ sT@S$]Bhg#ۏ,.#۪-%!8( =* w*aXu8W,k7.-0ܴ9`Pm^Xu ',ϟ?{hoU/68o`RUNhRyP`"%>fxpG>xpd`V+t-fQU qpӧOv[y<:IFζ#\ ZT|Lܼqsy(wt_{qP&{ݍnkc,6v] l[YW!C*Ϊ q x yVEUuU򁩔Ky7_.P P,A˕Fxz/j幞|,_%55ϫU %Od5',BR/p-:+ѢQD+! &GEE˻>~lf9PfXqWW֖66:^65wzfalb\o]nMɣ_| J4t,E0x vG\}p`߀8<9=; G Wk{Jk.K=7NBlLaM YtS~p7#9:6{ٯ|e' Z[_FaⅭ0 ʰT| 6)(\93]IsȖ<ȯȳ[/^JpѯV 0sPT FPT,Us߀bi[4-;y^Q9:'x.ld)eDE$9R|ǧêJ]*oXr~l<`͝Z7gfc6>:9:&n I%3acc7/ߏ-m c+eӀI"K J3cwvw6৕0L+_*DJXoV;GۃAwN.[+''n-C`FϷ4%HJ \DE}tr|[/=lO_>RXXhwou4P**MQW4+?hCâ `Tg9c]l<(a4|5p\!hWE[vk =A#JsTCFRB4E!"D0pY4$F,Bb"؍:x==Q:rJYZ+!rNDuުYY SșY@Bc?WȌ-?Ob깕R9/ CtooKj1>qXh ^pd{[_?>;>}/>y)؄VZ'W''Qn9iNd'S9e89Τꞻ0wn?ET5ͽASh/&0sd'_nWEM'U J%h|Pl U!R Rfe+ L mzK'/^}'ζz٫04 8pFol "XՍ֠蔠. ݠU`ET#1Q72M58U% _Ad۳$ qL9K\m]Bv$MKS{B44\06AO-òܼ)wh2 8\LX Kaii<$$Nebй!2б Ѱe|1vwɫo_<O_|'~ "t{@`ko{Q\Wc(IC! {f)ʖ130c)ldF\mUN=t )*#Q"fj>}4ʰk2}H $*(jQ㓕Nu}w}g/߾}HO^?4.@A=y‧'g6e|wswe^^^_6ҲW*=KamxK-L44!Q?% Kq`+wQk/=Wog_}ΰ[U\ovnYjvVa!t^σZԪT#$BgEy:ÕVP,S,J"/蝫 Pz%"S([m\SA"$uy-Jat\^Tx7/x7o-@ ͐Tt"bmQDlZ78Xš6;bVQ=MMdf|4p@qcd'`l6P`Dp :'+d, +Ue+hI%Ȣ?-󶯋N# ⋂JS$%:Dβ8$Od34S@I%d@>VM&kc#7Gqt5MhLfqʃxrzg}g_|A`*V/-u'gGQKr-U,W4 Ƅ̊V]킻.ںb9Kb2;3uw|Ͽ~7"1@DJaR`Q+%p$@B9+X~pzV{^O~ţf*IΑ ʃbߓ$*Jn/ z{r/j,MxJV:u~d' OǦIIrM""iEQ2 eV2#?0'eKPT:k:e91(P xv#)`Hr2(*PP0 l81JaȁH2fF ([Ui("YW=>9W}_'OV/j+BR.+íãkLQ4IeMS$V[jXT+n#āooxfwͯ|/+ߝW8;WR@I"I1"RFap' jG^z~X1L-W[[^vO_}~{Õ^V}RXH}xEEU.uګfUZ臦g9GWk]m*ޚ% (8`3) ?H,84ȲdfIbħ5"Ӫ=u9Q墓x:~NUPkl21 D~aP K \fv*>=IOQpB3MOc z|r~blrsjՉV\SI$D/=~q7~owիO?\U!i'XCԽ` _*5 OљcY4 hQrw_w8 _,Z5]ft44KH|+_^f-K?|&C$A +2il2gbw"߽w^/GçyG'F:@ 4xN1';nok67כjT*KT(E`]Id!e*qMXX'"UL8rn&X #VߞxVq/x_?}pnTDyFT;_ VQUK\)*ꍒ^XHA!04604[W#pks뛤9f4t fC"X&uN/.Y*5Kkx飋O~?Wϟ~|peeתUKVpk~5(\j;ȍCd E!tq-iVy\c&3B %H̻J^=/ہZ.&-S(a) yV ,s4(8`Q5tI#~Gөt2e [T(乨S ?|AnNN-vZ ,.Ιa LJ7 gOy_y~o~ŋ֗g² *kJbV*sKaXAH [,U͇rީ`XAQ̝XE;/92,Zv!^245wVMImoj pcgk'7}ϟ=y57no}Ќe/&BMQxL&ΥR_Ѡ *F4z A-3ON%c_jVr9CS G YFbAuulyYU~}7_?գݽmT<'bi *x^=t+/1.iBLQkD[{ѴղF0EfɛGپ|ֵk 3S\yTq-&eshВm@{+`+jgo?}?\ Aa6V6?{p?}ܬv jnUr)( 7,-C˒Oq^Xs6 yG*,FIdYDšKSd۾lɚaNdآ_E] ɖ ʃD7FY5[EQX,J\d5ۊ}u תZ%nIzU7Tl4nRVwo?oɟ{]-"< Xl弈fp\^xYQ0ZU{W_ϿBX|ŽzvE_fIo,"AD2ỊYV5kjY^כF|jԫG!~oWGn޹972d E'9bdaE Nv5ؾ/JtY3q.kʝJ`w8.FW%+ Ulwgg1(wt M@3ȨuXR\)"/[Rb/{W$7O^|jh κf$+)KNjTjJ  j3w_E;7NXolr[vzpm,_?8~hUq-0p{OaUphR*&DA?Xll,Z fgZ+9cyլ [Ec5*R H`L3T |Y,VF ꪦvUkolXzN;msn9nC$jQo7Kk+{8yzO?{ὣ;Vv6\z_/?yՏ>_~g-*W~+(A m ˽2',].[~:_*W}v]$ݔnퟜ=}g矃zEXdc{\6*53NVRaKjْ 59kRDii~q_1t7t+UAPZ=:ݲX;9QQ讼* ٬7`Q XY͕v~t{^kV{ ?>yz~rg'7gwίNoN./o2SYw~lgk+AO0҉ a]eR^2^6A )TQZOFY RaTk=f0D5f<a1|FfE.P͛[fkmg<9\wvkJ{s.Nv7wv7ۓpZIǣL*"BR~WRA,$=˟׿wa_+*r>•ipt|sm̀kLG~;?A`ǁ]v2'" $j: {{ׯ{~q}qtkgo}s8f0j{)\Uvj΅BrjVخt٣xPL#lA wz.^`z&x6دQh.>Bm/ҩtcwl+T! G\@A7&@~QnΠ5ZL&[;ӵSاGG8߻ڞ=?;99غvo:z.: 'Qo1 \fmի:^U(]/D=lTz)*sE;@\UӅl˻vt~uqrqyyvzsqwrppy8 ƣpr|go_?y{y{xtod:onlɈ#B= EE+I\(qBoip a3Z9$sF'i.4;B-p %sa{0^_գ?އKp86 ۥ(qbvw/Ob6Z 'ƵgS:METh4(w|ȤKbQ)B~Â@޼Uu˩p\}>DZczV̤l\v7OΟ]><8zӫo__tXc_0H+`IhrSl$`; yV'RX(E VSeC* JRa0PEjϥT&fNSspj&TʔO/UhңDH1_x%@Q-Hxz+_?|omD6cS6wHLFcc&3f`|. Hԡz˗͖Wo=}1* @ifOl&NS/'흣2<_[qI|S搁` RoD#EY%Sѻ~UJE iJéR=mAoTrL-53l<Ìp%z4P ڕrڠLdٝf# Adfj{7bA0T뫫׷ܾ{s@nM,Kd,(\@-C`#EJ+5&T!?$M\Z&bX*WX+BX^g9  va0f3ԣ:gb ѢD'?_>С_=_r*AH*BP$7*w~˟`Uƹl*hQ`Q lDX4avZp#(^*ްFB>k50eu&͙j\n zN/K&AKx-NcG'`-@RB3+Jw@&ӨQ & P ‹0BBjO#-+ ƤTflZWZt1\+R.!Iגt;`ƒ-6рdB {Ce61lgy:]퀚l#fRQX1#ա&TK\)z#ѥ,B!H"1OՉW 9$*ZUkUJ5VJbܬ!qR$HO?t5XpZ#>~W7?gՈ92&{鋛㣳ӃA"&'n_4'iDO߿ڳv@2m+KH)i##!> F!ZZg _*T+/(dzzSηJNP461&R$"'IJP(itfHq[29V ZVw8:|xǟBV6L(c&%z*_C\1ͬ'H(Q,r~IgWj V >WDB ra' <9o# "Z4 z ZJ&} n\Oۄ*D4yCD̏*Y\="-Y\L&gJVd{rk5&`-N+ۙES@X`(JaSThI<嫍I9~w']2R)荷]__]_=;i\/O3^,AW݌qQҢ(*nOY~yy=uc*D^)b[L/kblw'f3{nov )p9>ɉQF8F[hV"i5J\ WNn;onqnIID TGX(p/u9l$BkT3J@ҥV"XREsb]y0IqAE\wR0-}!Z&G0z{B!ia4 jX|*y=@nR)U"L,Ҩu8BHͅihqa\)jIl Ogx4wۭVOGSZkԟTE 3TZVAki=KZf6ַR7/^޾:LtNKpŜjMj) R+ O݃~!9Mh!"SݲhUr Z/v[[qT+kdmFRF@q|V52珁/r3QPq9\"/.,.,QhѴs;H(*C5f,#Wr<(TUŅم'l2{b//, 2"gy^/ϲWXUx5 -)r%x@? jyE Pp'2HUv٨X|i*DlLj!,dl2LvĴ@:@ըYcL,PΰzȣJQn&"D0|V7J\Xd2OŨ|!x>sT0JK9+vm@L@BQxzzקJ\/e)`u9f.e#F^(V+ 9qzgݟmjq V#7͔A$$X֦kkQ[WiU6:qש3ӑ*d"Lz6 +bVdrk2/sb%"--Y|@N{nOa AͮP:X.DVpw FشRXxTw N1b`R07Z_Z^YY[d//../,-,rahZH%`SβgWOSha$T(ɟ~|כq$3ȈB ͡]%bfvEfXa]o%TGu@%٦hV{*L -8BDX"T!RBEhrtzrbB f=pHNn#5B #) EJF tT!AJBN(y3.{vafY+|КGb, [(b\)HFe LYBd4i#Y9m$0Co31Xl>5+\!|͋T@0]>#0 +ɟB?haθQ#"Iy\8D!.B\^^]ZZ{Gs|/8 "ցf")l l1T\!auzN3-hk* i0^H< X?jikY0f QZk룃ÍFUf?Jԭ*TxD,d^k@1S+/a Ei!k?.">|}&b^g z9: O\B.SƓwD3~br u:4*_g9ܙGkR֯QHP*)H}7CT4y3LwGzoPjJD2Ĩ341Ng-]ި[]eܮJy\HT92)l읞ԼZ0-42a3:Xk 0Rz `TԭEmzsr#.̂~47GK<6K]"oyffh~eѡ:X!Bj` .NUNP~'3Gu0pp ig惚mdK1[T!9ⲄB(LssӫѨ߮RT0ykfV5[ t"1ݲFRU 5b_g][g͌ Wo~qS$*T,, @NS\Χ \>0wzzzsۏ4&_?ۦ}n蝷?|?o^^^<=6`4 ZxgO7ǃi{4í:nKm3kqdpBpqmRoΗ""@rtPSI5\_>Up}:*F??>xDmYzr5 k B\X+oZ(`It5ևA^eT"H-8r:<:RUP57*aJ Iɋr1}2`XyH5j}̫r2fsFNnNh@ 8]Vf,,sE }۟rV| %bI WXbYL/eϱx,W5 FMeUU-8`ifgڌh7V;s@0v>OKөX:I7Fk.//ۻ777LJO=ꕫiZ(EKt)UjJr5W%:O*vtowwnTjժU۽ɸvNZސŗK{@q˃0 k?ןJ9^(gbYk&SLcu8ݑ0s`}LiEeR"TS {H:5 {{/:b\os:l1? TJ*lKe38^+X>qf娳tڨӠQDI"hoBA8lܬf#Ah*Urf X,t!_J2l6Nq̥|'pD'|\%T2b<w:jw_bCU:;h3X%Y6>~kVio{]7`Z{t'jV "4NƺRog3\.wKrIgkRo0C=A)4Fn gqy2[0Җy9֪/1)^_L;|D'I$Bl{ F@|F yJ K"c. `#ѭXsO{`~ ˋW} 3JμH TJ0a2Z&+B*VEN$@O6tZlg hrAPt-/&_X(Zӵ7W7W'/NNwOڣdoԩۣIQ.*yiULx!Q^*̷f+_5UR|RĒT!T:ngةUt- Xg?a?w?W$]ZΕBV!+=9~͛fڃ~; Uui"8u)p Gkm.B"QV\Gt4 ]* G3F@2WʵF*M\P*UL==JT(. zZ >-O.aVP(aBY(0"BB"lB"Mpf/rXO8x˜_.|ٹeD \Lab[mfbՓ( N?K&7Roxf`9x1 b X+tJ7zv}7/޾3:Znट6p4K\6OeTn3|63Q-;Q/);v4 C4]l1FSR6҇+D]^ACO$2B2JVB9|'zy⛛^댕jf5{Q*qN6TVn^_&n>7Zj.2T0rFFQujBAN:8U@ l))">I kU 8|.oUF -$H%!A\߆J iTJDrTRnR(D|jS'f,=~<0抅2L.|<'HY,>k[ x/)Z%*᳙0- Dwƨ'EA HLwE H4BF MEdn|us  קg~`kgA>d*;tT6Ft[O~!KB1wU*E=XHBBm4`P3z{əw?RIJv% aλɣV)Fct B-"h/^0mREZD J6Yӓn*vo z)Ʌ]nR#E*h/r".g -^@9ǻY8R!rr3x2\EE<3jƈFH.J4Z!5qR>SIV"nuA)VgUDB֪X~Ȟ{xi `L&@kTZqv8d6!\԰l4"&h! ǘ7>V P|tgfӅ NϯN/ӃFWVo2j2O7LX. r`Z`,JZ+U+\ qbץaO9)`]}(],5Vovpq~G:c֔-tgRZ5s&n!PHԑz_<]LBfVKkZ]nU:~B-zlx8R•)`RuN:L,沅D)tvoBg[-6*W OC#:H^.XcR$?91yI-Xa|xfnŃ`Hr\⳯f0@ DHYZa` EC2-,zd"Ԁj3j@WL1z.7o~˛ݿѠR-J6l[rիЙpG4@, nk=Y+&a*WKz/˥z^iXN*X|:I2Xi1TivcrJV"r!Sշ߽?d4_^|vp?,<WfiD5Fh36V-Ut|`e.fN-Ө1B+e l|H!V*TrWT 'ˤfB("Pc5ZR(QRf"I>P%jܗ->҉rjQ(= O(pbpeŅFErRV >}u 3Mzƴ:ШgRQ-T+t:"@q6`OUG6d5y"1˼5:l+ aZ0^%C Z! :.#2s8sF8,:1me5+J ˞]ïg \$WJ_{w`ԺV{aCRO%NLL]/Xfc̈l3 8auX}9I%]|Qf{\%`}^߾`3{il{94NwRFn4i3TZ.JRN|9IvJFtZ'\;hl5[Zߛv{S"̎?WH-͗Պ_|?NySQ]-?$<;<o{pjUVa\ *&8M+d@'3נ34n&&T7z5YK(RlT$ħFaTG2oyUWĕ\AB-`3,&.8Ѱ54l[ 6h4 (:Yy2"] D&Vu\HVybk˳@[ti T$ 1'EըqjyPГ& 〃JH-:OQU,sՊJW~ۿP- (_ְOB907GFQziZ-.MNdR6U$1:8nI#NyS$\x'8%RFJj9[ p$EE[8PX!U0kv!D$a 1u@N L`22}`|"Vȕl2^}/^~pЪ  ~{{tmկ6R}46e:J:ku:hW|Rt\e㤱4+tqTiu6&nU.J(TԛNjyQ*Vp ko叫̰Z7Y[v6 P㻗w' N$wNw#p4ndQ> u6bPHgstpG \ W$`d2@(RK%~br7CBT~kAUƫlFRkz@_=wzI8:Za5)4v'UVuD(-?{[[[z;_l+j/S*tm΁ @sM&ѱ t%Hv %טQ]X.+a{e0DFw޾{ÛO>,Nx& gb>]\N']NKL\FO5K|)Jr%A뫵9 W}.mm{"Jfna"hTfR*})|5(XF-ZJUEG>R/xh˕Z `T`$>{EQ rljJ,), St9^F"6o6;n2Jzwcd$kf)?eG':I 6Nʭ}ٸc l;Lo)o*[*׫TȚƢ!仯vl<ݽ}f4Jv˥7ll֓mwU?r,&_Ь;Qm!o4(*Rҫ56b\^p8>G N%bGMqZ˻ׯ_YW0E;ߵh9fM0d90:hb=*PJtV҅r#*ԊF-7L5X(M fPE3cFP9.B 2f |\-6(Nē /KEl4g կ߽]Gi[DIs &MH Xv '=}ƘԇYTt'dft;ܕ www Az.mUGjDXFb.o2aKCaJq)9^Uv)b rɷ-Pݍ}d}[lL1k7dc(?|qryLvjFvmSuw1;>%\ n'.'`ݍbCP׏o~?>pv:hEiFѼZg7l9 !I#u|1'kHǫLRw?}\EPLm%N8J&AU)#h-+Uꃫ~ZS^wH8)1 P٠믾1՘f9f /gOWWI-Fr|3b3*^4]@*@::ݮDob'zgzRtG=.';Óݍ';ՒRI1k|ɰpxz`.壩{]zMѡT1jPk5i=f*P`G @@o:˖2hPR,6xHixz5.CqPGzWHL2jXM.?{@-:}H$Sn+t1"#ID7o>|Hqovu;NN/,Q99f:]A mJ|h*z[ݿo㿍NBu h e.|! \@ |*]+a!3<~6d7/$\/V!6 YMG'{±hz"PV>߼~~kCI@JB%j5ьߛʯGBiY):iȦ i|ݟZvxp|los:^yvVSd6_L Ps{A(ƣ;;{; @O4hytjv #=Jv$W&mrF p_;iR+&[Rd֘ `*d,EmZ-겇A;r:DR)J$Z(O{G J t4Z]^zgwwUJt CSe rj6e#EEF-c//046G] tȟiV, P5[U|4*=B0#E ˆEsޜ*5uKe F@-32}xOPhz}lɾȘn4P4uuQtKfJ4Ix9l*±WLȄ;dqrBYp( ybioЮqG{PVr_*CV1 ̚$ Tl,nJ7P0d\볇-jщ DyHgmk2>wmf;n*U54~A&[߾_hgr>~|slo`ghw')ZNloBVXo6;3GC1&jI(:ݩ ՙ/nB6h1wȎl&=L&7*u:tBgqzhۼIYˡ:@=JxiMqr֧ջNn_ns}hj}!YEzi םMS Di=$=I%Ct\ɥcG8ZqwO_^@V!a^8<>/N QsilVkL(ʲ]Qa6t-:>ِm8xb_} YB<_;q עkuN'XO6\)(Cx%){0QS>o-vˉa_~t ol(JQc6?<:ʵO%zX{}7([%}^p VwݦؑKU$c;&$R*Qyw>>\Ofj8=[Opygs=%"xdZNRspT%4I < $pD|)[]rE0ZJzZ"p$ٝhcj$oÀןxbģ-}h=_T 6)ZAwqÏoO;x-#$Aɱ֬:Qȟ׎חhJR&ngA@aq\c6G"ݿmj{ΑR3"pT?֭,+͆}?EAo2Id岹bfr!BA"-]/[ b*F;`~\czz)xOis\J~>N6 v7HJf 0 X,kyz8~xfޟO-|2_[@"1h4w e˹Q+w77@ JYw;SOܑ`:N3T\ r1KALfiR: }H̟ڟ86Rc4ۼŔCZ|q}*^*I$Db w=b"]ot)grf$nr{\+(1p.Ul|bl- dZfӫ׏??o?x_,{ :)`[Z#D:<2 ǖFRi`)6*TAu!-UZ(OF$:I4Q@Z)<\"&`M$Ԁ׹a5_tZaȵ:" >Uz6_,E}>:M7 vrt|x` l:[4T-PC\-WGBƴ?ǿdY|Nz0 j,2NkrL&qWfL!4Isq@YR T U 6%@Bl:z,3j`|~/kǛ|Gv &ˠ2weu}Ӎ-R ҧH"h ^ˬҕzVL\Af@/n֍P8XJùjO'w믿g~4u7u|2Yް6G3=J:#`@\An|7A8EUV(RanG0,7&JQ4XI_8!n"Rn[؞-L~RIyTX2]4 f"p(~t;Z_?,:t(/L%+v19rY(&5 m1 x:Nw\̣P,VHR o'r:Ja8Vٸ#Ixz* D1 "aHeJN3[jɢ=|`G*(%f^(K粑d6H+՘d3L+(N:XfuVEsfOfwϟ>YOV?:Ox1. apCNpR(46ʠXI"&R2dK5mp< F`FLc%$x!hN(Dpu!H,0IP:6@QW7urNfd{7볾 (p*̒7޾^udpy{:%D5/7[?uEr#",(Tt1°Z*j@Xou*]rpEBoiq&UR1/W0f*ȅr0@em% JhGS|@6-xpx͝#|WkVV3R1Ulv`t)]6er]6E눆c!W,280Sx$YWaV3_B32R18CDfY ,la (,XD&CuZ"9z'I ƙ)ʺeh4='Ͽ}SH^]- o%0H!`Ӈoo/x >n6ӯ|Uj6p1vkZcR>Te@3@j5I+D:s`L}~$FWbِծՂ}& XbqT tҢ|tkP fhv-BR^3`>WW24+)[n4D l^O .z`Ѭ3Z:'Jh".*8Z'&=Ï?H}ד^gؕZn=ߜߢL+GCFmN`u-$ZXObRbbP\$q8!Z:_)zs[ TڤqVFLSPf We řӱ4],V6 n B~7>+bWp4H5qyyXfj֡A'h$1l>yrbQTo㳛3ir9(JZH֚4ƓCM>5c:8 c.һTgb!锇{M9Rb2\.5|&['{f#BopZ\Fdx|t$UGjm+@8uvRiemNi0VaqC@ 2Lp(A(2/49q=y_>~ ~ fqo4NGW|>;G##By(&PHɪB>!/B4(\m4-oVy'IhH'pHn,DP'j e*ThЭFQםH4@Z-a,4ϼ_TZ'Vl2Q&mjWwՈb9YMFPJGHwt?^_ܬ]^QiC'WN;[/@̝@X@Pag2 o2䅢WSnZ(\ גJ2vb6)gUotc5趚O&+v.f@W{: F2aQߒ]H0mь鉆>ɰ~Ơ nr'T@d`Ew9If2~>/dzb:<|ql|y<]G6HhI\TpR (cĘlLqB% EL `4!d JVyEDlyX+"UY{mFKܢ/㻑$}I{<۸dm(s MTkQ$G9L</4;D$B6t,JҙHŰFoˋ՘へb]{$9>TzxbF"h]?ePm'r Qu([H7,^e6pa(G;vٝ&? 3I[mzN3?' \IP<pzן??q:7t5OCx^` ;D [|qBp%V6Rgi`6'd휐(^$`@pNJK3lRʍ`"[J :(l{-aqߦRkdL9fkBZH"'P=N'YJPs֟ \6jZ%& MvӇb6bg1 J\xtb+ ɨQ@[/'EfiNJY52~ldt4-&qo gzة8>91<HfB_lNNdg'5'dCBs _*)w8 \8cۋhG'I/5#J ygXtt4`64G':Rv<6%؎|!cz=v\h00Z\08\v}d pE4[H&QoPhcI+Wll|XLf2.]h<>>|s^ @4M\>汁ym6׏3F!Ժ4X3>}8rz_]~\,g@ǝьnt ;&,TkuaHBcÀAq`A59&$.pAImP|zDJx' n"K]_Kf;Id2jhE^[vL׭,J`YmH j/]\rzLtݸ/Plㅁ7 Fl@Ѱ LFARtzlq zFD ӥx, fZѨj+5*bg부?o)N]~0g<3R%eskV#'W 07^磁`0hQe2[kbgv~~o/ÛwgWW7׳~wDBy#`''l1-p$&H$LR,X{qq- MatW 6h)'4 *䧝}7yȣl J'Buq\O/fիդ}"r:<1E.k`T&A 9Rd9Cp5ws6Z[n^||?LzVg0 &~ Y._\kH*CzQg6SjlVesZ@ɤ!ui@2&s H)ړÓLH:j*/l>ks  \_$ נݡZLejvk rrݡ?H[]'/߽_|l2<{_\^^^]_&b:9;[,Ψ ԽJԤF;( ̾\$@2a~|V<%[]`B c4R) x4mexֳD$8҃@U}jq4Y-.㳫Ah=luϱP4AT%XS*ؗ\]ߝaо|btiߕg' ɞ&#_zyÛqK@˙bcnʤ7z @̪5n[+MP^HEB %@=Tr%Q͞T$t*ٷ߾ٕkw^FaRN'l[n?_x>=/.ϧg QBEa4Y>L 7iل;/x9$ h 49<AV&ZmLbH lKl⼄S$pc1x3(׹^oл~C1(S׀ {]H ɕ`y yMaua""gzRk4z5BBݫo/éP$&*u=)5+6%sۙx,jgܯA͹1HSR= cTRP8E"d?<]]Rl=Q;b;;=4f7onWˮԲѐe2ټX86B@\]^ z7quvf A%v`wkM- gN{BS 㬀T"yXR-\TbpШ2C}>O ٖHR: b}GbN ! qܤ#\G`6 s$49]pcrʵnf秓W+XIvD"H< .փi|jOoV:_779=(QZpcqJ~ t#^=~s`+; ].[VK8.t"Q_߆rz6e1J! &@MZ:ug#K>|tpQ~wscȴnL\# deE*W7Oے4%ʄ]X@sDB!l,H8eSLa`x9??}?~jv{prљ^,@[8?[.QUx^p֝gqoIt"{ߕr#.ˠXhZvF=N%FȪjV(Auo}5xa4[-hu)L$hnюЦ;-D;):-4sB;Nkt}~<5{tB9vF%OyH`PQ  ;|WHaaWdGRhkG3,Hˇ~xaBfr4V*NG*! e\>Gˮ,ZVE f*UF=6C([zwuvv:͠<=]V˻WEͤYӟ Q?:%f7&A?Hc0 Sp*@(!&W!FJ|$9obGxbT@X(T_>yݫs P"5jO4f{ ɄA_ivRKWU-1ՓefDV3IGN|GH.?96_lllm͡ę4nZC57\\)LFH6WGjzm>PKGVyPdata.npyPK6|yPyWavelets-1.1.1/pywt/data/ascent.npz0000664000175000017500000051560313270003221020201 0ustar lee8rxlee8rx00000000000000PKBGPJPdata.npyocٗ&/!4Oy'IgRCFf$EdWUm2(^6 ^xc؛^hx^0 /vϹ$j )Jw;sqo#G6heVfV族?|ǫk|?{5kةˊ 'V6]hfWA>lu W`;ޣσEkxv6Ζ .`]_NFhԎO nVifF WWr&|IESD?8 .?EBb[ zZSeϱn5 ($Ru-KtTP,@$?qEѰ.5*9)%kt/>}~~|G0Ƿ2}V>|jË;Lt'`?e Z B @c:=z=GpyLWէgX&0oo+=lw̷m5p.>}B5/r㺸6п<4*Xpy(Zqxj+<жgb ]n~wm}e(clfscx[6:.j{{ ȉ"t JRy>ܱsiټgKf\:B4*i ʪ"͠ >~p;XfCVxqmexF.+<\_؅{Ⱥ99ർ\><<:tlqQQpq֗,eӴur˾ISrZ6Wg3P8nb ƹT,Yg wm T|8i~`ba70-1t~#COj٩b?:+Ͽg,?<_xP4m?:X_y.Ͳ*쮭llmnn*-՝#+l8d&7M)fG |: (FxDBh~0U,f;o?՟>pƄ,b}&N<_3z>xuqxVmvU>.W'J14swg{{[/~˝ã׀X[ܱ88c^mnz _Mnm;$2~'O2@>i r(A#^NtX,KGMLAQ?X_? jf0/# @Xo:{byۈ}\- V) bvw?\x-0gVV6W=_{ k}uq8kWل/ڲhs|aA$+sh(L?Æ|.>]U=xiP~,.h9?0ob7>< 0<4+' ` c=W| ̯3OZw}_Z{ ͭ͵?|g@^<_][V?{eue g+@'˗flxn86Bd\hP(Ba1(,0y!T9#@'7'l<矦͵@W0$ OBϚFЇ6KFtH':Z(@@3z#7?~.%𿾾f *Fk F x6]ύ/#o!P<| wV@DnloCBZ!abNO$pTbQC={I;I)@ꚙT5#~37O~ߌ5՞V=Yݞ}#HHY 0 |{ /_O>*~L- ٲO} ӄ)` 3,p{P7ɺ6*𝶻 4b8L,YC Z v9:>xiʋ &1AjxV֔EޫkzZoVa\%WQb `e~i>}0 ?^c@D=tbߛ?/ KF[c)iaү `2f=loxa0 FX'kP3o>;HȑKB&?~ *ׁW݀}@㧏:O7_Y' s~$C BQQ|S߂?M #i:@.;bQuS c0e9ba9\4OQF-G`X񿹱V@_[35߼BR}LEcLX>#@(#(ݕ]AS* !P pg;Qoab[ݧO|߀?֥n58밣Ã!`'6fa>R4_ >,Eۭ6\vˁ %`2 Zcʋ55ΐ&B1C.H>xageOP5*|AĿ| g/_&oOo7P?ĿB?>{K?ނ?bB_.oxvwi Zѻsw&!vD{ܱe 5`?|rE1쀨l45] ~ a.Z%Ng1@Ka1,E ?)yc3HS%=  jApWoB$@w7z_撲/сOm?s_/_sC?h>$~W=߆ 4@쵺?_CDw?:n r:T2er)(z8.0u%lfč\0aU}T:\*S0E a]u,@Udad~dAMK}Up ?'@ $@dal݆F`FǍbA\,ăbi0 F:Pϧ|^ğdhJjox?*@p}fJ՚h靄IOVo íiX?0 Fw0ԯ]PC ͭCp~oPc\2xXpRL4dRZ^cl|U4݂䒏+5rqºxSxG8ف:02YL|1"\*H'?RI]+|^Yr>t,4X^H1O.;Ca6'x9qD{>%4zG4=XZ6hVwѧ5p#P8|i fT6ȥ@$'d"+jA;V7xaGQrLu%xCp:V^tBr\Q6mgy^/2V~x|K!A>a"( x"@BX2i na%X׃Ϸ b0>Px/_ ko-=A\ P";y@ܿF/{q1O=uPF38#ku3~,j/FY˝-:~3d<@c!CŒtRkTS'mz?x=!]ou:Մlj KN-J\7۵J%yn$LʕRƅoĠV"1V^r|\e`x4MoFOjB/S >z_PݑďOZ3g(y%G 6yyi1.U~V)v= nooJ@(,!˥|( td#d$U>mi2v]oJXU=_%>X%8pqBJ'i%𳻻vgpj85ϕJ` f ?b<Y42qeSLۂ^4O*>TO>PIX0S?D/mk$iEWWZ7H{T9c@$0(lYprT&xD]sr,K&#rifМ]UH(3E9QtuIl.(+>TP8=hBPbK''"[VIK"I+;NomAB>x)ch?'}^<&e5?C-- Ȏr7]ٸ}A0 Vz}y~ 0sD& ba^)HDsjsPK: ьWfw-Ur]DTČY!].7>A.<_ ?H4q0R²Ǣ@8c `"ˣ|X G/XM) 3`4 =daF~;å:[v~3<@=ƃ/7N7C?e؍ E%r h_rPv-tOQUcgEZw4:Czhǐ$'>vmV ik;j$!QpB>O 9 :d ϯGϷFP*'b"ƄL=7'wf fv~Ǝ7{*..hipRGGި,kgH o1:kY)%NE1pHU`P4M*nR9YUǍ[+EmwNF@깜jZzilYXsJz ~*YNY^<$0$3@|,{۴2ALʩ]=Yߛ{Ӿ9L>"7ZTtZm+%Ur<ؿVOaٲ7gN?_ VW8@ڴ)s5H @4Z] áigxqV{UcYJ`p*K9(kF!3+ .Gql>`8)AH %=a.Y0͠PN64·n; yo(zoxFy&JƣH0O!yÑp*ks8Ixe5P6Z.۝@50l(+?pЋoR\ȗ< N+R( Я`qG+.xTdۃQ?>~ioM6 :]~$O:k~s DZ O9^]:0å»[ۻ.TsSX: E  h`҂oR$ ?l_ I٣@9%5+ nRA&!TOc ]cVmnvfW%B_)A(' ENMVE;+z<Is˶zc7\ٙ1i~sսzBOXt ǣ^1Kus4 o\M%c|OFA0 `4hETݧYK!`q^)a$Y Q(iB.֕BSt{w˭fˉK6;>.|gu8c  jN4F)×o_? Ώ1~A_VJg} 8k҃ѣM^V~wҡT,T&H(o@l:?Uhӽ!@q<:;l[2){s ZZV.+ 謫J~eM//3&S d8Y\ԚW$'|LX , K<΁M͖@H(e8;WPKSfA o6OgzF{>cypx?tΛyi͵Qw!b_b}C.fh6FR'P& ?5~s:B*p#'tE <*e;vǠVi6+UʰiuOO+֩u8?MNr`h`!et졐2A-08ABMP6UI}p7vMy@dg?%_\]'_i8\ zab4'{u[nl> xXOcfOf7è7 ˔C tx6jhɣZBcZ9xM֫iReܠ*vB1ra(0Ϸb94gYEOMn0<2 0+jB 'OgkZ.d~]c4g4x0^|uaN+mmmQ.X]}17^EB~Yf)ʭVv%5.+AUܔwZz0.*U6,8bwG>?(}.ﻥ|PL_ 9,G蓳 XŦPGn# a? |<>߇O#[ ?_\ڇ}7Zm?&0#~_][ëwk[/WnC;^qwMeuH}`(}Z |p@0RΦǡ`0`{#˛qyC3N*jq #V,+c{ ")E7|,ᅩ1.65 ȨP۳5@ %b ( t෷cV~%oH9  `~18tüD=wM' ; s!ѲAivpB>̏Rz0P@~_fpysً+\UNND]XWd}@Ոf ˧uc|bl C!b0)Que&)7~=6~~oYӻ2Np3@?f9vdes{w%E ?LXl,DP@0(˃fPWenuxd IF\<_8H^T!!v,^`-UՉ#Ai&42i#t:d!cӭTE0kE0"[#Lg~g{ft—Qy L~щi_9ZVw;\iSp/;K9тlG5 x7v@i F1ݛu_0:vD?;ds8+V*~1 %RїX;s8G|2W<.1hKLJgp(B.Jds ÓZ*zd dǺfQPoRy9s~7čYg73b=7 'FoܬQy3G﻽Q❴Sxv7_a{BxS n+`(RqB;h0d*:n˝VOOK*q4RccoSA2P4ٟo$_2)pnFyM1Ęo:1nkEdY`6 E?+nZL|^`@q* EU}v ?}8΂nW⭻8j༯\NS?mcX[eu^[90x`?HT'Sd\ }X0끱HXF$y<,m?.H2߲!~SNl >@|{]Ɓ=WO; {_u-_ܢ(́]H4q\Kj|8Bp6% iLg|w[.=NHsIT$hџe^wdm\,SYb#$ >X@2 &#>1ߏv2?O=@N4 Fwqe~=4q덻?7gݿ.c(K!Nx ]׽H8UmAN+ijɯy5Eb A)O24'!/6Q6.3l>.c+ﵟqp|B/gRN -diTD^ϧ+ʤiJ`M/?#՛oAzA7 st^(ճr_MaK0 ,rO xkA3s|5/_<^bVGpeDw:'ppuki 䘣-Zߵ( 2ݧb1;\Ы)H O~@ylDhBw\:ɥSbkoD2bm۩T[|2nʅΊ"F!D汰Y(YWAdZhlxzg:vg|@lMO.>5>7;ofӵqQKؚiwڸ8k[y{́8],v4A(Uhm?h!!KO`/K Q,vǫ)hy$gteөt2 %ω36`Y? [bؔʥ|rcxsD,, qR( Ӷӏ_fg ҿәX4/d32s1WD oFr4Y)5]Nʎճ^Pk5k T:R8㗳Yq?${)ԡ AZ<"16.F#WzUi)H =,fSt*)8 ɱxİsAHq@AHO@>_·('ŒEHx69meHP0YVJPus<4Vˬ-\4|^3s%v Lگu`rxԮͳRۻlw.D<8 z#q`M 뺺WF`: <D"qįh{=I? ) %D&p;:lj29<({=dRԏ7lXl:$@@"G#Jb6b N95w-o9Q- +'`YՅ9Ih{D^8X@;jTakT/Rg Nx%06KU$IZ( lMY<@&(vABo<OtYuۭ~]Yix!'#I_E3!T0x>?rRX, A% {$'ӢUdIX9I+jwkJÏn܂&o> N|`b?"r/ᾋx2Q@z`Pb2,Tzz 2uZ:jG wn4 Vyε}j5YdøX "(ilD򨲇> ر L Df6Tܫ9 8E2/H@ߗߜaB~GK9l;.e9)4b6b@jJ'X]nϘ;P{no2>83sK?U/@/΀r]B 97^]vؙjvbt֬wy$(`e; Hvb */.9H .z덧PO#W` ,e5րdwpH@mԲl"@*6n0DF#q\΁ +d[Y=&?Y&_& 'ߚFj7k}p>Msxq0/iq;(  ]KG5Wjeq#HZ9޾ol"|qX,y7-οF0A 2<G߈^W}~ͩV0^RA `n47,?ꅩ߀}nH瓎q7|y(m:?{F?cʟθ5` NMy'Q0%g=Ao CvJ ?X5K+~872ßl9ʐ4 b&mߋm\$_E2FLE|xg!*(답}IQ Gm'zϸ滳xbJ_㠏Mw !NSV=`gW߼zB?`l b}X̼)?nYX&$GGGM3*n"S`ҡDۼE6!12X_7`8?P zʂZ?C)헻=Uk*IㄨS h HT_Ղ#,,bbZ=gZ=&p"gL~@'YSJOZo޾}ӻo^NʱYd4l9{ f;lmo@۾KFK95!Dzހaa5z=G c'<:hոH; Lk:+L H@ŴcNR9w>&)eG<)`_fG߬O^ho?2r5/tC`Z'|l7]@}6zݻo~|+<0tb7jΚ߭^ߎ"8.=kX,<bgQpQV[3 y@8R@#+J#F$^f @@8vkZG^;:߂psxoJq3c \;3*tKH}@%d4H}_VI^k"ܟ]tz {76}ȩA9y=-tqXNLhۍR:g^?'w> {$dh͍ͭC@X7A:AA,(2G.xG v_PU{g C/o~O-CPB)v& `9!xL5Fw3a~VV\+(&%vn;a4lwڤc^q: ]lO#2qӸWL%ǗAߛW7dhШ6NVZk\o3h{,/767-Nu:,vv[42NCX%Q -TEu2|nhwpuAJMN}?rjf T yH;H 68@<%DtD/VDubzŔJ @֠7C N[2wf⭿~ޏᗎ{LY+~'aqN~c\)^>fZMYѡ h , RV]ˉjq-"_c8 +R@GK~ ;(Q0[Dzھu2eֺ/KIT) @Fc u3n+,Ev7k{w= f3>{sg=|@rTJW:yב\ .۟~gS8iS&:氝^~|%}{mscANZ!&m8,VNeEbYfu{qcT{lA.QĄgq Drt@4%On>(/wù hL@4  2u"2IhO7&I'k)&,߸pwcdAOj9RO!ԓr~?~O?}4 5Vq3(_ݽ 8jZq`#l! y{$Qu}82ʀNjqxq/j~M8!|EBAXa)6>޷}} ۮ!~lpDpd1 'E`%pe-O_{5``{s `B~ϳFpp;.iZ>.߼/?}[ Wzcreak<і#&4i=m` +9᚛\!Zէ9V cO|A d*#B`(cq?d1bu(?/՟;;7)>veaEggߘBZ//GJ|h0?7݆-Go.;o_w.?:n,/ w! k;8# [Y(ǣ tI$ģ#A׼:!~l?ސHU:ai,L *dYOe# orhx#ic(, h5OJ@,M#qɳϧ9x?Ž =lTuUH{6mӻ${o[l+lɖ,Ye˖<2= BaS6-nR]f ! $ὝPxޏy/1+-; 9qHzzEq;d~abjao,s&˝.ޅX ~wl }ZieW T >Rku:9PxM)D} k?D J+Jm;\h_$?j+B|&=;,v5ߛN1{aew#vg jw"O$ԑj8ې_gЙ\ \&ɒbHb eR _<|LZiWEeʪB"5裦)#)xc\,?-UJwXşh%"@rsdHj4^-m456U@Y %d4lzvDK ^s_y;ffOOL/Mqklj_ԛy_.V0~}<˗H'Q猶og$R$AC BρWw,mΚpy@ed 7~P pit ~l62Y.f^ 9+DrXQЩ j***l?NZ3x2: R///r(312l?nprT&dm5o Ъc"(QeFW\KJ u\(`0dlm _Xl6Š\_)a |**! "J".#K4@PPQUQHg) R\5hUJ./@"]L*Ut kNxv#MYͦ&bͫ ZO*EdR(xSG>g|WrIB7V_A {|~G{F?z~ӉmIضu떾6mq&;hx co۰a.}v^N. [Ai4:{m&W(p*w_y\/ d mG$ K*[&KL+TDrZ!˕:}Y?L)7 ^;@?ZZ &61[* 4]bju!@ G?9٧xmrij|ngGa+#~ !80[?}O ?!EZ[/[] Gxz`+co>@ ixN _ڕ`ߙ@֭[!ԞէpN~+@E,,OШb t2!-*X? e9Dk *\*U+|P+?k[vN$~kY`W¬\Zes6Y+C!H|@*J9vV> $}57=5=31ƽw>w+7G(*iXb7%frKd}_{eLtnsGHev8I>BD&Ln݉C; O@m$%T*"ں`w4r ]~+aܜB8zn.Ng2.簘,WPQgiL+*tqsc& Rx 6/IJ|\"P(̔~/?0]ο#`d4iogT)Ȭ47$CNQـL?Hm,.%@ 1 |c';_\x_3333s_[8010=)?v{XϗBJvV5 uƂvWWWO<A ɾ;A'[ߗBOJ!@ Cjowzmx_7IJѺ+Xyge@Cg(t&nQ`1AYx0XxME X*a2|D%?6($mߗaW_2#$ ԙRDoPCum\+(.v /[{O|>=űPf×G?X\XfAXU{2ՉV_?c>ΎvWW=s;\]@8b7AЎ}$%߃E8n_$|"H ϥ19.Dn$̑ R_ .@ +"? ##~n@ PVa7ޏn،&Vn*úV ?3i *GJ}0P_w|{w_N,ǵ`g95D5T"톺n+#+:;z?yb7}8ܗ"5?>D B-b(s.s8Xz_aW^yW벳ooe Y2zyDphr ?0krsLCOQ@(ɥ<Ji`xjE^ֶ}VJmd̦&RIOkHW82 Z]@|61ȱ3z4_}-LN~drH? @puS,s']kD.[a$B@ 1c6< ٝpvVwWl<~NNֆl,"% ?|^oh9YYAf6ANE{B`i gb.(WH7n f*~ga#D'0iͦ&3D͵dVM5JE(PI v-STU[l^8<%Pv}YoE_4=8~zu@pP|$͟w{M8ʶ\~߾u+~$3,0AQd*kku u%VX b #oV Υ>?7#"yyvV#' , Wn)ȣ`0Hz'?5;=|p3J|e⹯B8x3uVnE|~P(`ooñX ʑ[!O!_"H8Thn؝N;3@Wj=P* ȃ)=t:QbxA7iH?:BL#cQ@=\dD)4 9nZq! ȅX[m,)$ֵ4MVoWGHUHS[\%%f;禁OOP@OEǖgOmOfqrGx$nz:6q]c1 ~y6[Cށ KPS>t, ?<bkksZ6njnP*ps@j?+p 68W^-NV'6Z#J:3 3Blk=^_1!Bi@>2z,hߛ'oA}7d(կM[ZfRAD.3S0j9}@ ndgwGO8@vT7s=3?0z<]AG1vw:ZNku0׺tf aQ DӉhX2bX}:dPNR/ay2Ұup .( t5caUZN4[#Q̜0~TS]ŰػգVb]-ߟBpZ"|zb{?d't>y_~pW$zW?i xq!qx|{Elp? 0XP\zT kw:mm͛v[skL.Ӽa{{B|J x20O'Tx3'-S)eT}W EOF`j5%'d`hk5R- jp1fx{f/'3l&_'*_'= '?~λޘ壏 1BG8q+⭭"8 @[w/;_`4ضcvl"1'(4͛pGhD;[l&=ǢG_ KHu{Q(r x|N"x.χo6ӾQ "R+45~.%~`ndZ["C]khjn y0I TjPEz?=:|d?53=6(v4|멗H8噉z"3ofΝzjw82Zvd"'ɈkE!_Q' ivxLpxFXo+;woK/H"=NrrfkdljijU^"piXCxBb1,G&fK STJ%~F+T_TH@*;!y<Ē2g`꘯Tkw]] ]wx@ɃT2`k4Z-׃k6g,@u 0x'ǿ>uġcGߟC/Ev_,Hf0V\{.M/;uؘ BP8)T*z"ƒ:/nZ}Qh2hyInٱD[_[@* wJ ņֆVW{+ea?W.c}Q|_A!+U ʅ\R$ 5QRpJ,*les>$!/-."6jmnil͖[+ X]vJ3Ne/7Nv8[O ѽGjjvn~sKs}d(F`u}JxPI_*vڮD@Bߣ0 ;-do۶m[q\IHA_<rvk}Ehkni6;ZL2IOOdil>X|ߙ BP$5jR"aJBx<@=\VQ/pP !AIJ.S+W}"?n ͒f67V ΅57֞?VKfCɘ0P$3A`?<8E*?3S /D"L?/@bG?S|5#7sg߿%Oƨ=^/&1[y޶Dr/s{A j_}AA{.}@괛x9b]ͭ]UO?  F.Q b R@&+4jm1ZV-HN%:}=JZ\J\7b%?THeI niihkb-Xb3Hl,&X`%Ť'g3S3 Ss3xѩ%vu|O$}z׼~=;7{g;x$ "t:Tw&CyS>(., Ԓ^=_ roŽNNo!mlSkۆVZqsco4<+ ϕY4y 0ClP(S.@uzozKxJ uj%^.5 Jjj*ueQqaAAF(@TK1HF}.A׮J.dLƺ X[W*ud(vUԭb?6\Ƣ_|4<GGBn=x3/$@{:~GDbcy1ynavhהdo_zD+htL?"/:(;[-)*F=qȠ,%w.] MU,pmumfTv6:쟮[E 7dqQS,>:98@Qyb[vP{:/ u UQtc^S\Zc6+K zD(ID duX#?r?ݻFw[2w"H9f477#fu7`Mo&Ma5П SoO z7NO|Qcmaѩ'0Is7'n{xlڻ-h B|xl%f:?2"u;-I"8 "4 DюnTV3Yp~ k2L-Zaru:OgWfeegC]>;%+\>KTbT@t1n Q?zSTz S嚂#(R\XS]i0@T% iꪷ'GGW`i]A  kjdZ_S"6 f5* }tg0v4a?ɫD؝/D1OwcuG_l}3>7;bة:TotOw,j ;LFX4yc"2 0ІnG+LƀXD>lA/Dv;Qm eM]f6} ?U4d7N[]@< cޤ0ҧ@RNK}q, fԴDWZo4꬝V[W:k suh"#%2.Ǔ`Q(Q hN+*+ը777 n)"PVK[3^/ëK?bvkf$`n74T܊fH=7gfP2~yO=hy^Da}M]x~*]>x?/{MFcۯ۲?Gl54䉸#@$!7|Aͥm#k%Xv[kqhk% &ܹ[`6ybFa6_>+g+]yźuxKcp"Dpj-1Z]N#[z\%bUAɨnS[d(|!mldMoiE )GVE5ͶVS_]f7ꑈ!˴`ONZ]0 qq( kn3X o{>edm M YP1b$sQ\CTB 5x4F+"UxcZĻ_ņb_\=9$X(gMN2B@[M(&VZWjd@k6 K Lt,N]J'6Ţלx?`uG HFo=r*αюRÏ..M^:uОrʶX7 ™}(B~8b=݈eH4ݝnϞU4P3Dh*=^Q uzaUiM&M_uW љ\ƢB1 *\{>w:(p(XMb]-.ւzbIIjy|Ugdth.4V{+vW pbOմj5yʚEh-/&^'zG:^?hj`㣣8 rs`2ه_š^O[X;Fඝ,Oc]7st{q46w5C/ꋳ~ݝNp,3X؋/km[ܭFPc"9 WfXyt&n"DhB.3*\Rb`5M%X!oTQ4{A_F݃VIKcܰj3M1 ęG^{sb'gny^moC4Sq3̯}ajGHowH O>fqam}6}p8NXHcL~e<.HՃg\}Fk h؛ vw*J +tzV[%r-5Ej9w\ZYcQS/Tϓ},f.bo.Cc2\zN^ͼ˕$ 9"LIUyܩEj?Xc" RVYa*{gth{6<h:2HfOdMXMDd57=&fHoz}v楟y8 ЃS~9p$myҲG^ѩ?sg~d7ۮC!7ND0Om͠wǂ!L-]N_{<Ί_(JO"~wkʆVaN -ME*%Va\F~>-% &w _ @.NKD|A6w1=_&QʅX_`XX)ʔ:BS x":/SjU;σXDB/Y%j=[ ?fc}eifnhlnj_ 'SCadNCX-ƫ??Z4 AM9쏆5ן~3: )Zߝslyifjia_?]W_mឮt8_7IZ~qg_J1\T/wb!_ uvO,tzpc{k}ƲzIзx ^Ij(T* ?I\qmѤ76H/*"T|<& X]<糹 V`Ub.tU=*4J"X5R@ _+QEB>|T+/l/saQ^L9T7F 3+bttxM:[};c;' D#FxhSW}p2gf_L޲ꡛ6D&X2N d? t=MTD;sokCݷgVLDN1xbr+MFSinj])#h6des|\)D#3@Ir]RVybXB4Mqr߅ww#[+}8 ʂSE3X$5+MQԒxtױ'؉X"v`?v͗ Bm{ =Zd[mv0wJF_[z}yairo?x\=|-[GB=P4ݛFc{ 8NxiN?kohKu57WotzmTşjlmm/R՗ ؖK$\6 PhlTfnj/]|''b&~=y I6G,I\@@9-ꀐ/)= @%i2ZK)Jq̿Ƹ_3:fokdD[MŴ,͂fo^V@s=ag܂Xă8x7|u= ?HLtܞϏ C\{iށOƀ//]^͗OMz7n3b>tX HXCODrpX4ՃE-w4Cή.j#Z͈~É}7؀0it >Fnmr[KK!p̬V'P-_"Nm OnNVV*/0)Ć+2!R5HJe G;?:]^+ |^wq#p|Z?` ldTKA^^ Dd6fu,p%m<gg`A÷O59R` Gf-0%}2YXX>|Ϝuvx+c6űV#ޟ:AlX>\5n5ZʍUFۍm6 K_J+D\΅'Me[Yn(.H"V}%\&vr+|.Igry|1| DE.@X9':UKjR"HRN@ّIC$sC8Jۅsg;8ɞ}ӱ_?JI](LS/`rB0:xMmx̣f_v:H/7U*U$}<`|6a~X*h{L-CD n 8LɧL6k?,|?Bx"$/@%C-^rQԚ\Pn\o!ػmgZ© qV4SgcdD|O?foܑ-݉Wg&hh8 N $AUlC2tvqsk}0oOϝ[:7+g:pGvܗ^ޱ  t#@;Vlcuetf+-PkjRaQ>氩 ~.Qdl4v:,N3vQ$B K9r0 `2sL`<1^oq柯@% 1; 9}"]ab$3sU/wRN[-j?uq'C9={Xzcn3J  mm!P})r|dysp24\ÕNn'YP(xb3@h<+_?|^?HP&Z-Un&OÚ LWOM9139 co f' nD/=x,M8 '>Jťg&uDړ9]Lh0D|evv1n*-+z6Gˁ@XI0e>8lB!..q`Y TU같:JJJ RrDVXI.L"<8ΟKc X>3=>9uzD:Hx=sdW=ӯOD_x?eO?m퇿K5G¿Y}Cƻ:}ͽ)^ҙR U@*` =8wv95y˱SbV63_~a/N<<9wwoG_^>sꤷ&NR'H&fr[[fb9LrR9 &(\2= +LƦE.RZVZy$ (*+)ժ aӨ |'Zb )Va%!pD(V:!}a!& /-+nuy9<{uf Jy&/,@#R͛32ǧ'':>uRx*L6K'B>9ucV 0[_;[Sm -<9Y8;w?{_jhi ݛi&EB2\-*()+sx{HVc1VUk"6Agr!TGM+4$BIgw[ۜP@ iw5ltX%L&bg M|A p Ĺ@&QjZ>VFG.92xY ?~@lB`"^4! lʬ\]S3CSc':3650qh:}jϸ`7uZMcDd胯'#_  ;[X@Sǎ^}sǞ=1}$15K|t0q_GWJե]di3)rgqImd\%!C@565]mM6w? U ب+(JKud|D ngcU$`  YR$98M(K\MU/(?4 pwC R_ -xûDwH7usJ 斗}26WeOL\Vd4Uu;fF [QA%2C$ 044.a` &htRHB\'S"f6-j-ÙN^{m@|ܲAfoATo?}_N޵-mQ~/"x"AL'4h#s%S}}$K gɷwtӵv=P$$q:Itu"'b1_{?`fwW'nrF'1i)Py|+Q*8GdR/Q)$dTS8& nWKKGkyEq,hHDR9qp?Иt6 |6 wRUNLыlgP- ?nn)cg˛m8 a2VgdcSS |&''fׁj `gԆ2a6?brZ=WA.E vwf<X,h6֞O_3m,LO#xv1}/v%{>=q dṿ%7~@"y쭭ɾg_?;4=0?^{lyh뷧:q/E\x>c;MMT~g{[C t x|݅\|a\Z-`VO\pp3!Ьjkih,WC5 )  p+RH,O' ^re5Od1'3zF6dumF.f/ ?v]}NcQ-:z^Ł @k&7cgƾ<>ܿs^;0?=95=59<o<KFޘ À;[B)}{dx矍933}GnƇwܰ%UD⩾ Ma(][@͍N[FZF&r| o<4OUIEB5ZxLjsicemX+*QMV.ܽD*a>$A+#!r^+֭e2ք0.s9\EpX\BY.{{02c&r={ "ҤʣUvSf0v{o51V8ڿsdphz,.|yro[T*xfdN`td୉[t{ˡoN/..|wc[~9ƭqSz/ 'T7 +"ݭյ u ]f3stl.TaiUaeHPAdTD[;2J j%Z1v(-($V__$H4 8(*""}\lc "&x<)\W J,Db|??eM >{.{*[-!Aê;&߰ML:[G8zpdob^2 bPHuMNEӅըr!R -/p ~KJpK۹RfSu5:UJK\`"CUMu| 0dr|Ϡ x>_(aY"@ uճFvWik./۷owU*8?\Us kuU+pz&&&'&f&>41k]> ]^> @$O[/sg.߾:k(/5=Ji4a /HPVѷRkv8Ld.r5ccE#p[FFw ՛Kӄ ̟|ߗ~Gp= c#ЇgDz?yKSs.3K~ CT@~ӽhR!7߁P`464Y݁T8jjFW@+RkI/ TܾLBA8Wt.|T EzTf{*JE miYIiQ!D*/7(H!}S"#PpgNvN<ވqh#r깏?gpDrUWßUYV`IG+9&sј9V3ufH@xrbrniF/"g3/0p@( \NxsSsKK>kg~p+flH'qDЉ. V.o}m5j(hW @\N ^x0˦ur ( w},yy RGTa8Z28P/26BPSBT VW O@^nuYyt4$D ϸ/Shێ|g G{.cO} 7Թ"$D̎?853?s7W=tpbq~zz~nvn1}h$֗Lz_iT*> KcrӁ;wdk$GF~ń[m]@GY.p@4r!u99C/iUdɖT(eяOZ>S/S.R- rnGUeUUE/UjNaPfkb @DP^Vj( CåPu7Ť1>X6'k=KLh>|\e|v#n] C2A8ieklm& F*3gWo(߮TNV÷=7'6J?,?HB~ O.-<W -8Mb=qtIVWO0v!h8cVHٹYr`}c.B.ْ+p"O0|6Ou9,J_ S$%F::MNwmeeuUY!ʎZWӗHXTeeeZ%Ib Yt:^}N.3 2enjBU~ȮbF.{Med}@בS*Oݗy7f]CAh %dj'hsV%S3K_-ɁݣÃW=Źٹ'J>0@4>|svy~.CO>s7x`h:ERc8^{{w {=h*ըHKBa .?‘ @B.G.j!0P+*JnM.ΧlWhF찙[;RH.(,,*իز/&_,/WTl,JI <Fs`<:.#d {e։R9ԺMO][(q?&ԻxϪ#>Qyp#Oa9-,s\6uϟZ>vu_C807???71oGn<ށqǺ .*[^ڦ*jZ].ɪmz' BI !C3mm\Ի 97|3 llaKr;333-X[|tvf ?3}~{Ow{5wwZmAoAok/^XWSSKg++ M,4*o 0FYe M*qU+p,:$qZ2>H!"XL)x=;|m~xV5ĝG@WgM D"@O旗(o;#c%%bO~~nr@5 r Ics߹+ְf;/65=;znnzj^?ͭw}[7l+讇܄&GQF2]tJ _JF)qd  b"h2"\,2#ΖtJ\ /\k{V,+.[4db-O ")(ulgFB@x= g^> o)I$ HuArJ"Rcp׾w 7~7u׶V-_-$UTj p/VW-)Wm7cCx?:1>:26=|= _VOo06:9;SM>Ѷf&gGgO>_ݷM[+`w R_p.PSYSء>-ir%%PuQ.&K^}Pe2(  8azresJek>pKK4i9L;nw DUm^\& I?=%J VE]yo?_NgFW:޿qݚKJ â"fa8)ŎӒyx!›:^|?N&1`l|l|bldlj{:k >"̫kG}zaj8nm w'XhkF:JPi%jp`]]] .P]Uw֣ Vh4:\ը\ق+{Ta-fKɔjJEXt ÃA^o O*X.clp4t<e Rm< |B-#2}Zzfw2]NFIq\@@&!)$lzJ\(‚`Tjz]o5o.x'6?@7~ ( ]tzs2BLMJJ *zw`|SB$CҹO'v~j`O~Swn|GiE{C$ 7=u0W|;393=O|6jӷmz{s[8F 576]v^SYUgЧ׫dj7-iTj IL4[&^e<6+pR45F"{ٹ0`Ԫe840rBtVH PL!WYEL3dFgF!$S E-%k f{o/:埋k~7/?U`"!7 H$|p|z N88s>7533g5:m3AftXG,D8uu+kk+rL@A Rq^RTyh/JL u@ZlywkZ v%54r.|.݃kZt@8lYY^IוsL$*}՚BlwJ,&!x1(G2墲RanvDڅdB&HK$.$g/WZޤz?Ϸz_3~/ 3A{)On 0^^Ajni& %Em;95y bp? A`oˋ;Gg&&'&&vB/>{{nMMtuDcH2@mEAуzJXL:[%BKƗ2 R!>~@*()Z^1Q΍BKAAY<<,O%y\1e9H2RaR3 !x6L"!5gn|5`rr¢ĤgQ)V3Zܿf}`2OFMbeňED୒F1䗖ys巚[W--QP3#0<1;Pw_o;9sa|Nȷ.饽g|߭<#­X,P <HT-q_ D)1: HE b|~CX`0A?n 0_  OA?K@a8KK 2hX^ pS'C3cpF/,Mxu0^˿:? 0`#óϾyշwuuHgwowGlh<i/0 iH8t~ɘ4Zr2[|i- )@Hnr9]TCZꁟj Wb>h Ip@"Vg4MG~Ozd_˾hID ~x x;Zۂ@ەa۴-++yű#?၈?=;B@[>wtrh}O}|{xdekz!`~yY3dl+@śn<%~!R[ql =u'$&ӰՎ+N\bgIۭj!NAZ`qa3UBjoKID,frYee'aexqsktoÆwZϺu }r*X |57=H$jpH?α10>{<\[Ӱ{~{v;Oޱ;"> @ w7hpPPQB+W._@-Y2yJ'SI_g4Z}j ݝv9f7NGJP,J@.ڱB]9r7O:>㭞7S7n ` 6._+;GFF&Ϗ݆f[}^;7qoo{'ߗ[ó2&'Oahzׇ-۰^R#~plb-}lsؤL\Z@ UಂA"aIh*|>+"OLxRRZ]DsM$"5qkZ^Eq 1^327nݞ1xDHO$Yʔ}ŀQ܎Ư<ɦ?ug~7n#3AMc+ٳxl J-WlP"ϗ3W8F'ύLo߲ꈄbh6T".ʩXAPX0 :/V *PȘTzrBR2o@`3b}Iԭ~f( Bg\T*l>_^~nIroYE*dT"KfefUR!ciH*ӨL@lbR.DMHewUk"O3?B{ |×Uuѕe_,ݿ=o^u9^_y}YM\yN ;Wg>5<ٻv#Yuz3>tH!#sZNdMZi&hL  IF%'%qTB.g(T[6 ue|nxxޛ׬(UTz] ԔcNgâ0< %256!St%]F %)&"/b12XJXh1IJf;wȧ[}'gc2O|V>7j >GFGG&gak%P@uI>pX8=n˻μӹuw3\kFMt;_}>ٍӻh|jPeHHBYBǕ]kFn%JAY"OFr=ӝfاBsxX)WUVWAl=3m1 ANt!8Dgqge,ZAUţ'%pcc?$I4OeP lYlcyo-%s^?6οٰ~`~|($1 ?Hk,Pd3;?y73plvn߮E#7@ ެ'wM,p^sֵ7V1Qf 8/#CM qW1 Xmi6FK8r1O@MrrIMHJБ?X nvmVR$96AЧh,!}XuoyMEaAՒ쬬l'!Vi">oT:HE3q(f$'RQtIb$.^ 'O_9^7Gwn]?y~m$ /|,B ] Z6{>o><=G`fG"S{@%p?祍@8t xV_QxsKz_=:71;9559w\iG&nr>vء&ٰZ\g'1!O=}qߗ(l+3[PTn2 Ӓ.J,SZ?1Jlǥhl`2\_hq>S >ǰjIaiuiVnNf.H61`&BST0ݹٙ_A/(H`a]7`_!#!rf BYx1,a2;ǎ]mߦA! -)(#A q0# ?>N(?LC82N3uZޠ [[/dy bDO8y;9_p"G#ۿlU3|PǩCm徕}?љ s3'޽5WA@(԰x }|HHPM$:""<8"/3@"0:bBl&gFzVvv;ۓePB,Z'ݠIޖ悿ґE.,62MVA@X#oɪ_Vl$G̘.{oߡpw psO|o/񹹹 S^-@!@-ZF}s7q!JC &ڸ"l,j' yl. Ɇ`l\#L* eQE4ܪ5H/qDTF4y ҆M:E0ò<ڏe:Hz3 x?˛q?99eәxnS26'PS@]) p-.GzNfGdՆ1oz6]Wӆz#?}t,̃p5H?䗻=ʎfFp46C8 kV[Rdrq&JK* ,#l2 !h*+Y+;;,d˄. z@@,P,^!E`G$jC^.`qg!H&_J^ò22@AZH3!jɰ)IT%rT[11 ;Kz=ލb1Wqyr^9l`Z->3Jo6 5D D ߨFw(mNŨbK+0 >d:9^ŸWU#iNN h%J jJFON‘;6bݙn͖jکc0Q $TѐolXVW—R `:wxuˋKUFĄD*R ߧ 9]쇏>zp:UR3 6w?f_m;\wtw/~Pf{O9Ҵ[O>W>nv|lPH !v|>9ʪ5K xpL^ ~,٦ aWl<;c`}fGuvÕ*r9DTh(,++u@R @@AcqqSv;Ӭ6O&2-bueՒJ\IBd:i)4,s$lt:,]nU* 灙< b;Yuۏ=vZ7%qoápc_7/O_%4yUhGNt o일071yO^lD\7Hρ|kw %9tj-XJ<ѬWHS*L W@AfCpͩz}xiyyYyi 3XEfڙYnM-dq]Kh8|(`YR_Q]U|V-bRUE|B`'?WIHp) @j1 P7pqx {r3nOc=+? D _PmP{c}se䉦p$ܷ PS']_wsvr'{U]IO]O{`uQĶ~_,@KtRD)sIWx} o&+LjW˥b kFCSZZRV^QZQ?\*59q¤d2pfdfda!iQKKezjJMŶ= ]Z\XW|uJ1Hw^aC*̣o:1"׊?D '+ҀIvNݗ;;kd'pm_ 7Y_y5=t#ĂƧoxjA5[!7{Ͷ;>ɫ/}t CoAѻ_~qUwYH&ҩ[~q$CdTx"L ʍߨW*R! tonǽo^2R̤'',X 6EKtWnQ!<ҹT; +E'a3h&س WT-]k|77;+;O=וnQ\l"/'#؟IPd`|$~B.W7F`6jr rEŞ,?|˲p(L!W ,^,Ix32r2VCbYWk4Yٷ-WE!׷D?7_~m_O~?79݅3=6tїwް,JLf \:\ 05?\CB֤_j L |DC6J9egAϦKDd M!ݠT)̬LQ&b,@B^*1RFQ\'PϸfiQq];w0M'& e*ZaZbr<o T$%Q!T*`6 ;B- |gC}x7_ L~{O_3|*HLf)5;555#sꣃ«VSMb*%9"T)xyb zlspvͤ4fs!A+{&A-ӫ_ $Qi2B@a1٤#2CE̗j3X|5Tfg!3T.wZ9REڌ=@XZrSYFHf[U0chԛƵY9Ϗ=q5gunF?>n.N@05tl?sF@E1DOh#Ummm:>g{鉑s#}ϹzK3i 1=3DA /N""F!IC` z"c6ױ?y7(ľ-pOFb;Nlmh{g쉖p$ fϾع.bۓ$ȡ M{dwO<+bv ݟK J eE@&\#K`Bk>p[ݪ3TpQdJWQ٢>0_ gK r33 &K F-PNdž\6@jT?؃o*C䲩Ei\!ؕ ]YI .@œ"?f́SDzE2PAWC|V1jE]eE&e`}ў>JJꖕ灹oUM+]D'# r%;B@p q5 =) dLf\n˫ԉo}jkzu\?7nY]6Lk~}ρ[ڀꞝx# R{ :674G?ɏuE7z]+бm˳3#=}-T簩8$ 21 D pK=%q?{*T,|1Ԛ,F\:\kI+*)X4bԪd9v.^DK,).,,.,4Xl I(H2!+E+-}g׮=S󎵰{~O2/+ D9@PqFh'Sq9>޽N<}p5ukO\7ipKWI$B߇m E"ێGo{;{gщ ϝٽo̶hww l>65=r960Բ`UZŠ1))<u<R2t!e=1Ǘ⸍JVjp#>nl_RZVTtBɨk$ȴ&P$T9/)̵xli( X4fGzv'7'Ͱ9 O(FI¥Kʫ;}j5VD!yb%kiN3AS16b8.?7S'Μ}aݵrk˾֭[ j|ePk[;Ȯw~nع_{Omvi8*gSSsO<LJ66,-^XfX4\ɛ) ~A[01Qʅ9HZlƎt(PD) hu{|%KxlǗIVi"O~ (Ʈ|.@2LφWs piD|e咲_x_軶@З-hR"1g}>9%Qj=sr!=s-7 v^ԗy3|4һ-[6c@,58zk{=}boO}gG'''z~虦`4j 8ݻOKW_LNMi욪Ee6_Y)TZ {>!i`;>Nlͬ u!㐀C+ىS/LhT>+R"r%N+,*Ul`H LORxI35e+7ݽks|T;+(.GIgMN[_;Iz߃ b~~u5~@]Ѽ{3װE[lF'o}{dvtb_{/h b'߉FkP|׹17=61|W幕˖/km-LsLðlR,#PJNJpȏJH!>K8!)UzLxLzlPIB^SX BKSMF8<8=N@sr*8|<>nơs`*˗?޷k뿦{!,K}TFP`y8PBq *v~zx ?sОu?,\Gj_?׷?[o7?E;WopaοHiGCh;ps;ۣPbsّ,)ȮZZ9ߙwdD'53t*٘ʱDZER!b%ȝ\ٙif֫"Lm04jK%Yt4THz5xDVb(;+=#;ۥ1L.N]֑ Jly5u?f% OO>dJCDQru ʈ r?=}kxmha-?9n-϶n'^hk[ÿi wĢuZ}'okE;9% 7?0qW0 D9wsC3_^Q^˭(ͯjM),&3Bn9B-0G1E&P.JJNER &)U$77=JO[Qm @$34oYE&0HDq- YߜYT)3&f,r+ T>% }C}x;P S>R2b%bS*\q\i".nRhpyϝvhf4_#Ҿq%p4X6l猬w֖h$`H=-Hiуkcgϝ|%EE+*JV6eMv#QT/MVzjeB Hp'2N,@( ֔(kVc%`B2_^^RIROX`edYll2_?f+-`TSfxvO{e0 t:q- UpCErdR&OWsxJqr=š/~{z5꺬dƀ7o " 8_cM{hw`M?FM/O?lzu`9}];w%eKVָF*ɢ,\Ywd\!vdt(Dr=. d9L*y!+ FB+&**+K LM^DMarR&-'sqH0bC5ׯ(+nޯwraaHu#~\NHzeⷒR ͉]*8ow{|O7*_mjǟּ?L0 OK붉gZ@ EǏ74p(6<8?;b7 ~?wU,+/t )t&r˂$J2KiuPk:YZyx4 XǑp:W[\Ur5|e2125eEžLF!J) XggO~~]ɡX  2EWEpՒ| osRڳؿ{tq?8vFaix:А# j]@DEp1|gOyzb$3x->xr0M͑m;?~qz0ƷE17G>{AtwbomtX,T7{g\o-*+W,+7.w ,H[j|;.$I@<Ũ2" ϗ` OP8ZPUP^ejTtPeay "S{ F44vuwW3]MKw߹{s@$ݾviZʠQ80TpT",: J @ٝb3cyQ}gNzL.SP\[.=<6_iй]]|>І -4q`84;z`m[,m~1tO39_b+7S"}JEKj8f؟0]\6GhqM%!6ӣ0/41c^cW$aNSTWRqYtJR 2 Jsח6#s{8KrpM}FewUWWw#1W,)رw׮]c{ōO_K4FA3/;K PD iTW(U@8B??wȫ6]?~|6\Ŀep9(0tޞǎlmE5 {G0 }A8ֆ?M> ߞy;muUŒ%^ʕEd$@áy 9Y.|%.P46G 8|)Y$P|GNJkl{|_u:‚ǗJE\erDi9vE3#mRݳ DPo,k*/ix]xxgw( H5j8Ƹgc*[fFMZj;3 $N=piFs?oe_ >h;phK?Fo b)!)ɴfR pGAi!nKIܿd8j,}{L;~Ooz|%fuң7*BiY$j"IPP\to2x?ރk?=;kʧ?\6x@iuhϚ`@=(X67m P YZT(/ͭXH)Rp8ɠnl& "q,(-(as~ 53 dzWNäwWBu6ޘrS-K\ L¤SnS~"/T*MXowUϪbTU6v3z X/ofX0]~1*`e pQ>`NXt2dcCCSX{s`㏌3>|Cgmo p$򙙷HceǞ!`M8i-C5^o g(/8j&`ЩTc2 Wيe˗.-78G&Bh`C7596/8!ҨƏ˶ }kFj! %-='+e HY!?S(?Zgy`/J*ˊjfI@xz}&p?|4,0PҦCנ<Fc*YG yϜޭ7paW.K9#v| 7>{?Vw͝=?g+h҆,/m&'!di}kw~P\\_[UWLSY)l&H+ ,`` x|&jB0K592l5\BRP r:ԉ2V3<,\$ha&Mf7uvqw hY^Wx޸5ZMF2xet>n̶I< j9xyKdI|9GGq  y,%H4y", DFtT7шΡ!  PP>l9 xR|2"";3$ 痏 >r(TBk9&(׵K'¿^BŤwxKpD1AB` 1@_d D$ b9q4Q}vM տa[ s<s)6d2Y߼ۚ v6쯸(fE͟c4C!~CnZEtkw.*(**}1xr]grV\tY\:8'|`?bD<"plc @8C':[WA9dCqhQ5M(3! "D゠'ǐc2gÔo~MdCêgn<ݵ?ުI ]An CP:KI]YB au\b GgBD`Bny3:ROH@K{`{xGO^AM5Mfb~z~\LYt-gҺ0dMye+ϛS\\U[ֽ{UoPsVLʲ8d21'$ Ԁ@A/2Z{EaXD!X#^^(rr4d>~A(ǂBO`L!OZ + 쨪,1 u,l%=]uD@)FSRh a\t  H@9$0.?x*_9,isw]lsNKkXP7ڪʺިYLRmVǥ"f?/ au!adVld; 4/?ٍ9ݍ?~ Q 1ūDH( >0b"QBHH|* _a0[y.=wÅͣ'^챯͍0*mrJɘ]ڲOy*\WVy&m\h.7_xAnfמ9՝}oݺ_&fK̮l%G$!H!3C| "UT >~>ӧ= iO0"~POQ`B&F0P]C\+)vmރS ]^9*w2 50:4G{_S)JaRr?5)8P a# (bn\x0b Ptz9h:eL'3Xo M+L]U;7/7˙9"} ծ;JNj+*.ϟ3 EA/TMZa)Ud"){fd p>фjV7H٠5mʓSPfiA/5s1VX%Pa~!VQ9DQ)_sq_UjdZVGǁ.tS_W7>O!Oc`Zu~7.Oੇ{}}H!AZ֜ٳW>hh}џzF9=3 3WBM-ṋ^;ҔW~̥|^ t3 /oMaQIi޽9xuLALQ3Sp?PD0 t |VŏnȩOXX !G&C&a_. *? ^XR?Am?Q(%$cD@|TZ+f4d׵}OU׍s} T&2{:NDCē)Qᡁ~[  L&2K LUkY_x̥K.M?$>,k7r\]^re"W[{X^ոkmiLe|qucAIqys=e:kՒ,'0Pɔ(D}gb`ɓ )?9:,MG EYӼAz?~"G"x $UQn;zC#"pq1RWIEY8a^^lB0NƙɁ]{Pp 6 ϡoA GG P@id!?!QH !Fߔ61[r/k! mcm z'V_AW^;k-i1pB'Wn]xrJtžg_WKj񯯯b *× ( #EaKR>** I/RRi{Νq_*,:Zkl 0)0g*;3 $,GT>0|``>33v(َ.BaK@`[~|#>ϷVVBSǣtڦP5z+ @O@ n4kjݧLFbL d` eI$H%q8r!A8(C{ C_xٞM)&<1-)^O7 |;З's m" tNuΟ7՟ϟ`Y]]]kozww_ۋD6=3嫌2{r( U`le`X8 hF&CQE" 'tbb|,15K({v~( ^YŘK*-YC#ȱa T?Il_3T0f%0<$+4,#hDZdɅFpDbfv7Gov?՛{~~qGŋhFOnlCHPv֞R!N"Y2,0( "qQA5єd:Ãr zSg,to oƿÿ)Ï 6ˊ\ћko׽v(\Ձjngdf.=_TVY?n^)K-,=֫ɑO>ot@z1$8/c@PtO0h>6DɤbtXp@0c:p7( }^9c_UnPjT:6oȬ7=\]2{#.tZ#eaf3YTv@?3BLʈ B>F! `Z(o/lzg\GwqjlXd²% hֶe^{seŅf&)Knw8b;mYoܽu?8FR:&O {nQ]-(8=ccbȄ( 䢋5!xDp憢{^{TcI1kqG|Gaq,OvM# yj}kȅTZ 2p pGԄ8"&@N^H `TL v!/7[/]8}lϲEjsTֱC:{^O#%DEŊrFmYS6n[Cт.f z}ڢ-njM3hvKkR>3O14(<00za7 $`ʓG1l0"128 Ë6aAD$.61-̇>'¿&K Itl82Yf}2;Hb!a??) P'K 6% kFYTDP1ՖS>hjhm< `|+ATyyW~<ƶ=u '㵭_^XTЀ(!zlo#p(3$%AT{<-?DRU#cAz.ݾV ݯxF6'`XlA_1 :DMM dL*D'(+ ,m`,,Sb_YϞa3| cB`244G%!/2_?U&4Tʹ=(;} PWЧkpdSN jWٱ׻:{Q׋rK-P}NqitriMG#?00x+;Z*Ֆfɳ2N@!8K%4fCG/:""C#"qتuLlGpA$R%uqTUXU.lu~i޸)h񿮾J+ }i:<RfwJB dLFB?,.<)H]?n&~ech]Y6Y=]>64b?6s)p9T'dЩTG DBYx<pBl *<>_,ACVLi/;}ǟjxN{?`Ag*5QGۏ.kWnoX&h~,g{n_VV3z>+*4JtEA#/.̽Ш("ɠBK`q~' ;I>b|Z'j5X /'n; xߩV5kG&#N]v2! "_R OŽ BK0M!xBTXhhPH r:>o34ii{;J0Ŝ~ $Y6~zHnG\hz_XQRRQ*ɓ8(e+MP1X&ǔ5ZΚa~ܱg`&lc g/~^ֹ{ Lƒ{Z1;]7RYx7N}JE\zsUqC4vNmTLA?e~{YB"`rDJ\bLu$SL3|*!QD2$,@gl_Y&~een]JR9ijrP ݣZ? x\+4O51X _P$:"(?TCDyl|p}ľ3?< p.LCFp׾}gzY8:#N}2b0F]t4_A&>@Q>):7(EJԀ9|UX@km=vSVwO'|т}j{QV;1Ίof5v2Uܵ/e]N=[1 OƵН[vr "QM۳rR)qSɑ`PՏ3~#ci\@ C&!dBf95:0*L=Jtv ܟa W׏a#@f/`8 i ˈ|9VN(.EM EzZՖ^mxHhk4wcQ?&xJ}XosĿf~nbzn(Ѥ_TXV&%/u:ެ_םn p;}?|bFYrÕC񑑡^3b3^07J\B\|tx(? ݀ i =xe^y\ea*=e<a| _9=mJHSao]]nocC sLJBǺM3Dć@ GMJ#2BJ:j/s5g-n1G=813/^:HiԊeKo]/:bs8mO?ߝ? fYb!3f 0R,4hPg$!jCOVOSMMlwCKmZQkS9.ΔYՅ[4,myRrL0DMi l bkCP24m#GO]6lۖu`/wn C~<爙ٯWݽ@Qe6_^\fH?ܕΜ>z*W vyl]/媵:0Ӥr>>>eӡmXIIh{%օA/Xdx vIdrvv BBǏUUnWSUa}Ԗzqeuμowuwq# <>KGp RYV060iR`GPDXph8 @x Rjl/{46.h|~O5u,]x,0ƿc1cJ'Uhdw(,-E]>1W{{/KEՓ{\Y9eקV5äs!B 5ր^?FF@/0j$k>xy?Ue ~UM b|5n72Z0237޿ :>a y禺}NKfb@:l2IR0ΊC|'O#0Ԁ%2)sfg:k6?[[e<ݲdߨ/dzTa=~= 2yeťvܼ k]L#ŧw?ɗ o2kVn@̧a'-я!cͽQQ'&]Vfc=鏇՞ѥ\ Ҡ`LӤe,;سמE? |d r6IGy f2ܯl"_1"W{9z^MMɲ!=Y!0g1VE6@ ,=:\4Z21Cð qb% 贆'N?ab=eiKIemկnƧ>@o{N18rnG_\j.,(zdzC-[^R<*/_C!`+(V:D(ϟ@B-ݨ;5f C沯^XxF4H _2zſbo1?j %,Qxhww`y^FiQϦ"mC5$,0 .BJku4}c'Nzy//-||3+^}~"c$B\W~\m<7︻I#pW{_-cXp(L]Ɗ5j'FɕO&PQa>SM>}t(q6 cXҪ>X5Dtpӳ2j} |2=N޾jO PAY?Şhb7 <0/[p6}|B4hI3}'\7pympͭ(ȍWLe2i%ƬPCC"DGO:u)#0wOs1#Yve0//wS}(Qsç>Ohzˑ w }/1ld TOER |)dR4PTrB ;=s/dbZ"-]#44,{a[7~ѽcE{gLjOG^ &d50y<ֳ/R/xqbAG<{ aͷ(I/,qpyy2JJdlX`)dbDHxǟ@PǶbQRlCk_3 (_o`rf5秇P8@S~ΆGCL C c0S2!A_;@E y PW;x+K4*F㓩x"[ Q:y7i'f'FxѽC BFmUqP I0=ôWX]ZҊ<]YTs&D2E#4T{y 6;RWwMX|7.=eEEg83,j壐^}meݽ`ujԩdX,7pXcbxaᑄ$+`\_g2g:><XX)qqIx|tD0A`kZ ^tG m1v1X9GIP;[&8UVB)-W^Y"yՅ%e-+WV`m0}SVm)˔)5<ͨg: 1O ؔP #+@)>4<[U9pW:d`CO Wg9ЇX@s"Xytwqa^XJJ%a]Dx$.&1@L  V7GPHIca!hWMnwɝΥ}Hǎߠi*Gq>c rT.fNkIeRҨҿ5t.,-+-ч̌tRQ+fj !Ƒ Ąؐ)OL> faɚC+zzdN{š,. y%kFhD<`?:q$mr!e brꫥ):&1F!G2j^mwmP vK,@ +޷ :^߲7jY).++E?#w}3r#t_`A%tL OL ĴӐ V3K=!U7IkOc3k Ggtlñ=Ӷp7롐Ä@$|-Lm<c"}0(@ P-txMC"$*,1O>?o.] ={U=a2eZpweieEU.|bWz\ruLDĖUIU N|sLF;rdjaOd$9ܸ6{1UW ^WWMM”gMj9sn\7ʂGor$"Aj*f*.?æ$.GK($ Qh)tv*@ k0w:)82B!!>!Ѽg_{o߲|G*1>.ЁW?u_1sKJҴo]nRr)3-%')|`p8c`Gc{9pp?#U,j6 ]peq/.>ujߵkCguyalʘ&^wu܄DPp&Pi)!(6?00q>?ۓ>߅IfyI{X;ȮL R$r2 @ע#@Bt@@Ǫl6FgQ~'%Oi 6(A`+7@i0IQ3"a@f/nodGlټe#msKz1&{7ϬX_|"ȵV+WfU8ysϭ_^ZV1!S*%4N.ζ >!4ZrtF8+$*Ul/'{/ v7u/1@3ۙaRgfs+w,_8 .-HDXG@ 7I ̠թaI<>*" CI@0,(b.ŢS` 䵮h|e{[X_y8eoUMmm-oo;~:*9Fikܼvm`[5no;ǒ.]7.ֈx\DP(ȳ}}WwI>d)h^ٲ|us{S]ҵ}Ks#)d]/^|vs߸{ubeNyE%*)x4V"rzh6H$9%8c>7<"(>R2Kex;~I>vF窯*5j2ΐ1g߳|i zF3 b,1 T&P z0$%JH60J@0TРР(W_Uꍦ֎%6`d :'$\WV5k{ʄd ٫p U?skM\H*OY Z,kTQPa1ӦL?@&Ó8ƿ]v*Ǽh@=1 3Z.{@kt.3[~qt MEy"$,! &"$ǐ8REYpH#i,2LE3SNovֹ|rw2熿c?¿s8)aool|e@‚UPYVUޣe7g%8KǷL:m˘Fy$M*B!6<ɠ? +gqɰ9!߳ [z{'6zl|tF? *t4LvVfQp KCמoZ4GJT*K;IlRkzaL M$'ј\ؿԭ5*Y$LO?2p|O/*tmysWV5ݭ[DA}Ki\3gw۵[Ym\2rUeZ8?[6qmz˝:JYjT[j6;+SWlqg0A ǁOJLI%YjK~Dors{ܫ*'0_ 9^-$}ct/#WNUf[~w65pYЧtH\X텎Xqy< zdT"dD@a!_ nlHjN%N<] ݺ|g]OxbI b+P&f "'ajpB =H뵺4!Nd٭Vy$3Io-?:p/ͿZBCnҊ|{VQ$1%Lk/'ЉH-{l?wЁ_➺yLK_ݡDYN#Q}Wm{􉓗/9tԵy[k7|P-19N2 .(Xrip?b_l==]0M%Ҳҗ~ι*j61'R$B#S͕KfLjwee9.KnCϏLJ'Rc}NA_px 0 f -qv?#@I͙iX(}lװ <ʶB8\%X$< CS(dPP# H$࣢d_#F MvVV8 9r?ݺ}c?~}MVǒ%(63 zBuU%s+u/Y։ұpPOρ=?0Q\QͫgN8ؽ_WvxguYyiU.!K"BnܠW˵J3LYY99N7 LMB_ >K-#c~>NBR))zWf`/}=6aK5>\QW$nX*F%i{2PXqr"?@ t78=xwݮϾm{U KgIC'}gxX-͈UW,]) (U߅=9f8sjbb }}}I?y̨B!bŒ2bPf*%LgӒa͛mV$z=6?0 8 xizO M92uLi2Ehߥg׳BF2; !O,r>$H TQ:=JcFё2T"=@^o֪/>vš;7z7>=rg鋿Ỷe)|~R-o//06es<Ύ>xeFKzl/~qK~dTXqP. Vl3 k_vP{{$)H-!'HL)vSJN ˬl:NmR?)Q?19'N<5ޘޣ jRbd:ez Ǻ{~g/c|dr["u @>` R&1&LiDi,_%CJ 0@Z9k=ylsO 7l~CgVO"|toӧy Wv咶6v,_á5_l}}?d&@1SgW6Ѝ>tW9g xRn)41E./792]YYVkvVdgʵkX0bƠ32b!OSn-{=ŽI4sޓl,n> *b'ٝ49Gn޾ս+-kQoB=xBP$"X8"k "y(EF r4셧2X\TPB4Ԡg_o?s}/_}˭_ros7>!B#"f? iǞxrAU;ZJmϬ+a՝]n╵VVP_<NIH\O]SzO,z*Peyr9rU@NVB@n(dLܔkdeggpEq0r1|Myڼ1j?YS[;`c- 5Fh]NVo/`OWWw3v>= K/D" < `4( HD2dτ^ģh/>MΦ6}ڴ ε|N b|}Gݻ='5i{iXX킡J!ñHwWC74xѴoi^yF ]ZBѠgb/dxiL6_$W) ךjyv5k# ot­Ѷ{Vk[g@zMGΤMe?{"$)-Xw׾dÇnq+vaРR\$ EĄlXϾ]9E 9AgU jf|RD 3*Pj3;';݀,.Ds\6bB2zt+=}<ᯁ O-FFk=AUrXG~^۲ht]Rdn'!,I<c8PR)<5eŚ^[زlsony{sgջ_\޹wzݳNyyY߬KfĆ]-}76mp77<2 `T_`P@pxyg (MFR YvPueIE-i+*J)dI*4,`1T C-Q3x+#M#*rf!B\4 srjf1yk;F: "Fmzzu~=MMd|Ɩl;/U(*/Բ>;uie(j:\xb)~ٯ'gRr?^^wM<_ņe^rw8y!С](&UFɬbJWԔUIJ$\"$ j9[gwD+âK6}. `!ەnT8\ju~O}A0~@st ģJ42=遼==\^4@,a\p$yD\5al%H$ x*[.60g-J5;V<˯~7t{;75xw;zM~vjkӫ|ufY)?=>/0)E|cj?dܷVڸq՚λK_|h|];-800 04"f(8b)j9:u˪[Ϙ$WD6SN?fdEo4+Ͻo-{uղ <Ꮭ߮zpXx>%] g *JaP R7XU#b!n*&[} 34b@ns/E ==7}AH>ʿ]"㞑/z59p:mCFڊ#X8 ['ERBCǓ"P`ƀQXj 'KP比+L5;ۗ|u6uxeE{ҍ_x_K+*{_??1goΆcIC[ z_l$$m#g5h/IiIug"}g/>u|3}d./;UVYY]ilU6w̧(,fvZ]6k s0 Rլ?duuB,R_S/p008 s`o&/v 2<3fϬoKM^/ zkWy?~6r~gVwNNN^Ғ +u޷ZG?~qw\3̺DG/={Y]SWNx kk8˵e |h yYI'>?0حFQy6YbmZZ e@__? 33.:+Jflfw_1~?K hu1??{0qiךsH:0`PJ3h0vL1XpYKR{n>_?z?~/]ؽ \p߿yo}(U>RsPn^^aiqiinÅR=;z_~чO?O?|9196cWی19՞agKcScc##w#Y453k33*ͦiaݪy>LZkl7_w/ v{@=@ =835Ipclesn񾎞( G|+/]__onӫzAD6Q!9ұ g zfDA(  KĀX;&ۉxr}/nw _c},8xP^aIqqic6]w?o擟#>tOX QQYYd3kДfnh3#`leCI`NB(@nlF ͥB<ڻtG}ǥ]y'_g#>>\tHa^bPqI!XCvۡCG:Tt*y{ _~b<@WstYYYEuUf6=<^kjާ+f35P N^C{WڎZ[fRID5e'x|6l8RpCDO8EtG#p8]Nsb9e'䢗aY$HpCZ},0qE{ 5c6_T*p]y`]R̅y7]W;w6/>tϝ;^}mKr 8WP\TS\RTRZy[Ak]غs_,;]>V2VUUqCg-ךTnMK3b޿4 60+> ;[:M uڀY*Uh 1~n0y.@34D#p¹ޑXOjf)MR=0_o'REѾ gu/:6Yk2g"Lh6rbN@`BϪ/U`&._N,-mAR͋>׾}y}oϟ΋^y"4d;/'}r KJJK ?gggw=+r ᮮ7-nhF9 MRv}ti~kj7:A+6EyM`:;VC~8jhjhkBi֛@/XhOAw$ #eaf83[6r~d7iz/AHح~Ͼg77Rpa=7TdCsS88N8NE @!  M#5?H./ml+}燯ܳ:{sk:虜jÇ rsŠ` 7<}ǥwwߥW2M\\_<{AP ~kik|_0ݏF~4Ghj+bXG, jF7 0.liR*EFVc7 ADáp2Z8r,NLp\)9s{#A.kW_J[7ּ5jFM<* Ω Oہt5pcB vK;9.& wLlnVVvoWi9r&{' K9Ҁ-P}4vq(~.qub…/^oIw[nFq򼲦 Y,jX$&59UfKC1 0 _  ?JkC"Et *Gof `7-@# &痗g=V/9:Վ 񱃽ExDb}eH$@(wo>3O=bs7='U 6ϽDX 'h2:Er [mKٹZb!Z'w/У?>ڝN~aco{&gfmehNi4*,.\yl]]\:wC6 gDպ|QPr'T x{^a^kk[o>#V~vl_F5XK 7* Ƌ d Y>!;C ҮZho "A"p(=0>*\%勄 -.ykGxC i7Z?92Y6fydDU1 y& ݓF;RۘXbk'HǮSֹ.LEzG'\J4]H1;_o ًZsX m>+ OWTVT~iQnѲֆ+Olgr ?,!@qt]fbfG9z}P$4~Ffb2Q l''GfV%I2\d|5}L[-Do5 /H?l>Ow7C+3=p'V3g`& n*8AR@PSTD"V _\Br~hfw{ii<3?%Nr6@/B,ͯ$jojfqlr?~k_ꧯ㡕;YVMʫ>]XZސflVջQ~i0XgY0JJ6458/(8еUHE *;ūU{"@,:Rȍ' )^ C.%"H&ŒYM_F_b}-z9k42Z0뤂#?zk׮7$ob]Y->Z.Vhh !VVos]]6Jq#?33:NN-, (KB9E%E9=wo~_k*?]v4Pʉ~O[Pqd޾DV\$up4LpeXB%jmADD2mN@0ux'˪ElS):j S{U.#JNow_4t(H(SZq[S}Mqxy99[I[L;7ǽܘњSg;x@= [~mkYn܆5Zfh~-K˺4*GoE3P#Zw} Domk w>6?260OxF}O]\p /?8Ņ\XXX>EU;.F>/}74VUQVYUfu7~v6NWU**)(_H[?xQv7@ńV҆+0PFonV74dk S&cqY.{Shvr> FB@ 唻Vn[|kOn\H%?{/o_)+tE`>x#fdTJBOctv$0B K+J"J&66/~~ kO GYhxB0%` /,@"Vlnbj!wǃ=ϟ%c5u ꊪ*OF^meyl`ͥ)>[Hwc/O9 ^ᏹ V0X[c-BWfj*[bY=F^9j4s6BӨ5. ~3_ ҪsT/~d?2Czf`}=ܳ (S?}k^{74K*4_g f{\#Rt4x͠jpVRMDXZJlom-XGiZ C3836ʐ}/**,>". >Ņ9T]s\?XYYS[A?VpL%2ړ<V3KsGqC2*L-XfŒ :xHk[ǫ|S$U("P$dz e@(CyHdP~-]Gwz7vn ,Eza0lz~&muqHVrh8VV)m`h@H fla)=|w߷}9W?/@bE觅|: MiL,&vn+Um5u5ueO}iijm(m쳋KFhE?¿ŰlFCN1ҍ,zM iYA!*DP) Kdx<96w=H( DF>YBZYr@nA~Q |߀jb7 t}_Wsoneoom&iժ1gg9:]3#4CbNӔU/(L#'*j*jv?s5^qs%2?0G;eǍfߥ+[]ac r)uZ~<'VB@F]xbiȭVY(?j3#z:<gw*J *'/gaE/O2ʰ4(U@;(+]@~ꕷ_7tۛh;#>6cTotT͚_ύU(& :Zм60z ޳?yv@^X,ϔ>vץࢎ֦:4`755! 󤞺^gvho"fѣ8ov :UҨEQڄ]R':4΁1Bf1" "xbiwyPu0},^ڊ[#z?bnۭOju~٫z/7Mn|.a)>7߆ҙLG@%5./Hꝍ!wPwC?uϤzXJw' y]]C`^#A)MoEӜ Xn`_Jό5 Ry0w3>?3=Q]^Y:_߻xN+-od(?D8w=+*.4 >;;[0ʚzVP[ub53]fm8lΩ9Gq C_9I1vZ\ZR ;—FKD K,ҰK*.J0Os s^:g#ˉv  ~H7)"$psgO>3?/pK9?x R4ݢs[mL$hMwf#~XxdAGG[Ks#@⋳ӳdlvzfrn9uW_q05"=3Hُ׳=@ ҡ`ɾQȻf-@ъ殖ʚfA\CۧIm  q-?LY-h U mz! m`>\HՅAU丵o|Tl+rӄU4+xY&)KdFv$[0IQ^ hN?[o?*>/³rQ ȖNcnҗJ G'sb9ft%ggVJr^r7;?R- > u/@)?4z>လ%!,>re|kkk&yyyu}}]ut~ή߽wƬ3,hUZT:b Z_եv2X<߫T}DthP pZlP Yc:;i=:GaPf7BsGtrzE໼.7g^v&GnOjϜ n1}o6[:he#J8D|4/~HZuemqnnzjit~wg5>?==9;L铗sN=PH`jK%ސ*(8|hkKmeyyٱ:Q|dee]c}iedK1?fVtaN?uFߤQN~B* 0bTc5ZꭨBR¸Dz5twawC@2 W*tvp O~׭ljEk#:oyitRmӏ {㽧[(7?;CV<@ds @naHhmm%݀ofjFXw0&#H?k/4;i"P({'\X bȫ);y64z_1Xј&FVo(nn#g(-V3ꝬbP brUj4WǼ,Ke:s\FOS8bZ6עhgkOwK7!Cp /}RV̸dp9 4 hC -bZ7Z^<vvn)0U)8zs]~&ۓǙ‚} 0 P$흊%?zyҭ]> Fo}v=s5Mo[>4LȀЃ-F1JRi= jo@PH\{r>_Km$33S K+>K =(h9}hb}Er36^n|$Bkq~ffbb|viuefXE.pYTw9@ )@a=sr` JJkkye˔F5VīkX&tyQ> 5j )vh,z0" m3q5vn]]M+JycGvyS32]ƸO?6{P%6w)nfi4䕔t7 Wj.D=HEbr  ɼ.j'C~eRr5g^{ݭ,[mXq:8UJb.@ E@я]IHh@vj'|Wd?rL?@NAxh58ըä6xE+Fح,\u,H VErjIq56ܤX\!>v8d6rKtAknʲ=GfU.̶*k9^p^w 4kdro aR@Pх 4,@{C\\÷ ^jT~_#s[¿:@=uG%9C[q G5N4|5$f<= ffg pi ӎɻF88LPE(\P< BPnAtyEA'mlni-N`J`Ey WMj xr]R780-7jc w9vDJ X^7}?3Lt$Rɀbu#yZF9 E: w@R  әJ+gV5/WwgS(&dٜiG $W [ch,tgWWp7s6AspFNZI]HQn)?y鐰0?h S+(-5cef]{M}UuCQ2Ѯ f^HlC|P6#:7ke.iը--MCPt9,ᢆV]UXǟ-W'FYܽX_9Ck:oLyd-u =hUA4 JL0\S'vtwLJ57-l${WbtB3g'yn\\_پNf܅`e_ K{ 904U($V]+s3Ss#}>JeB^kTc:^ *8i|~~T= rU@JJ3A$EvCK]}UU}޺ 4FMXrkm q!n+t03Zn5\A>Z>zX9G者IO z,X0g.J<1㑖9+=Y'EyFLkd?gq3I&?QN wؼ?GWzxwno$0"<~[m M@ 0Wc')bvq4t9'[//*=rQFk#4? 3}g-=TH@Ǐ;qȑR3PxѢM-*Νdƙl{U|#W:xyNgFs-,R&HVӅ*Q+=  mILЬՕ|u-P&+Flt6RUT. ǦW4V4s@SN<odd6U?ԛGD"`6H7]훯?۹YĄ$D6N#m3 ̜( 0/ࣝM}OS ؙnnYR~n~hAT=rɓǏ֎p}sڤX&:b:afFjbz#mv$W= Gj~ aSefQ)HDXĥEkѵj <1a\K\ o59wκ$l&"x'6qRf%pLHH$@{Y C T* s 7WXdEVS׮=o͝_7{hH n`-MM0K Ky~˫ɱ؂Q= 豚B!n:e 8QXXPXZRzةʊ`Vu:U]CCxق1t~[ ͡'ƨCvdi[U$K,бR&:YBe2&B]gɹZNg&|2=SA(l\ڶ$BH_,rI1V|0^i?~r\dm7oq`kivC0^ͭmK+ s3 Sڢa!3,JN/.U:V{(ƃd S\}w>y7?GQ4V]14 Q \[]776V'&ggF9C>ȉ FL.՜O}śĺODzgZh#kVBJ=p mP{Zreyu Hn#gw`ݞFMK;VFP[v0D_->t~drPft!"ʚچ1f5>:- ]Ԭ?c-Oc , >Rh)3ښUB)hS%rJPć񟹎yJUva*Ѭy"Qvșy0AaȠnTIe|^ %¤ dڽ[7[!'uG>'^}w uN-@tpdYemKd%;|{Vè3J(Zşj+V;\AeB|J.u^u㇋̌Z%W=5ue A9s_}3^H㟲}GhKr3CZ{0=ߥO,.' Y.2I0^ jB~ {Zb~blz⿥ɱ0at0@o_'F7oq\.l2k5*FTE+& rz P3؝r{to%7*;F-=+6̌\I0"w:a-Fj1ySmueEũ :))9\xMvaWOTc̍"Rq܎Lr@9M[fӵBq'O׷w)E|$0&@,򭔁X܊2G`$e:SA2+)dR+%$x8P,5֧>( C[233I T 6ZQ@ y˻gϝ=HOOM,NM F ЋnKvww^O%pS K&h$5̸ W,J3e,nRh=.R"QYݴ ((E#L,oq~kA0N;OD/蟼?K/ow;c_/osp[ϞCDG 5 #2 D Bh /8){,Rjunt|lddr>6?>Xɩ30ЏD#A gvv{<CREzQOooϲQ4Ӫ$JL- Rퟝ1i\x<өĔ]bWLqh{ݡWi2n#-JTXq]kBwB*C@d@&OłfԢ`e]LR4m =@ށ゜C94 B@$e13PoowVCc\.+Lݦ9w@=( H5d$  Є}rUe ؕo]o_g~s| shatpdz9L!Bu"֥s.읿$ ٓF(  )Hk ( N4 Is,Iҁ`^z7[7oE ȭv3Xu^%HJL\ ֆ5rԨ4Bu.wq)B.Gl piO_.RfBh X0LJ5 (DÁ,Ё2c JF&7<24 4vM'v7w7&p`,zy sP^]Fi4U=nwd~}w'&Pi2S=skOw|']gwZ-W.xy7KbB٠C-qr Ǯ $.v2Tlcg -Ojfp|rjvnd`##}= h`؇$EB! z/oX r@HbIfS\BN.nzԺuNiD;,iO iLV9~B+b*?:7C5a+ AiO'l 6XԺC{h¬4h&dr_N>Z4N`BV"#D]d_\]e~$V BUe\ePn'ٿw|~~vg'`sog=hB=kԡ M&wz9K8;Οw"Fbe~r 0\a!sc#cÈ<`4Yp,>? O_y7~}7o+ er"JZ$2gՆ `^LCM ĸ_UuZNt4"F_Gaft \Nk8x|N))km(lDΡ9~m.D )kw_ D{'XnV΁Ą;!(2CD.担RKd%$.=*H͔wB muRH>b2퟼OՕh3vQ@H'?.W ,),v].^8w9ɉ~?<>11;;:42>19@H(BRz qЋ"Q/{W~[pJ\ThD H\F {x"KڡՍLb7`鰪*]S]Y&err?.iD?_*f^!Qs!G :LX HZ&ᵶ~pwZ7R  V`a1aG}FpIkKn7{XqK]j܎a (XcRks>f{l:\ tiTjNzClt3 踆4 \.xF0Vh!Hح( ً~P E8]ީ_ /'_N2.NBI4!"ɨעowu Z++\pwoss=>7>55=029իMό{h7򱁠 } k?q~˿}ᵷzǂG%I74UW7uB(vV!OT:ू.Q@:٨28r_֊x|KLB5-<Фb]&܌B~%-I%-MM#7 =V'JnsAPh-e]"Ch1b7:ZXgu-6P*RbsPuoFٴ@v`nit_>sHesG_~?!^/cp983ʔ8T2FUggso|O{U^9i rSo>{u4#ͨWK.HB˝Un;szHrm [ew<]hɑ[:Mݽ`|]@5%,9Q-& _ I?N_tXnaME|%x` +*49 -L ̠T:b6GNe_~A'W3  J*Nͬ.UWD1!] AcffPxdc[O]kOܧ]_Lz8Q 8ZXUDp)K6(Q*Jjƕ?vVs/z}#*-\._`Pe8j|mp9v_crҌ+klthhdrxcUmѲUk~@q_u*~,F/}/w}"JcA.v>/)Г۷mmMX}CCsW_  Dе:49 NBj='Oz[_7o||__MqR_')+3P*@,Uze-o:InmRXi6ftB1x zCc$Pf3&rr E*[ۤ*6`W~@l/¬O#xUUEwh wU=/68TPH(Nκ Eh8 ώ¨DbPtLjO 8P )@۽w֍kK7: H|,_c!BRzm{RhOZ ٘mͩdC)O23<63.)9Ÿ>rݏ>?|ӓ-}t/.ݺb(J!W8}CQʜ#(@Z:+F"CGu(GI*pAARʷ>686៣lO\ ŧ`h C`>*('d9֚*VуgLJ&o޲# ͕W֤zyߑyZStKS3zjgUMMc~cއ|ϖ>K7]_,ݺϤ'Tp\rJ:r[Lv(?w}NPf@ Q /.xW0#i%4c^~]v>3+7tj=qY%[ZV !ͩ8StY!\)onv~JԘ^&]tEy<"W*zl0ڲFvnn)g, UUz\fP^M*-<fd 5@Gp 񀑃< ANG}2!}|pέo/v%9"sA/)Wru9(J;4⪟ڿMMڼqk_SCK[:ԒF` h?{so_w?N?/^\Zjy=>~c=ݍ`7iKR`o6$k+c\ *& i녥  H8t T̫TZhqxcp<5P޽{6BT.sx2m) ]CݯbaIX3\\81MQLf&1 63$787g<ԕTbrFP5nH:FR|&'AjK@`8. X UD?O}[OYT|*ܰ7'.ݾt|pSb<$ʈxOAa~ G??;53739:-H5!D7nYh`gG+J[[P68jjv/ϾO/|q>z3gJ.OMiӄmoafFM&ŠGo@rS_.z%Pn 4ETbxɺb_붡U1jt0$8ax]9<̳s2p /sX޺y%%E7ǣr*{F3Z#]v- n#IH@yZĖ-5ndw(A _%|l鴏/>3Aб dCezzlF4`/t;W=3[XyeU__A1^Y[C읛 06gcgƞDU}s2dÂLe࿱ ^)2Shn]]ͣ?=?>|W8vՏϝNtX08=hSw=P@3 \-dQi,HTfaN@c^, Җ \Цk%@|zBVk5(6qQκh s7?۞QJl 3 CuHcAf3c*:]=vZ !F828 qMԹ }T{$ s$>[6E ȧ}8ROtҵ_;c嬡LT)hm2FZޟ:p`$^cUe"=ᏆB!@ 6-TS#ڳmGf=v?߾pыOG/|?>WT,U 8qUUQ*"5[P,G`Kn@˚GXQ4GMzd{c֮_s_8oPZ\>'/I7P7cr-qOgWq 7q1P: "{lbǴ 8c`lĨŢ,*r4<uBhBA?K!?I#`-Zn!CCYQ `ڭ^W7.ݼs7 Xhz=xp1{vlnO566Tƙ^o皁#7R+ИjjH$5-?_#/>=~dϞ'H 2k0"?_rC ؊(3={fG6NƷnju4!+k D;ˊe"\b@P\T >awVUU#E*]$J;k֔%*6%21 )ӄB0Li=0D]˖1Ѐ# X=IH'Ÿ(iUJRPbqWƀVaAcC _3ϝ?upA `Xu,r ң:{k L6K1S S=m)GUGT0xKsSkS*n' }7M,xD"\ @ܼ_Vr_L6f%1?Ag>Z̲/pA^O+6=g\~_د|tyey%f{d޽3#P_SW8TRg0~DVNt hIQgX*ݔH4& Lۺ;'~zxț'A3=###G&pZ'; @s:lFT =Ӡf&'*/D5h$`({S_g>565va4l]"e!`e2ZA Teٷݹ}ҭo}mX3 33C[jjn2!ݵb(F;-@9nmO67ƺzC/W¹O֑k{VF!)S^KѤ>nz7kP˕*ߨ> pYEŅ{5SoXn" B![!(**.:(c;%Q668Q+IXx|$fl2RQV,izc,g\KU*DR3;O$qԢ=2"XB^Q5~L;&f&FF'fƷƗH4LsgΜ]|֝/~ez|T T<4b'`tÿ' $_W]y'4щ;Ppvům[v'*8@j@(> Ի5uDemmw>څ >W:PiZv-DC LN`AkT7691Q#~:p3g~iǕ '=v6xx8H4. xB$e!l;^ֿ,]z럾oɹ?ҖpmUS{ײfG!z!) TC&YںćC{ÿ~G:[&Jd"AnFf̄j䓀 `>DJiyCz W60/;{=snM`=)lh@it%%exW=FZxe09Ѥ Kg*AMP*ÌHի5rQycW]oUX/X^n$3b׶H ߲EZ&6mcTK0Ghϝ{=߇ӯHÏT =r M(Hfe.'X6ݿ=~;/_^>ApE#㣛7iliHTF\Om>>v)tks{Ssk _C>]WI7ܾWzç @DE%2hw-#q~fk VnE8m!~6Bet:SiIץw;9 o,bIẬukqҒWPvXSV&,xWeqKWnܺyOٿ}K23uMw'vmm͍MmiT}:QLTUU6oѿϿWU(2aqA`XhE-n<3yM,f7ϥsv8< o1TVfպhК_X2`bH } ÓpO kGBcBe2 81uĝ Ψg#kejvnKH럻z#jehCfzB[pxOK/_qs<0ӳ)]](ŸW|Q>`mm흭-iT N75&[tM"Y]SU׾fzg=~J\_XV!+Oc:|1̬Lmm7[c]nف?Vߩq< 63T`jc0ef9I'uD*#X-2242 Z}xCNwGC]*b`DqN_XaqZQz7K2`:]fI ')ONNvFwTj@Tf|z"M&aER.p⒇gOlNuT0G*]xkrӶ:#t{IcoM&dzt魯o^|[yT[u<2G+;;;7(jj puk55L:OF*w{|?B!)+,,-Y*Gk6[}|T3K p8(\ەf;_ZRVg#HI꟮2}n^nAQqI+F:|L_7.qzKNDáC>TnDXZ[ pX\,Ur ;/Gƒ{E"T.s$a[F3>85ejn25c pDC&3K# *1'_g-F#瞝mp츷*S T D ػq`%#H!ç?8ӿO&pk/]qǞkZk6wuvvwttojmCe@_]*US]WܔL$D$DE]ib/;הRaq^aYڬ?Qv4þy2"noB̢w\xV[.?W4+ hs 8eE!!QP}0srIBa ¸baqNnPtY\3MF4E@ ()(,_'STNv=s\AܬCF6}hM9T…7AQINSU O|K8 ãaOw=_W6jж?sՅٽ+_]{G SϘ֊(O[\~] '`e>t ]G/6pyK@Ԥ[ۺz{z]}=!쿳1Պ.&ŤkuUHU}힟Չ3Ͼ yq5snn)MQU?/DHPlHܪ7a3;98~ə6?kфa `߬p!sԶ1HkW:2hu~ ?GGϝ|kfrp|W'=}(gp2/ Sr<Ȁs>9 # /|굥_u]#pVZT(Zjn4j2Z+j~~V%bhs3@ԨTa֮]Fa/S//JD0GW*XrT( 1Wr2(5h`X}PJJ$X(ݽd낒Ru|ϩUbԹ>%'?=|3 LOoiOW9qǰ]F'6ƙo :꺶q-GښT#H>Շ2Έ p'|CI;l"(Ƒ?\|֝_|=6u5wwɦvp Dm)U?X b<ʱ5 Ɔ=;^=<:XPP&Z:k}"ɨdgʤ:>D񡽵IU* ]TS㴺e`$I&/[|򼂂RA f1~b@rVX|W7MՊ$Rㅎ2}کʼnV\%ÒFRRɥbY0[?1+/_>dtIW @QOM$vlrjzzHaTY"$GzPdȍ;M: ΞNܔd/<6U]{?xZzDS[oOgk:YjmI7$5m VMuV9Г[5Y>JîJE"Dw@lҌ8PājGq\ RY:?d2P%@HDpOm߮sUX.9!Q |E VQ6!…zcAZ)MR% !ʩ ppZ7?[~LNЄy~83ulXG3_MZtzų }F#;BmѓFOg^l[A% %p+!:3r3+C2W,($Dj~wn]Hp[WdkWoWk6ژL'RͽM] ZɊz`ιOVWbRXT+4nHvt" 0W [b՞WWNdW KET8`2Đ H|xdlb޶دVH1Jd+KKvNl]L$St2l5<[w4?9-j$ej旨4˃t-J: gj3sUѽ}C2}w¤W K{{gڏ?Ǚ?9v1qwE㋣u5[h @KQg,J|m1 n5ADf\o䉋_ݾ~7 j=XؖhhN5R}-nxwDMM_/sWZᴉ RHT:>fI].?" ؕN ` uyrDZ g)TX*BD"Jtbg,Ln?M1{CMIm樐$; 'X!" ᴋ <[]!蚚Nc UC`gJZR.X&ETgyojQ+O`=A,>sΙ*NeDj3Sg gQbt虧RmMu!t`^e3eXY2=<ҵu*`.{C : BljK&ɺZ"= H=ZbΡTb4K7hŅ"Ƌʂ}]yFVg`Z@2.QKحK֭Z!@B"bDG ?:>3cfSoM L_XlX6Y:Ksa|u˱3-Iv= jhiN>"}5 -2xU?Woݼ~ҥKWn.}r/ƶT=H'MF8;MO:.Fqi]>ݠSK R'cAOkA6q۵(3* CNR`j$ͪY%  &0y%bC!#PnDEC6sOmuc.f2B~=e-QȤß5>|8Z7YɩbǞit 3KE2ѨX9;Em?$OO&0W ӳU<L+??u̩o93hNz,V}~ܱ޶ȳNٴmff,ɣjM)bz3;`\r [8Dyïve8\y5:BzS]=-m-mm ֦֚CX QnܨFw?n^!*X/ ?Z&6' x$Cge/JɆz 9-1irG,LMkA.KeB-C5l8 8 X ET*t5<Օϯ oL=KVOLT!>)՗ ` 1"x#`[&ggX̕K[<c,s\ ˜ 7O0M7nMj^f/G&zg':9.^-Щq1@)!"\*G,@7M=[7@XyK[{掮=ڔH5$ZRɆTsώի~z:t4~2ԢR ]EpMv$F'ìC#p;(s<% w"5G#T?Еd]%Ra=k?i %Ҙ 3VW]FN :}`GR$mƭ:B\R*әh:P劷HMp~k&WĘG~~3p.y7+`,QPd8hO_|qvnlۖLωX ŷԇ0mEbca?BPA~ fgYf yE@-"bDb#[.FUłbN~酧yߝbCT%*ˤ2 ⭥JV MMz}??ϨKrFnAS JEZ\ݘ ^F!4OC[7w;$hJfo=S?kz+G8Gy!~z,ƀpa\/ <WъKq1aG"d>UG j5*2ҡf{ GV"z)"EϺq.LNx{4ifA@:12ܩrI#H*t-`̸p!3awffĐy|yN)[\zvPo5F-ݗjbn`tav*c'8Up'p=8J b++Bݎ+ m!P xG|{/g/\q'_)}w/R m2Tn "U-(*(,;:̢^ory`?p:vxuv8/F+v ]I L;ۊ P/UqW<@9T=hinMCbZ@qf4f}ѷPz|bW){:Fݯ禆m]; 㩝ͤ$ +Nڐeߠs*̷r14j{GyGK`Le"'t5r҆^Soggfk۷/{x=ѓ;ԆƂpG0%LJmN?w[2R >>sf.gn3 3/#k7.}%~?l=h) lvC_ɅZͫZ&L&,) 8H^C;KV)2VZ(vD8ڰ'6‘(?*/|?VL&IѭV0uj-Ҷ}#Ю'^m6;{{דզ1P3! 8M`j_Sc]93J$jӍƠe^MwiɐW^"0$ѓN9x{ 8ȹgb¾ >eMm<~l;{7.?, V?gl~ 򷴼Ȕ)޿vxڭ۟vAoj^3[95>!٪ 8^ p &>}#)5gP_ : ]Z.4>w#HQtRF:?Q0:x]z,:LipyA~?o{d~[< uS'~2kIrT<8`7[} I 3ypʊ/_lH7x/=~byGWD8]J'ntAx ʃ$,?k‹r(K%F|뗾n_Tѽ=`s",Tv"/-/*ңR@PfjBho@84nܠ@h7(44 t9>Ow9 #lo4\d7 {yORvdt{?x.g% 3UU3==jlC⽏Νs7vz^gT N-]|(g;ZP^!Rl+O:y #3ؑ_hn= `#{cg#3ڃy{o$:z <:sd}I@ /cm8g.o_|8EN8SՀr)ST??v+W.Koy-Ƭ|js*nD3h U^Y-(m T(ӛ`njpeNxUO^.q8:&Ж S)D ˄BsR qr|rzG$FtMNMM̰0W1:YL&β٠fM;lrw-yE&g'ܺ)0@t>t=7I#t.6 b )B7W=`T]y?~6XZS~VB%Z͞{ s`ͼ Z\564HpdQSb¾~ӟ~zgb=y ܥ;#b1 9cͪK,O ]5ZF[1 CnBck4V&T!*-Ħ%c9}7G1o7_lnX8M4j&F_}/z1g"xYGZ[~Ad֟m|El۷}t9qp[ ]v;~'[?Y/}FрMe6Z,M@ӗ GG?]?[R#Skvp5e%%tJYyMW[SQVCĜN+F7.E:X9W Y_D{>F:t <? B/}W\ 8W.zg?~6W|罫R=ʻ7GǚFR>AdoC5%ECX$ktul:u`/ + 3c-i(098:8H30^2gWVV@Y'7+IUU} tV2Ku7j8LcCuEV2Z^RRZn +J̵8?+5i8ӛpwYR#YyҘ$ˋ1q%Mx!d߿?r?$Xceq7xspmŠUj}\-~m]NV2xideG[B1禟%D@{c#X8pn6YfNho FW*5hZp|t4 wf.tz?P,ٛ1_&ucGڸZbů$9#^Zڼ`"[SQD=^\8,t$ D_jxj%,СJr!j@%=,w9Za(KJNQ],/تadT( & 9~`KL]CRfp"ݨ?: O;k(¿7Wv{7GLlj'7Pxlw{>o{E5 ~PH PP(&yddtll,`$nt0tkhltS6y?nXJ>tZ^eFjml0м[|6_|5E,~nY(Ki>`Kg0E+HlM{<|cUE&=AaN$:#֑GmՋDIf:hyĔ]Uzi1k RS]%+IO,(SFnW: ؿ\utr,mKӦЗ/ɻyDMy*{ѱ+ۇʰZ+;wS#)-Z2ZLzx s~O9؈|r/Cc]I 0"{H.?6;d CFbl;jiGHAp?eN[D@uXkOuv4]Ŧ\[}>psxb(D"`SDr WW7cL Qfeuq.oρͩs=JԒem8@ rFS:wdeη: @㰪R`ra[}yQYq5fhj ,H͐;*@erV \FtHϋ~)Ln\GK9(rY ؟R)7!TzoVFptvjy۟z'DR/O \ѹn7ϘΝ 9fd46haCѣmœBS+f+& Օ4()Z?rbG<2k[:}M?N\jbsuoࡕwBݬ3Y*,HM\~1E3Rs+mI6 ";+dWճ]dILe6'.CN~S[_+4:ء)/..VإR!S;5u5)%u\Fi]vb:ZDM/c]/R"h+ iCoPA R{C ؆]>>2zE߮QK;:D+?ǿ}3?4yfO84d] FgY lO{t!7+ˇ8 h޽,*'Y#QNMhιEfơZ CXǛϗ6;ytF()P^;$$%zG'?jhi)-,-5NW9jӋ*e euM \XZoYf];'*ij|-< ۫ ~6GdF??٫h9/BB`+M[&Zhf 8j "7{DSW=xm wq\Ȩ;=D␄hd#DGCӾX$ pqhr+ζ$1+Nt ݲ5ISO2 ӽM''#'..=յ7/Xfa?DtK FMc8+ f3gam);P3Ih"vayauDgO3G:@O{|U@lpaKD O__)WjU(7-2/Dׂ jrfZle]$l"7jx-4+,.@̫ؾ"q@@kB`FAժU*[p;d|w`SWm? G:kZ"{9{/i@r7~Ϛ[4fn'W_|,c{M kDN -+[<`} m3wL&⃁7~$;^b̍ Rț &C 7`z:<7biYewg#Bϗ6#== ɺ?J`4ˆIzN i-KIӗ.jsˋJ MW_-WX\ u5ʒꪊ̲r9껪ik++L '$[+Ά^v@%lzzEu QvI{}l (  C^wg0mTye 98y9+{T@o0'Ccnu'c%B^s7h Np 1 HS$7&zn@5F{,ꛍ͕ijmv䡮fwG]n׫s{hOzB☵*ÈxwF;);n./o\\vf`"}GhaOwgwW{%"@%khp$" '_m~H'uꀥ,))ƝvZ!ܴܪTYAW/Ԣv2Y oؽ="F}i0)_(P2>e(?\CJ;kD؃K~Qay,>0xnYۉj~p+Q"{) >$KC8/8n(N\r?)vߍQ0Gιhld0"QW,G=[P+{I9wXA^7˛(I+$IsCCjzYfF),y xw~`Ӊ^4݌bǛ_\Ao?mu=Y_*hFnbvдHN80=UÍ纞.-,}ՏNj|s_H\D*Rmp4oW~t͊_ ;hdX^XXȂ.(P+ɍ}n.RZ: mx վ]I ?'p?EIie7郴wu촔2^ՠkP(*ݩv2.vjS{EiQv~)_]/A^m #%eIZp{E7H"竉*() Qs$s2A~}n{.m*_7!MPI7;nc,"M7,w76BpXHopv68LFñ6dM[:R}?MzxK~ VE?0Dh6{q'Pv | P4cFԛ1~Jph}oltNqCuy4EhZe֟/\|hphw רPw.VAwhԿ;HVY oqY rCԿ8;5J#)QUP(a斺Rx2OU*jy~fN^OD@H5BM>)xT+ڡ .Tap$vJI{84&?lm8{xY_8swVܤ|/G@ɵtDz N戦hD ü@x8ve.'b10MIc^|Mbj0+2Zv?,->xk0$687DY$N_,~=scLfcmj@BF'9 kkmzx|GIQR^^ ãwN>3,RyV *Y6$wߖYSV\ZftL*0rˠQ%>ٹr^5T(+ry7Á2V4'77#3˫/"=%%o wA(`9"n’ bR'T:^N A塮d 14@ދhp$qiv,wA+G GC>x4FGpţqiLqE:pǣSl4KҨ@; Nyߢ-gσY-]ʉ9~[`s˫OZ+;__یx vp-$6;,hPؘ_^PRf9Œπ<9=p/ NSk Ĉd;^fL^VVeNF]S௩Q槖T(Ai jEEVapDF ŘݻvJ-,)_ @KI!Mn?;2Qg:$rծP(6 @tVBx;|E~c;[d姮G^Oi\8p-B<5-$Xy`<@Az1ct`쐋†& źCFor $V48AmZ VDlVL .//?7ЁWSm}m{Zn%Hh ȿot%Ӏ JkzM]EiI]W[[%IٝS]#K˕WT7 \.+/VN`dF,;55e;r `d(?նpc);HnOPl(DT[G$oW،YtIU=ÿ}~,:?oB,zގ!σGaK}Ku%q !7?tI;LGh)in$NTXPV V>jur}(xđ^ ,f n.|6p"otuž2ע]g: oG[YվBY ,%+R}=m]J֎RZb6ZwARI#P\T֫*K*Einte,?%\ _ULƮzAz NF-_}Ό"Z3WI` l)WQ$q 33m<\_'=7ݼǤXkjd{kh8~EߺʊXlȆ_!qw؞"wSm{m4'Ob'pwES(HCӎ~ RS{x^`1'/)wocvV6'<^^Y}>=3S/ZB,z,{dFOMX򤰊@>&P_,-/2{{ۚZ[RR>,Hh_o]]_]_,+ nOsSuX6Rwjdvu :"YWUQ2;wJٝQXFd(u/>/˔`| Gl:8M|)^Ḣwh*)@il_}lW"0i= ";"CHĘ[$+'Wq~h\ 'zCa/5&38P dX\+k+he<Juvtۙ`Բ\yp@࣍ÓSirpeaQogMb.;0@ZiPseXt>YYXc3$d@L>[VQ\Rr{[ c}ҥ/pe'`ƉJL&eeUeyIi fʮ5򢴂RYemm]V_SYTeZJ t Enzz];;wgdeVRA׻7}'!N JK Emu҉lGH徟EEZx܍k!@>fL,<ƙAFB jH.6$y{}a៸HG']NbF&C nU[(c οXA4[}Әhd''g~olyac<3^$F <;mOf /So"j]FEBYVB8jJІ,aN;Όz }Z.SKKx]w+ d@5*e<7Π䨫Ea@PS,`׮Ԕ̼<$4&!|V 68NKr ՟<=E7d!^U+au?fGƂ< G1?9yd˶#>4O&¾$D8@10xl;!Tb<y^OZOMD0^__] X~? z&m=1<9_X_Z̨ڳ~nj}nϘMgc&CJ`6vKϗ>H?/',W?_lNNPœjޭs6`^F[yQTHݹ꒴K忙ztل0=33=(z>xxw\drJ1pHi }k@ pyŹgKwG|'gG܃k˫_3ï^LHEKܨ!:9SV贵f,.Q7'/+ ?@p/-|NCD+,,ۜ%Re>:qE@Edn1$_  š4ݷ̬RVWYY{rٿ&7{qjMRQQSvf233EY8F_վ`RIIW‰x}X(Mt:XЛ,-+)V֟s7{5vm!/|](zj"&]]#i_|wIX0O?ujBO5 H]܁byw9VjG{DD|jzjfzՕLL^.->wT n]>y43㋋jy6 yG.բ|?(VvM^35/Ο>桥}Rj2[?BmLVYZU*9 \&W*+jmX2+:5iC7¬t0{;SA(Ƣy EYu`S $D%AnX0Bz|ytzu:VZ*/t߿>#a< 9K 䥉ĐO ;>tŐ7{<{|brX d"I&/3vuu:>1Q޾>!fRA]7]$ρ[u8Dp`P\N}<>} l}yəܣͥφ<_,߬94ZJ[K'uđuy@@f53=ln#3y_@޽ˆ=58 h:d< 'FvGLCם?}N:\Bk7vJ$AA,fnfoM {.]7?`xn,>y"=#P:ɉ;ks+69olN2l<U# :d)sr44N>yՏh܁"DS; `‚۶oͷ).N/-TU֪hB^^^~+* YQ]/CEdv⿵,Ks  b Z;:ڻ[ۚ=/ חIR @bӨW~ `rF}+Pjn->.r?m 6tuG&ccDRϵ'#.-!MK8Gct"Hf0K:K$| .Geh'OI74O [n󎫳m̉'`';ZY09luim~is{ 'AH!?'ʻ@RUVTEY Y忩|nvFvnf N1Sϟ>}坮޶FB}{ZXrlL `sv [ogg+jkJR_P Еk]@KʮB[rX%۷lo__Q+3`y!^r,i8;tT_?xx?t@ᵏ@ݷ[.=ps侉h4h:9>E32t@z׾wMcӉAgg|\ GH% D?0!>^@F3C8-uY@Q% PGc#l/חEōCu}2B)/ͯOS[ ]30 Rk,~NR 2s3+0?ؒUNoQ4vO>uwvw66ut7(PN1YZ`Y-zhsa;2sZvz~^vJN |MJVUYU "9h{` v.bа7,];ߝӿ3UWWAglunZ GB9uFOMA_~^h~!F 㩈a;wS . %OHxk !?3;O¬Vͨ당uVn!~4|-RT$ )~vb#Oݝ-AsҦ B&0=o!_?E%A6 onpQ$m/P^ i驅F_YJaA^~0ğ Yֆ@쾗@[uq^wKix<s1׷Ph9A4{iR .H7A !v7h-PTI&/sNv>'Ш\ped1d6xlgf#9׽g>L4]\Y✫5DE'Q1:KP8a[0uUjdfk rji^yS< /@ffz7i;ӧO,;{Zzv5{Q)yLu@gn&>ԝ䈇05?=e׾)k[9LjɇIqpdz 4֎چš1Qf xADBX~dzӏx~r?6hzT'=M̯:4F.U.TbEi:D\ PN/\  +=-m7E=/۶=Lϴv@+.NqG<ޖo;+3#%XPVըцoK5`x*<>>9oן~%}~pƧSC`6䡩-n?̹  ~ ` ?:5,>04NNNG7qCX ?;)[h8ީ';xﻛK?}r6~>hfz*.>Z1 "E.1e'1B`~)Q{MFЌVӡPyZdz. '3mo~76 Mag=D[;~{goDN*J ;xu4{+5#cwFaqyF"'37// +O&Ҩ`^рKϢ4uEe$Ћjb` 2sK g EH3N\~a_>`fVuo_zS:_(37&n)p} vul&!NL扩}8=rroɅəDybfj&zǓRDMa:Y +мjun( 3G/ͽ3xv*q1ܐ'=06D,K_VM~CxU`0h]avVFZj!'澚[=7p}OQAo˨6Э~_Ufɪ(7=#}Gj5ZSLME(Øpt#:33rAe0J 3ҥ4ZXKfFf^82W yoK&pNʃcM:ӫo?"G̱1rKS]Nc>x->1{14#?51sh!OL}EP:S.@ F0[';xf|qɩGOo@\X飕 R3ߔCsfqM4N]M] lt?S4 )lۯw ]07m;^΀D s81n/,*+d@d]ol۹k K '/՟mo8/{h[DMLy%jBbgfgd䕔UTkT@/=''2yu5Xd2RvM]vpIMC5 ʋJl6-?_q8o BQ̠2gb sݽID£? f;59}Gj)[c$ #wi-13o(GSqAqPcRNAє fF+;u?<<5m{p̞R[\Xxx8gץ,spqi~K}=Y/>_>1, @S[wrMTK{jlh͒(yum{3694[Qb'.6vqA99F\VTX!9;'+=TQUU+ yI15y(=svAh0S$ӳ2 KSvohn@t!3ӮݻҋQPh٦ׇl|,FuI~d<2w]8s~bTljb=V}?9pג=9{ALL+7IcSk:Ξ 8 _̆̅ qR `IϬhXL&ÅsynM_ܯ(e>^^Xz#׸'!C>X[[:" W&d`݂ӴNVi)d3Xo! X q/>S;v؈/@>;b=?鰉f:$bhg9+V:tV*2EUUU0_)vZ}6m r$)م2oCmTᮝ;vܹmwjvQ2?3Gz}/$O)=f2KYiDݥ{6A"ҝis">9|rDRf0ioS]7'$&[1 EjV|哧Gwv'̲|_nD䕵SMrg2YA:dsUh\ 2TY@*h]6- , ;UT ^V 6FrZ;0T]]9 LW7L{&Z ȷ=gD&'  ޕ禧9 u=:`'ߙ~|Nx¬K0!F:PfcacǏUpϖ#a|VÏ%yz6&4LŸ:j~̓Im& VJVi3Zy^VFʮ:t>g[$ x#x=}鉥/g3l/1 wZ?_< 6WqeM ͥNK ?zQ]r 8e@U.X"0yQߖd#o62}N2@ii PI/{|:9* љr!AE<~J; ≋Ó'fï}ZJK/^бa.v*6`BMO薽Uz sfΝssf杹̽k= r</Q}w}zg]y{뿣{Q%Kn"A<4}=q3+`gmAd>0j$怽̌^i_=OУת͙YplmO\ViBOaL&mU?l}zl}Tabuk+..} Tfٷӵ Y*+(jkNϻTçrU)냾 @%%Ok#E82AEpR@tr* [DnΝ Ȃ(t3ڴ>^)]N?b׮Z9>GE꟏kAlܴq@Ór %W#5?^!~1"@d%PfE6:.ہܺ#Q~@pnpu-~`m6yC^Yz6^0PW;sAY^m/aY,8x(\6J:^nwobv37:1,x "aZ*XvČ\7k` |v2Okz^R(e|~flxh-Ɋ\!kVs,^N-SP( {yb:2a|5 Il~@ᡘ ڐbY)m'nH!v#kMp?(&QsAd䔉5U;7_UUY.&  _ŧjj@ 2&ĄBÞT]gyn).}m?Du$c\]V.+nҁX:з "'hXK i `i (-jVi:k@ڿ+UM//-4GGdN|-vW p<[o1KKϟb# (= ?"p%))AdU95[Բ4πFSVe(2;7'es^H?'g"ؘLQ!H aa볪{Z]z$0u!V(ˉBvMElX͓Y]?}уln2Vm!VW dm?&j\ŠF,%瘍S*w8.gWX`-/=v32(zlxsYVo:z y~f#7 .jiq+%M}Ò+:5vj(g:fgEŝ"R,,--mW;~[1T~]X w6KuA2)Ӯi ŹO39"SnZ3|JƝ 7'\mش)b}AwiJKDQN^Nغu!aICQG6 "+gN<|P]5XIL\SU:&H33l '%ƺ6ޛۜœvYXIlEj볶+Bwhx3pm٥k :'NVc#ap*FVci 춽{O ny غP2|Pב_.ټwo.Jz(Kxtkxl((;2~m8;#2,lc-tN6[6nz$q;~͚YOy>Fy}O I)Iq)1?X|7G@El,9jJSԠl:$(PpA~p0FxSG8~ݵ|+C >=*,@@:V( K̥O:wA#t t,N[ﳼf[ sB_^h߀o*Ӎ'H[O+\*?e`_*fTDZ@ ySyWJ䃳>Ks#]_|N\C`[" m~bɷm``IQe"Qe/ ^FX.=7흚|I0;gzcFN賓>p-)[%E~ >A MW(qUX&0 ^&cIݠ_nX& gQ0s67?yMMLe%q Iiڊ?~K >Q~˯]y2 ߐ:qQ;Ur[zl' k_Z0o&w~KDY s^߇$cгS:[ V[ن?|nl Ģ)feu~rm+krny鷁d ¸ y6JH5mU X]Qiya{ B~o_cm ^^*1,t} 윜HpW&< @"iѫS͒-3>zƹ#{k$]AvږxҜ5\Q063sYA*%>L?7u:Y@6%~qFH\J ߼C_j{r05#sKRRRJZA׏72 |U:I%ظ;F᫺z OY[wN U+K\~nڟW2Ћ0X_;,V1qV@~O6?Ȇ.l넿` )Fc]NOIFeOܭ nYr_Ԏ-ܦvm5[A7~3|>|%`75CX{_K KwsT Azsx4 P983=}m<9רW`ţ uFVS9t?_ah@^h|KBr6mZ>辐Јo'֏GZL?gdO9DWU_Cz XUmf xrBSZm!$޳Z^ХSasR{ ڃo;Yк0 /_GRlw{wxu_7SP% YR,PVY{=ϫ9>r9 JTɆMEJW_XR=C{9^>BDbo]U$d-h\t:-Sú4Tٛ#6倷(EL&ULSS\jV[A{2$E߇ ^\8B@C}SvVpQ ?~OLlbcCkw](/NRR^[I@ZT@[g+ kc0sbdH3>rYs63|nZqF( :+qn2/vgx˻1xibpq` ,'WXx6 aёRW:|nj;<֌e%\~ `4'#ՠtZpw>-~ @(ReDŽmIaΟv% .9fٷbؚUJe|tbrhepۇKlvkoʎ{$mh)&BT oۄ ( @c7o#}}}f@VMnN֖T,&®U ڟ(v8*d옩//2F(;y9挣(;z.XuMz h{imV=㨰Ǿ @sB}/>l7-fʨdL^Ҕ  xN_ n:f2Y-6Kmz]eҔ4h6_X%Բ}q?yJI CР`~?YqjR֯Sp]_X0=yd{ ɽ}z݋fVwzFE䗌\*~EoZo/?W_ >XS,cu6{m{{nKF&vW|UlSLw ~/VXWwekpIf MI)VV &+ktZQkoxlqiiiҘ;}p=T+f‚ߠj˾[@6Eqɷ8d`i@G􃂈]9ëYm/O ]eEyUO  nL ,2RB;IU$8s_^gNsnCjwf$Fj+w+2KZvovvslIKΏZXF#9lM,M]]7L_~!<:/C1,WfqS>no7%aTQfZ435, l 6>lcXom X]WŨ j$XY*jΟ|1 ֑K؜8Hd*razOb>U~u7LǻXy ȕb]bt<8"&*pyviH7MFX>^ ]sss^ (%99ٙZ ss3TހBSTYY)Ak6@0}\8@B~4Còr]dMP `'ϊ8?~#>="Pț[^ L{Zc"#cXr%WW{0rBv M cH3 w5V}Ѩ׷M/6+!;I0sو:+}f;rJSB8&KHZ]X_d4ޏ~brr1o|@8 s7aK1ܹL@W`~\8 &sy9Ya(5u8vYеf?β=tx %EӺnvok|1tzN-xԽ@ k %piiAkJۻ]Y-a;"UzTFEJ Ko=0,fۗS, Z- '~bqn~)_#(ob7.PNv|~lzcM!2`2n ^g 'Of~΂b:J;NM sz4Hې?%z1w;9=7z1*qgpYˍ]_|>aD?/^CM <ܬw.Q`EzٍS֢o-B 222#VYHz47 `G9ɕU8\KrS""lߦ 6D}G#`"#ã4!䄄Ĥ$Ӿ+^Dyaj#zcGN6=Դk[U]T[ `{+v_n4/7w`j%5{bf :ؿuf%Ā6pڰ ϊOluUF֝t:xt.Oz찜, K@Ffn8&5>|uxlaqaܜUbua;<sioro/yrx,ٿ,4)ӂ{83;?RLL81Po,?{Z?GSZ/QdnpcchDLDKRuGg r?h:uDvי4龪ʊqeZd4XC k@i紻^Oi?x5?bw8_P5@| X Ow0'aZ t+,zcAiKVu3b #+n-/|_^& v8_o//`nEXj/+5޹szΟSO{ggO"i&  PDt%3'''?<6GW="ַީksY`-mN^^J$:6m ! x~0RRySKek_~ǎ5bJ2c6ĚJ bؕw0MHDNgY},ۭCA=:N`~x]_ [n 0xpS;(0Y:\.Fii %ʴf2+q@V^Qk|?qLuss 'AE``?gեV ,,ta!gA(J7=JXqa23HR olpw0A2_+1}QO;VZCD}%isT䈈yMc``0c\BBX?8-s /:!eR_ëprБ:~FCaZJJ"QH,11WWRd6: J??9;[Շl[YvzA'XP}'{̽⹧ ZA9tLK:gqF?D\I1r*-).T4I_ zCq ta~S(pٷ?8b䞴wvi~i҈AhRNdKDY:0;7ޅ ô@,%eo.z'xgedPyQfsHHAg%,?}z$a%g/|?{*uT5t~ow閔ĸTڿ_n.I;ŀY΁X6?txkj*iG |c"ç "Ǟ C3 2(XUY*o^?8̀4klsS)cI֢CQ_/*%9yZ7%O6cWjFFowXZ*}Z=l!/v{.We%%DǕ+Q~ )7h[W%C1yuZ56-N8]gtu9؁@cxiNvŀpŀc+{R3vWi_v k<%7/{-٠6v|MD*L/EwrjrV0kW]*9\7} 9`{ ՐsJ9??ᩒ=E%X^?D`ȏ:RŏLl8~I @8`׵=~Eϭ]nk? 279{5i)[jl | Lri*2[~Pzat@ _כa<]flφU9{jbc9 - s^ْ @dhC Bۼs=U.?zobM ݎvcɻ0D䊡YN~,'( ߬SRH/I>1K6vϊ٩_rWcL٤ʯx?}*irC'ݟ)J9_͉'!???)4_V.c:wyNpt;A90r;ƆIQĶL"iw0"dqoUDcm8 !ę{nE͑>ZMzҢS-,U\_Z_&ZE,bLS}NY:8ݶxa‚7}Eu;?8ULf'l9pނѠ)@ٹE&/G ]&bzJAAZ;!dpAnfcɁa'Qx;a~H7NA\nv8e?5騬,6t<-,lX?½-axdF?%?b'qXˆ{nߑn+W0O]gvYye|pCGQVD@ @[@w(Ʋv- #y%jࡡn$:Ər u;־CGӕRܜ4)<oe$ `UOZqj8Լs,}t.{?+ǃm{n7po%C~1DXc&p: 0`<[8qTsn\x!.p#H }$S`$IS@/L<0z=)s ,/ZKµ%ԾCgG^T@33l8Ӥ%Ife~z;&i/-KaONMO7"9 g o 00t4KDWZ],GS-0PQzQўJhgXFOQq`$QC/!+/=j!uOs]W/<{X{rEi1Ql]G&=d F16д$ynvzT⹝,clJ85Ѫ Oe @&l܆_Ҭ(dBn Yg(;.p ݨ̗^`c(} ST(SB B~~~ӒddOl=OwںAG_V]viwm$eqvw</9-NǝyrP&+XL{WFK1,6C8?+iΌ ܞѣH#?-A5"³CMIF3 XSUe )ELŁ 7.wQ3_^C/ߝ+36L,-||Հ5E(ٹr"U3K/I_X&J3 m( ^9w ?P e@PRIazfVNU!0'֯~ 8 zAGa/t^R6FG&ic|%fnR-"o.ӗÌzsҰ>`Y˒>:)1lR\ p;ۢV)=~b__]|{ۛVw#:v.I2: <@cB@\`w!JgPٹOVTa2W+foY驩v͟ Z&+#;'7`݆3''u%"9݁bnxOʶh@BI.TRaii Ojj"#h"TqO:.Wvg{[uoxA a׵]w]yTKa`v%,&6cB|͖Q0@ꢧ >70nƆFn9O EEEy 3RV@QþFZjfZ 2aeE(l?(K GYYR]%jQ4;f&(C+S${B Z5p4gf>z]03ļ=ľ$MO7{jyuv*7x?, x(~úu!7OKK!Omn={mnkyye֎'v? 0=ܗ[S{՞ ^ܼg itgcq啜,r)w e~F1-^ {49ݽo^HC#%ؿf3dX-\+QҲ2Ӈш'ٯ6V /-=xoYҞ_y009?,$ys3s*u,/d#-/ݸ|xއ#Wk/u^=y+?u4]iwZNLx@\=֗KCesCgǍ褈b5IC`Aɱcxlpp^qUP{C###Cct(AsȘ95{j)p`ډ )֭EE XT9 0ɒuoO/={^h}ATсc_ޟىyNX8O ~Rw_f@Q.2_f&'}A&0eh)؋AXf!Akxla k xlb={IN-(ҜO>?I)$2/:fUmSO~vnu18 A Co;|hճRN*Lr7>7F#PpP=coGFGG]}z^[?6222߰{9I YVB0OT ˣ:@~+nMl~C9<;]sZw7uG^"b^%胸e+GDaR^y'foWdPefc\U)Oד:P?Aa@&3m?OYC!!AL3ߡt5;Ay% ES7 '?IOBj5ym~=j? 5T<ɥ3Zv@t@2s*#U;w׸k{eQ%N4* ( &0e "s"q5"zZjP?̀5kCґҎ~sKPUfp.C5بyԼRP@&gc^[$i["5.B8;91PkT-/O7& ֐2/Q<-vLǎ2mz>%D._~Vnv<-QaH1xi#qIB?BAZW^zai{yb3-mg_i>ч7 H1 $O4eީ۾k_cwVWV&˿x+]UPpJ p4mO2vo8G :*ɡ<>#kPrss\Zn~S:SVfr];u^yuV86?UGT vO4l;హhANJ5VT%_O?9uX8i),n`(WU?[aB`5; &10ZU YZfK^ӼlUf~&KHWnXznmt8_q+/ܺu`CG=-  tw6t =۵gþk$}~fbB`Mz*x\HHi((*M-\=0rmW8?]w}Ӡ.% )dX, ezy驲mLx|6#͏٬Ѯ*aia\O(eAl߱GmS:- ëQ o':S))Zgf'>zO{*d5A1 Y~س&4<|Ӻon lʓ׿iaE "Ǣ̏ 3h?܊ 4UMlk(}^;̽] ?x`ӡl(..I/.FO7жxXU!Pll^v/i'V}߻f]sle tZ*'4` TYE @CZ Fl1H}w 9٧}yY73PD-sAQ L^f&Z4-/Ss;>9ҫR A =`wx Qr_~e7%&د `9#k&UР!|p4珘e_ c7/™ٹyS< Hwf>ԃNdQdԜPHST!-@:^z@5A+=a@ G?Ob7Gm w{3{NPe*>3}w1,#L 13#=+' /o~!xǥC/ڎ_\8GFތ!s5אgrCMo<~uHdZ,_{ti>PesDt.13;%{9Eŀ`D@PQQ@J'DTou kW={ ߚs~\kiaWE+&9.YmbMm MZ5FPV+ԡp<6)& L^?{ԡweg$_7לS LE_;uyToQ QS;Π">3Q׾ 6KѤFZNO@1;-_ҋ@S qsB_w*#&LVZOZ(ҠW!MOu91{g"s?|ɠ'tzVgV]m OY˟>-MJpۛvG/Yl^3/̮X^uxf/b< 1 4_$CY3A?65^'5[>96J W;儬m[uXJ$, r r\&CC\]-/G#$  1=#P TK 2~6<[o|hLd-n@okB֌ݛqX\FvuWe^\Z}! t@H@$FO(`2B.W L:cIԵͭm~x޻lUth mnl.WLyS_66e(+XiZ.4 JDEـZzS?V2yVvr}iжpN0X4b׬#2e[rG$9+):p7.TlD2;g9lޔ;8A+Fw,ԵOCQG/+ {>Z18䟗^\2rsn^^ٝ}uJd%l̐g4}'{L՛< = *peeZ}r٬W+}^xj5ZT 5yH(]j0qrԎa[^^6|[S\{w*k+ xN*q*R2%ki ýKf)+<_T)ТE,6;=xthяS Ip d E eMm#K:XSz{MtyEuNȒ_驻uʧ;3}u\Sr]錀1Oӵvt6}Zz\)S1(Wdu2LԆwZʤ]wo\" e K?3qL*:KfK`#XwyQB_Z*L.epa3A@]Gߔ(łlܹ3u2G^7[xl Rl\/]=tm/6tx> ѯ6yٶ'fߎ[4cqmnR[?;}F#oM[pk5J%2p0| F:g)V# seP"@Z]:}U>+E i!wcM;SG[ߜ5.âOyDuPx#ʢ&F `Ӭ#V*{IQ$ybR5nֶ%lxސeWgGKs;T@v,:)߽ur:l~ʥ{57n-, mZG_~Z(xe}]_;0swi~sbxǕUx]$6{ݷ{{ڛ\EBT}P RTkzȫJ2oiqϨTU dX a)UAb0$"2]ZrY'ONsgmm)*`xa)r~[*p*rm}eRHe"PhYKiI))Li9%v֣%4 g70EOGǽ7pVV:$`d7k7*2ݟn,\T{luGӋ~~ uuVCv iYˋ陧=wn?\]On|qłqfdЇ bl7Mb>//i3L_#I/_HL.U( uF"WZV(qUPS>`W*f0ynMefDEE)]ׯ[ֱLAq}kcAC"q}scqx2nKrH pij;T#> OƪDc;mw?= @`qOOOWB5 6b=]œϨؿ zB:aI{3͟pޏ^er"?x}]ꟈko7G枾jec0 #dsyGYjh淁<)!K+(lnh$|$3rv0};?C >y*1&6**.D.h_|cNݺ}@<!k}zL ~Xjn5S1Ȍ^9gΨD} u@OVO׶4}rN{NrڨUƌIb:y$s\o7@>Te%Cit4#U,6??n>$c`M*\tmse8.NF.Og>lnwwhm8jlvJqsz a1{hIJpv豞y }?5IMqd 2(rwaG >?t*D ȸ= Q-68:hPLq D @]|uٝGCFo4.Zmǵ/߾_8}v1`||ltVO`F}Dwl>~?:PzHzRr(!(":zt?COL=XWXs9WGIݡɧ:257#1:KP# HozKxdUl&<_l:'BX9?~WGsiyB9W{XsNI훏SCO߾]\o-n<25eWF-v^pQ}ubghlL,bL1f?h 8 |ؖF@C3ow[.HrO#mz|n4tVQQv: q4 U$ѿӠl^3nL\Ҡ9/ PR?>> t۷xO. w-ԧ6ؗ.?هg#nm֘yel2'. ?wQכןo>ʫ+W{$V.B{Xb j% {o'tO'Vb,(gRƁ;RFgB;.YFA@à%9~3ȧıZr9sere&G'1:SXl63) 聤Ts,Č8tx#B{vq|!ѝ>VW^|r=|V79m}2zmJA[\Gcl[o{W~i7rqYT8`+))*/0jUlw{޺H6]s(gP֪5nKh5_ :5K@'8Y,agp2XP?gMZ0-ǿ9th?j< 7Á//R[h>B8=P&}LדWqb)UJO gi1Y~vjZMDGv@@>9k|ڬ]7\(S0Tp%?w:"JEǐ>f$!_q㜱|t|eřR3Pӣuj-sv˖s)Xyv=H9b7',sߟ()*(-/+/+*,.0P6"HO@"'a~95*VR)HB*t;%CPc>Ae!?qo8v}i-G0C/\p(5"졀om]`-Tr2CK{dr*5Z8D6^sMZ'16>>:!1.6]axޤL%""b92tcƱzE+OY*bnRΑB& ?16@q(9Š[TswbhB?>?R[?rh>5|pt_r,}YkΫk}s.tީݪ# F N vn6LO?27E55啕܂/:*Ps؈|I2L)C %r%?x`_Tמ)(-)/)*22¸ @k>  gH~{(@WVR\)7R" 6Y+I E?R:D*Oۇ#%/#ȢyG_66uCT) ~?Lqw@<0u!5WC/fq!r|!k4Z+(\]tyl0D>}*)1 J u3i=VUɘJHy _ňRl>&de"Ǯ\$G;.HnV6,f/֑WS5,fW A[ͤRqqej^"ʒR]ICC#.'}ug*++* s* C>4~HoF$bi*hKˁx)(8"w KLU₮_ÿNG^~޿G sP<8|xFֽihư'|X&Qx vxٜYP =^wpbˤb\*dd c?Z,7B,qJxS&+'83srt".;үr` t?æ?bě~Yv8›6~BV(5]xe|XtnMؓi;vB*YK>&gm(WU{NǫYkqZG+OYӡTm.Ɇi'R]+pm'3P$/IX?x\SD6\/:G$%p(.3mƌf3ȆD& r"T" `' <7cЅ&˟!)h"9& JM'>;H$$.4\7?"]ڿX),cXi"sPώ9qn"ȿ,6 <>u>L6mY|@]{Z:yγY7gƝ3׋6\}p%7r-g\)WTv n)o6{*/6YP &JMr] =t~/RyC)@yD$PK:5NT +[ތ? *'ҏ} }{{ĉ(&u6DX&K6N,#Y;@0\ -*2ؖ߿1ˠI*sEz( .=-X^ m3D mHNDT|ā\Ӆ?>ff h'BvA@f:KBe֝ײ}'`o8di)9Dv NNes f F2{yDV\Tu-p#p'[|b.OX2.%H.0$YJJŵ=>;2<#|ffjl\h> ?yxlWs~tހg:JT_mzwXfmn%vǜBjqNvf@G3+A?Gs#|buHrR)HdP\TGȔRbȔ<@d@}aş>} o@XK7ÅY6ƩF䤶Ƹ039lo^W4lX9)ꉒ߿Z(S JIrBlgF()6EArZ)Q%ZHSZ^Up14Yux@綑{TT!?ң9OO_{38`Nȸy LYlqE3alݛKѩZL,aBɧJɮc[?2ŶW u9o ?=SwM4;t&}tF(LJc0 0:lVVS]]Q )O+dr@O~ Y$ggjfw¿9RbpcLHpi2aka.1`W a_ h3 ep6DV5ī>d~e ~Ɗ.QW2$+*ʋ ʴhr=~䮵\;R$ei9/C6;=3hbv۽0S?ȻNO;EsmHSLxΑ'o6a<Ӟǹ]ɏXvɣgF>>?=;wߟѭvA0nrpz;I )K*H3jZYF("鯑$Z K$JMI-7S,fu&9L|3r(r魲BJCV͇eS![doؘPJW5x8e ;[rK _8n2Қ<<;I!f7?G}7O굢GIBLX_^6rI`qSO=!_Kygܞj]MdƐyݮw.^,٥g'|+ LۋZV=yt:Uyqp]?韹˗=}K" ]EqRT23fN#Q÷29E"p9-LMz xmg[7Jw+VT8|.\311͛,eqB4:d5bn{=R^ZVTZ]~)XuIdqnQi~~qIJAU}~? LU)eމɤbv Ȉlwb<ŸFg4kYobXUuzڱ<{=[޾|dr{KKj8B/^WYW'LoSڶyqVP쏌h{NK;]GOR?_$cn:NP JiqqC8;3KghlolLD/ 2tEB¶4 /ֽ[,z)B>1/:G ֨ a~3%eE%5zkC*^(-4덅: 966VT,k~_! {_)JyNK^?qyl?m Z^垻~ͼzyܖkptMe/k'}c5Ԁ3vgz\xat14QM x^ ]l)+T03&:7$,1ב+d%AdY .KI8gJm;o),f =iVG_N#[2_G5_h{N $y絼m.-+--5"oU4v8ZS~>5Rj)7=V'_~]&}R!JiH:)|9QOBOJNW_l#W&tMՁ{oOusz}蓮'W&_ۇlp(r9׊KMeLi@̳I~ukb% _"C!E,utSA8!ĆZ7b ,bAtW,]BV꿛NM܁U[ .Ÿ0,l|Vd`B^r|PWtב{Wr\Տ8<6U_8\AVVI(PKBGPJPdata.npyPK67PyWavelets-1.1.1/pywt/data/camera.npz0000664000175000017500000047124213270003221020154 0ustar lee8rxlee8rx00000000000000PKQG{J0rPdata.npyyU&VQyon U%4U@3( 怨Ot wG|E|r~{~߽53D7M2=y|c˧_|_?/}}oo7>?7%7dO>g_>jGQ>vJZR**RZrRTj͆=jz^ktZz_ve6vZRc7AcϻAۓ~`8F(q4D4^q<4^ڧx2]򗞥U$$IW4MWklj^klݬ7'j+?mX.R}k>j^m"{]ٳdOxMfqkԫjQWir1_,8_( gX(K}EE,6Ezg؟OuXym^ِofv޾jƾd:x\ [3{2y1,ءd.} Bu;np`u3xIۘujW . BdJ%JE}z7, Z__+e8Z'톝O}֣ߥ/Wb4)\"}~f씷i^/Ht3nm7_?<}nOprc~ y ?/#C2cN ϓN]?aw&S#x8?~!»{NޣAGNzfy3y&7cN#X/Լ<-{k~? WyU~{ ?hfS3@ X]yn߱8`ʬ,#,F >x Eeߞ>GOvx ۹)_'Tj6޿{BgDwg61ޭ?Kbbl~ wFԇGȣ\KM/0ė?c5ol:dm^nYޒ>9^Eb]>":UkXV>gp׏-K\C.k(u{6E߫hwo}q|?*ٔ3wm<,a>o,aadK\`?aOqRƁobR{Fb3㻌Md"D}Xy ^uq{mA}<?G6oYѸ Pfq"I,;. +>_ao +UI8<Ӳ?]o~>ne|s>{o6ͿZ3Hמ듓K񟧃߳>z.|~\vf3Y7߼8 gπuy;GC;=EOxUx~jr:+2R%zzdycqq5ACLĺ@f~B\Ѡ!?@F~ίt9z ?F)r(99oj}0؟ְS#C'FDj6k{W<yWVp0# )kp1΁E1>d}]E{5yl]-"6zۈZ.z'0CC X 31+Hlѫ5_LBS3ЎRS">0TYƇ{>:P?bGD4u-wDxNy3=Gs `sk;9=[}[Dg[fi?nx V!8ӳ52pQ,RK@yiĻ_!:~u녤Qzׄ00u?{gZ+xs8!*EULP0B3VJU&v;~T4'3`1s" dS,b?7q=/`᳼BD( Ȯ^?=ۘ{~v(pz*kOXf"qfհF2p5jFu!PS.@Oi;V X]ۦ{D-b;V jFQ,RWq{Y} xp`>g'\AB/ɋߨMY>P5-OlT̖I6"!"@}xꑞ7>4 &`OkZBl_(=q|{JNnNLe>;7# 0A} 'OK+ Cr,0Å#yF,ccWCEEͮZU- 8dǭ>Z=_6+vssczߌogo/K;@W.5ifߴggn?epHH?x~MdN|ylob>Q5?qX|u/sZHz|BWӣ7#gcRg@5P@;m˄>]9=|ƚ|ʞT4FS Du=GPE`:~BLblŔ)P_;<} Esvtط#g'"HQ),ɯ̙iI+]Laa;<4#5FEx8NM=Ogo4F{\s}1ڌ=>ݪ.k>@᭦!́'bB U{gh_۸D fTjV?pRÃ#@B\@D?*XS18U|i21P䣆%5y )e?c(qQSw؉& U!1A[YRC3;PWyz^m8'ed6Cbeqd7L uiuD5uߛm} 17Dٻ*[sHqXW9&s!G?plu#f3S!e;$oG .lcax $fG _* `f.,+J62n2 e5 y%"@g|>X?gO;v̓UcO Uf!ܢAY^ϙ={55Fey"M䝔tzTYxxui>&2PHp|$`'@~P^a߫L,ux;E#~p!램O\W7Az3_}u?Z`ziY`C@W'3G3Bވ'1վ΀B_39!ݶ3ą"*rdb5v*!,D叏-Q؟BZӤ,F17: 5jg 3&o X##HDP {dyoAz/|Xt/v&~0L'@Xx_l#!~''lR58,؇¹ gwy:@|0ę ˡX+=94;dsڂyfZZ)9 }|}Ou5u@ƏX)'Z%Z%+C'cLD3ȂQ>^> >}')-?!& ǽfG(tmlm5'N M8?<dUb?O0X(Xw??O7`󞿺d씫S DmŨy^x-,M5( t`P4Ԑ9brJJN“~;";$b߀LF # vd3LI踐 Ov~_D']Y`80|X 3D?X&+rC/J1/W+(d! /+N3DuDjlW0b@Y6q ӻ)'hpG43 =?p~#ϑ.Ѣ  Me`WC bON_D]ud?sމLFg_ _칔3B] Dt oh*c] <[M.`W/4;H'e8`%M$+QαL<9֤/%sSe1o&7̳ t_Go }{h/ }>K`f!Gx%܀7*V4Cƹb:ó '89N6!cx?x׉ع.펚u#|?'BQyąN~':`Єu”1:v$w4g fc0QbUDcz%03 S:1l(cSƏߏnEOu'x8JNrA9lY<8U"'Tj%b'8hI_R}qM2䀘wHmq?9WOz0&87/ '7Ώ'!_ 'B/+C? Vp "3OS_6쏿S3hSCo//`=1cegU]GBz=S()~09*(lTGP8ʪf fUhpl0!A<&/ٻ3@<%"hְaS 1dCGH@^r[SC%#gfgdOTa<i2H0-mYsZӿI.8]"kI&BX,9JUv]Mrdy>A@씒ݠP!!K벝"㎑ yLbo vB >/f' cN Z8(Wa_A, F ?]M5vq!懚F,3 yaE`Pp*t&/[^iB#;ng !ݘ^9~URO`w؟Xo6<G^,YŮ+?ep7|_9`Ƽ544U !@d`@')X0[بaF;T"}"t;7 h:2K\|+>YMh;:t K۟SW [4ك>uVij>UE .^0A%K2P_q+Θ)ljR]x_GdlYbYuOG1|gF5az#5U9PL#` W8:Bl^`$53-Y3gK|XP6 (i}vk)~3N?H{éw3'7ߟ{J[S^HJ :{R~A8 Dd;k4$kDb6kD*b |0Y# Ū,O!< (PNG̵`Ǔa>/9?sl0e8Oe!%;\Gz+C Γu1  &O̚N^ݚ$&s_.Ū^ʹܕf1ӌSu۞-:Ngo>+Q̐B[~5M Pt.MRnG{@qf^QC Szj챠t~MłOVK,#8yPsU|SҜOUBbIJ:zSi<"̊͝SMnNVs>|¹^]L.͙^pɜ>oelo>^N<:z\%'L;M-`ʣ4Xu8L=QXK@ޗs.]ϤN"9*(ypE(D pĉnٔqO%hU9ti%{[̧dՁ&6RpDX{9qJzYP$g6 Gxs_W?ΔL$So uuȂ@CTh FC,/a[q ˠI/!9`*B"" !vGlcIU뻋]z`TzyM="߱n `wULx@ 8k6`eW6\eE`HXiLR"GGCBq$.'ݤl͔@6h2ؙ!d0MtGKPRO? Υ'TOq M}BwN lҠ嚈/0 ņԳ@e"O'R-e^I/FC4ct2x0z,/"OtDZ =.6 zmt,[Ĭżеjгpt\vf;œ`t$X.BBuۜUi:WI-Bζs.\ XoceEDQ%" QLZ8s'8'`]lp慶?!R bJ3J؏@ E9ȯ+fT~SY]^W_GLzA'CaێhK'"AC]zet75UpcFw9ݕ]+؞`HX Tk&ֆ#Z# YAPa9 Q>Ñb#RVeWg.q _J MM/kz}kEvׇf3Dnx`:Pd/X3$9Dv:CMNC8ݗ x*5AWh8r4 |*io'>cq KgW Z_rE7WbJ/x%-KHdu\PgXJC<#PߡIE0;aB|Z@ ˽=>*e$i3C+@> * a$_bŽk@V]k]`[S䪯b7i0Њ#X3#V n}[}3٩Tyn1{Mo\i  ?*Ɯ8bSPJp2(`!h T P73?LL di-#<ڇ ^/Q 0hG_|?{劅W jNk.DlӺ#ѨV^yJDѮW(LF!|x@V AIW@4u"&e"50\e[R17WKuq?ov> 6's?>w Ϩ9UpX#WH]x1 dt51m_]n@ P_J@򧊏rWK& {$Vn8OA;jNnbRuGb@'JY+du57;*ڟ bV aEklȏfuR<9Sُ햟;|J@JQ+p^֧=9ng*"$BFi"§}5f\+=3Ѓ^LbgB og}_.PM"@Y7\uekBwg{=I[,;ė90-T?'e.dΞ1C_+EGsFc)"sd,wzn{03*m7koBS,ג'ʈ8K g*C|"=xžf:ۑZ6œɐBڻR 9u~J{wu5]gA*Q"WlLA]`lm/ha;~Cyp:4|f Gi;z/D{51Aj@D Uy^ {c 6s>j܅C4^ªs"@]RC dsVl ]#\uHv |# Af>j rfLI95;R7WV|}~#}E)?Is]}yvҁ  9?i1w?83Tl޾z)#;?79١bk>c_LpͼDu6'c9HR7R/x"=(35НM 2uPrG*m|w*1[G~3h 9( Qix["* x{> }DĒ"OO#墡Nip0c=|F# R 8eOuE$ßLi'*#̐č_+mI}XL Tj2O{f?.V>@\&h8-R -ax`}QٙAE?"V\.qtzT0|6gm1UaY}0RCR,(bgٕ31U 'ˬ#fNynf]k9i P!RO֞З# ;wLL0Nru{P'8g6jM$]Yaxs"OB׽3b>"@N|bIdpָNtS:_AtMDl pJU~FqTTtZ,EF/ސ{ [sPin6BԹv4ʥ q y;h9Y-`yL8tlaWd2A40rUОke] } j&W>`f ~J0KX(psG, #l aOdMn{`A 2C jQ*G:9ԁ/*E> 0>0shr}WX9I`xo]80'#$̍C \ T1)MToӦ$a50uRpB?8L\0=>pM%}Ԇ-ܠIin4&_[dECGHwf]|*C[pwzKba>7eҪJ=7k8uavIYx9Pݶ*o8hW<5k8j$.8ݵ+DހÓl vLpHl6|d.〉2ExKc,O ]N <(lXGw2ӜojͪRp]P ucEi55v _h}O!9-/9&(S!O-S'cmLk?{ȵXs'cIPH޴Zg\p`–ۭW sՠχ]^&l*ؑL4Ns y* @]W 2sԏf.R`A ^J@rO9ܻV+aУ&7WG4!#a x܈ R1)cMO?{=󔷞{&8m*]So-OWIt2#lH@' BYX3*<=NEϛXJ7ؿIFB~6)Wi-_h/c*i#?ف?IHi_~v\Sʮ,1 ?L PwOy:T@!&M*O% <_NDžau)$T/?XI']Kk.Y([,> Az*%3ꁇA8h'Db+yJ@J XUT"@JC[KvɏwC>"_0_rvr-_\"ASeXV7p|/قD:Gwn!iugγ_vzU%,]3y"}kXS+˾7T^hbGIOS9d/нM"π"1/+Av359-F}+: ޔ,;zDG}aO+S9H-PvG 紫y>7vs^ﺲ=Ѭ4/_f4ߣC@~kh_SM=.}bm| ;@fhey*S$h7-/ao|)_d<|/Ĝh~\nyw@@)(S"WCY\^Uj,lʶ)? Bk"W!^WW nmz-tÖ4z\_U ^@yG=!1_v`=[P j}|3א0Q{dXTvE?H'W2 FkjbA2R||3gVDOf`qBW盼HTkR{0>Gơ< ח Wz;Wi`{$LNijw#?V ) 9bp/C=ٱR 2s Ru?)nu&۵rWN-\Cvaw Qͣh3>"Y>mE@" 6 ƛOb/61C{+rJ+*[y[/s;:OyE'Է,.RQp6-5׃Kù_M H4 ?#|L(3{1yJ|\{ir5~!^->'Ҭ{ Oǚ({dTžKg~1Bũ?>q2MH]و^p * -j B:˺}LE-f3wH]>2׀#?@XޟOgqIFF LE^i^#s"9q}Vܖؔ^1*⽱o{|"҅+^o\aSOy{8=Apv.͏: DbJS@ݼш5&{Zg"h^LzfJlS3߇6` IfK۵@>&؟]اNlG J<e)*WY{~_Ҍi"8sU]u ˉȈڄ5MDy$*BznLє(e\I d^EOӠn__x^x{θE !. #T6ޠ#?K C3IЫaʁL'A3@TՐ5}ٶPi i6TtV "Gؕar?+3{,9%qg/!vG=lǏ3БkGA d9|n$>v9ַ@rڟx)vzlϞ~{t:1܋?ϚI+EO‚@,b9tr%r+\.ULC Cd IYM{> ü੧ϩ^]p}-(‮//D .mi bg=/UmQTf]=:7!>7_* 5e~ `Aʾb C1<Y>8wdz/"sM+8] ;'q@<:!ExggMgn:\E! >wZ O~y_kw^wo}淿Wl^ы1[]40>[0})lv?ԽK悓ܣQUYg:=n@|j,tޤ:;Xg S} # mన~pn2?fXdZf(U7Mol__w|;Dwww';-z˜j3=sqIzllg{~?;}\ٽ~Þ^߽~֫oҧ_x+ s7C ]י_7) ]ֵ"!a*DSd |30|X;i?f NmK{_#"zޫ{LowǑ=x}$* /p4LqmGəSl&E }&2+ r$,>&R7VVՊW{ j-ASn^?>~W޾~kcwO_~}S_|g}jR-vO]8T#?iͳkQɄ'0'Hp Oρ 0{nLl:L -OXRiy6?j ޣX"g8  ՋDੇG|NʿbQ ]_h'* F>gsomw^_ >vk;W_wΙO:B>˼ҷ seֿ`}Ej}'Fq#ؒaB)} D'D|κ] g<oX9? stxOyDPħ_ߎWtCg{r׏^~{?ӓJ׭4xǕ0WAV-#G{b=J-_2?Pove rh8FúԇddirXl^j; pΥ;:߉'\n(i桳}S;hCP]v5ʻy'Tw|wn]qWέ;ݥؽr~9\ВámK퉫Wpy'm4C,~D}m=Z{|sLtjO W35C]?yJC=_t7/o=G9hrCöJ}IOW~wVB|?}Gj7-VS_1(3;-TQbvA>0!i ;1da냬i/2>WH{EVcd9@{[:@;Aߑ+j=ȴ~K ,uGIոtSĕ"_lXt%u JqI遻Kٹqƭoڇvpܼ#OG`,10ѯ~1:q*DIcJEZ̡`r)q7]bz0iܹSٿ~AyY{A_գom, ^yc@ẕC[Ka g@|Wqߗ*>NwD߂م2R؋JUYAڷb]32vhXƅmWYoܾ߭u֮Yzwm7n޺/|^#W4[h^`9Ia fD#Y܁ P, }̏NS6ĵg#rzTk'~#oq׏8_Hr*k%U~f08S-_̮j!R'gN'W"1%4=/ĺIRRRI,C)6>o4ƍfdX<V &zP?= aҳT|eYR#YH;A5^ uOio.(-AAzG;,GZ, e:U?m t.dyZT1S_Hs0*HA N&8;%QyNĜtO|6\y}I8pN?ΆU,[|{Nol|yl0}̢b żя,oU96[ ϺAMݖgcQM^=mYy3z#uxr?YARTLS8|;B_ Ǿ&N>|q<M4wy}'H8Rp L|twb6]Gޢ ׅ0\k'K跓f2z2:0eV +|Zh>>ČK-7Bu@2ۮv33~@M2؟f>#KUG1]-Rx -mQfB},jX=RɈf (:o9.aM_Wo 3߽}}x,ܸ pm}?7][[N @M:[}ȧSAj-1wOT0gY!qRߺ"&f1.͙:uZu\{]w<}|hh,#VϪZu=ih X1Цw1*nV!8 y&΀z7f@ ĉ͜٩:*kg)^)8k>ßy:lOA3d&~?&s@mj$B-q'l!㉝LnZd-w W@i?(G1j;hk< B{,#G?d,U4QZnH64T"w/g3 LN{bq<[\ŭ@SF=?Cw8Gy.o / \W}2|e_:  89u>9Qc2(̅/\է~"g0X}>63K]a4,U+DViecW@F98͎feZ_~<f1[4HNEqg׷zoǽ`~C^mTHwz5Tɜ``GE۟tÜg)KV9w( Ю?b ǑcTZ}xu:kXS-BU=cbEnWxҘ2+_ls 3bxo d {>??|u_jT~7o!pX!!;^ț~?HO'[?g@F.nDu~rq/xzNs Zç2֔*6x Y]s>GALpThɻ Gv.a}׿9$vBϬ35< ;g>d}AU<K=eVwf<r /W(u{}mp-~\s惷~wq'T=Yo,8qI$Ԉ:p̘h%[t]̔פ[ѦT|S^&ϩdrw`//hʃ,vC3 B05.Q<%4]9{8uW,@꘤fȹ ~Jk3Bi/!{S}7@߹|?rf7DXƃ?+h',i^f4jGT \3㟑 5mNQ#@]x}N6Y kP#[E#{U¬m" <8(U9qmQOQGi\T)0đuy2-B aJZ/\oЫOx/2:pbo%pp>OzOb2$Ojc t"nv!Yj"M6ŀX ` L4`5H%9m9G5`?B=VA8UϜio*+c|4=ԤjNN-Bqz㍝k hg]oZ(L`\߽#O6fq{F`C*kOOE@ 303KL##ҁGnaEUʿm9p=N? { MhSP[x('lyh= ٩ioj_cE@UwC\Kxk:{H`u)z?=#D\XUEp|*~_]e b~ءd~/6Nd)qԳT ΤXBYWӐ nH.p,xğK]8]mhag9LOMc2C>OPbY`4Sn^0VN9C.-a5V#mL˙_\sh=|v߽`>lO! qﯸbd !\E&0S1]P7hbؐa[ݽvBOVP)`OPS2#83AUnkΟڳ&%##jlu~ő@㱫)OKeÕW|˥rj~'4u՟ٺ/i쟷E+#WwS33t$+})πi㓘׃*gNƮWPh@`_r)P[Gb`fKZhORV?Gwǣ{{fO?`t8ۻ%RUahK{7[*:Ts֖>p`"'v|O9Cv VnNոv?,]uwm\ȁN>|'.q_*ӗjtaj}ӓϚ-5} A }l Pb=a 9vO /S̟ XߨqηZ/so_^~vY 콾sv|ݻ|WkTtnH-xO/v%ci.2_89=90sEr9?mh{7N ؅- Tz9yַ޿{N׈+P} <UW~ jI tB\$mgf?Q~}]j/{ߡ: v]\ ?XYSƜfm Lh~{{f}s9t{ <'u=TX^8!1hQJ7'B!ڄ1Q˗CqڙzPK9JKc#=o?wH{?Q0ϥ=nz@|6(yz}Qs<ڏ#w&gl ܿd5s|5)UU'~\,oG3㾫ofKVҗ+<yۜH{Hx]>~6NebviVKw]VheSսf/:f}f|8۳`w='oQXZR3ue22'K[zpFmL4f}f{55M]8>c.ΦD {JOWK;\d`6ss'ݹߋSMHX>~G'#2&R q= it?)n=~f_VUbkc;]Ss^?)pgT{v4,;8po!Fɹopk|[?;#a?Qv.OQ/ClX .qۜ__y٬絋Ϫl+^=P ^v};}\m8_}aC&|,Hjҧs GR4dyCfܿ2>5|.O\M*/Ӕ ϯZk3=pz6&3QTöRnS:q@:gQ3W(YƇƯ~A?ouumh'/>÷> tȫ_|V9µ_[>qƝ|/cNSKѨn\f31]\ߟh͈]5u|;T_r|U}SSZI^`&p\`5}_OMnȇT ޿®ρY{eĝ"z?Lf| DVԾSKS#Y|Isu3w9v_+u/x; y#?_x+ݛw~?o}'7Gy$q&Nqy>aӃ{/vw&i>-zCKmn}rJYOjAqU^W=C.̭"ulXt4/#>ft x:f=e~o2LB/o<GdΩϹoCw5ԍ%t8 gݫY ߹]΃׳By;+koݺuW=_ǿ'A{\jdA(a{^ < |a~߀șPqfo^;-6[*J_YyKz*3_% s~hOJO}tGnpnۗM(Ac4vd?*L!&}I/"yت !<Ё4iR[/{WOok_~/?77o}u~<ۏ{};wfT .p* t:)}_+>J(mKӼ[_4e͖kԬo퀀G^x~r>8L?ú{_У{y꒲;gLPLL(spOQS3E/u$SV_Y%Wޜٍ9c] O]+0hQzLOr6+01n7 `yB0,}\p^?5&ø֤۝3^L eU RyjDulY:RB$69LߋoQ?r?x݉rsO#jv큫z#_'^{Ed\د]38~77>w=r|^|g7=_|/`AA?GM' ?܏3K IG j_ ܮ;AU֟VyO3xDikAKJ3HGgJnEA4g;\TTuX3rLVK銕[Sƙ~}'0)=?/>yT]~;}zcݯ7kvlٞ?|?oqW5Goz[{?oOUL߇πeۇUMì/g#WUcK4h ef#lfe?Y O~h;ٻGHVCbnwnNP%/D}d}dmzM|xqy$l e?I}K@^I铋}=>?}7\a;O܃ykvٵ{hurvg^G彣j_yuΝ;|Og{qߛַR_o\ O^|s^L3j(u@֧Ёs텺AH1Jx5[?w(X} ?O/ pcn?aϝlUp/]9?om2]& )8DS)f_$qyX\al`N͟YڽONyOZW߸'NN7X =&wW__3ﺽC?ڇ~umo۞xmo{{~}z`u-!=vrذe|i"(q+P)v;tW26%{D_IQZ/sT zoh \0wyr,/zwû IC_ۗ*D]gkQ(?nR}yIXcj쯼V|ç*2L͇dx7ޭ-!97{ A  X Xp qw;w%h]׭InQ~{zu[{#-~YI4'q#g! -u?h9YܜشܮKTFQMZ{Ԑs4.OqIl*1 O/XGt)D3=[ɕd>xaʎhv i#|9WYɿ͎;pț Ӣak־Җsf͝t{&`GmW_og{ikS#'zGdO2mMinߵ3c瞽{ݷo]L@GI^p6m+)!|kF$B>oO4^ \}^ XQX_BG]\k"|.`[$'?*%LM}O:~bL^ ƝXYw^A=;1_umʈvbʠf:%WnvV}o~D>zԲAB='OuRzQ*iњ7kWVЕ;{[l\`O'-ѲߗIU?8>#wtOqI.BC ~5?>@}FRvJB 4?-4 8R+.@[jzKW{vt3d*P~zZV.pcv]eg-=%fUtYߙ:Nz0+)d[E-Y:5͛7wΜ ď3V=sq $UQ'nN6jA?ZyN&ݙ6-@Pk`z&T똏QGkKe%2>YYN~Q'>P @H8gc/&c !mPЌ>vHiu?=~ilGt`%Eڜȵ5\*Q;@zJi[ `X?zNIý5?IQ_e2Ob؆?wP>;$gtw-2<Co"NM̳ktC0wI/AEO߇y#C1^ѩ8P;iSnfXVT[zPnJ^3F\JO\ǃOį0wfD>510?rc7oHǦG!|;<24(y8}}B?8q%w:E-h뿱z˩k7o=1d֫ ;p{Շܰc[6;|ه~ݑ֑_gشq݆Ƕ*͞7yWoѿ~c3#PO<# 9L&5޲p^|UUQ!9cw 旔` ?ɧ?qCsrቀC_S]:0Ij#FTE7*'U5h[IͦLڞ5:Oõ>m`*}Лe\:Y~'|kdw֎& K[N]yfWϭ0Q[>{'2Xr'fKwn _qā6s/?}OH!ԯ ퟕN )%J~Oi;mzlgebz#>֌'w}TS )zGTpu~!n~G|WsĔUߣ<0&=*pjߌ*L%զml%硍=Y M}ϋ9uw<}gϟ?y[?ڞ=ypdXQ]w&upۧ@_P\n)Lmug]8yhߞ&ak- Tw;|TgO޾S/_[Ou7>y{a0ogW/{>ڬ"aco+i$AH'3I<ۈk7#GVxJp|~nAQ>}08V99yPP[o.LjO2 P<7ͳfRNIr‰zwJU>-^?y840+90 r\_r1UQjnJ\\\պ7,?u K+AH`j#]QM<}iK~FQ_]e}y]z_KYUog|黯'9Ѷof#GTrĴLDn/&~1IE $|޿CgNX/Jqh_X *Opi@:l rSP>f}T Yn$fB!eLȄj%6w&P=vھe3f sρ⯀LtyFoSZz`'.'*|yejKh0:[+}Ï;mAAR;kyg-GvЫ![!>N?hـ+b6/q gYr'lL _c̸j V|]'m߄#=:gp/'knK]rTo/w/EG{89NRs&U7Dzzzz:f;s|}_-N+LMFKG`_^YK Y)!8j~!q;ڿI _~ᅢtM{lNȓy+f.*p:ǗVZQqkohk>} ן?ha e{$gaGE5HD.ysD{S\!uo`0i(]7*d#㏸"Z  iCE*<V)AKR<]u%&`+Z=S)*' 3üܽ<=ܜlHߙyyEQRehj6ͭ퍅5=5sWg\NeD>-` A@>":_B\-Ioikg?K5`OH7Zj#oNΎ:GYxNyx5dAo}ZչN$9yPoOOwWg'g__ 碴CVCՓ'n6`V__e+gNyN 񟖺ȭ́>n>r[5q) ϛ_#=nڰ >fm j.0tN~n=8B\RO/*Rmi˷_` 3Rb}bgs!QgܾLa;H%Ӌ(} \i"J+zIP mi?~nOw;룜ƏJ,ZEu-ժ r9aΎm.޼}ԙTWtw9͜"|'/=yC'v UxU>^.yy2&.;/uC$=VC?"MTPg0_ /~AxP^*ٵCշRh_I1E@(rs JJQ ǭ رHN73H `gw;:~t&Kj==}#ݕi^"2Hx[8w,R#sN^.N.^_+}XMe5޾y-1aASLM xJ䔅kƇm~%b% TPp1cILtbk?q @Psrʱg h;@R`21sh^zĪ 0̈́SG7kBaQz7kv"";Q䵜 828EX%sg%_2m`og !1S69rҭ;rű(j-}p~QYٍq3',  M=5&,".yA߉p OEO89h~KfϘ=u˭kgnUONVyh `-n9>ũh5u G_+zhAG)Jvw#o$xE(C0HZ5G>X#bĿ9 R`\,N0ӿ2Qg\_ziJx<⽣ ^։xYg+)C:~֬ Wms`Y~ u6}oaTWwNAMcCm /4?64<*"4 rwQؘn^'O tX+eϿoyҸP/ J('W _w~%?5w uںBPYHX/*bxA$?Xdy66JWDT5HB_|FVRAB/FƷK6w'kx裶G;пIu8:Gn,D8q gYb,J^x֡Q~'EELptf˞'^}?`i/+}@| szrG`tR\hؤyͼ?C_[;[IzPG3+=VBu/9 )> >rm^Ȅ`3p`! '<66tp#1 {t:^ *HZk%r⏸/rT9Fz8y⤕v:sE!ϊi}&\z}]s}Q ܽsͻ.8~ܤY懇*ޟpnn7 M}לەUu^EqͽiwV>~ttxhɳnB9AdO)|05< /+s3̀ yK}__EP1Mju HF8e:̬Gs-րo%3V;C TDRY+|`?  J?xD oN%1 Vm{(̅KWo),;|ΜU/ܾr>[?2z2*aK䀠w&EFω !~!!!>+r3j0וXzI37\(WW: e9Xa3Eg'fF(Uqw,@aEgrxjt"OIyu9xn{ 7NzFaKFMJ0mX:};h!V ]I??w<.'Z ` 8sOZ8Vq[F>l<}cg/\8wrߖ5s9Q.>ɊJغtJhppTea kV-  XuE[6YU[vG:ED]<Yy"]MB|j 6?㷁\8؋2?y`_E+M%`9{{}P8),) C;XeFqO_qn_l6 0Vrp&/dvWѓ*'@-٧*oggڊGy?G=uKόu|?y?|x&s]*; 59:,48ZR'@iS>ǎ9| sI 1>/8G[f;3ׯٴbnEuu{eM/."*n|?/O!!AAA!AQ7~{/6`a9u'ͩxk'jr0BֺGok/{}_7ޜTrdc]F""ZCF4ԀC>XYQA)CD"f fg+ҞaUp)7 {:H?߼ H{=`-`Jb$`qsm ῐ ^SCC@- 8ԃPTTlP"2F{{?XGc#r'qRt!~VB'rp&ϓGM{k@]/㯓_1>j|Wο7k;qe ̚6Qnt1RmHۘeKO[rwiIS###"B1N)2BpԊjĉ19bvKq~e~շ?嫿~|Ԣ9KVm;pz AG)Dvz&/@(8&:рuB~CҲʚʲ2DA5PFZG/k!΅ڠjd4Rln;?rB 2|?`}hέOFWVB} 4ix[_N8$o?'{NZ0wִ@xfpWyD'\9cf.13` 6%M@P`phx( :9<($695襻,;Rat~ǿ}O-O\%l@o'}(C-lH:qD 0R멪0@8+A_EX/_*@)04ӗgGO|.x+kuKK;;Z}PdVϑǏwWz5Er'"k&(k_s}O߶.%ia|+yyBū:ƩsB(7ѳmN",jРȰӣƒ—H]dB9}~>ՇO>䣧3D3{>܀n 1hN:&=`s'_ ^+H$ E<y9ρ?)Mzt(} Bo~ 7l@=z2`82\hj9FM? nJvxe?'yn]pV.?UP9yM_wܜryp96,  %eSXC+dt&+W>;o(u,/ 4lF~&!ȝbb>c*1y D`ާ?B(npDw0(?BDr4߈?3Бr."T݊H7rBwthgDɒ/=RFt?vcWk/@cbj&OʭM7~ ܹy[w&FEE%pFRܿl:<8qj?bϜh9kS߼$f&kMcɑg'?t{7M9ӛ{lhɉn_fR~46 k?a ҡ 0L8c(ց?ID~ O-F h <8$䊋HoXo$~ Hk%G Pxh湀MP۪Ŧ!՜31~ҋM`x=zdNkQ pgRP~]#tugKΧ-[*_=}tWh8$m}XVy,dҘ@QD/X?}R1eֲKfعvvg{R2<מX>ca0_%_mm[jii?[X/0a#r=Xx8VjRjv|Dg_F?cBy>]8lqshO,%=#ǿYX4ws glJpP#<=޾?Vh皎Vj@ μ?p|:>xiѝNY 5Wd߾zڱ苗B6}+zPmt%iKc#CD"a3fN 8|VR"|<\:kpɓDnJ{M駣T*FO(/[0mS`sNQf>R_Ay}3~I)~q/| BЃԄOռ-XJ;~b~ l?g)Gy<|p1MMN';Fw҆1\m~iLG90~Uݫ5>{=kjt}-";pҤk5Bp‚%gF( ?߉S"&O=;yMA~][JŒgΘlyRi3cELu[fNN%(Ej@#oFR50TQBCȊ v(1Ŵ'W~o W6&[g $#f}5ik=ώ7Y_͉GQO˻}5x׫9rjQz?q"=1̑M묖7o߸~ѭ3] 'f~_7j .HkgN  a1mL[vƔ3Â}2<}R։#._>|Ggر#};Zl1KuO$MA@ZlzA$iTSO1AaSfXDۇk`3vAbXuY?8'Gi3p٥FOc|~ _εv!5NCn0y(3G`={OC(@v qUػm6WO?pC;2ڑcCRPvvkKV4;A [3qSM 5+f/dlڜ468(,$gG ?6L8ApߙR8ǥ?ib'yOԁ(5UL0[9 # E$0ry` Ia?T^V恑km*6Y 5/NϨ%q;8PNJ{^9@WTU*:RIp[v2d-qMkWZlYBtcWe?|< pIKgFL  p弘ՙsd/`Aʛr,Ws@t&g-Vl6*vFv d# `7(I? q`P"`RI(+;pa[P\5 V~&q@~`|YdLXn<twHlQ\X?{K{9+U"%Yj5?8zAvN٣oX6oyLT2Tx%=K._Y3g@P?)Vrxe'떭MK|/4TRqE=B8rT3e`6 3 iH^P&\p=@F}T,'mAz~{1mlOG_[&g0 `VyyRedU`M ۔6F=C|tJk^ڦJ_y'"W S::L#΅S2&DN^.%iG@ǍWd=y{4( ]<7syplD~Yn6gڱ{C4V^zEmH<;uL}f0&ڤ`ʺ8g-EMMp=4KG=kVcP#wAjq뀕><@PC~Q#;m /f KTۦt?l#.dza{ťJFOzS%*‡0@;iB;yۙ&nܪ-ۖDz(G m;n/?~{\/;8MsyX@`@ }'Ƨ-pQ}R&GL]z M-](qx:tc{0OIi`g@1yRY D2T UKp*G<ZBPXX8Gk҄/?+(XbH 761Ϥ:NQm`h"?gqR9J4QATT9DioqlN̕ DMJ9|xlOzlF8_Qz>[ [tFd0n}lL[71 ,:*jڌiCBdī_Qn0cG{ qͨDj̙˼j6ڳ ;K?ɛ_8o%2@*Cfַv~NQ2?yy UPo6 = Sj9'1,-ZG_JZx ?munO|dUT6ST+m,!5g vwP:{9*uˏ޿}jYWJ]"?^qhFQt`>U+u sb/Xq}b͉h^Yϙ3w%S]&gOz3cƷ0x3vJcp}dzfe5T#Q_ՄF#_RD?qI&A#*7zR7/Tc#B~a^} ׊#]ᇣ]C\\%&>2۫q|9:@uWm_bBDޟ=_[2A0)wtq>_;M׮[fʤEKV۸*iʕV]feJkWZbaStڔ^p;|tY;j~ά r}1C*|P*>j?ʽ9>SyA|1csscXzվnI*چ #T@Ok+;6!ڳ>}+9T4:OhccwKTfYpK ?GwvB쾂KgL>7E1~?{M^gghdqA)ٳ&-^/<Y1qs̉>1bҔK[Zi5u0c]NJ@7HwT#2I_Wp(^f|돼?P= =5f3Nl/*I6=rq Mv;zjٸ6ާgA2˻Ct'wqkun 7ھw@cΏT)"8';""98shC3OM,U`L>R6~F?Ӿ"•go`7IQ,@jZ!*ߛq LL?cx8YSfJfz~Gɵ? WJuԸ?:'gN5awo[spPb=sҐJxTn[{ANnTzﭏԪ\<<\<µ N5sNJHxW5J%Pk7a:-5p]1W$FFZNqT5r&<AWRO3-)yDBb?O2ŃPKAmM=2BeD-)BN?w`dx-mZNOy(̍ %~ i}ZH JWiEkiyݓ\T sbPM1?Ue~zuֶot/cNo@_/ЩAn~1 42O^?se[`kuGH׏ܽ^ZFrEwG5-:@WE/X=P㪔P 6L~!ɀ?';}6kг=b <@V lcyEcvz_Yᶱ[hc F[a;JB%_<̂('G5Uߝug5$bѢjFvr6^;?2PvlE̔GMjF\HĖ):(AeU 0Mřd ʟ~yghly+lЦ`8M/2 ĿT:Aw >`^.şPwʕ}V~v⃰ğT:zFu]UTi'/v%5ghMnVpZr4K!QE-r{W_y5rG~O)J[Z:^W;yJe[Ս+{Gb=JGDyeV>NDƺ`{"L3fVG/#j s5נ/ւ2)9g1h)ܥIπtdBÿ,U{`b?nz{PU667ts㢔^l3uOba_'6oaa'cU'c7?vt " += +iPXKP$Fh ~HΔfP !TݘQbaR w` YrvV8m۪(CVX Ƌ=,4pT:zxLsW)xg7^).tqe~ߎ ήnZ8U1s,ZsxoC~?~؁̃Y'O]дGl^4+zRdd>h5ke%Ә_v4-SS#) bMJzě*=uX5"zza PVi.pc~7j \wbje3b ek} u )Q Ry<0w43IT"Æm䥐]#Gb co+c! :U{ꉳ :vڤ[m}GŽ/BTuvV؍nSVpAnaYU]]cKW͕.}~,KWj{wl^l洍+9q4sټ[ҒgO)5?).1eVr6|̬+MX[3QϓAB)J߷F=͍0p _}`*/7J? EOuKe8TMK¾hd?<|꾱"Q)'vc~@01 *^(1{8(;(TvnGqV89 6#7GQ;~P >֪+]-:3:n*|pko]v gϜ>uJ?ɱQ3NaFTGc w'~18v`> ؀ojX Ox_R&˷b`uHIMOL~q"O\ɯd$>8lF_m=W:+rHƳPLQہ;(d/7a4``G{Äsooҩ1!%QYTV;y;o]?=4?̕]t71oi{֛O[vz<=&xzxψ]p|n)uFn JOC#Z3Ϋm6H/tG7j!x/-y0(w!+< r#^2毯X `"Bĭh܂zZ/,*P=0w>T S-YO]R=D *..񧌷w>grvw#Co ?wܙq/^|ݷC/@t\nSg&_$\iw8?{Ӑ }t|m]Mg=pc+~VVi&_a'AhWX\qei7J\QRM!~=#ugh =}cG TAJxyhipZH!ffidЁh'n誂B/gGa*cuB'::K_n.ɜ9!2B'_=$4>.vt7@A瞚F~UtkuS:fE_Zzṯ¯ )?\Kiߏ0P]@!?#p6:L=@=FhGqO~840W֑[1hWFc*{u/T(AJSKo{7 ~_mnQ#* ;e wwuD #*_ x_ytͫNժm]FΎȨh_Vrgn ߤ, 6PF܉cP՟*YM2a+O3YŅ"ɧsG` m cH=3Y&5K%PKVԁoƫ+'w!|\ُ7*{=qaN.o_pxU1`Ynj_Wر3fíC'zyExj|"7? /^mSã~ 2aֱ6v~Ԉn -u#O} 0@? \ }?}_-~4ݷ\tjA 0Bgן1y$Nd4J,vl(u|z}Κjf̏#_ec8XF@;%ͅAH0CƋK'$i:v⽋NOh^hOp?o˿vsڤ9 /X`ZFPQKޒFP""KE=K(Vo4c'FxH)e-jC/ @/ PA'T<@.I )87K#+ "?ۻGW;/(s\jr5ɧM`N4y9;9;R)g(\]T㔁sfq/Kݗÿ^|?߿:/7v/L7{~s3a4HuQO<.dٓ!F~oyqtT0⤧&?`Pm f8I5 BdQ*EN80w`҆=}zƟ{~[m_Զ4]=ݜ>ViHW}~xS|:gW{㣯w/~9PvoELdirŒ);zYȓ^B{I =9a佐MÆ"_WB6Q@a.`Cp9)?ؿE4eB3AX mm=i9%Iih^w__9>gH0 pxiKXk?a>Պ~8BbPS-Z=51į+& ÃC{n-7t}ǿ}Ï? {ppؔsMp̔U 02Ƞ9z$w>ijIo@MhPr?H V|^MZubAफ'sv166F y{ ?/F0[OMC}Mu-FJ,T&?8.!=XrAD( (+zӬ\#'Z@ 50PiMZVK;HjI'GR iC0Ӱ2KyG9+gWuv`?󇝃) ]I.8G'W7OOWwg{&&0LW:gFv_9(k^fT&@ VPM^PFڿTH8d (5QCن3Chӫi쿵wrRtܢN^.>%Uo7eլ }ivRD(8J3EG༵pKl!_/a}<ֲqO_۟?}hlUl:ĝnAMZDo6J/9?Jw&9cgڞk- u F)װ Wv4_~^ ??Q? HaϕIJxbHEh`>u鯮 qR*m: Vr3.^/6?9s k@ 6KI??~W_~۷OMM<7H!pPةSowXt_ݐt"xI 7r7O\8e>D`WWB+@c4H~os%2~J4"uz;)m%It sQ~#e~>!GI\ h @k˅>J;|0D5еGzz:*zs^}O7o-qOm &?qʐZ; ևFsKԳ w`;>gjQi@0ODYEui &? A-/A.GL%_z:64*-%$kE[ ykn2VpƉͮ=8al&h1~/:P0 A<}]nmW-x]NeObK?oq %yD.5"-^ގG+asLA%f}?zsAn_ayAoSLT~uݿZΟ@ 0~bTG_>2r(9>7 =(0X32 7Y@5uwoxlZڱ-=;c~ۺC; xH$H SdcM8ϹR񺄓u7U|+cg5;z;J |u-_߾y:믾l3E:>Zg}ʉ^{;|9gܼ_67lTtcoS`< k++m -FbtF X@3d` ^PDm;:[iFͪVn0` c ĀijLӌqFu4jF^NNr9 Zo߲QbYr|S~ Pjjc+ˉb]6d#w7*?#Y ТnbG2l0wЎ6A|=v91aF.\W?M_os7} :y7'U8~AݓdV#_O:ijܷǚ2>иQ\&JqP?RnC/0>E[gu9]0.#L +N^щ+VU7*d*REU'e )5pS̈n'u7?zjf5(g0Zܕ_O=o?߮4/r<[ G :js>-O{;||<gxs9R8eo\|^H~f7Z d4["iYoUV(!]DrM>w•=ypNV2O@L&/uJ_ ;-99=>X_ҙŠB5HD ?LMÁH}Ͽ{~_˿~pU-+.1fZvCEHZ"#Jr4%*D[5w-[O마=jHO&/f~x[P ,ıY 5ḃ KbzJ?o"U<ӮF[_*;KGśILU+<>ŭzfz"N!PG}y[w6Z? n,e+JEUvp`dY1THIn{PNHD#rRy> >V%.{I)z)x'* X?;ILN@`V ݏ]h5L*?`ڿЪ&rڜ4;r:ČC& G\Q:V9z{ݣ>P(14_:9;^yz~wpۃokK.N9^R.I[aYHVK^ݞD2QfpP{ڏw;T!L6X o^Pw;(#㭏.X/!z#QJ/ nV=x۝X\L#Èz 33}Pxs}Av$s40)X &KP%ׂdkRЙw ,XSԨ#U7o\溛uqtt|@XDyEEM:*2j?`zomFWTY^"}pX 9즽 _⟡ ?G1M:xG|&N7ޏ M'=RT "ncc]܀摷qFoDR|ӗtN 32;@sF :|hZTDkgEէY hC@lpfW-k7\d-ܷFՖCL{`? "{dm ו<<ˡh{ɏ>R~Lao0` nbg;Y61R. y!,iŧ?bT&9xuMWU.;yU]Q39B#o Z]'Qe12ygS ꂆWkٚBahwb ,7ipXb!oǟ#,MN8ڰu{iAwrGDs? `J(u{)Att--?Pk&?<90|!, s'5YĈM 4V ?( F:R'w:< #\p_Q1V>6 Z9蹤c鲳s,Y[r,^h,=@2X6}2;7Ly 4|X델{3=ؐv~nHc4>'Nw8p~`t4OOjNz Fx8>g5 #~Oud`~sɷ74.ޠ2+xT + _J\_@ݰ瓭lzzUXf-!}wK2,>$[)xs|{Hqӌݞ*pwnpf?l)ݲQTRnTBPg-ftã 7AJCK-_fi^u ̏[y3U,(?qmk̩OpZ(tjH4{M[WGc8FƤ%@8W{r?'Y7^_r'~ rC UV}?>&T0-;@ͯV?t"77W>e>hiej;?4;q%ۤvVBjmx㦹U~F!3> VxSӷ' h%Pzr) u\} URv35o*3YNGG@hPf>4-RpW2,sW8@oӅ1H]x?x!/{)p1OevB&I^v.q[I@)FLPSbi!oen㆗4Oy3s}Zo9* m .HA9Jckٰ*ME&&9fݞ 8&;Coz%/9NK3c&U p 8X r oTzd@`N  ^W?!H)Rb)DH_h#_r]#\=p)݀J_?cFDϳЬq; *[+|plzI }s=jMo.1#E|񗷿|Cޚz!#tEo{eb0UMQM*ɿGe/K?z䆅U ,]X*b?#|T})P_v!?smǿI\<-Ulhu :gnn 9z7`xڧ}5M<(/Փ`%9h,{jvHݤ\@z0alqYgY5 ?cF* [ lqmGObt$1D>/1Vz^S!RUzoU?"=08uⅳC!ZP~#~ w8ߣT|F"Yo >>مԞ'4Gaǃ|B%g2Ώ[F3]Rp1bE/j'Apӛ/1H׉X \/~ni5C@ϒ-/ߊ #=1B0n|1$I^sޒA]q.噀O>o_Õ8շTOgRƨI>:GU? :" t[gKOٟ@ #S:[ \{8IgMLt>"Bqi{7""UvC"|"T95c`1/#ÿњj1ILT02"!Fp IFSOsA3ݭտ.r+'kOtRLU@-tK(z14'}@P2td:NiD> T jf=SFfP9^,E}W/֯?ۺޢ7j߼Ќ<āum(٩Ko2\AkA^I363fUT#?s~I=j KA;~0?sq)wWW_OGpWK"dMʯbߗnoE x p/u@D Q- Po{CTi.S  G8|yA>!=芞A;c1'45m(YSj9DYP$O$mIa| <+0hc(FZ9XE%όu::\s >㭞KͿr.GĻy=ƪ0@Tkg&ƿlUf,ɋ>Ⱥ0Aҁ+cT߻EɖА PJUn″Zzs`XF|09*źN<>WiiՄX͓$ST y?ysV\^tIQ=IՐC?^Z݉D4L>aeuvѩ.ah=|#2 kqdF|Pjf 9}&Ѩ"$Uuy;:"M{J΀I)I |zvYJ7n|֯YPS*ZMhLhV:HFIһ'\Bwߧ< {>OG_t'^櫅Tȃb7@{@3 8`=ы\ %g twK%8>|Mק< 7UF}b M>`s>G*Qց"=3V3'ETQruFi}\n 55e̐U (ؼ{/ux ' f9o=[oGyއ_j?"Uy Q]n'&0ٽ He} s[qٓWnhKA@-iiV?zW 6 w恏!Z")rϱ6 zWH͠wt|e =1Wr4oFff=ZI"tGH! 6G}eg/{O~|z]~Eʿs_Mx^P==EZ`-`%'2CS!~2NW$/ hpZP 2m{7뗙~?5qv3Nx JAWP\b۳QgJM F 8`4+|pWrwW5n.C0 K!7/H]?4Yg|W;>}xwMǦ_ ?'1Anh˕ Z Tʟk,uA|fW ijK_̬FmgNA2QE$*\Un97j[Gn(r mj< 0jc"Yɼ)@< !Z=\noܱL ;NRii+}`81Dw<17)A?)%{]O~g|ѝϾqq A0/`vq 0%?TqD6ӍE{BS>dF*-00!r~x7N1̩_"--XjrtjuzSѪ{{"̝K գV8{Ȝ#_g^y{l[nzXwNqbmRHUMo4W"⏪R ^$&OMhX_҄g9$姟|w؋wyp?3o$$YT "_X1DA 8n_z{G?7OoB=XcErw|e vLwˏWڍh[;/]ǚz:3&i6ZKox/5ا0uəPr%Pd~(~ 7}Sطg{'=X-ߣK7?@6p X@p_tb Ft䩖NCt8XAOum ZP,3rT': R!c.$&cT~.[n}5嬏>Ulhl|-$'v#wdf'vMO[%cG\_ks zHb} R%D>Qo41D>>AC\dˌz)M~*Uz& : fpZ%z>nb~ۋO&3BԖ&n1I9tko̡r_Oo:w۪yɚk>7oy"wO H~O*f+O=| DF]H<9<$S$Jx7Qǀ?>ݠ}J?`:N] t&o[[s|;A~4u3.P!^N g0yb##uX,@!8ٌ1v+WGT^!I"`nrݲ|YS0Ej$*θ_Q[Qǟ}GV>'uR|f2X42ĖnȈKrR#%7].;̱ -XEp~QbQ>O]yw!7kfD +?q~o\Qd]P*r`cQxZUcig: em uJ74bx\,\b*>sY%.dR~# 87ryêK K7?mYO b2ҭU1(ۏԝY͇5!1Ku{]XNՕoӓ㩡+ h _C.@(}% E`sS:Po|g &@_<  pnwxƺR b.1VUMGd/e\@?HScvY^T'Z1:&Ҋd!kN5+S&\ sď-(-(<,>Ë~Gدq>a漸q΋<>.rLLNAg!⽈D*Rf/ : ? vkqwv8Ir4Oo)d_?:b:F˚o _^]`+ĔAݝ鉾ۙϻ-?OD",͹%v7+;ہ="ŒXsrW2$8I&/nUŹF}]o+"{EFk &$h4|?7\N<ަN0JONC>7"^;BЀ!8q#$.G&_`6?!z?niP v+#o5 J0BD뾛1י:f(nTZQbH^ ua^IeeK m0!)#N)HƐd0d @Og^I2XXVZdeYnܽ}Qa"ς:GsD`V$UGsOL̊?;;5%xx2s#|s /s vOob՟S; . _C f*R1ËؐgKvg, ^]_]h5;܂~=VVj͚ 55Jr' kGLhEݨf Fb1ps l"/Oe{%N4LN(_jQPO _A8^bY=S̙3""M00?hzǡt t}J#U?*MD$<84hsCn_dUσ@V^_S!6K89Ef[v횕 u+(VRd?nx/4x Kߑ7xk]uOͷ֘Jӹ,wdD#X A3>Ң:wPW˩ҳ:'FM{&7*-g>=G'ts}9qω槡Y`5d(A@-yPaۉ3 V@',`4!DaҏߋKЄe/=@[=0@ 85-'?lLG| Qv_GC{+WlXQUHO)" F0!#{CbȞzn99l~6uYYqŕH$@ݹNگ3C$N0m>7<)>fggE'RD*C@@M T(,?i_24i6@F>8¹w rɄJ:f_Ϙ] &Rkas3^XVSX_߸fkWM1竞zܟ, tze5S~ITij+];g5P"Lu!ug/?/ο ~POn`v"p2Ϭ oZ & dgNgwG6ú?]a3?YtU,m}qDFk HeP "C# [Xsxi}(- X3pҚK=Ƈ#Hڙ20Nkyz}rNW~ܙ3 3SS[`fr$vy3eW{ѯ~P ayGO3;2ۉ$Qg>d5_~Bgx E #g`l٣ r ?ٰ `ǚ!Fa&,~U֋_T namи(ܾ~Y)Fqk-/t\icmhz=kA.חwڥ6[I`e$r(+Z@A/cHU";O'& /93KS`BcV"H ?y?K3.|'{ԃiC vtc}#ev utaK݈Dj"yb:;2®*ME,'d n j/YaUVYwݍlλnnK ,1<[,Y5'a 6ۺuRZ؎갚mImzצB}n1/I ?2ʚ ~~Vُs"OCgH|4/~LF<.v韇w+π%o~d_.m@av!ULX2 "GDw?ߓk}:ϘHb 7_ ¿7o|ʺ<53dE&֘fC"ޏT5^_w^~p]3-e^1Y7x}}| "3 g\.F#A]m:PijAP#Q(ʯm1`BB5Nqq NؽƘvd"P1A1CNujɵV֯Zvmcmoq7o\X[PJ*pǤS'jIw~u&kC/Y"ܚWTX`!GnAIy\БԘtq.=R9^`^GBjt;>:?LMp ̌85҂G_o_?nzD Tu`'vptQ[B}+YWie3n8D. 6jnY[Ϥ;vF?#7q"߯\{݆6nڼn͊ ?iq2DO3VW,]wGz 얊-L&_cII@pO πkyݱ~f`H;>e=0_z .P'2A RNIGmQC)B@{gW{h4u@8Pn4:LJ' ġHlueRv 1-\Zqeݲ嵍W\z%0JkAKm d,ebjS醕ߞەdk uY9SP]_ pAtNPPo@}> o1f}M{#fnV4}QN1qa8ۉ.PveG;@m@bOpf Hيg+ب,D_ڻjZ@qMM򺺺eUU5+EٷryEiI!u&]O(߬WNtZ񚭻n(0zg=Me2}ъeK˟XEyC*`avJ!(21C\q{aaӠ@w1BTw)=`PɌEM.w8d ́p$BlOO2myp]a\@PS( x7e*[zCZ`TEU5˫UTՋZ^Q\K:]f$Ph4Ca}?Oշ޷u}ٺ|˦}z?~w9|[l+n^n?vuqmDݜ4zBA*=P-5ZĔSߋav" RE< ~{: || !y`/z'<pP2؇S#_*PC9Jm_}CF[ػ0.7@uyiiIi%\׬]Zoa_7ʹA&ی ?zMVV;OQmFև􁷷#ZwsmӁ((B9tٽhpwl YO>?=/9g>sA3NDhWM::h,ЀԱ 09$IyAHGB3X$4:9[$5%EťUkolը7!Br曞6z6ce`ֻ\߾U'Z]^]φLy}Sx(ᅱTxAGS^`~O$CX z+6: @NLN# _@]T.= p$U|dAoT[2Zz[2#PP!œ /r26ƟhoOK"z>ݸx+.,,.@mm튥% ءjo SfxgOT,F{wl;~O F3o?nQer%K'' FQ+>!V㻓7i_GڡFLcC g^{\# ~0::0 衝 APa%h맩/UJ/Rc% ~X…+efCwȡTǘ= tˍٺņG> L?H 5,)`RkXqcF&(MQ1ΔX4l|ĹhEEOtg'>/X%7 q@G*]q+qu$w Q5BCɗKO3:$jϨ>gULyMfnYS^`M0̒ʌ\WSkx_,2XL[|M_5}oӛ܆=tw?*7{ŗ>f|+D=5ܵt{cSIR;|{)vT`=CV@4?PGn?> >rf`){P!-* 3”pM w.~p( \P25Y=n"7sDR"틣/ntavb]R%DD~Vg,(yQ E,P<)Btv0'@P2g2}.*, c $JH*t^g4e|26߂Ҳb.-/),)@QIA.r3o6݄ տN/w\͢YݶxL$Hx(Y[닌9zy+V 9 *nj/3w| G#x7i=ʦC; ' LI nnGw?9Bc>0C3pá||3kb`m+ΟqEԱ YjKUho9`\<G\p!E/T4ƀP/ݬLz w [E7, ǙgBH^n<CPbvKp_}y<@ҕI*CڬEKKJjjݸvY򝰰UIߔmgwTtJ2"}\jU[{𩎯}&Pp<skEOGFh1BZ:pt0^72aB$0q0?L$Y %6 v8 ?B!Eo7?3<|Z'J'E+/y@0(`Prn>ݮz5IgI f%[^QqڪbQLf$hӱq kO<`/?? +zCXp^r+֕X=#V2|s~#wOtNэ?6 00S ;3t]>ЌIb4pW0*p~܏z ] ҁWlDiSrj >WѯE +Lxbda ͐>.I:6w!-9n% ,ҊB?'qϰ_k\c})_'~fi==Bo?xwF՘Eu-sךHF 3VJIޏclE@.oOǩhjp_c#N` DLa rYa2O;}BWDY ?-{By ,c&qY%z@P[Ʌ n[!CGH ~Kd.Dl-ԧ^=Y-lECPVYUUk2#nL\76:46:ԦҜ99JZ:i{wwOv=t06DMVaeRk[zGãhB c_<9a |2#؈8U%MΟ?00? {I ]Ùw 4A 5pbCP.<'73 !Dc= ߡ _\} oF0C^!rxJkK*`s׊o|?5ȡ(;OE {wp}ԉ=~,xw6hݻA[*7싍 ň z\b!^` y۱J@@tay H?9ə3ΝY8sfar8rIZb.TDm (QڿE%r`KdԷAmP }OS@ ?4 ;㑯1A=-!L BoBOH*5{ޤHONL-;?791pn~j4J&c~T/x9!|ƁúB0ʙvP)A `eC QU~\j^h/Jl-o\:/0E4ۊ+~ U5bCndmDp|P'd=z}OwOkkߑH YH);nyx f!,$R)FU׏s7j?BxɱiXL䡓&?z+8<3p…cًΞ9373079.&b"Aߌ՘K%} b䀂0Obd$z??}mHʌ&,.\V}vLU--Ybſx&͘WVVZQ]YVD\=f-]jyyɒ\9OmX,Ju)%OہieܸV4-u`>[W\zzL6[^qeeEy8Tj" Auf u)㑗8PEն}2ŜWܺ➝]_~n=aQ\̍ m΀V(^Bl,#!d,"rn4w+yy?J Dv‹6 &&%:M?@cQӽ{?v2cv6HM _ r`F'XE_nl@'(ע4ěθlg$35xk]ӾˍºѶ|c]3-op8ejG-K kI yɄH's gϟpyQLx=B!70Pp}ʘ-2iІR׋+ K=3@T !j?zq&S#s.}Z+S ăLk ZPRtiI~`Ͷ<&Oţ⎎2!W QZ^\p(?3o9Hͽ0}!Ǹzº_>{ܹ _}//yvv4R}꿬uc'yO'fp?1>J?3?t|`tu8ZZ;ۚ +},`p?9/51zJG瀶oLTBXsGd NU >*"M:^zb+(*.# `58r 2_|K.|!ۮ|rw^=;_?o~ay XH <ΰH_v˚Ugŏ3gΜx_+_]HQ{L%JCPj8p^"SXjv}Ъ[whNĿ]d8wȅq>D'/*K-[F.\XX80;;w("o+a^fq&Q~v~f\<܄ 7O/ q6qtwBNP?DWnBo B}G{LJ@^g9a]Aa9&dHz+lZG'hT.t-=b5s5 $_L)ho?M}Ԫ myfqn~k,E7󞁶J ٢Tt<#n3Dw_עs8aQ @+* AMx:I@~ \.7A/~ۛ[[N_4ȔAQhmm# 㓛 _8lrMYN)b853&SZ'ɕFwjMcL/ܴYXLeQ_1po I|bc~iSW[k;_wZ?w(w}6!k_tx+^7_]/ύ{ZщIQُ$ī0q;Cɉd<03fA32|}|G>i L@&H8=Oru?b3p<¥-}c 8?%FB|A' `.XBOހIjw ["."AZ _>uKk9=<z,oOw?? ?cqk;[طɚ1U6<:0FM8{/^wM{{1?69$O2BGw۱X*E?a.+#â;wjijli 01t?L5;,*x[PPac/_CU"56;BdTX>Bg0' =DJ<2`A5K6c&̦+05酆\w{W<~C'{zN}=/p[([U-&an Z@pHv~Ntvfanj(ēT2)BJA1O6B pP}0EηnkKz~7@P,ToIs]qiONr03S ? \Iw!nM py/:@8y@#Rݑk^OկQ_C#2[jvf}1͑b 5J? F,@}bX+9#Ǽ@g"/-Ϟ]X?>u'Nє?J {nz8oD|?PF?vru4wyp-|f)yߨ* ЍAϷ3}x,}RTPsY@`w//?w_\pNt_]>7u:̟o';qxN{n~3#Q%D0Y ϼ߉C Oow;[A-Z}AjRz0E=HV cQxtY_R)[$*Ig4:6Wo3)r*M'̤jif=?uX,?{Wl~uKAi.i,N>͸ W\EEEyu;}s ۃ?{wHaO3`VpU ut*<VZD8p/12;|Mύ>}MfSFEKW(vڐ(O/<%Ïτ ֍ԙ7<4(~$t$:6vZ>KΧlܟ]t?6{t7}qyx7w4TŚ%Eu{IJE,,@.]r™^F-nT{'Zc=L0QprOGk;m]1U%}'v2aPT v57:yq; D"X\+7t.iuR J*Y93~/7Cl*r[ X<0[ 58=EZ~vYe)ac<&?֋)_ȃǟ~a߫yM,P(w ǓxtҕoW._:;36<Ȯ03A1OP*):D"YdA}ƗK @8PO@!B 8~ ў478hi裉\<^ RP|rQ3OOiYL|&՞Lң7<m@ZSNyOn(x y˲<<Mꯊeln@ؿ`2x~#Ͻo^ox8"uڹ=/zw.@mȼeJ$#+Z0DW@XgSAXA^0n=L&hoVNv<@`߅'Fv=nj?0@θ?PU `'z#?~xÃ>~ßmqgy`Hprtn'ھQOm(Ʀ06;HHBH * MqIĩN2df3{{真$~@4f9,Ȉb4uGha8]Cӈ?Ȳ_zp K~+Y&w7ۊ#TZzOM|m"o?wWssr1>!./(4*13D-6Zk>6: 8 Xh/_~իO{14nb s ߀ dN+< 1.p+i]hB r^{ुYWf53j5555^Iv`Hg.WAoqiumx饯r8SrR⯨'~AWtA*!hib^Sn7Ut0U;˖קFjnvaf/IZ\S+Z*7h\Z*fěXS"jRXtbRVŨm)!*dm Q`䛐8`OO={W^WOGXl+#ҡ'Lٹ9"^W +W}VwO>ŭ:_U] ^j뙵UUu&@q#b:3.yB8[+c8ũE}ʽW9* j`* eS)T~Q.*MCoiyjbrvy8ͭ݃5~WV4 A:׎O~[%iVof6;,,>%X6xi{7TMۛj>=?\EO[B :xV^_ 8}2I87F!k(?<99ZDo c]mrw_W{/\)(#nlRV7Q |`0jꪪ>8 pjFH386ԁ34%KOvZ/W4=w^/_ޱWWXP& M埇i*2?y]LًO\,f]Sӏ26@?1zϿ'+'rgG{'S :@$ۺtYW;}ӧkcCCc l;zq 8\E^Ë &H<SHio`p+@G޼C  Hi~^jmUmp+ `Ձg <LO$nm{ f1y<|?%+z^BUՊs`(:|W΀B3P4B}K]^^9ܼ ݻh_״vZuL#Ԍ<_ hv-/MvJ9|Qkñ~\+T@[KkG48ȈSp838~I@32=}?);:;;ޘC_l{pX1FwȰ)}D A>V R棲VVL@m-5UU 0XB/g`cأ",6>6Tz9!b@;a q+6 $Q~"'yq-?;EjFxMOQg~:[P:ɢ[6v@f6^y~OZF Ț- ,|bR6DCmq>hͳڪZvʩ%aw|{,ӳӃ>D=[0'ov57>?FP]SED햵c8"%~p>lK 3'peVVN-VT@πWB:LmzFj>H m~F*j{>.`q_ o½o`u+WXJ+M}ʵى`Nd;5`p&͉T,(ϭf;gϾ?>ၶfnof~MHJ.S" qRsCQW߭nFg$v:\DN~a .p[tx?o`plP̯\B[0651ى 76:ԏ>paU>U(%% F *VYfs~kT|c;1hrοbڏi~b_iD|%ޟƕ@'@á.ttE5xhvn}q( ҺWsYzN ~oMNvq fH&Ρj_Uo;1%m_,lq'\593dg;`7A\rzxkah#tp6`StGGaLNC+wC.<D}hAhHazzh2FRAXNJ)jE-%#h6T!SyX+``{{|eE "_es^Z!,P(y䑂 ܣvH$ EX=9AVqy94kk+z%W?nn6f&ĜZ@"7 d}# T6q6:{19 b5 W7 p bmzxx P# ${s:9ٜGlFz`y^|Q& `MuaJ0рwF\"LQUwA;'f<6ec ol5 W6(aXs׍qJEZr`,ۼػ0)f`m }@%Ap.:| rx=42{zكftpvn(!9^$@>5ozCEU^O1+G{[I͵edmiukj{L!!@7 s X@Jl"6;c~CW6LLvɤP XNYrEbqvw#%AiT𺼢'; e6J@X?69=56:syuqvf~onS!RS%Z8;SO bXˋRFARZ!ZnGj7Tzܶo}t.f!k}VEྰōYH^_C]ڄ-],]v|9?><0k;cCc]m26i}C}N ;1Oi#@-@_PX\J+oh {'pgi ڴMwd[w]jܚJՐ>4ꊊ:Bp*@F_˳so<@7!FW/?)I.Ě|a/?9-#BzV\bN4xq²8Y# x~5›s *CյɅ%?Z[Y޹]( V@px VF67;SuZ>}CC"H `OgDӏ_ཞ~D6pP5@05h(-_YFQKd@(&3@,@i/_\.@T;# }[YxrlPv .5yH3x9y)@ yíxt!i^H?\gM/AW-M8=-vFԌ؄(55ۆV?~x{uai} xmmp"=A`btzemuv|jay}ח{dsP,lo-Bh0FRnlwG!u pM98MG&v/k8;}3Rht/KAWRBR(*pNWbhv_|ٻw/W6_~'o/_?+!كWSZ0VU\ u>8u4 ݈b]P54}@,$kDìRW{P5K i~g=ۧp^~[ M435RiiuAjz!_H{?Vu|l۽~Y C>7c`mq~i}ssyn~yvX rc#cs!(lЕ ?L_mmmRqgL@}ޞ!vvX}Lho%xoiyu.F}zy DJK4 Ri8gCtxibqWoqOE Sjpʹ`lRT׼TE|C RhWV>cPNѓ'Daz'?VotJ~W^>?_jxn2ަwvֆU䒊ZU"H&l^-Pzw?w.TpǦ@.8}~{ :l`k}-I]GR wzN@]{{:%B w|C2RƩy2ɭÚ";YGmJ؟\A6.% KF'J@6XZ#zYMCCi˷H7_Tt^a2Cz+7U< ,W L{ԏ4ɧ}prYxS~ų3Ty}~qq:p|7CuW .>Q'߾اR&}{ ]孃6Y'pcpzG+%s[ Eū]=7zh@<+p6Mjp0V*<ˋ(Al=?=\5 )rz߮vBj(Pq:b䞭mgQ)9 {6/xLk N½"+P| xwjbiXYL10Ş~lr74@rE@XzcN R:86>%zF\X jGC$fBNVv>H-*3@H?4յ&!1A:?1&u*AR$/ˢ5al\Ṙ]7T"^`}EP| hav_&BgAA$Ă@-5 /{O Ǜ7o޾w;U>VN&hjy;o.3v{uK +O>avqjK%;puXY ^h M 4;73=9 Rp\1ol6< A?Ņ+A6Y#C}:H*y<orfHmsb׳8z&OKL((ggP(jdUMM0$ҹ}G[9C"r֐CЗ?{S>x}ŗ?=[FiDt~㗟Wv)%3ğY)[^]~rv4ﳳc=\{˅zA~vo| h/M с  Xֺ0q^矽˯럾X>T{Djg y}]edL掟}?"7VW7Nwqu&;9A %6*"*>-+/  qTzRS(]A ˡ#+[thwph6 >Rfij~_7_[xӻj*eS~-}SmlR8qϿϬAü' z37VFn~ dD-y&j7To;ݱ헊ŭmX"%yɗo_;] _~ޓ'ǧgr_|`u*5 $R8V 68181oh|||cK*ĝ;+\ru=BqC$"nLQJOOJ^v5$^8zbo}HK[lhqqWP[Ǐ  `;͛WzjJ 9+Wc1*v?C 'TSXeZ uNYM[k-߽;=xO?}6-k$ }q~0rs9sxkv 5T~lk*Є-+۷Wֱ9Nï*/uy~l5T\XBX/0K3sIUߎmir0ePƞ۵m-eO;AGOP1?5&lr.Jlhz]{F{t/rjܬao,&:I=8+⌸аWKWWlVSt2vjrb ïD Yd>԰vm`;A~cm??[w?SC_\Iop ?9=}q }gp;k˻` |-<燛K.MVf"Uj,]U#PdHe}yЃ939 O`+tJHrzafm{;YPoxKe{CmãC9pk-͎41ʨRq1ZA#r:9Tp輎^102;ltd_ܷ4B6Ǫo$G!4ڹԼ@`Q^Pc{\S]j;kr^rwRӏUU(I )q֭Hg_՗_B;o޾ Fy5{W-eyqjf sNk<=څ[S {;6j^V:Vpav65_0ZDostycsizfF%%yEjcݽ_34CfV6 n xpXpv!boۿ \XUQRL(*" qUCp&185:"L®)T4z-= @PWx5ՌH'g:IaQX][/.Wĩ]QRUVC}\ `Gul BK i*6 8vR-AZ?1јʍUU\Å5Y 5͒8d o?k)L,:8^x6T&FQv>^eFNz11#ZZ`WW֋!@mkVWxXHV-2pahjn PUy{TѮp/|JR{ +Ik+ӣ^3*ir~jdve렘'VMΌ/%d*np U* X2u*:R/pkR﹪]A;}5EOqAWl&jVUUe CLBq1*큡*-*Wɷ>zXD'ɾ ᤗYRlaŮ*ӧg[}RP |M갢cjj|K/yr^H * 3RxPCBboqXGS%J;`0R\plyyc ۇ PQf ҃w1h(8G3#]-{FU˳Rsb"3srsr2SSIIKLOKKR谐_kMUul!߮aK_p+|GWUz,,z`ɨ2:J*yi6pu;.lt8F J⍜(Op:s{;DiUQJ&rxxeo}[S 3%ՍmX SnXjSNnQzg393=$[ϖ-~@s XN89=ؽI24{;f-po aڅE~b{kVgƆPg{K34~yFjnr||bJzfbDXxXRJjRB|Bbbl$S@BȈGFGFŧEgGjb]wwݕY (@\b_'Q*) X_Y|Nb{)E2qiGWU-mUK]cri?GkwgF;`rRژic+}Uy;7\D"a.M!L546s-lm"1v ,uնrz M(h`6ph =a(!;x!lo@_T @('&YZRA^nnvfFzlQ>"<,," i^P@x 68<2:<8($$Hok= +a<_[(g|_ӸzNԏslR l˓RYZXK1gzUq!":~pcw̪Jl`oI!VGFDE9TF v=U Mut n[$ :r rbC9{lo,N u.??_QPZUK+, >?7+!","",48? @_K`pH ?<#$88(82-M_rՐOk*m{y_*0W+fR*^ԙ矁ǧ_/믿5UT %;jZ&tgO?=߽xFLO?|>e@n-OOml4V;V&KI2,jS7[bMt-SD%wM -.BV=?==;]ύ ÐԬ"I9<H8'JP.8@UI18hW`wsyfW&4TRD2>/;=704:9+;;=5=L3WDyq111!Ao?籏/|Ov"s??/<:9߆VWYULu.- &b=&G *X~r6,4j@埽ͥvF*+ f$y< NLN/*&ggffgd$ABC]oeE> n}:#{'`jsՔ~Ŝsk+pb*8|B9QQU1 bD$IZļrjw= )A7ybM$ KA36f'&18479![eb#f<4g+Z޵jL떎GEmK'N&QfFwYX[:w,elRt Ѷhd [3m<(?P|'4:)=;' @q  =G6B AAfp|;؏U,ף˙ J}Mj`՟*8Dbi<y~xSECGC-5/?3ɉqqq񱱱6p55VP/oG^ZC'?\Lr c2 Y4Nk\]P9qtIF{ #u3WS-lbEdnznM]S@VGIL@hd&@m;& [Z;< M->fcbӃ3`M4]z 6g$,F\WH$ œ`sqSMK 3#`p% l?h2q*+U1h:ۻT Sp. O/h10kjbb^L,TaFS]U [GG # G[ k[;c=R$Oý$edXPhhrx"IkKkGowgwoyx"K5g;&.P3=c[kGߜ:NM+ 'K@L`E=}=;wݽ ѷ07m$pv_ }8z?t m??}9?!d b+q%{\]Sy %`abhNd4f}n𱇍x2o?3BzaF@jZQVJ|"N!(,N5D***q:7mZ8hBX%5O/6Dx{=g4T?Y5J ɨlnG73770415[ZZZXXZ[[[YYڻхsG|?{ًp;;3̢BB1D&E +H {#o/O//GQyE9Q JHKIX!a   =3 1%:.6&~WLLl\bznN.p% Ep \dayuHPX+QB 8l_8ޝۺF55 tpmaؠPAzV47<"L,)"&Ffqa1|A~Ls32Um|-*.1^zVܱyVO`LAU]EW$cryFĹY46 oieaafaBj!.?+^\@J3/cp~ NvIZD``lv(*(YjG<$fdĄG&@##bbA2̜̂¼¬ܢ:)6@{<~.^/pWbFj>mG_[M)ɕ޿oPG4u A 4<#qd #92:5?#`mj£1P,6666v6榦ޱv6pGg^@ua?7pwkuKM ~\B.'@#+$YaAQ1Qy*@ r[L'KDF/ť2Z\ZI#V6p(Np+uQ&?889W~ШSƉ q)nܼc ~s6v|ll]os=Su^Wk[K:x.iyS-Mk W'^\MjIy`܊ܤؘ̤tpgx$Oo15*5O ϧWeICoO􌔸P#S(+oh2Zjkjh%U UQ˭gԱ|USW7ɸ͜:N3̪bpbmSLv\GsqyppR£h4bqn,`C"B6ʏ<Zz^.c'{ +XZ0WA Rh.EsyL|\l|{2abl?0{GG 04J,k:ބBtt4V|#IŔrZ ~f{y>1!>ޮC‚sJZVK+j RYSǬ+#eK*^J6/ԱX偷LAT*W+45rEyMOC_᷂4=73;?Yn<}G{{"H3K@_X'$:88޿qpO@m{ekhUrr)]\N*7 -)3 Ԣ38>;{ Fz@@pdBrz0;!,?0$8(0( (&OMɩhhz`*U nZNՅ{{%f$FP t vcYe~8LJx8;CֆZE%[ې ɠ[+mL|?!A~^.Q%d2F,?>=ڕ{Cz90vM-B,ԱxqJe}J=5_EN]_+xBM:L"k-{FFkk{}rT էi7~lpM#}|X,״Ppg#w\=<cbRnk~c1OjuӈE9!aqzRrzqX\qwj&Q.n>љQA~ L($QJbOht9v@q|d@f`y~$Y4dsefWHTl\d=;!!꽜SSWcyn *jfĥP]׈"IKkD"5 |T+_z7,k)=M͒ꢤGRNfz8gTu,lO4JF긋^hi2A]F!f'FEFGŦfV 8S 7;%88<IrRNvfpGpǁ9-,$3 +Kh@`fboU2<<7XlJ`Hd|bbTS`fXsC %)-;5064ttk,~[`^e7[ ULU֏TJ*K %匆2&3R'W㯮zf1_YT^Cxu}s76qKG]SHӁ; T4mn$ճH1ag̔Y;%Dy?xKg ͬҙw?*+YV!Vҩr*)7-=+-91)=3Qx^_t3T~󆪁-VսG=ƗԱ)) ~NN[~{xj.X=(n2IG KIK}~%(=O t?k;w021I9@?;Ϊ-L3M|f=M 6 br@V_KU$jcTir Lé.9# PSVQS mWF6GS4? f #v5D2%/1"كu!LBˏK+N* r 1oڗ32r2RS3 H%e%)QAnt6U+mC[:~ Mqll$UdD=^^9Y]KGwG` kv)LZRY JnjJZJbLxxT|jzzl8aayE">;D֭;u`QW_讕9,LidGc50YMbVͭt\^Cu5I"j&E/.%hz =#?NЀSw+df UF]DM\#lŋg>ygHCUO"e_AȈy-r[IXSщ1Aݩ?2!ʺ&WQ:V艻핆-w|lc=|E.q+qvfkakmkeim ~ssHݣ rSbR Rcb22" 2(?dE) 8}Kmptn޵57VɻkjlhSTkbI9}mBq#db͗EmzN ^YYm ˒5U帢9-"P+:vqjJ/jJ8v>Vn}ݏ?O??}/h1*"=.w[+C1%"NhO\Gz1lO'~A\cc“ e.6>K8ܘ*FEdT3״I\ق*thviqS'8Msr(*$'#n|9;x7<.9.<']Z^NHJJNOOKKH-i :_TXcC38)u붾.8x) b9[Vve-FzRoQL狤b 0(fLJfVp9 6;1:c|<EQۻ{:zǦgF{e|Fa\bTF=ΫhdUSScÂCAb}??oOȄ伒 *!'-!4Ur33R23r I2R!Ǥ)fZ !w͌ (0026301M"61A# XX)65EoEo =;C~5Nl<Pq|~SĶ]_CC^3]j(Wfe7ho__.uUpT*^ɻkLz0+] RwWuUVD 9D@Yꜻ+眫v]9wn%Dc ۀ#`ppg{3<'0PVѿu=D\M(TKoM}ogO~b'+Jd'_Y,k~x!йonZ{޶b;3=+_b𫯽Ns׷>׃Sy}C:qttQ!s?5 7^Ѷye4Yͨuwu<~𩁾GI'>~gl14#$;zƠCc&qtL0]]-x1koq:^p.N9ֵcdFHQ?>B!@W'> }} :633|Y]8#y&5 k7m/_wtp⑇ʫG ч޼?8O>/8+ܸƛnֻskt~SNҵG5fэfq8]یYEWXAiY-H!15zu zNnB(qqDrď}q|$N$a )I:\~)F IÍM6D2vp9QtM$H$ GtZh4BwHN h"J6)΍<hϕ3Q%NĄvEu"Y9|0?cӂ50)#By:lXmX"lqQq9E5ݩ}m׎̝.eu-Ob*<óg8FXmv4)'_~XR-L<`6$OŅwFd[__)dj]P8?u]Yx2Ȉͭ-*)̐Z]Cm PNxTMTJB&_:==tu/mGGnkY0wnff2صz՟> G7n?2ݯ>j0{E"-烖{N^>׈ɧ8ưKKe'#7/njruk7o)2FCL`<dܠHR I@ωGYi}:J?iv`%pzxp_^2!s 2Bߩ#X&Nw8+A.͂?rjj"ZMdl9Oo;p[KS/dOu@֖je1FsuZ? Urt9+&7?g&Gy6oCˆ}ι3󳱑;7=υq@tw_N G5 vGF (%9IӠt\v>bMEǕv\305_)2`#Ik դ$t6lg˂0_ l:x ^x,\6̓ؕY<'NFM/x=HOo#1:8d $v N0Q#e6lNo,8!IOIZ_jvnY^@F{bGRj zfq[e,Yʟ['rf+Q*^lN]~Q8;R%:sgݼ#=7'6^}_?GOD4T& e㹰Kzb(@V\`:'MLlJ/l@kǚuV<,A3e' 3ә`B$ir+m9+~.V PL6Gq@Y>t }?ddJ/Ytf}{0{)" (v$Hc3,6D.=~:USUǛ"w;bLX8>x^Z {N.wU޷MKU.ClHn؎Vjl?]Tߡ&*o=޷rJ(ISQ dV8I5돿XDaLѕesԁ[W\n{< 3ό67J,vw=^xe0? b~0`oH?=aHp4t e0KwbT'Je0@ pb) `Їp2&ɥR+}`OMTY,c{ZXu)S`&2E,!_*Y5O O"Dž'+3yH+Kbe!I07?{aI-wk.Wm3sYl \Xȧݴ{(vO} 0d5"k 9Pygs%gao3DF\}-G=S4/'"i~*m>i2)嫈R/lo[ IdKe#rGL1/'Of)e&NSt1L7$$SN0B(?oQ"K(@#<^!?7}rYjajΧ/K-*ps]]&U .wkN+IeLO> ' .`1eK_'3 WͫOzܱT0 GcV|řE t<~K$O~6W5߳f+bɪ /LO'O.N`L͑b˕\Jt(%}N=l[jO dD@^S08WLGnXdUK>W!>Iq&La6ya,ndpi!IX2Ƣ@X&ȋ", eEI"|Pz#to1Qۗ>dȒ'!F31Ժ|UK=ʳJ\d%;h?yV73cGbd]Ũxn<+e m\OcRp ,F`; {$RJBb(ݤkn1H"jf& :ˮ :Ԭ9;"hA%A;U5 *ei D|^U37M \E&H/cؿ5;g{|jG/j)5 ^w8}h֘CR䊱"19^䞡yB,X 7+O2>չYIm +Ztjļ ;)2|y\>NA\K9QdO XgȊg Qdfܕ = )RIJj)MbdXmUČ$dYE6"]v;Y!0B(^FBa PO2ōU*nSէ꺢j^R[.Z˵sb`gff&*gϞ{Y`jT|ig݅>ihbzjbv>k۹_>xrEKd9e_.{i'$ $O0Y?$U׮]꡹B!#lY\PrP)VKZ]2-I>L d&8t"4{'%G? p<c56[X^bb_pOC)G|uyFVCrfRHO={GFQx.UOonYy/ n\u믿h2CQ|Ƽc-Q&+A{tW1~@UgeHȴY\S8Ll^>uWlY|4E(ɪ-z;XO&Z\vx@xdYTNwEP)Uz]n_5]VSaQDh(f_B2 C!!앜O¶ {}Q%wz^/YK&=$V{=.b-OzTYeoѶf/n{nGH7.h~ >=?7lj~N; =56F\{*qpG?ٿxCd6?Q.NN%W}g^,|cY 1ىx!j>[9X$i,ʪgO{CF5vƓ!:U>"HBN8'_,+bF1 #@H և657HH_)_ZO_-3~0CWliɉ Ls驩3X}=?.t]x /iC}PBx{ |b"~[C/_:#FRo:%? ѱ=Ͽ}&AT*xp;rߨZeeǭV{%$i&@қFsa9tnv9mV;"Nbl6IZb106h;wkPeb!!m$%R RWu?EUoC ^ ԘISJ4*ߡ9=]Ȣ,ngKU_aA.Q{?ݠRmUxnXz_)8o]yKo豟zɣw2-0"Gcb_-f:[oXչ!뽥CqaӊW:'@aC~ES`$wnn@_ɏTqý}]n; IJC5&`Y-fjo+ vXI^q0Ò{G($YlmFar9/3c[)j8?[QYy?10>*w@ujIշ*+ fJL`+ӥl' T"3;6v|O| 񝯕k"E"e f>Q ۷?|rv2}0=;p@KׯXhL ^dsYv:6+j4@Rjҍk#hjuzgqB'd4\>j1f3{ШVӌ-b0%3Eh K>+K|W" =iU21uvg fWU Tӓ*qVj.+lW3AJղӅ\tAKLxwD[yidl\\$P{Zr9Y'"+UaMmϼ)huz<>\nYn xi#$NOV`!+m%5  uMVvm,/de6@4::<a>`Zmjqr3::3u@ tR4zd2zbrLP d%'D"FյGJ (=b*۳scWѼ{ǿ*z$\z;ѧs|(&+ٍV>Gq!-$El%u8Vʏ0wѺ暕PE0.9hn"mu9HzRqd`}z1ử&V9?D2=u}{ӛM;Ll! [fMJnG&~x0RER }*Y&Do)PEp_[7\HgBlYR/[pj5@~,T&+E! 4.܌(wƿi\|I[L`U=ɷ hwD%m]qSw{w';I!;.\>Ra[]v_|gBfVodW؈@6;=xE5U׬j߼OaȧS' %I &10Z :2p{c`Tn'Ovu:Ov`pDK_3ôP4t8p%  lY`Ea-_tč2\urHd1֖f+gN Pʨzzbq$? V)fUC~\Rm'DgSdPu9T(6-^oJeo|(9&e!aMZFzN>ױm/3Yr1Z8}۪憦V/YsP6ShF#7%mυe%ASOhu ,IK[OsAt:߱׏_ء'F!p .={_輸L?uBƣ5#|#1!).m#pMf3`&vlV ZLw  vv% &?̼?=| @Z'[6^L, K4 #HeB`\UYo =s 흫ku/Z/Y]忮wTYؠ*j#R1y 支Ky: E sPhѾNӮe+_ѫgǪmt`{V6oM I=18'7 : ɜ.m3paP@0`evW,^n,.Q O;tccvDkFck`l kz(e>01L@0lz-bz5p(%86ldž{ŭ= C2<9$tZ1"|\ئlRs>_f9.I]"u:D:յ,_rwVGesjݽlHJ5@ebttFR}kk9|D aO9;z<ؘ@a4¸ѣ{ {꽔0t{KIjNN!@ Sݰ=])p qkpaafyHB_GSHDkd%PҔ3j5=]dGz|d Qq$) /SȒU{-P9Pe ejki &ﯾSUMH}5*MLZ/.\ֲm|}31 q!b{?/?yuҧ!O Ɛ߆#pv$ڟ~2:5qܽ6#l^e ;N1&?oBRBX0,3A[4=uD<*ywb91Rx2%z-FF451跔Y膙2Vб$6Mh4Gz{0N(8Y#&U0_eO-B}W> 8wyXelN Ǎ޻^տOc;6^]M !YԈ7mmG_~ʄcYI}(P>9Ys7s;-鶛z>Jʫxn eH2+eF-?:4P?&15ڑLS@A " ZFu Z3h68Όq g Q8"{t0H(ѩx0, a͋YNz|^@Jf>g+R_H(!#ڄ]M_-sƨfG}AD$뽅~|˛H?t,^n[l+ŅCۺٟ2~ݤ$ni.z`O_)wSf:8<2wy0 wyѮ;ձqŢu" }9(ty4 53##Mk[,&h #.cIh6,ض1LhmN3΂zh4Q|@cdE8 8€n_d@PMj?C|[a8O}2.vTJ(b҉6&pDt: W=?heqǖ7?xOdP8}W'FY FB7W7CETz7>Gwrxl|nR7*KXl!!ӁҠä-v66݂f3#ZCbOƠ'jMƄt3 &jGbX(ΠӠ8D4܏/(N:p{|({{֨X_HS5TD![|e;Ug$T5Wwd!"V\w a3@rD2J 'WTJv[tuc~ـ/r -7)_GQ!ig(XBnH؞9ߚ~Q }t\xn'{.@C@Nu @5z23;\Cd5Z!P[Fv:ANLtt7`Nr)7aei("c`nN$*)fÒ' b+;@G6zn8cajjfnRU!*W?M Ev,$iFF,%>ѫpD&%0N V加f "!?2TJqke P~5feoQF}S ˿F'eQT8.BĸT>$t: V_8i/iUغEt#~B 4#o!t˲ ;aj)" O\i5#c}QG>&Lx_\P4*_j[B1Q".*O1BGnvvDvweik8& )c3YH]h6l:."9r8( >bMLaD#@$ 1T)PxxM0bBbOش|g Zn]HWWQIB"O_nh$I;7`&ϕy$Eݺ򊛆|q9S5so%+gIx`q0d`(ڿ!L`xpltTC}EZѱt(O1^-gYl!PS,/DoObs?-nbl2FpHfr.@n p(Q|HA/U#S͂T]D!ozpSkSÃA4W> \[j= ӆf\?( ]M)Tfj6tz8E.*sEj^fZqqG2x犛s?/\|AA/ lM?" SKb0Y:G>22ĝ^knoe5E,^7yL4Yd́!>NvD=+එoXl`UYHiK`"Kd9md@ hBB]ۭ6y} -6$Q.d5^x633bIf.[jmYXkq?e5Ɨ Q@@R~dR"]+ ׌m8K cIurH< J>W<}Ʊk] J:En;ROd1#\X=uߖ:"B0xF)ڄI)5BuGqO9|_0-?5.qS %7*d%/slTl]zYMtO~R}J)(.ێR+Q>˧`LP&H8>Sg^l25{)T Gd3I&a&FH!Cᑑ'Ft^ Q7'bb/,#O`$+2X)M%b${؎ҏRQ^ RZdWU_juGl,L).dIgg W5B `_Lr4G_ټmYBsRqoǦٷ_8dX + v F0F9=>WD+Fwmnp_7P,IHe$ar+\o! @` φuڠ% ,<=XAHB&EDL@fPoOZZ` Fz;{!tbLX}!L +,@|`V,F8d!KyTOo_hccZ .AxFHd(Ӏ-fOgqT0y̹OܶE)X $\ZB}V2ȟlb@ev`X ӓtinR(T?qdM1LL8r9{)' 94 d1l\&CϺ[qX?g%m:5>k T ! vI>;Χ rE:Nm?ә4#d\lOKj,J5 20>@%!(%AcBBy2> Q Cnmӌ00@܉^gte?2Yإx8&$`* ֏ eBs]W+ VK/OjLj "RwqkXVKOOOVL˕Ο"ONNDwRe#[Ԋ; }|NHq(fSh5JmG#7ϟ[t ;'X<07)@%3Ʀ4h9Ž+ Sra%r%kS7=! NA7̥ >qȎDh6DdȨӺ,Rr`bDJ)^$ЮB%(KM(SRʇ֕`0 ,6ob400~gc!-O{dps] aznW.iiڀZP*ʿ6WC7iOf fNwW*%ƤR(OUS0}LJ{GDe|=sc>zL.EF\\z&_?|&j1z>?'\(+p|gH z`Pl'w{~6 ج^m$` BKB9W(!@Cxd `=/EE2BP0B0(" d%L*d!)\vL"!6AY4O., ,4C 8";YTgNHk>fxݷko@^&VmQ]kSok +Tu|jY&fgH<1}sCW+4vI %7i/ hzI6)ƬcwsBƛ/`" evҕI4 +ZL1BFO8)f|aKG՝ 7J|4$caL IqVw@FG:G'L%@E^#30E^JJЄŁe2*1[^ )D"P/2ɧ3) $ɟT Vl>HV%ȶʃ/S)xGD|-jogzB&G`U=䦲9KL11bﲙ,:,oT_y?qf3?66>4}]==N"?.ϋȤוU*3a%Sg~q$[@`ݻʿ`<߱!e+ %ERRObZ81=Q*2ddŘi/qӓ(x>r c)ޒMQ<H% 폄dslBG>č`"9.]1k} !@X""}Կc3#/mnb=@:kg;/Cmbf֚hha9&=MLx&L=  ( 5eŴ]+<`^  t-3]*#A7Aj N&~2F#_bt>Br\t =$ráxVaG8>w/S*)Y|%݈y\nb3QD i:piX26d#Bn4hnɠ3"~JF1 jtԈpxlOe4AqE5QKw "V4+Xn˕L2>ʓ ?PH#fAD?)Į8]{h\0sⰘ)7Z6A;:?׏ ,VB_m~2r"I#q0撟S8@R$D9O =O,W)Xnf:UnqE+"yZݯ"|9R7ZBgBdɩ)BiX|β?_Q>\({kkkP83{$%3R>*LUI ̧Y+/REA lˌ[O s E(,N*T߷o~z^pG\ 6 2g\ 9hƃ HQ ȝW{n "Z mf9i006=٢X}~J|AInvUorɌi:D: p8RFe =iNř͐۲U[XUTQ\2 EJuWlOk:$:;QD:JmV\ְaK.}~eKSp$Id o82#O/SnJHƵNׁ2p3)Ҋ(۲G-vοsB8Ɩ\Nq0m fI ydP(N {lrv!?u:ݘ Mv===Bǐdkǵf02F8pVi2N' #I犨c'&Ji](ţb2JwҡΘ $HGJSdjuѺkhQ] $K f!Z_ 6rMNNN/kĥ\6_D4rsb!C_=wM˵}}̏Ɠ<%S(Mi?3ӥiBwHIN 22|,H f.$,w 9wc4>ԅ߿{>0ݹSW+_0(T)YbJ^7^09&gVJm& }gb7Z 2fCdЛl]-Fq# :0O(W*/VF-mk.@63]0lcD|b9mnfm;_|)9Icj6+q3,uTʿAėJ85W?13W$]^DZl͕7޺[v'Q܊ k$k_4UPR6߄rń=T6gD. R#Jɶ3} 2"xa&r:|b7' [g|͟> Z]Ҽʻӯ|[O&xAJ0Xr% Va4|.4Uy]`. "|M&rSo+ 3~0 8flxp : 3pF3?-5Bejr$y4Б(9"&48hDvdũ%w^qí7Q60M>~oYWk"WCEZE'ESUȥ3yД͗Sl)ݽeY[wˣ{;Z^z\&CT,ązoa.Ϟ-'3Sfg*T~s3.=9I=/ '+]5l 1~-P۷ϔW{ۋT!I](W  B96*]NO(LVy<(t 6d_dW8>6hb b2~G XeAHrRDjb0K .KۭXeyz:YTYo' kYF+[J\^zڼq84I:Ū2YϦ*uX@fBT!)lyzB9z6豫-rg-̏oOn r.ΧC.M&r` Jf9'D<܅ 3sOg?vl9_)ꕣ08ӣA>!gkw|?' Qho'Swt>7S"I@TG‰|" uB^/:(􄅴@YK\n9guӨњBǾ&N6l3a_c yZ6RƐz:IG1L0EgP]1Fa?ɟ2`8QȓiN'OfTulu-41P [~/FU/ޫ&J&' XvaSW.n[ay{b9qF41 jVr(S<gN{鳏^x g=~ % s󓥉ٙiPfe2b*WN5#w"ц($"8Pa{4Oom;J$$8ForloN=}Q8s8('Hڔsٍcã%W0;|.2q=HO>x5FSD>^k=ѐKYl!I8fB G `.p0sQ(P,N.̷aov׍ Mͪj/hokr>,܈? 'G _r١t)hKM(`ى2޾geҵu'_˯ߘDFByLf:,@cRqd>+r6]"?왙鹩d6#yl%/dD'+Cg hXOgΛ?PMYH 9SqwAʶp Sa ]pF] z¤vi|x>A៓=~d`h_ VYǢ' z̃E?:4/GW _01SL,@EJŇͭ'"g%8Ox8݌emݹvElpic\7~Tk5N_MP!$Wu NfK).NO! +PHpr!3lSܴ/_r4uʐ 9Cc>v(PjR,OMw:](ba'Igs@ h<{2S$?'O>Nw8Qv]ٙXI@Ur@r9T$A"T/{9w_Z0h#iMD C9IaI2$!* 90H| 1X8A紧< L{܀UbCpq9A2Z3E`"B²Z~d\bh˪J-mԹ{pg]/,zZkܵ} KY}߶g k:8/JsRQm8;ޱ+//O"gEЫdaJaqLKF :XVj81 !c3 r-E@wpɿ?^:;ݼ8ymruYe+WrZ@!)݋`3(7p:*># K@Y Eb¥,~ 7 +-;8 8aՕT#=`1Z"6lt5TF=+['a"iM`4A "ԑ۱z‡hQPOя'JL"h]$l#|[2jA(b =:$CVeUہ=)DXSCi7D}70?m{=dk@YU` +ieͭW 3V)ՀCON`sХ[㣗vz;г1@@z{z)am{ Sc׏?^1O_IOgZg[ɭi{sR 8#hg>S79 GhA r%Ӻ l ӂBEQvBat͂p{GӔ NVa*fL]{ asjWx*fsh'@t/XZ”&szʿ#֜L"D8MQ⩟Ƞr)`2R'4P(iIV弮2X]ܪ?Vhz٪^ |Ofc:yƉڀ^5Z<vz :Z8ەS+ڽ[n67>y_~Z)ֿGh>p]ݷ)W c*ig-2!oBVsrEsVTś\|2AFz%Oh:㐯MUѳy>il C2PTK$h""ƖBbŇOgCřy< /.c%Ypgq֊:mMF J$0ԀSlܿ"xǒKt2c9mb=‚fㄭ w7w|^0kXR/5tT^l<]/aSfm'~bw1C6eQ UWE ΔFRY<4+8 y9bse ^isY9>8x}{q\I9&)O5#eMmUaCpxZ2%8Pn/~ _?]KjdM'9'Z bV7 {5.Xýlvl>1{'J)K2nIѵ"28ΙTtT&+] tK?sECbLQE2!ʊ"2T8HA2-p~tѕ:!I,漍؏w=wQ?7cq.O:966zzg7jDxmWkaH<mkt7ۉP+,6M8Yȼ.oXI35tܛny˚)yj)B0%cT6f\o޸ղ/7pq-K圉.ZA΃gf]$/U22RlI)! ӷʌyD"+ Ex2XYtx&#~8͒QaŧB%_($C¥"`d=^ ,,,.-O[=Z^alD"gx-,l<;@vOosn\>3{;?߬?#;~:s߻ڽ+k"fmQ3eq8W7<ﶶ:> QVpt8u{{OѕJ~(щXV򍬤fhʦn6K) psu)cdҵ<_]"Mh,HVgʭ= |Z}8 w qۯ15vSoJEPE0^Meh@ d eG12 RooKhu$>Ok񩩱k7ݶ[]x6۶qvuS`j}mqGk˼lı$A2>&zvc( >de>J +0-~/ /8#ٙٹ{w>[|篌MPNf6oy/AcGbg:SpH@pu;u}c7.-b[wn [(ԚjUv:|?t M ^%("wZ >B(=3 d2KV??K9K$詷"~_R42@p ,M@B,b'Z%Que7cq)1kpd{F 8y-PfE.YБ==nΰ(oKk&E+˰4+it,쀣HL @Ş<8)Se ߈h XRʹ? .-?|veӏ>=xxރ.Z>j.F d$:G(rr4Qy- fk[l1=G/ݚ9zᡮmu+;w=&U V9?hk{h/E/OTheI(nha{K]9H%݇D`nv1Fow䳇 @|z>oS)4$NuY4,N#<$P>s8grH䱿&D,ƣ&wL7<8xSUHHdTBQDf|*P?Juf{ 3K,+a6),IQ1OHԪ$^L;J ”3@O ?WQz&CMҲ?3O2`T5CfKEe?88߇]^x襓{=IgW+Uގ;yL^mϥ 2GhطgSŕ`,ᛞ^Xz{Kbx]]~䅎wz~ƒf| ߟ]O=8NaG ̰{._FA``4AHє(Xh(9biL9?gpSn޼~knF- {o3UCy&$D`$pJ.ok~a{5ӟ}}΋>@Eb :KÉ ȎX:||eӧ[E3[j"#Vd?j-ABp,d4R %VJEn/wmV4yD yN --8*4aÞNHSzLKYD#W gf7DkyN,;ۿ:LKsѴ]"@U>@.R<X_iXEtd1"1V=0;ko@o/]zc|ʩn־y%x;?jv&;w{+[U$okL"Jt<$YsWgib冧?w}OyWytˋOTeˍj OȕOԭnn4 NX@Kޫ4t^k~-T_ x7M4mely':wHiQ$#8`߀ 3G$єB(a~~Qd,ꃠk,HG1IWphO)7% ?ccˋ8T INڇTSdE #S^=XXľ,,}Yr\/ u x8g`)@7FG>p`p_n<_պJǩcBlJ,%;2EC>=6ۈ9њyc,åFw^Ç>HgH,gt(9i2--W x5Wm2 *Z9/nj޴qpr1r~ĕsWG/>zcG ~V z~ƿYu mHu2*Iӊ-xSw>^DDpoؼ[%޿3|\p$0IF&ä]<h4<oz9Ϯ#pD&0ȄdMppTl)S3h^r0FBpT,]&XRب庖 Z?jbohѕLe€w4pp:Rf뚊W.[]a%t2-^uP&yQ :SuM9nF\EUw! PXmTElRVbHR6Vtu:a)Y"M VF2%D aH5WSYMV~A}=];|ܕɩk|Cݾ㷃+}/Ah{wѻJ0 >􇯿'3>{B m/::L:RRup|EF+Kӟ}ӏ,,>{)cXqvVT#UW+ne9W/jU$ )ťk\,?Xk _}tb˰z +25AZ猋KT!eskΩiME.YRLEj 2*x*"gKT2ePbKcCvUT4IlLYԐKNUzaH?3ѢQVQA-ߑRXrȲՍFARpJXdj{xO|"'/ e qs1 C$0y)zBol:-T$!ÅMcW5m.&iI[ 'Mle{UCD@ klhQJ*$+<lj& &EyT2blP?W51vcW.=uFwm{^_\xw;wv ;kT@  =[TKri3sW_j;vz;tтI42BJ9xZxSKCDD'EѬE Y"N+::6>555qk7' \r܉Ç><ҷLm}[:{췢A(3# IsEGf҂ޱiץ_ ^6OyH2_̩1t2-<MƯlMUῪY^pzWhI E=բ7׶qXmKz5KfE |,_:z|J,H,D} I-SQTmb)?\(*gr8` (%)OVVkY#R$&aIt89%S" DQ.!u3c5M밿q$cإ.<e?rk C}ݝ]=}>:6:66>15u 6G_tgleoC{[y%:|'Mpjt,2qihNEH}m;ZY_>n;)` D0rZU @d:-SB<耈(6 52h$7ޞz- ̻ZJY,e/"/XRhq | *N#qFp;$ӡca8#gn];s4#ҏnC}Ǐ=~ߋ!)l<RZɤqJ-eC'VsO[w;‡};@ eaUVLVҤ*8"-lh2CS$z*WLqZ^g* 6dJ0z$X cpg=v{ o:>oOno~۽m:zW]z"իMx"'zMc lNB4E!Эɓ7>_JC X(82 0Yը8C˪VYEF4@؊.r09q f- DZe:s*b Y4Km 7!fR V.:ݝ; 2*٩:M؎K!PxA xk8 @$$. 0_4 D $ ?wF( p; q:0'Z$1VKM%ȗ ȓL HU!MLB.9NR6[h6Ntl?X 9w­7>\dw={_>zut(Ƨ,t8wɉK S}ohxѳWwN`֘~ %q^υhafΏ]{Pꍞ= 4wfA8Cf5P9@fNZU#6n|2TʵZ!/Rث͊֟|YTj7CT[Gq\!:B&6vβ~Xv}+woaۚ:J$4ˊnf',J 4A~2 9~YlS!# #"K3AU>;R,#8MqA)VWy=h8m6VQӳjk<ݬe'[B[bx(?_ç/\7955~©Sg_oc܉m#4:g7 G`"yF K?|ۯNrW;=wj^USNpHN/B^)|}&I _8o蟈ӆUb-o[_mUmnlVlR/d5ǷlLUp vQγv{ݿ?_k T(+j:8Od=rbpzѸJy.I 4N'y't$lbeAH0LТC+ P;=dk9!MZ kͼ8f*e)=]+sRzYWt=2@7u,>zSg_z}ڕsWʛS=;wx~mRFFF:q]:}iب6 b]5e?8[N~;/^o*/!Vlq82QsLപ]>'Oof/:ztӯt)št2I9n e#-gb)o. RR0rKGddѓ4OD"I)#&-Gͺ[Iȕi_4*CWlQԲ%eSUC?Py e:W7qY_CrxHoоCxc W'. tپ;ǻ3w>g6 :iBHaVrp.N_|m7/Є}մ$2PJF曍JjYR/is.Y3šXbߍD+˪-՚kjd*q>l*h4k ~ps?_)jlL!M;9Y8ds$;Oꦓ7&r>V>9kvN&h:EoCh9KߗW6ݬt$p ryLQN0ʘɲUv?Ur!V^q$}p`oоÇ802:߆?w^tk ]37.޷@o,-]@+$YiF42ZgL15Pɏ[;^.㹄W(p\36(İrzG7 ]\ԷDJԽ Hhv!x'YjF&st*!JPӀB q7O~'ՄqgꦙsxmTXN+H:*V"r 8! N(f4Ȼ+a$ `Q->f E[qIqTQKQŜ.P b5aV bh.{==rVpx7Z+O<~sOdzxfkp;[@{{:3#\97}H 㭵f=zFAHrK|Β?o( ]x?Ȫ*J$lɵ+rn S5Ӕm*,ӰZ*ކd/r<TNG$Sc,4`Kƛh%cjn/ժEr FB8Mo.~~w?:7۷cǎ;82`C{$~j gN<}?4T&?Z=uuv{`|'|HjjFϯ?jhkq2N.^}3'/~?M%2P=زBxxuE+>-x"VKa®FC82::UHҼbTFԹD$ѭ T,y6e\#[phap8V}{/??Fg-LTC_8tr@;2+ )+gVx.֊"<-)Ϊ-rx)FuC !4*B[]X-g4.ڹJ!} Oik КK(V1 52%$,I!< >Y޾Ǐ?q>as-?~3gΞ={+%~ɼ~Ȟ *;C [\'o{+byu㜔x/*h@ٛgϜ^_aY|YB7֋vyAf^/4v:]tLg뗾( (ne%<LI.zvg6|* mIջ1e(8YlpU1dtLh_'hs#i5/id2 ܜHZ͈vYKS}um!U=2-lXT {H1PtB V٬gu0N|2 IQ8l+xd'(\)Xd~|$W"ih_C8߃:8pW/=y'>y3PCrw.g.7KW]v}W> 1NYdQ57Pl.ٟٟ/?}/*@Õg3UY/Vl%R.0fّ`CiV"#qeBfe2".Ņhf cqFCx@x"Vb dS +7N}dmwX$Q"h0g*Ddyqi~1ʉ\d6$-E_8J(EvџFOoia9Jgf|3"2^^\^^cù^/Xr|f)@4[-.Y:^YBe$Y]~pzvf٥.;z:?xzɩW^vc:zE2|{&8 >|tտ_xW.|ECI/兕'Dg?ݟο~~6Xt2PMx6MP p.,.DH6!e!ljD,ǝH@ū{x6XY i Chf>"+9S" ?; Vf,EP(la,H, H3XW?(? <[Z[Y~g?~bw’/'|R`^=|}6/ܿ䳙9"JpŠo)DI"&8"4$42ῖp4ih$HQ5˖E}4F,6IQ- K@HH$󚽮m؞yG~7{pCcz:ށO>sġc?,L| ؏wTqNN?ӍFv:q*ȉc@gRiB"-ѲE7=|Ok_zX6m}ЦSivm=$8&UO$ڸrʺ GU"|*/`L&LRUCpRt-&ciέW|]\PK5G,W t o|ZSɅ2d! L<ė+d"ymAꐱ[)tsǒ|(,[7x"HAqH !Xxh%>(7 nٺkǑV֞}@N=0ػkwAx<̩ kfIvq;NYʭzQerՍ?z/?x~oj+F_iT6?3 %l:)WFkv蚖#3hW@eWXH%sxrnFr.,p90|2 U@#,B N Ed[C]7zhέݹOHV۲oh`߶'ڽc#S1z3A8}vKB%ziyH\oT 0[ή޻?x?_*ErCJ@}%X9Fi$ŊX/ް9ULSë՛^uxV.rc'?i+)х|df1CβR ffb~if6'yv3B 0x[!>s+"H$4%s;qVw sj,S\64%wMD1E6OʊW 7̘t/>qh[];z?|drH/:@ 鋝$ȣO֨[;nھsCѽc❴T.^8[\ ݦ ssg#_WW>W;bPsDͷf`pZ/+˥_o\.MkzVJܞI!gz-%х(NԝWHW1\͒8u$BfǓH3URUn*bWm2UARrdM/lĿo`tѣGD `_pw̴- хS^|5TEޓ0v3z1p}$R"^xw~ڪfBX]mI [nuZQ+yAag +:&65ֲ9R5 *,3K*㌧sjP_XLs}WUJ]Xz*' }K_36c8k$I6Tf9 Hݹ3MeKałJD&G2,.x*-dSsIel N" xbaeEllG/)H YuTAll}VZm,}HvTy8&,L:zp=r셏;zZy@ ' t =`;{9 ҙe Kdf s/܁]'^#~cY/ʧ5m@ .y+U.LqnkR%Q2t5 Z*dh*J&2IM\ Oy*5 ggiVkҫxu6BWiIJx1|,Á#/β:@wWA(K_z\$K 3wYZ =`AL e3L&GXFD6!j5[nFRTZ^=t_Wdh!#ZnGH媋TgķvJzSE`05_#3~yo'DݽÇ>MWkkUafrG&׻pwcѳg`dS0뵻! 6[PpawĜ~~{# UՠГMkkeb&/pUSުTBb5p#w9q-ؑh-H3Ji,lyr(t)]={ܷsמ}vܹ{ᄆ#Sf]Jd@rnh2 r ' }g_>ݿT+ꕵa$_-2&O3E^4QE%W:W*\US.8 zI؞ . ׳r;L"KD_/"GD;)2x՘Ldzm8v7+UYbg+VsݾZ(hͦj:!:dʪG>cwbVQ[~Xe#7n-,Efoߺq+e5td1E؎δ p*1{~?)mf}-]0_Brm@MbbXJ"<5 LIVyZP s7^+X>Ct.M#7$}fҳi-D/bhZ+%vѣZliyJh S4$tr =Vk6fv=gWԉӧ9 ` OLIcXv)GOݵ{dDرjAg%𡳉R=偙R JH* 2O;vi/_U/tE|R%.[P,x<֗jN L,y:f0$+"NQXʚ'ɋ[3c'N;2۹={ 430v6Z)hVT:F TZ0YX޳縷~G}W*9%yF4-P}݇˾[67]P. qeAb2/R!7,}Arr}7dcXLAuO4䫡+dь%qi)T+Ǐ8f9 z6K8ܵ3KAu$X]RpCq޲-/֮"RJߡJݚIF4= x(D<|_595CsMg 8K%3Y3j.%d+:麀Ll@E%gIߖ8:hA+2 @9h6m4rQeՎ$)9эzM'9(id6O aBݻBv'S[w;r챃 bW]Cݳ{۶v% Kv< M,ĖkEd$T&j1Xyc^a_:oo|;|kY/%̑˷Wj"/rZMJ)^E6>giY'cI{YWBdx>̱n]ՀsaÓDoMʒ @虶[^%@wPlfCG#w"wU/"rfY2+W6g4)|#XG0'QBOT {pJ)%,AwdURKA2Qx.=G)J-%(&T@3vq`9ySGz<MO>?J ]O߱}۶m]HM~{WCv@HTX9vwW+}'>?z|٪5*ThV* UV/yxmuO+*#(T6OcI4 !φ:r}7eղ ڃe_xQ.-;`C [UlIN&_<8~اPZS!Y`} KRFIs/e%_*RɅ$mWM%00E:,Dh֬b9Y ND4'4xIW!4حf+Йt$|n)JTdQU Okw\fWĉs.9z`m=}yAqwHG}՛U1M]xP2D*&惡*$oZ;E&8 Yj%_o?XT^ʾ%(@[]:X:B@{PA[wL_o~7V=C݊C+P /`1fnGU!Ca,`ʬT}:,f t|:|D4Cfc)Rv_\dyѕI )טgt!EIrhuɮTt<F9Xw{]=x=]hpSFNZ)/o=tء=!:o[ު%N o {ud~Vo9xzXֻ_BKR M/ \XQXdh׹VQ%5~{%_-SFQVQTIbi{aet6,x**XBd,\ڊ:1y9YolnݠͺCgdQL`}4]uDh>17s#R}u!:{nϧk,6u*չ AMdRف_|(Pp-Դ=`_Z)0k{۵gdsOLc[?nǞ8>rTڽG::>6<mnE9^TdX8Zz c-C(,~eo`t:߿SHA'rl,-mY<L/Ӷi0_THL.UMs4(N"rŅj)*p-WE]mb\u% ͯ[n;h@y`4E2 klV5VWOw׎GO>3}Hή&ۿwKYn\ݷkի<̹S;ʠ];u;ޯNfmȢT?9A-~FXyo`???us!%9S1$ 2V0F8P}i JD1ظhht{&ZyA2}[17#MXmCi0dU$ eȾ`T6R3PU%E3Sx_:N}_ԲMܗs" 2VGfdt =m~f$gt6ͫ @i/"\4TDQ1%YJk?X*V/,RP+|^-$ ΅n -[9zE;fvS>wGWwᓧm>0oh5MDŽ'ZY?}/GJaO"ٵe‚];\YsтjnEcIRb{;}/zrna18{%㉼T֝hbza& ar*[~HzVݺc L'@W%Ƕψu7^fH[^ UVkJ,0(9bb {#&񴌮eg^xy+/3ͫQSƩBV5F+z42x«79|F. _0<A,̾ZMkB.`֘rNLq#H,bx7 n, eJ4t KZĿ߉΁ǡ9uXG&|6jkzX[7czg]GZ/'A'؃'FPDbt9ulȭe Zi\d4J@0d~~e&Iz⩥^mzpN[3 A:=QHWt23Zت=vp҅b8e y,踝#@FGm׾>qt|oGбǏ;")NѝOz\z33y 2o{:L^߹{D0rM3+Gv~)|;oՙ4QShI-Xl tbU/pd8 :Ǚ|%ĭz] \ jVEu+[m;a(g5"Vhl5A VrC&x&0lgwKm 6GXW"r[.JW[sg1)d>J..$(yx"RH"S)=s})7,N(ߒ|""z a"L hhF{Ci,Cڤb ]1 ȩmO!([N>ylrbt`׎O86v@H=:'{=z@^s?g/ UdIIv KP8ݣ9Wᄎa印uHi]/=NWV[`n {#czv?q؝bDweB t#zP *x /<,ʁ^s*~p@TA)2 #{~gԬL*KR2 RUY-ESM$3믯qFT<y ,*CfV1yؾwwu!rި;֗b`"8@%,h4k -K@eBN1 CI? :w'^7$5,"Ur y,8ohWq$Dz$0Ұ%(x_@0l Qe%4HR*ȡW-M \+$\19舤\i QtB VՈt*'(EN#8|K"6{ 7<:66 xoSv;t|yhdcSG'/U4JdjS{'ug>ЍW_'^zrdז|bR#? fYEB\VJ5[|,-z|ֲwRs Q|<$Zmm[@vkE-&dqX7Z-כR\^[__4 'k<ϼـR/9m[rt h He@4g9Kݕ@KJV K)?4`PϠCвtm.N^'Rx.K@1-8_*zk B<2B,->֧v7mSgϞ9q=#ǎM:t9Q1wˆ*KDC\~sH%/ʫ /\~z܅gvڗ}llR# U BPD`/RMbBK%TZ_5gi p4*5ˮ?]V4N$r2[7зkS&#G?y[ t^\[r(Gr{|W= me '`ةSSz) [0͖Izp|,/|koe-wKu jJ͆/ ?,+"M/zLaF&) B:FdnYl) 4:u_Q5HHKu[½?D$,WXFp ҀʥHt8bq:nJ\/W*UWu?ݠh*~;hzѨkJy$h#Nۜt乩W_?|.kgiݍj5LSRշW?r{d)MI#wУW2:Lb)!67,_IZ- MˡC&DCS j\ެ <K@pu-Vەdov$2#;'?yٗNk-p[/kASI2vȓ?ē/]y…/96^"e֧xؑ;gD@JBznZk%Mա!_UM$11$A,e >TJSfYW5&Vd9cwn/dK>Pszq1XP4@SIBJShģ0g}vTeQѬ CsgWR @u8 HFV1g|+/?xdи^QWj. I J A~O޾~k!Ms= {0J; .DdFsX(K+aPL4GٍT>( ~ewZ1nġCw]D~8rj\}Q])RSy'vO"` slblx=;wm{W4|}NݘM<]oeMUl*H^8gLP"r`+IoٶHV14CQ2 t̅k/w\FWCa+{Qڍt]1\ti嵒i_DV\:g.=ZRzs$LtHjiv!yd+AN_sE#dcfX%n)#D4aѩ"]w@846{۶];Ν?1y5ex]HS"]9֞ѩ]86NN=v`'{'~ɫEV %YAn\7C7->;_?zVf@RlL$&않!Ks 8@Tjb8pbKx| T~wR!rVf|Vm5j[Yt꿾@q=dکltʍf8byJ0D]Ux: LN%hv][9KE" [5\ '9"):J^ˠ L[Y< bpj&''3T < 'v,NO~|'9F6A/;媇&niLN&@O | cWs)TB R n QmeiS"ҌYV u e4g %fi5?lgw:z dQ-j8#2|kd㩌hk&-:F]sjQ)N.7{W!eH?9gMz۾r|KfdK1g;C"Ǥr{Zn/U]J3j" LD%Zj Nah"-'Doӧ?LI=9aV[Ol8WoݚM%9^r4%s d]vx ܊YӒ1QXFsEKд$x1O?(xQXTXV-PW&ӒCQD#z%*+87oμyՙmXMطsSM8|8X*<6Ŧq*\pŊ{$hhxdșW^j/b D(t41v%HheW;m[9L|ogmj~C6렓jY,; Ʞ5d()k(쪯%.O'ǣ4'p:JW.fPx0Ͳ^̳jTR$'8۱8 aݑ9A/)0TMXbcW zN+\@&NrΨw/|~_'x LFG82*1͠)Ggh% '/Zd:iNN%8&+2d$4WіaKE[ĕ8WF8b$/L2. ^*G.,i`g p,Ȱ|6M}걧6l޼e7߷wu^u?%pbձD4 T.[bcڽS}=Rjl4J7߻\d|D%^ڿq@ߑ̝~/. YWjC mJs5s'$ՖE;U}S$dWiiPDJ9$Ko9o@$h^JU BWt"vW@_H,%,ygs&DtwKjsY>{~|0}ydչ'Bh2QG3^[2`’z&SbbP`YibH鴌岪n$c|BL)WKyA۞s^uTR+B>'V?aͻ$t7?6ݻ$,/"8OaٓBW~xEϺw8rzx ?N:5~GzԼ!ŮŲn\d ʾ[8!}O^g:eG{*É i6+yq^^ ci(TP1@Pn7Ĺ|0[ @7^hvY|R*vc$ ʺmfT~ L崬fHU/bdfjAL2vci6zCǵ GKtt>G(1cƢ$21e@?Zz<.IlR: ^ J)AfN2A\o0P*pBv .+b$A-ٹUӤsFciˆ 4f-__hK%KzkFnxzy3۹ ]Y٭;޵o'*z^o5U?Ï<;:~3PAǏ?u঵=))D(Bn4Uw jS]z\'}`Q[+]&q:Sܪɐf=ye>&9<4x7sV])itx2LJ#h&KFH0bqB8Aܑ8Ń"($Nn4l˱rb$r<nޚ5|yH^zV=* r֬,_:W)kV]Y3[l58`KwOoܲ}׎<4Ie]]spg*xnh04rvdDĉ]PϾ))L ,Ed+fX=Sָl޸Є}ӆw]P^6ΰ D7CuӓT_cE(Y3ZNg *cuܛ"LpteZ~ݩe4Ci[E0s|b*;[3]ǒd\WEaVwRy )^ L!L<#3j\9|ɱٿgKJVMѳLbx`ElS.l.Kcp2-JɡOZ] ΡFMC" XԹ[Vaᶋ[}wX]y9W'm.%ye)0ۨڋwnFͳgo%]?ɍ۷ns jy5߾o}''Z~ּ6}hC#+]væm;*:ǎ!02zx8G/L!VYJfRa/޹ug|ϿG7rH7<fQ'DhRl/Ja풦1\q%5dR+p2XhS- g$I&(Vn V5A4\bn-Vm$!"R&dqaNâV :vi,KMW4Gp~ε[(ԥ3O ʴmA耏H$A  TӐAٶ[4WgJ1l2BkeEU??v9WC:kFж V:"W4W[o_PKQG{J0rPdata.npyPK6VrPyWavelets-1.1.1/pywt/data/create_dat.py0000775000175000017500000000116113270003221020630 0ustar lee8rxlee8rx00000000000000#!/usr/bin/env python """Helper script for creating image .dat files by numpy.save Usage: python create_dat.py Example (to create aero.dat): python create_dat.py aero.png aero.dat Requires Scipy and PIL. """ from __future__ import print_function import sys import numpy as np def main(): from scipy.misc import imread if len(sys.argv) != 3: print(__doc__) exit() image_fname = sys.argv[1] dat_fname = sys.argv[2] data = imread(image_fname) np.savez_compressed(dat_fname, data=data) if __name__ == "__main__": main() PyWavelets-1.1.1/pywt/data/ecg.npy0000664000175000017500000001012013270003221017441 0ustar lee8rxlee8rx00000000000000NUMPYF{'descr': '>2_mexh_1001_coefs.npyNUMPYF{'descr': 'ǃ?L-?Do?s/?"bWi?i??nI2\޿vD쿴O'*3#puGҥT~X?2lR*m?k{t?.!)?ʈ`|&^`?\P%??Mi?2?k-p8?36߿Ҥv`ѿ?@D迂Շ8~ɿMa?"T?$(?@Z6?o^%@ nR?^kGWQӿo*]XDܿ2Ή}+w;|/?Iտ@%vѼ? 6_?*?RكMm?%K?sclIFҿyӟgP>{+_j?c!:Qsܿ?O?K/9M?[d?m?hsY?>| /?H?.?>Y`zf?hIl?F__?m":?g Op?=^ 6?} CTᅫ 55~w!CO1_2-?HdF e+?r n ?|u??nmqgƒAп 9SNտ07N)Ϳo?Gy?GM8l?&Rm?\|8? ?K 7?<$֐YG{㿒_ O3'│K?l }.)2 '(?§}=?uhNd?)tQڬ?GN?<"v?hA?So'׭>ͿzllJÿfY?op ?bJ,J?+&? ~-j6P?dJܗ}ֿq3C?AYXKoDoY<$yӿz9JDžPWڿM:b. 2Oƿ9ʿ ?.Uc?{՘?I~1?0xu4D$0?vqX?b왧?ZZc:QͿ2 S׿W4㿴Dl&昆{ǿq@^uvȚۿ4>P ?J0b?%]QE? Oz?M :? G:aY?DV? 032?*J?<>i-"%8H#WSֿ\zzlT?1On?Ҋ٣"?Is?Ӊ#l qǿ]tihmUԿ*ܴ-V'* X5|4G?}"ῶ+oT5?}տ(c}tE r>޿+c4+A?|+Us?F)XC@^V6?m @t) ?[=n@mVTvo?+jԿ6̚712D?^VZOE{1h*F։CTсq-e&?8X>?C_?$x ʿٖĦ̗Wܿ};ҿcg O%?MCD ?5 ?? 5 Kv.?F3½%'?9mX?أÌ(NH[߿ﴖ>~`Z<G迫g6Z?r.ٿ(fx?_0f_Z}tѢbS*b ?%@տ(3??Ӥ?.rE'u??s.?p ö!?6T?-#o7Ѡ245 m:񿚒*?Xٿ|D+cֿ5>ɿXu1Z?GGpbYs޿u k9̄ Zߑ@ֿG?`sC?H<=LE??6?i }ʿb ;(m].ļ0;`F?G™Jԍ?sAO&-?Smט?< Z@N?7?_ٲɿ(ΩUQV?!ƺc?0;e?5 ?cؿ%`?Vѿl5`WԿY,*¿ʿ+-?XoqaPֿ@j +?ӿ:ɿ븠PֿH > 濤^ݿI=?<޿iXUn7׿ ċ6,ǿ$i[˿Tim?qbp:Z?*m/#̿tu?('0e?֙-u?G3&?'9w?%ȼ"?EB?UA;sj4yVѿe9 4:?%wa?&Q8oB޿!t]Gς@P[@Qw?J>HH?4MHo?^Hӿs4T?G#(#¿j{nSĿq@|GX?Ռ:X?ƥl?T/=Jֿi95?؉zK?C?L]Px?v?tM?U8?t/6xpߊ+濥Sѿ+9y?xp?wr=?! 2r?ek>uJ2~ok xכN?dh]gA?fLh_^} xԿP. Ͽ^?g>t -@$VY?߿[ǿbIa8hFA?5'gȿK?9Um?g&^?[[4_b,Et?3ƿZ8C3˿@AC?TٿwRӿdy4Կ!v;w?[Y *pYc>tbz?F_ -R?^\{:?A輽̿+$俘#[ѿU)z?V zluB? 摳?t5G?ug(?w ?Bh=$IkM7 O\tW?|?k};?Cچ? ¡w2 -%?d0???@?-yg??0lqܿT:^ P7M@⿯IN\B?E9(/$?~N#l?WI$7?vB忈 g?mT-I? ??:r8?܉1Z?a?zHI?4 uH޿+ݿ79;GNfĿTFPoVw2Vj󿂦 ڿ13Zտ+l$VbP?qa?"?;?._F)6?UN?Mַ;iֿiqt8׻%?g2X/?kϨZ?.3ʇ?iW!?^es?h ?kc6bkcy?йٿ?c)߳ɯaۿwqd):38p,ҿܷA<R?Jkȿ𘆟?a1A3N͙?8L?*D ?ÜtX?fcÿ K?x,bC>i꿹*t:ҿ'FGȿTѿZ?z#S?W ay?.k[?H\>@?}a<.ZhoοD^UL)Y6d6?T9LE_?v ՠ1?2jB?┰L^ڿ"?FBo?JhIտ [?p)J2KD`o7WNHeŲOB2Aֿ=e?Bp?d ?.jCEi? S7X?2?Yf 濯ZۿkT񿠩_ S?7(_8G+Q?{X>$+?E пvfTNU?[MF?YsM?V\RX`翢@dZ]±[?p0?En{\@I[H?(1H(U1 8ުn?r迒 u]"?Z?dїe?!?5oD =5E橿"4Va?I${޿ԥ}nHIͅٿs? >t#?y? ݧ?v>:?%:e4~?;3:=fc܍俨Rn?Lkƿ'7fշ?Pg̈́R>?ct_?=06K@Ms?.z*?S 冨?C‡dno1?kG`?Qċӿ,4ɿuFD[\kٲi.q@Z B?}-?X$3#?xƌah]9(?^22]ؿ[6?4?3١5?|9D?pSNι6˿kȌaտ@{ɼ)B_ o׿OO:ӿt ԿyAf????i/-?aQ?]TbG ᅦSXr`O},DV~ۿ_4IBJ?;vpb?R ?N?|Y{?"c`?s`?Xtt?PC?迉C٘(g?^b_S?@S@Ε9 ~@$@ȩ@ q=T?A ^lE.俏0'Ci;C)ofɚ`NjBۿFRQ?9K?pq ?+<׿>#uj?XkgI?6Q:׿ГÃ6]SGBó\taƿl^t^¿LDz>-)?LI?BQ;"}s?l/e?KGl?-?%g$DŽZo?l?8ѿR=&?.JBᅯ6sLWЅ x鿰2$UԜ?~OL? ? H?ؿ{ſ_ѬW? [6w追yοJlJC5𿻰<E?R?-*+??t*?o[ u;:ָ#{V^տbA[E鿎%=ۖJ?<4_^?%W迨Z~S7LD^fq2GNH?(?l(?T?Lyb?ÿl?rox?:7]cGRȎ+Q@X}1!Rc?GPK2?I.j?Q?3^F\ʿ`u?cx? $?jr?n?LB h;#Aǿ}-#DU???f]U?9YVr?kv?>+݉忶7 ܿANӠ?a\8y-JGIS7=k?c#gƿ$Oo?!?0goYP?Ŧ]?.?010?Lr$Rǿܛq?\x\ o#%`n_[Ϧ0!P|?8p?To@"B\G?rz@0t?J?З-w= &VGa{hܔ1ҿOsb}?-׿1u-7)? |"?s$?{4?H?)VӿrjmChiοL%ҿjf-?P6?W?iC?aȊ(?vܴR)Η)&Of8>rT}o?oJI?Q?@i?fIQ?hX>?*)?:T8v˿8V1E׿.i6%(? aڿUHP]?v}yb<?K?)]8?xwGM?T-~;|~g|]PX"?yVB˿2Z"?3\pfwFjz)d ?PS?6xRXRN?Ͼ?5}濲 ҿ]ي￧gܿhRmt?8?m??ay?kg}?|kj Em#?B_Ro1?nϾF:?}=s?ӻg9[q?0:ǿ KEϿuą1wؿNÿce>zjZ?LGI?~]a?zs6a? fٿv(Ys'Ǜ󿰆ssLJ&|w@?/zx?C=?-9?u I?!ܿn̹M?̶ȿq7ǿ0 N?HCѿUw("?%wϿ̂Y?6 ~ῖF' ?`3h;qg࿶gP?4|?ſ1?K*?OK?U?b:z9?:ŬB?dEd?HRm4 ? Et?Iȿ $?c2?Q޿ޥ8od6Vc,yՅ&хKVW!Pݿ+ǿ'~Y(?,կ4?P k?' ?hY|A7$)r\DY|/-?-&?,Y$,?gl)?j(B?V]?H`聴!- xCLmӿ2V?qt? ?K?ftpeb>1_cgau3_1001_coefs.npyNUMPYF{'descr': '7?'#Fh>sZ|?+Z?+8< ?ZXѿXOfqs?7Gy?@f?¨J?F/`H¿Adil?h|*poZGn?,~9?ɊH]Y,vʿސ\vXV-?RӽU8?Zk]? Φ4p>R\?uV¿I?FԿr~? v?z.HCP :bYIFA?%Xؿ-dɿ⋯l'?6V]7?(]}?HW">? ZDiåic9kYbw3R?4Sſ ) |Ϯ?slCA鿎w L{U?qI4пD?|G?;*eM܍iىF?ADjcw&Ihn.?ox?IIc?<5ֹ?3 Fҿ} ?~fp?7VAݟ(?8.E'?s.=ӍͿ5޿͗?Z)?s;?V࿡4L`?SA6Aʃ)ҿ<^,Ow?E ?[Qs'mʭ?U k?';yw?dQl?H?eNG5ض??% IDq1$wò?NDs? TilƿN6;xi?>cxb?PY!꿹َu1?- ?h H쿴XId?DZ|?-+yQ۳?{Xh )i [ſ)ԕ)?tŞ?jJDY|@*?H'?Cc˿^࿄9?tٿ ?`? E?}+Ŀl~ ? ?&H?7'Nԛ9x߼[? G2kA!Ff?r^?o6¿@?̥KPё?6";zdc~8}=bt? 1kh7׋? AE?}7lP9C?OY?m2mƿ@?c,޴?"R;gܿ)! ?R,B?5h? },`޿@FhW?DFK[%0'?Rkd0?1|NMП⭭C?k"f?XI÷O{:Š?i];?Q3$_`qP?MԪoYOÿJ?kE4Ӫڤۿħk?9ǫٿPP6wǿ[ ??J\K=F8R?hz?,`%K?eYVz 18?e{Ӻ22J*ʿHxC?(X˿\Օ-|S%p d@?m) H?GIA?C7q$vٱ?>??aN̿%83?LE&?1POF¿onZ?5Ϳؔ?m׻?I+NH'|ĿKW?- qeg,Կig?t(jh?GASZ+5ֿk*|{0S?i I#|?u?jj1:k?<]-?.uGyL!':&@?`Gg?om■t895?:jkz? 7Iÿm6=¿'8,?)7?3id~4пܝC?SO+8?8CWj?SdL?oҿO*E?v4X?c_t<߿#^~MZ?W-M?ẍ応Yv?7-zCKӿI RtOnr?PD2?KjgyϢ?$?d.3>00EK?zY?kQ*?tm *qX-%zQ ?Ob4_C:/k£ id? xv/?l͖PZ=P%D`\jgk?Iԥ?%ibONSӀw$?5F?c3`࿫v*KcR?]V?:Ў)6 ?(w:N-Ͽ:v6?ef>?f.Zxȿo~j?3A?r ؟(W=Ga{`Iؚ?zo?-4(E^-p?z?|V7׾Ŀ(dWC?fj mn(?$$kT?"f,9wif?$OmXNw8Tտ>NAc?ʿ; ſ Y?g[?TP.SN{ޛx?Ɖv#98ҿP P;?)߿FRο^'{?V1? lR?Ui? ]`޿mOc?jٺ? uƿ9?nI^?\m<ǿv0?4H-SпVASi$u}F%?@?:,@W?__G?A +ȿ888? 7|d?O~Sa'?DL+?o?݉2\K?t#ӿWԹ?Ja ɻ'?VdI??:6JCNÿhڼDŽ?Tv]k?ml Q"f?Y9?: ˿ ;{=? (?Y]-?}~4?H~ͫҿW<2?($>8Aʿ7x8?cy׮ƿ8?s82gR֩ǿ?z?ә%Wf+&zʖֹ?@8\?-NU"㉴Yݿo#92)i?\ B (um?t^?a??q[>ڿPB?@h/OO*Zڕa?|-IDp? U?i?x^gS:Q߅?/E P=s?V]?G9/%濙!/î)?Ctp@EΫo?fג?.*\=̼P@hN??5yɻﭿ;?ɿil{'n?rPK?ף܊>?WiL(?UF?S?ſؿ̘O?,av}?iKϯս]E)?d]v; ˿m?J6"?`+NG>⦨EW5j}?f(kҿ#N/̿٩ ?+%nڿ޶WU?/mQąbKB?`ߢ`?<(Կ@G?RrR?SF} 5?:>Yz?d1H6P?kF?6^+ܿ0&`\84?6桖?&RY2wSj?2gmڿUk˿gAz?cѴ?͌/댩&H1i?aՒzÿjەHӿ,_4P??:p^Ѿ?8I-KJO7?ĕr9Ђ˞? ?ƿmv?]"?i]l^>!F糿D/ah?. /ȐVx<s0?pQ?|H[7<͵?|q?fp⊷+r#ˑ۹?1Y?%;%!雿-n1? v;?86%j1?\N,?`w {Aİڷu?@M1?= ɿ50׿p9;@o?ձ/F]zoȦX2?@I&fƿ%s?c4 {?|QAE?;z?"v$ſO3?|I֯?9ѿⰞQ?'9࿶MѿrTm?B?|#wnӤ?QIL?m5A-8?yrk?Q̿fE|9h?%p&ˬ?pI}t '9??|گʿ,.qb?lTM?B vCHLU8F?Rҗƿ3?dw?w 2z, ?,N!]1п<,{?N2H??e[ړ??kod<="࿫A=ʸq6& ?S.ު2ڿ<^? \wI?$*`|?9BqۿĿP? tʰ?sİRu9P?,i8?夺[ͿY8z?]}2V~PiZpNf? ?hv<ܿ:)sFx?& ϣ '4Ϳv?<8ٿbЁOR`?Q6؃eȸV?PK?WOVRpl?ݶ4ĿyD'?IK?J02?9Cp?[ KLS%? Ŀ=a.:?wB?tՖ?<(?r"c?dѠz"KQ9 t?x{Iƴgm/8A˓?p?̯>UVÿ2 nj?# 7i?5Zv1ſ k?3bl wտOH᧿l+?u#<>Po?VW\?YYQ>~_6?+HUYy濰*?p:|?5Dp?m?P?Î_Dݼ?K9(H&ɿ~cF??KЎ?v>J`n?4޽dͿh-۝? Dz?!(Ͽ4 ;QG? @ҏh?![`CA>Uw?2^5?dt-^g$k]N|?Nqh-OO޿S%d?DᕿV׿D#=Z? HȿO=1iD?`ըw 527?$0޻?RH+ٿ/?|k?nG=M(2nĿ"O3;B|·?ã[]5ͦ BPʝ?xi#6?7h 3Ry?. j: ?!3?=wuҿj)?b^ZڿPth?B4gTp+*u?f?7ctI߿X7V?[sXPmҿQ?N2R?73rw*lϪ?Nƶ?of@}W*?¢&h?>׹󐻦?2n6%8W?u,\OYoڿ4a0p?m'?&*Ze?~?ҭu3V?EH+翣5X+ǿy\ ?hi*ӱRfQҿ۞V?I^ ?#uH?R-H]=?bdD\1g8thxSA?C+?Xᅵ:BR]O?s5?a~b y?q?V=Rѿz ??z?kw1St1>He?FD?ZE4Nl?8ύ>Ra??PW 忚G?Vb?7C翐C+{?̑NG|?p'[A˿לܮ?Z?M-:鿬$҉Pp)kj? YǿSq|?~%wQuRڼNT}?~Jq?V[E@~e+]?:?BRCJ wY?1+ɿ``,l:?⸑` ?t @U}BXҿs?>PH?,{?nf\?_YOS>Y^h¿rwԟ?􍫋WulY5?#RU$?^7п^$G?Q%?"]9X۵#'oѯ#?wuſT˹u@9v?}B˿&M'?k?"v~濙l?:.nݷ?- lɿ|r?[%?J4gٿ&?ny휖տ1ſ'w[?DţH? aG?tH9:ltM C?b=ܿ@qq׿#=-J?w»?:#Dq?@ט]?`/Ͽ¤)? ݒo?͔I3?Kցv?뇖Fhݿ`n *z 7?_;#$;Ӭ?(1?>ۚ: ?RƿZ珇? Ƹw?J|A/B  ?ŏ*?0cFĿq;޿4$?A֛<"H/V?;[z4| -'*Bؼ?8'׿b"/!yq?̹6lX'$0r??4RI쿼3_aYp?@PĿK܃?UP[? .ɿ]xjC3Y;?]>??J翖HT~]_=#?zc\'F?||k=뿨)ʧѿ9x??n?;rXzdS }A?N?X鴋ȿ2ѿtN(?"??pH0ݜq?ry̿Pk?O2?b}t?mf A1Ŀl,? k ?Ho翾Uw{?ȣ?TY UTЎѿ8ng3d?@c䚿IA-ǿi͟?H;P?Aƿzf?ϰϬʛLҿ3?笠µ\:`?b!ǣ?ίD?п,>:s??p-8:?PnPS??Rrü?uO?< R.?[-+ɿ~?S?tFEiѿ6cX?`}[KRf9(eʿi/˿D+?^ X?$VB۫H?80x?N0D 2翀_xЦ۷r? -?j ԫx?8?$jSˣͿNƴL"}?JK6ߴ.7?a һFο?(?PlLjHJ٧??2 ˿o^տ ʗf?v_F{ֿm8ݳT'¿\ֱ ?N T? jeK/*_i?ppWX ?'KPX?wWլ^c2g?YTFM@пU^F ?;y?ձ㻿? ? 6@?E0 ?&Ó0_翆 Ŷ$A1Mu?H+꺿HG+);˧A7S?0ivx?߽C迂iT?|B5W?r'xr1ϿΊcCl?Tii˷?zt񰺿݊F:a?FI׶?\ ߺc)O ?ˀJcY3S ߿s??I?y™?nћoҫÿEꁴ?P6 '.nu:2`=b?p닿h|BVϿʾ?/c?6ԉH׿(d*VE?'8u~jǾ?k1俔QG#ȿIfX4?q$?K85LJoڕD?HSƳ.ҿE0?0A,?1Hʤi쿐]DN]?jd3 gͦ鿟ypT?%?$ɿ=F@W+?q1´?5ʿd?.t><7|jcпD w?vyȫ*H?ZӮLۿ mұ?֐ɪ?S Rށz,տJА`?jF ID?A)&5?҆ρF?h:?|TU?@jm?C׹j?p?@5`eʿdX}?O9z!?pm͚?҈G#ο.7ÿ $ ?vfKO?O7b˺cn3\?=k"B/9=xgPN>?V`?N$Qҿrù-W?Ʉ̗?|Zο F?Per$۳?@2?djP!?6YYQPf˿h??85b槰JsC?HX?d ryn)οN7?48L?d+c?RNT" 5?WgB& rYk?zA?nT!E"ݵH7Ԕ:F?o!- D끿3UMTF?yJ*ZùS?*ҡ]?[`FqܿF闿Dr?[m?2y\jb?h[Bz^ۿL/|?<0Y[;Կ+ݥ*ʨH0E‚Dȿ` ?P3v+?6 i俾ה?m'gN? ͮ/>X?v}ڣ(ȿ>C?OwʲnhF[?o<7ܿbt–\Hu|?*P_7?UT'lnW?oKo$+*õ?%q?S[.-L?^.וxO?px~?@_D̿&禔8tC}?P•$C-?8NԿviP\0O?K?PP .)ӭ|C[õ?C?pw?~tW? ?xdx2¿ Ar鶿?c;bs"п{wUi?]Qy9?=_ݿ$4R?U?'J dc_?H0 K᎖f!w ?G(-?ucٿ?yQ ??YJV_mN?q UG*?@V?C5"$?`,hS?>݋ B%ҿ?t1Z?]!-Э7ܺF?]{,L ?f(?Y&C[%l!΢# v]9?hߴ$P%3!}?-:Iӿ(%ys%/??U_y  mq'?_AɊ?9z߿A UσAI?a' ?<ahak?i ?. ?2g;Z2pM :W+?Z1X豿$/ uٿP9,?|ܣ?8@ ?y0 BL?g?Y В=ƿ*?1^:?sp>#ֿ̉W<7Y?c z&XU'¿j9}?]l?~r2?9w:zXFH? )JWzZϼ꿋L6z?6(l?(ܷ?xc3Ԣ%sOFo?w{Y8xu$?c9mM?rt9˿Vd?(C(? >P쿀J3??Cul`?Ӂ ǿ=n?Lk1?~չ?Ӟ^*F?T|Ͽjz?f տ3N˿E8r?m}M??geX ?P>?بMɿ@?Ių?Z?(lOl3ѿڂO!?`,=X¿ */?e355|k–?A(rֳPRH  ?vKxnk̽Ôm?dN !i?D¼?R*n bA?&Hѿ? ?*rw4>4l2rX>?|߫~ӿGSƿN9#?`"s"V?ƿw(? -j?4= N ?/@(?]mKɿc&?ai?@ٱـU?<'2PKJH#>>1_cgau4_1001_coefs.npyNUMPYF{'descr': '[?0b!?BZk pPc?DXk}? }2j?El? Or%n.7t??YTق?\]{ſPܛ?-~4DP?t׽̅?Лdo}?V?vBkbƿ8pZ?YוnĿb ??<#SVİ*Z}?xq&U*`Jjpd-Y\r?!|j(??.)/ӿQ?̧GlӭWt?r%i?ԟu6`eZ7?Ļ_R?Π}Ů;.{D?6U%?lK,[౿ e6Kܖ?켽FCg rԿV}bɬ?Xu&ԍSP(@?B?TO@2tGwѿ ϺM3?n?Z(蜝 c郩6<=?:ֿy͍?I.4?Xȑ?:{s?Rv &{?S&?߿v՝?ڞ f?GR7RIYzM?>ofw 9{_?s?,KR?1ML?$⩿PŅꅿ7CpX ڧ *h>?aͿS05W?Pscf?p^]Dp?@㦑-hP?"X|&kۿS?nj6d?G@g?Lҿd[??(?C̝!vcԁ?0ѿwt? Dtx?)c8gI?%hH?ptlaF_Ŀ. i?0{kk?nlUٷ?8D斮?rF"CF)kϪ?ŝ㾀ҿgg?VML?SxAӿxھ?Nx xO?U`Վݿ6s?ӌ?lF#U$Իӿ -Ο@ܻ?(*?G%a`ܿ`y'7?"wU-?@7Y8j%.?ZKS(]&Ql?z(?;V~8A?r /J?_N*-(5?pSV4?LY6 KGL׿t?,dwmzB^Y?Z'F?~Bss&ZeE?ߩ. lᅡG9?^γ?`el?N?j ̿!툿&;R?9,K?wٿQ6塿?M,eЏ˳?eyK?EwK|ǿj?*t(_s? s{ǦװSk?\k࿸zO9?\Y?Fxø "ѿ'_P? ѿ<zרʚE E?+[/"d2?6?!Dn<ܓ?՝!!?^{ Þ7Ͽ9KUy?h_?|a×?b؛M_ǿƘ1Ÿ?ӹ&7?A ӗ?C4߯?,x„8(zv>TS2QU}?fpvK?o;Zv?.Fm#r6Ǽ? rH6\|忸 rw?X?,zNB& %?^#?J翬 8H? ?`vwD;}/$( ʸ?z63ʳD<{/?*S*|mܿΠm?Txƿݜ"; ڠ?]c 55𿸵U?cZ??VL,Ǵ8?roKN?9=|`T r?c ??/&a0 A?#(A?R*pyῗ49?&&?%Ƴi=z?n*45”?9EъٿJ?Nx#'ثK4֍?"\?8o⿌6ZshEJ?,M{I]"⿬ns?Jb ? lƅOLs?c?zQ[$+ο~X??|nByce;ĺ1p?1??4[$?(мl?E?t3 uby@2?xA[?2?K*ӿs0l?W9;??7͈:wuhy#?qp`'῟cS?_?x<2d}N5?kksȤ\8??gE\?Hb2 W"?Y.O?7 wgS?ZݔYl9Sh l)?iɵ#? ;tĴ?z0ΒS7?>ᮝ?X,l7pyS& Uyb?PzYX?뿊dSʃ?Np?\5T&IVO]?{t|?e0뵻:V D?IƨĠ? "2T]?Cu?mU5YjCu?\a3?`?TQpQL1?pٿ8ɅV?E?j-%)QҼ?e- yYeԿ^G?Ϩ÷⿐"?L!/?bUZ1o.oLֿi٠?(?&hC9xʚ?[{ ߂-?}Ӕ?? ^=?GYS鿣Qe㕿i1"픿aH0E?]h{ؿsh,?X?{VRӿ}?Z̿dp)?H" ?GR/.AJ?R#8ú?fv l5?Io0<4N1jz8)?f?To2w 6*-?/ܭ٦?C@ӿcцֆbZ欮?V<Ð?-뿚UCg??#t? `^|?PQ+Ŵ?$| XHûOPtz?K'3k[+?:p*+?^ETÿ*bR ?x&/{?˻>;^UZ?B\?-6"?S =̿6V껛?_z п:!z<\Ι?}}K?C s1?&l?hL@\9^p*A?ڟ{~޿>l‡l?|0^?zU,?cܟ?v@3kwc?8GeL?`q/콿(&ʿ-qx1ޠ?+׿*A&%?# $?BmYⰿ}o?Y|)BjMA? `*H!{B3I+?37a?3k ?aش??P`MTοi"?+8s׿3}?}"??}R!!LFҿz* Y??=_3F? wtԿ~*ѵٶ?"?e翉?V`w7?YdW5ٿRA ?v i;?*o}4ؙ?h7H&ιM/xx?O㇅?xch[}Rڍ?HV?͕@$#\NGFA x?42y٭^n%u?m?9h䱿ƯMO޿I? ?}6Ŀ#K?]hd5f?|3 @?J51;?:!J޿."{? =y?He=_Բ ߿U N0y??!?''2>*/]?}?A?)*z&#O4;?c>{0~QѼ8?2/r@x.⿯'6V5?G4?"M0.z~q?`eja?(ڿX'3n?T݌?:ƩwlEwϿ(mnZ?r?-=?yZЎٌ&!Uƌ?ˈ7N;{?ZI1?H9&HteW.a>? տ&զD(]U?ԩUၔw PWiM?A"TC?.u#q9οJ/c;?MbֿҲ tk^?11廿l)+W ڿF?`}<ۿ(ކoyMz?oh0?\3KEnӿX1;^e|?.e?N2R!?DwHB?Qm@.:Nӿ?!p?x-? v04v~Yݗ?VPz6cQ?[au?Sx:^ӿEk&(55?{<?Ϻb6㿔3u왜?${y?&Mvs 鿢$5?y=? S *⿽;\/??ʠ$=gv 1Ϳz?DϿ6h)yX п?z45qߚ6UϿ(QGO?RKt?Dr}I[ʿ0N_7%y?8q Ǒ gEZ?M1[ZN{z0?D)r]Q2d "@o?_J_?Cj$ᨿ3?)IkR?˿tɮg*[`?Qi,V'?3忻э (?O\] ?,ĒZ؆?IοW?{?dm7ڑ6?R*\?c/yӵ2DoG?6A?}nZjB)?U?rU ՞WG{?{#m? 븒?rr[Sؿ0աOa?D껖?aNH ԿPe ?:?}s?i#E8?~|lOBY?dtS?(!Bv$iٰ̿%pb6?R!<5eߎĂpy?0*?e-gӿ͘m& ?L˜C?JAmm?ϜyN?hAޞB(/_.ޯ?g4yx;Et?.?eH|{>oP]U{»?0u#6]:?4w0?tS?U?ѿLl{n L?dS?_M1Cf п*4Xkg?]7"?Xg+'?)ɍſEˬDmIO?jQ?Tцv?lx?V/FX5`t޿Hsq?gv?T-DMk?+$7mοWu?Ϸ?Vߑ ??4}S?H0Kw$D LlVy?ldD IZ?2Pv?t_ ¿"r?i?!&u?SI0?ʖC泿.VW?46P$?c>,U/.Ư=(=X?_SD?5G\n׿C:X?z$Ł?.0{F&տb!:{6?XͿqd?_Vv?YS|yqTzZ?.RK?]M5/J2?D'}Xrc?r9t?wgßOD俕jPJq_?S?5EH Zp)Ȧ?Aɿ?Q^d2U ;6 Y?Vԫ?7{hd3y?QZ?E&dL܍8n޿PA?uO7?>.R  k?<])+w?}d4?̘dʷ?%<0?9 ؐտ?fz?пH G?rW>w܋ҿg Op2ay? ncA?⌅u^1oDy??@H?TNCbd5޿];B?`R?G"Fs?e[V^[U!"?%< YV?52~ۿЀkk?Qڛ?Ԧxn^ÿ?Ij)̿LḊ?Sls?Wاʠd1?+ .!?TҙпuhФ"zZ?٩u?K翩r![?E6^?[7x9oOe?f=?߿F":`?J`?[cyޗG?dz/r?I}b̿c}猈?9M?\ P?nctHnrXd?3:y?(U1?$4|?Ihÿ ُ?jL ?:]4bu.k]s?W Uοrd xI?\e?4"$׿0VwdZXX9?  eM%BVVD?q5ǿiCz :?y N51޿I;\8?UG|ƿHݯQ"?ǹ҃#?&{>远\EJ?r ԁ?E#߁z&wmQK?Ԁ:pLp Ai?V*?Ά4|`>e?3np?r ' Mп6tcS?VYcTƿLU?(iK?h?M)N?G1a?Cpz3c)z:?0=:?еm7z8)㧟? C-?\4Ф3mU?zmٗܘƐtyH3ګ?B?Z|㯿OX8AǮ?qa(?X+ڙ0Ao?U+#9۴\3u?Z*$޲?P:Tm\Uc?.S?ȃ3ɏCy@md9Vê?/]ѽ`|?HgRU?NCYX᤿bn?|8Y?ؿ%n p>? _ѥ?["IOx?tr?'3o3MOۿh|?p$:ܫU XW?UB((kQ9?(R?uUP>E?r*oL|-8h4?x5ܿh?f˃?t> Θ&lu{?_ пXTq3?YP?I}K2:(꿃tA?R8} {?dU-܈b?Vu?2- ҿG]<\㨆{?G$-%?b 0cѲ?qje?ZQ[ߚ??giD,տ#%P?f>9?PFTwNZ¿e׃ ?(w "Gr +;a\?TV+?ώ+3}ǯ?r4?SNb}ܬ?[4?ʄBݿvE 9?Ho?=K%qH> x?E ?]p2[q?*?gA8ɩle?#V Z뿑mQ?80j?irµ֐g?uY?v yZ?@oq+bӁ?;~dc?n}@醿8֓Ժ{?q5쭿XW*mg73?-ɷ`ӣZ$;oӿb&T?plo 5gb1?nz-5hJm̹o?,0-?#d6{ah{?8&t0a?ӻid? 7Ym鑛+ +?4'俕ȿSuq/N?C.?}~ǜ׌? 1"̿P׫dCi-!?$Ң /Pʎ/"? ?NfS᭿1Jō?lŤ?|I)RL+1/C%3?,_G1?wHտRVf?7*Hm??4Zr(?wB?D ྲྀuT՟[?奔9O@Τ? o?mw5?LXFӿ` +ɬ}IF?zp;?Rk$)ЂOx]?l Iݱ?"zR+y'}U?` ?In(8Dտ9e?⏴UUؿyʖl^??txl!Aῒw .޲?@啫H?ld&{?x ֡?0HƁ 7@x2w??ۀC nH0|ٿls?ݑ}?aOGFֿ,ÞT??ҿH p?܁?LW i?0qPi`?y q?8^]EC8=N'S0 [?fLz?БnC_?ԿB5XmU?jmQ2ܫja]Lῶtح6W?΢bT{gptJnf?'XgW!QT@N ?8?95A5p?yҿ0|+H$??Q~F&˪?[oO?;>k_7ڿZmPrj`/ ?Q|eDvGݿʝzn6?:B͙*?7Yqs4Wݥ?D+N?XJd0+ Q?D?0AtD?+GԕȿSbeV/?Yll<⿈^hn?rceK?Ip>N@))M?\R?|Oο_5%/G?Ies?r11m0?pE[7?L|ிOS?ؿ0g{f4]N^?U6?qۿqq{.*$@?!j㲿Th(g։?c(J? JI&. ?BrWVCJiNc#"?5%j`?vpfR?F&~3ԋ7LܿTtȵ? ֘I\6࿋VVo ?)?am =Lccϖ?V n*u? @e,?Gٲ뤵?mXj7p% H'ѓ ?n?Ga7똿5g?SpN˥$x95?ș?}:ӿLLcfqRj?O'o~1ܿPKJHJe1_morl_1000_coefs.npyNUMPYF{'descr': '^?ӿ.UbHvi?u3^֛Xdd?Ƨ18?~vPտ<$t?Jmڟ3 DmYQaf? )T瑌͆*>;۸? |`ULǿ Wh8?7 )D?@my9Cֿy:|?+tj?[RֿkJ^?߶? _ѿe+\пY?-ؼпF";1?"36Kҿ*>\?(uSÿ ¿9m;5?=YIzȿr/vTп%ù͡L ј<x?P4V?%|ܿ(# 6ٜ?|&?BJv׿a/c9?C?C?n0x.nܿ4$|?ټ?>g?n` ?"g1ڿw;s?-qWƿ h?tܿBmjfS4?bB)ӿ:x+ p?UfIӿ?zfw"?lAԿL@CV&?@$0ſRu? qĿMKǿ/?d}+?OӿcOƿW/c:?hAհGпܪI5HwI]?Z/ĿOƺ"b?tEq )0p]?})c?B,e߿E??1?$ -'пhUI-v?h?\mOϕֿj_)Fj?pb :uڿ0h`"?w7Ey?0IUӿt8;s?N:ɿ^??ߛ? gMS?gkP ?sً(߿0`\&Idh?B-|6ѿBQb5Ѳ?z}ꌍu׳?,ƿhFӿf :?o9I^[?xe Ks :X¨?Zw?+^̞?ѣǿp6 3bXGZj)?[ˑ?{7?Tߜ?e8sbϿR JL|\z3?.IYg?:tD"¿ciw?v "ڷxS}xkSO?'z(JMp"?ݛLYȿSڍ?™iݼծ?SI?UA* ٮ;kDAo\y?'?TNwj,t̘#?v@ݿFg0?y^?=пNv??h,4?jro^iu)nul4q(NT-^J?M-c¿A<;e+¿!{ $]?;xu?0Q ˿~΃a?0?\п ZYw .?XxĬ n 轻?T 54HF$y?2?\ǏԿ`g_?獀=ۺ?! 5?ǣ-5ſ ȐL?g=x*Ŀ۠i?fƿ2r4?bCn葿p" ̓1=?YSտ n Ϳ(??$#Gg?GBο9uWٿےwY?`٘!?Xw/\ٿM[gj?PTл?RTȿ4 k?-h&^ǿ8}?.?][(ؚ>%^XRB? ;?;=15?*^9-M8Ͽ2Bb?2\? QT?%M5%ˡ vs?ND}&?͝l3ڹb}?3Q?"ZNIֿ ѬD?{m?}Ȑܿetc'?"/K?dwPӿF?J?f8jMnƿP7?UҾ?oUѿhHy?2ӡ=?!Ba?oFwɸS s ٿ-!E??dgпXs?X=6ozm9U?I7??Mҿ?VW_AU?5SG?zۿ%6[ { ?1_Uw&kuֿGۢr[?(Dܶ?,2 οT4?@n1nzP?4Leȿ2B:V떿F we UĿh!\#?L[?Wǿ\%`R?߮|?sLÿ@Ŀh@a?n?C|[׿ )Sdпn8O%(?a!E9ſWп)d5??9ԿO\F\ǿ!ǾH?MYyXu?^u$)3%??$Jo<'r=пhVO?5u{?B~G5=Ϳ@)w\?rֿa߻?:? 94׿V{5?1n?Dm;ٿ!4<?ZV B{Q???6pAԿ$BlQ:]?w9pѿvZcMpX&?H"2CfQ[濺FC?%F~qM?=`"6v^ҿ\Ӳnڱ?"j?BYHw?֨G9q!|S#ÿ2ds1?qpĿ:!8̿I3x3#?Jf]8%?؅,?8i>뺶YГ׿??eǿ$7Կw8?rͿDْ=E4?yD22?l ?I3[? ɐ̎/qǺ?U?ⳔP?(!ś*+οp~X?V?{@"?oOx?n5ÿU?јD"Vv>?m {7ÿ}@)>?P'b?& Ѥ;j\ '7c?ZQH?7hguԿx8׿B?X~?U?Ț9ֿ`evO?C?lw*ܿ.T}?9Z*昿UE%h?|?Pݿl +8KA?0)2ΌfտXC0?^Hb?ٰ~QYοM4y26?I+?g&??qſPS??|18Zֿ8pHV!?|iDn п*_ÿWD?>?./?Hæѿ濿`!?tEՄ]?t-5ݿBA? 4.Tҿ-e?PB %?0!3)׿]׆J<8^}D?h::? \?G Կ)??D 8.ſȰE<5?| /oGGf`п["`?ٌլ?PFܮ˱e&ѿRލA?B`¿7>,ϣ~$?49,Ŀ~~N% ?,CN6uALw? u^<ο|m3e#ϿaD&J?ES 0?d\ؿv(ce?Rr7?hg?NXԾ{G2?SBpͿk|f?¸?(׿8?f)*:?; Eſ>s%?j*{$ (,ȿK"R"N?mvI?TKUڿUp?X+?Q[zWL?K™?lqu?7⣜pPпv?4Lyؑ?/N^p&H ?\dY6?>f4ο2Y?xV[\?m95C˒mXx{?Y?{f -ƿ_ǿ&?z1?_,ʖ<;9οב?x̆.^?"i?{"ɐ4?ؿH C}?WO ud?͘lNScôӿɓs?!3~'~lg?^,}0-ݿΎOٙ?v|ݑ?+˿P&t?ͶĿ:#D J?ZT1?fEXL_6<?螴?]W㢙Ͻr ?(dÿ}!ƿ?(yI&9?`Zѿ`E?-'?{f6'ڿWYau?%+^?~aa'%?|j?!?;lԿ$0$6e5?&/'y?T^dĿNK?1LH-ag¡2 ?${?Z IUѳD> ο|^? ㎏? ޿Zw?3ےP\ة`'p?&:36$d?{) Z?l{J̿Љ$V?t:Ϛ?a524G?.3`?8i TƳx?"K/:пSxK?v?IC.ԿF^/q}BY?䵿Al#K;t"ݠ#^X?r%ֿ6s"?X3W6?dhfǿ@%!\SؿLQW?GI?eUֿ@vO?^-H?$B5N!]icԿrWԀ?vt? jSÿp@p`ދ9BZ?WZ԰ֿaHtĿ"_?J뚣ѿfY2߿Նr? pր?T pA?9a^9鿬Q?Npę?/_`ɿNn2?k~D"t<Կ b?=(?xYnѿt}?0v_?ry%?32b8.6#ſvKpb~+?n"+}?@Md9t[3/"@?B;lӼ˛E}|?,1u?;$ !׿pϛ?y}{?Nȗ(eiʿ(4>1_cgau1_1000_coefs.npyNUMPYF{'descr': 'Kz_7?^n?Rm<㿱v?d틌Ʒ}Rw῜eܙ?FgP`I>˿)|?|꽳 "߿O ?mM1vѿ/߿vR`?eggῺz3Ͽ$-\K?z!翄})9? 0x%oD?o?RHm'Onݕ ?TpJݩ?U_(ܿ56y?‡?6։mQ?]T8?BG e[-?Gu=´tA7ῂS)?x??πp@Έg/?` ?_пvF"?zF?0Av}̓ &`W6Y?*%J?ŽroaXuԿrpB?@ͿF;P?^@Cj/?N'?! w{^č0IQt?0!ԣ}?bRG3CP׿v}?q ?#UQt6v%s?F?{ٿNZR|?'X?{&nnֿ(L'6_1L?Ծ![Y-?v^rHm{?' ɿ%#ۿ?';y ׿Pe?Z~~?72&Q?H?59?dޯ̳%œ?Rb?%ҿ|Eo?HW6q{ ?BDQfF0ۿYӤR?HSPn ?r}?5? ?7tIr$*ֿHj?jaHȿ|lܿ0&*F?qӿtX,?.) 84Z>FxVп!0$rZ)w促RۿPM ?ѡQ߿-7Q?Wp?SބΠn8?NF?1c,鿌#g!?žJ?Y@AԿ?='?ݐi% N?!x?I'Cп|#rypCa?f7FI#/db@?D!v1-?^8Ii L4j?;FX?m:92?f?QY[?VP l?$r?r)+"?|MfT?D8:0e?/SzwD?z%?:-&s`:?GWs??k؍=?s?:Œ0zl|?L]?\ް?)YBn^ٿj{?;ut?zؿOr?@̤*auÐy? L꽿-?j\B+P?!N/8#?>F4?8ƶkXC)ZӿLL?yUܿ>?W|1vx?~"1y!?U?+V5ܿ:־&ֿ#MQ`?#Klo࿕WFZ?|c?44ӓ0H,? S'Lզ]]ܿt61zyj)?sP3ȿïܚ?e5Xh}?TlD?J]7¿jw W?d=?J~S*GPÿ;?`02!1?hoB? %f,`>?fo ?9?5?9qiT?q2 ?Ϩ:пZQqACܿ;hž?Q/r%?2P޿FC?(yk?Gٿ^AW?(?%A9?8G<ʿx?;77Ǣ濠[K7?5jMCTޛѿ`?M0t?_&19;b?@%i~ڿ}/-,C??yٿUҟ?I_z?|xۿԱ?\.@οh nJ- e˿@FѿDյL?.wӿ??˩f?lV[?f2? iWo4 ׿l̞T"?b}ֿT*f&?eXռ?&iֿ脨J?*ӿ0u6ο M@?!?NX)ƿVD?-H̿nǿ6XF ?ئ^Q濲s2᾿\d ?jR,ۿ@Rt?=]?\Ps9N?Fէ2ٿ|%??BI!?`53{CCm¿ɾۻ?{rUD[?^׿v?,B%K&,տxEܰ?@ 9߿}h"ֿh14D??ПH?զ-K࿅/YѿZO?ܽ?o.4z? ?r(п;fQҿ %8?ϥR][g3[?4~ 6gӿ12 ?O ޿$?x^'d?zo5m?"%?nҺ׿Eqt?; ?N:ۿQ?3vA-?k)ؿ"`P?`c ɿ\iڞEGտ:4~?LHj̿͞O?تQȄ? p X 8?g;?( .'ۿf?v;P&?1vx9YjbϿ3D?v?<h0}N%M?~]2pٕӿteRo˶?׉Ŀe ۿN;"?k\?b쳆V?h̺Jl@?a_χÿq[?Ne?=ȰG?kl?Zs\tN#]Ocg M?[wءOؿk$,gY?AN?ScY ?@r?fW7[?~L?d韘ܿ #o?4E'Aʿ6?$th6^oͿ\"]?֋Bԯ?\hn俣cf\fR?Anܿrll?Jf?=Kh n? ˿^wBWֿ[b?"|d+>?@4$?۰?փ|&Y'Sf?7䲿 C?s >rE68SH?"?rۿv?bФ޿6S7̿zkd?kͿ[??̀Ϛ?ۿ 9? U ˿ۇ"?mT_a<%l]׿a:I?p}JֿU?|?*X\[? Sl>?́Uɏ^#^??2u}?eۓ?Uu߿Gr!mk]>?޿m&ts?f8؃?hIS˿hӀ|?üNr@d?*!4"Ϳ!?g?dԿ3<л#N@?*V[ɿ^pV?Jb+o??x;8vѿj?.#ӿBQ?XQkVA?/9?0ӮN?Ԫʥſ\1ӿ ZHҭ?Mԧ@ܿkC.?^=2B?HdܗKot?-N8?a9bk;Z}Ŀ+4?sJ-TvJտ\?F(|?|q?scܿͫڿ|f?Bw?ՠ~ސ?yd!T?(ֵIyX?ݳЙ?+񿠑U?w]U:?5#zտf"ql*}?4Թ>?nXۿ̲G??!mUE?z\Vl>HP? \pWY:oϿMv|+X?:-п OcC?6=D?;ٿJ?M{t|࿾W4\?uQ`࿘^ `?a&1?3-zK;ʴu?Tspji~R?SbNcؿܥ@?Jѿt*|PdxS?ٱ迊q?Wտ@4>?[3Gefs8顫?͇gֿg1)c?ij0^?h~͕̿"}?7rE'?p=Ȱ[R`?A4ÿFcS?/ʜ^RX?e$?ȏ_yؿQDRl?gۿݥPͿO!g?T? uՙv޿9?S?#οKo:տL\x?/ g𿞣Կuz*?ʬf ?%3CZĬ} Q?PZKʶ?p*OV8?s_ȁo?f`؎?dϠ]6bWP,?amgN;ƿ3!xx? п6. ?E$ȴ??I5?Mq?Zw}׺vS~Ͽ[g)?\CoO? Y1s?+ ^vIXIҿb ?-S5sh?5ÿ 1a?];? bǿ 2 Ŀx:+?7WOǿ423?'R?O5ᅱ;^7T ?҉}ĿCG/Կ$OŖ¿7|S?&j;?Y-_c],?h?X鵿XIs%+࿍}ƿ  ?}eؿ9W?߉d?{>0Y ?Gqd?b!Dݿd2?!= ?52 øl$ ?{$$?4mז8lJ?'k!7Ῐ?ETȿ0D;?ڐ}?Ҧgv?(aĿjfе"?6Au?X0zy8z`c|?^h迤ڣ\C?}D&>Wíu@?}kпu Jݎ?؆[?PV> g>N?Z\cp׿<৚2ߨ%?@󜙌 Xÿ^}^?C ?Ӟqǿ>juƫ?wfhZ?T}ÿ^+ފ?,3?7ԐqOY(-F?tS ?V١W?g%? ʿːP1/f? )?Zpn*? @nPݿ3=?kڿ8dJp?7D]% ?)R"~ſH?k|U+ݿ`ofH?fd}?Hy ߿НZ?-uƩϿ`Jdu}OЙ;Կٿ @{w=?Bly;^?F'%?\޿Ղo.`~?KYOѿw=Zw?).ӿMտ CL=?6c(?10xPR?ls뿽^AAпЛ#BZ3QܿOg?@ؿo ?q?[b+T2|(~̿8h? EA?g gL^f}?+c2+?]d޿MC,ѿnO?Pr~ᅡh!?0K࿸s?~⩌jԿKn?-e^տ;l.(?*?wHe߿]e2?E6Eey?Uڄ팱hd῭(Θ?h mxafܿ ? ]m?9swGI #?`&Pῦe}0v%?,pG+?dWտ,x7?pX %_XUJ= ?:* b৙D(?^}?kG"94ɖ?huJr#S;2+?G?,-0Kj6S`ſ\p8=?3` ?sg8=G?}+-ҿ@Z6iš1ѿayɞο&;G?"콿 ˲ZÔE?o׿6i|O=?EL~$?%yVu?:BeT{ٿIeZ.+ڿT7?J _?ԴP]>8?Z?S^Ͽè6пدf?Hk9ܿ.\ `-J?zTQؿ^k? ?-c%^?>O9?({F?f٦,s%G?/׿ mx?aFp?ǩg!3m?+`Ĩ`;?/a6ʿ3Gn9.?h$=?]ݿJx?oA ?rz4!;տt)?|%@R+YWο6?[c0Ubÿ:%q¿n3 l?WE?鷿r?>Ã\q?ThFz-^ܴQy?>+?O!CЕh~?؛t?m1F1?@ $Ϫ?V?FE?`/Ϳ4[? _vydCͿ4_?q t?0Bf j.d-@nֿL;|ڹ?"6?D??p'Ew|*Ծ"s8 ?z PrCx?Dw;r?Y@ցP?à>gЛ\?와'(U?ױ&J?0>Y뱿} tɿk-?+j]ӿ's?2-?zֿ˶P?HusL A? ^S?Y|󿌺g?Y*-Uyf/dEi=? P7My?L\sy?2?t]P Ͽ"?)n,6? |g(?@l'ѿXj%?#(eDο$>ٿLس?.L`\lտn׈?  ?M_翦,|QGԋ?f#߿fiR{?,Y?eGidÿ n?Q;ݿhW̿Vwt>?xرȿH^H?OQN?yen!7d *?jdFڿ{X ?p7? fJ߿clJ?b?Zx[ڿ!%i? ޱ5߿fp0ȿjǢj2 Կkv]R?^nxؿwP1׿uJ9d?xHؿBDN?8?>$xȑEý???0s)a?~k?,p񡨝?>K??ƨdؿp.٪??_|xVB2%]rz? @6,!¿ߵ>?y@RC`dM?q)n?][+Ik~?V;f¿;Jc?ƹ?OZ?Ȯԥ,ʢnȿ TR?˾#?2B )_ѿ^?n_ Ͽxڿ|li?>H??ݿ' C?h?Ͳd}3ۿ&Wl$?MxM b??^;юퟻ?wGo*G;ο0" ?ɮA пSϘ. >?:"g??]ſ@j?Ȗ*;'ο*?+l_"?dv? ߈WWJ?PYȿQ @/?"ѧ6˿D5?3NkDI-?|?j5ۿ`/ؿM&c]?mR$?=4z\?OG˪?ĄP?6??Ϝ[,%?r?jZ`z#hlֿruaf?{iD2?\?o5p*}OܿpF ?Yj;q!Hӿ*F~&1?"fB?gſ[RođɿK_祉?,ݿ2Gw.Sڿ#er?_Ϳ5A?F8?KP#h)9?GML A !ĿX ?Oȿ8T9˖?[0rڶkJlq?mr\F?da'R{M`пvbs?|3b2Yn??Ӡ@s?˶wTO?6%׿rmܿ<޿H=Y?x/[Q6cܿ-o?"gʿܿYGWO?VoTb?7oп^Ӥ3?͑_D?PQ<࿈ǿX|?Ā\?/ff^ҿWM,=տ7&C?\?0.̊"奇?,`?`z|.Stk16;:l??D?G#jſLZٿ19!W?UmL?d{S迚T4濳 ?KGٿΑ ?p?KO꿤fmȡc9?b@a+2 ɞl?k?Y]n7YN?!,i߿ x3Ͽg|ʿPb|TA?cT]ݿ6hV?4S?["?N¿ s[6?tPٿiَ sp?bҿQPdǿV9"ǹ-ۿn83ƿ Ήe?ɴ)i6ۿoc?5 =-cߐ?ƿ@q̯?j8&}?4>¿Rp?x%_U?wDF?ta '?s%[;?*@X?lv꿌Ä=?W'?z2ݿx&feWH? ?GO@v?.̰n?hjrxMпF?O%z8E]=W2?.dѿ4oϫ?sIT?fؒd?aݓ俸&X?# =P y`.ٿV7β?LCH,Mǿ-8"?(Q?6(wz=ъ?K]/׿?zOĩSǿVЂB?l/ ۿ)Bq?^?`F̿i@ƿnje?>b ]q-8u?B? "1ӌȊ̉6?Y亿r?'z?SKDYƿcO,OXX?Ͽ6$[$?{hJK?VyF?w=coI??r^^r0Y?;vn:=Q!VܿLϓ?W.⿈?? q俛` .es?`|R|_6?uw?;u|I"?;*ܿ.N̘B翹?܅o?&:[-]?<6>ֿ~s8ܿ?,Pl+}ʿl ![?f0z(ſLaC֓?gx6?C 6Rؼ =?5^?͒zBn?࣯?g;:`(  ^zV?͵Hֿ ^?sjm?*~>:?ÿ?}"ۿ!cȬиw?ߐ҉&e?[ÿPm9?o dkG?ǵ⟍"+ȿ~&?އ#ڿ%ݼ?!'?e5t a!XDܸ?]kK?L'dH?qXn?KRy?'sPfNÿ05?.ܿ:Q?0<;?"87Cf jH?ގpҿU:yv5]?4ֿ~?Ր?$?)???N0B?ߨY6~?Pv m1_mexh_1001_coefs.npyNUMPYF{'descr': 'ǃ?Do?"bWi??vD쿞#pu~X?R*m?.!ʈ`|&꿉\P%?2?p8?36߿?@DMa?$(?o^%^kGWQӿ2Ή}+|/?@%v 6_?RكMm?sclyӟ>{+c!?O?[d?hsY?H?.?hIl?m":?=^ 6?CT5~w2-? e+?|u?nmq 9SNտo?GM8l?\|8? ?<$_ ࿨K? }.§}=?)tQڬ?<"v?SozlΎfY?bJ,J? ~-jdq3C?XKoDo<$yӿJDžPWڿ 2Oƿ ?{՘?0xuvqX?ZZc:QͿW4昆{ǿvȚۿJ0b? Oz? G:aY? 032?<>%8H\zzlT?Ҋ٣"?Ӊ]tihmUԿ-V'*|4G?+oT5?(c}tE r+c|+Us?^V6?t) ?mV+jԿ712D?OE{1։сq-e&?>?$x ʿ};ҿO%?5 ? 5 F3G ƮZ?l%s?*j*6w?QqOO?rnc?װN4mٿ0C2Ŀ׍xp?[E9e?>'?أÌ(ﴖ>~g6Z?(fx?_ZbS%@տ?.rE'u?p ö!?-#Ѡ24*?|D+cֿXu1Z?bYs޿̄ ZG?H<=LE?6?b ;].`F?Jԍ?Smט?N?_ٲɿsz˗=e kIݿ7TЈ?Aw߷p 5 qտi?;v?"̦sˮg?`2ʢ@=px?Pv0߿]2Bp?Xp?Ba۶!俤h?Tz+?H!QTjߗԿ$)_𿠠g޻?tsc?r7οI&K7u?UQV?0;e?cؿVѿY,*¿+-?^D2Y?^D#o(qɸ? %?p?{& ChqYC]˭Y?n\?nWd2ۿmYz< 34?D"22i?H(&I#+鿌=@\jO? RiǿB Χ?usJ}&GֿF?ʷ;\?bL"Hv7ϿY8b?]n?S?.nPndJǿ(G(?zveǣ?UֿzԿNVTZÿ?X?x|?6 9^qw1ٿ@j +?:ɿH > I=?iXUn ċ6,ǿTim?*m/#̿('0e?G3&?%ȼ"?UA<:bO߿ѿO!بWg2k-@p󼿨\Ұ5se9 4Sy !aѝ)׿2n\?P-ot?x_N4@!Of?š-AK /? ǂ?ygub~^ vzաΈ?1>:?&Q8o!t]@P[@Qw?H?4MHo?s4T?j翐q@|Ռ:X?T/=Jֿ؉zK?L]Px?tM?t/6+9y?wr=?ekJ2~okxכN?fLh_t -@߿bIhFA?K?9Um?[[4_b俸3ƿ@AC?wRӿ!v;w?pYcF_ -R?{:?+$俈U)z?luB?t5G?w ?$Ik\tW?k};? ¡w⿙d0??-yg?0lqܿ^ P@\B?(/$?WIvBmT-I??:r8?a?4 uH޿79;NfĿVw ڿ+l$Vqa?._F)6?Mַῒi׻%?X/?.3ʇ?^es?kc6йٿɯaۿ38p,ҿA<R?a1A38L?ÜtX? K?bC>it:ҿTѿz#S?.k[?}a<.D6d6?v ՠ1?┰L^ڿFBo? [?2KD`eŲ=e?d ? S7X?Yf 濠kT S?8G+Q?>$+? 7忶cA /J?n?r,}ѿn:-Ժ{??Hu/%Ã鿥d5?N5e?6_48v\}? -HDɼ?U&N`׍A)? Ŀ6v$?aW84?0,Iɿ*XpX?,OR?[Q)u|п ?v?(e?!WʿCz}ۿD#(+ÿ 6?͍o?ԧ4CɿMZ-9TE㿐2#{?r<?) n?uпd9Ycȣ(@w?U?&'?-UJۿr.\O)?ɏ9t?xw¿h9濈É@?9&?${N,k<̂6ڿ@?g潲?> п[MF?V\RX鿢@d±[?En{\@(1H(U 8ުn? u]"?dїe?5oD"4Va?ԥ}nHs? >y?v>:?;3:fc܍n?LkƿPg̈́ct_?Ms?SC‡kG`?,4ɿ[\ki.q@}-?xƌa^22]ؿ4?|9D? kϿ>ι6˿@{ɼ o׿t Կ??aQ?TbG r`ODV~ۿBJ?b?N?"c`?Xtt?迉C^b@S@$@ qA ^.Ci;鿀ofɚFRQ?p+<׿XkgI?Г]S\taƿLDz>-)?BQ;"}s?KGl?%g$l?R=&?6sWЅ2$UԜ? ?ؿ{ſ [6wJlJC5E?-*+?t*<.Z+ _M?/iG?\B>?;{V^տ%=ۖJ?^?Z~S^fq2G(?T?ÿl?:7]+Q@Rc?GPK2?3^F\ʿcx?jr?LB h;}-#??9YVr?>+݉ANӠ?y-ISk?$Oo?0goŦ]?010?ܛq?x\ `n_[Ϧ8p?"B\G?0t?З-w=Vܔ1ҿb}?1 |"?{4?)VӿL%ҿP6?iC?vܴR&OT}oJI?@i?hX>?:T8V.i6%(?UHP]?btvP߿(|?(SSѿ\D&8ֱ?2Khx?H˲?ɚ:?p/?f#zK萒bô%s?|q?&m??D#VDEQ2?=G?T̈́Y迖~c? IcԈ?><?)]8?T-~gPX"?VB˿?3\pf㿭Fj ?6xRXRN?5}]يhRmt??kg}??p?'"¿pR nUm2LN3$1?w!\?+$07W۬?Md냎?fRqݿf&ٿ)%j꿵m#?nϾF:?ӻg㿰0:ǿuą1wؿce>LGI?zs6a?v(Ys񿰆s&|/zx?-9?!̶ܿȿ0 N?Uw("?̂Y? ?`;qgP?ſK*?U?:ŬB?HRm4 ?Iȿc2?ޥ8o,yՅ&VW!Pݿ'~Y(?P k?hY)r\|/-?,Y$,?j(B?H`聴2V? ?tpeSC|ȷPKJHA|wP@P@ cgau3_psi.npyNUMPYF{'descr': 'G9jU%J0]i (g~Ys+E*BJmz< , \-bY/E R|%1W2P9 `a4f ׷>Lpa;6V #>86ƛIp,/m:Tl;K<6 }hO_?X/ +9  6Aٲ*}"w~LB&2%=DG>'~ȘF@& +Z'G/dEy.F9~ J2E1q5%\NLUy3IG7NOa5ĵCPiӣU8!8!k#R ; nS?JR]UJhA ~K-WR>ׅ |Cʐ,"Y5?"EG?[&UH]F'K5!N_rɏ5FN=QQaA3MPě+buRuJd[A`T e&hG /Wg@UbY†)iN>\`o]k n_i]mĠ<͈aA5B.pm =;icauxq._ye)6LCr gh#WtY@:j u#=l)A˥wrou{yͿbRqRs{r?lsܬv}ԏOeu%ko#x܍wz$ѿyb}j[J|Sp0̓S{!H(4ʈk_ކ"SL䂾[tiHgһQPH^٤ "L{ʞ3[\֔RoLvpFYO퍾=bqo~Ma iEܰPsx_쑾u^21C$mɢ[To| >qln{@G(╙sҔ9q F_'ԇ5|F ]$4Pߠw)]!QgSKã{B#2+w#1AgrMK|چ}pu[ƫ-Juޡ^62p;+clC荪n=>ڱzB;SCeSRUKܯ-ݶ]6谾Miи[%꺾,\/c=J(!k!CYl#Z Iט۷+¾g緾6ľ`|&REǮ3ž Y첺kǾNwށ0#tɾ eU\L˾(\y;a:оupKeLYѾ݈MM¾/5Ҿd=g7>þ|.6Ծcم6ľmFiվb e7žĔlu׾HJ@ƾoEZپ sGQǾFR۾ۣ_7iȾ i7nݾ򌙴"ɾlf2߾tʾRCDa˾d%\xf ;2MOT>ξ8=鶋ٶvϾ/\ƅOXо$N:о2 ?\V#tѾm0}OхJ1Ҿ\ܴdpiFҾB Nd ddӾw~zӾ޵%]zWԾ+!uZ#OվW[ lվjv_־—qo־bJ{N־a\-XKɸ9R׾x[\S]cGP׾I"t70?s׾ϬVmrO~׾|.Fm׾W0-K<׾S&KI־үybk־N–վi(g l9ԾqOn .vӾDRv? PhҾh,,UоN v4ξ[:48dLɾ̭lľ:>f * 3L轾FݧV@Dl\X!/u+"#1"l>u s=톟>م6C]>{6?[>'-<'I(>8gN(S m\>o9R! ,>Me`"/{4>4S|##U>tg$*32z~>} [ %EH>Vu0'ia>)(嫩>FylMٽ%?!p/1@q'?~_\AP)?FA" ,?ށB|\.?nC#L0?1zN4Dl1?qQELz3?1rFd'5?ő_GM6? !I8?OΫUJh:?aXKtl5?sL8Z?o=Cs; !?zr2?EZre•?qml?Tݥ'qNz?/!op=_?SzeDo A'I? mɻ|m7_D:?bMk/R0? Zi )M-?eyjuf ./?T2jgdu(7?H,a&^n?(A?g ?Nk`FR?n+۟?0\?Kt L?pm?f:?y,t?L9?nJ@?[]Ju?şmv?##G!?'Z?%g?>_{?صlk?m6J}? mSٿW/h=#ܶٿBĠ1%g ڿɇᡝmڿU0FN ڿoenFĺۿ_]챿ײUۿ>J}dSθۿ,aDfyqtۿ> \=ܿZlͻe2ܿפi\¿vͽWܿ,A'RĿ%3q vܿw8rMƿǔܿ/Mȿx%ϛܿRʿYKܿQa[̿7͇ܿGShοxrܿg-'4;п'tܿjjjDѿێlܿMҿQ Jܿl[WӿĜ:kܿ:faԿotBۿ;Mkտpۿ̠btֿmÎeۿQ|׿f#9ۿIơRؿs'n]ڿ*tٿiE[ڿIVڿ+ٿNw2ۿ8I{ٿܿaؿg%Äݿ1-6vؿS={޿.x׿lo߿X3L׿TH5/࿃vֿ?q'տRcĝnHտw%-QK:Կ\xy0ӿf;P];cҿc⿒`ZgIҿR&㿽Iy>ѿ秴i㿚ٰVп gpaTο~69俲k#̿%8 4ʿmII俎M<ȿu&eIƿV[Nl忿ULSPĿlѶ!9C3[¿^*aԗ]h!bOmB`ʳwS~WC趿cr Wnש#q#D4F!˟]Jvo濡gD+~NlJ9|Jz?2 ?aם翶6?0翪t, ? ͍T4C?spA;2?&pq+a?[̆G?=(ˊ?n,K?FZ4?* T忣}Cc?r[\;?LIK_G "?SVY\1z:?C0俧)$|?&Sb8=Z0?is^(n?vg`%?v뀯//S?1;7{?#E3?_{\*Ὴq ?,68En|?jUO? l?,lw/NtO?Nn9߿ WwdSl?BW# ޿u?)ІܿBe;1[?B?ۿ?`bGڿ#q 7?/-wؿI5?4H׿~.? 8Z9ֿ^Z?NԿ.OF=?t3gaӿu?wѿq6M?M"jpп|^{? Ϳc?^ʿ-QY ?{$NǿWN.>?Ŀ k?I?Ö?{ם`0h?~W+NFL?.8ӬOG?-[%e/?^?-QY ? ?c?M"jp?|^{?w?q6M?t3ga?u?N?.OF=? 8Z9?^Z?4H?~.?/-w?I5?`bG?#q 7?B???)І?Be;1[?BW# ?u?Nn9? WwdSl?,lw/?NtO?jUO?? l?,68E?n|?_{\*?q ?#E?3?1?;7{?v뀯/?/S?vg?`%?is?^(n?&Sb?8=Z0?C0?)$|?SVY?\1z:?LIK_?G "?r[?\;?@> T?}Cc?X#?.Q%?*ѿc?`ZgIҿf;P]?;cҿ\xy?0ӿw%?-QK:ԿRc?ĝnHտ?q?'տTH5/?vֿlo?X3L׿S={?.x׿g%Ä?1-6vؿ?aؿNw2?8I{ٿIV?+ٿ*t?iE[ڿIơR?s'n]ڿQ|?f#9ۿ̠bt?mÎeۿ;Mk?pۿ:fa?otBۿl[W?Ĝ:kܿM?Q JܿjjjD?ێlܿg-'4;?'tܿGSh?xrܿQa[?7͇ܿR?YKܿ/M?x%ϛܿw8rM?ǔܿ,A'R?%3q vܿפi\?vͽWܿZl?ͻe2ܿ> ?\=ܿ,aD?fyqtۿ>J}?dSθۿ_]?ײUۿoenF?ĺۿU0?FN ڿɇᡝ?mڿBĠ1?%g ڿW/h?=#ܶٿ>J} mSٿJq:EfؿY;0+~ؿiX}z ؿ`QѬ9׿1{/=N%׿\΅޳V4`^ֿU wE"ֿw%!(zտ͆3`ưտ6eްv܎PMԿۻh鿿%B=ԿQ xӿn¿Dҿ0OÿW!9XҿKÿ`ѿTj/Ŀ2ѿ9"kɟſ{YgcпegƿU9Q пMl#ǿe(qοǿȒkͿz(wȿ˩G̿ɿ ac˿ɿO8ʿ%BʿS ɿ:tʿ_ǿV`]˿ZUkƿkb˿[zſF@˿pCtĿT̿R}TÿI G̿"7¿I8̿2rU W̿-ٷ̿㵐DF潿HH̿:{Ȼ;&Ϳ%:}Ͼa Ϳ,߅) Ϳi]2ĄͿeNlv̿jIM"̿P$kWb7̿C{y2̿9w _bx̿ۮؤjCPG̿L |iW̿\L#hK˿[bڗQ˿Io".WH˿ ɣo [Vʿ ;\j>ژʿyvc?bSʿ? ɿ6͡ެ?sɿ]Gp?vN8ɿXۆ~Da?-Oȿ)8ј?jȿ{"V?ѵlkǿm6Lſpm?nbĿ-?nX<}YĿʛ;??ÿT/?Qbcÿ>։?;Ɛ¿ ?Wzk¿o?M܆Mݻҝ(?Y~4sҜD?{Z*b?kG{s?L8Z?y5s?SX&? &t?fYۑ?ľUt?%?*5wt? .s?"t??C?—t? l C?0AUt?Df?ʳ:t?5ȋ?oQyt?皊?E%]t?/I%w?fY8t?x?8]?ox%q t?,7aL?H6s?}F?΢s?\!H? ds?꺯qS? V!s?yJh?A:r?!:?؍r?˗?!$(>r?P +؀?hb*q? ?. Dq?~?aXK?tl5?lMٽ%?J?=?E 6#?^g;?&1"?'_:?]? ?V %9?ˊIB?G7?Mf?]dmu6?{@ X? qXZ5?zd?Wxu<4?7ux?E`+3?Cv?2켳'2?l?9X/1?cC ?!C0?c/I ?X.?F1?nӫ-?>=5?fY+?*QgA?Qyiu0'?a>} [ %?iH> tg$?E32z~>4S|#?,#U>Me`"?/{4>o9R!? ,>GgN(S ?.m\>A-?d<'I(>??[>*م6C?Y^> s?=톟>B"#?X3"l>\?/uFݧV??DlL>f ?b* 3L轾?lľp:48?Lɾm ?4ξ%h,?Uо9DRv? ?PhҾOn ?vӾj(g ?N9Ծ ²?N–վ9ү?ybk־{&?KI־s0?-K<׾ל|.?=m׾ЬV?wrO~׾_"t7?,?s׾#x[\S>dcGP׾\-X>Uɸ9R׾*bJ{>N־H—>qo־>v_־[ >lվ++!>uZ#Oվ%]z>-WԾ~>zӾ6B N>r ddӾܴd>piFҾ0}O>хJ1ҾW ?\>V#tѾş$N>EоW\>ƅOXо`=> ٶvϾ#2M>)OT>ξ/d%\>xf ;4RC>6Da˾lf2>tʾEi7n>"ɾܠFR>ۣ_7iȾ pEZ>=sGQǾlu>_J@ƾFi>y e7žV.6>Iم6ľ/5>N=g7>þLY>w݈MM¾>upKe|y>M:\L>c(\~#t>eUk>*wށ03> Y첺6>=|&RE+>g緾tl#>Z Iטx!>6!CY\/>c=J(%>~,~Miи>D𱾤-ݶ>36谾SR>pUKܯ.Ce>qn=>ڱ>zB;cl>荪^6>o;+Vu[ƫ> Jua|چ>}pYr>0K+w>#1AggSKã>^B#2]!>P4Pߠ>F)5|>zF ]9 F>n_'(╙>KҔ9 >ql>0{@[To>L|21>C$m+sx_>uu^M~Ma> iEܰO>!bq"֔R>TLvpFDʞ>3[>W٤ "L(Hgһ> PH^RL>[tl(4>k_ކS>z!H[J|>Sp0̓ѿy>b}jo#x܍w>z$ԏOeu>%kr?ls>ܬv}ͿbRq>Rs{ro>u{y#=l>)A˥wY@:j> u g>h#Wt._ye>)6LCrm =;ic>auxqĠ<͈a>A5B.p n_>i]mN>\>`o]k@UbY>†)i&hG /W>g[A`T> euR>uJdA3MP>ě+brɏ5FN>=QQaF'K>5!N_&UH>]5?"E>G?[R>ׅ |C>ʐ,"YJhA> ~K-W?>JR]U ;> nSiӣU8>!8!k#ROa5>ĵCPUy3>IG7N2E1>q5%\NL/dEy.>F9~ J@& +>Z'GG>'>~ȘF&2%>=Dٲ*}">w~LBX/ +9 > 6A6 }h>O_?T>l;K<6ƛ>Ip,/m:V >#>8f ׷>>Lpa;6P9 >`a4W>2E >R|%1 \>-bY/BJ=mz< ,g~=Ys+E*J=0]i ( >G9=jU%gX=J!$׫k=2Cb":9 =D Y"=$rдg=~_yo l쬷L=Mo&.,f7Ŏ=cU]PKJHP P gaus4_psi.npyNUMPYF{'descr': 'SR I>yIbK>5ۚM>l<1ZP>hfQ>Ap_S>hv"OU>KICW>~]ceY>\G[> #=^>m~`>< a>Llc> cbe>ϏOg>]gi>@c(k>iճ%n>xjp>|Ǹq>zҊus>b,-u>2 w>œfy>C{>liA}>Y >>I,˿넁>| >>{|Czx>m<+ug>w`>D(Č>xޑ8>< >1yC`>hr>3tw>t+ثo>Z:jg> )b>7'qԝ>$+&(>Q{і>7}_c>v>*,w[3>n>v#0|>DEp>Xf>6|o>u*ñ>F2>((>Ӓ<>h>K)-3>%Aa!>3襜q5> #r>6m>#dk>+^W>6Z/Ҝ>o`ƕ9>XSM>]ӑ>E?E>f0>WD׬">m^> #>_vW. >,/٧> -0K>;Vэ>Y>^&N>z">~?>55 >)8N>t,Q> P>B>ל>r ?>Y>z/> >> ]J0>5D~>z>[Ea>H>s ׋>K% T3z> :h>V3Wx>݌mM?xsP?k)hA?+?9?3(TS?u, ?-^f/ ?'tڨ ?*1s? T?!?m?]qB'?Yd1jm)?AR+?%y7,?}}c.? u30?"ʋ31?*B2?ntta3? ԍ4?-Z5?,v+ G#7?dO8?A7.:?5`Q;?#;5=?PYu>?Eb@?xgYA?W]B?qoC?8uD? E?"%'=cG?+#TH?MI?q-K?\L?{ `UN?8P?47mcP?P?^?zv_?8`?(ba?1)b?;sfc?+/'d?iye?f?e]4g?țMi?k@j?8H[k?[>Ql?1)7cZn?_o?ymp?紁q?PZYr?Ӆ;s?%t?du?ܥfv?-"w?76x?ҁ0Uy?.ӨYz?@{?kF~|?MOH~?+?n/1?EB?VAWg?#Uς?v?@z?"F-\?E?y;7?v1?q4?#c@?1 LU?t?"?LΎ?.?y͢?Q^P?-=?F ?iF_i?#ſ&̔ǿgZȿk`OsʿIt[z˿t̿3Xvvο*oϿ\KпCYNѿ^%iHҿgӿ7U(AӿvZ:ԿJ#dcտʩ*ֿ78`ֿ qI"׿S}ؿAٿDGڿ]ڿbL.ۿ5 3EܿNLݿ3ݿC}Jp޿ f#߿Xהb߿8}?SX࿜4iY,썹JY⿛i}8ŒAJηx# Mp׏XAg}BSj)a-俰)M&]/jyٓn|俪K,Q2$俀: ر!^俠FtLͨ5=|a$%EA~XWw俙5^ ];3㿒h&UțK㿐fL 㿏T4⿾1Os{'⿨,/kJf䤡db ࿋&Ws`߿G?i޿MC=ϧfݿ$(Yܿi@ۿVd ڿkؿ̸׿>d*wֿL+տ9ӿR`xҿGѿ^(CϿOCeS̿rJ,Sɿ=5Cƿhk\%ÿK*\sE%$ HzD-4r? ,r ?kPz?%6Y?‘uc?j?bފ?tIM?\?=wg[?Ե?t,!?zu?)J:?٠Y]?>۸?sfz?N#4?H)!?yD??ikt?GC?%X?wQW?Z?t#[?s???~?X3+?ӥK?7s?}r?p?A[݅4?̌?CH??qߑ?]u0?:J*?ٿ?c?Bt?+P?d[)?!.;J?} Hf?=`@~?c'XM?ᙞ?[p?vO?${&?${&?vO?[p?ᙞ?c'XM?=`@~?} Hf?!.;J?d[)?+P?Bt?c?ٿ?:J*?]u0?qߑ?CH??̌?A[݅4?p?}r?7s?ӥK?X3+?~???s?t#[?Z?wQW?%X?GC?ikt??yD?H)!?N#4?sfz?>۸?٠Y]?)J:?zu?t,!?Ե?=wg[?\?tIM?bފ?j?‘uc?%6Y?kPz? ,r ?D-4r?z%$ HsE*\Khk\%ÿ=5CƿrJ,SɿOCeS̿^(CϿGѿR`xҿ9ӿL+տ>d*w̸ֿ׿kؿVd ڿi@ۿ$(YܿMC=ϧfݿG?i޿Ws`߿&db 䤡JfῨ,/k{'⿾1Os⿏T4⿐fL UțK㿒h&];3㿙5^ ~XWw$%EAaLͨ5=|俠Ft^!俀: ر,Q2$俪Kn|yٓ&]/j俰)M)a-BSjAg}׏Xp# MAJηxŒ⿛i}8,썹JYYi῜4SX8}?Xהb߿ f#߿C}Jp޿3ݿNLݿ5 3EܿbL.ۿ]ڿDGڿAٿS}ؿqI"׿&78`ֿ֩*ֿJ#dcտvZ:ԿDU(Aӿgӿh%iHҿIYNѿfKп*oϿ4Xvvοt̿^t[z˿k`OsʿgZȿ&̔ǿ&>ſß&%NĿu¿lʒ{*=*A.ݽw}oWjKO_=tƸUQl?8H[k?k@j?țMi?e]4g?f?iye?+/'d?;sfc?1)b?(ba?8`?zv_?>P?^?v\? E[? SY?7.L2X?`UNW?ިV?8`3T?2 *S?$R??#;5=?O`Q;?A7.:?dO8?Jv+ G#7?-Z5? ԍ4?!ntta3?*B2?8ʋ31?)u30?}c.?Ry7,?BR+?xd1jm)?f]qB'?Ekî~&? hu&%?1V#?~_)|"?~!?$QD~ ?3t?:L?BڢN?|Z? # ?Dr?'?hK??TZg?>?m? T?R1s?'tڨ ?Z^f/ ?, ?\(TS?:9?+?l)hA?sP?mM? 3Wx>:h>% T3z>H ׋>>5Ea>z>5D~>]J0>> >z/>uY>Zr ?>ל>{ P>B>O,Q>(8N>5 >~?>8z">)&N>]Y>;Vэ> -0K>,/٧>=vW. > #>vm^>f0>>E>K]ӑ>-SM>H`ƕ9>Z/Ҝ>x+^W>dk>}6m>#r>祜q5>$Aa!>J)-3><>h>((>F2>u*ñ>6|o>Xf>DEp>v#0|>n>*,w[3>v>7}_c>Q{і>$+&(>7'qԝ> )b>Z:jg>t+ثo>3tw>hr>1yC`>< >xޑ8>D(Č>w`>m<+ug>{|Czx>>| >I,˿넁>Y >>liA}>C{>œfy>2 w>b,-u>zҊus>|Ǹq>xjp>iճ%n>@c(k>]gi>ϏOg> cbe>Llc>< a>m~`> #=^>\G[>~]ceY>KICW>hv"OU>Ap_S>hfQ>l<1ZP>5ۚM>yIbK>SR I>_,F>PKJH4K$P}P}2_cgau5_1000_coefs.npyNUMPYF{'descr': '$?&Xp U?{?6I: ?{\;1ķ,'EN6MO@"Z?,V ?OQ~/j2'-?ɣ?[HĿXo?׬^b?wXٿz?w}ǺJ 1?׹}^ꣿ|?MIJ?P+H^?B(Do^J߿VkW?ڰ\l/?3Yaƿ *Fx]?^Kx?_݆?˂k$?ie`l4аL ҿЦ+?VzY5?mث`?(ـɿlTĚ׿:<Ŀs+ӕ%EVO?尻S? n(Qi??l:Z{̿>3]a׿!Vs?w??{٦=ҿ[Qҿfk"~?!"vR?3QܨƿfJ?z!>s$ ϩ?$y?/7g*տ? mak?.Gοp?/lIQ?&g ?Y ٿ~Z T迚>w?psd꪿s_?/ڿ*0AX H?:~?7?lj}?Ϳu&˿Bd?}iXfοd*nÿg? 9}T] ?ol}㿢\ W?Nt&o?+د3?U7 j`տ`pſT6b;[?=!r?1Y :?#sx⿛nb?"Ǝe?>Yb%7?տ1I|ĿW%6[m?/ n\?"D8ft*0>?˴HT?rD̝?Wo9p `rNpoڿR|?:TZib?GD?]>E?(Fӿbg??"ǿ5Sa?@戹S?ļ,Y?,m,?K܈\Ͽ&`ϲu|}ӿ*ڒ J?Vd=Đk?#|.?:Av޿<}`?'alzy.?Z[k_>'?2㿞Ė \mE ~-?Mr??s "Կ8 O꿆6տ3ϋ6? @*?iԿM?T>ȿ%?x?v?yyDgzڭ?h AY:GԿ<>?F?aD ?y<? (0'5+ KYlpY?:bj?舎?wm?q2ay?(Ԓ-Eʹ?ӿ+P.ۿ"/8?gTGz?j` ?oÿ,+ƿRwb?,P?>X?-)?_D&_.+wg?ڒ)ӿڐWmAݿ#/NB"?i87'?24H?^2\EA߿)B?]Zv-@]P?YPŐH?}ogeؿ 1PgMޱW ?s> L?.1W?"'%ȿ%$MV'ヽ ?5]M?l6 iD?̏Yke\Vc5k; ?o?G4F<{ҙ࿬/?xѾj?T,M?.-ֿÌ˿3ǿJ}׊6_-/?Bٿ i)?ɵס _5ῂ$??:K?G p?<@ؿj]Y̿r''ܺXwb|2?p¿Fd5ʪ?o տ'݆Uο^}B?ɭʞz+\C?~m`f#ܿnߋcj?;Ώ$(X]Z?n0vƗaD?xfϼ?FMԿH#'9r04t\ٿk ?|Y*ơl ?)T޵a ?N?CLkyn?OGM?o ÿs.^׿*JKG%?.Ք¿%ݸ?9êxKDMK?ج[Uv.J?J ?}sLPʠ;`ɞTƿn`|鿉|x?OXr?x9Hث=?pB M 翠?E?ހ?cQ?ՠaпQl1A?6{p8֙?Ad?&E)AῚJ{Ī? mBR@mZhпH?.I1ߟ?A};?&4hտ@ݿx3[?ށɼ?F,MjR?4'T$|?&2? rTE?sǿDed]տmXD?dſBw?Lu"߿PؿaJ?O(?.A'd?|]5տAB?^Q9f87?4%?NZ̿Y\'Ɯ?{V?kx``C@ u?:{3K6?Z ;?k=@翀őG[m#{.?".M@? V? ^&xV+,?5am? 9=lL?Mv%Ŀ =f&]鿹*Ҝ?Yֿ8?0.VQlB^=?P&viv_l?%r#)(տI;5¿Ҟ}˿v?~Q5뾿‘Gg&?& пtz?IF4d?ц=h0?|>鿌a2ͤ?c_EÖ?0)گ?*SAwRYs?խ.¿6d?}?~v 㿠"~hb?u_ ah?>ҹ?Q?3eea?axa^s#?.c]?r#NhCn>?Jcv6?uz M?:٬qN ?pwHj(?n ֿt<M(u3㊨`.?Knj{??Yp?}13-?:1}?BƪE"3Y?@5[?Yj9:DvjV?9?';z?WwG~ݿ$ۿ_C ÿ+|h ?^K?Z钤?p_K?ǟ̖߿6Tt4?6AU1?WY]Řq!M\(˿Vbe4?1A3ZX?x"bfٿ ҿ-$>Б?C8!?@;?|dž``j.(? ۬-3γAV?I!k?2;4Ŀ+B@A$[u?lJa\pҿJ?S?~*L&? ?'ۙ?.]lۿ5Թ?h.xƿa ?e?)%4|?xv>6c B'%|]?̍dG?|??_0ο֣^,id*XĿTI5?k?ͶY?Tg̿c+`xϿNؿs+`??DNҿ2+b?G5xA?ͽ?(P[( Bb /k g6K?ze߳?J}s?ٿljPN? N|aÿNG5?Axf:?D/cb缰?:HVf3y\dG? M A?([Y.ÿ\(d ӿ2Yy'&B?x?WV }q\Y P?pRU?-?cVf=zʿV>èq激:l ?BqFÿ?S4iI[G3_O?k?G}?SV *l ?V%ǿ˻ ?/?]{ ? Mٰ?.o/|S?|ܿU远z&b9wR?'M? 2? i.?4G/c (пlɿXĥ0H}`|ߐ?סX-,?`Mӿ̉0Fǿ>uq?D?z13?.sȡdƿ(v?يBd?3R?-t^0A!\?nщ?W CjTP/?p{苻 _J7?Aڴ:.?Gbl5pֿAQՠ? h??4y/Կd{ſxqÿM^$?tj؍Tט7?hSo4 p0.?Qˡ'ꯣ?ҕ:?Ά̿tļܿ0OnMJ2?ۄdph?p 5i?"IټE;?SUοlq߶=?y,:pſ?ȁl?wp? ~ǿqzpxVĿ99LIxK+?"?j?p?a'ž7dHhLΎ?8@!?CK/v t? _4?g?Qlθ:+kfj6!j?&ԿEUtr?jrcƿ"U<2]?нPn)9^ ?I[d:fؿ!5f1Ai[?-?p ?‡ -Y_L _?b\b):?spT%?߭J܋{`?>B[}0?Jڻ?ZغZndWb(3T&H?u9?3ť?%?䬪!. j`?ܫ]16?#89?Eyп,ӠӪ6@|?.ſa7?A{Ψ? ;S=͓ ?$X?"D˾_,-;ؿLVz?? #?δ?}ȿwvWɿ>lIc ˿ZEh?eӿFwR?Ëh?#}p>% (q?<%x?&?e?+-:W4I.b*(w3忊޼z?!?#?4C-w?F׿W2 H}ϯ !:?zH!?'x*?0bm潿27ؿs"?l0ЄƇJ?s<Ԕd? K[Aq?p q?5bN|տ+q9=?Bӿ]G?0p F?r'e"|5 "Կ(?TiLe%?K/п&w} ??9?5ĦͿ؁eſ,u\>ÿ ?Z?.Z@K̿d2.&.?4[#Qs̿i,?jp ?dED[y?( &:l޿4?*Aܻi|?WI?LJI6%?YDF옖t[㿖! .?(6s?2T*?Eeڝ \cuJ{9?d#U?l?V{S)U~ҿm?T;b ?>JdYHi}?ЃsijyCu'W?(d%?Y%a˿ko t^i?1qi?8^H?wP:Eb'!\? Їg?忌@ ?V Oa.PPaT,?,)@x?T P?Ho|q t0z::O?0nê?ZT?/p, LPɲ?_`?r;ץ̮AJJ u֫%?oD?y?@ƁDS-NwE YT<2?r/]}?_G+ҿZyk?xNO ?,^ѿeGq?cHf\?C?\zGqtkjlt+~D?k*UMVٌԿ_iпQTʿ+0E^?@V?Gl3+߿ꨎ'4?ZI=ȿ846͵??(J]DHs32yV-a&I0ſtU?\ ?)N?A"0)?F}ӎϿTx? :?tZ4DQtroZ"d?^ C|?FNJ?)o?}<`.GͱOÿ8s?#?j?ܿOe?YI ޿G\.ؿ;\8?p?زl'?rQs.#œ׿}g:8ւԿVXT?794J?zmWݿK?3)hM?lT¤?*G)MZ??u)?f䩦B,ČPߤ? PnJ?Wko?%ؿ6qѿxG??,:ԿѢU݈?@)vd~?$|vʿ -ݿ Z#b?XB?B?AFAjjؿ!*?\~;뿢Mn?dg8BݿJ n? 5E?Ѝ[?GU>&ۿ4)h?+S?@+\?XN&k{1ЅԿNWo"? cۿk?8t` ?Fm ?95?u1-,?BfYsƿ?ID??\E?ȼ@M㿞ˌaH?һ`lq?R6h?Jǝ?ÿH}N3ڿᤚ.o?LəH?=N Kп|{?53٘|M>h?@<9?H|"cۿv˕pq.57̿[F\k?/?=t?ia?\߿SնiaT׿XQ%٫?=?e/_|6)37?4g彦?ӻ,M?f^;ٿg vĘdÿm?-R޿n j?T]W?>'oݿ®ܿ|n"ƿc?El(T?7K XZ?5kǿNÂ?vU?bN8H%!/ȈE?1Q?z?C, +?U{i8?}H㊿rN?GP1?E)*HGs?cdz ?%5eAB?dޘD=?~ 9?v?MῨb?PÿEj-ݗ(Ǘ!Կb|謯?%%(?)W@* ʿHI?iK$LJ?|RL?io뿀yi?@F/迍$ӿM I? !s?Ut-P? u⿻G;N?b&ͿiG?F=|f?T쿼$1?2IN߿?n-HZ?q&?́yU ࿼Q4,x?٢,}e?)>PD?Lά8kqC7r濻zg?$:s6f?@??Ѧb3-LmC?=b% (?ձŅ?u&뿾zRѣg~ʿ/4 ?r'W?2.Aw5W=_|?C#]ÀHP?qh𱿺L3zW]?DTz?uMw7>?~X~?"dRz_ѿ 2iWT?RֿǗO?4)}gwIG4E?WPI?UO /(c>~ȢgKxǿum"? D?LltƪƿRH?i񿥿ջ9ŞX%%_Ŀc'J??D??8迀4W:N$W\}Z?rĹ?S(p}'Kp?i]sԿf_?Dʕ?xOD`67B?5Q VVMex ?9?X2o`?K,?2Re?Do?kǷ?[ƆԿp㿅wx¿=9ei?8@?WEI?"TvWdIؿEM LdzxpjS?n4fy,P?V(x 봿%2?q#׿O@?aP4qϿؔ$b"?ܽ"D~?JZ?O՝*ӿ8J?qEo~Zѧ`M$ny?J8Pyv&? ֿe\*Mݿ]e?{?yz:=ո?o ג?74޿x"ސAۿ׎[4~/4FӾ?rii!??,s!?V Ik?h~4T?IX?ɜ/ſO0tܳe*?hЫ+?}Y<$@#c }8(˿{ +?(-aԿYhX?$(ÿ9m^נY?5.m?0G7?Oݾv?Rf5 ֿ$'H?Rf삑PĿ\A Mhȧ?2{? +1F?;P8&ſ1!'6+,@?h /N?~kG8%[{?gDe? @ {VK`yr?NVg3u2UnlK?XCwTW ?TQ޿`Р'"%B?+IN?Bn?ѹ AտHa<}0ͿK$$-/-?r ?p?W4?愑? C`DeB%zk&?T?ƚM?1s*?.Y{ѻ[1w"80ۿvΥ?9ۆb]? c}1aؿBU?I I$Ev? ZvE?ܪ\1f\m7¿uɿ>t? ?SuN׼w"< ]e"?ꢤؿ]Ӗ??)^t /g5}V)?М5ɲ?{}?e4(sC1пicn!A4? rGDC?.t?yK`g? @? Zؿ8f:(tڿyuH,?>IS3?íV?#$aEſLjMjƿo*#Xt6up2>'[ƿ#45C,.ſ\a?FdxO?tRX?85WQ[8?/6?j<Ѕ[ӿf %ÿR 5!ad?TäJ߿ ?^lxek=?G쓿M,:ގ?H1uJ$?>¿V>^ӿ0}<?7?=Tҷ?Ġ'nӿptF?y?_x jatY橿ݭUZԿcIp?8P7PlBPܿb(A?#_O%?/q$S?IƸ?i71/4ÿ L¿i:5xڿk-?j\Oֿ_wd?phRҝd֘o?s(&?If?ֿ%F^$?/ ſy*\ f?̸ԗ,!)? v%Dǩ?␿?pۿ^f8ٿ:F%]$-?/+?t ?4ўf?ٻwmH?Cu ?LäK(x$KAܿPX? |"ڿ~?MƊg?4#$^j?Vs4\e>?:t?<8D?Ounk{{ɿ B5?w?X[?JHRbk'Z}?)dtοVp=?jsPb?s4Mp+?ce):]N}?4lH8?ff?C NZڿ0;v*Hڿ6RBǴ? +? y? ?kysu׿2q?k¿9o1Yr? /eJJs?Ƕf qH?Uk)cӿQx?&?(?YFۿJGo[Ϳ[nǿrJEzck? jۿkFfƿ?H쿚Ke54'&WL?;?2ҩĶ?xԘD@࿪кпh]6vո?(TT~r?(Ü?#k? ٶƿAs?FS[?Da?U=Kڿϝr}?`\"ֿ6f?v<տh'a7P휇G?`??tT\I׿egFx?+!̿ ?hU?:>@|Q?g N剀8?vɘ?'o?S|L+?jLR]S??V֗gx%ȿ/M0rf?$%h㿫L ?"2S_D;ql?49c?pM8?>_{tS࿎ORտV7HXT8?_o3?0بo8?dհTPEfȿ:mVAֿ?DB ١?QIv?=\^.%_6]vFru+??@2J??,uvzY]忡=}.?7ri ?s*ſY X?OK3y?tуG>?mN ΜIȿ<˭~l3~A?־p @?1TKJ迟sU,m}O?cҠp ;ܚUn1̿X Ҥ?OX2,H?;!??{r_ͱ{AE܀ؿ}y?/pz\׿q79n?濞C #ՅH?4xUҼ?P>?u,d&g?qM(¿aڷg??ح?^pĵp?3`޿ GHYVC?\p?OrTW$Q#?U% ڕHF("`ʏdnP?a?j}??~WX?(C?-yE$79cw sP%G+?x6?B!?+shGQp?x4g*/ǁ?ܬ]?⬻g rcX@qژ/?T??v]?Wr?6ٿ˙SJſ5w¿h'h]!?: }KGֿ^7q?bzjؿfaz? R??-A?: W[%P?.U%?k?ڔrk׿y pkbN7b ?YJb?:[;?|~c?P?A^T&۲^Gſf^'Z7?Z3ڿ-V=?y2m׿Ps`?czNvtѿ0Jp ?vnk?BN뿉gK?0ßct|?bz?oLp %NJp|$Ԡߎ?f6Z?|? ,Q^mt(˿(>pNY?_+v?9~_?@n+@?|n$^ÿ7ʴ? 5Z }9?3I*3jάCKōQq?2DϮ{?qH?5D´?6u2?ľ_j YͿEzSP?fG Ͽն!p?=@FQ?- Z*ۿ\Sĥ?mFVΝKqP?ͮ/z?Ļ:{ֿ#-̼0eMѿs?U;"7?th?1=dX(ǿddS\ؿH uh?{?]S:f?#ܕ?o?Rc.Eֿ1 Ϳ(A|俌"˿/^T8?((Xo?Az㟭? ÿezJqw+;z<#y2L?и?d/sz)AJZ?{6ѿ?H սп M޿6}'? T|?V|c?}ؿ+ Կ*wc2兿ҭD?XY?W$?D򝲌ſyK/zؿ}*!?a+}Y i6"?/\翷yl;?닢U(Jw?؟U~V|MHF:?a9ӿa賿$5 ?LAp?J0?g7"ʿQ|J#\ÿjaxʿ`?@??Y2Ƕ?wQͿ T6ЖſUk(-c??h,?C?ţǒ@7A:Dʿ57=bӿNAhF8Ͽ[Y@TW4bg?A?j-'[GӿR\*ͿJ;A%Sbgb?ā%ٿ[T :?DD}FQ^~dZ˿"_{?Oa?m?bSJ+׏u?k֑zt?a??*PlؿyR&Dlg⿳fK.x?f+ρQ >;Ԯ*?xZ+?B?ORɿʨ| ѩxkh:?7g!˿ڑ/?ͯ8?szX>?A5uzԿ*.yŏ}@?S0,X\bDԭ?ԬԿ7~NzA?ۿù?G@?/p|?r4%ѿs&tS& H\ܿaԉ?Psk?xr1($s$j{k?[Ĉsْ5? ?%PzWȜ,?gݿ6u4YϿBd]??l,<7?BxR?RC*տ*Th[ʿ\ƿA~p?*n 5?k տ?oZ ^mFcVȀ?x 1?USIžLVd9l⧴ݿ̫bC]?:^ҿp4пe˜G??\MUTJݽ?n>ſGP:?30ɿF]?1Py?C Ɔ?wM핛Ͽڨ?ٟ ί?$ŕZjҿ)G?oNe{ޯ G?i[K%?[1ſj/M#ÿͶo6?㚳(X?Q21߿{=s4ɿճz(3?H|89?hܧ?6nտЪ_0,? r.DR?&7l1}?d7ǿ7't?ᵡ6Tk¿uDildx?>?l/ rM߿, J#^yd~iI?#?mݲ, K?u3 ?mؑ?RV0ibĿfbj~j?5*R?ET?yQ&Im:` -̿`?EOA7?_S(%?{M6Sݷ=H?rM̔?1пェhȿ˅AZNNc?\!,ߤ?2 B3?><;u&D?/+d;U?AOxm1X~B_2gk? D?6?WpE.vǿ`ws/O#?Tg`:?9:.x?muf;$+߿ƍ&]?O&{??+T?2t?iyv?vHdH T< f ݿ5s6+?^Jl3? ?pF򂹺?&9E2+G]?YaOP+"<0?}?>SR-Hᅦh??8r?Ii|?qDj!&+?~歿Pp$=?BT}?_˓0տw(YY~ݿM/?E9Z?JZ ?q<lM*BV?uN!+?=z͹?V`y/X { ƬIzm#){5?Č,?osn?>7ͨ- ̷?0pp(w?sGɭUY&Ɂj Mo?Y տ-'6lؼU_ÿM?QH?ܺ¾Ѐ[?4hXpC?:j+?qI᡿2"rdY ?{hȈ??YLD[0pSؿ )ZS |L?&"3٦/>n?*Ps?QԬ?y ?1Ƴ?2}"$38? 俼3_Y?v\ҿ뿞j%;?@: R=K?]T?(O0"yh#}㿥^?^$R? ֚ ?cҿ%dMji1y?%zgjP?<ʾ?'^B׿~g,{6Ϳα?PaN?:R߫?OR._?KNNLN;2?Vr2}#Dڿ)([?ZX7ûZ? r1ڽ ,0"i?0?iG?5vU~?0ĝѿJDqu@?ľuAMBZT?L# K ^? q?d?[տy&􊹿Nˊֿ ip?y53b?V/?:aqRoU<%׷Ca?H" A?cP=?p^PWe<ѿo7b?sh¿_dq?N{'Dÿ.@}IM? S?6%W迎n)?"k(?Ru ?rU/Oҿk+S Q!Ӥ?EV?3־M!bܤ?__s3ֿXU(?n %Ŀ=|9V忐4Q?Gc!`Ǖ?P ?Cv¿zD9ϿGqnƾ? _]P?w H?q/?>aӫ?BA%^߿T"^I?`,H?;jX??(hӿA03?Ivu"ʯgi?v'?;rֿ5?mѿidn8bD+?h~?t; 9?IL2XԿxFYĿ|tPx?a{@?pſԶg?Jbc?ǷD)߿Д?q0w9QZ?"*wA?kٿ^>ʭ⭨$0܌?7?/_ﻺ?AOܛyS.O|?D9z?i?@:&N["q?0 Xܿ"&)vUHv?J;Znu?|l p?Y<ۿ>'j?Y1mv?w&?~݃RbԿ@D@?źC  SЍ|3?{A"?!OJh?D4MH|*C>l@e?=?i\ j֩?ް„hK?  z?:w7&LD4ϛW?uoX(޿Pdο~?W?}2x'?iց9r+ܿ]/Mi2nܿd?W$V ω?Bř?X迪\Q?[¿wU?W?t7}3m4p/%nO? ?/]@;?b`w?ox0L2*Wt?5JVɿѮ?C7"p?5@#^]Н[?[D:R?p?Ga=-?6% p?Bũby?9K2pA:Y=Aq!,ן?ӛ?"?k5M?bg뿅N@?,Y߿ŧU?`XШʲrj'B?}(?j ,Wf?Jx{{|?O,!U]ɿA߽( ?ǹJ4?jsv>UW|ϳ?tSA[ ?~Vt?v"v 9^qPظF4E*?~>Yg??ܚ؀?ܿH濶7>&iTfF?+kR5?AsYP?qH?qhܿ ȶ?Yտ3t"?yȯrÿVҿ~O N?ʟ?QB!?YпWNÿ\7_Ǯ@ϵ?ï?gR?dwN+] uH=8?*BῷOe?lf7H :/翮?Yg?Y ?GF0??Z+Ϳ.Gޢ?Izf?'(6?mU~ zy࿲?ep3Ӓ?AO)yſl3?W☿(uҿQ?Ly?pQ?W!?J@FϿ^[Bnu ¿>aT'?s)17?11Rx?R(#r& ʿv⿗&1?sOX?{ؿ,7? f-ʴ?% _?A(}̙}dF;忲GӵrcJNr7?VӘĿp?2'ڠ? `b߿y;Ϭs뫄d:T?ρHI?oO(?t C,gwJ}v?l1N6b?0m-?3D࿎'\!e?McؿD?7`|?ٱe?CH~$ſ-<7iEbm~e`RпTBO?ݿ_TT>?v5 VuMr?6)|J,d?[&\?\)ȥK=V$GEYsQ?&aL 2]?6\X1d1A[K?:=S;W|Q(?*Nq?s Ar$vt}?ȨC??ӔѯĿ_7r;Կ\GBȿ4Yd,P̺0Kп?p{nq˿򒎝.v?d_ǿ4s@ *NL&?as? 8?,ciI¿ kĿjO/#[?SyTͿ[ ?￸EhcĿ,v?,L3d?(x?YV@-a|U?UZ쩿<\#?U G?ơgQۿ{ ?yGP˿$1?wjc2z?ՔES¿42} X~ ge?, "%zӿҚ?hV?末?d E?]bؿ+n*rֹh>̿<?jt?l?RPXԿi?%mri? bP?F;Կ{b^>p,67%9?9?ay?ymX?uy=c?c(?nnpN߿}d?Myj?[7?@?I jP?V/ܿ#ӂ.!DB:/?Z7?SHYHl{~?-h3Կk?^ ?sFMȿyqT!տԾ^{?;Es?;ث?؇!ο0b2? Wo~T?Rh?'#MݿW逿0R8dAӿ9r 5?j4?$l?l|W3U`@z\3 пWiou?!j?vDf?׿]%ҿHeo,?@?VG7f?^6Z ?C?e?aNU?>C e쿴uHZ3w￴C*?mN ?wF?7n`[´n뿗%@~?`Fs_n_/H?{8kؿBLk^s? ~F?P@ ?>꽿@7Ŀ)Bc?~̊ "?OrȾFu?kc͐?<KbR?s=|\}b'?0SRI8?o{Î'o:Z?rjo,[?*RNdAݚQ?YűN)Dzؿvu3? V d?3u?澹'ؿfkѿ+,mg׿n?ո:?A| ҿÇQ?N}<ݹ0?%?o y]ؿXZHwԿv ?PKJH3"l1_gaus1_1000_coefs.npyNUMPYF{'descr': '=??JM@T?sm?C/ :Q\Dp9?toI"@ȁҿƿ!V \x޿xD[տЦa?&V?"v/Xѿ \GLw7Ј $Ͽ"YB?O O?oN2? @ &=&q ?F*ۿ]6hJſOFQ?6,|]?(=`?xuVۆV9+8TiA?Dm T`?)A.?lLT?S# ?黸7ٿ⨜i ޔ(C5?]6?r?z)?3ĵnƿ%.xٿ@Okܿ:Ȟd :Ͽ=a3 ?L&q31}ܿHRmZLdRgs?*?7{ 93?'ڿ׿T}]Z׿Ԉ2`;`?Z3pj~ϳ(uy?z8?rDsB%?cU?9ĬXs2F=g?;f?.R'?@A|BQ?3cvlbμQ[? ?|zgcIc?̐F4t9s Ŀgm?Jʹ?m}৥旂 ? ag/3뿬QIS??!h "`]*+z ?Ɛ/F=uչ?GpB?bQ>ɿbiٿ .ߖ&{㿩'n?0I(DӸ?>!"7}0?qP *?4e?/ 2HJL?J@^?HOL"? h/?u2.ҿ@x$qY?$O쨉t?0?[pn?K-P?{1i$h]G?AȅB?2?v??D{n?J.gnruҋI??]v[?.2?"ij[޿Y4΢?gqd?`pѶ?ip`wˆ- ,?U8y?6i@#zh@@0C?Nx@>F|? .ȴR? ٿr 0𿮙G?^όĿ (xaH9?lv DϮ?b\տ8 ?~aHY{ӿ`zP,1׿3?&?T30EyS?pŘٷt05x?*4?KGDXg?#z? ?@623?Z2-m-?>hd?Oi +?1?7nWGM?Tpy,>ٿvq@\?1yԿ@-~=?`h¿t։9P0?rw@đa?x4T<'?*'ҿGYnY?NRCM )c?`^@έ̽DYm?pԿ~X$ǿtAeԳ?fx࿘*-??%c?H ?/3sϿ*?  gc?W?3Iu0sq?ghU迄a^h1g>?UN߿ĉwzB?v\q𿺫#Qá??dֿb??/ؿJq{Rޒ#+w~j?CU?X\?ag#e󿦈7SH?-eg? aT@?Qo2 _{N%?ߜ/-? szÿ܅b hhBX 'ci?ކ&%?2OP\Q޿P3;?xW??¿u exh? 4OKܢ?͚?S5dBRA?mEҿ gWI6??Ṇ޾?fU^?2B?8[TV?G;^)e?R? sr?`xj&U?A^lt%[տ>?c?X2ҿZ_Tǿi-Wkῳ+?L$ޤ˿OB!h/?d ^T?^(]E0)s/I|? ?pt?3)K!pٿv||U?JN俲" bW8?tL06?oE*?#i?":vw2jr-?t;Da?%;濠Nݬ?4bb?k/8f94ÿ41п@?nð?U] M2`-b+?ݢ?q&ӍӿNY\/J.Mc?$*?ƅ\K>vk ݿ"P?V$ݽ?I\Hʿe _8?kF?C~?29;?4h/?Sڿu<+$@^")?''([?RhԿBq翮hlݿ`9 , [?L(ԿeD ?J>?-]M?||?U*E&eg2w񿼏|AK_?8&Q@AJ[Ӻ?ySp?I2? ˿57+ݿmB ?P:IziC?&$?Cuo  Xrڿp9?wm?$Lp.?2# -~"K};ݿgMǿr_?hŲԯ?F.>?=1?Eb6?ԡQ?ÛgAHj%^&)/?*wrۿ) iA忑r?Cj׿u? ?0?\ Oύ=Ys?˹A*fM*4?#DJڿ{h}/2d`?_B?DJ%bſW!Ѐ+ZǤ?N|C@lz<@ ٿ >MDI?Sq:?ԋmMƿb? .&ԿΣb.848[?6@,?>?2:B?@_ SҿXPΞ?~WNٿ(iYkp*[J2K???3??#a\VN eDm"H?I^?/]}Уܞ?`}[?g$?s`px@SϗZb?`HVR'i?ah ?ڡdyYӿϵ9⇿ڤ⿪W\oěL?8t?-F}ƿ5YnI?u1?y%@}?z0XCgzSۿ)HU??ɬAcG?s7 c?Rs:C>!gQmG?pv E`|'˸[F݄ ?lӿ?"RekZkgjֿ* L!?DzLY<п\KS0l?,{j?jL)U̿\Pl8V@8ە?tSΦ?/+-oz2.?cv?F˼>On4S-L¿]wZ?cDHMN?v$+'?ˀ5tʤ;:?3:I3T$迼/ '?\9q*p8;@4>?K_ͫZmXY;Ҧ?*y j?@"N? |2TsF?H?- LLf+?-?R򿘴:俯C^?rm?*VW?8n7" O.uN?)=?b,=]B਑ʕ-?L*ި?uI?&<1r?q]LV?0A9wM&)0!=Cj+.I?}"WU?*IG?&R_]'{?8oԿFc,¿N+?õ?_Y?0?٧>x?S]W ?μ?%B?5?p&A?b9nY?D?T\ĔӿEX~v?ߛ?W~άAQB`? ?|7??giֹNݿXߝDX~8U?"*n? ?n'swڿ@^@Nqog-y?(%l d"ſA>4ccn?Aq?ܾhgKY꿐KNC?+?_.8?0jؿ;t?Z`4"i?.shKݿ(Z뿞5?օA?07kF?ޯS6*8JG2?xt?h|y [?b.ۿǑY: N?פw?ѻ_Q?t5o~h5?ːiҿ2¿Koٿm ?hE:AxM2?.O?VHz  ._$a׿ ?[?_O]ۿ'OcܿL&z4?vAϙ*s?~ ? m?gZ v?`!uΊ;%X?E(R?giѿ OxiD{?3?i ,H)?#zS5?'9Z"?6?96ęſUD6`b^ݿ5DܿL¿ "߿CabۿH/Cް?"uߥ&?0M ?Ȝ?^&a?6?ԃ?!mo$>c(*TQ?D{?G1_o7cx?ƊH3?º SqG ?ԻFt툏W࿢)?q#+?R&ksi޿dgA?SB%ڿd}߿h*}?ͽῈ9H¿xo~HD߿^B^8 ?2?(Y鿑z?y(6/K9O?= @Yiֿ'k_b TXR 6?h*c?Bs\??6]@{cTJp?Ոܿ+ KY?-u.?OOp?51!*D?%9 ?/$ؽ_?{ t䬼?Mo? :;彿~t/뿆ɡ;OܿzKV?+u8ѿStMI2)6@?+38mQ"??>T&4?GaL-#??})=0?@r#Z,DrѿXR<]_ȾS?!W@@C7`B?ʌ^EpX:ƛ5c1?Jvpa?YRol򿌇4Nٿ^?bSqٿ ?mС f?h?.ο'%5. 69؈?Fw_O?h*N_wMn1!y+ ?`?>f7zdPݿ^c?kh? ߿n%? r\?iP| ?J4i?_xpп ,y? W83? C3Z=l=ٿz@? ?. 1mE/ |ÿ\5xѢ?@Cjq?4}?vt0ǿP}b@p?.@?{bXw?cZ@Dr?邂;o?x.K?dt'ʿ>Rc_応L]:?܃rEP?x+ao{ݿi~< 꿊Ee?ߗa'ڿ\@sxӥKu?s9׿6&pXas ӿRl+??Ij;G24n3?xwy)oʿ7˻ſWrI3Iſ1_ޑ?>tHοRF;߿w2ũ)tzؿv?cnܨq C^&??Iޚ#?diF  fs6?C ?@Os? , Y?R\ؗؿH&Ŀ/b?L?9aS忢0L??OJ?jĿ[EᜱdOh?Q׬ôyԿAO+ D8?le 5ڿʝ[ǹx ?2\r_z;K#֯f?u?>Ğ/?`D~2ʿ/9751?؈`j~,ɿ$Q?ٝ-ꄿxJWοg:' [&,?@O?gZ濈;@?f"?/¢-cG$DԿ<] >M??#迧JH[?G*?=_:)?<,;0?!mt8d?ҿdn?]?]6̚ؿlgؿ:n}пMTԻ??`51οVR?VD\׿:З-5m?C+?WV1;?Ï?ksu?-!{Mք;tk4Czp֡?)۰ֿXRqx7+?AA~?EDz9e?΀?t0z࿆!_6Ip?ChN?X/ɿ3g]4a 7?NٽYSR?' ?^"-[JUjM>V^пGd?˚0?` d> ݿ}?7ƿu߷t2-?~* ?|+[ֿfm?:rU#E?F9?қE4>P?P!ROK?⬗T?GLqҪX =ʗ?W+?-{p ]տ ÿ'& ӿF %t?YMk?N_Ї9DTv?Rco- ݿ3?5?*A8ݬ1&?zMt?"r?oX;L÷?CFo?=Uؿ\Vۿ\ac?wsl޿C,?_~j?ivm7F9`fpV?dh)D?`稿'[I~XspM_?t?.i6-QMŦz?_' #?7 J"|&d㿾 ו3?Ԉ?! ?ސxgW;ƿF~zB3pf]@0hz?G*½"ڿ:P$vv9/iҿݺ??rǿܽ5?? ?B&ˀ\2 ?D(|N?8կ?qG?tHL㿸0?vP?ebO0ҿԣFY?ꂓ ?[v¿Lj$俔%%ƿa`?xsԨ6X?^baʿV_`࿤Uj?t\?J#΁;P?@?/ɫ]F;?pN>bz1&%/?VAϿ8cQ?+0 Ti?,`-$ݿ^ؽn{?7?Vӿ6?޽G?z^X|k ֿl' 6~h͏?/f?*I:/_TB ?PS?׭A#远r,1N?6ntr?k)?N 2I?vF(u^HHۿHt?dszjh[p9=ȘX ?W?Ln8 ?9L(?)?ݴQoUđ?8?:Ed?PieFп q]?N4?ޘϿET.Mn?Wv:?V 8C\ֿd@QUܻu],@? $1ݿC.j@W?_%^?/+?x?(gn +4I7?t;lz ܿh~ݿ> \?|ʜۃ`ɿBM{Kjտ0W?kx?B[P?=c?t 6vZ(RZDb?^`}?οvN ?t'Y?8W?%+ʭNF!Y鄮n?,>VmX?^TPA迩^l?56?k:upL UceV?k m?YuމԿ=ҿBf._ ׿y5C'?i(d,??"ԿD=Pڿ)4?Y?t"wп%9/(>h?&l7?_ҲE?23?L ῠ?T f쿂5'e?Hb!|jܧ?/<׿!}U ?Dg@?$?ʬ rп43Ř=> \7? :?Z|u{r?D???KFe(/ٿRDʿ~?*.b?UĿ2T?ٜ]?qz& ? LɿR0h]޿Q/jN-m?2{Aֿ*"A,(rix?"AO1G?|KPAe?lfL?VտQK]1 4?[I?|cZ@?]sXoNA?nc p?F`Wݿ`?~?(X㐡?P( ?Y#yT?toVnGw忤E?Ѧ ȜB?I.пVNW?5J?`Z:ֿ`$A%XS?R?Le9QD忹)氱? ]l~?PKc?t? &׿LFfB?'ʬTTu?hL+&RN /?LHʿ $?A1˥Ῐlq?6[j$IJG {0b@6;.޿mA?*ա$?$Cijܿ4/E;?$u @)?'ٓ?J`%?p+[K@q#F;7oR?[Y:HRHa5ٿ֙jy8?M?`|lE?k?ZG?? OI)ٿ"5?^MĿx{=>ڿڎc6?^yEտUqf? 1?Ρ7??wjk¿om?re2/G Կ<15ѿ?l|?$?ʔWݿO,5Hg?+?KֿUr˿ɻ ޿A]SVqy?SoɿzA?N -˿QHp¹vk?T?xprֿAlԿ5'?$ ?gQ6$sԿY =/p3﫵ne?ڿCA*ӌ}ث? <4?t?.%gRhϿpEa?O}?DVm?WJ? 7Կrʿ|WD/g?[c?]Yv?"Z?WT`@s=?䏛L?*oѿ ci%忳',?+?̄{Y? Y!S7/u?|pؿ& !𿓥?H«?d&_1N$V?}?Kik?pj\6b:[?|-?:5uD@)5~S?F?-$*߿ 4=3x9?Z [?M{PKJH_ lp}p}2_cgau5_1001_coefs.npyNUMPYF{'descr': '?4{WlLў?AvVNG濭L? yv?<B?<>S>`Ͽ➃ϸaϙ̿Zп B ?S4JU\¿aDӵ{n?Ӗ??rך?E'^3ٿҽY c?2w!&!g҇0?P+ 3Z㿕G?_?Bz}?4W?iֿ4IT\rILUڞLY c&?@o,׿jXU?Lݿ2 ߿X +?~]z4RW?z"\Q%ٿVyn8Կ? n'v$S,??O9}ʿa%ܿ,?(ڿm(U G?e&j2?ᇬ'?:E?~e`Zڿ#er?8շe?j?@Hۿ.?, (࿸J I:{֓?|t?no?#Bҕҿ+ڢȿM1E<߭??7?@&?ҁӳ?+9ȿvlP&Ql0e?]㲷?q@ȿp긽?8{jnVA?EU'᤿^h5*& R3$?LD?4ֶ^?d䥢%YU aԿ> Q?d :Jc ~?GP 3EӿbJM=d?/[?JH*?Ҡ,yVʿpԜx{h?6{u? h ?>m7{?b?俵>ٿ$-LeU`QνF ?u@IbhR?:ȿ48 N:9†?p<]m9?$?H~¿"83¸8jyӿ!?Y5ͿX?A;ο*ޤ࿛i<?ڵ(?>B2R?۰NJ⿟ ߸+#V fĿ!?:S?Аnj?HB&@׿É?p:$n޿'hL?Nv0zDp–ӿKrl?zI?Tz?*V*:?vPcޱ4. ?J1|U?$GKy? ƿϚZ..W?^vl㿎?v LeieM\q?^?R>?<￷'Q?|Pa@ƿX5̕?Tㄒs? TN濬:/Q?9BAfZfb?[ů?<I}?2',"/п:d濴 }&mPjɺ>L.ԿfEQ?+?-c'ѯ"?$e౿x#?/~r?]@[{-4/WDF?H /?՚ݾ~?οYoA?;緿nLFΗ?e5}:\ӿ'4Ϳ3PQ?X\?5U;?PHٿIJS{?j!-\?2?x;Lg?$slF9Cο4 wM?Xd/bW[?aTঞ[ؿ=s ?>w?_1?H&SQZ濬4l:?QF%WnxR?U͕K?[5A82m?DO0QٿC+Plko>?dfڊL?ɨR?0X㿡^=n*᭿%E۠p?F(?Ҩv?Tǖ7'̰?wh…¿Sh?Y:? B张 |۾4M9sn$D?ڊ&?%# ?Ɩѱ?nY, կ?pȀ@B'?(4?ǻ?UPj0߿tkax?^*C㿪 ?B:p迀;:a(D?9qG?Eyt?c'bտ.grX~߿Jt:nY:N?'Mf?DQ?F}1Oo;ӿ>KV?nl!οT ?$ph ῀9(ȿ{F2$?i Ų?aSO? cbۿzFLL?d4 z7!?}(D]?h.A3@.+$ӿI5=>? .iB?* s)|}غտCV??Ch,F?v#_THˠ<X`z 4h? HEl6?%%UnVP,gF_ QFd*r?u_蕿GH`?Wf(d`~WQ3y_0)ֹ&?Hl|? @qICAV&cYԿEe?9 ?NX8Z?Ϣ]l{?Vq?BaEm$)?ZsT3?f_/鿃~?tzxJ>xڶ? ?ke޿M:OSdL?4?O$? ۿAڊ?j{wֿ/{|V@T}-Lb[!?^$ ?`忮GG?u &~?hyoS?Ĕ?z~ͣkɿ\K?&n?-пX1Ŀ`>dm8bߍ(Z]?ߜpxH0?­޿!;CS?*:J@O>W|?U?@{j")nXgsĿࢎ뿌 f#?R$8?e l?IGn?'? t?Ԑmyÿֲ}i??W܊چ2to񿄿9A?Q\Z?'?&R7e⿸e̞?xXA<ǿ&UR?zEɾ?B̼?p{۫:Moh5o}?ߛ#+}?Xr?dy?7?.)CNխܼո? U-ghnN?}?$OL8ؿl:h[|?e?qJj?N̶B/F޿nSu?w9Ԥ1?hf?sFܿF8?9DE? :п N[? ziF.bx?6&@?42X)T``>޿(yL ?Z;?j\pGc$G?9",^[=E0_?ol>{7?b+ҿ1ltLڿͷ-?5?^ncѿt|??`ꅳ̿%pGۿ7;A?r"&|vDB_?iLT!]PG?踿Ú %XD?P6𨯿֘0?銆?}* >{倽mɿ@uWA;ŸB?L`ۥ?5R-b]a?6n- 2jȊDտc`?P B?7?Y,_?l↓l&{¿om@?FJ?i'{ؾ?l`L ,濽|9ʿZE"?*P(@?PmԨο6@7?t -F?_|"? Gݿ>?Dz1*ҿ6!QzĿ<6?? Ko?0^U? *z錻qaH<ֿ51q e`le}?iX?,?a*?@P!?jxĿ.+?pۿ!?od#Qnmտ̺?O?y??z޿p>B\q?Fܤ?j휿N)'6z#7ѿ?4"hƿV?rM^Q ᅳ2?*Vz_пܙ?G5RŎ?_[X}?ljN߿?;⿍\[f?!?^DP?D[j?:?tdN$m߿[AEi@[տ=WK?8o^Φ?N?qʗÿhf'NLh:F03 a aԿge<7pؿ VE? |;?Ly@/ &?ۆz+¿U?v?A*# RHӌ<,T?F"q?ǿ^W?hH?[uCrټ;& տjqx,jljr?eH(?YtZ#a?ϓ "?Β밿dZ?U ?f] /b.XD?2?r!'?/ Ц? ?KX8Ѯ8B?F4 QTݿ`%?f8֠R?5?#ܿb]jHo?ƿ*=>.hI?o?FJ?kѿ3z)ۿ+m̶? NvU52?38?YTuҿ kDkY ԂQܿI?:S)?Q/8?y@e6R/j׿[?|:Жo?'ucO?Kq?c dsqK?䵻J?AVrK^t}ſ营ߎӿ<ύ$X?[:x?f εտXU??C^%;4?M?| ߿7=H㿡-?4W?3b-#?\q~cXO̿ٝVR?5E;&?y j߿3aTd? A{pÿa2ёX?]?1#eEl(L?=Bo?=n+fx? U?Vj?kuoq?;4?Z25⿐AL{c?aU #E(AP?-o?76cX9?I]* j ZOmٻ ?? ԺD*:ʈL0{?[Y?#G*֞?Y"5ºq<ۿ_.5w?>d'ҿ TA,?+Yڿ'{Aڿ?+?*֛β?M?25WտNep?58_?]?,4#Ϳ!#?PB}ObҿdTπaP?>Wr?ϣ6{?e/3ZYji6lʿ^v楆}¥>~%"?B"Q?UswG??+sa3i6ÿ#z|?/-yV?}m?Dd8?5ꮿlcL1޿m|iFi ?{2{?;+g?Cs7{kǯ?R O?cnZ?WzIFCĿsKbi?a?(|(?Nݮ]hXiA\f:dh~-2e?@)kHҿF/dJb?'0wJ/?ب%?滿j)Z˫?uq?XFcxdʹv?pF;ۿ9!?x2G?X58$u߫~(LAN\?Ta;_2NԿE٢:?SÑd?֐?ڪ ?Q5tBK9k(ϼA7Y?]??4BYiȿFag27G?0ccF6v(?L7q_Zſo|3? x?:?fLV?鞣m%ò^?xl||0؆,ۖ? żoyuܫremd?l ?;$H?*Yڐ_3oſWxh i?,k蒿!J?oTjv?FssV? KhſH(lQz  ? suI ?ږ?5$72_Mf߿/-?QO?Dκ?{,?Qňvd妽??tخo?6.#nѿc?$P]>ϐ?p4q ?+? Hsr}׿Xég?vm;?2Te?_h:]:t|EOrC5?ATȱԿq|ga%!mϿ9Mi?D%qW"?EG8o? TLԿ5Ͽ>Ar?lO/?JPT?/Շſx)?ri)%KV?jp{?CԿ*M?aԸ>ƿ?*r.3+\?Z@?$Rۿ}>?~1i.㿒Xj! G?v3?M ?]?;7:zWh?/G䤿+X?ц?ÿ Cx6}uIt0#]?A'GRǿ%*6?saɿ<kެ?cZ oN_?J ,_?tOA@ZPĿ#BG[6].?sF:Xer? ٿksl]iESu3?tj"A?QuA?#u$nZ̿rhFM?_H(ɿlcpl?7m R1Fbkt˜?@a?1c ²?ǟ3{οi'տM81ȿ6&W?sS??{ҴWؿFӆyr?>q"T?ҩH?ۻbHֿkɿ"'?SН.?[)3}?s5ޑGso?_?mLO快/?DRO3޿T?Ye;?ՠ0+ ?3DqXmI"d?R8M?1ߞ|jަgJYwĽ?}"?:nE?o$? MZ?@@o?=6mĿ:N'?6I0J?n0 e`??dXM*h45}?uOu?c?+7ٿB$I:濓¿&auN?1VafO?~]?88+FUp?VmRjfb4?W{?HX#㿵N$0 ?3 |Өզ?]cC?hos.?4aGf?|cNW/`?h*"ڪ&?n?2W?)տ)H|pCI-EpDɿmjCQ e?_fh?~O?fapu0uӿ8 ɿMޓ$?=f?RaJƿ2?D5y[ g.?:ѱ?2AA"O;п O(?&Z ^п` x9?9_";& bB6¿yM᠞ݯG#?6>9?J(,_sQH?/no9K?NR?)x.aſ|!޿?zU,?O7A@忘͔?VE3yɫ]5? gwC["xlx4so@^}k2G?XOa?APw?v5ÿ04s?E>3ȤY?D@&AS˿-ˆ ҿ. I?He*?҃?8b8~#nP^BᷘEe0?'*?405,'D ӿf0 ?1]PjؿXl? ¿mAҿ4]%?^nCN5?oPRC?3翅?bH?HLv?hi8#]ݿx:Έv,ht8̼@xw;?hX9l?N5Rj?^3UqK,?('U'?l?_6vHYϵ4ǓJ>ٸ~?_]/?]{"/U&N*EgGĿ5p?!kD?g d?C=}ߌ/?>H᠁?Z?&J@|3ągӿ,! y?inl?.8"?%0\rQ;TտJ5EKd9Z-?' ?SZ|gۿ6"?V̰Ռ?C%\,? rHēT1/!r&{? a"?8[?8 Ŀ/~Ȯ?G[?.U%?=ƿQ:? ̭D?ݔ? 7}*t?w:ֿ+Ϳi0|?s?ÙW?⢔al?ݧ ߿=NMſ 濿ݓ?ڬіп?!δۿ 8ݤ ^_1z۳ZH?a?,(?/FЦ!@TgտIt?a%2t?ٕJ迶#?ı Ћǿŏ?Bׂ܌?4 S9e֪bav[yUC,?hE%G? g?+F8V?ED쿦oտ)9`һ^ gH?U< s cMH8'?3"?A^Q=ȿ ?&@Կ}ů? D?(J,z"I*TĿC4?+DS1׿T?HUYٿ}ÿ-3?,9?1?zoTpMr Ёuym2#?tк`g&?k*(?:Z ?Ɗػ߿LȞUl?he+ݝ?iTд?HjV VӿqrZ'? ?ɲ7?ܨ"^?^bF\dw?0?[ο 2nf?*[Bѿe 1Ϳ9U?ߤ!%lc?nWɺ?#, ĿVzijP*JuAX?u0Zaeֿaf?9iZڿdM濬P(z5?l-?CSBX?VBs;οa 䱱ɟ9}* ?MvNs?\]?|S奲z???HI濈|Ҥ9aO1[Q?cEP?FWr?_f*CҿO#J=ڿ["?{pS8b? Jޡ݀=?j: ?IGp<2Y"IwۿtI-?C&@?C<{#Կ= 1"?vY5?զ]?k˖ῲ-8oͿS1pw;?jqخGdH?z%YH'=?B?4H?L̿K}ſ.P'p?Pkߤ?؊FQ{o?$8;Z ÿ ~[t?¯?+Zw㿬 ?٨UtJ?0i?xVۿ?"JT}T19?P;^?u8o쿸&?zb]y[X?@? _]ۿ1% غ?O,R?tP?hFHrb4п~d?5*&⿐)_-_? )wF¿ba?~?L1c)?r_bE }ӅֈY? ?q(I?NB&堙ʿX~;W8?j-k=Fl&K?:= 4iޏ ׿6.aI?!XD ??͋s濘+n=z 9%?{n ?/E>~ֿ/?:_y,h?V]?U ^pܦ2Ŀu9?@V ;$g?hLSKE}޿?zP?mh?Ԯ& ֿVw,jf"ռ4&Jy?`bO?f˯}?p@qܝ?s}7ۿS*vOBؿ` *^?>NMֿ<곟?2?d?xZuG⸿« 13jN?kzjѿImgͦ?|¿Z:DӿLd?H͝?=H?N0]ؾFcw?IfBN? ?5x )$נS6迠1:& ??OG?37ƒ?Qsݿw$ٽ?MaJ9)2߰#:}M?(v 濫ޱYU?sDưſGWH6ο@X¦?q?Px)t(X?/2^U㿄#tK? ܪ;4-?=Г:#ܬN]???AV{4߿G1q&[tҿV?ByHH"?XC2n$֦?XU??7d`?jm? ޿|%ܿb߿}[+3;?a?@J ~?;2Լ=c#?ڤ?SS6IД 1{[ d?@b?͙$孥Tҿ K,?EGn)?N.Hؿg׿BL@?]ƪ?W0?6'dbmr*yH%3wտD8?D/퀛? GR?>/GֿNPW?1يU?b?)I?Ud/!͸?Sύٿkzզ??(MqyʿLk*Jo?(?>?!{hW38u܁$'?lP9?k?]C=bJ'?m?w.6пSU6~p71/ۿOm>?4T^f?،NHE?zy# sxsѿ)(QԿ1u?W@h?hL?p~;Њ5ђ8X?L ?=lԿw¿SGاIܿ?F\˿.~Z?4|׿e&Չ-z?k2j?I6?Yؓr?RؿNE?s?b>?2?6ѿ@N"俦X ?)6?/nQ\7?nC𚺚mE?!iH?qwT)2v iO ⿲f?? ?ϕi"?`f[&応PGHLr?:0c)GRB]_?h?}?(w*F-QW? WݿW?8>ʎ,_x῟GJ??!M?N? \׿(33[}?/?r0Ґm7?ݨfw,?.)%j?ӭ8͠ǼLSs c쿣#!ս?#Į?L?dPVDzV\:|}+2DӰ?x|?N wnJRs?-ogP?̾\ʻi?fNΛ2?gBY(2J?z|/Y?#jſZpԗ%Y0?@ fN]?S?Z῕>FpI?0Ѷ?N?^H⿾{?&@Ŀ:#B?ah?DG{/Dǿ2GՒF.?գ*)#M?5-;+?QOqIO?cƿmnXX?N@U0?h!hgWÅ~J S?"dz?3{}?eE }?,DY|M_mؿ.y{Ŀڪ?tѹQ?.4˿y@G?)H lڿS??h_mf?:&?˛iIGoq?}ڇgEb*!? ?P?[ֿAZ]ҿ@Q2S;¿dł?يBɿRf?1lU@Tvۿ@wΒ? O?HJ?Q.F?jr5?]^?D )?2-3n?D7f+?)G>]Gۿ &w?+x%.?VAk׿Bc±?b€?P=UNmPaREwb$N?w⤜P?p5Fe?M?d?bJ~!*L8baPX"?d.pU?(?ӜY񢇷#\㿢y8?@1zzZ 1?I8? 1]]ǿtW%*zOU8?YϿZyV?D(0QN։Aێ?B^s#?6?$$h":t?'Q?ˬ?e,qտtjˡ?MԿx/n?1Z翌2%Ŀ?I!&?Ѷ׹?kQ9ϱ?= }Bx?J̑?0}J2c ]P?vuV?Hn\񴿗]KVY?+[?:?@S^eO Ө?a?YYÅ>4=;?ٕ?OԼb@?"zؿr?-Y?ڥ?@^п2ݿ-#6BnNޭR̴?KsO0?cVM)K?օ kyhR QCu?7?${INNo(m?#, ſN+?_XҿĮ%1D?f/fE?y?5š2e* cտt,g??@s?m=?_ؿ?Կx[&?pWj.C>Q!?p@οڨ?2T2HbAѿ-&<2[?Dyy?zh?:>%濔5z?>fx S?ZV?Eׯֿ?@Մ.v. 𿋴?t`Tƿh3O?/⿚#?6% ?$al?\x Z?†&׿PEſw|<~?!"bQſ/~?]r*N?.XيS(U.X?w?"?\ޟV?/Yn?}fWѿ`^!!?VzJVۿrOU?XhW1NtJ?8i4a=/0?K9s?<5Mά%3߿(W?D?Ti?kn?[׿=%z̿1oY8?J>?Xqrt)?%#̿x/" ? Up̰6ޮ-W ˿$џsӿUwS-?LLC?;'쏿ҿfY1Ҧ?P"_ =^m?'jw ?dU|ׯ<Q/?D?MDB?ZoԿ̿8$x7a¿t$`lAv?2˝?P> n?| ?I&@s?/&?ʥп(9QX3x™+`+V?J%б?UާA=wG῜ U(?*Q⿲bַ?Ϳt }?"ǁ?Zzt?SGvǿ;q?4zȿo8a˿,:?/E}?!EcHKzU1υ#?8I2?itE:?Z_>;|ݼݿJמ!˿ ̬uu ? ʿJ ?dF[aܿ3/?bhR?֣M͞? >翗 ?Ʀ5ݕ \??Ko\[߿ndI??qވ ͿRzz˿8Lӵ?B?0G? T[ؿÿkbf\ NW?Ϸke13п)fy(?qھ翉%e鿌?v!F?dBE? Qܿ\9ƿp MвLJտ?0J?+0s?wF*k?2i,tп%$ ڿ䟂˿l^N?D?ml?rn5̿ߛp/?2H딽M3yh?:?F?l|1@ {(?tп."?rBuiv?1r&g G݁?rӔ?pl\=?65;aU?΅߼?s^g 9*'e?ӯ?:TϿh>?W&4S,?!C?ͥ^Prv@ѿͦn?D4vn݅?n픴@"!+8D?QQ򀗩|R8?ew|?Z)Nÿ]`q7J?gn.?V [ ,?Gejfkݿ̼lF>'?E֍/yJ?aiǿ {ſұlVP"e?P3mc?&$7?gfLYs^L ?+4CDh?KS=%<"My?gd &ﱡc?6G3?[(_?rNKÿ?鬗翻㈪;??E?\u? jӿo)&`g+-?8M/0G6?tU{z?#!Gz{-?(VҿI-g4rHDb?Z+֕?0 J?HXꔿĠB8#ؿ~8/}nfaaڿx0\? y(>>xꌬ?j}yȿzר2U#ۿ\?wCؙ v?o,0?}Lп(ֺg ߿$R ?2^Ŀo8RV?Xf^ۿ?G&y8>,?LfK?,t^;?V>-Qp@}Y?Nhÿ;տjX?fA!=?W}x$dH-?ͨZ?-=mƏ? KUy&ܿ9%׿bNņW?^?u餂?r)? ,nԋ?k?6w12KV?3(/˴ǿzJ昰s?s3J?AuEN?,տml?IusSY}c?9V?ξտ&b҃X1!Nn>?^1m$?˱ "(? \uԿR30H?ǰ?3Ժɔ(9kW? ?Vh^ྛ8? ɿ6&䭉ȿ%뺦?0WJoW? 5'p< 44?zS:?b \?!aſNKTncڿ, ^?A?[/| ?_j5pQ޿m ̿^>ZyU?_?Ios? yԨeȿ]?fZ8b͢?m>V)?c ]x&IjX_&Wz?tε?z^鹦jR2ٿ)Jl?F?,R_@G?5~ؿ5|j뭔?Zd?J, ? }%)̿Trhۚ¿dR}˖6?O9Vԯ?/kI?˕=\j/ ي=Z, &?KehyúοXqٿ7ۿުٿ:QSp?XK?f5Ὼ'm?v ×aPÿ{? S,r?`G@VmʡG9^d?d}?vh|?QK?|YM0xԿLXȴW`i?.,?E>?? =̿vL?~;BٿhJ'?O612Kms?%qr: ?NAY?ODukl?/]TD?|%B b?ÿ<]0?c>?&)c(y?(ߋ5ÿh` ?m? ?C]2);'ſhg/V 9? TZ?)(gw@?ן! ?s\B?Vs? D^4M!3d`V?] ᅣ ӄr?o/?>m࿪;ՂڲKt1JKj?@}~f/?ۿq?jDp HzN? ̪$8T(?vZX?4)пl}C9ܿU?*h?[?-ϝ?*M@࿐xIA?G'ex? U? & c?+6BTH8:k-߿?v޿XcǿtPJ?}k?3CS</k|f|gE?vq?ZKT?l5ֿAԾa(\?BQ>?α4?h `ѿLl{?FRgLÿ!? ?8Ȣ-²j0\?p"k=|)g%"?l¹W%+ M28T񿮸Da6?>7ƿ7 ׾ӿGEi= 9?+D9?i93?CoK'E?Ӏ񃜮 |-L|ۿ>6_w ?!P?XT-?hʎſ#ețcL,?~?ֿj$?7,9V;?ژ?Fg`DQw?x-7M?C?@[?8]WOG-/ѿf.Hx^˿ѾTſb\? ob?gg>餿 ʙS?37t? )߿Ls?7?@pS/޿.̤6 }޿:{.G޿0Nz[?fR-J?]?+M?uư?iۿ0g?|Q?7^U1ʿ2Yؿ;~߿4{_){%>=vր?M AD%Rÿÿ_5x?cV>¿ߐl?sv6?$xFV?mz? WE̿hK翰tH޿P8տ5L)޿L=T%_?zPS2+? d5е?.}?08J?{ dž]?._?y?^,dIӿ$߿7!ݿpPL;I$?wY1?c2d%0!7Բ>Ma`jqh?WH?p,o?ӂͿG)H?zw@[ ǿ^P?:P!Ͽ{?NRoK? ȧȿ(?N}/?kjֿR` PUjf1/eZƿElr?? G_,zB?/?D ՠjy޿$ZDb=܋|MϠeo?(ӞͿ6l?D# ?I,˯ B?D!D۱?GHѿ?'~.ҿSȿ/K=sJK?fg ԏ0?O?Z ˒¿Idžهy?G:-?L=}*V ?=P⵿HMd?j?$ߺؿ ?N.69K.7@R}濺?~-׿9*:Z?1 M?hX?0XT.?П?x}y5ɿ_OR?~ l? Tk?qPԿVXYxf?xdIgҿ@?3Oiпʴb` "aD?(] a>u ?+pDXʿ%g?+\ֿ~4z? fZm?SK3?`: ?LiE9ʿ *Tܿ)skӿXuHbF#r)?>na̫?lO\ a濚 h#?ŠѿY¿Z-?9n:+9ض?}{wo&I??u\i?L?`ҿWhnZ偅߿x59MK,YG?R~U;?0b\ e9ȿq (-̿&è1?~<п@`bIe?uwC;|JҨYxi?վ;¿66g?FfT?jI0{27M7EWbοZzZ?$sҼ?keg?:JFm?vzͰ?8qƫ ˵?t#柿aCĴ?XWGF?q nk?lUᄱ?YGͿ #c޿uԿ >e׿Iݵ潿tl?65Uڿ.Gc$?^nO7 ?^{? ҟc?+jL1ToAכԿusϿ:ٿ֌?Oꈩ5ȿ A~??r蝱?-ʳ?&IC? Z?wן ʿ%/R?$a˅3?~^ W?xfv+>ٿ0q#6?\'iT7iݿ$ ?$_H3ֿBC ?j?sӔb?.Eu?O$3??3#Cy*Ȗ?nacMGk#ٿmxD8?jHStݜO? ?Fa?8Y{fQ^?,ٿ{郷?J[ÿ?5z?4s ۿB/?|x^uн.Xq.cm]?Ul" 1ʿu\#?LNP?%7?rI.?WW:QÙ8-,?gx? a@m ?1~{˿~5 8ȿN/?[X?6ՕQ/?"̿ú ?,R9X¿Pܽc"?v:qL1ҿI7g?&SO?dE,"gau?/u>?ɧhڿY}ǪI@׸?$XY?9Ak??|ʿZ)#4^?|+m?aq޻dE習bӲֿ 3pkrҿBn{?q("޿6]>ǿ'/6_ 2?c/?+ ?!l8M??制?P8׿vWe?FۍHߴp!C?rh1bϿNW71uB?>1$q?NBKZ@?|𲀻?=?(`?5<љ?Sw?ZUױ~?1 ?Z+cf?=*; ӿ.+tgfX?uXgUP?\On?b?7?ݍo}*\Bø ۔Hx*UӿֿjPS?BjXu°xwz?`¢? lz?>?|ɹ:ο g qRݿUBq$?괐"?gf̿Jߞ?`Cxp?6?B$? W?s H.yO?b͕ۊ2j Es )X𿞚0`ܿǧ? (ݖ?Ab?j0?Iks?C>8G_俴Bw??ҤaѿblXA'r_ͿŀԿ;4bT?k@ܿo̢ϿsɈ?'x ?& 7? x?J?ן#y7ѿu??=-ܿWȑEᅭԿ-??y f?vh?ew?7ݔh?﫳ō俌?,?2wyd˿!#ҳ?-G޿@غsBEr"R_$ѿ܇Iz%0 bԢ&?]-2?)VS9?eV?2_׿4E-l?L^xkſ` M hN z?+FοVp?h?ȹqѿvX?1 ?,قmؿ9k޶?~ۿkIFF?FZ?M'¿}5?͉#\$߿}$!oſ lC*迦~ :׿4?r.z?IbFD?V1]?/bNn? 0?0S?m/̿]ʧiٿV~߿2 ˿1uѿ@ԡ?]&ܿh;bͿ7Y C???I9s?l%)H?Х)pEÿNfHvտlIQۿRbK? s4 ?~[n=? ^?.b{ ?e#?,݆ΪG5uϤ}[9N6ۿ83$Hh?Qu3'ܿ7KzK6,^??ޑ@e?GL?j?9t?oFj?M*?FOۿn7&ҿU<&T?E0!~ӳ?0 M-tH?(_D_Sc?vmy?~E1?^)~>[Ŀ֡? B??z?Ҽ3_?a)zο[.,}?зbZ?=|[ʿHY`ѿa@ǩcܿ|^bj$??W7? Ll ?A Zf!I?S¾δ$Q/V?GCD85Կ P $?kB9?aTv\?q]N51? mlѿg`WȋC[ӿHfȿp2ݿ.Ӝ?:b!?$* -?WCo虝;#>?GwxJ ?/o?rMZZhv-ֿק^пbHdpzsA?aT+Ϳϙ? Lsk?3VĿ8dL?e?hfÿE#׿wM?L?.B?!$?Dvf?lmοƐi_ǿ*C-ĿKĿ@P#?@?}R?oS $Ƽ?MAYu[?2r1?1%? 69?/yz?*Vop$?DaѦ?Y bA?GnЪ?s3[^?Soj? &9y?z7𲿃rJPʿ3֠mIп_H[p?r¿W` ȳ?-d?/@[w1rԿЭWa ??홐?j䌠uҿ/Pp{ÿBL俒驆̯VI?-?Pp) ?ޯ.?60ÿ6kmԿҘ~#?30Yf6Ы|?:s&"ݽbп$րvǿmk4? x$W/s4,1?+'P?:o׿sI? L?[T߿F(l߿E>:뿕Azڿ!g?p܇?j.?kn?OI5?+ۿ3%v~mWw2 CK3;;ۿO'X۲?$0?{?_TtX?k 鍼m?:̺o4^I!Կ5?ӂE9$&ӭ&?,Lp}?wXmBEaFW3?9݁P?0ؿ,񠹿3Oۿfg ? ɑ7 ?Q? Q(# ҿ%aK 7?Л*ɿo|9E?J6?Jhs{ۿ q?u-;`s?IV?vGL&:塜?/{-R?K=?Tm?BSVyۿ(X,bzȵS ɿ\ ?2@O?'$ ?p u[x?fzVmr$WO-rvlDۿ!1X)ſ m?*V4- 俌RX? 5,?dn f"cp?q9?Q rԿDsFo*迆S*Ⱥ뮹kW%?@٘A? ?.9"ųx:Ҝ?Նha׿FſhhCW#ɞ?/oи?=Z?fcG?ŵsTbqEr?0ƨŊ? nv{?U񹺳0{p?%\ih-?ִs4Sӈ$ؿ꿖yh~T˿Mfӿ b?`_~s܄ÿ;Z?TR*w?z΅?cxX? Mſv1-M,޿տW^ÿzm!Z?jbUݿ{?,?WxJۿWT͙$?fM?wVhEܿ&(.eҿQ鿼fs3ſB3m?aq?EGA?hqU^~?2붿ǃF#@㱮ܦ|վ?JU? i}^sԙ?Y/ ?d3.ֿқgڿvpƫADfտxsf0"pgU?rH[d?@(`? )o7?H? C%'?jJ?L|M׿&+MF| ?gP#?aNq?~J~ſBgP1C X?*C|E?~HDĐ?Z?kտo-?\<çO@ҿv%Z?,<a߿&~+Ch?InMĿ?ԴJ*?2?l?6uw?V\eRX?QW3 X?\6@d?6kܿB ?ֲkww/+?|?\??JŀR?`!Jݿ(&4࿷3,ؿg#l?R,'?/6Ͽ:ħgbR?qM?p,u?G-?kC?6eKF⿌L`^]4?/ӿ%c?BV|#!hÿe8?@}AZp?Dg?&7^ȓ?Oʙ?]̀;?I.a?eO$Rb#^Ba.ʿ|ٿ.:dڿ ʞ?AS鿘 gblzaY?AbVp??]A?LuVҿ+!Q꿗>,ѿq"t`Rg?p ij\& ?(w?8s!F6?]=åjw;i׿KX?D//9Yq9?}E ?2 ?6_m欂?(H^ǿ v+1@пVI%¿ß?))?~dGſ ̷\?c@?NvHr?nJ*?J?|j!?y`iGȿ"aϿ?b`6`n?{wi0ʿn¿@a:ѿ{>ƿGr@O;?Cy#hA?m/㕿a¿?ҕwsѿTf? 55.J;?qӿ=ͻ?v  ?JR~Pu?޳Qy?ㅕMӿpٿ@MY޿ag"E̿\Uq?;Y7!?)ֈ jLߒ6d?LQ4xKQ?I{f?\9`?'ƿ{)z?x u߸?lM ]\3‚!LI]UO'JzLlcn?*ajo?Hk壵 w1? EĹ?tsɿ4֢ÿ0ͿY̯n Z? ZhA?]$%h)?NoqK]q)r} k?xǴ!? sة?"?5п k?Cτ:Q\?>&LĿ=;?e\Մۿn-4x ?j ?9A?3|_?WߺO?Knֿb@Q +k0[Mҿ-?vL1( n KulV')؃?Vfkӿ ? G'-u?пͩ*޿QHb3D3V8,^ђ?Dol?+^tο~s Y?Ԍݪ?eҿ:˿-f ^翤є!Sg%AKͦ?Ψ_ſSQʿ)?X"^ƿ} ?;R?@$??&'?h?f\.?ۼ> ?$Ϳ=-⬩?a4޿l,tV?TA?8?L\Vz?ɱg3ӍZlV?5хٖ?ov"?M׿Xn&̿T̿׽Ŀ4{}?6ҿXr"?=?nvԿ#?`8?z} ۿk-Ws%ݿήU쿣iEпÀKY?zF?F`d?1?X~L:?%ZZ3#迊y?Z_D}mؿ僿? N@6.Aҿ̲I?pVGB?^\?;F=?i曬?DѿkA/9?U8?)?P_j22}JÿM`?8EA+H-IC?彊?|7=v?<3ױkпȉNܞ-пUvZÿVۚ?tuÿP]?a2?C Ͽ}#?u[o?TLͿ/? 2{؋ѿ9CAB??n2&_31i? ۱]+ЌfeIxpV~ 0y9l?P߅!?.{ϐ?{?!F?em鿮~_^Wv?zI⣈?uw?RRȿ0v׿J'OӪ2Fҿ?A-ӿ7K`˿>8G?LZ??]* f?tIoƷ?Lÿq'ߙ?GY^Zv4?d^LF? m4ʿrWᅦ?؆}V:?#Bп6MRN{q-῜G)ƿp 5 n?hD( (\3!۲?"?1bD?`tsN? ʀ?jڔ?dK풺?W,?𾥟 ?Co P?= ǿZȴݿK G?Nv—n$}ѿ3K?ЬN?rk]I?Ma֐?%?s_H3KW?Ul?lE HWiѿ пJ;ÿsx?{οՕ?ѶIS`d5ҿhU?&t]?*k?NR??0+?c?44(?I ѿbR<#?#/z1Cyտ=M?Mzc?EM{?}՘*?H"?bj3YuѿJlÿl2(Ͽ׵r?YT$TWI@䚿?bihRF?s(ε$>5ſߐx2?%ٿ*?K=^9?Uy?Ȕo?3:0 ?lʤ ϿfwTÔ-C:[3r޿0*8u:?j,&_?lm?hGq9Bq:BO?&SNs%O?#d@\$q广G5i?2N. ?nd}? ܒ;?%:)Y+ز)TDL忉JƿB? j?1F?ΓJ?Pп}տ)ѿFߘlq&-?5o ?S03?3[F÷ݿÓ w?/6?wǿ<|㶱͓ ѿ3QcC?:#?zć@?K;i(?C濺(g?eT>ۿБa?mp^4tlX\?no?B? շ?j?D'ɵۿyBϿE4ra㿰ۖ6\u."?] |9?=r?vJ ?eҿ:B:nɿ &Z¿>`@@?,Fvȩ?!ʸ4ҿ5GT$?M⿜ѐrgf?]zU?"?v ź ?oj"OD-Kz Ŀ|(|]Ϳ[׿$1?"sB) y""..?Xz+C?;1u?0D?,5M п .ۿk{P8ٿ}q5N?¢-ũ?7m箿"&Fm5|%h1q?M2?? r%?;V"Fd?6rṿtAhۿ:Ez? &4⿽C ?h 0?~{пa Xp?*B`L?k6-mA޿a*~#%C޿ 83?f?څ???A?L)2aam?WLe ICK?CM(66w?)?A?w0)?=`?Q#s߿yB1濗膋iӿntX??'ob?k?0`?2(԰?ބ9hl)ֿ~?וN}=k?!c?Gm2Q?`[ށR?ɝ-Կ$?,ȿI|ʿpឍ?i]Կ8񑫄?"IN%?A+mÿ%H/?*?g̿& ïwC̿J7[$"b?ON?JW?#ʚ?mE ?洿p/D%뿧$Qlt?'mRͿ޴nٿMꔠ?XU пt?2qF?f*7/?]?TOov?\W,Ć?s?YпKp3̿!oῚ^5п #/ ̿-q?Xn4ĿF6rf?|⠿Ez^?UY?VzbIЛma*@Tֿ@!2)ƿ0t.py#? ӿ#ts? frg?i9(G??x^~j?DZoʿeŃs<+ ߿"/硧ο6isq%ƿ曌?+lX˿(žz?0 ?%>Կb9r?@i`?b]5ѿ(ԿG7}pпQM?? >|i?HYC?L?M ?}Z fvŀ?tz*6}F<d̿@3?R@˿_&A?b߷M?ޟo|G=?M!hѿlԿ(v޿9K?L- n; '5DK]?+mbP&&?͈? ޙ?@ų}ҿz gy!|PnY?b'z?gv?%7?@v6䩶o )M#"D 0?ſ Vnɿl?C|տ2v^˂"E?zI/1?d81?~ȿEvTvҿcu޿hi'ȿ{sB?"\ξ?y?精?'ryhg? Oӿ1 ;?`>?@<f?Fÿw7p׿ R߳N?G|?o?W ?Uѿiš챺?r509GP>P4? 1̿rmnW?OQjp"?v ƿSj?^#+.?Lȿ~YV.?t9Œܿc3O+u>M4?Oz)"?'BZ??fXvQȿp'9~cA_࿚dͻCؿdF[?V *ȿ鮝?qI؄8?r翌P]M?N$Mqݿw~W2|Ϳcu?9w(?x ?޾ŶKq?L35Fۏ;%ӿ@1 h?8GjЉKu#h52hn?--Sk?Qf#s~?bọƿ'|Y u¿g>Zwlr?\^U#j߱k?J-[?绿7ӿ^ n?>!$k?Aڿ̿%c߿e|ƿ6lUi?~ȀZW?nW:?Moɿ6{̿?FIzϿiK!?i R ?Cْ?b,1?I~?8}ĿND-B'ѿ;vϿ;oտ \}ԟ?rƸ#EF.FĿqr?Q0?6-?[?Di8?WDXÙ2\?tW{ꢿ3JֿYahQXջ?_S(T*m;ҿ(Y覅=?@0r?^H?Pﯘ %?ښr?sُ˿2?FV? rb97\aֿ}TWѿr^w[[E7ZĿ !*?O8bih?kٸ?jZʿgl?jRg~A8ƿ 3?d91ӿ,r}?~J>7?c?6?hϼ?,80oѿ;Y0?Iҿeam^~ڿ-<.ȸ?h?:wW?,p?G E0S˟?D`?r\S?|.1?T-%пս?x "ƃ?6ѿ^QC1߿M[ׄ̿ ? (?s x?2? '$?ͺ'Ω}?4h}w@Ϳb|?Yb޿X͖?Pf[?{lE[?a;?xcfs5a󿿿[Y /,ʿ[$˿0 2Z?lx?jئ?q¨?.{8?mEsGA7?GM"? C{z?ʋ$ Rޘwȿ?ɣy:KyG?Q'O~E~ڣSs?6Oب0x?aou~?)|?ڋow ȿ^bP?K^18}PBĢ?+{Ŀ5?)9?[N)տ-g8w?L.xj ׿uW} {%JZпd?j~g?u 4? ?Zi ?L 4￀{/*? `H8rܿ#7?R#B՛!oտ43u?gYm?rA]?L?wG?߿ .8d?Z?> I/tU⮶׿E>޿Ts`ƿvAmn,(e?6i8ʿ$\6~*]YU?r!C?vʗ?䤺9௿Yo)mؿFqdڿ<ôZ)eA/ׄE?Ϡ?Lp=?56)6?9"zmim0?"E9~'߿@Li2[(m:Uۿ˚\Y?ȼl 4?K?;}cH?>0b#f?R<؊过al?Zp?]tɿ}?7ῧS?D)?j?E,ʿ^Z?W?t'P{`"uϿ(0HT;ֿ6 & ?rM3?} aL?-%?5(X?:]&Nu, ?2{V0̕.T翰!?SX#ؿoe?P?(`w5>? Ԋ?YQAǿJYv_GͿ!~m ?2.?'jk ? Ǥl@/l"q?K1?X.Ʈ ?xA)L?-O?c^ѿ?^nǐ?_5T:~tп[Y?wӿ,KwY?Ucx?4k?Ĥmw ӿN±.dҿ>` z 5tbl?qh nԨ?9yXew ! VK?&Oxڿ<)K=ӏD?Â2k??B( o?wV߿O8_?v0oN?昌vѿCu=Ͽy ۿɗ!(ֿݽMпt?cӿȇ_\?{G־??#`T?dX[ 4fq(ȿ?>jhFGƿu@=?A㿴 ¿J5?h߬?sf]+?IQ_M?v?* (⿣C?t?~.P%Կ:=n{tp~?῿4 ƿEx ?kES?x0MA?hJ~?,D?G}Ŀ4 C-̧D UY?͂t?'R߼?ָ?? ſiTҿ-^?*U"ڿF8^:s|w X?=S« PM?#?tɿ,пSC9D⿍¸&g@?E|Vp?.oL$? D?DF:뿌4c?cпX0f@ڿ~k?LJ{hl\ȿ98?&sH?Iy3?9^?T)S3ss9fhoK?H,\-H?1j?Ӆʿ&s~Oxu?zk {eb,Z"IV?'ub?3Jw? W ȿ< 2ѿCB??QPY?F8&?\d?P,5ڿѿeXLl?z? ÜֿaxZ?eЎV^Ðܿb?ёmg俶珵W@e?fGFs?-?]?tl*bտWO孿5i֦'vܿ.?Kn?ò?v#? V޵?0CڿC_JL"ݿ~h~ӿj!X3? R?OK9:1?Ⱦ[?Q@ƿ3'?jR !?5De|FL߿rlؿhrr߿4:o? &~0)?.c?V~|Z'@3?sa(:?/_SDr@YXtiXڿ՛?i$?'?_o?h|+?Mt^5g#?Y? ά=HfI罿89˂4ſpmoͿbY?H3CƿЄ" -~?"0?y+? ?HfMO?5`O3|~KO?*djcCc!^??YAow¤ο g?9)C?}m ?Qut[?v, !ڿ!85EǿS*"2?fW I׿k?ҫ" ?4n2(T?d?z6࿆Q޿NkPHe}58j9?I ?\^)?h$D?"D{W?R6d?q.=. ?5Lb!ܿgJWҿ_iy Xz̿jҭ?po?Fl ?w"ɼ?9iMH?c˿Q`D:fZ;?aFܿpZLл?Z?VҡĿh?4 X?aֿС"&Mc&wf,տ4Pf3mد?ð$c?ݾ?HLNҿ M%?1\?HC˿-Vڿ.-ٛڿI:Ђm,e?wVƿG fÿgnPi?^%?sn^;?i@?6D׿hB?䒿j:hhƿv/?ޢݿ8.SoXb?~?ZSU?xa??7T:7ʿ&F&'? sX ?L֜KT@sG?\sN+y ;}οXi'g+ƿkɿi$?PE?+}٣ZV?4Jh?s7%j?(h?;c?p˿;E?οBѿǬ`"Ҿ?0?v?VΦ>ǿyRL?fͿbl?}?ڈ<̩ ?6&?/R?/DͿx\Կӿ{d}52?ʭ gֿ ͺhYc?։9e?q/)?g[K?@k&R?@E%׿QBTy(6_?~H- %ƿSr(s7̿ɿ'h_˿=DF_?Khӿwz-+ϗ?nȬ? /7??DA';?̅rE/ƿ[?lk7Q?֡pq?6X5?sɠBN?G-r˞=?"\kj?Z&vJuW5$?߇Dflr׹dh?p*P?D?^MMМ?C fӿ7ӿ-2^ҿ󬼂ٿњ? r?r$ͼ?pW ?di+ι̿lʂ¿Ej㧿 5c?`Ut?"HܺjI^P[[?H\rWUs?ޙuGĿAm?ڵ)?`ҘH+(4/Tؿ\ex տ_(cFӿ/jyƿEM?p[RlxϿF9R?ЬX%?jxlҿjgωD??kֿӸ/ܿ)"HJC?qǿ}%.?.&q?~=:?ePBϰ?E1Eѿ8*E?D?AAɽ̿kx#JMeʿ-M:ك1С]d?hڣvտPFld_?B?V?iaո?1`?z]WTּ?7p=пo) 'ն?dhHGW%+̿seT?T>?o?3>?k)__(/_6鿖ױ,iοp5|`o?]A(?P"{ҿ YLX%( KX0P?Uo?X*?=2ޱ?sX#)ѿYfr ?ؘyҁEп,) ?9۵4ϿO`|}dtT?St}%O;?[{X󷿙ۨ̿Qg?Q ѿ@z? ij?m,>_ȿ ڈy?74)`?N1ֿ\LK?<u=[2_E;?R=H?9Af? ?%Wf:ʿѿW9qqֿ"F fV?M?,w?`?X0/ݲ؊oֿ2/,?]5?ĘB~%(a?C?տxÿ(b!x̓>?`?Ȝ?4|?BZWaQ?6;@fğ?̡-PvϿkڿ|\?@6*K9P?jѥմ?| D\co? K?(0H<῎d(XۿA9;O=aoK( s_A?j%4?aB?o+Hy-'=ҿ`*=t?U׿@hf B ?K<#b?\s|.?`?|Vʿ;\a6 ̿zO͠iպ - o?34iϿ g>/'c[m?,b17k?޵ٖ?-*1??n8?5 i^{??P ?e1s;e"? Xo> R޿Q+N?Fw&,aؿkx?*Ec̘?7?$m ?04?WKlc~??eس?|>{B8Aq̰?^,7ڿHJR?%Ak?/?Vw(?fANvCQzϿc ߣ?@73=ȿf:6/~B?ׇp[¿l$B?cO4Jo+п<>RпvdVuҿwz6:?į_?Y7)? I?c?jK?z{`nkI^?faC$G?*2*ٿ \.\UJ kA4!ӿNRN??X-?@0 f? W?/|O?֏fݿ>%?j_?ml[^տf>I7:Fӿx|to/̿n?eCY zU擖a?rZͿ2{z?ȠN[,?NJZֿ?t}?>6 ??^woֿH࿓Ŕٿk{5"ѿ ÿ0??H$`fѿ?|E? n?\,?__Y?Vuż?ӮAC|Gl"?$`>*ȗ?*˿F08?7ecZϿҟQD$?I ?ڢFPR?NGB݀?> ?$>q?8pſῺP1?AU)?Q㺿f ?? ?߽>w?xeտ5F6I0!C忨ʖr9AІ?( }C? wyr?خNI?az hXϬ^ݿKX2˥?P:y?K ÿSj)gֿk Z =^ٿpT˿b?rq).ѿ-.aM?Ļ!V?7^3ֿ5\S?ߙ"?P޿zo_8Z1xmӿ\p?>@ñ?17&8y\?n8u?2qƿU?RQǿ?&[?(Y|տvƿS񻟿¿Kq?^C4ο%aX>pEI?=9!4?T㕙?].?8pXSɬ&̿ j|ܾ?L2d׊? $_ ɿ#oؿ 2xUп!c^?_ m? ?L&ˍ??iP%ۗ Rq?tŲc?ع8hx̿e73Ϧܿ$e%ɍE?V 4T?b^?0gy.??0.?*u#c : u?h*0?*?̿M tߥ+,L¿sc^Ϣ?Z~?-]0-?lcy2S|?h L?rՒ?ha? 7T?;A㿅dqY?¤!?ݿ8ET5ڄXv^pؿm۠#E?x焞?!oq?jwK$?8tE6? I?<d^?`G-տ:bɎ?EuZ ʿLVi?-w?= {?'?~?^S.%Dh? M5?sϿ ^6-ӿM㿍^iBпa8̿uAg^?) ¿p? u?pϿe[?n6?xŲ$_տ y%濜~Vѐ":lؿ8;?tmֿHj~^F)I?cD%W?A)?Ocm?J"~y?mf/8rſf-ɿ%KWؿښ)?yR (ˢϿ ů?34l?b?`?vm?&4:?[q0 ?k#IZRoڿ==? 6GDIӳ儲c)?T?K?9I%rb!/̿a[ׯ,ruaؿ 6Ɗ<?GTI9?/;N5_?tm?&ȿ+h*;ɿҊK?FGݶ?\X? ?˞vm?:hܿ)R3%?\?dj#п)dSG߿Rp׿Bп$ ?Vhhۿ&YyȊKgl_?]s \?:eV?.cs?<䡿MT5>tǼª ٫?vwʿMg?`Wzv׿"l4ȿ#|ÿ؟?ˬI뼿hPܽy(₀?ߞ?&Yœ(?T)?x~?%!Z~aUZr<ſ@z;Jҿ3I?GIW忸S U_?C?>n:z?wU?4Kp"468?a^5}ܿW !пtA◲nÿXw^CڿTԸs6~^ǿ6O-ʰ?أ߿T?:Y?{™?^(v?{Bf?췪|O?j3dm?8dP "hֿ0H?͓`Z?FhY? ?C!6?ry?~KDi?ygSȸ(~?`.V/d6?o&׮Sӿ| nn7`ǿa?@& LF["_so[(PW>οobȿ?E[P!?ׯ?n'+F?>?.վ?Dh?v֚п"?Ny ѿ/j?TQȿ)@`?^/zϿ_xaoE?מ?0 ?Q+MԿ<^Xl-*-ֿYPWH=y?5T$@kտuk?߹hy?\\+ ؿŸC?MgͿ,ȝſeްHֿ#Jfw2׵"(+sҿ5  ?|-zg|K??="?˱ts?SUN???9L J?|Ʌ пjz[!?,4?#t?] ZG"Õf5¿ʼF)=]ǧIdO􄥃˿%YX?.N,?? s`??]UH?P r ) a4p?}vfPſ|?s&ĵL̿T_ 䒺&kŠV E'<޿fMe|Ͽѿa?0 U4v?? ?I-?q2zzh?DKv?(?2JI .3e­?JSOvyU˿U W&@ؕylq{kÈ˿u?35ȸ7?IԕŽ?pM{? I<̿ 69UտtMyI?F-݆~ӿ)R&ſٮF?ƱZ6#B?ZJ?;H$?^!?TF,Z?p??` |#?.Q2u¿?y90]V ?䱙? ͘m‚p?7x?.4\?bႯil1In?jy LY_ؿ=?1at>B) .W?#R麼^R5?Y簿K<~&zaǿB]ΟkJ?'YlZܿ~y?tZ? ,k̀?;6?n1修cpɿUV?9JEݿDs?|7xo?21ؿ ~~?N ѿz|3ֿ!i5߿:-݄X?m?υ=d?@w&M ?H?d$r?l j#KCa< ?qQRlCtM?/?MR?tդTA?D*=?,=? ']e?Hjӳ? NտcP!.?ѳfQ"uGÿo<+¿qZ<(eG׿(5[%Җx ?=m5ѿz\?U?C ?P|?|?7w 8Ps;߿50SATۿCc 糿1J?3c޿ g?@ #?M*ƃR?qj?Dy͌?Lc?Ý6?6BFtԿ<(JPEQFܿ6S{RD_V?q0J8`c;?y)?<UFju{?3T?ZV{Q0>Q? >?ic2ٿxoyEs[Aeȿ51yտ&@g.?YٿF:#e¿ÿPBi {޿P?,c!ҖvpQڡ?Th0?xɭU?mT?^oO? h6ɿLWx¿yvge?hh޿WD"'?¼.?n6jm?l r?ph?hc*hk?3пB?)使J~U94'?=b|FH?g1%?B`+?ힿG?a0O ۥ?yCUʿxjJ7 W ۿMoƿT^c?wGoT ?3 ?u`|激|ȸ?;C?h-E-=9?p%LU˿q߆z-lֿpY? p?h!?V?Rx?x:sſy{@h?cۿ*hj0Ͽ x޿^~ݿfw¿,G?=Ai鿨SX.?8JGT?txp S?c?yF3/㿊CRQ{?Aht?<b?sXE?X+w?Ɠпo?BHf)ȿk#p?-5%ۿoŽAݫ޿~&qп-.v#Ʋ-̿poۮ?r\|R0ݨ?pZvTNJE$,? ?2ĿC0˿!E[?drB0w ӿlͿ'?ZyU2$_?78?vS?O+`y@#?{Fϛ?(ox?keN_b`d4; :'ſ҄M?d?.BvfT+o?(}lH?tY?V?&Bu?Nј?Ԕ%?ӒFF?BT?01Z?tCA^-^w?}eaz`ؿ`a?!IcjS п>ѢJ t,?H+Jf|?V)?T;?\mV?D ?UO ٻ?@jMԿ$!살"?˿2Pܒ c<̿zv{NV?=}}1u8BKڍxܿ+@ ӿW)9d?n.$ÿzhLϔ?hFֿ|+Ex ? $NF?/yM?Mvr`?|7@?FnSҿ{oÿm?'?|q?g? ?I,?f迻*1?1]CwI鿃]1VԿ@h?'n ;FD?I:w? 1?  ?IÞ??KTo?xbF?1=$U<?Z\3??m$?Q?`o&Y}$Kr?Bz6bSD?;_FalLf1ڿ75;࿝nPOu{vHfR^?jrthӿ((؎A?rȴ?1wRЖN2? u;$5YΚV1J? -]cѿ 6<?wsQĿ]p?MmW?Fwf?C|?gj?I?d2|?0F$꿏.ry?q5@鿾H[uο/Nk9? g_$η ?#-m;r?d_q?!S7ږ?aKM2;ǿmLs?(u{p)?#iU?\$?u牶Ŀ.?L ?ʳ09?S ?XD%?5kAԿrM`$ۿMyڿ.%!R!?/K3ֿҖn?,1xo?T@v&8Mq0?x_?j5b?5{ſW8^S? > ̚3ѿ') ӿ_T)1Us?\?'p?e!?f4?2H+?dg`㿏caK?W(?;>?|Q??#A\?f<&d&wnaѿrOV$OdQ񿈗οbt?"s2;?e*?ATٿn;U?YbS?Ex?>7˿3)F?;MQ6,*ſU2~iވ[տMwDɪ?v0ꑹ?<xvɸNOj?-0?/U? yת?D}n،?2zu?O߿-ӿ439.C|DbQ A㿰V,D>d~@aFt\"g?. ?R;i?贂(Կ듯! ?iʈaD**?)^?Ib+?gX׿1 ¿Yhۑ-ӿ"̟\޿X ?qދj#v3"ݿ/ ]<ٿ` ?+ô|J?'%?W)E?Z?=T)?xɮ?0 0[?2 Qв?5%ٿ _3?Y$ l?0w?D,?]'?< T?FE?(l)[翽3U?5Rz]1տƿdJT:}ܿԦ¿` A?3Xms࿡VK?Ҵ/?X4GB?exs?ˑ3?Y?ѱ˿{vv?/8 6mֿt+c?- ÿzN]?~RL5?D~?WHǿ96O!b?^Hܿt恿j QeW?ĩǿ7+ ӿ'laſMտN߿6n`e_?=?:?ND,W?Z܆9?-G~?#_Jp@?ѿSԳs?Ym~uq5?]eg?&*WWF)V,6?&:%zz.m?A!Yzw1dP\hߗѿ,7_wX|~Y2ǧJB}?l~A8?Sw|?DW?%@?Z<??00ֿ8dÿo^Pwcd#ѵK3ݿYT*?4}?T? B4? ?AGT?O?~mY{?>[U sڿPw m踦=M7H׿7:蘿J6!e?;ҿ멗s? *?nf`Q́s?&W?Ou?h/0?l"?nx??/a?`Hd޿G6ĸ?ri]7οK䩂a@ԟ| ?uIdֿMҨؿ-iR?i H޿dWC?m 9]?<5@?Kw?Iu?8eҿ{p仿E7n޿+t8 _!?MفJUٿ5?"?XֿT~+?JdF!0`?~ T?g ?3n]/?G2y@܍s俥Kovq]/$c̿pI?aT\? e:?D*cDX?տC?Wl{?*w a?D=B0\`? ݊Ͽ4n4 Q̿{5ٿ\?cH3F?7?O z$?ԹK?q&?A1 ?Lv{{UaܿLW_;Ƕ?\+_п0G'?RϺZT5?vT^Ϳ:2?*JgOg|?N<ѿ@q,?9Vi?a9T?)?z‘?L]`ο2dž)? e翁“f?L bD׿`w*ۿJЧTS90Qk  @?^X)ӿTHK?MVe?(hѿO常?7gR%񰿏|9$տ执pa(߿1?uoCB??Ov?P)|d ׿$5u#ȿ$/VWp)k ο 7 ?dCg3X?LgmUzδҿ6 Ӷ'퇇?>R;L?`?+P?Kr\j?ziw V?>i脋?@vpi$7?X?V1p Y |?B$?߼>Թ?vLk?K"z?㱺?b?]U߿,j?Yx?pi˺$׿N ؿ~?R[Pdӿ8LjJ}MîY%Lە9=ÿ}r?q!^޿5??TO?+?gs멱?Hi?(,?ڙ;ֿ{J}?d0~<ԫkֿ(ng[ryt㿤\7*jp?`߿SU?m?:4޿Evج?SO~?T(г?PX% j?h}.?I{ѿ귧'?b鿞EkhW?%#h 翘g?Z8ǿT B进-NѿsA.ڽ\]࿜&\@ӿpB. ?=SɿWr3R?²jfke\p?c5? )?ll?'¿\][2HpNпK4!ymD?n30|?X(ed?jĢ?F#?(҇?N̿H]?k飔? ߾?p˿ ]?Byj⇲&?;db Yտ>oI1O𵚸L}пbmEO_Eԡ?7~@^п [?$?/s?[H*?4ƿ)пyF+J뿬=!ts9ظ|P|?a[!Oٿ-/@˃L?aT?o#?(xȿ1YʿtI%ÿ*F)Hٿ '7bK?-l~?4@?y$$?1Y8ο9Nr:K?>]}5ȺZȿO4ܿnus:t;JпNP]c?340J)b8'?HRI$ ?4bo h/2z?/*?yxQ?,2ZC??\Idd?xU[쑌?ZT?"c{?W^?vڮ? W?LcVf?`ڿ~S9~h?/243Xӿ;8CU~̰Cڿw['G|>5?B°2ǿ-FL?R?<:_ܿb?pfI!x`ݿQ῁Cɱz}Yֿ9 ĿH??`k'rb&y?joAض?>`HMt?9?,?խ J:{?rƚGֿRx8c3?W脫`$T?@v?T?MU?mk"dE%bſ*?q՚` ®wZ5{?/m?O9S~I?9gJ?b{񿌅#X+?V]?ec?9u#S?s#Z?v&8C̶ܿ?7k!y濑Nܵ?P$Ap1ѿв 뼿ԘD ᮿ|_?Io?- w?,?ؤ;?j=&-q%?5P$"گ Q? DJ׿\W*ş?YY2TH?bZ`GHpU[:??ѼZdY|Hҿ|>@uM¿\?IdۿrGx GbuIۿ΃8ٿYVEͿ_ lѿ?4fJSG꿾Kxc?q? me?#2/?Ye?ļ?zmtYQ?tZ߿']w)?gc/ڿkQy UݿK[wYI˿3*>q}bn?TNU[i'?@1]a?&JO? -?UvUVI?V ?Lwۑ?F]=.;dfsg?rc.G˿CZ޿T] /A.1pnI? =.ʁ?٣2pÿH>R/ӏ=m?yѣ?]ND׿>^%4L*1AMοRb^[bbg_?\T@ҿG"&ӿdY߻޿rтַy юة?lck?b Lct] @ڷ1}%TWdg.V?U e8?ݠM??xNo?HT 6^zWgtܿcjտاW?g )?`CpD? V)ֿ2 ?BG7?ث񲿿 Q#NտYiѿ[΀ܿ*?`e?l)r ?(?̞|?+ˆ?7NHzpl©;~7JE䭿rZVO ƿEm)f?D,T῏-0Qvdy-<(s pο]*Io?.lЫǿYLcɻTӾ⿬9H?1Q?ԌV?͇ߘ?ޞv]9?)la?3<sy?}_{:⿨ҹyY?!Rjz ayο61sweFW ֽ,Qӿt,?bjw$?Zտh?CX?7ֿӑ}?SI4?*T-KpI?s( yL*%ӿX4DZĩz̿Rfؿz{oKګ |kH?PHп&%S?v*/=?UMV^?wV}?eE?^ [?V֪MؿN?m-ٿX=ZZ+5P??&jҿs)Ʃ?Ֆ?e?;{li?>Fq?|%?)пj? .忌[t Ϳ1Kҿe˿`r}'n%!?s/.ѿgOf? ?ѨƄ<Y`ɿQ ԍ?VG=8OͫӿAݿ}?L(iqmo?n`@տi?H2L?sA.hx]Y!?Nr(?6Z7?{~iv?8Nû?j 9;?J?S|8MN8?ly3>@ٿԇEwy=?)f?']hb?h:?>Gu?e?5CI?+ ߿d_?07?:>|Ͽp/ҿB'-|jJy hw̿6Jt?΢wc6ߛi?Sa-?ȩۘ?4=?e΄??a?Ȓb?T ???f?bgG\_?[?ڻ-fai׿87!o<< 6࿅Ei.i?k츋?!{ E?Lt~+g?PyIyۿa(n?A. ׿r&\F#L%cEijN? ;1׿ӌ*?>ki?#+Ƅ俁b?t2TRǿ%+ӿ/쿋=itD 2SKoi@? ]x6ѿ+b?,j]?a?^VO*?o?Ɯh?RAs?7lۿF?Ο?E_ޱ?zE2%0aq?Y|9Jˍ~?{0KHigֿ@&iZ١Q#`K:`cܿȓL¿Fp V?X;fk?~ p?- ?S]t?8FSW ?TϹ`տq@N?9xſ 8N쐄IȿRiW=wпnϰ?Jo˂%?B??a D?bal?ҹ{?Oۿ$l?8:迄 bb׿ͬHѿ\J|&?m2ϕ?'$?ofj2k?u??= & ?9%?q?l7#d8 8&h=51?'bH&aXӿ kI?wwC9ܪj:Ӷ+oEٿv(?BA!?7@s?D@W?D ?vv3J֞?/p 9[!?]Pi~鿠3ο!,uYR(뿳E{PJyS?<:o 4?Ohw!?fu$?)x׿[5U'?TZt;?qkض?L)?d%?}B u;v??*~J*鸿=>=hݿ:L%VT2Q5ĿlPci?D#k-z ?>5iφ\e@=m*ҿbƪ[/?eXÿB"?ӿa?@I(? 9?LB6? RM?zThӟ,0K5=JɿP\xؿ+;3΢0+?R?1 B?~?35-|Ob?zZO) ڊ̿k[VcSUl翬OƷó&?C&(tٿ) ?Ǎֲ?`4]?Կ C?b*bd?s%?fsĿ|G!?7ֈT 1􁿈]Z?k|?f cֿcB6L;";пnڿþT?(?ܔֺ{? Ez?y;1?}_!?G0ۿ-?.sS`tyjf?zD=?ҷ$M?*z ʿo?XٿZL+YBĿԢQ|?]>M?,K?[.a?@?;ѿ˚״?^< ۿXψ|iۿ.W˿%"𿖮DHӿZ)ÿH>А޿^2rԿ$?[G4JWq#?6?Cw?41ǻ?w?xgz!+8ʱ?ahC?+6?{ӿ?q?YD?K)R?wR R?;%{!׿4^g3v?f:6q^??Bm.DZ,?Y&YοCĿ\YQo|\k߿gm'ӿG ?2bī؈?j?ԒS?v_s?&9?<?q?PO8@};ֆ?f3cU?K2Ƥ]?*|kwhۿܦOm˯ׂhA]x޲<Ź׿USzL?n#e0?c?Bj?ę6?Dzп*j@ܿ`ʶ!OQ6WF-nſ np?aTg俗F?i?bj$?IU?O4dtR?[_?-G?iQ?2n̦?@||㽾l@a[?jʸvڿ@21?ɝB?Z5?hѿ!fj⺿6|mӯlbmտ~꿘jN9:ٿ4Xcp&o4?6Ir˿)V~&?d+?+Aᅤ_j%?$A?R?7!?X?w8 ܿNȂ7]{z$d3/qӿtc)IO΂gԿ$VQ?W h?<> ?bh$?ь7??1Y?ƙV~?MU={?^~#lhSr\𵿬?`Կ|%UѿpRQ?g??>.} ?< %FhJ?|"rg,r>?R>ZO*+FؿE,? "s9B;1bW ʿvſd>ݪ?4jп"R['?e"}2??YG?yZ?RD#e?jY0Ӳ?#odK ?8пT '?hO?`8h:?Dэ?H1P?4-e`R^?(+gA=dxL_Ϳ7Ӂ\(+fXlտs?H{?? auZ-t?Ⱥg?w (|9? 7p?`4BJ ?3 N|jM?ߎu92V=vƿT] ɱ?+QC GS応dxVտ-p`ҿ+VD1 A 6?'J?9?_*t?=o?UAYӳ?+E˻z?Q8!Gk=׿蘨!-=U/":pkQ?ԪѿcQ?9<X?pFnin?t|׿“ ˿[0f?kse4RcxԿ&ˀGfPiK׿g࿨L:&?4 Tq?>t?$E  ?}̺}?Q?NG H-&?`_ٿFz zE?`DĿk;>¿y|˴?GٿTw-Ϝx6Ù{ĀA? X2ؿ7"r %?x4?" E?}i?? %_?V:t?@"#2ٿN%? ͣV=Rӿ'`cNCw򿔿pv6u[ B1?8D#e>8M- ?a g~?lB춿T?,?lοHQ^6??gտ2??NQ!?sK?x# ?ɚ?vڿ.3},$.⿖T qѿ8vaB? ?Z7֤?VHvEd?_;?b"fy?n\$pˮb?HAs\x^9ۿd`{0N?]t#V}gI f? 1Rؐ?Cݿ >{?` x侑>ŭ?6:B?>??BJɿ >AѿB{Eտv^U̿5w?`)e鿍æx?G?~ Sf?&V`""?ދI?߇? 2XQH?}&};3F WcKځ?`ѿ9F_JVK?*ſ(p?5#?vׁׄE1Z}Nпj{?x^ݿRL@ d?ZlêԿXMؿ75KͿο4/{ (ѽ>(?TӿE@r?7?a7JG?ׯE?^͓?Eָ?,<$x?$fVZI.пϰKr?VӦ &𿉽SBݿ \$)쿛OEH?ubȽ?GvC@!k͜?-{?VVbo?a’(G;C_?ο6#Vw5mʿAVP?bv#$tX?8v?z_?P"y.ԿL @}Ϳ-Y^hWx$ˡο.#B?9(ƃ?~r(?c!?:fg?-Tv?Lr? KnȾ?cO?pߞDi?Ii?P XG ? Dxg纓ʿx'מaR"Cgp俀7W̿:u$崿3]迋]?jDjl&?/eڿzzI?ȮT?3NK?)D?ةE?xx?Q5b?[?翕 iXЮ7zڿ{~$࿰~~⿁C?н#hC?|O 8Z1?/h?H73?My޿ ="?s3}濪n)Ͽ`RX㿿+럮?4;󿅻^hҿ;V ?.3?%Zxk?^5?@?b ?e̎a?=N1?֧L?=y'?0-wZ? ".V쿱 S? Eu 'ؿ5*ٿw= @Yܗ8d>ο0?dp|$ɿҥt5п|HS ?x4а%pҏh/0?`(O]?PJKۿ*'?[ؿy8gѿDptĿ( 翌nC?h~?biRH?ɨ@y?Lv:B?# W?0'ѱTa??[۪F?yӿZG$? O2!e?B#T?Z3H$?!I ?(JC?"\?2|Y7 X?\Pxx{ؿ/2FᅪN0ĒVwֿdv,[?nfZ-yN{?AW"1?2~?QSz+?uQ? Q?K# (?=qȁ9evۿ~\ȿSYrc)OWP}4tX׿.MNE?2X?$ɎS1,?W?# ?2,zr?V_?@v J3e?(-%?C?p忸u2?JϏO*|`a?[XjBeY8^?9? (?~?D,zd٣QIο77c/(2ǦUȿI p?r{2?a5Q Y?HGǕ?#D,E.Lo޿gYDؿ?@$?0bj ?n&:?0-k?fL?mdtg>?D;迀Ǡ?ƿh?AaNO>EhNoB?Q>}ȿ=)a?@zgH ~Ze?xC¿$JyʰPeBr,3˿]C׿yHǿ(J¿Vfc=R0=?p leVA?A㴿Es)+?2?5ه.n ^$?qz+aۢԿLϿubͿTF'?k'?W2C*?6Wj?C@ۿcY?0*?l=Ȥkش?XP! bݿ@t{¿6i(c?RP?<}dv?T"?,0?{ ?Fvh&'?<:p<';gV9?r|0ҿ3ZaP c 3տ? ο|7Ef6׿c!οsOYW-&= P)?n$yLG?8M?*ֱ?kkB?(ž?lEx}ڿ$u?5T?w\?w͉!?7~?cjҿd+j/3I4qɹf u翍{D9ǿ]Z?=Mӻ%ڿI ]v ӿBov俢1)v?pK-ضUm?z_'l˿XR?9e?~˱Ϳ9 ?+|E?}󃃋?`>@VN~?3Bc y|K俌-3=Ŀf:῰U?^??%!㍦?ޖs*»Uc+? f ?Ci?-L?7?ߏ1?fFP?8ـF3:'?u?~~N8?{?&Jp?;?D?NX6ڿ~n?Ui8¿SvFɩFп/O5 %-Ӏf#%#㳺?PoHgTE㸿kX)S՗VoX8ؿ Ȕ??Z;?dF8?Or7?e@?x0?n!;c?AJی(̿MK?FA^{a;Ͽ$?uſQQǿ)?/wd8u-2ӿt ?|YGy?G^/B?eÁ?XPy?~w?LPV4w?߿ru2Fܿk?0zڿ51t4IſUR?cp忌.?i]l?[?%+?@&@ܼ?=?$/KRR"sQ?=v03˪?[4/?l1?[, {wfΰd?M-϶ؿE*qSURѿ ??,OJ鿒xĢ?0((MZ?煃?מTKR?<*`Ͽ^3ܿuտSqNпr!?IF:~??+C?ذW?vѿ6?2T?LsΌl? wlݿ[;\C(諼|8ٿߍBο3?k]?1hRK?9?נ?܃V俒y?6t¿(?NJ?c`*H^?H}F.da+?,rCX)}{i?!kLX꼿6V?RK?տo \ ԿYoXޛs:!Ϳȷ_ȿe]c ?ED2˕7?<Ѕ?rj`?D?0 kIz$ʿFH?ҦsɿŊ-PAb?օ|f?w!b0?\A j,_\E$ݿAiϬݿZϐſ5n?*0gܿQZ+?K=v?N,?AXG??U?`fu}W@`ԟ'տhW 2d 'y?ޏGuƕys?Bm?p+ 1?g?>JBV?V;..? J m?3pP?>Qq?㺐6Q?T:Q_'ua?!S˿#GHEOh!v~ÿ989?şڹ?A??JRhA?:W?(+ |yv? )9f⿘?qҿ Ųvvj싟i?gǸ*:L#u,8޿UŶA FY_?T'4[?tCn?^ι.zpyGP?4oͿxHw?{[z ?dվQ?ǎނ?A.F?r22F2?t홿:ǿ$A}~2XRJZҿQLϿ۩ػs</?r?LU Q?ł:\?NJ?\"UԵ?gVD1P;?Mxz⿄1*UɿrM?n g11?þ?3?Cl? ?Q]?};{rпvag?`wsѿH6@?M?ƒ椧?RX˿s}? ˿)&8qWпPKJHiP@P@ cgau2_psi.npyNUMPYF{'descr': 'U3=!` *[*=s&qQ #{ps\o!4fj7  |ʹȽG1Dh(ѽ^1b`ֽ $)KL`GݽMŝh⽵F 92潕Lq%X뽉Vzf!޽qFV#ԇh4$^;%s";&(~WK;E(Ek++8)N#g-fw3zC6'|0 x" 6K7190 h5t-3OSY4e5<\Z63|'k 8Su͕s((;:" $in=)y |P@>On"]{mAl,B%sbgwB (D >+Jx݁hF d}‘.YH]Ћ315atJNV3(L|5W)1OWX8ZHPo`D;_]Rt>e{S B AwmOU3!_t Ct)RmiW,E>E6ed^YhMGgxIz[|ll^Je]5|WM@R`ݵOPa!naARZ$)bT<|Sdd$PVݥD f?Xb-8g6Vf[)\i#6AT^- |k@o`O)nb؉2pV}dX#yq!f*fZrghRRUQt>k8ufxYn{w_!lpLGشhygrB6t[{u-`@t!p}a.Fv2iRW|xtCh4zPOyx5p}ϕ(N76aں#0CɁ$K|}[ /n^bN_ C1&?A ^jl^ 2̣7*Xj*O 8ӥX= c7hv`~ԩ8?% oڙg 0-'PPi$(|s[ZBʫO#ɂ 7ooZc 1ًw} Sp֦t[n'SmԳ-ĿĵzJLE3Ȣ:&NTO¾[ރ3ӆt%ľx0RbܸW4ž]։D@Ǿ6aRryɾIE79]5˾H~޾;Ca47о&!w]r,TѾ¾ߎEҾR>8B¾9I4,Ծ þpվk?ľFt׾@:ž4/QFپVNǾ2:۾:2Ⱦ3MRݾ̕Ϭ8ɾڨ߾gd=&^ʾpྎNs˾"J!F⾝,$4̾+Q /N;6"d2Ͼ7`VόV9о6vlg%Aо{A6^|ѾqJ%# Ҿ޺5߿ҾojD5'e_ӾvAb,ӾƘNʤTbs Ծ$4\BS V'վN jmվ}Q,m؄8־H~kW־N/ٙN#\!׾g=ۼ'2ł׾] լıh׾Vt #ΥGؾڢ949ؾNzӕ|1y I$>)_.0Jq5>׬k/>AM Y>m4O!!>7,.>_"{A>C}#ǚ> |$a/aX>.#%ÂQL2>[<'}O>cAW(&[>!R0*Iz>+{fJ?p4;-5?A.U:?AE\0'B5?pM1sl ?J2WE ?ASU35h?P_sl40mTp?Ocё5Rt?َ6rN#?Ȭ8gF?{R[9֎?VϯN: P?`o{?2v$ǩL@x?y:2t-Psr; ?upq {ԧ?kgǰVo26?0mMkS(~?.SjfoZ?z8>b颞;?c|yecZ'!?: OA ?簯/Dzx?m\@?@?3DU?7?YCa?׺"ʉq?p"Q6Ji? ?wՙp?rt?t?Yk=?%Gu 9y?]?np'O}?J+?Xk?Q?E(j?K?"?3Ƭ?v1T?i!_&?c%?vb??&<?(Σ3J&?~jH? '3?4{?u+=?f5{1?DA?j@?˥OA?Ɯq?t?;?|MIc?e;:t[1?KZ"?ŀm!?}%-$?0 ?%-q?XƇ?zBi??$KB.??yQ?o {?:a??k<}MH? $܂?Zg?MJ?c?H4 ?P{?4m?:a8??xu?|95?ޡχ:?p7䏙?OI#?l᱾?k=?X]_?t?šF?ѓK?f9?+f"?59CHK?@??o ?L4b?OVl??d,0?Yܛ?w?1M1?gDʜ?"3P?F2;?SUk?E;ɷ?_q?ؐ@G?X5&P?0?'??? ?''O`? =;?$|;?ք?@`K? (?c{:ѧ?=<?5?ѭ N?П?> ?u⃲?-*{?RaEg?1?mjy?s)k )?sҠeV?tӇp^F?|\X9n?BfoIf?nr)p?Ծww95?Uz }o?n1뱿bB\?S8<H?ImVJ\?I F ?HC9TռJcX ?6^詿E?΋RCBw? 3#¿f?g.Ŀ?sYſ0bQ?f'ǿ>2H;S?ިȿԚ %?1Q,ʿ'?4 Ͳ˿ؐr?B:ͿbnU?Ҩ% οs?L`4'пMk@? ήп[O?m9>ѿ.ЌR?olwҿy(~?< <ӿwmǚ ?V2Կ 0?nz? 3ܿ*(?t4̱ܿ1BK?gĒXݿk? HrݿCfd?R޿cx#?C 4߿U]R?VV߿qt?E,6?NeW[r .n+?J!n)֦+?W࿂ڷ?+O2#)4@?]t lῑy8oS?"ˢuu_?HmB2DZ?IV⿤x`q}2(2 [⿵GxG;qAE~vע{qg⿨<9Y⿭y䆼2"⿯OT㿔 ÿ塵e㿺`?ſ4Dȿ`pŽ\a8ʿ,㿣<9̿FJeܤvϿ \Gп!}y$8ҿ1n =ʓvӿ/m?uԿ U8 uտ⿑,׿k⿱qMfؿ/\⿣4ٿz\C0+Fڿ?efX͆,ܿ.Li37ݿi oc޿3IRFgqq߿1*).sX࿲ "Nʻ}MBZv IF.࿅⿪"/߿$jd9o߿X5@ @K޿>Yk5ݿt ܿKz h7uۿke@<5ۿO}*;ڿxpKYk5?X5@ @K?$jd9o?⿪"/?MBZv IF.?Nʻ}?sX࿲ "?Fgqq߿1*).?oc޿3IR?i37ݿi ?fX͆,ܿ.L?+Fڿ?e?4ٿz\C0?qMfؿ/\?,׿k?U8 uտ?m?uԿ ?ʓvӿ/?y$8ҿ1n =?Gп!}?eܤvϿ \?<9̿FJ?Ž\a8ʿ,?4Dȿ`p?`?ſ? ÿ塵e?OT?y䆼2"?<9Y?{qg?~vע?GxG;qAE?(2 [?x`q}2?2DZ?IV?uu_?HmB?y8oS?"ˢ?#)4@?]t l?ڷ?+O2?֦+?W? .n+?J!n)?6?NeW[r?qt?E,?U]R?VV?cx#?C 4?Cfd?R?k? Hr?1BK?gĒX?*(?t4̱?$!>z? 3?/?)Y?/L/?S鳧?}N?Mk@? ή?s?L`4'?bnU?Ҩ% ?ؐr?B:?'?4 Ͳ?Ԛ %?1Q,?>2H;S?ި?0bQ?f'??sY?f?g.?Bw? 3#?E?΋RC?JcX ?6^詿?F ?HC9Tռ?\?I ?H?ImVJ?bB\?S8<?z }o?n1?w95?U?r)p?Ծw?If?n?9n?Bfo?p^F?|\X?V?tӇ?s)k )?sҠe?1?mjy-*{?RaEg> ?u⃲ѭ N?П=<?5죿 (?c{:ѧք?@`K =;?$|;? ?''O`'?X5&P?0_q?ؐ@GSUk?3;ɷ"3P?F2;8M1?RDʜYܛ?wOVl??V,0o ?L4b@?+f"?59CHKѓK?f9X]_?t?šFq᱾?e=t7䏙?II#¿95?ڡχ:¿?xu¿4m?:a8ÿM4 ?M{ÿMJ?cÿ $܂?VgĿEa??h<}MHĿyQ?l {Ŀ0KB.?ĿzBi?Ŀ%-q?WƇĿ%-$?0 ſKZ"?ŀm!ſ|MIc?e;:t[1ſq?t?;ſj@?˥OAſ\5{1?DAſ4{?u+=ſ~jH? '3ſ7&<?'Σ3J&ſje?Y>ſʘVNǸ?|Ŀ~"K?%ĿL'XPg?#ĿS4^?`[pĿjp"?EJr~Ŀ:4t ?-p.VĿ[Ӣӽ? mo*ĿC2$?ÿ{?֋/ÿ8o sX?Ǖÿgb&?c%ÿ?SLP¿?o ͬ¿ ai?RjK\m¿* ?93!,¿;?Zc@&&2?Ϳp#ܤlZOK?_a}/k?,uV#?&°Lo}?W6҆mN?\<ɟX?S俿{٨?m\-PM;!g?DރoO?0l[z?ՑOZ?!w鼿"?KwZO38?CDvJ(nr?'l _q5?4?6˔繿(S5?=N ?"Lʶ. ?ӋC֌c(HN?A09%Ɍ.ȑ?_k zak(ҏ?m`: f?h͵v1T?i!_<"?3ƬE(j?KXk?Qnp'O}?J+%Gu 9y?]t?Yk=wՙp?rtp"Q6Ji? 񰿠YCa?׺"ʉq3DU?7毿m\@?@簯/Dzx: OA c|yecZ'!z8>b颞;.SjfoZ0mMkS(~kgǰVo26𦨿upq {ԧ2e>sr; y:2t-P<-2>v$ǩL@xqhfPw6!zԦӴxZo\ۥy(Gsߌz=lu{lu衿M/_M|-zY@7C/V|{-A|}-1QC)f}9#IĞQ~6P}dA~1lsA"~S7Wd~5^~EpSPWc:DI7 Lsh=N2'TK )0~P0?`2B~;t}AEc~14znmcj=~Vҍ\ΒM }]l{2@}F`;hC}9,|I'x|wڈdx|F|%g |u' Ό(L {Mڄ!9q{Ƅ RFN8z#T"/KB_ z`#e8ly1ӆ\Yy u…۶hRxJ.xl6GexwL Ђ1vNS聿v^v3 D7%uXm4a'BukŰ~ tIH}]2M&t{Issjz+GO sKyEÂr\)u w̓nq/ÏvPɻpqPcua5p}5IDtPepB432s#8uo;,rPÂn82q[mMDph(l?tsns1:ki mHjz:wkDid ^=imi6.Bpzho2h@g JUVge$fhKR^dde'e~䖃Tcvhed}3b=dOD ao VcVZV%`Hb5MK^|a1Cw\̖kE/aF'EZv<2߁`~u YC4_Wul^a3V_f}0]ߦ0oTA|.[ _SwFrZcvQF"R4G tYڈP߮XGlOFݾWf,ˢM:VT uKHJ4U坆;cInD`QTǚJH&S RfpFP+TRBbDj?[?R XqCw/5Q&MB0lP7,.!AM &Zپ׬9k/ӾA_.F1Jq5ʾ|1b I$`ӵ̹T\c>X$@3R|>L-Ic>֐}ךx/N >A $c3>FC 3Y>!;3}>.ׇ ]/4>vҩE يL>p\ owƼ>^-=N|N.K>BVpCn1>=(,Hj>-BAo$=>Nz.ڢ949>Vt #ΥG>z ٬ıh>g=ۼ'2ł>/ٙN/\!>H~pW>}Z,m؄8>l jm>C4\BS V'>ƘNʤjbs >vAb,>ojD5;e_>޺5߿>qJ%. >9{A6r|>\vlg%A>c`iόV9>6"e2>QQ ./N>FJ!F⾾,$4>pྫྷNs>Bڨ߾d=&^>aMRݾ ͕Ϭ8>f:۾\2>f/QFپWN> Ft׾\:>֮pվ*k?>`I4,Ծ >EҾe>8B>]r,TѾ>a47о)&!>Ɏ;1C>a9]5˾H~޾>RryɾIE>oǾ՝6>W4ž։D>\ӆt%ľ0Rbܸ>LNTO¾[ރ>LE3Ȣ:>&-ĿĵzJ>8'SmԳ>$nr>| Spt>5 1lًw>k 7ooZ>O#ɂ>'|s[ZBʫ> ')Pi$>rg 0> doڙ>~ԩ8?%>c7Gv`>@ɹ{>ӥ˪X= >=p I">xYӷSi'Ҡ>+y栾YeɀE>ޢ\5k>m.`rƴ>gW6ȵ>Jq8F旾7b;>c^מ䕾4s>AE ƙ/>g2=ɐT~>Wj*O >2̣7*> A ^j<^ >3N_C1&>i[ n^>z0CɁK|}>N76^aں#>6x5p}mϕ>4zOO>RW|xbtC>/.Fve2>}u-`@t!p}>]gr6t[{>:!lp#Gشhy>fxYnQw>W>ku>{ghaRRUQt>D!ffZr>V}d9#yq>b2p>q@o`)n>#6AT^- |k>6Vf[)\i>?Xb-8g>$PVݥD f>T<|Sdd>ARZ$)b>ݵOPa!na>5|WM@R`>|ll^Je]>hMGgxIz[>,E>E6ed^Y>3!_t Ct)RmiW> B AwmOU>t>e{S>o`D;_]R>WX8ZHP>|5W)1O>NV3(L>]Ћ315atJ> d}‘.YH> >+Jx݁hF> (D>l,B%sbgwB>>On"]{mA>)y |P@>:" $in=>Su͕s((;>3|'k 8>e5<\Z6>OSY4>90 h5t-3> x" 6K71>fw3zC6'|0>8)N#g->Ek++>(~WK;E(>^;%s";&>ԇh4$>޽qFV#>%X뽉Vzf!> 92潕Lq>ŝh⽵F>`GݽM>b`ֽ $)KL>h(ѽ^1> |ʹȽG1D>j7 >o!4f>#{ps\>*[*=s&qQ >>U3=!` >E nH=RX>V @^ر=/گF>Ej^=B`>ґ \=z 褥>7r=x>]=xpN<==F?Է=wOdĚ=PKJH*>>1_cgau5_1001_coefs.npyNUMPYF{'descr': 'S{n?Ӗrך?E2w!&!g҇0?G?_?4IT\rILU@o,׿jXU?X +?~]zQ%ٿVyn n'v$S,?,?(m俵>ٿ$-Lu@IbhR?:9†?p<]mH~¿"83¸Y5ͿX?i<?ڵ(۰NJ⿟ ߸+:S?Аnj?p:$n޿'hL?Krl?zI?*:?vPcޱ$GKy? ƿ^vl㿎?ieM\q?^?'Q?|Pa@ƿ TN濬:/Q?[ů?<I}?:d濴 }&mPfEQ?+?: B?7!̿)\ ?/?63E?zChg0߿PMĵH?8E 5}pֿ-;d5`;܁:\J?)@p*WOJPA ?L&?h<Ѩ?DxaĿ.;/?qJe?pz?U0)3Nh$ ^WoC"ܿ2?ѯ"?$e౿]@[{H /?՚ݾ~?eX1[_˿yȢZŮ? Od"?ASgsK?Nw0hѕo`r);緿nLFΗ?3PQ?X\?IJS{?j!-x;Lg?$slXd/bW[?=s ?>w?4l:?QF%[5A82m?o>?dfڊ0X㿡^%E۠p?F(?7'̰?wh…¿ B张 ڊ&?%# ? կ?pȀ@ǻ?UP^*C㿪 ?(D?9qG?.grX~߿Jt:Ṵ\? \?Xc§eP^\qU95[Aq6?rN`?K52!ӿl?X?7(׫فF޿#lXeqw~?< 8?19޿L?{?+ω$K\?ê(4?uܻk'MZ,dOJſLq?JXN?mՇ:?vn}?wh¼*թDf?ml酧ğCEZV(zٿb i?$l_{l?\'"?9te>nYDQ?F}1Onl!οT ?{F2$?i Ų?zFLL?d4 h.A3@. .iB?CV??THˠ<X%%UnVP,*r?u_蕿`~WQHl|? @cYԿEe?Z?Ϣ]BaEmZsT3?f_tzxJ>xڶ?SdL?4?Aڊ?j{wֿT}-Lb[!?GG?u &~??z~ͣkɿ-пX1ĿߜpxH0?S?*:J@@{j")nXgsĿR$8?e l?t?ԐmyÿW܊چ2tQ\Z?{倽mɿL`ۥ?5R-b]a?ȊDտc`?bm?aXİ,Сֿ=?<6?? Ko?qaH<ֿ51qiX?,?P!?jxpۿ!?̺?O?p>Bj휿N)'6z4"=n+fx?j?kuZ25⿐AL{c?(AP?-o?j ZOm ԺD*:#G*֞?Y"5>d'ҿ TA,??+?*֛β?Nep?58,4#Ϳ!#?aP?>Wr?Yji6lʿ^v楆B"Q?UswG?6ÿ#z|?Dd8?5ꮿ{2{?7{kǯ?R WzIFCĿa?(|(?f:dh~-F/dJb??滿XFcxdʹv?x2G?X58$(LAN\?E٢:?SÑd?Q5tBK]??27G?0cc_Zſo|3?fLV?鞣xl||0؆,ۖ?emd?l ?3oſWx!J? KhſH( su5$7QO?Dκ?vd妽??c?$P]>EG8o?>Ar?lO/?x)?ri)CԿ*M??*r.$Rۿ}>?~v3?M ?:zWh?/G䤿ÿ Cx6A'GRǿ%*6?kެ?ctOA@ZPĿsF:Xer?iESu3?tj#u$nZ̿_H(ɿlcpl?t˜?@a?i'տMsS??Fӆyr?>q"T?kɿ"[)3}?s5mLODRO3޿T? ?3DqXmI1ߞ|jަ}"?:nE?@@o?=6mĿn0 e`?h45}?uOu?B$I:濓¿~]?88+FUp?Rjfb4?N$0 ?3 |Өhos.?NW/`?h*")տ)H|pmjCQ e?_fh?0uӿ8 ɿRaJƿ2?:ѱ?2AA"&Z ^п` x9?yM᠞ݯG#?_sQH?/n)x.aſzU,?͔?VE3yC["xlx4sXOa?APw?E>3ȤY?. I?He*?~#nP^'*?405,'1]PjؿXl?4]%?^n3翅?bHhi8#]ݿx:Έvxw;?hX9l?UqK,?('_6vHYϵ_]/?]{"/5p?d?C=}Z?&J@|3inl?.8"?J5EKd9Z-?6"?V̰ rHē a"?8[?Ȯ?G[?Q:? ̭ 7}*t?i0|?s?ݧ ߿=NMſڬіп s cMA^Q=ȿ ? D?(J,+DS1׿T?-3?,9?TpMr Ёuyg&?Ɗػ߿LȞhe+ݝ?iTд?'? ?"^?^[ο 2nf?9U?ߤ!#, ĿVziju0Zaeֿaf?P(z5?l-?a 䱱ɟ\]?|S奲HI濈|ҤcEP?FWr?O#J=ڿ["?ޡ݀=?j: ?Y"IwۿtI-?= 1"?vYk˖ῲ-8oͿjqخGdH?H'=?B?K}ſ.P'؊FQ{o? ~[t? ?٨UxVۿ?"JP;^?&?zb _]ۿ1% tP?hFH5*&⿐)_-_?ba?~?bE }Ӆq(I?j-k=Fl&K?6.aI?!XD ?+n=z 9/E>~ֿ/?V]?U ^@V ;$g??zP?Vw,jf"ռf˯}?p@qܝ?vOBؿ` *^?<곟?2?xZuG⸿kzjѿImgͦ?Ld?H͝?Fcw?If5x )?OG?w$ٽ?MaJ(v 濫ޱYU?Ԕ?U~y46٠<?5/?oC:ܿ6\ˍf|3w?JQ&ƑNKڲ?Wě?dƫb_?D`?4UĿԿ@)ܼpz96? ?n)[}׿#?D3L ?ª?QĿhD'?FH6ο@X¦?(X?/ ܪ;4-?N]??G1q&[tҿXC2n$֦?7d`?jm?b߿}[+3;? ~?;2ԼSS6IД @b?͙$񦿘EGn)?BL@?]ƪ?mr*yH%3D/퀛? GR?NPW?1يU?)I?USύٿkzզ?Lk*Jo?(?hW38uk?]C=w.6пSU6~p4T^f?،NHE?)(QԿ1u?L?p~;Њ=lԿw¿F\˿.~Z?-z?kYؓr?s?b>?@N"俦X ?\7?nC𚺚qwT)2v ? ?PGHLr?:0c)}?(w WݿW?GJ??!M?(33[}?m7?ݨfwӭ8͠Ǽ#Į?L?|}+2DӰ?JRs?-ogP?Λ2?gB#jſZp@ fN]?pI?0Ѷ?{?&@ĿDG{/Dǿ2Gգ*)#M?O?cƿh!hgWÅ"dz?3{}?M_mؿ.y{Ŀ.4˿y@G?S??h˛iIGoq?*!? ?AZ]ҿ@QيBɿRf?@wΒ? O?F?jO˿z퟿`?+˥qeKAӿG?-77m?VDʡp+ے|׿$G%U0>5?]^?D7f+?)G>+x%.?±?bUNmw⤜P?p5Fe?bJ~!*Ld.pU?(?y8?@1z 1]]ǿtW%YϿZyV?։Aێ?B^s#?h":ˬ?e,MԿx/n??I!&?Ѷ׹?Bx?J̑?0}J2cHn\񴿗]K:?@SYYÅٕ?OԼb@?-Y?ڥ?-#6BnNޭR̴?)K?օ ky${INNo(m#, ſN+?Į%1D?f/5š2e?@s?m=?x[&?pp@οڨ?-&<2[?Dyy?5z?>fEׯֿ?@Մt`Tƿh3O?6% ?$al?PEſw|<~r?}(fTT Y?˿(Z?vQo?'gx"PĿtNᅰ(~ӄE?;&Qz!?t?n?5=N?[L*˺,E6ǿ-duЭ=[ݰo5?<-?*?"bQſ/~?(U.X?w?/Yn?}VzJVۿrOU?tJ?8i4<5MάD?Ti?=%z̿1oXqrt)?" ? Up$џsӿUwS-?fY1Ҧ?P"_ =dU|ׯD?MDB?7a¿t$`lAv? n?| ?Iʥп(9QX3J%б?Uާ*Q⿲bַ? ?h ?7?; ؿДgIƿdɤ@?["y_ҿVwh?lCsu? ̪?]BF?wV(nAԿU< ,+`S?t }?"ǁ?;q?4zȿ/E}?1υ#?8I2?|ݼݿJמ!˿ ʿJ ?3/?bhR? ?Ʀ5ݕKo\[߿ndI??8Lӵ? T[ؿÿϷke13п)fy(??v!F?\9ƿp Mв+0s?wFd| aۿZAt?ԇ% ?vzjJܮ6شt^&Q)#X?m6?ԝGLT<#1l?K.S?dʺzd/֘W߫?Sd6?PJǵ?F,u係#57\?WӧԹ?Fx ?p0ruJɨӿNܸ0b^?n>k?䟂˿l^N?PK?fe@Dp*9 8]?9?v=ѿ3r?P ?W+x?,ٔſQa f[뱿?F??uܿVS?F s?’ڸܿ΃ߤBh=?d:ލ?ܩhg8] \fٿÌ?<<?%SK#;/^?.Ȏ?JqֿH[??5!_⿊k}[?0?%BпuuDs棿oA,9;j(?p\Z) ?lyq꿸e ir?3K?<)Ď"7Yd?Q(+uPs?xA7ܿY?|QE?moII"? ԿD7Y.hv?U;(V?SP~ .&vr?i??x݇s?a*?|wUT֦FxƁƿh0fv?ފEd8Qcm^?nW+?cPB O迳l:uY) ?o?cX?4nt](ϿDѠxp 4?)x?!4/-?~4&׿Lޫ?JD?TŐ?SBƿ^Ηݺ-8pпDu¸?bl? 񎏊;5x 4K?J?!K?A6ɲſ Yǿ1/rn5̿ߛp/?3yh?:? {(?tп1r&g G݁pl\=?65;aU? 9*':TϿh>?!C?ͥ^PD4vn݅?8D?QQ򀗩Z)Nÿgn.?V [ ,?lF>'?E֍ {ſұlV&$7?gfL+4CDh?<"My?gd &ﱡ[(_?rNKÿ?E?\u?g+-?8M/0#!Gz{-?HDb?Z+֕?ĠB8#ؿ~8/} y(>>xꌬ?U#ۿ\?wC}Lп(ֺ2^Ŀo8RV?>,?LfK?p@}Y?NhÿfA!=?dH-?ͨZ?9%׿bNu餂?r)?6w12KV?昰s?s3J?ml?Iusξտ&b҃X^1m$?˱ "(?R30H?(9kW?ྛ8? ɿ0WJoW?44?zS:?NKTnA?[/| ?m ̿^>ZIos?]?fZc ]x&Itε?z^鹦F?,R_@G?뭔?Zd?Trhۚ¿O9Vԯ?/kI?Z, &?Kehy7ۿުٿ:QSp?'m?v ×aPÿ`G@Vmʡd}?vh|?M0xԿLXȴE>?? ~;BٿhJ'?Kms?%qr: ?ukl?b?ÿ&)c(y?h` ?m?2);'ſhg)(gw@?\B?VsݿEƧSڧV19ǿ>s?d`V?] ᅣ>m࿪;Ղڲ@}~f/?ۿq?N? ̪4)пl}*h?[?xIA?G'e & c?+6BTH8v޿Xcǿ3CS<vq?ZKT?\?BQ>?Ll{?FRgLÿ8Ȣ-²j0\?g%"?l¹8T񿮸Da6?GEi= 9?+D9?Ӏ񃜮 !P?XT-?țcL,?~>2_gaus7_1000_coefs.npyNUMPYF{'descr': 'zSڸ|fn+T?K,%Fvӫ?TA?ȇec{7|Z?`N_{S?LSW &L?tgx?֞Kcbpb_n3 ?J?NR-ahˤпH. `}c?J/|/B4'$ߎjDR;?/T%@J(В~˿0=N8Ebu%?)Q?D;=fhb?y??aֿ ^8X5?z?JmԿ`".uտ껲v.zhRċ?$S h?ֺ]7Ӿ7׿>^?ՈO?B#߾ٿ&c?kC?޿3t^ڿmxF v?T /?@[!Կ <_dH]?I<ȱ5 N?|p1j?j?mxݳk!\Wk?~b? 鱜~b'?Cۣue/PY;Ò j?t;?bk?Ej5X?m$ܿLarH(6?%9ǿ ?uV??HOڿg[C6?r˿cs?mk? 㦿lvD?a壿3 Wݿj?I|?5?RyBZ/2Znضi>?fu;?L7,p?$VrͿG?Ԩ ?])e.ѿۿ̖]*ڿ5??.8ku1?y'<=`?޿4^2I?V0?ҙ?.?`dҿk@Ͽpa?m?l\̿0ÿ01?ݽJ| ҿ@ LJ??rbZM?*5Tѿ޿c7)?cbnɿ Y6]%X??N}?6J#/uϿdGYܿGEs?R`Q?׿-k"? )?lpq9`? 4?+??Jċ1+&AG?J3S[NU?1(\P?OèʿV= ؿiG/?֚!?eHL?3x X?ftr 1,;l?VYQ?r#?Eg?RrYyҿ鵝ϿMVV#:?t$_ݿZ{뺿 ѿ.1/գ?@a޿AE+̿?gxLj??G]lI6YplZ?0^?yEݿuQ?#?-QEoj忪 &ſr?37?j|`? YD a⿑οi,rY?tُ+?ѿČ_?@KI6+ҿ<5~οl蹠?e'g?a?u6I:?NӀJpn7ؿWGkD">Uu? +?Si (?8&?{ p?k"VQtY+"?ː@9_}bb^QAV?wLE']h)3׿Y(?y?MڿUEa E,鿊~p0F?)/@I]di-쿒;^t*߿긬mc&-?X?X3PԿpĜ?aFH?LM鍃̿WKӿP ,g?m?e}&tu@ |z?QɆ6?.'Fy#?-R?|f?@?ڪ <޿B٠LB{?asտ|D 0𿩧׺}2S?)Q_?bG3v ofu.?ؓ?ǡ?;Kq?S޿:!:Bm?e ?J}/ua? ؇f ʿp0`>?fn*?} Z򡍣?t+{'ٿ "ZிGu?$?Fvܲ?V 3?B!dտ_LT;P?|ѽ?J 鱈濐F?hu6?YIA?h>Ǖ]?n?l?7t9g?Q޿e8>eB?{*} XH?'?SR+ӿt=ѿῴ5?s?ĤM*-ٿ+ֿnyu݊WXLx?cs:?%]?i1CV{ t"?N r? ^տ<Ƈl??b ޛ㼿\;㯙?r !ґϿ}ĸܿfo7?]h ;=,dտi}&=?슰?Tn~??(Ώ98>?B(?l`?0c#?Hڿ8иϑx?x(>п\-?zu'5d*.WtK?d?>)?%Q濔40x[ٿ/WQx?WΩ?QURHĿLO/n?0>ж?tĦ-}JS"?%A?Cǿ6?\DL% l ?f^?E?4ZMXsM`?nO#ſR_Eؿ& ?SW?Cc]HJ. q?Հ"?u:c}n'X'U#h~oWG00@bn @ E$5pg8 㿤A<4?)> @?.7iP]?10 NG?Y4.?*cοtpؿY9? ;?~VʻĿWY^?.?RȂ࿦*w̿>#2=?%?K…?.?-2\a…W(b򿼛)?A-;?2ü ҿ| x?_f?](:¿.z0?I WпxP\?߿Rp9ܿȜE//?i"P?fi3i?Fr9:9F˿$Dž2?"dCK@8ڿլQ GF"檂cO8b?%$zK?Tjבs@SJݿbg?y/Ƭ⿚P#T޿Yڦ1?.E?'.QϿk:F2\&2N?χdp?eΩ?َ_A;?XM/ &N|j0V?`C~Ϳ'?Ӯ`?V%\ÿғF?FyҖװSjG?mۿa?e? @QcIؿbNZTUOJhm|i8"?gZ?Ҝ Կ;I?җ*?C ٿ?ԦzhٿC KٿgOW?ʿ+?WG?s0OU/nk/%e?~?dT,*CQ#ҿ,O@?G*C?&E6 ׿0X5#Y?ґ8cbIpڿe8hH?1zdٰSؿT6y?R?O Q&Ł $eťXp?ѻz&?E+whei`?$ϩ&??a ׻Iu~o(??=?)տ:?8? zpB5{uԿ oF?H?}LCxBg?-3?,@?2FZ?܉ ҿk(Y92 F<8c*?P)A?'ϥX 6ڿw]?(f{9m⿿E,???:!ֿtH3܊;ʿәQy?j&?¢w0Q]%aŒ'l@ݡ)?hH&n@?j18Ͽ]j?zޔ?J}>l/]rH8ܿSS1*ؿ5;:??!7? `<鮚?+9 $?By kb(h?~.ԟr?:Ih޿4zK (ӿYJ¿Ők&Pj_? P?TbF^??Ҳ?ј!ӿp9̠ ??P!h< q.?oYc??$4ik?qDl?1x%] lRQ?>?Q$̈俉h#q?Q&?ng0fJ󨿜ѿz4fs? Q?蝄!Q9?h;ٿ UhuT(27cHF?(q?I "1w,DU?L5߿B[߇ǿҒBU?amG5?tm;?&Dة?F* ԿLrпqPh? HLBk?.:oؿ%%(F7B++m}q?wW?#U9?v:̿ ~Yațb Əi ?Z@1>?翮eſM 4A?:CMiͿ*ƿ YL?;?zSKտ1{Ƒ˿o?ala?gӅͿ~ @wٰ?qoJ\I&"f5 ~ua?plj=?~!X>"?YZs /iA *6DI?x *?^ǥ; Vqҹ?w$?Dj)(ڿa'GoӛD\0?,ib?Ϯʚ? ķܿ2WڿPgJVZ@{_ط?̐?%{:A??0?I42}ݿ=@࿼kz/???du4?ߣi?ꔺa?r?thY@忿>&?]' ?vڿ@! 'WMMW>?dؚ?]f)]X/>zA% ?&ʉ)sп"?V*9Y? @.p!?vuؿr _+LJE1>]ؿQXr?2~ ?¿׿ (ZNé0?@?N.?ej,㿐Wῲ43cE?eiѿrʧv¿G9=qp|??+?+тIr7k6V?~:?f?*,߫?hM>k]Cc,?S8Ʈ *oo? 6??\?e\귿cп31ؿWp?хܿNْfhNN%ef[?;m?O%>li0Rv0?Pް@?l}Bҿ?.m_�?K\?nM#_rZFybJ9O?t?r+׿t?e0I?;Y?R$Ͽ_h=cngf jſ'S ejܿh|\>?Bԗ?ųG8!?3V?:-/99Tc%[ڿc?pu?On?^^+x,𿑟F?OH"?N n{ 忛(u1?Pr?'tтԿ3gпԣ?:7dO ?N#YV7?K^]ǿ6D1G?P M?(Z?R ;@?,(˿A࿭u~~&l?HA?P)׿ñt?\l^"?hsvԿI ir0zq>?YQ?١p??˄?'i0j(?Fg6 :M]{ >5ʲ??$\pѿ5۹c?10vSĿ0uhf|C?^%xK>?3 X?Hv?iK0zsGׅ迢q`?_U?\9,%w6%ۿ?g2)e?_մ(?Zֿ gnWjǿ6޿ʐ[l?v.O?[.@7.ֿ,חu蟆Oc'ˉiK?ljNB?ˇaU? '3?@:ӿwI j$u?=Ϭ\?lfVy?ةl,4.tez?a ?AAG?\@rC$Lh?jAiڿaI?,n?ݿf`ƿ`-*x?9gť տ *3 C\?Ŀ SCcO?q;U5ֻ'>-?أu#0ә?e4t??M[v6;M6)7T?|@?yx!?I@l7Q )? j(X _ *XG"n?߁=?Dj2!,a6?^Y`?Se7ڿ:=u̿*ڋF>?|u3p?~B?3//0ῠ \Ϳq~>2?6/A?O?/HZ7? \bz#h$@Xa?n3\?QFֿP~ʿgb-K<迕Ҟ%J?Q?'?@S?:W| MEr`Ɇ翹S3?8H?:S̊"ř濽A\:4u鿜U\׆?CsF?fZ:fܿ 4?ꓽaEF?F]o? uq|?6׿t mrͿ`av䀏eǛ?K?翉?p?ۋ rѿlvl;=? Nҿ5"ۿg\S?cW3?5 ~Gh?b7C俞_V?i?{QD??Y_]?;ؿ-jH4,ݿ.Gy}GԿ<;/?ߧ?"CQֿm 6ěE!rn?蜿?eViͿfd]W¿P\Z!hA?wR?Cr?nqGͤ;CW ?>IN^޿g?8,;0 ?eߗc?A[?c@ ݿYD/XCNǹص?9&0I(?Mj࿂4`P?׾nտi{ȷ Y?%0±0|6eUҿ* ?>?:?IAƫ<-? Px?z+ ?F*Ci,?'?w8?'9u濓xAGm.liڿCFݿNݠ ?iU~R@=)b#]|įo\?h_?23?T3S?-':q(GFe:?Y%??Hs?]˹i,a/562g? ΁ݿzCSU:ȿm4$\?[:?Sk?` x?bf?Ť&BٿRvYm)__d=?ŠOr?ϬW:㗞ٿyHĿ%Uy:ZD}?"dɺ?e@&4ݿINnUſ3?1Yxy3忆,볅?OH]?y_@I?/_bObXDFU?@? ,c?v,xOпȑBJ(Ϳ]|?1.g?oƿ?#e忶zVSh?+b:E?, #?]H ?x)?x%hXfڿ ~C6?I^ ¿v 5"xy?F??Uֻ? Ђ̟ttݬݿR`fAD?q~d.?d=~ԿaĿMOwN0Y5E 1H??8(?q?n? ތݿX|&"̆TIG@A ?Eem?8XпC/t;?#Iֿ{Urp.?_l,?'쿼tbڿS)Lm>?E ۿ:2߿?͸οoaC ?wo?j`z?7r?pv RH,E9v?8I?Eމp?=R?CތϿq$m˿íXթ? cuHar?ߘ? ݚ?ұu+п& 5X.ԩ`ͱH?h?; ■:_1?>1w?'!ږ?-TBb߿i'NФ&?Kvb??b+Rk?f,{ק@K뿞MWl?sxQ?Z| 8ǿb(`F?BO/i,?p:*R,O^Fȿ̺n ?:̓}jj=?SMj? J?2?#8v?@?S!6Dv¿Q7Hw$X~?-CڿLf?o$?nA\VYІ(0+?C!MJܿR ?bq?oc~?09!⿺gy_xoDZ?o>L?S>SF͓?_t?dי$&cyA?BǣA?rS?N_$[꿵Zdl oKQ%?WJO^?[7!?jy]?'k?2?ARM{뿭8ܱF迪9c"g~k?5 8?V ?:R?x.zm S?3b#\v6E^?un?%?It߿엾?5E+?"E?PZ & ӿ clԿƨ?<Ƴ?2Vp`?9́?ҿ^ӿݤ X?7>?AlQc.?wgbs?f֑P`ܿemOA̢Υ?6?4/m`? u?wEYcݿ 3s]E?Ed>?dq R|(J=h? W#Ȳd:Go] Gn+se?F!F? aBvۿeK2'?xG?̨Կ,@g> heۿ"Â?>2Ki?*)3?l ;}&34?eI&E?PӬE?1x?GP*2pQm2a{[?oA%8bS?'W?dܯ?^)mP`?#ǯ\翆fC:f?k3}i?ՌÊ?(/,z`?ߧqy˿>{ÿ춵I?pⁿ띒uA,?]<S?^,g ?k({4}޿|=C&?eƔο0Do]ǿb [9ڿ,HzT1Y{K?"?D/?-:K:zFt*?16v@8fl?c?oI9P?@l }9~?`yQ{?8J>YPտ3_[QƇ? g @Zإ3k݂ ?i9MM~r?|B@ b׃h?h⿃47[d K}?&nm?ze?RJXxQQ?7?S(7Gu?NӞ Vcu ߿D?1?!h F?tPBj?<-wQ??J'tB,=avOsW .?UHTv_*?)?71D?#*bؿ h~ӿr!o6\?*?RZ_x?sk]?YEܿO!QS_:'>6?8?Ta`?`08?ĭj˿jL>I῱25co~`ۿI ɿ3HIǿѿzڿqؿ#Fי?L?=dͿ2TW8Ŀ& mQſ\eF3?xLs?$<Ƣ?B;'?{NXO?JL N0J޿Ik`/ˢ4?R3V?~l%Z?(䱿*!whY> ?MnpL?5߿t?^*5?|yHRɿy󇡧E~pT?y?XW枬?9QA?Nɀ4b?H22?De#忋 3ǿt; ?5MPοgm?^#r?|?@`b X?:H?:`b?;3s#1?^CUῊ&hx ?}1K7?(98ο`d?ɋпa\%y$?qԿ*LLӿ*L?tt2?K?=ix࿊S,n?e :%Tӿ d5?p@ ׿9=žjW$ ?\G?$l`S+cHϿzdQ?@?ڕWsAῪR]?yͿt?{˛I?R%:,п`1Oy9p'KԿLl=$??ˡ ?-8C?3>4ͿѶ(3@»w!ayʿW?AY?\?O9oSaNB?Jr?,?ZDvp} 8??֧Qʿ}=к?)q5?H࿼P]]Ny4?/C8?Ͽ9п& ?bض?0(>#i9ǿ5߿m>?p?t0L>?w%-?*пؐۡiali}ϓ?i%?4? oY?GZ$.=M{ҿf@N?}?!AeLlz?s? il(]Cٴ??Wo0'տ?oڿ#?|:|?n??1,ɿFQ8 D>1_cgau4_1000_coefs.npyNUMPYF{'descr': 'Pſ~W Au?鿼9E?`00?`OvfۿrD?N8 Ϫ&?XF7ԿM\k?jo$!տq- od7y?UiY^5+* /?m*?s[2L1O?y韬" ?XϪ? Bۿ,ZeGJ?4)wEYῆ@vM?9R-t?Q9̉?f1Ͽ6& ?]F4t?έD)PǗ?@WxU¿`o?n<5WT?Tsƕ?i.RdtѴ.?d6W࿰gVc?rSɷ?+\Ua,{̚?j]ځ %꿐?"/Fu?~`L7;pڿGvH?,\NA?bwc$ǿ&F?Ο:пO3۲Ì?G{2?eZ- Y?>!f Ig+<=?)CxW(r ?~Ͳ?[fXD?VW?iD)e뿼P?K'?5 kG^qӿ4e?wV.|n+@M?A&3=v1l7?7X)=:?ʄC鿔IAV;?,&1ͩQ X<"C?/?_?h^ǵ?|[] 9H?7Z?tJ4yc21hꎋfL?x ? n˝/[pGk߽EUנ?BRͺP+zrs6?v͗`̲ӿ@0?HMy"?aY786)?2k.|?%7ݿ$}?y)?~LJqjn?h2>(?~;&jy?K-5?J1Ȱ* Ұ{?_:ɿr̘D?YI^?[] "w4?{3H?~D4\ݿ?zg?6+`%_? xב= i {?2ԽQ?q8?D?{?,Qi?#nP@pR?D`?>!\dؿ_q?jNO?wu^CP4?I0? 3ѿNg?\ ?i͡Q6Կ]7q?ϗmM?a?[ȿ5Γȡ?䤨?Dc?綷7?dj>?H&5.qş?蝧9?HP/Xߘ=+V~?~?f>˛?D *ܿ#B}ס[`?Ti/IBgF5+?8v$t?GR|/6?AT,2Մƿ5P?CgL1ƿϙ|J?\j?1dv g׿Q`?Fi*t ?Wf[ܿl?Mп-`^?v?0lX6#Ȅ?x?Lfɿ6"\Y?Z)?z7r?vO2п~t⡿14Gm?-Е.c{Na_?{qSb?6Ά_ =K?=?EMֆGl῕+J?]cs?]?߮p: ʤ??OtQ?m ogf@{I?J`h?![ʚ(+׆ؿ#x#F֤?$ j%-)૪?r%jt?.T11Wc?pK:1+*?'XY2n?CAQ?^v ~ZÿBғr?J`?!UVn :>ՠF?)<TxͿRor%z?"K﮿zտ=?ΆͿUf8+?)3R,%忌Js3?a?&Cs ^$U?JUjo ?<VϿUr?Jmx?6) OՃ` iMƿN2 ?GMd@?rwp 9ք?vs,~k lռ?)-U!?bӿe<15gCq5?ϱeajr/mY?΋"I=?|v~yQӿRz9?\/OA?[rx0? \.JտneԸgԵ+B?9 N?( m@"?s+?> 湿NDp#ٿAb M?zEĨIڜĹ0-V^?iœhϲ?OV?w?XI9a¿R} <9\e?GxKѿ-(({g?*I$LUL࿙dxbȈ?F 2\x-5q G?tk?ew}%rs?f^?q~=ѿ\ ?gu?!r8P񌟻~%mI+ K5?}0@s ;_֐?ni宿 qܿk?Sn df?oaܜ ?pC㨿N_$Ϭ\|?$^_ϿX>i?vӈD&[܅ݿJ8s|?>0lм?5($G󨖬?nl?MCؿHHo??y+ OdpԒ e?Bֿi];K(_?K79;׿ҬpY?t4NjSⱿL+?s5!?෍%E""t?"3:?维 l<ҿڻ?=n~ۿ=8eΉ?2'WfKw** ?pG? ]sO?KPY i?|-? $Bh6 ѿ%qк? @aΌ? ?r6"ʹn"R޿Mdus?N4@?P3Sw?&]쩳?o/EˣB?"sQ?!ٿŦ6eUhBU?+^J-忒n)!?a8?xZ?s 4j?-0 翨"g?^?;,%+Ufljv?NuC1?zh%9-XRοuO۴?d<[ٿh l?eZЍOIg⿰e㌆?aZ?CQi_I࿎tt?u1?HUѩ?!2LֿCֵqX&2?Jᓮzpxx?-*?8M`h H(dܿ18ج^W?Nta璿(B㿀ܢ?nqK?)mhm}̩? H8?B9£2?2?_A%?:*=Pп5?To, !Bm?* ?0^tػj즠?FB?'ʹV{Q>ӿ`L١? ĕ9ߎ?LTCqc?8<ެU?6hg&K?+?},ϦҴ?u߰?\&{¿CE#:Uy?!w1?%AuFf?O?_T.LGP#nx?X;!}?=wFǜ?ʳơ?9%h?1]IMV]0l6$Tf?ݳe(X%T>E}Gg?6z6Wi?rheqf:#P?@)^*?R2d<7/տG~j ?C:IDQg?V\lt[>z#/?;×NJr/п?vQxt=6aa?L/Hf9=׿xg.ے?J,nu`?P]WvGVp?'$i?&"? "‘rVʔѿzG^³?\ğI?I1!x?+;$&l Ϳ9V?ԮUʿvvώҠD0?Qo|>?S$?yV'89$ÿVe P?~1b?zǿK@e+ -?dVM-BͿo[UĠ?Jm~NyP(f?!rn?, ο)Rc?cL$dῙ ? IYh?+nֿܮ:D~?siX?pצ.鿪+ЙPU?`>s?tf$0njo?B^?T8r#8㿘ա?UNE??|TG?bڛG:4ɉտ4?>42Œxg?Jv?MQ?zX:@f pbÿPr|}?KпTĭda? $Σ_?E)N=+.rB?͸o?8x@.?8ʶRq??,Ψbᱺ? {??{9,?%@?<בp#& Yr\?9t%א?zu'5F?'A?veX~h<0fnؾP?\?(/~*LHԖU?M|Z<+e?8Aˤ?^ܿON}(@?i3'3 Qm2Rٿ!7?fd֚? {;r&ҏ+ eXD?[gP? 迺Lh?Md?025I R*9,^Z$?\Q?;Kp6:=ֿx;ݝ?O-?Y.Ds&8ޮ?nYyKU6̞Ÿ?WW'?EZ<>/?$I?D;)w6 OPٮ?wi ڿQ~?_rt?΍Kh̿v͇?x[ I0Qw`?d驿Cȩ%¿-T?0Aӿ*G]?K?A? 쬏?틿gw+J5s?d;Ӡfd%?ah 9KkmQS?*N?0)8տA𤵿uHPV?\hа?05RDz6sj?EC3;Q?","?:Zl4jx5U? C/?u $\\ܿCA0ރ±q?q4=b1?!M9RG?lIޞZs񿲃e`8? ?]9-Ŀ19+?ظmT,?pFƮڿG/x+?\Q?VzKfZؿeس?h]{ WP5? b|% ,*ῤ8oŕ?q??oT˿+uޥh?݂z{d-޿tY?hģAHXBR,X?n%1V+U+h?0.p`b{x?D?**2.dld5}r?k?d,E$i{пÉ=`MG4?˷FV?)r y ?{Iu^? `5pOQ?PC'Um~$o?K{?j}DeٷWyoпFr?7ɿ@:̀?2s4?ݛ Rx?~|M¿F$X@'?3Rl?nLK!ا˿̼}&`?tZ W?w&ؿe{9?Y?F.i(ݿȬN?W^`fS|6T? '?8b߷?R?+cҿ?\>?Sy$(|4,?RL:{u\ cLЄ?T҇0?%Z͕NaY?˸?) ʿV?Mg+?|= u϶?xAdڃԿנe´?ک-PߘWJ^!P?O")~ q2xB@?}Z?r}?6?DӤA?cs >XMzh?lr ?q@0k-/+?)|J?0{eѿx UUz M?˲~K ?&?g^J 븴d?0|`÷$Lݹ??ĔM$Vy?tQ?7`yc/6]^?pBa?H+ wr?3{{TAB\I]J慇* I7͏I}?nʿ3xu88?Ou?bO}շ?ϪA?t# ݿ 8X脣C*doNk?i/٢tGRNӱ?eʫ?ցcY\Iſ)iCj?js?\ؿ qH?٪?5)0T}_kJ2?I4տZd8 ?4P2?݂λÿ{T\ ?Kp必4>?f?h[O7^ӿ|H#cK?Tǿ`m?Q?hkKWꕿ,*rp r l?ꥴősnG$?;> e¦ޟ:)ēο}?IIvοഹV%?g +Z}ټ}NZ?0]?`N|C?x)͆^vFQP=ʭ?jD~?j1TVFX?z|/jQ.1p?ZÛ`Օ?SIw?7:֔I$1>\R~?4~ ?m]ۿ#* ?11t?tUl—6v?ABձ? l4'??؝|]Ԁ˿%?#G;vh?Лx% Hjr?A.4?-ytqCtkKp0[?]Fm? *#vA[t?_y EĖ迾kYS?j>J&? 0?Ζ'2?wA;O߿">gد?i?NX0ͱ?ld?i=꿨a?]?LT,XK׿gdM4U?-31?>JC?>+"7噿,찥?\޿`Etr˧w?oz+濣uW? p }?<_$" ^?K'AŎĺXl[`?@Fv?.sY¿2=?g/Iҿ$B T?Ѱ;Lk俈%;e? b= 鳑iB=:7?'<HEsɱ?|?䵣w ,A3X>?7#|GbȿbX^٤?Pp˿ ;.??u$`1?#}_?T;俻X1ŕ?cT٭?N뙿}4 ؿ lR?HWC?%Ƣl83пO!?pTx Q?.g咔?DINs2z?X8e]?RcʘC'QG?بh?n.Q31tWD4t?D̓<?@cVe?󊄲_F?7Vj?p<޿`x(x2h?4Rihxh5v>0?dȯ ?:'=fHȿ6nY?&'rձy[Be??sw|?a [⚿^?:}ʪ8?ʏdٿe)-k?lq[t?=._dB$u<(?R1]?2p~?ڒKrnVy?F?MFz޿7?> +?XVK2`?A? t೿ Džڼy5?8SL뢿sA3?5un,bk/n?DA?ҭrƵl-0?nʎ*E濚H?9#H?:DZޯkz5_?H徵Y?f]ֿ{i/?mƯ4s?D|Gmk}ؿtGi,?Q,[?O 79·>f?;譿<":ʿ5/?M6ֺտvƷ}? > dždѝgRŧ?JN7"?/zGĿd?dvؿwnޣN?Cv?Zu247iʿҼdk?)nE>|cAW?"X?f?ǧ{ǿ3`1?l?9/ٿ_n񫨿6@?ER(G˻?:d?QYI&?̇JM;MֿK5df^?$9v$;BSu?̆x-ʓ?O˔ҿ=*D? ?c"G(1L(iοx]?|_+׿",?\?^w>n?1?G]+>YX' G? ?$Et6lԿlÊ@l?m@c0ޙ?ɋx? }a->4勼º?B3q?F0ʿɊr?2z](P`ۿKɧ? * ??>>!ylE?!77fW?"BԿwU? ?}吥Xcs;(xDzn?7%;ƿcX+?!q?Gg=?[4ե.CGml3&n?m8@ǖ?jrۿ2gMQ*KH?\!Ѳk5_ٿL7j?WF?%D#|?.OE]?CEj?9?r~5 ?8 p(Kjj?C7?C›࿔nG`!ʲ?>?n2>Jp?[&~1?½ԛnjD!f?Jc`?+?I,BxNB?"ww? xSU!޿E}Q kҠ?K ?[}[N*@*"p#˫?G'fz2%Lj7?jLL u?GC{Dhq?տ6V?Q\v?ͫ{忄Mo*Jh???t  ]?42~Aȧ?֏St?L; I2b?`Nەj? Ef?rvٿ(Pm=T~K?YC?Q<z)0?! ?n+]RԿH?>?P?ς޿ d?gl ? ;t?&ߩ˿VsHLte$ ?R#hވ1gsl?:{Dl?ư ƒNp6v?|4b?`tv!Ŀ~_Ҧ?0+jh~k%%q>Q?F0C ej22?jM?:l0L\h'nIRgD??ah`?٤+鿤d,?2N??^0gp׿vg?T@TI?!wB瓿*6'?hrnT?*q˿KQ?N?k V S޹[y[V?s ?6rhҿC6\?+R?xi"i/)пW?Aû?@Eugw?yZ]s?.Azχ⿺p?F ?rԒŽs?CrͿ;O/|y?=:?;iڿfJPŊd9V?17s?oP2jT?l~?ČD'? 吪4o1wz^W}?6`.ڳq_^߆wj?c)=@ĵNd?`f 1cW5N[?uʩ?}汿۞+x?0SSf)8Կ021?Tlܺ?lٷ "hf?HR3?VaY@[ϵ?x1?|3*#ֲ;d.rj!ӿ^v?'s\XZOS?]&R\E{ն ?CN5?PDZӑ\?¹ C2 9g^ؿ;?|ڿs*h o'Wv|?Ѫ0g?ɧ,#{_?P|K~?tb!q""@z?ZW?,b(fDWⰎK?i.?h楿T-H|"N?_(i{h?J=lvѿ$)?῝\}٠?p_;?7x򵿔/bEl?}%ؿ"o4~m}y?fbjT^&迍_ )l?l?)0EV8|Qv?V@?xۚ=fB#?q RYT|K@I?2wU?c@ ݢkD˿#?@`ӧp?>kG¿PQ{^efM??*?[Q¿ѿ[z_JAiw?9<Ӹt-UwNϿp3?UV;ȿTfEy5A?&L|Avѿn/4;w?O!ſ!ڕ;ѢHK(?H?7eLNڿO?LAY,FῺfŲ?82ڶ?Rzcv v?Oy?&MR`޿KnUuu?. ~B?X ?&dv9;\?`՞S>忡'v?Ee0K?CFpwS?|(n?|(쿘X Dtfn3lB?+9BɫNȢ?]b? sDPyWT7PKJH>2_gaus3_1000_coefs.npyNUMPYF{'descr': '?Б %oӫZ/*ҽ5W`W}#.hZ?sIf?  hne?K2:ݿJl͠7G?ͱǿ0Be Un?2y˿rު}?_ۥ?ɟVk?#T0?`Bd?6e[8q0Dx5r?9ͭ ,꿍4]K?\Ѽ?$Ї8?\?@ ؿb 9/ ѿ֦ rHtZ\ֿ~H쿫?Dx?i2&տID>? Y?=3ֿBhZ޿ʙz6%?ۑK}? H/?R?jCIJV{ѿ0k:}sE{~r)ɴrA׿hcOĽ?^g?@rTj? ;T㿷Q0?:(?(fc'?ɗ?}#5K)_nؿ?O@. 8?O?u?U$?R/A=l_ 鿌q{j`? :?R62տہs0?DufxI-T⩟@Q-)PI=JocCM?C(N?Nv ?3V?]M@?w%?^l)w7m?qHccjп!Y?ˆ?Pi5"? )*ӿhSC?e?LQg?ލ&dC&j?d?xg ſVTfat忧pǀ?x;m3B{2V8??Y!4?4 @ e? !\?6HwB?&xqa@7Sy xe'z@MD͡?ia]?i#<2=ڿxBm @|>?J_.*h%V?Z4=?8lgM`ֹ?_4e?HS[?BP?#iXۿw͉L8Dt? S?ݨYAԊ?Q(&?؃ ?ȃ< ?r~-S`3᳒t?808⿦|Bڿ)^Ҹ?.?e?txSKp"XWؿz@=A=n?ϕo׿P:6SivbsLXM|RT ϿVi;?a ?z?QQYm (?c ?˜?#Ng]OnL4K+y=OX5ҿsl@ j# Wp?~j ?k?[kt?K?3տZ?qGT;VP.{?K?>?^#"O?>U\cS{񿞟Sd?oea޿YԌ-.?mG?}j}J?[bwt@F0كҽ7; V1J<{?ᩉ3vͿ!}!?.`,?AI4ޣ?E_:S,(z?&=ҳ?X?-ѿ&>?}ۿc=J/5?T'?QYc3?OkHFx6?=ҿNԿU3pyrD?d?\0Xr}l'f3cDw?=Jy"ÅѿPapOпzSNirqje:?:F,?Шh?4? &\ ˲oxod𿱽_M?4C?A ?;,I?{l/9PXF2)l?]1? ;g?ݏ?ׂ㿞A_UQ?SۉD%,v%4%q3Z\z? "Wѿ \?p[w6?@?%X襠xϯ4?ND ڿ{G<|\i-񿺍d_迆VԿ$ %C%@9u*3?U/6:F?_?8Hlؿ(; 2=#&wmݿCv]=?;y?Q$+2 ?8$s#U?Q?:y۞ῶsX-F6Sؚ?O94?~ſiQ%W?%NJ?:GU?YmP]Y?Mˠ⿷ en (\ؿXӢ;ܑ1?@4?4)Z?of?ve=^zUъwk|?_AI( ?\e?5ހ? 5tj?fl6=|ht?mw=xT6-뀃?/"bEC'?8@zk?L?wN:?%$ ?<=mX%U? [Xq?bsѨX?PAegpۿK?/iϿP곭J?O?a+? ú1X?tSΧ?)?ɗ*wOڿB֓' śCÿ\Q=ĿN?S{Kؿ<_+GtU2ٿ Cv?O?blb?"̇N-?C݅f+WbݿRt&:њw ?LR~?bl1ۿ>8?-zfYfy?rPR?L̿tfῄuƿa?m.4?b1І"?D3jӿ&οPc?gE wտW d0ӿ=?vNȎ㿂<4b4ٿ#??s3#?.,A@6䕁Gtn ̄O9'EZ`|en?t/@=|6⿟O ez/濅5?i|?`#s?߶ॱ?% 4I?0~iP?0"OM? ]z8y?2$5˥WA6!^~ҿ?uֿȾ!?+?;sa*v@O?:M?׿?_h|? ʴ9@yPm;R=2?[|L']539? _?Zl?kmo??_4İ?0)ῐ)ݳN&?K2?B.?pu˕5ӿD^&U`̿EJ?(t}?Ҹְ3⿿򊣶?Lǿ)eܿh|+'?V;,\P=[ Vp*?+p6v?;Tsg?=k;W?gX?OY?ײ+#@5߿*?8`ۢ?I vB)]ݓ8(Hm?%ă?z$yji?[?z@?+Y(;SA3 :]!愇?_H?A?h"k?z?n3g%Wcuł%sή 17?d D?id㿽@~S?Wc?ijTѿb<"^F_[^Š?h aUY=Ͽs^m?vy? F?$):?$?z$g翽 & |?Ybqj&7?)UpA?m?#пXZBPkۿGv ?0(?ξ7m|7?p6$@?|6@b?TxHw08P޿5 ;R?X^ "?Ýb?&J?;?r))?ߥ?>`Uh^ H ~87+? `5F`'??thc?o0?BS>?fuE<ۿW?iû*lϵEx tUz|?ܸW?86 ?| ii뿌dI#ҿ䢱7&? "@?  ?gͿSv-.jZ z?N0ܿ&Y5n|?x\?̵? Je߿ 4H?̗{  ?ڐ_kR信Hs远ٷ#G6I㿢"?zÿ?SCG#D罿ӛ?"DR%@4ܿh8?yԂ“¿% ???|'$n˪[`?bnBw׿8Fז?qO4?$߮&Aؿ~Qѿ3-e۫.lѿt`|?&]2?ӪáϿ&=?lZ?Z,ը?sh5G῰,!GU\ֿG mpqۨ?9?OL&?I4?[? >D?YV<迣쳾8EeKD?V\6q?h俵µ?$5?o]Lɿ|WFV!鿬]1ļ?1%*?w6.]?/KQc!1?bGd濔p٨<:S4?҈?x̪M.#1?q,?h*-?Xu촿\𿃏Evy5&%迋zkO?((^@?p>*}/鿘b4gyj]?1 D?'?g7?<'8gᛷMgO?[`Jҗ.o?̩U?0Gxsߺ ? *{Gܿ'0(;Oܒ`t߿2l8˿;f?bG??u^ͫ?'Π} 'dտS#!yBk?(6N?,-?V?bȕݿ5ө?vĄ{V&?8G}?2̓?, 1?Xx-ʿ3w;տTc*uËo?Zh -1 ry= +?T?WYぐIi?^^-i?=zq?aRm;E:'Phܿ\H֙?NQÿķ]Zÿq?<w!ÉwO,tǿ#˿ڲMq;j ? b?naIˢ1?n? !?E?@ [?$2ҿKXJzOY?h&Q>俚?a D?u?Hb@}IƮ>dC?"\a? Ua9-IA1ݿ%z{?i= 7?vO2>w2Q?e'ҿǎԿO\a?ի?+E_304??gL!̋p}H7\3J?}SI?BˡK?b_M?0'DFw|?IL?l0۶xi0?\G ?_[Wbu˿wʷM?o If?ͩ%P?GDU5 M@x(~[w?,hy@[YDH?h+!Wܿے\AA?+%nFm?B0-{HbBY?DÄ s?ՙ?}TKillv7mPIG?FdX?N_$.e%?:O>3?_jZ?^s?0̿z'79wء?2}?p46?+i-ҿZhM}߿l \忬~L\w?xw<ϿtU?F'?5r࿟ ?M?^C?6o&UL-gA߿y3AX?U[?{? Y@tV0?Ov?ؚpHh&Vdj?pk񿑫$[xkrD꿍>_;ۿv%F?o?M.捻?Jk0?nT?gEwq̿l/e|T)j˿wE.NY'+gA\K ]\?ɬ*/|gQfֿfh+4?WcI?|(?0)/?xl?$Rxÿ`? ©(?5zKO3ޅ"?Y⿜{ŒӓM\ ?m@ܷ߿/+ ;?߸'/?t|w?X`X,2U?tZa"¿cHĿ4+?# ?5"nnH>?F8?C'o׻ɒ2 ȭ߿S|?:YGE? <ȹ?Zvbz!?? !H[3?^Wx>I%H{H¬( ?&EK@cHA+?e iI RBZN?j 'Hn{?G2\?Y?*8XƼV迳e?2P?=H?F;?05R?#(4?TʩvNY`h zc?|0?D^9O}'ءZ?82?R%Qr`?)`?`9r ?Zߎ)܊?T}{d],^)Կ:'%;?#p)?X?8 c9@?C>x?LL96k/^H??Bk?{;1c?df?3.v/p応L:࿆:Lj 2^sP?s!YsPJWG׿ctzlP?Y>oC?V?@w?X) (%F׿BS`?Uܿ 2(/ł?A 8k@~lߓ@^VȄ쿟.6uG? \_x?q!%|ݿX(i?(Mb?9?ӗE~俓+lr¿֕οy4{ *t '#7n ?B37?1ilAҁ?PLS׿ _{>OBaC` x?J$ῸA3i?1J@%7{?e;\jdyQȿ$6" l?‘'?B6^C׿z?%?E\5ԿV_L翖CHҜ?kxc?J?A)Hb G?=A WG}$x?9>z@ȁQ@47  @?ºep<3U?ۊ8P>dn F(1C˿c~J1X?t.S)lGDt"C ޿FydmmĿ$YIJ2"߿#`tp?dl?F7?&F?&FW]}(72rvSL?hZ;C@#˿#h?S?5׿9izt?шꝪ?{;?+: ?g)t eW (Lcl? 4aڠ?ng;?ѿ'cF?PNϷ?Qv/0ѿH"ѽZܿ1lHI{X˿F,?7FE?/ D?]g E?h.p?<0`[* $IO+?C_LT㿴ekQ;Ϳzv"yF(?O(?/6@?gPwa@{M?El?l<?BJ|xY|kƿ]nm_&Q?тTпc=|˿3ilH?@?c5 ?ZϿi8w¿*9OȿiJ5 0ڿ'.˿jxN?h>|6D?l=`h3fh?,l V?'2:ſ@ߐ s!?.?e/?fIHQ̿CKK`oe5?wļƄj"X?R7H ?g ku?BD?}1翁{?HWa2H0PHQcN6V2b?#3{F?$jЋ࿔X?UCпQ^%0??geÓ?4rѿ$ *C˿;ܟ AF`?͂޽tSҿL*~>iWF`1[ۿO?#Dwg?1 REL,?5 &?`HbZXܿ8<? F?e2 1eh/ˬO?7f?AٜZ?!h Br)?V?}YA?FoW 뿶TQ5?~ReVFR?? ? C?fqiѿsK,?õ" ԿW:r=eÿw6T? *[?@2?,oj}㿣%陆fvW\Y =dhlɧ?Bg ?,pO?>/>_?(u?d@W?qН ̞ݿHA ߿x_S?aK?Vk忭Ym?w!?N?1?%/ ?[^/ퟆݿCb;@пpn;XdeѿV.)rեh?].(?0闩4? P\?U釬?ė:\M?,zJoY?xod4=tfVmx`Qd@MB-wl??6),}B?a,\A?ǒſm a?m@?Ҥ?- b6q!4]"迁7kUqɿYU?B꘨?kܿ!x?{;kƉQT+y]>@n>;?fbp|N]տܺ(?]kjgua~˿AO?VX(?:9{(jҿw?`lq忤QƬп P"&?x~u ?XӴ?W=:V?<#}?/܀H6 \6ŷ ?r\j?H4@r&S1 ?>;N94Կ"}L?ę'q?5V|׿[ /kix}&쿊 ?=Fп8^6w (?x\?bDB?L ϓ*/ ?W~?\ʿNotZ1SAi?>0˿Ff R!?tZX?1TN;𿿞J?Q8?.kڿX)yw-?$K?HL3f?$ى{?3P?+r[*忶[6L?M̴?~uIQ?FR@??g8oHOVJ?܉b^o?f9m?@:@ B%?؈@?׊͑;}c;?xGO쿚'G"t"9?AfF(zj|?k? ,Mh?4l?̶8u迀gE? 7JOD?'ؿ_h&#szĿ6Qtk ?ϞtƿտuҺLP7ӿBv,ܿ8O 3?t@B']?y濕?@#w$`k?mX?W?)r? -?$Boٿ=pذӿB-;-򿪔tgE?u$~qo?x91K?"X5?O?JO|?\폵ѡ ],BcB w? )տ mMH˿|'M?\&y?e7Km xzÿA?ajQڿKq`3ʿ 3c9?;qK?dASS¿c ]۫0c̮|pӿdG??. LϹIP? ٿĐ xj%*^Y?ε?#\Ƕ?@]4??iغɲ?i6.?hpfGC㿳P?t?՝yR?n,#?>տe1.?GOI9kmcyM꿛KU0~מ?z- ?[`b?;:&?9䬿ӿUqŠ_?ߒ?;(?!O9'FC6޿ -ʓSnbv(˿:?oe ?[WV]|@?>+}?8] ѿDPg7z,'+,ɿLf a?Z?r1qҺQp?1|C?ڼ[?La+s޹)Ya?{'UG{ ???L+ؿ#⥥?^B>v?{_#5bawL1B!7?W?4wBq?'Y."AjCpyѼ?!9gw-d<ȿYiAſ^ZL?#D?:zҎ?%?pvJ? 1?-ݙFMe,ݿ\;LQ@S0??8R4|ʿ://?SS'Y6/?6w˿b?߿?> ?@%!z?`@Rn~$X?݁BcĿڐ\Ϳoe~ٿ[j T?B!cd?Uv?H(ӿ!? 3j"?j`?k@ӿ?I??G' Σ((zOZKL?x࿲6F0So?"`1??1m?PH}꿲a@H?1?AmTȿ|>޵翼Cƿ&i?&v?2 ǿIȿ)D ԿUh6ƅ׿?}x?E6O砮?Zڿl"?D}?'?婋IfVbƠԿ(Z?Xvaɲsɑzo¿$4uO?Ӥ?3E;?c١?ZT!BQ>$-~׿nAe&~?w!A?pB L;A?K Nqȿ447Zi?`t+?ÌrSѿ.=2?\@sۻompH1#{'Y?lF?\q;?LQϿ:3ݿ`pv[`ɿdCHU>=IHٿ=Е@l?R??8?Y? o! i;B?6u`@DM?g꿬@ ۿgῘ4^ſT:ٿ6?ַQ?̱'Կ(WU?aH¿z ?K?F>pQkd5vU+>?jtϿSͮ 远c~HZ}ݍt?%F-T˻?Jq:_? r;?~ Ex,󿏐Nj?LoP5xNI?%0 ?bw? oѿlɤ?E"U࿝`?ΓFX?_{)濖5]1JdwKs+iؿ/Dzn?:f_??tR`?ggKƿh7M?16hݿV,3%^.Mx̿,:ʿKm?+f*?CM? =/?xM?d?ovX ?PKJH"P@P@ cgau4_psi.npyNUMPYF{'descr': 'KB ?wJ݀?Aػ]m`!~JB g$zTsDOGPk9'ČV!AF]0mb*A)\5H{ t-XcTJL'04:L!3^HlO/_ٕ5L#PQ8}.rZR&S\;6S) 7>xDU}Q:@AݘvWAԚVCwzrYK ZE;d[݉MU6H*B-b ]ĸ K2`C8%2N %Ta"IfPZb+bIRӔ׎dOT:7=f1 J9Wh@DYdjs\食Wl`_ɂٱ]nG.aȗވep !cqCGmceʓtG:sYugƼ"dtw3=oqj\Qs8vS7m,te9w ..!pLo̾yf iq>Զl{G Ġsю-x} uJPweDUM;zAᣂ/r:|Ic ` bڨ$7p˿ !Pky' -ֈcY5*u*]ie3YN2]bu]fPZ1p&RdrU KYݒ6\6M釘%2 ؜H퓾e{Y{QTʕiڣ=%їQn඘ lj&ծ(:iBIjh6d Gg 8렾O9 ?Efsl$5!&F?c/꥾}Tyy|=ާӽ"a2 U.eiFP}B®xD9eƸeՙ,ƦD45b%M<:qeůsCFeSذY~AӨڱ&8Wey1鲾BC$*EwF *-}(fp.7cu¾W"PUpqľh)rhX: ƾ%XDxwǾ#ƻHɾTy^}CP˾]p ξ/9ξ13ggRоhX%TѾ2iɻӾ19]¾jԾ(þ[d7!־iľO׾zPž'پ&Orƾl-۾6.HǾݾLHbWȾ ݷNE7ɾ/3GFSʾ5]vQ+˾ ֟_k̾n{徟_;G{p羲 \ξf wϾYN1꾑1N*qо84;22\оJ /iѾnzqTJѾ uFJJҾڐץX&_ҾbNQpC?MӾ!s4 VӾG7]AqӾu=zӾcxٶXӾ+%jo{ӾS-k0gYMӾD0?CoӾi4s[\&`ӾԐmҾ:gKg)S]Ҿj Ѿnpf.|,о}p(ϒϾ{y:9 j Q̾"M ]+Eɾgeq 4 Bžc t4 dB <|ǂf3;f¯7NNu>(7-]>X 4n)>}-j'"S>l^>5'G*I>[o>hx?3C> d2G! >6H3 k@T>~ '9zn@>āu!v9}>> #7d>dm'$ޗ+>BTzT%K,>^7&CIN?g''׮l?ÒoO8)Jڇ?WU% *O"}S>?cߕD%,{$v ?S޷ -96 ?$]/(b3Po?"ꜻj4T5G?$ݕJ5CH?IV_$6.?x97~I-\C!?卌C9"?5RP:,>R&$?M<;a&?c =}'W(?!u,}>vNq*?EV?H,?&0Ն@~@E/? `Atd0?bBqB`52?\QC! dI3?> ;DxB+>5?P,Er@6?>?'Fؕ~8?8 *GP@:?L⎖6H?h/X kJE,j@?-K/A?LtC?HϘM2l]D?rnDOQqE?j IP `VWG?)&PfbH?*dQ攟J?Q1CwZRw$r~L?i'SABgiN?g6VSvŅ8P?㐖T_0JQ?II^UɴЃlR?g1f*V(jS?VL#V F[~;\?f0,\dw]?$ߍ]Sc_?rNW^AR`?~>I^PiWa?')_wb?ƍkf`Fsc?zf` @:e?@|I^JWa8V@f?aaյg?"/uGbfy h?Qքb*j?!Jr4c/k?yOc8m?\jdr(An?eod53 p?ed=p?)[cey9$q?1e r?H$,f"N(&s?҉f*5Pt?+d1Xfcu?L&3g;Z;v?;o~gXe|zw?@gmy?ZSg.$CJz?_Ʀf)1hH{?v{NZhX\Z|?.{xhW} 1)~?0Ys#hQE?1; h |? mnh;9?( xh%4? Th *rJǂ?hov\?z2g/n?}gK?twg1/?9Mf ]?xe՗ ?)YAMe&?Xd B?+qâcٸ?B[b$>6?›a.刉o(?C-(N`q,[B?:X]KHb?P2Z.E?k0TWې?ɕ:!T>炎u?^RxZHP.R?:œ 6?mЅ~>ڌpgV? eMD&י}?!+ZQ#?#P^?-??€P?yuK?- ?$MT?H]?}%QY\[?~_b?i$a?VG?@ d?Θ?UW ;i?ɹ?7;Qm?&F@?姧lp?=?%wRs??Ku?SLjv?Zx?R4?+L{?;?A;~?5N_m?㇧?gkMn?h6D?oD ?A?s?kv?!GѠ?(?G<-?aqz?_:0H?q2{?eQt?VT?dMf?^KL?fsY?9RK?~^Q?B? YN?cX0?QO?\9?p/aU?n 4?:2_?kť?l?^9 ?U:>~?q =L?{"?@? :?2˧?b?,k^D?&M?j"Qԣ?!A?J)Y? ?Bk\Т?;6?v:?Mn3?MG=?1ų?B? ·V?Cw'??VI?dz S?fLE,?H }Q:?gn#W{?6;[)Pn?6Cyl?5줿֞t?&N@-?j3 vA?aB@Q]L? ӮW!L?F۹ٔ"@?PKj.&E쮸)?`cx|o?%yԴUM9o'׾?ᶩ?P#!m??>?xQ?`T(2"W?ϥR ?G#%> ?<& ?>ak5< ?TaCqi?=v)ywd?m]6Ro?i/¿Wh"?k7ÿ}F??6WSĿFTH#K?=!ſk>[E?Ovjaſam.?KӗƿRo%?gEz~ǿ,ODɲ? PSGȿ0|?)]3ɿ-.d?M^ɿYX?ʿ5YP?,UhSU˿#?ue̿gwң? ̿~ ]?+ͿAR¤?I0ο? 3ޫ?,B1ο#Y?97Ͽ#DԼa?Ϟ1пpۿkx._пb%re[7п8:.uпJ%AV7⻇w3ѿ"nDxX}rѿ8:֩oѿ4GXŮ78ѿL豿!ҿxD}?*qU^Cҿpv@ Y>kҿwϹsҿ(B=I?ҿŎ&OT=ҿٷb ›jҿ'i¿6ҿ@ÿMҿJdmſfۙ ҿRHƿ}|&ҿ.gȿa/fqҿVāɿL"`پҿ~m˿\r5ҿVr'G̿`ҿMDIzοը8Vҿп@$ҿ7пX@mѿ$uѿI퐪ѿ fz}KҿGaѿ&ѡ ӿOHWwpѿKqtӿH1пԿnSSXпEsKտ=U8zMϿuֿ{tu]AοAFwֿR{ο/GHu׿ʛf4 Ϳl'ؿޙ˿`ؿE8ʿHٿ3fɿOT(ڿ/>eȿ$?ڿx-ǿ.)ygۿa6gſeۿBĿ7ܿA¿@aݿ\P9!3{[P̠ݿ#qE\+*%P޿(ӻ(b޿9I_F3߿kU9дڭo)m߿{&cH߿ ǪA\h2*8 X)WN[࿉I |@x>y0(?&+f ?@A( ?S`[R?KdCHGó?urBqs7?\YJ~'5Z0?bH࿵?eEѻra?j+;[l;L=?ΆEx #?@d5ej?˄V,Ac':?S3w ࿾:苑?I]߿׽v~s?FGa߿ [?K}޿Up?oc޿4Ԇ?kݿԸy?M05ݿt}8?ܿ^ X?j9ۿ$u?ۿ%?ڰgEڿKi?P?lٿ^Q5?ʄgؿt?׿86B?ֿؙmK>U?$PտF)?-k5vԿ̖N?ߟƙcӿbov?J\<ҿN0? ѿP-ٵ?-X="Ͽr?ʄ$ͿBUfa?y?ʿ[?ՁZ;ǿM kA?H'ſ7Xe? !O¿kð?s 뾿j|OT?m&! &5?Ul6]7o?oYZ7?[-tϚ?dAioU ?G?-w?c)?9\+?OJ|ձ?ɑF=?(3?~G?i~?b_J?& Ɂ?lF?ϸ?y ;?L W$?)E(?ɍ&?Tg/0?Sh}Z?"J?q;E?ԩ??Fos?3C۱o?;"\?bn?KUm6?+~?(? ?ֺZ?ŵD$ͩ?ƍ?i 3?AYX ??("nge?_EFef?Rb?ˡS?4?n׿z~?Q-/ٿh/,!?l*yڿE?ϥ'ۿOp?ܿya?:<޿m?C9߿u+:&?n9,6&࿙ d?Sm#^?hǺ&ῢúv)?0Ὴ'?s ,ڲ?{w\?k ?e)|:q?%75㿉Sf?<)P?,bU޿׿86BݿʄgؿtܿP?lٿ^Q5ۿڰgEڿKiڿۿ%ٿj9ۿ$uؿܿ^ X׿M05ݿt}8ֿkݿԸyտoc޿4ԆӿK}޿UpҿFGa߿ [ѿI]߿׽v~sпS3w ࿾:苑ο˄V,Ac':̿@d5ejɿΆEx #ǿj+;[l;L=ſeEѻra¿bH࿵\YJ~'5Z0urBqs7KdCHGóS`[R@A( &+f >y0()WN[࿉I |@x?2*8 X?A\h?cH߿ Ǫ?ڭo)m߿{&?F3߿kU9д?(b޿9I_?*%P޿(ӻ?{[P̠ݿ#qE\+?@aݿ\P9!3?7ܿA?eۿB?.)ygۿa6g?$?ڿx-?OT(ڿ/>e?Hٿ3f?`ؿE8?l'ؿޙ?/GHu׿ʛf4 ?AFwֿR{?uֿ{tu]A?EsKտ=U8zM?ԿnSSX?KqtӿH1?&ѡ ӿOHWwp? fz}KҿGa?$uѿI퐪?7пX@m?п@$?MDIzοը8V?Vr'G̿`?~m˿\r5?VāɿL"`پ?.gȿa/fq?RHƿ}|&?Jdmſfۙ ?@ÿM?'i¿ 6?ٷe ›j?&OT=?FB=I??̣wϹu?v@ Y>k? yD}B*qU^C?L豿!?xGXŮ78?x:֩o?R"nD|X}r?%AV<⻇w3?=8:.u?"&re^7?ݿkx._?2AԼa?Ҟ1?"Y?D7?3ޫ?,B1?iAR¤?I0?~ ]?6?7wң? ?w#?ue?f5YP?7UhSU?YX??.d?M^?A|?)]3?:ODɲ?PSG?ao%?gEz~?am.?Kӗ?k>[E?@vja?FTH#K?5!?F??*WS?Wh"?k7?6Ro?i/?ywd?`]?Cqi?=v)?< ?Ta?. ?-ak5?B ???YM9o'׾?Ҷ???%yԴ?+E쮸)?Kcx|o?۔"@?BKj.?W!L?F۹?VI?dz ?6?km?r'?; ?鯲w?s??L8X?祝=?|7p[Z?ƺ?objs#J?ۧ7m˹?+r;I?G{lꊿo<ø?4xN ~?q =Ll?^9 :2_?kťp/aU?n 4QO?\9 YN?cX0~^Q?BfsY?9RK>f?^KLb{x?XS^FO ?\"|8 J:I?@ !i#n̡?)'Aп^?%楿$ߍ ?*Ɯp?,ʷn?p:`:㏛?3\)lP?~Ʈ?n:ǭYD?A,j?Ԩc"8Z`?Je{أ-Njw_?=U#(?T:5^?碿j?"c yT?dMόpgVœ 6RxZHP&R5ɕ:!T4炎u0TWې2Z*ET:X]@Hb\-(N`i,[B›a刉o(B[b$>6+qâc{ٸXdB>YAMez&xe՗ 9Mf ]uwg1/}gKz2g/nhov\ Th *rJǂ( xh%4 mnh;91; h |0Ys#hQE.{xhW} 1)~v{NZhX\Z|_Ʀf)1hH{ZSg.$CJz@gmy;o~gXe|zwL&3g;Z;v+d1Xfcu҉f*5PtH$,f"N(&s1e r)[cey9$qed=peod53 p\jdr(AnyOc8m!Jr4c/kQքb*j"/uGbfy haaյg@|I^JWa8V@fzf` @:eƍkf`Fsc')_wb~>I^PiWarNW^AR`$ߍ]Sc_f0,\dw]|>F[~;\^[ cZEZpD YY0YrXS՗WrOEWCRӌ2VVL#V L⎖6H<8 *GP@:>?'Fؕ~8P,Er@6> ;DxB+>5\QC! dI3bBqB`52 `Aud040Ն@B~@E/MV?H,:u,}>ˡvNq* c =}'W( M<;a&NRP:F>R&$C9"~97I-\C!OV_$6.5ݕJ5gH"ꜻj4w5G"?>b3Po5BQnd2Ѩupr1uu>{O0UX,$]/(גoO8)Jڇg'<'׮l^7&aINSTzT%K,vm'$1ޗ+ #07dفu!9}>ȏ~ e9zn@IH3 @T.d2G! hxq?3C[ ޾5'G8+Iؾ3l^Ҿ}-j#SʾX o)>7]¯7Nguf3;f>B <|ǂ> 3 >geq :4 B>"M `]+E>y:9 i Q>}p(ϒ>npf|,>j>_gKg S]>Ԑf>4s[\&`>a0?Bo>{-k0gYM>R%jo{>x޶X>*u=>4G7]Aq>=s4"V>NQpC? M>ץe&_> uFJJ>zq^J>:J /i>94;;2\>3YN1꾛1N*q>f 辺w>G{p羙 \>G{徃_> 㾼_k>̓5]v⾯Q+>3GF<>j ŷNE7>_ݾ2HbW>9-۾.H>'پ&Or>O׾zP>0d7!־h>`jԾ>GɻӾ9]>i%TѾ2>ggRоhX>U/9ξ13>P˾4p ξ>qHɾ/y^}C>xwǾ#ƻ>=X: ƾa%X>ծUpqľVh)r>u¾:"P>[(fp.7c>F𝯻*-> C$*Ew>8Wey1>*~AӨڱ>sCFxeSذ>:qeů>z5b%M>eՙ,D4> eƸ>폡®xD>kiFnP}>`2 U.e>|=ާӽ>i?c/꥾cTyy>5 &F>Efsl$>5 8렾(9 ?>8d G> Ijph6>lj&lծ(:i>9ڣ=%ї/n඘>{QTʕ> ؜H퓾e{Y>6\6M釘%2> KYݒ>&RdrU>]fPZ1p>ie3YN2]bu>*u*]>cY5>Pky' -ֈ>$7p˿ !>` bڨ>/r:|Ic >M;zAᣂ>PweDU> uJ>G Ġsю-x}>f iq>Զl{> ..!pLo̾y>S7m,te9w>w3=oqj\Qs8v>YugƼ"dt>CGmceʓtG:s> !cq>G.aȗވep>`_ɂٱ]n>s\食Wl>@DYdj>1 J9Wh>OT:7=f>+bIRӔ׎d>"IfPZb>C8%2N %Ta>ĸ K2`>݉MU6H*B-b ]>K ZE;d[>AԚVCwzrY>}Q:@AݘvW>) 7>xDU>&S\;6S>Q8}.rZR>/_ٕ5L#P>!3^HlO>L'04:L>{ t-XcTJ>]0mb*A)\5H>OGPk9'ČV!AF> g$zTsD>ػ]m`!~JB>wJ݀?A>;v>KB ?>J =>ξ,*T:>lyr,Ps8>o/yQ]Yj6>G `z4>`chlЇ\&2>HR?<1>PKJH7/>>2_gaus8_1001_coefs.npyNUMPYF{'descr': '2¿Q^$?rޙ? ۿc攼?{ͨ ۹=:H9Ŀ]I?ڬ?PGoyj=ȿx z?# ʿ:I?…?`“8 LBH?1޵xH ҿB?zH?b.j;ٿKпMT?MX?z; `XFéq?o-Tֿ"?w?10?ժ<>z_LZf?]HiDcu&C?@пÐf-?6t'?|*I쎿Y?–\?A vѿ!?vH7?}\CDŽD- I{-]?9%l?U(?C.y?ѯgq Lo˿c?J??};7E~?D?-o6 RI( Yr?l\ǿ}??ꊍ"v#?u῎Mݸ}޿= (f?8 O?RZ%N|_'!?ƙKۿxAqѿi?oy_?6Gtx⿖ƿ[$?nH ?u f?w0n?#s3Mѿ&q(>?n/fu?C:ϡ?XK#Mv¿b}?]*~ݺ?kͿ?[whsi?j{?_3xB21?,h? J-?a%̿'K?9TwؿU a\?Dpةi?\ ??Y;ؿIYMa?êa>ٿʬ}ӿ:l? ?jCοE_-:??ve?+QԿ ?QXy#ܿ" ?$,QI? {;\JJC?K8t?OYɁ iޯLq!?H$п+)w#?]^?L+ \R?# 4¿}U]-ӿO?x?VJۿ#,m?o.kiDտ(d?`L?@^ нKcy_?3?Nv@ݿ6ž:ʿ<;U?`Qr(}y[??7Yq ЂG<ҿ8a?  ǿ79ᴬ?n߸?fAE^D?f=dY2#$@1"'i? T\?jM!?6GfV?뗧ᦢuԿ!ڇ:?Mo ѿw?T}N4?Jc_Xj7ƿK: ?鎅c?U?89mh?Ǎcvg?y?`i_@K?-@Z}z?Z{cBӿQ{ඊ?9eÔOE?vUXZ~L¿qHg?)woW?܀Jƿgz3[Ӗ?(ҿ? 8|Ie_փ ?2;ֿto?:y?q)UqտCu?K6?!JE2 ?>0n`=+%kտ~X?#{ڹ?*+#ο)`?'ޤCȥw˿n8 S? ÿC}yy~?? w&W𮛿@V} "?X?Ktͫ?$]%?' Dݿ Ho7^!uY?zMǴ?n?+U?h_ڿ_?Ԓ!2 ԿƤ?hq$_0S?]RT>?!WW"#?I??m*aҿW?IgSgpFCnG]?R1rq俁XA@+:?/tcʃ(Hl>?0#P@s'x?]H?3ipd8{?e.Կ?؋cz? ?g%3ܿh?QǀڿcZ!;ѿ?K܍?vgj)J?ƟR? zvjUȿyq?M,пq ?%?ۈpQӿsa>"?ǿJR?˯2Y?aȾD? Oſ$J$Wd?dZ׮ߝL7?V,^ò¿!u?5? $Y;ſQ?+wԿ?p?F ߑ?=A#1zƱҿ8G6?j$пbNS?)=/?MR~!ݿ`UFΉ?j ?κ/?[?J8>N\迅72¿ ?VU?A0ɿSIڿd 9?,M?@G㿨]?Ep[?Mпk^&?T>37?l3ҿR[&?J.[ɾ!b8pӦVN:&2ۿAVŀ?fF`F?AQ\_?Խҿ3|ѩbѿ8+?(Ywt:?FAݬo𿠘q?ηǟ̿ւ=ݿ@?_D?7 'LF6Jλ?xSa#ȿ_O2?L8[nO=?G5m+?0v@ԌϿQ1^?e9r?[ ;ƿ Y ?ۿPѿ`c?Dm ?9I2/ĿE?Rhvÿ2a?4Xk³?п%=?A=?H`nF<1ZG?p#zE^I*Ր  ?vk΃пG&~?;qώ?x`d?ʣB7~h?d¹A?ᨅ?:,:?Wbٿ9_iп!=?xeMUHLХOiM"?:c>|!A>Lҿh˼8j?صuɿlä" ظ;)? }?JЕտv9e?Y>?cīRᅳʿ:?:VYcB?e ʿ #Q?J?hִҿwd?P%`%dh?Ȉ^I{z+?/?]Ὸ,+?EؿaQ+=տlZ?n=3? RX߿d?Ys+ui=?$?~5H;ѿ@gJPפ?ed4#/t_Q?|j\ƿΟ'?+?} X޿^Ĉ埿\.V?ry.k}MC?a 68ZVؿm|z=?`CU?l z˿FA?]v?"@ֿ !z?oXXci?Jv?kwݠR>׵ٵ&?!;'0Կȝ-?DEۢy%]⿋7}l?I˖?Wô?dFv*B{ۆB6_@T?UFN +RKY2Ѹ^ۿoZU|)?6dg?z6\ſZj?ְ翖 CÿIio?*/_3b64?p?Ck;`dzGMao=^?R;Gh׿G!?>t?<,M ?եL?i/ ڿ5? ?p U=}=Iaп=v3Ϳzhn?_c`Ӿ%?v?PΒFDHIF]?RSq?b տ8C?pLo?=tf'݂mw?7_H?ݿ"<5?Dמ(G:Ӯs8?M=?1Ь0?5Ǟ j9%ltη?>L +i6@Aɕʿ-?e9?Wֿ[ qD?KgV࿄iɬ柿#3Ӟ͘?ճ ǿi((L?v)Ŀz?{uG\?Q)ZW&?|ɤpTO$̿>a?(:ÿ{:w/=?C:b?>P ?pcտ"Wӌֹge?~)^?ϋ[:ܿڱV=붿+R ?%YyEտ(?$멟m?/Tʄ/޿gZ>?2fڿLS9H??J,(DhO^Ŀ|g#?4w̿3em??|6 Isjm?ש࿻(ؿٴ?>@f$?[C^yj?؂z譕1w}ۿ|L? m?\:2Ϳk9,0?fdIyYX3eпWk '? ?GSu{ۿ=^ ?:LĿ⏒ ǿpa?̜4~?6~#7ᪿ{Ԛ.&tkÿ^`\?_~6?vW¿|??w W*K%r?vI>aѿҶ"п;YW? *4vĿYD'?`ˍ=~WƿYd$?|h;\8Mj?THw&w?[ѿ0Pb?y.*?oei'`?!]޿Gz|?|V?.7&!Xoʹ?`ձw-A@ѿ* ?btCڶ?"˿S὿.?&BFt,g? :<ddԿéfڿp]^E?9^)K?̷t?VʿaH?מW?ّĿ"տb7T?ArʿS̹y?}O?h8 ҜrtvC?!pU R?~bVJo NƿD/}?*#Mп]e\?[sQ?~ 3;T dZg??$ ?!cYGS?(9]Z?i??Ͽ7b!*?„?P@H?>Ea߿>"? i ܿwe"F?<?EF.$*ַ?*! hLTֿe?06t?RmŻgk?XͰl/lJL?Ȫť?En?ڱvRblͿ4?9HW?e1?TI ? 8V ²ѿ' {*?*Ɇj?)u? tX?3o]GſH+ؿHr?C ?!ŲU`$kSō?Ԭп ܿv? ?wʬ1][yyxֿ;btj{?@J'ֿ7FgJܿT ?s?O+*-vC?x ~տ_T .?]lzXŢ?+;ddy6?1> ԿLa'p??eD^? i˩ѿ|ua?˛ɿ`<- Dҿm?"';ު?bp˿@IOû?B>Vp ;ɯe?2IU4sʿKt?GB=(?0RPZ}οԁ۶*?|2mАпm33?bP:?E]Tѿ/?U¿Qũ¿1-9=e~?hF9꿄6kÍݬ@E8U?&z-TKQ?;ֳ Pbދg?4U2?ODrV\4(ȿJ?k?Jʿ.5G?yK?D浗ɥſ-Ms?ѿvoN?>h C?)nп4N?Ķ@,xѿn??WcVsƩ2ҿZA?A:XPѿ'm?h14?+c%?9 􍾜?z lֿs]Wݒ?IW?=Rp"c⿿M?iڿB ģ?tc]?? AQ꿜!9?r_<߿J L?J?$lqV?fS)?Z] 6iL꪿Bϕ?Hpy|ĿIEN ?tئԮf?,ƿi%K?x?dqƠ ?Ε;$忤:kX?/?^'_CX{?T?x?]2ֿB?.^cп%ͯ޿^c*q?yX)z?HzPgʁ⿠e<$d90ڝ*?`?ΡOҤg 0v?SC6BZ?_Nc1 Fv? ?n>!߿4ӱ?u; ÿROLп#xYz?[ߙ?s6<3ӿ79Ee?!ɿ,?6x? cO?Ը|M?C ȿɵޒӿ^~?2ucŬ"?$?xHd\{e怪d?i-(ǧ?-9es/p?JS?ʃH)[zൖ?l?M |*R@Jɸ_x?$3)9п$m?dG4?B5|Wљ\?۴}㿐tgп.w?O?>d?S_RͿ_?Mٗp￧B9տ#ҡ?l{q??(꿴C}5KjqScZ˲?QE=Zԣ {Ŀ&Q90?g7ॾ?%)ݫz?Lއ"煤O?z9iܿ>G#ݿ37?!Ba"~?̷rn%sǿ5ki?W/ȿH:?!"c?&|y+q~Vv8?Z53x¿( n?&IG?+coÿ%Qe|uƿW?qF>Ŀq$˿ӗ?GM?סH俴 Kx?~eX }sfҿ萴?l\p?-(?8(?}:73@=[-sԿ6S?+P¿1$N?NJ!?џ[˱dKԿly_?JBx?[6dd'?_H6⠾b?"? a?/0P zѿU?8YE? ZB&&X?߾}E@?ɿȄ~:?c\Mÿ}AC"7.B?bZٱ+ſL?(@?%U7忟Jʻ)"1\?ökyݢ? hơf?|tW7迿dvϿi-3?ɚƅ??u /2Qs(f))?vGCۿOC\?*?w/tҿ?@ sz?}rnſP?U^߿n6eӿCq4?Kk?=bEz?r>˿Tܿz?lK?qqEs?mĽBڿ3ҿG ^o?*[bC?hݘ;jⲿY/o?уcVڿNy?_ehF ?5S'i[A}K?R$h v;¶@ʽ?xHeݿ|sQ3?CGnմJǿɹh(?5WBtJ?䡖ǿ ٛrBpNqDog.W?Jj=3?@t+? _x?͵@ob?v[)?<濹W85z?dˠjο "5?#@y,aL䃱3?kο=k, D?L.1~|~X?Z@Iӿ?+c#Y.ӿP!D?IQܳ?5V"#7Řӿp-%?׾s.?A̿ \?K$Řeq?2? .?fovoC7?gſZٝJ?T$4x MC?`)?Ǥ ^.0B?%\ZjYӿ$|NQ%`&?#M񿺘Jf?gͿ???:\p"1B|=?]/j@6?PD x?zRcKؿ%Ϝ? !?ĴF௿= rx&?nm=IQ?ϚS?8*+ؿj궭? >6?ы [Kƿɷ\?Ӽy?"n? 7?׃ӄn4ÿ9?Z?s=B翰տb.?2 z?5r?Ajh\?aIΌ+%6Y?Tym?='ᄺU;ۅP>Q?Lt?xwsCѺ?9ſYU?](?2&W]<ٞa?;B(?f)9?.鿷c?˿ x2?<|رC/?txy?e kr])ϑ׍?_q?¿L砕>?HDi?{*ſ ÿwwN?K0_?DVؿ>\BXҿzT?ԧ/}?wv(.|?*>˿гؿC#V?W.%?vH^/^',ʿ {'?b ]? ˽| c?tn2耫\.Y`#?\P8: ;ȿѧ$?<ݺ̿1n?NpK? UR잝ڿe蛽}?, S/?XwJ`X?1ށQؿBIf/!nҿoSXy?D(?((G(?17?/>XqG˿2W ?I ?TЦѿ݊J?2WBG,iE???E忎9wj?l{ƽ=TO{h?:UV?J=(<ӿH?㡋e] :?»Z֪?]WB*tԿ WV>?dߘ}PKJH>>1_cmor_1001_coefs.npyNUMPYF{'descr': '¸dٿ NV2?Ě0?c1ڿI$@Y?0e`$ U?$U?$*''e??) ȿe8ɿ~wϿB+B%%/?mc?BSq\)BH'տڂܻÿd?*1 q?L?qr?ȥ?p`r$^HʿO K^}ſkk |?J ?ȴ>?lDM~#8ٿpɟO8~?(@[1B鄒 (6"?L!?qq?xQ?p"Bwj\TֿJvO$?qs5?T?L'wM j}ſtQ?G-?^n?81?P?tt<xݿD׼q ˿S[?Lu)fT?` Ձ?_|JV߿"N/@ʿH&bZ?J}x[D?=5L?8؜ݿ?\]A*?]oʉٿI?2-P?4_ Ǎ?|r׿l ,ǿ[%יr~?}6M?hxl>|Z/֪??Fd.ۿA.O_ʿ"Խp?ڿb$?Wj?v\KJտHV59^׿?0?;Ē?D$5I?Dt?\?Rh~ο$ܩJںѳ???>g?KsuwDѿd8sKZJ}'B?b"?eF 7?@?,}+ L!ο ~LԿ9Yp |:п(?ChIZ%?A? ҅ÿ-T2B۴]= ?q* wIG?9_GVӿ*IYt.ĿR=IQhLә?.".jGѿqU?v?RY?J&0w?U?A[&4œ~]7 \T?&]?f鳿㿀r?NPA}?DT?x _?w~Q?r flS^\z?R߶?td?1u?@#SϖǫtĿthh@kL?%raƿBD7!ͿAN% Nǿk3[>ef?|+ҿ_?qۿzX+6˿p?dpu?mR]? ;=?.ԃbwZj?J*?#͞m?9ȣ&Kd!O&?Haк?-M)<|F巿ksVkܿũ?a?d_?Vʿ w?>wv?0c{Nyc?]n6?O?P&q3)(֬{??`?Fȿ`@R%rӿmĿ I)?GOq'ZnAsrпhſ |diǿ ?K-笴?~a¿T`ǿn]>,r7=Ŀ@H?9DilVֿX>?) ?,xϴ?4Z??RZB?f?Vÿ#7 *!P2?ΉZN?)iпS(!ѿl)xʠ%!۾K?T?Jd ?Y,rºؾ dv8Odҿ4ʒ?Ѯu\hG ٚN>(?CWz?jC˿_JU|䤿U?'!?,B^}ǵsr? '~֟Q;?$?܉=K?WJm7?c/ۿ7¿bKD??}$l?G#D?X6ƛxU0 XwP?JƠ'?*,$O]p?0pb?M_?HL-?ZIпSUҿX?\O齯??mQ?(vƿҟ*̿ޞتֿza"G?{K??$ ѿ 5?FE`?R4xPٿοL+?iO]O#?ןƙK?^G?Coν˿uˑ> =۩] !?"X?,#3޿_?H&nſ\`uQa᩿r?SlD?Xl\n(?7?1T?J?K ?ו?2NѿP?xOh&?jℰ?""|?DӲA1׿N(z?2?@f οz^,FΜ¿:B*?y?F?|YnndeϿւd7#Ђ?dAtfm¿o0꩗}?<?Ww?WĕῸ@>]?*PX?*6V?S _ggMg3ٿx?[&H?SH}?#??Rֿp*kE@??ux ?0˥㡿J%D!`¿>9Sڿl0ZSĿ􄶌P?x?hI4mͿkKkZ?/wp!?c/??!,6׿MF#)kп} Z?d?8=?|?whbƵ?*HC?,rɬ?APӳ?H$dĿAܿ6y<+Hd? ןZjP$@q.wz?}Z?HZᬜ࿤3b?:A o?Ab1q?Tn90@J $pr ?mcj?PIE>e?[󦿰T8ڿQ̧4f?Ǥ?&cpxɿb@ɿ+4 Swmɿsۓn?p,@[?#rz?"e,,dqȿ<ٿRM왿7C$g?4? <#dԿK5"aA?3>Lk~?˹'vJ"/KR?,<'錓i;iK,hz?`+u??O C?6$0߿'亿0t?>N? R#A?=0Et¿r ⿒][ҿmD?r.}RĿ3?$)j[?@ß???|?idHO>ӷu¿}Կt_ ¿Mx@j?׿?X(_?"Gvu?N+?FP?0Wl?af~ ?H`_?߄ڿrD^мWE.?<훡?ԚW?o;^ҿ4 ÿ3ȿS7ִֿ?\lC _?h!wے?54BN׿lܝ?,b?n?QE/NGʿ;\`/^AږNKſ\<?ΏpTC?`~?`Q7-?V?Fܘ&eۿ~ۺ?Ƥ?&'%]?sW쟬ϿTEoS\ :ֲ?Vj2?֟?޴?'Bѿ[ƿFڿͿ0-;?b8k]f nD?5W?OտǰͿߧG4Ӊ?@eYMTڢG?Eڵ? DпhȤMRɿ9Wڸ#?v+K]/UAJڿP=I\6WQL&?>ϝCY+5[팛?1ժf?p|g?#v Z?zL~?P:XX$?"t,Cҿ}w¿uٍ? ,C?゜Ȑ?C4?O!c˙͸&820Ͽs ĿUįȿV26,7{?`ܑ heͿ?zjs Q? iG?Gc?f&?wrj?,?};7/!?Wƻ?7c(?)S-=?"d-? L?Hÿjdwƿy;-SyL?T$8}?KLrĿط[TY7 ݅?x[5|WNy?~'w?2u᰾XdͿ0I?U{?׿C?MD-j$п}|ʿ?w㿊szٲMHh?MW?أ]?ˆ6?tE=y?5sſH?ʴ2ī ;?lfjL1շV\v?%c?*x :pύ5ɿ/!>4^E`ڿ%l?ۘCW ?kD Y¿ܪy`z~"aɿU?4b j? ¿͐GK^5B??!+U Ŀ?K_Mb?Vz?L9W?yĒ[jܿX F?`u??ʅ7)?ְaƿ"PHJ_޷ڞ g?Bl?"[l=ֿ)J3?1?`fٯ坿qCs]H㿄5s*ҿ;J?Wɤ?Tk. D?Χ2?\99?\U?z 3|)?E _#$Ua$Dy ij?`^?lh?4 GW\?''5tt?4Wq㶿+8M6ƿJM,?Жӫ+?ċ(ܺ?. ?ݺ`?(CƿKPҿ;ɿPt?lSQAkBP?T?yV:}?bf?0Ͽel&?PS׿xr.Gk鷿t׿>Ԏѿ-!V?$ 87?._ 1?c=oy~40?{?d]Ӷ?D[b8Q{Sӳ?E?vkye)%?n?HfT?OY hPɿ\V˿)B7ǿ2?Q.\w_yDk_ڿ'hs? ͤ{ ?L6!? j?1ο|[sǿJϿM39?VY?R|?w2!Ῠ]͛ţ?Z?(hF+^ÿ}?i?)yO?h"Xt?N-YJe꿹78:?Cxʵ ~!߿p~=,Ț?) ?k_=k? 9 ?Jg>ͿB;Z|ì5U1?u%\޳?{ ſ=/TtjÛ G?/ w?DG?k{ʪ⿠d74˿`-1?2\?MrC?q{?4և{r˿?|@IGӘ7d=!Ǹ?~HgȠͿ3?)x?θ40SDr魨HYIͿT~鈞t?@WyY^Hl ſ{dlK.?rytl?r?YvN?+JǤ*?bSɿп}ݺHѡؿYz ?luM?4k?|׿,]lhxM?e+v,?f|{? f?Wҿ$Ÿ?ag?~,}?|d[ȿWw4ƿHsHF ?X}@""L_ٿ>)~?/?mKeI?yLhʿCJ?@k' yb ^Qÿ6!ӿ}ǿL J>58?6}0,?dk:ɿm?)??`PYP)iϿhEQ>PÿmJg?)PJ+u?FbR;y=u?σ+%#?Q𺺬?ͱV)οhѿ -HdfP`j?.;a.?z"?H"J?mCoVyhĸ?O]eS?~:{Կ %Y)?|6gw?Dmпueʠ4 b?@Ckt`з]s?T"K?r=F?Di(KZ%CXp,@|]?@SKmwcﷲ/ѿAT?q֝ 2ǿ@OENkxU?OR?E]? 7/?BRKĿEdQ?XS*?bֵ? zG$Gz 3)E{?^+?1ǯ?DRooٿ$P0V¿ I SvE"MUTIqҾ_X?cw=-F˿^п|гBgS?V҉?xAǿ?HK?6ܷ׿ "?왹zu?;< ?jxblʍ?DF ?P9c?l ?[=?H?ӋοVU_a￿/IſlƇh-!?ɾ1?=aNwm?@3=v?knr5HAr?!u?d10j?i紿rJ}տtMcdǿ ?c?:ۏ?9̨?Ѧd 睔Kȿ̒LѿZ֜۸?Ȓ48?bCy}V迺 IUƿn?2@?#TK?>cj?0!?O?9ۀ}ʹ?jf˿*V *2ĿR"0?e:?1?: @~2(~@p?Xb?ѿ@)R?$A?qXVſ*kɿ inȿKQJ?LI? ?98XAͿ*VӨֿ[!n`?,Yɿfo׿z6Ŀ9Hf?h4 i?ӿK?~6u?=n"+ɪ7ʅƿ5?|̏?CD[?gELJppA\?,#>?tIۿ[hN[a-P? p?cޚ/׿XU(ʿ =?z4ڸ?yCVm?zr夬4{ǿx{R7YZ?o)H|"e?l(?HqN?wiп h,D?-+E?qXj/?d¿2+h ?mAK#$߼п}H㍧vGR?TyJ?>#Ȍ+?B?ʯ;??]Cƿ旨谿ſDŽiV?NՖ^?Ҡ؝i?sPZM~_j`ÿ23ǡ?[?tr- ?NaZ^aۿ[D qοx3^ ?X|=U2Ϳz 3?-dz?ap?ʛsj?-QWϿyCpyqVy?N]5k¿#7{ÿN Ʋ/ ?W? ,?gb?`w4̿QMts?/Û˿jǭ?P7 Cr?:, ɻ?5N T?8K(iW?ExO8ɿR|D. '?{A@?۱ֿ8oYS5?W@?i?>S?4?eGF?D ÿSQ¹?^fӿ<Ϳ2Ovr?N?zԕ*)?V>Q$y׿l@r?tּ?ֱz,B?ǃD{ʿw׷?t ?<R?ÿ>pV ѐcn臻?48HfɿR/~M>?98g?x"nZ)?@1,L/鿀_ؿ[?03SҡC%?L]uq?.L|?HH }?/J\Cx鿰mnV=*?y#y?/S ӿO˿ҕ[$ʿT07˯%?V ?U T?sĹV?f׹?:+\pѿ{$ (ɿں r҃?˸?lwͿ(pX A?,f? ,rt5 TƿS{&濰y#+@?]sUlf?2ڠ?Qz?Pl29?PE?$܌Yݿ[Jƿ|?De?T 7?OrTQ*ҿtZ/:Ŀ"P|?g?*Sݢ?Lɖ-obku7?cH(!ܿMB1uؠ ?Pv:?Q࿲6Iq*T ?Y ty,bxG⊒? ]79o?J?9zb"ԪXl?t F(B4Sػ2y q?'r¿YddֿyDͬ?YK?B?1?;:ԿVm,\?eQhYƇ}?^2S?4P#?d:ȿdD70j?pڋӿT(I @?iz?ɿUo:пO{ӿrC?O?y4?X$tֿſX3ȿ^rpù"E?,Ŀgϊ#4J?A2?|+<&?8:5տZ+h<; ?;?(pҿ.70&(?RaĦǿlV1?,V? ?zN0?zz1ģ~0?Q?l`G3h?AU$?n9H?./Nҿ1?Q"?ޤ‡2fɪ۽9{K?{yg?{[|?\j9%ǿLm]%?i?brK?ҿEsbw{ٿ`u?e?i?^Jlѿl?9=}2:N ?pB?pϵzu?鶶ۿSڿξ4?a OJk{v`a82?F8 I??~6Cq4+uI?IfX¿l(5]׿GŢtA} I?56?Wԫ࿝~?|2ݯ?S?xRچ5_v2hٿ¾ZE?PKJHP@P@ fbsp_psi.npyNUMPYF{'descr': ' =7>75/>^qȥG>`?a>f-n$ ?k">3I\:?!| ?kH!?ec#Է?-V?V!?5 ?`b)?#!?Bu0?M<?am5?ZV?nM{x:?|M?-?N??xʿFSyA?"UE0%C?p.Q',E?/X2]KɛF?C:vkG?)A,OF?DPD~dE?Hsp:.D?u3L)FOoA?&n|AOo|9]=? jTPy86?4/9VQ{'+?( S&HRE>?pcRvjRV)"^QST5XIP.&=}يMgY#APhJD\:F5foFsBu.H[Vb= ´H̬E5y}uH߬DG,kNBGm$g}sGz0Fr$] 6DBq?!4iI!?$[92 W#? q.4_)N>#?jD.]dh*Y"?@nTS׾z>@SIy|>¾ 1΅> ٷx>h>9Y>{V?5>#cJ??Q?p?0?rjN?%<3/a?X/"?K1%?$?Ü0-?}Ʃp3%?FA.4?vV#?ʎ 9??>S;:??SI?S[B?[zվRE?'ع"eG8TiH?+p+&T~J?oLLa6xgK?d̘??9ͪL?asDD(L?C >VIN|K? Dg5No-I?DbCQQJ\F?Sf?8SCB?@T3P'o$⾞݄>jҲȥp>ԭٗ:U/\>el]ǻ>`>}K'>Q/u?6>4?F?XL?LS*?+3?h2#?A (- ?ή9U'?]X()?")*?([ ;"2? - +?v?۟8?^2Sa)?-??n$?ƅC?_g;c?u@G?ª>m%SK?]V1u 1N?xb00X%UP?f *:2ZQ?Q=CJ-'GR?&ϴ4I-JEIR?ΙyO;hϷQ?ݑ2R =P?_FaU*ԇTM?@GX$I?[7pZ,*}C?QI\dU:?P2]Uz#)?%8褆]HL;C]k`G0FW\2#~H>ZSEQdRXwxnKqG'V5po#P|OI?S=*?RFKPP{LSdhNUIEUS+RyRC Ty+%n:>?zS(%.ucnR;!~*P Ի?.꽴oMN OJ|wh!?j R@JF)?9E.?HgAգ)0? yih;|.?J&4QX+?tj+6&NA&?3_❜!,&6u ?*Me\yp?cx=.X1?lK,eE>qaȾM c>G$,\wXTF>p)Z!p>^g>$>tb.t ?Xy3}>4s? 8?w5!?lFo?VD(?=G#?Aܨ-?9`5/?޵0?G6?pUI1?:A??[9"0?;t3D?6\r,?8I?["?"IWN?5i|?!nQ?Ujj}WINS?E<7+63&U?%ɚ1m@oDW?&Hk8)aX?p P}Dsn=X?*O@7Tz!6W?VSXVmg7V?~9\߄T?Q2ѽ_bˁQ?B8\avK?zJނbgjB?fX(0KcX+3?PucPo>0@Gc{62?'c*!B rbJեK~cջ` Q9)^.i!UO|'[ZTO/W?qM6VNaWYJDAQMdZUu0K`ADRZQBW>LZ6]}o6?-Y"j!W.j9Y3>#;%1T`ZYF%?+}WR.+g0?WNLrv4?Ѫ FHT9z5?n7LCby)5?ξ< ? 2?Z137lA/?`¯)hx ,'?{RXU?еE^ cOxXj?Ί Cw’>Eվ">Pi=ΒEALj>_dsv>i>i7>?eW>w.?mˁM ?zp4'?e,4?N!`/?:(3(?YԾB3?$7ǒ3?Qx6?H r=?E=}Z8?N! ]D?e7?/XJ?f#ņN4?ۡP?),?eCFZT?w|'?ͫW?闍L ML:[?9$072,x]?<\m5E8_?f`O4}4~`?_U4``?VW@'[cjn x`?Zt` ;Np0_?5c~Y\?.Xie~vX?4gqUfS?gYQ 4iipnL?j%??bSz*ek?b=olckG6hjkyjhH]iiwVzRV1gs&Xe[]w7bE w`&*`[7aH]*#Z' b-TڄY-blouoL4NblAaJ!Z/x"᳘`ݭ>'hK>]u̢*?eFZx8*6?ݛ^IVS?v&Lo]y>? &UeEw;?8ý~)>7?'3ګ1?;8U'(? 49F$Nѹ?4zLж+?@&侸xZ> J_\ >_> >j =>'b`н?xe>]1'#?8X}?`/?ź>"?76?dUb0?Z)?(W?,(6?*LU\? Mg"?gr7a?_8!J%{c?nBe^?wK?e? eMɔ4.Bg?]c.V:[h?lHC^8X%h?!3icobKsh? Qvg{Pg?vkѭ]e?&moQ) b?-Trhq{8lV^?r6}-V??Os͓LJ?%2it D*?FNt]ZE;Ԃ$tgPqwWSs ?[Z^q29rtKa /ke}p.j(ƏVegԠ{.m*ӋuohCHhV)jY_ud ,lX_$c Nl2<Vfr??sl.2M v8^kf)<(]iM}?cDg2S?1?l{dR@?^JaeE?u\^IG?ÝV ~<ƣG?{kdCQtQE?*%HqB?~b$T@ћrM;׻F2 >:)>ZO>Ec;{>4A?<>rQt,?Bg?鏰7? )?Q@? DL8?."1E?D? 1&ԍI?/'&lN?[K?$6|U?MzaK?\?yj'I?JQYb?'B?_f?q2?Dj?Wh"SӸn?τKF@"q?7UUm er?{M9#\`Ys?`~gzHt?N\wn7s?xҋrkKv's?Þ%3dOy%y$?L?sUqI7?oY[!?[):@C?Uq4?/@L?ѕ*D? R?FQ?:V?sס/%Z?V:FY?Eb?*Y?%(aQJi?sJcW?n|Pp?*R?,|9t?˼ .C?B3x?c!gM |?2.$RD>?7;b>R=?aRmw2R?XˁN ?=fa!e?ncȄRhu/?/ +;ԩ~? =*gy?2Rto's?\hJ4Cj m6li? ]r9/$T?˲AsYHӄ5YebPjfy_(LA0hs9H>{ˀlR_&̈}1tۃJv-Dgp*!G @5,ʇdȺ}z2N+$v*:5؈YmgK>* (2`F.jr>SAY=S2*F?y)˼\UZ?I pLMطnb?Y6T|e]e?i-vc f?=}q:e?ihsi qb?fKyn@1?9~o->v |m4?*[^?~ ys0H?g7T1?GJ"bU?&E?V`?R? rU?kVve?*[b?tֽHj?s'4 m?m,vKm? 1"u?$_/n?}?[1m??|g?RoQ7ۇ?J053\?x 8)?beP?:oTcz T?W+Suʈd?c݁3?n@T≿"/$?SѫQz?퓾핿]?u:}rJؖ?P#1g&? ?Z?(VV&ǣI?e?C#nԂ?z_Wq+q.%q?H-=c^TIUQ?'K7-?'?nf?kO?onu?<20d?QÀ?땓u?P?'?^~ݑSX?Aꁽ?ht]b`\?fnXWamn?H憎{F?Yk#x?fB{4F?XjVI(Ru ?=W8%Lƿ=?UV˿R>?IпLi ?Yҿp?^_Wտh;]Ǻ?Ly׿kaץ?!Rڿ7Gn}j vۿ)D7NyEj?ݿm{3-KR ޿ٹ$v ǿ.b9޿60Gпݿ)+ Zտr_'hܿGCڿ{r*Sڿ2=2&߿?$q׿X ӿ'u͖%俠:Tο0-#?^ĿV SxMZ$5鿒 i^u?̙+꿓L?XԮ,*?dmQnMk?# <Z?Q?i=鿞q9?3ĝ^"Ÿj4+?lĊ\-?ג#C㿂'@?pF`S y?9BL}DڿށC?*Ц1ӿ8^?doMXbǿH??jH??j?8^?doMXb?ށC?*Ц1?S y?9BL}D?'@?pF`?\-?ג#C?"Ÿj4+?lĊ?q9?3ĝ^?Z?Q?i=?nMk?# ¿=W8%Lƿ=ÿXjVI(Ru ĿfB{4FÿYk#x¿H憎{FfnXWamnht]b`\^~ݑSX?Aꁽre*ۄ?H>,9XΏ?Mvם}?/\ɦ-hŒ?'C t٠6Y?' A|?/CP?'c9"RE?!},?׳H^?A? {Ik?OiX?7*$u?;}i? Ov |?lƎu?E߀?̌?c ?OC!?+W$?5?.a?T?5!}?<,?CyW& t?9p_2?)"`[?)pQΟ?|J|Ccx e?Sv|+JnK}?.R㈿b?2;Ky>Se!?A>c;?1QV?J }K?_͠6?Q_]U?ضH?Tо]?IV? qb?fSAY?>* (2`F.?YmgK?+$v*:5؈?dȺ}z2N?!G @5,ʇ?Jv-Dgp*?̈}1tۃ?ˀlR_&?9H>{?y_(LA0hs?ӄ5YebPjf?˲AsYH? ]p9/$TphJ4CjYl6liWRt'sǑ󊿰<*gy/  ;ԩ~ncȄ:hu/=fa!euvo{>ˁN R=m3.$R`>!gM |# .C?B3xt*R?m|9tWJcW?|Ppމ*Y? &(aQJiV:FY?{Eb:V?ס/%ZN R?aGQ0@L?,ѕ*D):@C?Vq4gUqI7?Y[!y%y$?LsSC/?/Ҿ{={|>kd>N=Y!?5>9@2%?"y圕?μ2(6?SJ"?L۴RB? *A4?5J?)_flfOBx?žq:H'w?:u1 9v?Ƹcx "t?cٗ|: 1fq?Q݅~D:!8l?Ok(3%d?4'1Ȁ)rY?f7 A?9΀j?r/RA-);W\c~1HcE X|^3ip1mxy!d6oÞ%Ec;{оF2 >:)X"`>;׻>4[5~?p>ȉ'?v=?)K3?*3߼$?ћrM?yWcZ mlA?,*R5.A?O:;WLHoi@?o@aID+Z)"2'#?9X}`(b`н?ie >=ξd >5_xZ> J_> ж+?0A&>!&Nѹ?d4z?0(?49F?Bګ1?(<8U'?7?'3?#w;?ý~)>?]y>?&UeE?Hk>?`w&L?S`hK>]?!Z/"᳘`?lAa?(puoL 4Nb?-T܄Y-b?]*#Z b?7&*`[7a?w7bE w`?Èe]?!V1g&X?]iilwVzR?hjkyj'hH?b=olckG6?bSz*ekj%?gYQ 4iipnL4gqUfS.Xie~vX5c~Y\Zt` ;Np0_VW@'[cjn x`_U4``f`O4}4~`<\m5E8_9$072,x]闍L ML:[w|'?ͫW),?eCFZTf#ņN4?ۡPe7?/XJE=}Z8?N! ]DQx6?H r=YԾB3?$7ǒ3N!`/?:(3(zp4'?e,4w.?mˁM ?eWi>i7ξEALj>_dsv">Pi=Β>Cw’>E>cOxXj?Ί >RXU?еE^ ?hx ,'?{?7lA/?`¯)? ? 2?Z13?by)5?ξ#;%1T?"j!W?6]}o6?-Y?QBW>LZ?Uu0K`ADRZ?JDAQMdZ??qM6VNaWY?O|'[ZTO/W?9)^.i!U?~cջ` Q? rbJեK??'c*!B?0@Gc{62?PucPo޾fX(0KcX+3zJނbgjBB8\avKQ2ѽ_bˁQ~9\߄TVSXVmg7V*O@7Tz!6Wp P}Dsn=X&Hk8)aX%ɚ1m@oDWE<7+63&UUjj}WINS5i|?!nQ"? #IWN\r,?翂8I=9"0?V;t3DqUI1?˜A?޵0?G6ܨ-?`5/VD(?>G#඄5!?SFo4s?*8tb.t ?Xy3}v^g>f$;XF>0Z!pmF c>0=$,\w>E>[qa>1?lK,>[yp?Zw=.X?,&6u ?*M?q6&NA&?_❜!?QX+?tj+?|.?J&4?գ)0? yih;?.?gA?F)?9E? OJ|wh!?j R@J?Ի?齴oMN?;!~*P? %.tcnR?2y+%n:2?zS?QyRC T?gNUIEUS?KPP|LS?OI?Sr*?R?zqG'V6po#P?QdRXwxnK?ZTE?uFW\#~H>?2L;C]l`G0?&8褆]>_2]Uz#)~I\+dU:\[7pZk*}C9@GX$IFaUF*ԇTM>2R =PϙyOhϷQJ'ϴ4I-JEIRR=CP-'GR *:2ZQc00(X%UP]V1v 1Nª>%SKE^g;c?u@Gyn$?CY^2Sa)?-? - +?V@۟8c)*?[ ;"2 9U'?K^X()h2#?xB (- ÐS*?34?F?:LQ/u?!8>N'ξ8\>u]ǻ鐾 Хp>Sٗ:U>݄>NҲ> @>*o$>^Hj?Q>K?+x ?V7s ?- c?? G$?53l$?\2"~'?|g-?͹e i(?774?Y5(?~h_:?!K$?҆ۮt@?~&7?W|NC?vz?4F? AV uI?y72%OP2L? D 3-vvFM?et<{0CN? U.C*N?Ms8H<@t N?x#M>2DmML?PIL\yI?YWLCRY E?$pTOyA? sYUw9?hECnV䘸ǩ,?\E_VYTL?eFVrhB ? VQN2S@T4PVI*N|K9asDD(Ld̘??9ͪLPKLa6TgK)p+߈&T~JԹ"eG8TiH[zվ$ESI?![B?yR;:?RvV#? ʎ 9Ʃp3%? FA.4$?œ0-./"?ȳ1%rjN?%<3/aQ?p?0#cJ?{V?5h>9Yξ1΅> ٷx闾y|>¾ >z>@SI>GJD>nTS>%?R >dM?j?r?X?FXlN?:<?]dh*Y"?@#?jD.?2 W#? q.4?4iI!?$[9?:\?ͫ&٢>?Bq?!4/9VQ{'+ jTPy86&n|AOo|9]=u3L)FOoAHsp:.DDPD~dE)A,OFC:vkG/X2]KɛFp.Q',E"UE0%CxʿFSyA|M?-?N?ZV?nM{x:M<?am5#!?Bu05 ?`b)-V?V!kH!?ec#Է3I\:?!| f-n$ ?k"`?a75/>^qȥGϾ6T> =7Sqq9FPKJH2P@P@ cgau1_psi.npyNUMPYF{'descr': 'ڽcr=,ܽM$Q=5K!߽CQ=PN;p}=lFTI=nJGشT~<=ij)la=;C齃kT=ׇ6V =STCW(e#{=)["qŕ=))oeisL=PMo=C,D(镮=nw:Ҩ=Ċ5E\gm= !>#U=fke^ew*2mesM Р]eI1d<~Q6DBEQ6* uǽ*؈zO Kkν`6nu.<ӽ5qFV(*ܲ#W(%*9pa!7\v"vk $fF&](8*  O(HA-%SP *χ/))]TP>0VQ\oN@P0)S3wBCYWTYUDO\vV5cFٕUNX RI 3KZzLhNLSZo\AX,_O ^oH`Q }`H$;S7'%Tan%uFU^bc :nxW1gdw1ȰYpW`f\D^hʶ_&!oIjZ^MvaLXlF=7?cU(&n{ %4eŻup|$BXg*ٺqVei^bs'?Bl6"uߌtQvo$vDiq ?Sw!rӓyKl+tpbr_~{͕Vv6i}/?SxsqЌʻZ;(%{ b+`1}?I1!I :|K]ԁ8 wPZ\vϐ`XtW@R종/5ATFp鉾y]o]QQ[' oڋ0Ơ"j3'ˏ ''6b{OXhno"R㠥/m)MEBT2roN /AĔ+R`wuOy60xZ^ɐ[z7n| E0ŪkU%#餾vr9v<$: K2uQԜWOOUu9Eʲᛪ~tR]CK9$S쭾\ZD[巾,ʵ|:߹>dлʰWDƱqL-Ͳ0Sb)9!᳾)Or'mxQ%þ7m$"0Cľe~ck &TXƾGq̍pM Ⱦ?{6 #0 ʾ8m__74̾1༾ؤecoPξ~Mv`L7AXоĻ43娞ѾeaCҾ Q,5tԾeIXw¾ʩ>־KKSZþ.<׾Cľ,پw3žuw۾t=P)ƾ3 ݾo+$ǾcR<߾6k%ȾxHV${y*ɾ (WX|Lj3ʾy 1{?˾a2f*"bM֮̾fKW];؏"c"lξ\R*[ph{Ͼeqry쾒 TCоb`Mо T1GѾgxQH{Ѿ+GQQ);Ҿٺ,}錬Ҿx:_&iӾ8 6E}tӾdS NdMJ ӾT;9ԾdfP skLHԾDLַ/SoԾW1Ծ}_8~ԾS-mhaԾI WRT;'ԾVښ&^4Ӿ:Pk 1OӾ.Sc<.rҾ-X ܤ-^Ѿ;6 Rb>оyw kR.ϾN.(T@̾PL& Ⱦ|e2/*MľThNT"Xezo隵 e#kN ࢾʝ Лz>ڱ$m~>@ٺ>`gtN >G[$>:>jvY>K [Z)>kn!ŊBG>"7LU> $Yr>>% 1U>J&1Ij9>w]'ޅ!> M@)ݮ*>eɺ*!?v;fI,zy?Ga-7rn?݀pt/W j'?M0?"W ?}pfD1_} ?ʌ2-@?%rW43um]?rQ4ڭL?š6F9c?9'876~N?~80&56?iY9?<;{vE ?SP<7g*!?iaFI?>w:o#?(j?e2%?Y@ D鷝'?5zA1v )?N .QB.JN+?8 GeCzs̿-?7/ D0?bUE6%j1?wF|I\2? PvG~b4?? ILC6?KMJ5X 7?/Z7K(j09?Lhꇢ;?` `N`#Ϊ=?> NOErB@?=]4(P. 8A?=G}Q1IB?pیQRyQ|C?*/2.ShlS{+Q?Z-kb\[閹S? ]OWT?h^/_%z]}CV?m[2`#W?JZ`Xx.EY?5Ѣ{aVZ?%Pbt5l\?{<c Ys^?=~Cc՟/`?BڞhdU2a?,ue':"NDb?vaCMf_dc?e?5R,gT̓d?xh+3Fe?wq hÃ#g?-^i)7_?h?rjU.?Ԯܧ p}M&y?]*$yb?iB%^}|:?&7ف e?@b\c?ZCڀW6N^?>tqNC缸1ت?4%3B9Bdϫ? mj}ʹͬ?3 |)ѭ?n\z% ƶۮ?|Wnxj +?6 UvC,D?U)t]R?Rm~/qۊ{]m?נ[m9,k:?oF H2h-bӲ?:vb,,ƀp?uo{'W? d'BW?X@ۯZ7?l?a@^!Zc?}r?+up? Iw?!!zθ?_S.}?U?zb?4g G?d/hU?EFe?SJo?_q˻?lSٲ?/j Ӓ?Ty# ?gń\?Yܐ?Ť@\)?˜'ھ?X)?x(?t˿?QrȖ?Zq@P?@ބ?}?qr9|2?i)?nx?e/?L&M?;w?2$ϒG?kInv?W?`ԚC?}x?,X ?UÁ9?*,]?G\ {?%~?֡?>&AY?^Lh?Q#?˾{?>??Jq?U$B^?> E'?V?!ɣ?f+5?t)?5+ޝ?b?溜x?\nZ1)?+h? `;r?z?J83?HoZ ?엩8?fZC?qIvq?3p?ЙQM?\' ?#4,p.?Ѧ$9-?%aKV?& "??BzK?D??i7?J?;AY?7z?Iqz??&](?RߴPL?&3g?4k_?͒M}?Sp5?s? 6c?\|n'?V_?+߆# ?Qhm?Eq?&0?jg0`&?0cK}?E0?)܃?Fk7?e?*';?A>?.F;?<5?D<9?<":?\m3?P[?.rYG*?cY?R?}9?/ ?YHzB{?x?M_ ?~!^?ҋ$?C7?|9y0?>;?U???%|T?ScfZ`?l?h 6?e1^8x?0/;?- Nq ?Nj?d?S ?!*?9zd?aPR?vE0%?G?-?̈?>8|7?]N0?D۠?(c(u?c?6T?#lY?v-;?E? t@?.?Mh2?W!Yt.?tF?>d?k1g?S?@Cݵ@?,`?\ݶ}?g6^?V?j?,V?> ?l!,?ٴ8?>w%c?L?Kw?r?(w?6q?/?b?㼐-?VK? `oE[?Yq)騼?/?K,(=?Wؿ? IT·?_?}8??JAdà??+᪭q???Vs?n]?Os ?ZhTx?K@¤?B^ ?pD&x?|Ҧ?>~?`BԹ?A@Y4o倛?2dﰏ!5M?A󛿤"?.vO? O)OؾLL?szJ/?[zؿb?!=ٿ\xUs?MLq8kٿ5tv?=:׻ڿn/j?ӹvۿop=\?֋VL,ܿFuy?e!%ܿ?t%?J:ݿxOS?/;޿z?޿lP?W߿p#?C6࿬!;?|D;_aSY?t7>کp?Tj? d7K?P az 6+?8Ӻ@?}R= v?$}Y2x?3I j5zj?~n {}3?OY]AL|=?wCi?ò+hjmf?4#T^W? j]y >SA?F.V p ?'D*O6=?Ub}.?Sd㿾ː?A08G?'_>俚?R !I4sao?0pi+c߹/q?ܢQ T2俒4i?l5俒4il5c߹/qܢQ T2I4sao0pi+俚R !8G'_>俾ːA0}.Sd*O6=Ub p ÿ'D >SAƿF.V^Wȿ j]yhjmfʿ4#TͿò+AL|=ϿwCi {}3пOY]5zjѿ~nxҿ3I j= vӿ$}Y2@Կ}R 6+տ8ӺKֿP azj׿ d7pؿTaSYٿt7>ک࿬!;ڿ|D;_࿌p#ۿC6lPܿW߿zݿ޿xOS޿/;޿?t%߿J:ݿFuy߿e!%ܿop=\֋VL,ܿn/jӹvۿ5tv=:׻ڿ\xUsMLq8kٿb!=ٿ#p !^>[zؿrm⿥F޴׿wO0⿌N3ֿ1#ʮP-J "ֿ[II܋S~Uտ`LxԿ`N8sӿ俱 ̢ҿ'?M4ҿKs [9?ѿ~俀Njп%@ 俦/VX*ϿyXͿ=#SE˿m|3G餀f'ʿg$J'|ȿ#!忬@&ƿ o 'ſ!5h]~ÿ, 6|UhN[Jl줒U2qm' ׵kj๿忣/~?B^ pD&x?ZhTxK@¤?n]Os ??Vs?+᪭q?JAdà?_俀}8?Wؿ IT·?/K,(=? `oE[Yq)騼?㼐-VK?/b?(w6q?Kwr?>w%cL?l!,㿡ٴ8?,V> ?Vj?\ݶ}⿓g6^?@Cݵ@,`?k1g⿾S?tF>d?Mh2W!Yt.? t@.?v-;࿄E?6T#lY?(c(u࿋c?]N0D۠?̈߿>8|7?G߿-?aPR޿vE0%?!*޿9zd?dݿS ?- Nq ݿNj?e1^8xܿ0/;?lۿh 6?%|TۿScfZ`?U?ڿ?|9y0ڿ>;?ҋ$ٿC7?M_ ٿ~!^?YHzB{ؿx?}9׿/ ?cY׿R?P[ֿ.rYG*?<":ֿ\m3?<5տD<9?A>տ.F;?eԿ*';?)܃ԿFk7?0cK}ӿE0?&0ҿjg0`&?QhmҿEq?V_ѿ+߆# ? 6cѿ\|n'?Sp5пs?4k_п͒M}?RߴPLϿ&3g?ο&](?7zͿIqz?J̿;AY?D˿?i7?ʿBzK?0aKVʿ& "?/4,p.ɿӦ$9-?ٙQMȿ^' ?}Ivqǿ!3p? 헩8ƿhZC?U83ſKoZ ?'`;rĿz?gnZ1)Ŀ/h?bÿ躜x?)¿<+ޝ?!ɣf+5?G E'\?Sq\$B^?<?vGi'=솀?w}UQּS?uφ?7d;N;w*?N*:l?A跿A6A?.*¶e7?><2}N/V?Q#ž{?>&AYWLh?~֡?*,]A\ {?X PÁ9?`ԚCyx?~hy8?[Ϡ?L+?wyξyK?ա EpQ[WA?w^ns@x?MJ9wJ_Z?B<] ?$ϒGeInv?L&M;w?nxe/?Wr9|2e)??ބ񘿸}?6rȖUq@P?x(l˿?'ھX)?kYܐ@\)?'y# [ń\?la@^!Zc?B(Kc? UC ?X@ۯZ7tqNC?缸1ت?ZCڀ?W6N^?@b?\c?&7ف? e?iB?%^}|:?]*?$yb?M"? =>y?tr*?vHgĤ?^?-ȯ+?!NE?ߖW=??)݂? ? ͡?+'ă?5 ?iŃ?Khs?d[?T??AYw\?d?%&?p|%}?+'d?y?{Y?ؚ?̇p0??G?m?FH\?{΂?`ݪ?g}ᖂ?1_~?~Z?NH9?WJ?,9ٸ͔?ց?_7?OG?Mm ? F?G@9?Q"Tk?Ұ|m?R@?uk:Ũ?>*ϊ\?;k^֏? ?OG4i?G@Go?+@ ?抣~?y?.L~?ܫRt?ޮܧ p}?M&.?*\YU|?vg ?4@g{?citdۅ?5(z?ф??[ z?%ǘӃ?[`J$^y?ނ?&Ʊx? z?Ox?$?k4n\w?v! Zt?9Tqz?;yg%t? ;y?5ls? dw?\ r??v?ƻRr?kDfu?5$]q?wIFt?^S(q? ϵ4s?*CHp?#/r?# p?U_5q?cE@zn?Gp?8m?8ɳ{n?Vl?C$m?^B_k?|p]Ck?rj?US?J-kb\[?閹 NO?ErB@?` `N?`#Ϊ=?L?hꇢ;?/Z7K?(j09?KMJ?5X 7?? I?LC6? PvG?~b4?wF?|I\2?bUE?6%j1?7/ D?0?8 GeC?zs̿-?N .QB?.JN+?5zA?1v )?Y@? D鷝'?(j??e2%?iaFI?>?w:o#?SPw]'?ޅ!>J&?1Ij9>>%? 1U> $?Yr>"?7LU>kn!?ŊBG>K ?[Z)>j?vY>?:>G?[$>`gt?N >@ٺ?>ڱ$m?~>ʝ ?Лz> e#k?N ࢾXez?o隵ThN?T"|e2?/*MľPL&? ȾN.(T?@̾yw ?kR.Ͼ;6 ? Rb>о-X ?ܤ-^ѾFSc?5.rҾEP?Z 1OӾ,Vښ&?^4ӾY W?RT;'Ծc-? mhaԾ?_8~ԾW>4ԾDLַ>/SoԾdfP >skLHԾl> ;9ԾzS N>mMJ ӾA 6E>ztӾx:>\&iӾٺ>,}錬Ҿ>GQ>Q);ҾgxQH>{Ѿ >\1GѾb`>Mоrqry> TCо\R*>iph{Ͼ؏"c>"lξ׮f>KW];a2f*>5bM̾y>/1{?˾(WX>,|Lj3ʾx>YV${y*ɾcR<>06k%Ⱦc >o+$Ǿuw>=P)ƾ,>w3žR<>Cľʩ>>KKSZþr,5t>eIXw¾>$P3娞>saCM7AX>ĻecoP>Mv`_74>1༾Y0 >8m/qM >'@{6  &TX>hq̍C>e~ckQ%>Um$"0OOr>EmxJSb><9!᳾"rL>-Ͳ>WDƱ|:߹>XdлʰZD[>,ʵG$>DS쭾tR]>CK9dʲ>ʯᛪWOOU>&v91K2>#vQԜr9v><$:U%>#餾@E>&0Ū!ʐ[>7n| y60>Z^ .֖~>YuOϜ[>N{>.g©fnL>i E(|՛>ʠtOD я>rtQ`w>U!-N>/AĔB)ME>!T2ro?no">3㠥/&'6>b{OXj>3'ˏ!' oڋ>0Ơx]>?]QQ5AT>p鉾/XtW>R종/8PZ\>vϐTK]ԁ>7 1!I> :+`1}>!I;(%{> ?Sx>=qЌʻ͕Vv>6i}Jl+t>?br_~{!r>}ӓy iq>>SwQvo>$v?Bl>"uߌtȻVei>^bsG$BXg>k*ٺq{ %4e>ŻupE=7?c> (&n2^Mva>Xl_>!oIj\>gD^h:1ȰY>oW`fT :nxW>1gd'%uFU>]bc$;S>7'%TanH`Q> }`W,_O> ^zLhNL>SZo\RI> 3KZS5cF>UNXYUD>CO\vVЈ3wB>YWT2oN@>.0)Sc>>VQ%13:>(x>TP.&/8>'}!N 5>DtKab3>B ,IUT1>"GO.>zK^ErX Dn1(>ط@twB]%>ց}QA %w#>V=qK?]G!>Ѓ 3<"r>' |:Y>zKiZ8̚>}b6[-$>iQ 4$1> XM2))]>*χ/  >O(HA-8>*]>(f>F&vk= $7=\v"%*9=pa!*ܲ#=W(kVc=>V(ƚ=ΰ5\=U_[lv@M4=(v_mXx%-==Fo#Ufke^ewgm !w:ҨĊ5E\,D(镮noCeisLPM"qŕ))oe#{)[ STCW(ckTׇ6V)la;CشT~ڽC4p(6׽PKJH>>2_gaus4_1001_coefs.npyNUMPYF{'descr': 'wB?-,&?mտvBVsⲍ T?H5?x{?;?)WῠFQ?迢?p%?.V -?e?lSV +S; Y?[H?Hv?.Qeטr?4]?p4LDh?s ?a@ouW7>P\o F?7v6?K Y6Z?S&xF?^ݦڿLOF_9ÿ׿ ?Yr=;?$w˿`@V?4^,FĿ\mpӧb?gyԿo<-7^?b>V?ž?6H<tHh.~QƟ~ۿAͲ v ?>OQ@EϿz?hMǿNH#_cAMK~₵?Kt?%^}ZS?Ģ?c'kĿ[^?Z?_8\S?ғQͿN!tNbi㿍EXlq?N7T?pXM^`-?^51?U.r6`NSSN?OJV?F ??)9{*V?BHL d\Zp*&`ÿ= X??5XQT?-U@V ?Bg_'?x3d(ѵ꿜s9 ?&̋E%!*ӿDA?@.?HQH?:洿k-俀f6{ݿ= y>>?^m\p?v,:[?/zQ?zGǿ4wa`Qvg?ҿ`WĠ?ߦچ?p%?D?c?K9KOg󒷿'RNۿZ?IX?.@ t)m-)ӿ%odD;- xRf :?@4I?j!?mзz?`utֿst!_T3+п h(hzC} ?KK?Fu?F=?jhNw/RҐVǿ8dV?q( ?bK-qj4*\?.?T?u?.5?Mod찿1RsSտ!įYq7տZ ?z?0r+??qߦX?t?/^ש?]@_R47ժJy1Lֿ=ɿ%;?is? pL<ǿ\B⿒C?֞?>7U`Ͽ!K?I3ѿ@ϷCzܿR&Z?fmzwvҜ޿1o>P?j`?7 5? ˮH?G};?:[ʅcǿ+EEϿe4?xoÄ?"4JԿHHQ ӿa+? N{Yã';\r?6a/}߿ë9"mΈ? Q"?Xq>(Ǥ?sE)1 >e!?$gL^8"ſ p?W Ͱ?ˣ.kuC{ƿ ڿ Q? 9?[Z]?G kt?~l Mտ )RܿPT(?D^?:K?{ ?8+@f?9]tQ$dm$5PV?,VF:/?7]\?}>?dҿ[Կ/УZԢLf鿮!>?oY|8пrgp~ӿ/ۢ*?psR ?R?(c%?Swҿ(Gju?RWH}6صr>п~;tAY6>? /?1?+xGD?0g޿1gُY?rH^he ?b#O?ΜV?ZAڀTˁn2+ ?Uۿߞ&#?SfY5?g KV?J?q #&ÿMGݿ~\?\5?Oу@{o?:?GN?l?pl??W䪷 {%ٿt E{Id_r{އ'"vn?0?#u?miҿcY?&wI?PG0?U)t?v %?k= bןJ޿H.iq/aT+@Mܿ5թ,bw)?~n?+ϿpdA?E)"п3~j ?::?p c?TCctٿ*SV<fwؿWk/v?OI?\7?س$I?~XԿ?!l?>gҿew?H#(Uda࿃%i<t?A?; `?]?)}ƭ)2T0ܿ?DO?3o?s?dxv4˿S?fy ?SJ*ҿW,*ѿ)@?hVc8?ky)?Bvό6?bQr"ۿHo?Yyt濗&x?hؿ},tϿMvb?w?/L?!)?LͿjU«ӿ/s?4˿^4i!?['Nټf㬥Ϳ̖0Xn%ݿ>g?W7?c_? yX쿚g1FWٿ}>8\6y?yt3? eϿXE?pX@? A+ƿ5OVϿ5};ǝ'?p ?0dW?R:?e(5cnr xzdsѿI,?V?`-,7?;迤}q[%v˿$^Mu?T}?DM?ˑת罿Fƿc@ƿb9 4UFU?B{(?/[L5 ?s̉e?d σy*m?QYuь?c" $?vA,#?>{j¿?̻EO?qH@R?E&?Tݿ~pҿDJ"?_e~?|BSֿP}Oݿaɿ1rҿ$?3~a?HOS]ݿ ,Wʿz\?/4D?t ?{,?ﲪ{׿:}~Wѽ5~n˔nJ?r ? ɿ.R?vUow?8? )K,?ŚHw?Pir88=޿Pߜ2ſ"VE←t??x(B߿ neT?gU ?3!KT?%+3c#?$eq?p?[J*ntHw:cix?lؿPQ?O=#2?;@Uuѿ6]E? Ɲ?~Ïѿo 䒹sūe=ۿ7!\?hkߑ?:\3?DAV@z Ϳosѿ.߿uG|w?l,?LԐU?UN ?8(ƈ޿^k~࿶i.D?w/Ej6?h `۬fly?lc7ӿ\*{Yʦ?}JkBůۿ`bݿ@`0?Fh0?O߿2?/?Y8? ?PwC6@Xhgl+g?1M7?6MfDb?fkT?2 Fq寿Pο3"Կt񿝪x?Lq/п;pP˿Hz?пRp?o@?k 9Ʀ? 3ۿ+S3_ܿ4sۿPc?6? ?̐?QVnUxҿD3Nz'\U1p ?{[u7ۿWDuđ./ؿK7zT΃R?U*@ ~/濝"hZk怒'?ѲRX??, JпZҮgv?j?EV?{ʿsQѐѿ.?$E*cgj9o `fƿ1D?@h/? wR?pm½ſB"H9?^33¿5׿ǁ7??pc? ̢i.SϿm+VlJ_?~_ſ+~]?31gS?)Ǐtp2.뷼!czKK&?xsӹZ?7_W?bえhXο&.(nٿc5}? -4Ɖ:ٿUсvZ?d(?iᆏ?c1=?\Y?a㌜, G+fbYgY8x?6[?5Q?V׿_W?vN#N?3r?% {?\g`?,ٿ\:;5 nϿ&]_?=r\')?`ֿn?E )?0#K?ڻ䁙׬?xٿ^ B+ݿ?)@?ټ86o?7LgҿVnJL?cW?,?^yx?[߿^ɠӿA&GpJ 8?۸*NH???O6F0ڿ2@ƿry`Mɶm`hY?Aj?G?;g28?}M̥?RFϿ'pq`ZF~'ҿ!$vԿ./pE?rX?Ia? 7eC?PA )Ld?Fn ?lR:撬?LaD [ δ#lsWtZ7?0͗b??H{(?C?|U AN?gG?nZ&bNpտ o>?cV?>=MII#"r?H0(h?u\?uAC|,p%?~kƿFͿ~ND?"tЊ`3Teؿ ɿ} տg(ޫ?=$L?0k,-˿EFKIhh?ҿ-S?NqTԿZv>\Կ|tV1̆?E.tq?+??? 9s$XӿKruzv׿ [B? @چҿh` AXk=ҼJ?y?PF>@l@42?D{?~G]mϣk;ҿ)ŸF?8?¦@7P\M׿K:[i?DEjJ6PbK?q-QM9?)bX?2AѦ?>9Nt0B?2~1U?9ߍ:?Qi?4>=ؿ9[Ji.hȶ?KJBo 0T4};\˿~k0Dl?C"?X8l?>?ɿ2u^Kֿcǿ@{f.?%.%H?sIr)ѿ{[,?Ioοֻ?ڞܦ?liWF οv"E?>o5r?!}9ƿ--?gdi?tx?. /?r-,保ԧ߿s?sǩ iĿq~F?Q;[ܿr߿n㿶(?N\ ?|NȸH+?B[Em?j O Rp,࿂ !,翖k2?7Y?Fȿ4?D6` {zֿ*/&z?E3ͬeؿ-)W˿A sѿ}o?*1x?#|hw5mx7 [?ٳ?Η@?5?ro5?ֿ?cL2\Rʿ,qp|'Y?IԧA8? )QĿc?`kҖ?Id=4?v }#? ƿ**u޹*"ӿx%@?(?$Q7?Cӿ3⿮qvy?MP"Ϳ}9[:n f ?Z?EJ?Dv?]5;B ?X!Oοu9#V.(?z}H???X?Q &'h8/ZK3?)k? /=J?fTǿ?ؿi{輫?H7̿jrs?ưe?Ԅۋ?=/:μ$ɄKǿ2Bڿ*]n ?~+gοR1 ȿZX?,ڻ?7xk?ҳ=\?^],?λK4 4￰aUj(޿Wb.Gͪ$j]?= 4?ܟ4!q?| !_?= @HܿJ]0?Ii5?_ ?ҫtg|vIP|?\迬"D?%?_Kѽ? ;8xJlT޿ybٿ;WaĎ0?;jZܯ?Ndɿk|;P?KM)ژ?6ӿbT꿬8 Nz $avȿ%~ۿ,+PI?ǐ+Bo? ?;Ã"q?-DYr,޿DAiLfZ:?xjN"пxɏ}I%%?WSq$駿mPy[?dOi ?ھ?+ kM¿GS=9俅ѿdTfȿ(d?MhO?St?+Gq$ ݿt f̎up2? FJU忪xtu?6Ey?D i~ȿ w2?H, ?ȈUl?gͿIT񿗅{Q0տ9?io ?R|?:qտYhoE?*cW'?lrۺ?ֹS?(1? 0p?PNh,ῴ|׿vnxEӑjǿqs"L?n8?յ ?ӏ7?if?%T?}lG>?W]3Մ?٦I#Ay[2 B~?o@I?r]`?0*C@)v;AFe?Oe?NۻпVV `qۿ[xؿ B=?Ņ!L@{f?e(s?H1_kz??ZhZϓȿ>?mQ넗?n=?=8b?Hs P_O(?ȌvͿ.ʿN@+ ?T{k;t?.wۿp&YtE ע9JqDڦ=gW?Bd?ˍ[?9" ?{Q ?"D5ſTN8ҿGοR}!,+W? [#? w?k{V&пJQqԿ e?dؿ6I(׿dΔ\ڿY{w?F7™?YS?k=?E #Ex>ӰпE $.\a?/8? F{??K`Ww gG:e&`gC8˩l?\?_B[.$?@0~N2D?i`?ⶏ?U*rȿݿ^y ?ǒ%߿9?+տeE#0޿&CwY(? ?1 iҮ?Mn-?Z(Ҍ?Jxd;߿ O Ե̿4s4L??j>?NTؿѿU7?lFo?w>?c2J ݿQ&P8RIvnp } ?ܑ?9{7v)R\w?-2R?#[("WѿBǮt׿!n|?T/9?)?Bc??*4W׿=俠ӣ?/ʀ.:(Wt}?9?yx#llkտB^'P氿n$?0?35 fݿ(,͗?ojEag?FNzRn?_|Á?%NؿqXE>dv쯽3֏?Rk?ՙ۷dC宔?Hwp>?'?FEiZ$v.#s헷+O4?J$?u*?PԿpje ΗEڿAN̓շ?zr??4|u?zȿO;9? ; ?B"/+X+uwX]|Gk(Կxzտ2r?㊛s-0?Fj=ɿ(D?Iy}IIsҿB}?1)?ySHJ?U_Ib?,տ/ J[`qcǿAͿ?^9$?:젔Z޿Rx YOf'Lп8  ?4+>?Q׿G?dz?pؿ ?pȿ< т*ܿEw?|?;f.?&kbM?FC;ӑ!$޴ؿw翄x"?*yhֿrW- ݶ@7 -?!a"?(?-?Gɠj?PrD. ?Hzщa`7#Wꦿk,[￲a{?ŀп5;~\pĤ?G^ӊh?RI?eGe??ҽbοJ~ѷOM%R}um+_?L2p?㯬)~z?htf؀e޷vyMiq6;4B??L10?ҧǿ l\%?r;U?"&+?c{}1g#.k[ ?j4ҿSs>ј?ݔ?Q?*J?v5ð?vҖkºȓѿ2L®#ԁ|-E?u$?r@S?[ò}? B]PϿaۄD?msG"?#WLݿ\ڿQ.z}ltY9E8Rj俅4?x؅?Ur)Ϳ$? roT?]fij̒r俔@wq-d?YZ?YzR ?%mq?h8ow߿ھm? &p ٿ(׿I;O4ѿ'?w>#o?]!ko?Fثܿ'A@.Hcտ.2سûP?3*?Կ?Y?̾y ڞ 2d"Ӆ޿D ?ʐ4;?.t(X?hK?Y7¿W3߿u"G ¿E7;?X.3ؿYKW-?L?N|񨦿^? ?>?k,ӿ0`9{ҿE>ss/?m,?sI,ǿhRr?6s,A;?>y,?8VoѿUKh V3?R4{ʿDjP,? i>헿M :݈3˿D{n? 1S?D=ԿgտXVϕ~?$bI?a5a?I4@Mο ݝ4^`dl=`Q?H?iʿ?Qe@PKJHA`x=1_gaus8_1000_coefs.npyNUMPYF{'descr': '*4?x/?ou?k޿O0?xm^?/R7qwD?̻X-п*'L=?u?x#HɿY nYx?sO\?jUۿ|{?$X< mv҃2x?r7ڼ_ KK$ <:?tg ѿ^(?⸾?b]hR谿Q(?ر#"}H пb>m? mпR7sĿfE?/zvÿVuI׿δ9=?/G'п4?ĽO')a?J U @fҿg̱[ ?jA_Կq*?I|ÿɲwʞOx?|w*b?t(?~sÿȜy̿iRR c?i/[%ǿpdF?ԓ7t?<}j?aG?'[?X޿\G?mL^ҵ?a Ŀc%?CqIԿqiԿK?@Br?bt׿L9c?2+s2?#S&տA }ɿM?yh+#Ѝ;+п*mn'?-ʿ^V-}?xj1hltӿ7??IͿN} ˿3?0+??[6cҿn^m-<](ӧ+pe? J?Ǔ ?5~ؿ?@f[Dteɬ GZ? "{r?ԿgL?A W|rͿX?I%?pn?RֿͪGpa? š?xO?BsȉɿX`7CѿL?Br$ѿ`0ů?6F_i?̿X7?&M?o_yT[~ ɠlb? ʿk!\@?DXuLߥ0?7 ?C ֿC,?1D4?pOܿ ?Їf]M0B?\E߿vL!?Ԥ6¸?<⿴|O? ŏqe8"%k޿3(l?F\^3t?iNҿ;?$!>s'?T(? u?2W6?Nڟ?_d4Q5㔿,h\k?ZY9Uտ-v?R_qڴȿ8r3˶? ٥#Uѿސ ~J?$C8]]^*8Bs ?c>!˿tm}?6>ʿaf8,?yP@{ҿpFm\?hP x ?/ԎGҿ֝"?\@H=? ȿ9:4I?-)+:hҿH? 3?B¿+]/ĿqL?C1ɿŦ?b>?̙;➤2 ֿ Wñ?6@X?x$3׿7nxȿՎRX,V,G?!#D;?Ig?~Pſ;S?ͼ5[?x ̍?yzѿfoZZ?>Kw?]1տR!6lNf?5 ?Z7fܿVd?d;?0zHrÒǿo1?0 Xp'ZYؿqY'{?aB+a?"Qg3տ]iTl?T^%?Fѱÿ?5V?e\aǿ%%?ſP{org l$?οHN?Y5Ϳ\/+oʿk.)?ӿo/V?bn?uWm׿̓4ԿGB:?!ԿZI{.߸X_?()t?2 75r տށė?Og]e?<=XؿK $?唆Ƶf?z@:AG&<ӿf}!?d'ÿ,0?L;@ǿ%"Bt,??BX&BF[Ē?/Eݿ\ǩ?-gZ޳?{<+?!_տ)Y"[d?]zH “~Z?2jƿ/?}#llXc?z5]Y?}-HѿO?h;{qT>P4?Lb!h꧿ݭSc?pvt*ҿ=wZ&??}?MٿȀL0?AYp/|kпG? u?P)?Qgſ^KdgzV?L$w2h?[|)ǿTKOZp?卒qR1^? `a?=<ͿK-h?Q`?5U:߿y /?aBP??ѿZ'|?vS?Oh޿iϬ?5?RQڿgcD?>N}?: qrB?jA s̿I?"3cfȿbrbØ6?b=|9B4 k?2)RXĿ=?:QUxwL,_wݣ`MPz~?+c?J^"?3Lvՠ~yq?gH@ĿE調_?ԷտyS5ȿ?rZso?sZX?c)#VZuV?jsHpԿV~F?ST?.L ʒ*IKv;^tld?s!ʿB6ӛ??v,ּn"@P?|m?翴Z?V}[??-^]տj?.|U ҫ?x.I?$_ "~bfޱ?{3?^;7c?0d? {AӿrvY!/n]?ҿKO:bewY?YssԿb{?~;?%Zqzϒb¥9e??dǾ{?AASɿ#Y?'^?2u}ο\WY=t,]?z8e%iѿ.vx?K?KӠ ԿDC2@7?lj~?pycXĿq6!I?:QSѿ<ɿ@?wHĀnṷ?4;g7p?jC ƿW?;ǿ_Vʿ(ٮ3|oH^sV$? +H٦YοHհ?4NF"F z?4?׿Tρ?I Ua?}f׿P ?v=̏?Q0ڿ_ͯ?ʳN?VF=?/h? gEaeȿ!pB?Vtz^).Wxud?ʪWƿD=|ƿR嬿?LV?I~Pɿf7幨A kص7\r`}?ңFNۿԿIr3?f Wc?FM|WտM@Ŀh?au67?в[ۿLrƿL$u9?Ŀݥ¿%mao?^Ų?%տf?LwʿTKUͿԁVs?E3 FX?mJ<'˿^-o^^¿V ?-N!@^ ? c*ݿ`o?nGe?'a6Yjȿ ,?h2ſ7B1ɿN#*?~Kʹ?zܥ=-Ϳ=g`?D/<t?E?C-_?<Ҏӿ`]_sD?2e?, ǿtN-Ϳ`G?Y씭?2 ݪӿ{p?ԝ?p~#߿r4?EѿF@?N?U'r_l޿,h-?߂ն?PTo]WD?>ɯ?)6ѿar?!ŗпap?ٜ)Lv?Z>m\?70? ++>?%M ĿeFz?Q uϿs`7Nn?=?ؿfD-?A^ÿ<ң_?Ԯͮ,ڿN`<5?JÿуO?`1?Z哟 ſd#@?(vjwڿΚg?+̿q?Lޥv?495̿eȡV75?PF9R^ÿqIK?$R?$_;9ժ8o{'!?Dר?:2{ w $)5?2&Կs ?BAWFE?ĴM!9x?Xp?A.տxmi>?kmBW?a^g˿?ː?j X(#?\5?@sѿ]Xpп3}?vӓ?'5:dc^Raݠ?C9oʿra?HLp?%xrvӿ~g ?|N;WɿF uK?~񙼿PI?^Q |ĿRI?!ٛĿ[?!R?䆰ԿiPoFj?4b̿\zP1?`ϭvؿ9U?%vDq1#.ٿ% =t?Lӷ?)W0 ѿv2c?bkTVf?t 5agp?|,cɿb(?,*喙o?l?QBRϿVp2?F߼˟?{v\?"?zsc0'a?cNM?--޿X^`?$`?4u'˿g(0˿H?La\­?~- ?I?Q տe?D?D$Cٿwzh$?i[s,ʿl6$U(%p?*ڿLn_c?bԲ?B1ο gƸ?̨,?x#֪?s%Jbי{ѿ8R Jٽ?FbA?ؓ}C?qǪUƿ &q?i=ܿ ]pbp'?ݡ>o圇ʿPKJHY1_gaus3_1001_coefs.npyNUMPYF{'descr': '}aοlu 0?pC!ѿfOj?zY)]; ?#U,"Ƽ ?h=>o?Li/?T ?,KX[YאӮ?,բb|Kn7M?yg:Ʃ?C~D3?^n>H?\>ֿUY?)G"?6ռ\׿ZտiC?2ɅB?MZuv+I?hfݼ2Nث?`V 8jHu}r?⠛8ѿ f*?D>pyG{?P8q臿 7$?ȕ>n鿎LyA?*3?E&XEZ?(j?PĿ0ZJ?5Hx?\1?4g>ƿ'ڿT9} ?DY?sw?__)n X?TJ?ս ȣj׿ ɿEbRk>9?,v}4W?Xi_q?;%J1UĿ޵=[]?Di D^@40uu?\تD?=f?ݳ3n5|+?Fg?h𿣦}?fc L"EJ?݀?Si-οfP~<6*?"?5@m ?R6bI[8?pqHa?jjп!,Pu?b8!<2ӿ@L``?LTK^,_Jޚ? 1gfN?49?;dE? Ȇ!㿸8^–?$p7?%V{?8?Hˢɿ\b/?ZG1?Gl4bxr? 1Xܖ@ 9xl?yL߿O?az^_C?@пvC?k$?&4g4ѿ6?0 oK"{?8jnO?̲-ҿzU¡?qK?xžr>?~?ޘJv翸Y?m9d? 0F=NJ?lN?JMl8)l>?L4&>?N|?lgB$ds? {?OƙNthCp8? Kuܿ^*f?RPdYf?t29y ?^Aڿc: ?mmSI?ްN^I{?pS`C-gʄ!i=?`u??qj?3?H[l>D l+ޛyd?`c/?x![Zr?A)M[bQ?2 㬿c9!?&Gd)?q8 l8NҿҢ6$?ӗG鿗>2ڼ?5H)&?rع ?ܦoſ@k~? jlm>C@#i[qd;:п@dz?V,?Иj忪d'?ݙ ?İ?33y? lړ˿@9L鿱j8Y?, пY앞v|얔 *H#z?V0#οjZn^|?󒀦?Wؐ9?aC8?{r1Nf7m?hQ4FNY׿8PS+?n"Drf؄[YY[?h38?7U!D(V?GH&?dp?w*>Ǿ/׿{2jJ?dQShPc?4H񿚆L,?̒B60? *4Nʿ,?J淿FBnV_?;s?"I?naR .I? ?tY!|?Oɛ࿔B?./<ϿFlԿ .2?֎l J?L9忤%*|*=ѿdmR?I dǿ]=#/;;j?m|]G?0Qǿ@V:a?kƇj< A 庹$7JV@fNbAS?V0Ww8`?E? ?Pٝs@ҽĦL?F-??S?2ff2 61]#?W@1- >@m u~wݿU?>j3?kY:V!M׿I)?(Yte?9:տ8s%?5$?7C2ݿwMPrG?ĪĿ6qʿʵŬy?vx|俤|=^?'1?㤛=?*[.t'x?Ƽ_ٿ&A`ܿJIw?2/?^zۿNB")ٿ€?,㩡? w?B[?dŘ6zP-y?6?Ǜyw0D3K?%oH??Ua?,u{1r:?&qP?ccZ4.PJпKy?RѸL]]#=T?lHW7?N`RĿ@ܥN|?Dzù?C\z?δkYAw?pxx(km=ο^? z_?ٔ. DmxտFDY-?I31ݿ߼8DJF?EN{('`WBB݈?eA? {?u_A6('?==[(?b6Z͢?F5?NS*ێ?E-"{?B"?$0ĔH/ MIt? ϒ!?:dj-?yaLNv?BSY9?pw&LgRWq8J?@hT ? S?@Ku '[|?` ب?Z,;ӿ+{ɼt?֞H=4h?3zp⛰?QZ;sտHLg*?vϊQÿ`6>"1u?e$?R_D'M)?q?[E?nT|0?d?w8^֟?dZ}S49?R#S:%۷?l\}ݥ[es?"5?ݿ z?Xƒ@%>?B~PlOa,6?SpP^?A$[?dVKF3??]%;6?iO:ۿ }u?7# ܜ?$ LN[?Q)k?CPE, ?Z[`N?Q'?D֩,8,ܿvE AW3?)?i5:B%"M㿘?w@g I j٥?4?k:9|翢/>xB4SS?n kxͿ!y5q.ٿ$g?>.V)?ZK%zթ?tGizm`?gL%뿙~e?gN*ml?t͟ pj߫?R\hpUt?NH <5M?Xjf!`p? ULK8(SL@}S/8qֿD9,-* ?^ _ $lY?kUn0Z>?]H6(?`Ö|?AtnmQcȸ?vF NSݟ? _;5?Kjֿ߾*߿WZu?\Uӥݿ vp[T?`xY.a@m`| ?dڿ??k]qV?cu?k7$J,1@Q{:i4?g~Y 'Nӿ'uZcп?zા(ӿvP߿l'?j/kԿ F?8*<^?}E?m5u9?W*̈O]@a?sE;w? ӿHg1]8S?$iuM:;F9?X-i?#J8/ѿHep>2_gaus2_1001_coefs.npyNUMPYF{'descr': '?mzp?Vjj1#X#8*I<\࿜Uا?P@?{S/o?NBx?nu!?A?G%#v?ʮ!L¿)u͸bCFo֢**V$?:aN#? ?^=F?:T^^2?7cc?8LsmྟlPlG5crs tӿq ؼ?fS?D_ _?9 ~ D?P?H?.jl3%LkQ XwB4? h|Uѿ2+Cv+rǿvOyy.c?/D٤?M`?TF? 4ڿOd?nMa? [a?viP%?6VVWq@~翀(-A~n1geJ_'tky-' ? ?jE?LG(@Cj?̬?L}ڏ?TDQ?WŴ>lD?+XG\?֞D#I? /Ͽ#\QathHH῀8/Tտ?n%?kf?y?Q@տ_CӿK4Qٷa|i?ٳDz2P?5'?`s?e?"ʄ?]ݯ뉭* M|f?SK?Pi?z1_?BzS?"oS*-Fk5tޙͿnjQ?HXj?Za~=࿨:#l?TۿM퍂?I I?K,/?sQQ?(Z#P?YC#?ND^lH^ mݿ~ސ޿Ȯҵ?+<9-?p(gg =&5FɛֿQ׿x"?2eG?b?M>u?h|Bƿi.Ǥ?"^6>/G?𿒏Lа=֐?/⃻:?Z?wC?.X'I?uaI[?:?H ߃?.91k翮Yo?|Ŀso MCI_sUV5jS'>S>RRz5?bB@r?-@ g?q>a?y﬿V]@a]׿+?ARd$ E%M j5?\]%cdPʿ,3ӿRcѿǰ?nqO?Jo?q, ?eE?UJnoR2ŻTnǿC(?w\w?b{iVS?S-Y?m2zտg>ؿy,H9wse{~Կ3"&n>.ω?:I9o  Kݺ6w⿊bH{g@[gm@ҙm*?Us?OPL{ #ȿ;l?_hS TR\]1"l[?",2ֿ֡?:MNfu?"&7N*.;ͽ~97? 7Gп̬ӿc?n'?4Ys? ?T)?̮?>d?ރK俤Ӳ꿂a[?ݓo`JĂMIp5(iqqB?#**P s?7٨?ޭ/?V/ı?.ݲ!ؿvϕ^r!FBu?rBu)??LB`$?4?ӳ1?;?c?okw?HQ<)LBAMſpj`H}¿OV4ѿqq??)VѼx?x;ufXk?>k #?*8( ڿY@ڿL~rAĿ6?@jL?"^?ot~?7r*q?ʎ@?Dà?7H? 2TD%? -ݿPf" W}לֿml ?#G?!ݺ=dοN(?uv/$?Jriпac pmT6i xݿۗ'?Rs>?~Û?pF?O3VѿxK/(Cq3 TLɔ8@%8& }#?yοqhԿCiL?p ?62?6=ſδ;D>ؿנ Q+K40>0?XD?޽?i4?&}?GRK?ʵwTAaZ/4(?lO?s&?fg?L }B??h?2^ÿFK߿)H]<ֿ=>#?Yx?:;$?ٴ텮Zo?~G?9h?7K?mۇ}C俢ae(^#8ֿ%A? 7?))6b?(PÆ?EwtR뿸lB; ￁fk1d`?L,y?nB?q$@u?"@Nz?.8񿪓E1M8 +ѿDkH,и? m2ɺgA߿8[S|ѿ=u??B?ӨB?jM?#OE?( v?_Mw?2?t/5 R5Ͽ8W.?K=?njdO¿J U, +0ψ鋲~Bp"Y?֨[?-?GR&?$&=+ſSzmLտ 0%dA"7 ~?]w>{?Ђ͠?HAp?օڿ@^?< LSC?)Ch?vH=lp?{帴?V?WĿh'ֿBP[?^P'X\0Kйr!P?@7q@?>5lO?'?U0aFJ? Sÿ\:!ɿ 1&8^"aM;ڿݐտV--?Y.?O?OTՎ? ڷ[?2?HiIR8IN.}LF x?K?AR*п?fgOtg9⿈SZ?{fX=?1 v?\:?p̬t?~l?rD޿":6ndԍHr?2Gq,Рܿg=:0ms } ޿ ?W_?M,?\M?8{]>[{DS9Ly^? ?&Wր?L(#M?V<*uܿ+t9u?@Z#%рu?+U?B?uۧw,<>0ӡQ%̿H& r߿ethct?om?//?<(H?hr8⿛"`GwF0?uYK¿|!ۿhgؿwLۿ.P7nĿ?C?RX)0Sƾ?=#E}c)?~7R?;:1=?Uj5ֿ{qk/ܿj̱w/9k Z(lЧ8uU("#jXe֭㸨:ce?,sї@?5?A?Fs+]?%F떿,Kbati 72 Կ" "<Ƅa?)}OпA:?ޯʰt?j?Yx?W)2?俽# ¿(#jQ|?󃡷?t~R?Z,?rT?@QÎ Z5E ySsqs:_U D?* ah?U?O(7i? ?dKXў2?Naя O6Rkq޿'޷r?9?Ngq? 3?TXMa?!yʡd Q^ڿʍ?zQuĿGb޿Lu⿟U6&ڿ~ "k?J﨔6?0m¿o*2"?mOI׿8Ml.`?]]m?x ?ѳ6Z?߿'(C0̿kⷌdi?޿@+"WԿ~1yǼSYοY?g@NP3?)?s*6 ?1?\[ Y ?r}?5_?/0^?p[?O˿tϿUyf[*8CwO_)?,?2_?ɉ?RBӿtYJdҿ qXT;?_B?7wѮ\?X!?Mzܿ(Q8Lؿ<?V*;FP B]?AowqVTҗsͷ6@ۿ_/Ȓu?G5I?9b?2@4r;?+0sgUlR?!Iؿu.oѠ?."ݺӿCϿGB応T񿾱п=܉?d>5?ݶY?1'jC6Ͽ٥ ̿7?֒?vq1MڿlHX?G?sII-W9ѿ}q??JOP?@XǮfN.W3ؼ?Nk3+eV?7Zeܺ?2`V?`oNp?l mԿS ?@#+?xFcOl+ǿqXfZryݿܦTg3?gmlfѿ Wſ!+&?@$r?Qf&1,? ?jݿ.naޠA0Rp[dY4f?i4?zf/W?:pn~@ǖ)Ԃ,?grBS޿Uy?<$W4,Q h:?Sfm?C#K?e*lD?i"ڿ{k?wT̜U?,Eq?5<:V3տS?EWȐ-gI?Nt&ySe20?J `?eBM?5 ?<ӽ ֿ C'?;LcDx?T?9k!qe40o T?!џ3㿰v?QΒ5聩g???L???5@w? VU4k r^ĭBʿ3FmЛa:D? s?@f߿SGd٢?>OwBҿ%>?EK{%?ݨQU?" ?}ߒ?Eʑe 8rPpPlFb8#gэ??ΐ:)?0?lk?L-o?/?aӿt5P,?` ]z-Oѿ1=ПZ*L?kпͮϿLӿ̽?_:O޿?%Gnѿ5HDe?@ ?8[ s?UF?\b:Av? 8?YF r?_Eoy5Zvo}?ާ`vZ+ac?4L㿠$ \]7¿4Nc(?gqJ?|7h?94?jC٣ᅧ&Zp㿈ԧSCX 0xhRѿKБmz?Co0:*0Cl]?i?lX?hzqݢ?cQ>?ݣSv6=%?sfɕ?9׳'=8[Jm~BBWXyPo?ꉐ?ZxA?Ǜ_?ڙ?>?1PD\6󿗊5t%V_]ָ?k- w?;n?ڱ?\ɗ?_o>?(B?? :ῨӇmMBI^Gbÿo~ģ3;-tkUQOnȦY?+@6ϿX ʿkb?~S?J2q?*`JM$?+pt?;nR߿pCƿo}ӿ| S?I#?Rʹ?:?n_I?~'sG?J W¡bNDR@!:`$@P<|> ?SŸ?aA廗?运 A#ɳ?f2,C+?o2.M N:4?fOtrֳAMQv^;/?6?4/V༿ ?Cc`?OCo ƿL pۿs9ak\d'Wh ~?> ? '?uy?0ʲ)M#?1ZI¿^gdῢoJ?M߿뢨1B 0oXڿ0"޿T%L|?e>{?)Ҍi?ShWp?+bc2?D@*? sfOM)˛ ?Ɀ_:LɿoD?~|ۿsIf(C[ÿPcAؿ?e?9~?P1?)~^?Ji пKuί?x[ѿS(TkBտ7w?ąȿKg\?j{ӿWt??*V?7uD0?Ysѿvb(緇߹?/Bp>?>dӸ?-22?Hp?I M6*<򿢎,N3M_9q,k}jK^2J?-ȹ?{0? @RO3?4@z̅w׿FٿZPj6`@?$5Z#OS_00%ٮw6u?r( ?Sr_)o?<ڬ}%ލ?OPg lK&mR?Yc??-<$?fR8!?6ܿuȾۿ,h{DG!ÿ{xg?;~?V?Vg?_opſ-7?>M}8esA?1&H=!ǿKѿ>I&ܿV)?l8?%'?p KW {P7Q %7 ps3?m:ÿ? @?,Y¿yR?ތ?O?8G?),w0ۛLۼ -_6?E0 ҳ? ?]P?(?0”?Ն?.("t?V6.?|Ad?_Q,'[x,DaSiB $cdA%C6?5?m> ߤ?x<7@G=_ؿf +?iHUn e-տg(A??w?Dݑq?tj@MB#?\\|?X ¦f2znj%Cڿ932%9$0?ϳ_5? &b?Cl?QTI?[śxW0_A) ? )dD?Ȥ?B[?]SF?!݆9?G{9i&?د?pjT휑 , Jײ?4RP3(ο۸tl3?? "?A?0iq+*?{?p3]ǿ?Ks?av?׭?c\G5c*6%|=B>Ԕ?RT֣3Z?Ɗ?嫆?+v(?0vzSGX2"j%?gۿD%H? aZ?g#"?pnÊۿǓ|c{tƐ ?Iiտj?Rҿ%V|2߿u163|p?=Y-?t;,ʶ?f-ߙ?)t![tʿrpbԿ?.>?Y=l/?}g1y?$ֿ0;EпLlmſOF9@I1_b󿴡'??ֿ6]H ?J7AK?,p^ V,@G4S߿ j?26[IֿW} H\œ?#n?>Nδ?opJbئ_?$NۿlSY?J?vP^?Z_ E堿/=cR l?"5lx?f?ct忋 q$|' ?F1f翚t?EA?u6?`\?&*? +?i|h] 3(r QË?/7¿tVA?I|q? 80?@o?9zeх?d-e?*?Sh?rK?oBKտ͍Bݚҏ4;2Dh> çTKY?$v&?5п^Ƥh?RY6D\8?dm?![0 ͿgfSE?phZoΔvsGT?=6Y?͋5G?."L~K?مQz?ix?B1'F?G[i˴t;t*$ٿ+ioѠF+=!?4˩?=>_x?A?OY[ܿDzпD\B*\NxΛ`F|_#?ﶱ?3?X?p@)ouވaĿ$BvjL4m?`;?!ho&?x1!?T#n?p?#*ɫfNxٿ)2/ONW۫?Fd?N8?t*%g?4-l5JbZ)hQ ^x|пp.#y?چ5p?DI 1?&?__0mf?ԯ}:Q8Ffay q7& dۚJ>4%?O0?#>e?[aL?&o<`f赿} 6?G3nҿfƘֿ0`ɫ?"i?R-9^FIS>^ƿӽKJT?`24̿M:f迻Ɲd>[?'t?)+?ai+? DY!?c?*!r?knk[PjHY?DNLrjF?t׉翔:Regɢ#|J|n?Ot 9(?VG?*|MW$?ۧ2?% ^V|?ӃzϿ<h?XKH?Sm?|?ƿ?؅ϻ_ a9⿒!PShMѰ󵿟ѧӿ2mY?|beG?O?@OlD?/ZVHſ&?g4?zG<':?6R?2]ȿ$Yѿˎؿ))ܿh/?`݅vk?5;3? ?rp?:)"`?~עn?V, ?BdV޳?9ႹݿO%?MPKJHaՂ>>1_cgau6_1000_coefs.npyNUMPYF{'descr': '&?_^>?, do? s >_(˿oͭ?t?5?}СzǿHnWo?(Xx?p$ؘ?#лuԿkSLҿ DPӿ8"Ͷ?!1q?w`wk >翷K1h¿GN\?͒'zN?z7Ŀ-@ӿ޿HF|aP?%O?Hd߿׺BQnk:R?&zt?*zㅺ[$DɜA?OBSYs?X״"ۿgпM)g? FY߿d޴!Ŀ׿?:Ӥ??[*$qˋ?O䨚 ذ N-g?2 ?.?g69 .rؚ.i<ڀc?j]u垳?oUϳ?^LB?j}: aƼ̿1GM?Q]4l#?b?BPƍN?<%?ve|少ҿ vĿ,,gԝ]XƿI捷ȿ#.dv(v֓?; v/_?G7?_u޿eٺnL?֘eu?٨ѣӿZ}'?|5?Υpɿ3S{ÿXHw6j(B? .>?se?Xt9?2&ʥ?bo?Y8u@%p\Y꿐ĿW?w5:?ŗտ&m"?ۻDo㰿yPa(~v? E?ԶInJFʛ׿,i4?L"t?jME˿Q?Lm?7JпZn\ٿ;FM򀿼VE|u?^Te#?2eAտbO?۴ss@t]߹چÝE9Չ?Tı?8v9n~"}O?va?Ϸ {fٿ3ZvС dwY?7H8?,$nԿl2V?c]w?䝿:=޿Gпl[?vW?v?H!)?@!)տ+>9?]h'?.F>?\2.ӿWCߔ%xX?Q~Lu`/mv?"?]pτ?SNvؿ9 ?W n;?ډO C&;Se|$m?Ox?g>WѿG_d!Zʿwӿrի?B~+2D?*P?QJŢ?8꿤^ſhV]G*??Sc6?vԿM ^?`?KP]ĿqsRݗedS1a?ݴ"?ʺTG2NĿ)&?#!V0to?RzÿȨF?l3?/@'pɿlú?A ?ϬH*?xؿ{=<ؿ]oοYn&?ؘT[If]Pk,?a-U?j8m5?Kgi̿Yhx?]9` ?2sTq붿/*G?GZ?աſuпQ$x?<{?^}?oĭXITƃvpǿvE?,Y?1Ʌ (̠@b5?dFw ?pV?T}㼿ֽDoULſ ۏC?fz-.?QCl¿ǎU?\n?kK;ں^=jͿzIU!d?M?}*r?l҂?Ow`*Xڿ+Ϳ0Jj?5x> ?8]`?3?Eq?J -˿[XEuмׁ?3ΌX?]gտO+ʲͿ1ثYɿ}?djd?$F0dUl13?8xB%?nԿ,&ʿӿW{(?@?b{!?UhqZF¿.x?z?Fv z+VQg wޕ?iֿ9?`bq Ͽ`n;Կ%r?}?1?3Hпy̿% ٿ^#Oƃ!?tfq?bA?F-Wg\ÿ?XGr?[vFTƿe:Qпx? a?=?e6rտ6mzƇɿ[ ?'?nO?|,\|R 'r窱ƿ+:%7Il-?Td$?_L? @?(-? p8dɿpҿEXֿhl{~ ܪ??Kkÿ%r¿vgjeϿ?? )?gԿI$]?0iEzNd¿#B?11|?TV"?\ĿQFzN(ZjD;*UDQG?4F S?zy/ PEn?E?Vs뉸ˑ%n?f}?Yf? B/15ۿYh4Ѿ+?)#?uagӿ, ɿ?Č{Z9?Ѵ.?9o34h5#䲿>L?ę?WgݿљX?(y [?1Ya@5?J9mj޿(5Ͽlbr{0J\|?l)y? I?Y)¿AM@?[-?x_?<+LʿQbMͿT1G–?Ncp?kt?ܿ$<ڃ擿X[1Qd?g<ſjv_ڿp?HY??|?7jIխ˿ g?BLw?u 1?2Z^)g6GͿr?#J?+!/0P˿sBe(Mֿ6œ?=l?s+ȿdm9+t?h?u;q d Y7R˪:|&Ğ?_d1@?ICzg퍇ѿQ#]?p8ӒN1T2E¿o`"?b̦?|刺86RˈU ٿGg2?6:R?V$ym?b;ft뿙lgͿ:[tz#?zhR?X䊂ͿNE?ph7~eWzx)ը?Q_?yI?c}Ko^$˿Y%?RF?_ mN,4迤?ʿJZ?~܈?*ZìA'spGTֿpؿrSx亿"0@2?g?YV9X?`]%Z?Jzv?m"V? RRNj9n?OF#Kڿ+l EwC?'-"J?XQ¿uշAD_ƿ|ܶ!3пhuM?tpk?5B?J, ›? [I&BƿzM?2Üt?."׿\LÿNKrB?BՆ?NaS޽?ВA?N>˵?1Ev4GܿX ˿ 0Y?v??لFG?^?)t.#ҿ^OʿX&ĉ?X/a???dp?0ԷD[ӿ|SXm?Z;?^? @K)Me忞Ղ˿k5?R5?sÿ!M?7 ͽ?&"?($? ƿ:mg!ؿ ?9:N`l?W]F?F^f࿰ !q??E|Уg" S5:{?,?x0пW{, ?ijz[?LǩV2?e?XPk .R\<ѿvKQ0?yu3"qfEĿ"?fj?nv?ֿ-bpɿ?Gq?|%q3?V, ?t;ʿV>XrXTl""fzd/1?KU?|-[,o?|._jѿJ=q?t?EY?lޝο?e}&\Z'?vș¿xÿމy0?u?|*;ݨ?/5'@տH$,zNw6??Qu?3i¿GĈ? ŗH?E3j?Ä.|Z_?dbvr?PM?5>A`qs̵x}?ۓެ?'&B?C 9?D)׿$$Js=?5"#@.J/;?zpeP?XŰ?R$(B?(OiMےZϦ=e}?_WͿEi>ǎ¿y ??c9-?;yvпaN|?Ca?s' T.ѿo7࿈wkeS?`q?1MHkͿ<,͖ǿ hٿjrZ¿4Uۨ?n0?Ed੿TV:r¿?d\Ziɿ&?<+m?JV?99\̿O?Pr,ÿe%1?B ?Px?2 px?,rÿqsNYɿQm4ݿiF3ſZo}J?ϼW/=?Y,;`"as0̿4D8?LU?ϱ-)?f'IU`e˿cnTBP@ʿ##Qr?wVM?uh~.˜rͿd7.9+Y?%՘?wXĿUnſЀ$:Yp@qۥ?gӢ?{ i?ȷIw PʿSc ??ԝv?!"0 2ÿ޿:TcQ?C`š?R4?i?TVy?ִ?k4ڵҿnCP6*4g?^h ?"q4gjk*?Bh"ô`8ـ?p0C?NʆQw]ԿР"Ͽ[+?fw)pD\-?86?xS_T?۪dlݮ_tb./ 8hv?^sL?x?4]tlѿQxj?܈)Ч?V N˒?@WY̿& 线pkc?HU]?$ ?G1^IPH{cͿ@r MF?$I7Ek?~?ADɿ4-츿s pZä?&˷?|OQ՟cѿ(E|$?{ ?L 8?@/ g4ZϿXڶ0U?P@u?:8?9\yp'%ѿ*Pt ?w?@o^ ¿ ?Z:?!Tr0JqlNܿvf?ԑFwV>K. ڿGj3(N ?L]+$? ˛?Ys?iɿa&սT`k?*i?7^( ?? 泿AWfǿia?~\?gt8+=?GAY?؎p쿊;8pѿZT뫆?\|]?!/ܵk/gt_п2AͥĿ–`vg?rS 8?ee?e攨?)Z%?]߿p|xϿ?㝜UYsVſFiy3 ?XAR&?(ff?0ڿԔ!ƿty$V!qb?vE: ҵ\?%6*)?}oG?}_[b/d\Fſ2 i?MO:?k^v?N?A ~Nuӿoi?DAޮ? 6?3?p\׿ 8Pǿ2 @?tt?/M?XH?KiV}Q-v' 9Ͽ$_Q?K%?"$?M`?(h˿1)Gu16?62M:z?dD >":&'fҖ?KQ,¿"ҭ¿_hqִ?IfaA?3?d C?k;6ҿHuӿp¿=l4?|rdm?f{B1?2X?9Zο ?dyT}ý?O4ֿLWnb@LRO?^[Rʿ?Ҙ?^ԫX4?s4Ю?ҿ|p?rM?eU@?@6ĶJ=ӿ@>?pc?_e?{Pn׿fɞIt?ֳdM8^׿4Rh?ԥX?@9ҙ?lP}3Z?IG@?3~LmPY eԿɎz|S??qA ?V$GQB7!H?Ҹwc?N:ʿ.[6^ÿѿl\ Tx?Yo*Sɿyѿ/"[?BV*?XʔT?J1(ڿ`H?|Y?>iTɿ VP6l` λ?0#h?R3Y_ݼr"U!a\o? GU?'(q?J}ϰ,ÿd0bĿPAc?`_oQ?eܽ?.I|ſƉ4;w .?@mz?FAzX?(s俊|Hxֿu?A?^?=Պ7? {3mpؿuY?I?ϨE?-o? ٶ׿'Rs~ǿ> ?`—>e?4/ ?pN??ފH–xпOcCfd?ml^+ѿ2]:?.̴Z?w+#&57?rֶǿB|μmϿ34 ڿ4?|ÿx?~[$?^}?8kƿdXd.?⒌uÄ?i<-ٿWIgL.BӪ?5: : ?XlM(*?nܬ?]ٿ:9\~L\T5?Xk᡿x6׿7j=?%? h@S%uyx?XY?\!I0 濡s}ɿ ?_?&9m|?DS?BA5HIȿ.q;ֿ[J٘? ?N?iۿ&BG? koRw?_x ? 2opſXP+ IC ?`j.g ?tw5׿3yvſXinG@=0|?pM?nУ_aſ`~ ?wʛt|?ҽ\ƟN[=ڿ 7(9?sZ}?|P̿r.R)Ϳ@&"ǿWǟ?ӊT>?\{?|qHT-?84ql?)Ǩҷ)G_Թl\ ̿N<_n?%0X?ɢTn?:k'|?A27ӿKi?4k?GfN? wIQ H )J6'ƨ:jv1>K?f?<)ꬸ?FcKۿ&Կ?iu?>$? ?`I7k̿͠,g?hlh?࿍׾i?DJ^?3V`b$VxQ{PĿ~-x?hl@?*6⿂7.VN}?"eɿXѿP!?_?\R6G?>&2=igi̿[x?=hޒgKբ?Zs?*?KԦ?f9{A?4ĿyV^lcr,U. ?i?ma}$ݿĿoꬼ?RbzR_?&D?PKJHx>>2_gaus1_1001_coefs.npyNUMPYF{'descr': ':ԍ/[?s?j?>$?\FwfUZo?/ ?x/c6?PY ߼k󴿓Y%\۸g"Ϳwx?Wty(¿ C7޿('uƿDZ2r|i?<%8??%.?lK?rN?: R¢VPA!hS?c??p:@#?j3B?qq$?a!=?)ݝD?4:v?i#ϿՏd??7o?~?Ǘi9? 񦅟?*tܿ5" Pڿf3?p)7r=L>tԽ#𿂾>u`<W?lǾοQy??_ܿ=]J,?>?{~gq?Y,߿&ߪ?C ſrB?(`R?d?0M$?F*?lD?@?,uͶ'naXВ~`~t5on!G?m OVA:?td11~kzDaӿGWC5ʿp3]*_*ſ:Ui?ZI?uu"Ŀ| yϿP*o￯\0h¿ZN-Q?o.sc?,?]1Z?p@Z K٪o?tߕ뿾"A8Yh޿Q0k?vc'?HxĮ?%]3?&Φ&?,."R<cؿ?o?vƿ)2?Uv?3?%m\I?6 ? + ?i ٿೠTݿe.znewп3  Y[?dž?'?uWD? dڿ%\?->LO?;L ?dGd 7[?UQ-пe|.s$?6CaҿxUۿlBֿUʿ.WpĿC7J?JYTH? j.?l{G?BK?Gz4?J|_?8rͦ?>E*U|?T(S/? F"l׿ă%pJo忒M_K:D?/.EO?xs?@`@ښr?$ӿ:$'8|4\:^ z⿉-HF{ɿe?Z<$ Կl?.5v8ӿ6wѿNpNrch틘B*lӿJΏ+VLG16ΒX?9cǿ_p?R<ƿ6,q/)Ŀ ?|Qw?H~OI?K'"w?@?JTMQT0qyי zS 2گi?M.`D? o8忁yRZۿfh|?`J=o?-֫-/?10?\?~ƙS?})B}X?pP>¿IbH?R "b?ķ:g?Q37?k?5?d>?3{_ÿg̟A;RڱFyEW&;?p?JK?3?%:'?,p[??* ?(xep2es{Kal.n Gx G@\?M7߲Kٿ'C߿qUDځ{Khp5U\Su,EH>?Г!*?5?=?+ S?^3?ϲ_&ÿj}? V*7?2(vܚ??Hŵ?|rBJ*7 CpBSC&s؋,Ƞ?k?I mi?;Ct?kԊdѿ5QѿN z sοῼ tĿ= Ŀ0Lu9Z?a(־?{̷?- 7?|QN`HH 4ݿ2 ^}ӟcLJj.5{V4o>l)? K?@Zˀ?߿?9 fҿ$r5?G&נؿ9M!dUϿ\F f?q ?Xn?ud=???킛?{=U 񿶁Uk߿P|迆k?Z? f[-??bʿC㯗ҿ IA޿c!Ś˿x/YǿӘ?.p?xnFҿ:w2?9C~n?j?q᠋ʿ_1ꑽf/ ^Ŷ?+^?jM}?H̿tF} ?#'ە?n>:qe9;CbPLG{v}^rֿZɅ?q3? ?? G4 >G?˿n?O ?_n7oj?/v?XIi?R/?,`?J,?!/*WV?(s)8˿Ϙz˿t6&y?M1̿>FԿ5|Wؿ%us(3Ϳb?+ۛ1@'gQQ}?0F? AJ?f 6^F ^޿6.w/%ۿ?dI}A?1j?iN?vT?03K4~8Qru7J7 R&n?3 e>TJ6o?pZ? 7mנֿʿʼĮ?A? ?q/P&@zv}G޿aO??efْ\[>l]o?L ? ? [?pK3?2nm47P?PJ ;? s!?tͿ ſ|ڊx'61a?ʹ?G@?6!!߿wQ;)ƹr)_R; f?KGe4ǽ3? #xL?rA8?`OEg6?;ci?u e?IRGbdQ2( 1>l?sS D?tB?Cզ?;ѿ3]zHHghCC(mz^?n)SٿdO׿|a?z?k?H?b?ٿ{#Vv?~]n?H-,?8"I?-pt1?pwԁ%?|de?mӆ?$B?[SW[?2ӿiٿ`9Ycmdeb쿀LK+s(1V?DY{?jTQۦ?b ?Pģ?7i?ca?췘 ?|F޿l)`pvzAĝV@'F/e?TH?壞?&|3YۿhT .?N?j6y?8),心T:Mt?n@YtQdZڿ7R“׿yɿbN z wԿ5$LvŰ%?f#?9dt>?g` ?EV1ʿa9?(qFb?v ϿJ͖׿J"V1ῼDJ'ҿYܙPe?OBd?jg]? lH̿m0m']CD򿥊j*̈?B㶓U??^?̲;v_?`$m?q+ ?:y6??:?7@K?T?Æ Mſ1[ؿ>>$?<.9~kltMx*l (]:S?T)?ff P?p3@>rl@Y?L ߿,\ֿ2`rO 'lP>ѿA$T?AX?>?=\!@f?q"#?`3?|;?fMZ$#_UrH?-4F03(տ߮DZ#{BV?4)"ܿ@x\pҿ2;w*8̿ʟ?TQֿ>_轿ӷ>j?R?_+ܿοr# ?LCN?Y]?S?3ck?Jpg.l?Qy?=?+?aN3Jςʿ6(cba_#ߥ?ܳ㥘鿘rDᅪFHl;oaֿ1*?FR?_A?SDRʦ?t*?9 6a?Y>΀ȴ?є;??Ԭu,?dz?\?r!?bglٿdJ1l¿XAHĿe1ݿاP]?]k鿸M*kZQ68<ֿ3*o>AtӋ&ȿ=<ܫռ,?d?6ܗ0ӿ,i$ݿ3ç 6;Կuݿ?y!6?l⎖?S&W?",)=?/L?~"?rI~?e?sL?o/?`(ۮ'?f"$b& #;T+:3\f9-;?x0>@9C?l#?(i?9Hp`U.?Ф?G?$?P?X+?6~￯\{ݿjּ)A֥??T#$v'oec1R]p?gmѿHWο3ơ?m 6?,'%??qLgt?%Iwտ W?b hdǿaf!sxt鿋o>H4?WϢ"?4"?SS1%@W vT?!4 @Ӿ>?k@?*|ٿjC*h| 38,t9l?.ZxEMDS@ܩ}? jT?Alؿ޻R:] Ŵ4?8fj8 ABA/1鿰 x>?A#?J1@zЛ@~LI<-?J@p{ aG-6? ~пӨ~ޥԿ*Ԟۿf֍ǿە;? ݿ@?\!r} %&񿐉$g6Ȃv`AC˿ꫳ򬿽D_?^wƕ?~K?+?`Ҫ۪?um6?>W s?)':?Ep ƿ辕ѿ""=\\K=+㺿b'wϿAk(ATnwLRrd?ʠO?NS?dFF?}?`~# ?/,D?$՜FK?XsۿԜԿsܛÿxڿPTj Pcqٿ-28'YV?O?,^:F!ǿ|`@c?$HM|?Y?xg?Uϵ?uw2!п8-Oz* [EQ,Dya +% 갈",g*u?hɹi?Pv\^?CV׿?w~8s41ʿo#&ѿ Pi)WkFi俾ǃֿ8`!U?\J? ý?i#?6]?COQ?B$i忤]UҮ¿֛4V!g< VD{ڿIJѼ@rq???̔$?=g(?p:\Š??5{쿋iܿ2?~?.Jɿ`6ѿ-]A?BTxJ?MJ@3?pǡطOͿQ]ҿAg{ز FJ?vtfɿkl?%%&? D?_I?G?Sl?J\Z?Eu? ;3i'0 տѼ甚%:? Ok𿲕q'$G3m?/׵o ?0?s?˩n+n=]ד ?4<? ?I(bYzݿ騟濄X|$)𿱲: w~ G6χ? ?~+,k߄?q6?g3.q?P%īvWWA(Կ([WRM^8 ?q(?z;?[;?\K+ba?ڞ0?U?~V?i5~Ȣ?$V|} rgRbӪڊh0X[jҿn\p ӿ4T|JۿrSGv?_Qw?fG?Tc?|?rzڮտ(6L`ȿX,񿠅A迳Bb??-r?V?EGÿ??xBg?Vmu??i{%{ܙ?l)=q>y2} {x;޿MT4m?Oru?Gg?iC? ߿r`oǿBH&p忬"tĥt?EE?aS?lٿ6ϹwUQeup?쇞ƿ'j&F&g79XbP~sῦ-$JMοdժ7?Xz ?TWѴ?g\Q?Я߂ĜT?&]?~+*?hfLB,?clu߿( ouWFT?[}W'ifM`? IG"?01YRl?T'91-'vFT?,cCƿHp?*H9?1E?w@?#?zd[>xKc׿~7qԿ{9*! ^_=8q.?[oܦ?U)ڷ?܃tȿP`f?70DN\ οPF?8?4?7YU?r?8*?EQ`?5Ro?e?w^W ?>an?7H??F˔iۿ'XRM Ra&R.TsHUѿS}Կ`xZ:?ݞ:D?Lϕ ?sUVX?\Y?_od? 9oA3L`ƒG[ƥ{ZMRH"_pFA4O뿁C"栭u?W]??tY?dٌ_@w:?ci#n@@r?)ª?OKrI鿡-Kkc+HYN?p%?o`0+N #˯<ǿu?|xJ? y?ᜭG*?c.1?u?gtS?7wc? 2â+AS[Hzd?PpIHvwWνd?4ң? rPBA?a~¦Ew?>,U?H"cMYl?u$eRY?6Rw? '_Q?$h?veO?`<0p?8\&?000V|$-sONOLrXBֿJ#oI֊ݿK@Uܿ׋?+^&Q?qa1b?y{S?ğA;?jV噼?Mb߿!׿#A,ƿ]Pla+?0ƒhyw"V`F2~xEֿk7;?VC?J/?_[*O@!vh?k(?g\?>xt?$_ԂDsѿs5;?Vӿ4ٿĒǿ<ֿN:(jۿ[{?Ȅ5v?*F5cU RS(ڨj ݿ1|8o 펿B@a}?&t}}&?;vD?&m?ӨXAi? zk|PsܿHM?Ǖ:WHW>}~6qmdпr?jT?[4?S?.?^[bc"?@%4{i?gLeS?.يﷁg,~ںև}tމ([pH\;:$ Z*M\Z W?ME;@ѿB;Ӕq?P2a?<@ @ð[?Q%-.@`r? d?`x#Ϳab?sщݿſ ?2ο;s?O贓ٿ] غ뿔ieC/ڿy?G?-yL7!?i?D?*ɿ Ae|.ylp迀rh̿ T!ȿ%!B#??k)Ͼ*?oW?u?*W? THS㘚e ȃ+x':׶ 褿Uk2vѿ*C?mL m? "9i?B 6?fhC꿭#Aeӿsпz1lZZJ忶-pKC9dҡ*uݘ9?2kj?W m5[?@H?'e??/ݿco{M?[pF̿N>g?d?O&?Ȝ&X?yZͷ?60AEHqT6߿*OK}[(տ`]5o? +14ֿ9/?+4?OГ{Q?ܠ ?|g> Nᅡ0B˿Bi˿Oţ$| ؉08n=[)`>s?zXme0?g}?dW?S'?$e?2 l?& 翾ߖc&?g ?&Q4? %k?6?j-F!t9 i01Y?/ؑP] ?Қ ?G@3u@T?z6?PKJH?P P morl_psi.npyNUMPYF{'descr': '=`Q{B=c hF=ÀpcJ=luN=,vCQ=>xT=q|yW=x)Z=F+C^=@yAa=Kbc=Ae=@Hg=;yi=Lr\k=gGm= RMp=S9#p=ٵWs=3#gUr=7/r=/۾p=Xqsm=/& g=W_`=iOTSH=rAJ~Ef@t{(3$;5:+/{^Oh噽ݡL ԓ5ãb}ֿ⧽)HkJ:ްSKó}4lvgޗxf6(|Lp8C8erý{ݧŽQ SȽV\@ʽc3BͽfT6нѽ<)Dҽ-P?PԽս- ֽ-I|׽Oؽؽtؽ*{8ؽRtI)׽ jսҽe4 νDUoŽ! ΪTiD=ok=|{q?=*Dj=s8>=+{==QRՒ=UEY7>Y0>͝ >W >ͼDu>gXH>Fno^>%ў>hmP>:&8!>}X?#>vuD%><m*'>F)>ȞA),>QJ.>C=5 o0>K.1>XR2>]f$|3>b܋w4>Y!MΆ$5>YJ5>-5>䶿T5>5K}5> r4>F.(~2>tH0>0*3&*>SJx##>o>čRjRhoi 0O 9bkBELsAHKPWF 4T8 4qX:s9^̅na{2Rd/mhm{%l:pBg 9r=͒t\lv:kyHV|\g\~ƀ  *Pm Đ)>> lm3b<"e3h}JJ4(͈rIzZʦ-bVEbvKUi*}v|2Il>{>_G6U>S B>u>j<>Mң> q6>o3 >BAi(>Z>>.wf>KOm%>P>b>̫wc>$D>|H>EI8m>>)(C> a>f6YVٶ>v #>ִ6>jNϏc>wmt&>EA~>Iq>xG, >fN6>\[Ct{>D5>4;>{>P>sDZ>zzd>ɕn>2g># 'үgs6ľB]7о Vsykؾp&H 7qLwh 徱QG꾕 チkEIeD'`7J#f,Af:Tr { h7L jgs0 QJ~@hR qR/6fre @ ˠn$d%"=K8g 8$n+c\`E"!.`inJ "A1!էܾ:y>֑/?}4F(?rq ?}P?V*#?sFŠ'?sU#`h,?{(|0?ӎ:L3?ɆSy6?ytӢ9?p<;2? F?Z[:R3}4 B-BprVJpgRkf WY ~\]&:ZaVfXd}96gT-vjϒmQup ]rNdtG]uװ?wJ3PyH] FzWn|~J}P^C@۪ިOp' ( irD0M$$N,zn` *{WVI}C(y#~+:{c +y~*F u,.Gry圿%llڳbWx~lP_=%:?l_?~#`?{m?lv?ݻ}?מ%?2#M?Ymuʋ?!>8?s񴝒?g?n?c ?tfA9釜?tf[?kv?h?.?P;R?#Օ4 ?Z? ~b?*iB[?(ߧ?p0=?o?Q5s?Ι|D?~"?_'fB?mi?%Q?;`a`?vm=9^?+!~?UQ?q?az?HO$ 8?z}wx?S4VDHO%Q^j\8'ocvx)ɋ#WDNΏ!|sߺ n-Fs&} pٲZGop#\?X=Xi M¿dQGÿ 3-ĿbHGĿ};NſfT4s?ƿ HH*ƿrƿR+%ǿ^D"ǿ ƿ:ƿ}\ ƿR Mſ#[]Ŀ˅:ÿgt Ų5OYEƎ5PiSm22 _hގY_̦*6 9 Y㿲JggR9P7!p /INd;DQ鿩.Y,{MogZHw9[[꿄/k=4߇.|65N2AFGDQȐ[ɅV߿<ܿHؿ<6ԿxBϿ;ԵDƿƯsqB2h?$a?Y?;X"?5?g^Cd?2c?MKpO??Wז?}p͵O?T^/O?&C&?T_&x?gd?Sa?@?C)@?ZiC]?= Iw?|?|?= Iw?ZiC]?C)@?@?Sa?gd?T_&x?&C&?T^/O?}p͵O??Wז?MKpO?2c?g^Cd?5?;X"?Y?$a?B2h?sqƯ;ԵDƿxBϿ<6ԿHؿ<ܿɅV߿Ȑ[GDQ2AFN|65.)߇k=~/9[[YHw~Mog꿭.Y,DQd;N/I/!pd9P7Jggk> ͘Z1o2[8FݿS2PV ڿ[6Qoֿ6|v_ӿݬ)Ͽ5,zɿCJ¿c(:o!"?,_Q8?v8!g*??nm ?={,+-?h x?4I?sX?ެq?o9U}?__?i#L?)`vm?_. ?Y?W?U?s?ڋz?Nm?AsI?{q?Gxt?fWDS?E??AC??y!? :y?hvk?#;f:!?LE̫?7D6?q(ܑ?RZϸ?2?;k ?8?muʋ?$3#M?'%?-޻}?lv?$`?{m?`_?D%:?x~lPkڳbˊ圿%l0,.Gr9*F uc +y:{(y#~}I}mWVc` *$N,z M$?0irHp' (ӪިUC@P~~J}Wn|H] Fz+3Py?wuG]u5dtפ ]rQuphϒmT-vjK96gVfXd3&:ZaY ~\'f W-gRprVJ B-B3}4[:F?>2?wUkE!էܾA1"inJ "!.``Ec\n+ 8$8g"=Kn$d%ˠ  @R/6freR qJ~@h Qjgs0h7L { Af:Tr J#f,7'`DeEIk ᄆQGLwh p&H 7q VsykؾB]7оgs6ľ# 'ү2g>ɕn>zzd>7DZ>>v{>4;>D5>U[Ct{>nN6>yG, >Iq>JA~>*wmt&>sNϏc>ִ6>v #>|6YVٶ> a>)(C>(I8m>>w|H>D>wc>b>mP>Om%>wf>\>Z>Ai(>Qo3 >G q6>\Mң>;>u>S B>_G6U>{>|2Il>*}vKUibvbVEʦ-ZrIz(͈J4}Jh3e3b<"lm>> Đ)*Pm  ƀ\g\~HV|:ky\lv=͒tBg 9r:pm{%l/mh{2Rd̅na:s9^8 4qXWF 4TKPELsAHbkBO 9hoi 0RjRčo>SJx##>0*3&*>tH0>F.(~2> r4>5K}5>䶿T5>-5>YJ5>Y!MΆ$5>b܋w4>]f$|3>XR2>K.1>C=5 o0>QJ.>ȞA),>F)><m*'>vuD%>}X?#>:&8!>hmP>%ў>Fno^>gXH>ͼDu>W >͝ >Y0>UEY7>QRՒ==+{=s8>=*Dj=|{q?=ok=iD=! ΪTDUoŽ4 νɲҽ( jսRtI)׽*{8ؽtؽؽEOؽEI|׽- ֽսUP?PԽa)DҽѽfT6н3Bͽ\@ʽQ SȽݧŽW8erýp86(|Lgޗx}4lYSKó`J:ް)Hk}ֿ⧽hԓ5ãL Oh噽*/{^u5$?{(@tEfmAJOTSH=W_`=' g=qsm=/۾p==7/r=Q#gUr=m >s=~Gr={7~r=׵WxT=,vCQ=luN=ÀpcJ=c hF=`Q{B=zK8>=qv49=g!okl4=I0=|cw)=0{Sk#=hő=^=D)nh =^<o<MҼ2!*d6qӍ*hĜXfPI5P͚{0PKJH >>2_gaus7_1001_coefs.npyNUMPYF{'descr': '߿xQl׿s:?)S-?7Ij) ?]@߿.F"߹?" l߿ʠmj\V?ހ?l?j ӕN?/U/GտFgCٿ5N?MN]?#~@m?tr?:\RL?@FSwڿ xfQI?f 뿵+M캿fTW|?GbD?k3޷?VA?9qx?@ݿ.RN濎MuCIֿ}V.="`#?ؾ?X ȁ;m?y@?ݿ@Juͥ?!p̿,8UJ>b|ǿ 2T?ӮO?^e$?',?!& ?@,THf?uᯨ׿Pi ZwG:(8p?'A(?ibE?严?,.iR 濳Vz;PnUѿGD{O?}q ?V:1ӿP8?rlkd8*R t?I0'?Pw?=١?hq??i~VU.A?uu)M+jݿ|8"ƿ۶?m?x+?~8F??}bL?lB`Ͽ8N2: #BIk?Xu'&ſh9*} ?wU=?G 7%'$bԿ|a2ѿR+b-$5?y? v8 r!5KrR?.+ ? VN?Drix=?$iӿ$F7IR?hb{?DX9ǿԦ?e%?Cxֿwh}]Oѿe$?Cf{?=5=Txd?,R?^ؿhG&.h? ?TSÿ[y?0?a:6iW?|{n{|?aQ?Zn>˿Ix?^?9ɤ&տ("5¤hz?J?y9?ђeκ7? 7\'p{ܿN*z(?c?jCfd.%<ٱ\';'ĥٿʊM?)N8?-g⿎ܨF?ؿ @Z="7?uL)?y܏?ϑSdr 4`@ƻ,k?~h ^念,vU0?gL#?kD~7n?g~D M?}`n?$[tJG[?دL.-¿L?bR=&"&3Vÿr?1 ?\k;nd߿o?nSYJZd9Y?5#ꅌ?]ٿO(H2ѿ5ƾܸ?zͿӇ޿n=ſӖ?;>?rͿe B< {?bh]?Ti=q? 7v?4?ݿwκU\?.jx?$px?- 7?ֽXT㿘&ٿ.;迫ig ?ˤ?m>޿V࿿ޗe??U?pbaq? =Ğ?82:vѿt4p#ܨ?se?n ~'&ηda~_?ۗb?yKm 6?r+?]ifMd|{Կ̎אҿ1a5?{;L?Bw\]?r9UX)ѿrhz*~5/!( U4?eOu^?ϷĿ^ lz?SIƿӧFC,%˿i_d?E&)?u?aZkezQ6ۢzPw?`(G?a5?~~?0f pR?_+OGǿȿ)D?²?Fbw?Wx,}?xwv?oW?tfܿs<ٿ.3u6[?Y" B~? ?H%Y?ڲ`#p?{`?~2ҿHBpͿ-|KeͿ7У?J?Gٍ?Ŷn#'9;?rx?W?,?fC¿<{OwKat#п+1ſjWQ 'I?Qt?~ıA?^Mr ۿ ڇ࿁?H1TUʾB/%vg?6?78;P?>BѿOGR쿣0kPٿAۿV?W?Q6@ }MT?j?mnUV1?:)? Yҿ-O࿤h.S4]?Lӟm?C ?'o\/?,ſRz >7鿸h|PqT?g:w?՘񿎝_ؿsO?p\<߿`4;{ڿf_o1?$/?xtt?jʪڿ/q=-ٿvId? ?05&пGi%T??]?*Z?>\5ѿ?|>-aJg\l.|`ٿbP??H=?K7?4/ܷ[%ӿ *i7a?sE5Z=?k*D}<"W翲87mg`?–_⿿cv㿌b X?Lm?aQ'?uV/;?Ǥr}b;\?vyr?7z?Bmٿ%Iͩ|Oo RR?%q$H?Arsa?>?nn6QF(a!r J?sc+?'rʹ?pA?)å [z;_d?/~p%?JgUIܿ{/-?MG?bT4T?fڬ7ѿZ,E߿ȱηѿ$>?l? d@C VN(N?P`?X޿_Y쿋WBzտkO.Fך^?VǫV?pFQ?e/FjܿGl⿞74\?p?iowmkv_?gӀ?r ǿ-N-?,ܸ쿿+zpYtSN?0?L鮺?o8,XSX.nT ?-Py?BAWYEe?Ǿf߿ټ?z|?4d=Ϯۿ<G?'|i?In?}^Dƿ{ѿƴyͲ˿$Tam?eb?9h =}L?Ϊ?+[޿<*e!fQ?'? D'ޑ[r?.ARJ?ʫ+i?h; D׭?m:dPn?#GVn?Yb?<5Q̑`Կe 챼Կn1{~?m?$ӿWҿ[kW?w|?-E?SJqMyҤĶ?; vǿ˒H??:[)^˜(? ?NXؿeFu\@`,\?g ?z(ѿU4Ÿ?䈀cٿ/y`)JTs?*Ԍ?.j?m?IRq_)?v^>V?vY^?sm?sϣ_IQ?0ƀʿ[{?A?*):ʿEak?A<?\xٿq` n9?uWb?-ހ?B_v<+1F@'$?5G%?Z4ȓhS5 hwѣJI??IY^w⿼)j}??X&?|bٿ{Ehm+?C?"z?a}нΆ濎|?p]֫S?>)k0ۿ\!Rd?Jp7G?.yyx+aZ"տIP?7?CLh?铀.r!ĚHw?K袿߄BI)_?੻hȌ??t ]K* ѿ̳PFC?kU"nZ!!_PUZ?\Wm?A Zsu鿻CοI|ɿ)^T8"?ّgi?t Ҍ4?M|HʿcOHX"ypj0!?%)?͆?w??ϯn\Bn)?WF?*Ok4$?BUo?b#^]?nDu?8dynTA?kn0? {CNSSvſ_mɧ ;#q?td?nЧڿ%}PcпRBſʳBy]"?WZ=t?w1*ĿZ{鷮'2$ڿ>|?L?Zk|?jC?+TKտF$^?oÆ??O?#H%57 r:"?k?2b|?J+-IbܿQ*(!?\i?OЀlF?ݮZ ڿ;#hՀVr?10?5Q?9E]?04"Wijow翹h%h-mL?"Y1?!XFXԿkcng~? ¿AB$?~04V+?gm˱b?C3?:]?JڔZarJ웢?UG?ڋ&߿4 f?nw?QxORX?k(("AxBmuWؿ?J1]4?Ɗ@PC?ڼKflW`?g,?<`Q?5P`?wvSbp?^M?PbAox>U9ڿ.,xwb??_] >?K3H.m$(8t@ 6P?`.J ӎ:׿S@Bmֿe.=ZwOӿV%@3l1?U@ mkPпng?R9f޿lz6Ῐy &t/[GčW?` ?gN?K\"6뿺)lbbї?\]Esݿ/S%N?+Tu? \,LO?̠ٙ?߶̿7H)п)]WԿ( /?IUG?r8N9^׿ 2ῑ_{ ?C)a2E? Ag'#/˿Uu_0kԿ$vf??!LݿU|kJt!w̿27][+vN%?m/?X(ٿUAipFj_пFOG⌉?X?U c?,?:?}_xPSnp_¿;iS@aZ"?nXy ʁh> `?GfJ&qR)OĿodmK?L ?#HпGֿ-.޿ LJ]M F?ٜo)?kֿc bwrxڿHeYMX\?(b?M nNƁ пuU3t?jF.ԿrG:\M8?e˟E~?WQx߿ҳSϿ# Ͽ;6e?$T?׹tØ?ֈ tȿe㿺L Fc?А*9?awӿ 8BU?*?ZMy# <鿪z_JpKq ?r ?|B7?λ?}!0ڿ=?scL?OZIÿRpۿ߃Md?S-Z??3Wa࿋غѿ?qS?l*=Ѻe3%sbrq˿ 쿂$kS?vAn~?#q??*``E?)cVX_ٿRm##@J,?Ӻێ?VJ,޿@L;˿1]?, _jҿݨ?|ݠN7?u տҾ W5?pȎ ?yAF|15KrԿHN?R?RNU[8,a<8տ(,#d\bŐX|?+2?;;O߲v_??@Xѐ?8?p-}`'W=Xr<&z20E@?wH@ޏ^O??)QJ?7c(?*YR>֧H{[OvЫ??gJ x7Ws!?y36ݿ̻K/ٿo?}?M?¦5?{=󶂄?uwο{Jf!⿊^b?L%?p-? $D}$+?̻ze?+%oӿ]|?bӠ筣?lT1 ?{B3P?W⿅mI߿R?eVK?{Ҹ+%z(Rп-}~3ѿV)8㺣?u|l?h?|n⿦"ph؇?9oڿ_?lCH?.qn?S ^-!*ѹ٠&O?< @: W(f\&?xQ8.S?hHlP(C? ? 0?eJ˅aB׿N[ MR@m?-DS ?>?*?bX2N$nFxU?8툱?6*7 9N?Am!T?7 /违i#u{2x?I982?S}J? X.xmX?6c?/?_J)3A4?U/Lb+C,Ctѿ[W~_Z?܃3?#Owɿwҿ؀ჶѿ/zika?4?k΀m ?9?ܾؿ*+Z(ƿc~Zӿz. ?Z2[\?!ߩTk?Mz|?3{K俰 b2|ɿy! ?9?⥌$`χ׿GfؿNe7Vѿ[f!?ᑼ?xYm < c6\hӿe_H?lz?8!9*D5Ҡ?pE<οjW Goƿ^?@Pnt:?ZJsᅤ8ֿR_Z&?v!,DݿɀeVdܿ׮F?,?g ?rԼA㿕YpttI~ÿ𿀘\5?z &!?8/X?.DQ6? L/?̿=8K?x?6߱¿Q'm#"?,)f?#q;:9z=FῳzP?}RM?`pڿWG޿IT߿)|?@n?,Rt" :F?h+M?8[ΔۿReu@*??64?Oy+̿rm(ڿB ~ÿfǸ&?w߇!??ﺨRB=q""?m1ӿB?xK0?*~@`6ӿ}0=使yD1w?׽~?uT4x7ɿ-ƹY?KH;2?|ÿ쿽Vz? Z??EuK?<˾G?5ȥbWmRT ?Ϛ?/Kt>O̿%gз?Ԗ:l#?&9 r_Ǒڿ ,u k?b=BU0C䪻?WT1W?/\?r?+F|Zx:?_d̿5-"ӿ$xq?WX?:Vg?ܬ{A=մ1։pٖݿ۱>?,2L?m6ވܹөڈG?qXѿ^0垤bP?Ԝa?Z7?UֿZ۹5M`J?`MK?#1?ډ?vȟm@Կd0+ٿ|[ÿ$쮓\61oh>ܿ//QF?Lv?{x#Z?=8).9H\1?pbѝ*׿r:0?U]??6֯?~0 ο̰5?v޿!62/տ"?W~?ڗpb6?J-->࿟y߿ Q6?ޟD|Kx?xN`4ƿ+ٿ7xV?*~t ?\3u?xO̿ IϿX!ѿH߹?D??ۢ?\wk!?Pӿe*ɿL? ڿ(, ؿgп?k?nfBο+O: ?0Rh?5Ȫp` [ۿgM[h_,u?+?q?kګsչ?،տEB߿A䡸d?$cS?I6BO?L@n,?Ɩ?m忑|#ڿo=sۿD?Z ?TՇ.?koܿMx�(ZՀ*? %?JU<?uѿqӧ??vo$LJ?QIpݿQFyj￳gO|?A*m?D5׿NG'? c 1?Cdq:e1[޿˯?d G?5z?e)?RWg3CfWh?;Y?w&d??$=߿J)VS?ѿ?B .?*۪?82U.ѿ3Y!wпYԿԩ] ?dTz?~OɿSb}޿/E-̿-пo6}s?xd?B}ѿ4mԿ ޜ5i?1[?ϔ4j?՞?b-Z?$濠 a"-?fT? +D\?R` RW)O*?OU擃QI? L|Q?߃/ƻ?)?4.ŋ߿Tb̿`b~}9?D?@_?p;?y4F:B=lxKX?Y Th⿪7Mlտ-?X0?B`Z?I3㿶IشKyt/;/gS,CBU㦿R*"??.Ϥʏm?nAw?a_࿃e\&eݟ=՚?h?ӹj?z ?E>۰ &*|s[?wo?w1?i#l?YШ"GB9-?iJCɿzg&)>\m?*K?Ue?Bq?NEO?Ll,)lQҿAVL?nò?aQpd~ٿN3?dlۻֿcU?mO޿!￷ !ӿZCb[?xLa?C,XPT?: >i?IY?;2홭{G5#*?C8?~ga$?,w>?A?AῊ""!rݿ $)?Q?7ԿSTտbs3߿Oa)3?G?PwKC6螘>|Pv?otw?5s[Zտ[kA?n?ss24ّ,n>X3^?-|ʠڕ?X*+9@,?(2dԿqL= =?c)^п?s¿j?RH' ?h5?EӿAZ(ѿz/,? @L5?&/!zErHÿ.EF75?r[?228y?7<+:׿r7f鿄ZuuAp?-?Zr0?'Gio $$10?û?*Z ("ȿrlí?v0{O?L(޿ɓ+9syF|Կ[k?c`?XJ8?n *?plnUU,1?@ۤ?޿LiC?Tl? 8?Sz?,UڿĊ:]]1?(;?Mzݿ*"??y*?1?hiϿѺֺ̿N, }߾ɂx˒? d?P܌®?VWO$,?gӘ?%źա h9B͇3?j|g.?F..?iAlJ迎t&ֿjbv?[w2?pMWaktp*9y?si4*?c޿H_?FIO?8^y߿ zUQՍs?LI&Q?go5SbZ޿|$vn?ڳ>?vkoҿèS۷xi?p2ƴ[™?D?t)˿¸dٿU6?yȗ? NV2?/*'@*? Ơ?Ě0?c1ڿeTmADȿI$@Y?aQʒο #%Җ?0e`$ U?ʂ?ʞ"?$U?$*Pl"C?zĿ''e??) ȿJ ?g&z㿆e8ɿ~wϿEsɿB+B%%/?#ԿAY"?mc?BSqXo?%KJ?\)BH'տ[ƿˌ9 -࿊ڂܻÿd?^AcVӋ5JX?*1 q?L?նد?Yka?qr?ȥ?p`r$>v?+3^HʿO K<Y鿶Lܿ^}ſkk |?MM6WH?J ?ȴ>?79;? ?lDM~#8ٿd{ 7$ʿܩ"?&7qp"Bwj\Tֿ$xQkտJvO$?qs5?s4y8ZZ2?T?L'A!pI? TF?wM j}ſ.D?)pT;ԿtQ?G-?V~&ѿw?^n?81?5?б?P?tt<xݿ}s#0rҿD׼q ˿S[?`\?Lu)fT?` Ձ?!J?ܝK_|JV߿=8˾ο"N/@ʿH&bZ?D>ֱu?J}x[D?=5L?3$ /T?Ud]?8؜ݿNOH?UeLӿ?\]A*?f?ѿs8ſ]oʉٿ~E/?ڊ|f?I?2-P?/ԒH?r=?4_ Ǎ?|r׿?6;l ,ǿ[%יN)?|Feؿr~?}6M? ̾ԿJ2q즱hxl>|ZfO S?tP?/֪??]% ?Դ?Fd.ۿ)cЎ=NTyӿA.O_ʿ"Խp?ǵ1ſ>ב?ڿb$?Wj?sC]1VWv\KJտHV59^׿zu($h.??0?5#y"?mS?;Ē?D$鿙a?R8K׿5I?Dt?3z̿g `ȿ\?Rh~ο#Qп^}J?$ܩJںѳ??=4k? ??>g?K? \@nǿKsuwDѿd8Q3޿T&sKZJ}'B?*;пRDi??b"?eF 7?a?;?F%e?@?,}+ L!ο@ke}?UO,w ~LԿ9Yp,> |:п(?t,lCxƳ?ChIZ%?A??_~i? ҅ÿ-!upϿ&ٺ6ٿT2B۴]= ?֎ؿg L?q* wIG?9_GVӿŶwc?;v?*IYt.Ŀos6R=Ia׀ZMd??QhLә?']K?H%a??.".jGѿgp 9?Y?͚qU?v?RY?8?XfJ&0w?U?Ju?"v{?A[&4Z,9ҷg8h_Cœ~]7 ~wY$ͺ?ObD?\T?&]?@ }mX˿f鳿6@࿓.׿r?NPA}?`=܌ۿ!,]΋?DT?x _?u7 ?$ s?w~Q?r f1_+?D?\uIlS^\z?WL('?R߶?td?9?7;?1u?@#\a?ś_= SϖǫtĿthh@m9f?ۿkL?%raƿ2PHY=rIBD7!ͿAN% Nǿ/ۿ+k3[>ef?+僪n~`?|+ҿ_?qۿ̤zo )׿zX+6˿p?(O9,ٿ@[?dpu?mR]?/E?r&)? ;=?.ԃbw[?92I?Zj?J*?F?[F?#͞m?9ȣϖaz?"9owؿ&Kd!O&? T?#KƿHaк?-M)~:o,n?3e7ο<|F巿ksVkܿ8Rٿ"f)%ũ?a?LYxӿ?d_?VʿH?Py w?>wc׿|ݦӿv?0c{Ny!巜S?c?]n6?ȣ1Fſ9g$?O?P&q3)4}?G8?(֬{??Oa9?}Q;?`?Fȿ:,X?ųIۿ`@R%rӿ̃Ђ߿mĿ I)?sƿB;Fƀ?GOq'Z_1˹csĿnAsrпhſ%o;.*ܛ, |diǿ ?>.:{ؿ"?K-笴?~a¿T|f?X$Ep0T`ǿn]>o忶{-9?,r7=Ŀ@H?C8Lw:?1?9DilVֿOJ?_%y,X>?) ?=;:ͿEC ¿,xϴ?4Z??l@?Ŷ+5c)?RZB?f?VÿHW^?T‡p?#7 *!P2?.1!Q?D*r!4ΉZN?)iп<0Oʿ?ۨ#ٿS(!ѿl)xʠl F@U߿w^;p?%!۾K?T?/м7?uæ1?Jd ?Y,rºA~Uz? (ӿؾ diE̿)J|Ȋv8Odҿ4ʒ?9T0wő?Ѯu\hG/e9? ٚN>(?CWz?[\~?_#J6jC˿_:F] zkp|JU|䤿U?x½vݿM9j?'!?,B^俁ȁ?`:|}ǵsr?ױz8ܿ;\PoΜǿ '~֟Q;?Э!βοOB?$?܉=K?0r`s? f??WJm7?c/ۿ7bC?=/Դ7¿bKD?bҝY??}$l?=? ?G#D?X6ƛX.?нMxU0 XwP?+EmUпJƠ'?Wҿ7͐?*,$O]p?]4?F* ?0pb?M_?R%2??TnHL-?ZIпE]N Q&-ܿSUҿX?$߿?Ո?\O齯??!Cz?d@/3?mQ?(vƿ#kh?/Q=׿ҟ*̿ޞتֿ E.ӿ8}࿸za"G?[Eܿ>&"?{K?)?-"?bu?0(ȿk k?2͜:ÿ$)٩q2?eQ?T?3x$?A_?QR߿䮆H?U%zV ˿}#PYP;N6UʿZLc_E?YtϢ"&EDr?I?]j?]iaG ?}G,z>?6a?iv?$ ѿS=?ӻ 5?FE`?B*?/%wNR4xPٿPelƿFq ҿοL+?caF5?iO]O#?b?*?ןƙK?^G?Y#=Y?-PؿCoν˿uˑ>쿘0Tg:̼ =۩] !?Rd,ֿߘz?"X?,#3޿(h,?*?_?]5?}B޿H&nſ\_yDkE,?`uQa᩿r?pҰ9ɱuS` x?SlD?Xl\n(?LA?=}?7?a9x7b1?1T?J?K ?vu?~Ah?ו?2Nѿd(.п揵{?ƿP?xOh&?o'pE?ǿp?jℰ?""|?N_~P?D0ڥ?DӲA1׿#%?w[ɿN(z?2?9j7?J ' ſ@f οz^,/ӿߟ޿FΜ¿:B*?.}3R j?y?F?Dm5?'WI?|YnndeϿG` ?',5տւd7#Ђ?ʶRgbx@пdAtfm¿o{xɿ9[O^?0꩗}?<?F*??Ww?Wĕ/vԿ(Sl?@>]?*PX?`z$7? ?*6V?S _ggx {7?"Mg3ٿx?[&%.F6z̿H?SH}?9t%>ȃ?#??RֿfȪ+?z?p*kE@??&`֮?w4[пux ?0˥㡿 >ξ?B ؿJ%D!`¿>9Sڿz`OOѿYfYڿl0ZSĿ􄶌P?߿Q@ ?x?hI4mͿ@͒, ?kKkZ?/wp!?V?f?c/??!,6׿ ?GMF#)kп/ῠZ@*࿠} Z?d?ހؿQ?8=?|?whc{n!\ 5x?bƵ?*HC?1o(=??,rɬ?APӳ? ?Wm\I?H$d?ɍտI¿phC?ow?ÒB4-jho?ý#ܿğcҿ=ҿ .JZݿ% u Y/kʿ$~Gο_:?Mr}?3'?F?Q??9ɫ?Lb0,?1wV?g5Y`\?hFxٿTX?.Qf濠Z8Qǿh^'1?,w߿';_ êߣ'?#7"o?y-ή}EW?ʣ?QGwпk?;JT?6 I=&?\?mc(8g?(?Eqÿ?߅ӿݎ!w?s8ٿvO5kĿAܿMzF7?iޮ6y<+Hd?s_eZ |D=ˀ ןZjP$@q鿩R˿Ѧƿ.wz?#{Vkÿ&I?}Z?HZᬜ࿝Țn?Lʔ֬?3b?:A o?&W?aK!EꌿAb1q?Tn90H0SW?0@J $p sL:пar ?mcj?_߮y%Uk?PIE>e?[b5@o?L(_Ϳ󦿰T8ڿD[xeӿ&k*ֿQ̧4f?~2I?Ǥ?&cpxɿȋp:?"<׿b@ɿ+4 _u㿶;Swmɿsۓn?ę͢쵏?p,@[?#rz?>֔?L_?"e,,dqȿ<ٿ^6ȃ?*MF\ѿRM왿7C$g?P4D ?-`P?4? <#dԿ|P읿?)[7K5"aA?\_~?(_xh#ο3>Lk~?˹'chܿg bֿvJ"/KR?rX?,<'錓inٿhN;]'?;iK,hz?)UL?y*??`+u??=S1?e?O C?6$0߿@}Ye?MMɩ]#'亿0t?y׿^'R>N? R#A?qjxD?Mdؿ?=0Et¿r jz+T?k-ῒ][ҿmD?uRm>?r.}RĿ3? F?͚a?$)j[?@ß?b R5?G ???|?idHOa?G8iӿ>ӷu¿}Կ}ו5!uaۿt_ ¿Mx@j?I%&mٿ\?׿?X(_?Ma0Pڿ"??"Gvu?N+??@??FP?0W?^LĦ?l?af~ ?ϻ?+K#?H`_?߄ڿZR?)}rD^мW[ȷ6޿.ӿE.?<훡?pÿ>ú?ԚW?owzj?K8?;^ҿ4 ÿV?R+3ȿS7ֿhG ҿִ?\lC _?u׿zS?h!wے?54BN׿fD9?cp?lܝ?,b?H  F?Df?n?QE/Qk=? XݿNGʿ;\,[f.FVM`/^AږNKſ\<?CٿIqTdLΏpTC?`~?¾̀ĿiFh*?`Q7-?V?9MA?TxeFܘ&eۿ$"jӿö^ɿ~ۺ?Ƥ?GJ?|<_`?&'%]?sW쟬ϿQ#?YԞд?TEoS\ :ֲ?k ?Vj2?֟?Q?{hF?޴?'BѿL? , 38[ƿFڿCG߿ٷB\sͿ0-;?&SC)kĪ?b8k]f nD?ȭSp ?5W?Oտȸ?. mҿǰͿߧG4Ӊ?"޿2d3?@eYMTڢG?u?oL]?Eڵ? Dп v?!f%ǿhȤMRɿm*ɊԿ9Wڸ#?C& ˿Jd(?v+K]/UAJڿm{fJ?P=I\6WQL&?U4L?XJſ>ϝCY䲓Z@J*+5[팛?6b.Wȿj`?V\v?[@?2^ ?%c?*x :Rކ;0?RDտpύ5ɿ/!>⿣ԚUUW 4^E`ڿ%l?v%d濷#/F?ۘCW ?'xpL B 0?kD Y¿ܪy`4Zt|?$)1\ 俻bט}?lSQAkBP? ӿy7?T?yV:}?{V%?`x?bf?0ϿbXs?ݿel&?PS׿͏ ?Pbxr.Gk鷿ȳ㿖;e忾t׿>Ԏѿyڳ꿑rm?-!V?$ 87?.dlX?._ 1?c=oyrI?6g?~40?{?I6?hmd]Ӷ?D[)~7{Bٶb8Q{Sӳ?ihf8QU"$E? \?^_Sf?vky||tt?0׶ ?e)%?n?' /M?Z_ĵHfT?OY;.R{?V! hPɿ\V˿.+DNebӿ)B7ǿ2?ԆgZ?9]?Q.\w_yDkd(?)|˿_ڿ'hs?t` O^6? ͤ{ ?L6!?·?ibKhM? j?1ο=?^cEɿ|[sǿJϿl^JIOĮ࿤M39?VY?Q1ӿGe?R|?w2!q#e?m?]͛ţ?Z?vE?,ٟۺ(hFB!qǿlkk+^ÿ}?rITKoe?i?)yO?$WK?c?h"Xt?N-YJe~?+$X忹78:?xйQǿSB-οCxʵ ~!߿Fgڿ?qlտp~=,Ț?O//YK?) ?k_=k?4YW?YZs? 9 ?Jg>Ϳ꫿?o&ֿB;Z࿪brUѿ}Z?|ì5U1?"zag%Q?u%\޳?{ ſ9%e6Ԥؼ $?=/TtjÛMNo@M҈0? G?/ w?щJr?:XG!DG?k{ʪ^п`k!鿠d74˿`-1?}1'H5?2\?MrC? cPRIF ?q{?4և{r˿tm_?sa??|@IGӘLobJhQʿ7d=!Ǹ?W2s~HgȠͿ%DE渿Rr?3?)x?"1x?x?θ40SDr魨/\?V\wHYIͿT~鈞t?uG-QޯPTǿ@WyY^Hl ſٿ͇Z?{dlK.?b>Ὴ3HE?rytl?|;2q?WLm?r?YvN?? fZ!,?+JǤ*?bSɿPr ?п}ݺHѡؿMwp˿dGmؿYz ?luM?W~=vɿ6?4k?|׿?1ÿ,]lhxM?pn׿0ˠԿe+cRÿԶ"?v,?f|{? '?/d)~?/?f?,?B?mKeI?yLhʿ^?]Aܗ¿CJ?@k'k'C?p8޿ yb ^QÿE2~-I6!ӿ}ǿs򿪭f?L J>58?Rz2?Mq|?6}0,?dk:ɿaE?%X?m?)?50?Vп?`P࿆Ev? dqhYP)iϿhEn~(ܿQ>PÿmJg?Nc޿ցb9m?)PJ+u?kL!-W?{0#?FbR;y=u?^8jl?xv?σ+%#?Q𺺬?2|?@4ڿͱV)ο4ŭQſ!)gihѿ -{qܿ\gHdfP`j?zjο_\U?.;a.?z"?ƪ_U?.c?H"J?mCoDa4&?SoQ☿Vyhĸ?O]eS?ϵ?ڬl?~:{Կlcj?0!?*pD\?- O?9ۀ}ʹ?ڿs6?jf˿*V *2Ŀ?DڿrpN?R"0?e:?r`sR?c Wq?<дi?~YϿ4|/ݯ.*gؿ[qy@jYnPONҿl }%Կ$# ?$mMM|ٿɛօ~pVtI1q _ٿkM?uR +\U? k[c?xf'P?9 c?k\q??;?\gr^h?=߳?!gĶ? /zh?,o;?a=c?j?@cA`Co.? ]z|ȼ bC?wOӿ"*q/%{"U?B#?l:]-?řK?/6?W1MeܿTWjg?hЦп/RUc7m?|Цr@Ͽm=:?|# D]?f}ǿY;`ɧH{ɿn!Y@H8"MĿDDÿZAQ?_U?nl?2&{KH̿B}hʿWo?p-XϿWɿµ ewaؿwCeJ2;@?3cC%Gҿan&?TL?qQ&??}<r?@@Qg?ً 'տ.kn?B`ZڿWHR&U?vſ]c:Կ@6/PLvܿ#k N?l4?ѰmG';?I5y?Iu9p?9K?.]?"}0pP(ZPvnj1?: @~p^dX?f{T2(~@p?ZȀw ?Xb?ѿ@)R?q@{?ɊnV?$A?qXVſ/tz?K$,ѿ*kɿ inȿΒԬ??T(?M՟Zؿu~ ?h߿`d^hпt[!5⿏-g\?M¿4&$o?3k9a濆?`BtKBy?VX?(4?28:??};ļ?z^?\xx-s?/?f3^?ry?^hl! f?M7ʪѿ* AeֿN4ξB.?@ ゼAy?6l ۿ+^?7ʿNE!٪ؿ2z'?6~ƥبؚK_?6\U{ӿu 0?;>K?~6u?.,a\ֿ{j\_?=n"+ɪ7ʅƿ*wҿޞ.j?5?|̏?"n?u s?CD[?gH@2x?xE18]׿ELJppA\?wο U԰?,#>?tIۿO؝{?D1N?[hN[a-P?!?q=? p?c⿦?lޚ/׿XU(5s RSۿʿ =?.q忌=@?z4ڸ?yCVm?V?_?D F?zr夬4{ǿzU?<ׅxʿx{R7YZ?Gr/¿)Xo)H|RW@Z?"e?l(?Lwc?wS~d?HqN?wiп?me?bB? h,D?-+E??o?Ik?qXj/?d¿2+h ?ѕ׿i7X>пmAK#$߼п>⿾''?}H㍧vGR?#?LtL?TyJ?>#Ȍ(>F?N)7?{6.?#K?Z4,?+&5?Gq`ѿd;@X<(?z>UH ?ַaV/֏-?%Mt?UP=WZŐQ#c߿dU)ۿϽk߿GCmҿf#??!-*,??yuI-?`=Uh?e?#;f;?P׿=B?ڤ)|ȿ>+?B?vԗɿԌc+?ʯ;??]Cƿ@yqPF?`x!Ŀ旨谿ſCYZ%ǟF??DŽiV?NՖ^?=c܅?e"?Ҡ؝i?sPZ]K)N_%M~_j`ÿ23ǡ?֝b0kT?[?tr- Mep?]??NaZ^aۿ>\U?x忱[D qοx3^ ?aYLwHݿc7@ӿX|=U2Ϳ؉BٿR9oĿz 3?qSU⿀׈Pu\?gN?ʛsj?-QWϿl?z0︿yCpyqVy?t}bٿN]5k¿#7{ÿ͵MӿL UN Ʋ/ ?i9㋛ް?W? ,?zə?HTtp?gb?`w㿒?ͧf:74̿QMtsI濭?Nۦݿ?/Û˿jǭ?rkSլ?P7 Cr?zF!J`?!.w?:, ɻ?5N FǍ1?`ν?T?8Kq{%?& ҿ(iW?ExO8ɿE,.z&ÿR|D. '?rտ8oYS5?/(/&O=G;W@?i?P:?3K)?>S?4?42xb?pmY?eGF?D ÿ)?ψ&0ڿSQ¹?^fӿ?ę sP<Ϳ2OvQ"IԖ"?r?N?yg?:dk?zԕ*)?V翞} ?;3Zh>Q$y׿l@r?,j6kHB*ҿtּ?ֱz,B?IL/ٿyuǣ?ǃD{ʿǞ3ÿZ?w׷?t ?+Wf?pۅ?<R?ÿ>pV ܂FX??N6<12?98g?x"nZ)?IwA$?6Za?@1,L/-([?VtTM_ؿ[?2/ŧ𿕊 '?03SҡC%? V?ji ?L]uq?.L|?> ʍӴ?(]'S?HH }?/J\Cx鿇W׾?sW h 濰mnV=*?)=Ch!y#y?/S ӿ pƧ??ӿO˿ҕ[$ʿ]+h BZͿT07˯%?V ?Z),xҿUc?U T?sĹV?/P?ߌy?f׹?:+\pѿ}("?ir#7{$ (ɿyIBڿں r҃?5CV7˿d_?˸?lwͿgI?o9m?(pX A?S|.?H?,f? ,r.cW!?LG~3ۿt5 TƿS{&濋$|S<⿰y#+@?,BU9?]sUlxw3 ?lի?f?2ڠ?a~kgf /?Qz?Pl29?ł5?SKK?PE?$܌YݿM'ÿWY޿[Jƿ|?L.2ؿ筱5?De?T 7?W?R?rE?OrTQ*ҿ2 3tZ/:Ŀ0X|E)?"P|?g??{m"?š&?*Sݢ?LɖyHsb?BMW-obku7?z俦BȿcH(!ܿ9E޿  X?MB1uؠ ?.\_3h?5U?Pv:?Q Hic?26g䦿6Iq*T ?lڴ?Xۿqiп~mOb?Í:R??Yᤲ?3\?'s?ʁl{G?wi?2#R?\?qG? &T1hʿ:"`|?^*׮Fx e?Z?v?o?P??d|qݿ.LyA?$L`տ9rPY?׋? GYEѿ 3~ҿَ ׿ݿ˃2׿43-ת8!? 3A=տ,ӉY|?ql-6jdÿQǿL-w?I?ԑ^0?ښ^̓Ka?m?nǬ?Ȉo?T"o?J?WL?w%?9¼LԿ@u?Dٯ?0]B޻/?&.$?>zb"ԪXl?M?St FῪqcd(B4Sػ2y q?$/AŽY˿;K'ʿ'r¿Yddֿ ܿ﫿yDͬ?YK?d:V`fԿ!XEi?B?1?;:ԿzX2ͿcY(#?Vm,\?""w?:4?eQhY{.>rѿa XǿƇ}?^2S?z!DD?4P#?d:ȿI)cZp?X?dD70j?pڋӿ,,+} d࿨T(I @? P?dքdiz?ɿgG뙿FڿUo:пO{ӿة1#pc;rC?O?ΏM?>G.?y4?X$tֿmǻ?οſX3ȿicPۿ^oп^rpù"E? l ):ſ.?,Ŀgϊ࿌^x7ٿ%r?#4J?A2?#, 1?U?|+<&?8:5տ\D?̪ A?Z+h<; ?+@}"?F<[Dֿ;?(pҿ?NXp/Ϳ.70&(?YWg)rT׿@0?RaĦǿ gkοǚU9?lV1?'2 ??X:o?,V? ?KbIH`U[Ћ;A0 0WeSC}i$Y86EzOJA[k4},7Hv:m]5=KGKFS_W48NL5QaP b9R hHd{60T eb 8BWg& ֡Ye ˀiwW\Yk{_>Smvl a֊6%p[bc0lqDpekK3+r-Ygh3Ct~-j8uŧImw)+pu~0 Yy<:oqJ{8'N@sO"^}nucTۡwꝽ JzfkA5!|B;y9 9+zyLpdN21Bj9uƾ[勾'I̕/W~j?ї_&u[Wdf000/F^uN栾4l,'G`"׵%kQFޥ{>9!5ϧM*yꣾ,驾*LU,,UC0p =}B|II㧾s^ nsZ}vq䪾ɜ y\T04&2i&R!%JA* ZTwc鰾{7"W᱾g"I~K,䲾K7% 򳾂~-L z¾vMX/xAľP^Vž[cǾ&߹Z~ɾz0%A˾(G}Qoi4;skо4c-)2bѾdڂn9_Ҿ /p7ԾڴbPgվmv¾[x׾'0þ]1Fپ\>/Yľ75۾Fmy)žiPyoGݾ žx;-s~߾$ƾ'ྻAǾ](C2m݌3iȾ1z3ɾvDʖɾDʾ,2.xi˾YiC̾ᝯ{5N+S{̾ k4;;'テ9<%;%CS ਲ਼ξrEV #Tbξ.d]cξs њξ auMYξ*^vk ;ξ: ;zj1x;8ހGm1̾gA+AxM˾ba/C҄vɾntkkǾ֐Q|e.ž7þ 0ŊOP~‘:xX)?%cm@e w' -≚P *ZF8c>)~} i $uCqk0>-9r%>L.=|4>PۛIj s;>,[;Xha>C2AWQ\>7l^c[N4>/&{>E  r~>✰4Ɏ)e>'5.To3>X[#/L(>">2| [>sWu!>J2kC"=?3qKcw#~=3?ZI$Uv2T?b@i%[?#'pN1_D& ?,ze(Ef7 ?|)U?@+M?4,v,z?Y4GJ.?{&d../c?)0὞X?*v1U?"Y2.m?|fE3#XM ?4Ҁ;4!o9v!?Γ:5z<"?VD6̋$?|KxsW76t\&?Mi&u85y:(?ghZ9?3"9*?l-::rz6Z,? x-1?@𢰛/3?m#ɹ@M|4?IVtAu36?]]5B\،7?21&-B\s9?IKCKaw;?FPxqDf4 q=?E@{oE"?? LF @?c4R.G  B?&STH/%IC?I9`D?pSRIT'E?WbJiFrG?^Kh,V0H? =LḼw7J?jf)QM*HVL?HyNO%N?F2 O@P?YPPZ.GQ?0f QZ R?afQq0S?>JwR5 hZT?SLRS?U?I)3SzV?MSyuk3X?HTFuY?BT^V[?cXU\?lU.g=^?HٞbV;_?<ՕVE`?7aW=gAa? 1W*0Fb?ˇPX}ܺc?Å7XZ#Pd?w*Yl9Ke?k\gYlo7f?cKY%A,h?-֗U >|?QfCT$`}?VľISk?~?9n>8Q?O?Pwx?b.OL?vbKnIw?m&DD&q`?X0U@Y師 ?;Zv6_9; ?^)!'Hhrse?}<˹ؾ#R?~4,(?%̅?Jz9?G)a?V C?g`>?IK?8? cQ?,?>dn;V?\Nx?vJGZ?W`9?\w_? 7?tb~b?,? g4?e?6G*?l̟V )h?1H?n6Z;k?4 ?^քwn?KAЎ?AVp?줢?9r?W.*?P-Ĩt?k,φ?@Jv?E\?>qex?kF?1f7Pz?? }?O?v8~d?9zT?Q?نϩ?Xac:2?&6[?k?nK?ؑ{?,,͗?T???Tҧ(Ї?1u]$?VnkK Y?ҟc?T*=?2χB?8!}?ĀEӔ?P=dE?:5?)ܣ?VN*,?a ?[#O?P֑?2k?~bͺ)ʒ?(?kLē?snr?.`xŔ?Y8?[Q̕? Qŋ?0h'ږ?3}?e$U?e?7F?wH^*C?((|%?đd?\kJ?Q #ݔ?t?LUg{?.w?ۈ^G?Zyʸ~՞?&oD?[1`?Y}?|_x?6t?>C?&'8{?-?}`?3?j&)le=?u!3d)?)C?8bͣ?+|?hTq?ZGUˍ?b??!Ov`?Hj8?_?m݇?zO?Ez?t٥?kz,?;4F??;?c|{?]u? iɴ?P\o?=(Vm ?xIb?P4H?o?D?1ث?tRd?hB6h Ԥw?vsdfk?.P)&|U?a Yz~\Z?R3ΆGwٻȮ?L q`H-?o? C5?ׇq˟Q|N߯?S5֨? ?B◿̟36?/j`PR2Q?,~+=g?6A~Mw?WSPR? ϶XOFo`zF? ݤ7/b?۩lUMÈt?L٪"*aa?Z5ީs!wG?<@@3.$?Msbɬ?y 0O拯?c@r÷N ?ur0 n?5`'cs?X 1?1Psϝi?RᨌJ\u ?AFӤ? 'DE?;xCC׃o?˛QEBKH?9?vfJ B m)?Bx??X,6B$($?,Zث@ p?Ԝ=!?At8X0?j y~-?k .! 6?? nVK ?;Y($Փ`? ^+8|?2Dug¿ts&bb?W:¿h]`d,AÿlD_ywJiÿA9h ĿӠ{gwnjĿFNRcoiĿA:]`^ÙſʟA@)JCiſqg-/ſa=v?Cſ8n;wk4ƿcei1< kƿbLrizƿD@;`ƿ1!0s7ƿ 6궿NƿLIϸrDl ǿb>ݬZ4ǿ C4lǿeAթǫGǿ | U3aaƿDW=Xƿ7]¿ƿR $dÿKoƿzf߫lĿg2<0ƿJ4vſKmſ1UaƿG~ſǿ%w.ſ8bȿoMoĿ)ɿ 0UHĿ.ޥʿ'ÿzc#˿>P1ÿ%ƚ̿^]¿8eꐰͿ`Poο,!O2VaϿHEnm'Nпzծ ѿa;:ҿn;hJĻxCvҿۻޒҿۼ,du,_Mӿ5ʊ4'x*>ӿKɤVﳏԿUVԿb &3Z<ԿH pܑ=jԿ8~X5#Ϩ,տhUt cgտЄz?Qտ/J?=u'տK?Ӛ տt إ?Mt ֿ4P_eM?mҸa!ֿ,a`\[q?&/ֿ2V˴?jŃ4ֿ2O3?ކW =1ֿsb3?%ֿ.])?ֿM2Z?Ԗ aտ.$?Ziտ4Ȁ?FҺΗտ-V?t7 g\տqfձ?l տiol?9Կ>B?43? nԿ4D?ݹQ+ Կ9 %?qDӿc?f۱S#ӿR,?7"Cҿ,R?C-ҿ 4?߷zѿu6 v?R҉YпeT?>t+п>/??Hοue?++fͿWx~?6;:˿hS0C?NкO$ʿ}i?oo?$eȿ@1?O?Փƿ?qĿJo8?m9Nŷ¿:0P?;9xfg?޹'2û?`и7ᶷ(?>^Yww?-itt%6?7+vU?Kk?{K;u.mW@?myK?upl?n@h%?1#܄̒?>?jY??#=??=W ??Y\?8j?n<=?<@?q?~?83? g?"?0R;x?Qֿ????20?bP'?'̓?0? 1f"j?N\MB?\c:?6K?T{[?K3H?0I?8X? <r?V?Bc?ϣ,?qpR?=OJ?u:?!pf7?~@?NUPu?m&>%n?.߫??/n?'}?h2vj?Y옲?3a!?D̝?[??T s^(KMN?910IjU?:TR?aɘ1QbG?RmxWLk3?nL+"?dۭ}/Ŀ (?l =ǿD?y^ʿ͙᱇?kW)οvF?wB{Tп^o?:ZҿB ݧ?5ӿoK?hտ`LA?VQ׿qx?)#*ؿ93#?_j,ڿ͈}?''ӦۿqǬ??^ݿiO5m?y޿9~OO?J;"I߿Z/9?࿳!j?[2<6l?U5翩cæ?~1K^?\_:1K^\_:翩cæ~<6lU5Hw 8{;>翝2 do)+Ŀ65+aȿlZ?@濇d̿53ڽQ-}Ͽ8ҞtvtѿE"u"2sOӿz;忣/b տbdV*ie忔ֿZ&mN4"QؿIa{PX<ٿc 俼M&tۿ9㿣%<ܿUN6㿆kg޿piSND{߿ Ztῳ!j࿚[2翩T s^53&翪jp&?s<¼?Z4eo濤Yٲ?LOhڪ6E ?p]#q8~2N?ײx/nm?O ꂀ? f6} G͒?Rk:<忊j?;HSJA/?0( w俌Åp?Փ֖) )3O/?DGn[?dutr;?;G [h?[%n?!pf7ݿ~@?=OJۿu:?ϣ,ڿqpR?VٿBc?8Xؿ <r?K3Hֿ0I?6KտT{[?N\MBӿ\c:?0ҿ 1f"j?bP'ѿ'̓?Ͽ20?Qֿ̿??"ɿ0R;x?83ǿ g?qĿ~?n<=<@?Y\8j?=W ?#=?>jY??n@h%1#܄̒?myKupl?{K;u?.mW@??Kk?7+v?U?-it?t%6?>^Y?ww?`и?7ᶷ(?޹'?2û?;9?xfg?m9Nŷ?:0P?q?Jo8?O?Փ??$e?@1?NкO$?}i?oo?6;:?hS0C?++f?Wx~??H?ue?>t+?>/?R҉Y?eT?߷z?u6 v?C-? 4?7"C?,R?f۱S#?R,?qD?c?ݹQ+ ?9 %?43? n?4D?9?>B?l ?iol?t7 g\?qfձ?FҺΗ?-V?Zi?4Ȁ?Ԗ a?.$??M2Z?%?.])?ކW =1?sb3?jŃ4?2O3?&/?2V˴?mҸa!?,a`\[q?Mt ?4P_eM?Ӛ ?t إ?=u'?K?Q?/J? cg?Єz?X5#Ϩ,?hUt@j?8~8Z?ɤVu,_M?5ʊ?ʼ,dxCv?ޒA:?T;hJĻ ?a6h:?za>ծaH:?2fim'N?z?۬Z4ǿLIϸ?rDl ǿ 6?Nƿ!0?s7ƿ,@;?`ƿbLr? izƿrce?f1< kƿn;?wk4ƿ]a=v?>Cſqg?-/ſʟA@?)JCiſ:]`?^ÙſNRco?iĿ{gw?njĿA?9h ĿjkD_?qwJiÿ]`d?,Aÿs&bbW:¿x+8|2Dug¿($Փ`^nVK ;Y.! 6? y~-k X0񛿹j!At8 pԜ=$($,Zث@x?X,6B m)륿BKH?9vfJ BC׃o˛QEBE;xCӤ 'D\u AFsϝiRᨌJ 11Ps孿X0 n5`'c÷N urO拯c@rɬ󯿱y 03.$Msbs!wG<@@aaZ5ީMÈtL٪"*7/b۩lUo`zF ݤPR ϶XOFA~MwWS+=g6R2Q,~̟36/j`P֨ ?B◿Q|N߯S5 C5ׇq˟`H-o? GwٻȮL qz~\ZR3ΆU歿a Ydfk.P)&| ԤwꬿvsdhB6h1ثtRP4Ho?D?=(Vm xIb? iɴP\o?]u?;樿c|{?;4F?t٥kz,?zOEz?_m݇?'Ov`Hj8?u{?hTq;GUˍ?=bͣ|?|!3d))C?3b&)le=?-䡿v`?>C '8{?_x񣠿6t?[1`wY}?syʸ~՞"oD?6wݖۈ^G?tLUg{?\kJQ #ݔ?;(|%đd?FFrH^*C?v$U헿¢e?dn;V\Nx? cQ,?IK8?V Cg`>?Jz9G)a?~4,(%̅?}<˹>#R?^)!'?Hhrse?;Zv6?_9; ?X0U@?Y師 ?m&D?D&q`?vbKnI?w?b.OL??O?P?wx?9n>8Q??VľIS?k?~?QfCT?$`}?1i>U? >|?첮V?vl${?8aW?RM~cz?u?,xX?~y?!}%Y?ux?dw=Y?D4w?^nU1Z?2 3v?yZ?y !u?).Z?玎u.:t?O[?/@nZs?ɪ*2;[?;o"r?su;N[? `q?zQO[? p??6"B[?g"p?3&[?^n?@Z?:Y+^m?fŦZ?fZ 2k?QZ?犃ej?-֗JwR?5 hZT?afQ?q0S?0f Q?Z R?YPP?Z.GQ?F2 O?@P?HyN?O%N?jf)QM?*HVL? =L?Ḽw7J?^K?h,V0H?WbJ?iFrG?pSRI?T'E?I?9`D?7STH?D%IC?s4R.G?  B? LF? @?E@{oE?"??FPxqD?f4 q=?SKC?haw;??1&-B?]s9?j]5B?.\،7?MVtA?u36?m#ɹ@?#M|4?@?/3?_>?4x-1?6rV=?.0? 2| ?J[>?^>[#?/L(>'5.?o3> ?Ɏ)e>E ?rr~>0?'{>[l^?[N4>C2?WQ\>,?;Xha>Qۛ?j s;>5L.?=|4>H9?r%>)$uC?k0>)~} i ?>r#>p ?aF8c> w' ?-≚R?%cm?je9‘?wX#0Ŋ?P~ 7?yþQ?Qe.žtk?kǾ}a/C?҄vɾ6gA>@xM˾hހG>m1̾j> x;:> ;^>k ;ξ au>MYξs> њξ.>\]cξnrEV> #TbξCS >ਲ਼ξ'>9<%; k>4;;{>!N+S{̾SY>TC̾j,2>.xi˾å>Dʾu>2ʖɾz>3ɾo](C2>]݌3iȾ'>AǾQx;-s~>$ƾWiPyoG>ܤ ž\75>Fmy)ž11F>J>/Yľx>}'0þPg>mv¾p7>ڴb9_> / )2b>udڂn>4coi4>Ukl%A> G}Z~>ɠz0/c>&߹gV>e?A>P^F>GMX/a~-L> UK7>% ng"I~>7,䲾p{7>"W᱾) Z>Twc鰾@&R!%>!A\T>3&2Ȝ >9}>vq䪾s^ >FsZw|>*I㧾,UC0>p =}B,>*LU,9!5ϧ>M*yꣾkQFޥ>{>G`">׵%l>,'N>4^>udf>000/Fu[>W?ї>_&S>I̕>/W~j4s>A:/^j:>[𞓾}%P3>5-Wp sm>"U$$Ƌ>~!;Ơ'7t 卾uƾ>[勾j9>N21>B+zy>Lpdy9> 95!|>B;Jz>fkAۡw>Ᵹ nu>cT8'N@s>O"^}<:oq>J{)+p>u~0 YyŧIm>w~-j>8u-Yg>h3CtDpe>kK3+r[bc>0lqvl a>֊6%p{_>>SmwW\>Yk& ֡Y>e ˀib 8BW>g{60T> e9R> hHdP> bW48N>L5Qa5=KGK>FS_k4},7H>v:m]86E>zOJA[eSC>}i$Y[Ћ;A>0 0W ܲ>>bIH`UN;>+S0}vB8>;o%RzV5>Kr0$P3? 3>\)N!!j0>+hPLw9i}->c J;*>p&~G`&j'>!FPKJH]Ҙ1_gaus1_1001_coefs.npyNUMPYF{'descr': '򿂾>uW?Qy?_ܿ>?Y,߿C ſ(`R?0M$?lD?,uͶ~`~t!G?:?zDaӿC5ʿ:Ui?uu"ĿP*oZN-Q?,?p@Z ࿾tߕYh޿vc'?%]3?,.?o?)2?3?6 ?i ٿeewп Y[?'? dڿ->LO?dGd UQ-п.s$?xUۿUʿC7J? j.?㿖Gz4?8rͦ?T( F"l׿%M_/.EO?@`@$ӿ|^ z⿙F{ɿe?l.6wѿch*lӿL6ΒX?_p?6,q ?H~K'"w?JTMqy 2گi?`D?yR񿀟f`J=o?10?~ƙS?pP>¿R "b?Q37?5?3{_ÿ;RڱE;?JK?%:'??* ?p2s{K G@\?'C߿ځ{Kh\S,EH>?5?+ S?ϲj}?2(vܚ?Hŵ?rBJpB؋,Ƞ?I mi?k5Qѿz sο tĿ0Lua(־?-l)?@Zˀ?9 fҿG9M!\F f?Xn??{=Uk߿k? f[-?bʿ IA޿Ś˿Ә?xnFҿ9C~n?q᠋ʿf/1?p;?XAݿf ˃応Y^?pf]:Sr_l? >?jM}?H̿#'ە?e9bvZɅ? ? >G?n?_n/v?R/?,`?!/*W(s)8˿t6&y?>FԿ%u(3Ϳ+ۛ1@0F?f 6F ^޿w/%?1j?vT?~8J7 Rn? e>pZ?]@u?l]c)@q g^f?L~%?w{'>נֿʼĮ? ?zv}G޿?efْ\]o?L ? [?2nm4PJ ;?tͿ|ڊx1a?G@?wQ;)ƹr); f?3?rA8?;ci?IGbdQ1>l?tB?;ѿH迃hCC^?dO׿z?b?v? O8?0 ?x[D{ozؿs-|mK$?b{~]n?8"I?pwԁ|de?$B?2ӿ`9YcmLK(1V?jTQۦ?Pģ?ca?|Fl)`AĝV@TH?&|3YۿN?j6y?:M@YtQdZڿ?EV1ʿ(qFb?J͖׿DJYܙPe?jg]?m0m翓]CD̈??^?`$m?:y6?:?>$?tM(]:S?ff P?>rl@L ߿2`r'lP>ѿA$T?>?f?`3?fMZ󿈘UrH?4F3(տZ#{BV?@x\pҿʟ?TQֿӷ>j?_+ܿLCN?S?Jpg.l?=?aN3J6(c#ߥ?rDl;oaֿFR?SDRʦ?9 Y>΀ȴ?Ԭu,?\?bglٿXAHĿاP]?M*k68<ֿo>Aȿռ,?nKGD?2ǁ{Կw0!?0[%$?DEQ0 1FZ տ]7?6OoU?]@krÿ`rz{]wI?X܋;?}in{!?@l#?9HФ?$?P?6~jּ??T#oe]p?HWοm 6??%Iwտs?wg&71dQBW?w? @dž}}ӿ6Y%?X}1V^?\v Hn qz|\cZ꿝5?v,?((v|?QXh?`}p?2(gZ;?@p"YnE忛Awݿ=L{?P}?О4Le?(o6#G?-Ќ.4n0$ڿ ڿA?W?af!xtH4?4"?W vT?Ӿ>?*|ٿh|t9l?EMDS@ jT޻R:]4?8 A/ x>?J1@~LI<-?p{ ~п*Ԟۿ֍ǿ@? %㿐$g6`AC˿D_?~K?`Ҫ۪?>W s?Ep ƿ""=\=+㺿wϿATnRrd?NS?}?/,D?Xsۿsܛÿڿ PcqٿYV?,^:F!ǿaۿ+Pj@|څԥ׿pF˿nl޿uR?ME?8^^4"O>@c?Y?Uϵ?8-Oz* ,D+% 忧*u?Pv\^?w~8o#&ѿPiFi8`!U? ý?6]?B$i֛4VVD{ڿ@rq?̔$?p:\Š?5{2?`6ѿBTxJ?pǡطOͿAgز FJ?kl? D?G?J\Z? ;3i'꿁Ѽ:? OkG3m?0?˩n+ד ? ?bYzݿX|⿱: G6χ?~+,k߄?g3.q?WA(ԿM^8 ?z;?\K+ڞ0?~V?$V|RbӪڊ0X[jҿ4T|Jۿ_Qw?Tc?rzڮտX,Ab?-r?EGÿ?Vmu?i{%l)=qy2} MT4m?Gg? ߿BH&p忌ĥt?aS?6ϹQeup?쇞ƿF&g9XbP~sdժ7?TWѴ?Dش0cZ?-;b?*z7ÿuk?̭c9?3 ?vs-?%[<"j:чԿϖw? "Zɿ(m8ͿS;W߿py?p??C5T?Я߂Ĝ&]?hfLB,?(uW?'if IG"?T'91,cCƿ*H9?w@?zd[>~7qԿ 8q.?oܦ?܃tȿ70DPF?4?r?EQ`?e?>an??'aTsHUѿ`xZ:?Lϕ ?\Y? 9oA\?`ƒG[ƥRH"A4O栭u?tY?w:?@r?Oῡ-KkHYN?%?o`0+Nu? y?c򿀳u?7wc?AzdpIHd? rPBA?>,U?Yl?6Rw?$h?`<0p?00ONOLXBֿI֊ݿ׋?qa1b?ğA;?Mb߿#A,ƿa+?hyw"`F2k7;?J/?!vh?g\?$쿝s5;?ĒǿN:(jۿȄ5v?c(ڨj ݿo 펿&t}}&?&m?Ө zkHM?HW>}~6r?[4?.?@%4{i?.يﷁևމH\;: W?@ѿP2a?ð[?`r?`x#Ϳsщݿ ?;s?] غy?-yL7!?D? Ae|.rh̿%!B#?k)Ͼ*?u? THSe ȃx': 褿*C? "9i?fhCsпZZJ忑C9ݘ9?W m5[?'e?/ݿ[pF̿d?Ȝ&X?60AT6߿[(տ ￝9/?OГ{Q?|g> NᅯBi˿$| 8n`>s?me0?dW?$e?& 翙g ? %k?jF󿜁01Y?P] ?G@T?PKJH*>>2_morl_1000_coefs.npyNUMPYF{'descr': 'v2~̿TͿ\X?wv"؟6?PF^?ut$ӿ.WE[?UbJ"n?Hvi?7u3^hO?<$t?ȶߚ]JXJ/?mڟ3'4п DmYNfɿ?Qaf??ӿ )TF@?瑌͆)ӳ!sf?*>;۸? t՘ |`U {bͿLǿsd Z? Wh8?B?7 )D?]@my9Cֿ#3?y:|,7;??+tj?bZ:[Rֿf$?kJ^?)lA?߶?&'A> _ѿ>~:?e+\п/:?Y?[Y-ؼ^?п($)?F";1?.y"36Kҿ@?*>\?Iҏ(uS]]?ÿ ¿łn?9m;5?X=g=YIzȿzhM?r/vTп$[%ù͡-z#&ӿL јoX?<x?'`?P4V?L*: >濔%|ܿ,?(# 6Si8ӿٜ?x5?|&?ڿBJv׿,`?a/cFW1nտ9?8ae-¿C?V˜?C?8mn0x.nܿL^Qև?4$|?ϖQ[ټ?>g?d[?n` ?Ȥ9"g1ڿ<_w?wu?;s?S_0-qWƿbG? h?7tܿY8?BmqJ}H?jfS4?ȵbB)ӿ)Is?:x+jW p? 3ւUfIӿ,a"z??Nۿzfw"?|X 7߿lAԿ6/?L@?EƿCV&?Lx|h@$0ſ4Y&?Ru?{ qĿل]S?MKǿt,}?/?@n$B׿d}+?"슧Oӿ BOb?cOƿ{N?W/c:?3gG*hAհGпJ"gkP ?'|Zݿsً(߿̎E?0`\-/v?&Idh?L/B-|6ѿZõ?BQb54pۿѲ?m#ܿz}ꌍP;ch?u׳?i(y= ,ƿ'?hFӿg~*?f :?lo9I^[?x1=?xe Kshd֔!? :X¨?V[9տZ<$?w?K+^̞?U:eٿѣǿ?ޞ=4޿p6 37eS|?bXGZ@zﷸ?j)?̥T}޿[ˑ[??{7?A^Tߜ?߾\?e8sbϿ|5.?R JL|s2k\z3?m{=F?.IYg? *:tPZ%;?D"¿+Hȿciw?"v "ڷ^ZžA1?xS}x4zBkSO?y5Fa9࿓'z'l?(t۔?JMp"?3L#ZݿݛLYȿp/t?Sڍ?!6f/ݿ™iݼծ?gnzf?SI?!0ؿUA*K ?? ٮ;kbIſDAo,cfԳ?\y? =;?'?2qi"X,N`?TNwÃSj,t̘#?Ɩv@ݿnT^?Fg0?Dzy^?T6Aƿ=пc)?Nv?̤:?%)`?h,4?R4J˿jrops?^iu)n$̿ul4q"HXɘ(NT-򎿃O?^J?KVT濤M-c¿0?A?! 5?<ǣ-5ſ\?? ȐL?3Mҿg=x. Uwʿ*ĿDWz?۠i?X+fƿ57?2r4?Qj2nbCn葿7 V?p" >k>?̓1=?TKY`?Sտ n ͿqH?(?U?&?$#Gg?Jw ҿGBο:="ٿ9uWٿR?!?ےwY?[`٘!?pœ=?Xw/\ٿb?M[gj? n4PTл?˭eĿRTȿjl?4 k?Y}n迀-hG(?&^ǿl?8}?v /ܿ.?9?][(ؚjFbĿ>%^{q0?XRB?6 ;?+f6>Ӡ;=15?L!~?*^9-\wҿM8Ͽܐ?2Bb?҉9a޿2\?tĆ'? QT?7jۿ%M5%Q?ˡ vs?yL6ND}&?#>ѡ͝%m\3B?l3ڹN:쿰b}?A?3Q?10 "ZNIֿٝC? ѬD?cr{m?&D*ʿ}Ȑܿ/_5 ?etc'?Sտ"/K?y$+BdwPӿ &p?F?B~Z괿J?t^ef8jMT%̎@nƿ?XV?P7?ZE{UҾ?C޶ؿoUѿB?hHy?F-ۿ2ӡ=?|o8?!Ba?4[X?oFwɸ_O} S s ٿȥA?-!E?pO ֿ?" ⿟dgп4J=~?Xs?7~_=X=6o^R?zmܛ8?9U?siV1?I7?<>d׿?Mҿ??VjK^?W_AU?GyY տ5SG?@ÿzۿg,:?%6[Ф^? { ?eGT1_Ug`?w&kuֿi^?Gۢr[?Gx (Dܶ?(¿,2 ο# j8?T4?|Ҕ$@n1 sD%?nzP?*+m4LeȿG-?2B:V떿 ӿF wܘ*e UĿ@?h!0[տ\#?d1P?L[?gڸ̞Wǿ5?3sh߮dzA?|?jݿsLÿ#Agl?@Ŀro?h@a?kn?tt޿C|[׿'? )Sdпx]?n8O%(?f3a!E9ſW,f?Wп@9LT)d5?h{)??rJ9Կmc?O\F\ǿOH ?!ǾH?%L!iMYy q@?Xu?o鿞^u$Vo?)3%?Gfܖҿ?+H[zݡ?$JG%Y騿e?o<'r=пj?hVO?!~)5u{?arZ?B~G5=Ϳˈ?@)w\?$W, rֿH2?a߻? :?fڿ 94׿uX?V{5?%E1n?tgUDm;ٿiW?!4<?yyAZV B{Q?} ???`L{6pAԿ}e?$BlQx?:]?<w9pѿb}J?vZcJпMpX&?~]ұ?H"2CtdfQ[濘?FC?c5C춿%F~qM?F1N=`" r|??6v^ҿ} [\Ӳnڱ?)տ"j?U cq?BYHw?ʿ֨Lܘ ?G9q!|;E氱߿S#ÿ6MNK?2ds1?qpĿr?:!8̿ T ?I3x3#?Q:FJf]8%?ה1?؅,?̀:Ƒ8i8@b?>뺶RS㿈YГ׿Kv1??3~[_??0}4迯eǿL(?$7Կ)%`?w8?-ƆrͿ0Ju?Dْjb)Y?=E4?C%^yDjW ?22g-ο?l ? /dI3[?I? ɐ'̎/qdT?qǺ?p)0ԿU?t?jMv?ⳔP?Vٗ(!t`ѿś*+οAb~?p~X?U.㿮V?l&?{@"?8r?>?B2#m {7ÿ ?&8m]P'b?in?& ѤBv2bb?;j Rj\ Pbjſ'7c?S+?ZQH?\7hguԿ??x8׿GV5?B?3(X~?PeG????^xB2ŏE?Ӑ? ݨǿ t?Ҥ9?6z ?H ::?zd?x@t9wٿ_mw?b&ʿM%o5ƿx ?2coҿ,? Kx?;/?U?_c=Ț9ֿ#X2s;?`evO?-ԺʦC?+Flw*ܿSn??.T}?]9Z*昿otUE%h?.j?|?,5jd%Pݿ&N.4?l +My-̽8KA?j]޿0)2Ӓ?Όfտ%?XC0?* V?^Hb?~mX"Fٰ~QYοFV A?M4[_࿞y26?I'?I+?E#u?g&?? [Ŀqſk0?PS`E???}޿|18ZֿʂH?8pHl?V!?JI;⿳|iDnWh? пfjyR,ſ*_ÿ.e?WD?hI ǿ>?۳?./?WpHæѿn ?濿Pyj(?`!?stEՄ]?rlt-5ݿTobe?BA? 4.TT6_?ҿ#QW?-e?˘PPB %?  ?0!3)׿`1?]׆R{?J<8^}D?/̍8 h:kXg*?:Yչ;?#z \?;FٿG Կ䷷4?)?Pӽſ?p@NkD 8.ſ?Q?ȰE<5?z[p| /oGJ7?Gf`п7߇?["`?^ ?ٌլ?1kӿPFܮbT<z˱e&ѿVBM?RލA?.b8B`¿~LJ?7>,ϣy]?~$?`H49,ĿDB2?~~N% ?1,C&4ɝ?N6qCJ?uALw?,4q u^<οMK/?|m3e#Ͽ'Y?aD&J?Pi,?ES 0?O]rd\ؿg?v(ce?2`ƗֿRr7?jM̿hg?2uK?NXԾmM?{G2?5wUA߿SnBA?BpͿy&?k|f?`M1ݿ¸?9ѿ(׿In-)0?8? ߿f)*:?X`ֿ; EſiT?>s%?!+]?j*{$} !*? (,ȿ,GL_?K"R"N?U?mvI?rTKUڿcx?Up?|>տX+?2kLQ[z{n9?WL?H ?K™?>qq&¿lqu?M_?7⣜ɻpPпBnu?v?LUiN˿4Lyؑ?5ӿ/N^pz?&H ?v-\d2j״?Y6?ed>f4οs?2Y?x(|̽?V[\?ԃ=Fm9A(,?5C˒mѿXx{?FB ?Y?bN4_{f -ƿ-ۆ?_ǿRb;i?&?x1gĿz1?ąiĨ?_,ʖPK%ǿ<;9οc\?ב?࿀x̆.^?2׹ e?"i?N ?{"ɐ4?4ؠ=ؿCA?H C}?oZ:FҿWO ud?Z޿͘l~l~?N+QScôӿ4gm?ɓs?pw!3~#-ć?'~l`gm?g?i[^,OJ?}0-ݿD@?ΎOٙ?v|ݑ?Ӣѿ+˿'le0a?P&t?+3ͶĿ?:#D&^t J?πi?ZT1?ƿfE,۪t?XL_ -WZ?6<?~ /.螴?&K?]WlwLaʿ㢙Ͻ(g?r ? (dÿDV?}!ƿ^Rۥ?nKaɼ?(yI&9?$AM`Zѿzuy?`E? .Y6?-'?]r{f6'ڿ?WYau?J=%+^?$ڠA_A?~aAg?a'%?ꁏV!ʿ|j?Z& ]?!?G׿;lԿ{CA?$0$Ŀ6e5?Z迿&/'y?j>T^dĿ_}fv?NK?wr?p[1LHa`0?-ag¡G >?2 ?@S͝${[Ϳl??Z 17dIUѳæ.D> ο +[`?|^?4m-d ㎏?pٿ ޿q1D?Zw?RƦQ3ED?ےP\ة5{ۿ`'pJ?G?Fu?Klj VGLPzH+ǿ|Rɬۿ֜E{?t̒Je?MwW߿׻ F?`7,Iͳ{ؿd6@?,MhuLs"Q?\֝?UR9?%"E]tw;ѨE,C>N?Lu?`Vܿ cy̝#?pԟox`е9Ҹ?Gʈ!?~Gj#?k?xz?ϿĿ7?i4כlҿ6T11?DT{?.#̞ ?DyQ&̯x?.emҿc$)ͿQ?-Ĭ?rHKȿWm$8?/z 3?rY`Ῥy@>?KπLΎ&:362`?$d?PE{) Z?C/?l{J̿Y?Љ$V?+n}t:Ϛ?5+hK޿a524>/?G?qߕRڿ.3`?L 98i wgѠ|~?TƳx? 9t"K/:пiw?SxK?ooӑƿv?M?|߿IC.ԿV?F^/q`?}BY?;ϳ:1䵿E ._s/?Al iUڿ#K;tZ?"ݠ#^X?n@쿉r%ֿhhi?6s"?pNX3W6?LpƧdhfǿS ;?@%!i)\SؿD-o?LQW?hgEGI?fJn'򯿷eUֿ.0t|+$%Ŀ^-H?'Bҿ$B5*U?FN!]icԿ\H?rWԀ?( fvt?ZQ? jSÿ8^|lNǿp@p`ދ )ư?9BZ? "X;WZ԰ֿ0B?aHtĿ$k$?"_?M~AQ{J뚣ѿ%M`m0L?fY2߿\ӿՆr?ȕ䵍? pր?KHÿT pA?Chu9a^9z@h?Q?S^P鿘Npę?;r2X࿎/_`ɿP?Nn2?Xڣ߉k~D"ty߉"ʿ<Կ/A€? b?%c -=(? zпxYnѿ{p?MeVcٿU1IZ?ԃN,?l N8̿l@ʒ?*AſU, ?eg?վm'p97ÿ n?C߿[vFb?fe?baoڎпdȘ?+`G?[+ۨ?M:ؿZրſ]8?HDpK!:޿k%D??:{7?@hw ? n]֮6g?/@37 ?&)%ٱP?=ٗڿF%5?X8:?mPKJHsp}p}2_cgau1_1001_coefs.npyNUMPYF{'descr': '.JP !?rB~aXxt.YsQ>z<>ÿAOIQaa'޿k}f;?\f?j?cjp?a{࿰NuN5?hSy?^x?=he/#?ׯ!iD?s ?~a+e=_w 1?5tz?i^[@?t`nā{3׿`[2DƿEߐK뿲K|?Вp￰`G?ֲi1IB?$zP?"?Lҿdm* u$?'*+?C{Gt?f^K?#jqTM9ǿҽx,?k'?hQһb?5? Qi`?f;a[^=΋s9Q3 ^ؿq???<ǃп,?:tÿZ sӿ Pj?>twῘP%?ƗHNR??z尿Ԓ3+뿃`/ڿ/v;`?`ǿ+&ba?rv6+ۺm Ŀ4i?&?/Cvш]ѾۿI9_c?pXwݯR?Leٿ&IJ?n?8-?H0)K@6k2ؿ"?*ÿG׹?1bIǿcONRN?¢Jw?TvY߿xU|$?[w?0e?# nK[FۿuӋۿZ^(7I&? h9¿hfe|?nxؿlҀt?>Li,?L=g??O?M-ͱ?WשxSIndP?v;?,(b?zf7 { =Jk?a?@i ?Qg -[?kCE =S?_l7FcV[ڿw.b,Q6Y?8 -|[ٿ㼇?)\j'?p?_@Z?=)?Pv(Flq? ?fL1㿰r?aӂοH޿ ё/P!d#?v eY?}I#MvjA+]뿺͵:? s0 ӿ@8fG|h4Ia? ƦUo?}3ÿyCA?z(_ֹz?]E=?IO[?.tH?^VQ÷?΅Bh?e[$?1".?h,5_?F8̯?bLΨ̿@xY?vɅ꿰U{Q?7ߢۡ:Ɉ?ND@?nV0ܿ}PƿzwϿ>$#?اo?/ꄱ{f\?EMGi\;?nxi `j-l ?uj4ٿ#QLeݿVe kʿe?e?XO+?"fп7ʿPczD:2A?"_Ye1@ؿt'R5?#w64:|r>?sf/(?FH?3? m dW?Z}ѿ ?tnf?a?`g ࿶ ֲ1ش ?,tDҢ0ۿ^r\dɿoz?Z=H?SL?Mg>*?ڻG.?p Xٿm?ƽNÿlӿ@.9ٿn#u?5穀 ⿟ 9?B_^ԿIv*?%,?H,n?od% ?g}2k턽" ׿S˿\#?R#?8?<4fο_>v3TW, i'?I4?iFЅڿ0*~?ØTTtNJ?ðoȿ1X 1?鈛?A1?kCD-?G,\>A\X?Wv{?`u6?ƴ  ]?$ؿ,(?Sq[;OW?aPX"?ɪ?u X?}[⿳Q;?(۰pҿ'e?DYN8?*vݡC q~,IX~e4LѿqoC ^1nd?,X.ܿD-?b @t ?n=eI?l@??= Φڿ}o~.?ƣqڿYR?dD激A~͢WM@?i p3zC?UrhՂTv X׿0ЪuɰOˊ$+@&Cu3x ӏ?]mUQi?CWm?7j?']?jJLW?HƿP1tFX#?5c ?q͒??f3v?W?Ңϟ.пy?I8i:?SS=:ؿ'^GFHܿtvE࿐?wbmƂT:P?2tVۿ'0.??1@w?3vݨc?HJW?JF^7?\L4;:?_G7"JN޿fhO'_pEg?qԿ:ESp?2uϿ @P?[R?;(D?\P?]aΐr򿊨q[?껥80&x?2 . gȀ~9SVnݿj^H\54_Uڿ]OB򿙙$?| ÿJor?3븡vI ˿k#??,Yop?=\޿=7`? %}C/'{?y`EŨZI[.鿚C2$ɿ"L+@4ɒ?k * 8܊?z޿XO;?r?0]?%'?zUU\w?.XB,jV?Yi?s\ٿ6"YdZ2qݿ_(3ֿl)?=[?iœ{v ?lLܿ$w?wLdzK忛|z?MPヿ|;?|kyQ?P,i?SU?sӷ?h7Auv[?d%XW׿foMs(]? W#C?IbݾMֿ{_ԑ?-w?xko\?:?S`K濈l?͝E96K? t ῃ7ckL!@ީ?~ƿ?#??pl$LT'пKS#01?v{$?`͌?XXU9?~0n׿?OXs?8?j*?nY迳!?{{IDU xvilqFģG5?/Z|ݿo뿸&P?XRƔ?I&}?/Jؿ25ٯҿAn@bhտ? g6?`) ?6ܐ0?bo=? @ܡLژ^?N7j㐔?2Qxp濴|/?&i"?wY)ܶܿYInտ _ ^Q"=#ax^?@ ap e?-w4ÿmq? Xdwi? 4.?9?6?]b3+пx?nz*4Ͽ"?J^῵Dzǿt < ?гn?FIc] H?BP s Zs?['(\ aQQjO?}EOvVEܿxzyÿ򋮔x㿂= ?Y 59Qΐ?B?'Ŀs[Pk3?#֮ۿe?H<Ɠ?܊=dL2z?[= 7OܬX?kOuLۿ#մZU»Pu׿vYB濱V]пB{ 뿘R|y?hҿ:I?xt_⿸:S?C2L?e+ ?JsZ?Ud6?!|x̿XC@t?Hl@ۿA:?/"64yRNǿ @g Pܿ㹸4ۿuz?,?{ )?L_˿wdm > T_?)>ο4?d[ѿ=H?" jҿ,L01?n_&x?9_-?9/%??/s?p?p?U;"o.r?ۿH")8*?N#$q?%.8 ӿF4nfL =㿖-?3; T<-ƿxƿb{BTeп ƿB[T?6+#vڿLF?.A3V?x*ְWK? +?xU>?k6}G?9*?2mȠI?_D`jTÿ=ѝQ4R?wu?`ٚ´n?\h *:@0? kk<. ? )п`/|L?tnſsP޿B8k#L=׿hyLI¿cr?M近UħL?lZؿ+\?X񃴤?1T?#$?C1 ?>GJE?.g5oՑ:?#VXؿ_\2f?dѻRӿ[?m nwk?g{.˫x ?K+0#ѿ4Op?I>?v`?i\9?j H6Ϳ>4?؝?JZ?X2C.?Ȩ^οǂN?u3h?/oO? e 7PHR?l\أ EĿ:11]ѿ>?8ݔwnQ–п?LRkb]?wŇ?qKƸ?5 տ /q?\}?ن ?D2'?8ܿ7j?Un;?uCO%?"ctѿv̰?Aˮտ^//?),q> ?k$77 ~?Dڍ(?M\-?sp?!Lqѿ2x ?FqԿ?۹9HFkO\X'p?~nlX˿V4]?eyt\2tS㿮nw.cb7 7F 4&I?DGR-gֿ:4)?d#ō{P?"5Pa?Mk3Կ*w#?&McRݿh%IL-?OgtQ*ʆԿpW9'jVпo:?pgTo?;cx⿾?-J:B?b?p?֡꿄̰䨊?o!}̿Y Z-?ap?etԿx?h%ݿ@Hx??˿ 8nW?(arAmx?;?hJ?eE?~?F/V?8>?yYKտe7py翢A־?@?nJ)׿hz)?e!!m?Tj-3ΥU?& B=LG/(?j ×?K?F9?D%1{?ItٿeDD?F5msr]~Cw?}Nj+і?W$h(QP?l` MFC]ٿafc⿪& 鿚ڏz4vH?'L ٿ"Ҏ?)Y@z1\?Y3?X3?z?taYPxZC #ۿc7 r?{ ?pDJ忔%ln?GZh࿸q?C?( ?4\wѱ?̿ň?te~ʳ?7*T$n?2,j|ƿ`Rnib߿ ?U'ӿh!?JE3Կ2*K&ڿHZ?Ac1ݿ^u?сqXyܿ5=?yď?fmx?xB?/e.?βտ"Im"?4HSsU*Aۿx<̓yΚ(?l&S?:+?Q uoVtӿ*!GcM&ʿ,EʿLڿ f,hT?8='"?=ӿ|kJ9e?ɒ|{R?6jĿ\???D?~-DW?>^l?.?W4? w?O>Šb?v俋o O?LadIvwmM=ӿ F0^̳n?j e?I2 qL?29ؿ uRyf?Q8?5D ?3?dhoP?H/VF?Hy 2?$C[&rh1 8_?%Ͽ]Y<+ƿ!caYIsϏ?p=?ӿ\\mJq?.yr?4(?vWK?ZCȬ?nr|Xj૿x}ΩܿMu̿]dC2?mN1޿U`p?ɝ`#ؿ㝴+{?4O?d@r?]2?I8p ?ge+<+H?"!/|@?8sB&CR3Է,󿖾Dgh*\R?o)?{ۂ˿ԡpxؿ0bf*с?eEԿ顿2 K,?pԿ009*ſ7>$;ۢ?+#ȿBi6#?F69W?@W|{'?`JeC?t}4?^ W?lIH? 0ap? ׿HfS?GPݿ{}?r'6ܿ R?uut?CDZ{s”:?Ju&y?'xs'S?G(~?Ut?s?m{^b?Gsݻk* ?P.*l ~m¿iROc?'gƑ ToePtյgY pHÿvMؿ&@H?Kpiy38?mܿL?hݿݘ@?HWU?m ?~^?VX4,{G?7ÿh ?0-P4]?F[l3Tq!F?l4u7ۿ$5C?Ҟl?F?ubL?"+qFP?:vՖ(lÓ? s?Pz/ ?]`kn/?$~:0ۇg?UXdӿE ? 'ڿ^I.mGؿأ:+Bw?p*f(3?Ů1kv˔sm?}T*l?'D?K0p?D.,-?N~@ƿd?/m?>zfϘz{?Źv>{q`6?in_(?8h1_?ռwV?Aοs.?ӏZ:M?/R?/y%3k?bUտ[4?j$jɗpK.?BPn'B8_s`/=<=t̿ĽJ 02Rhktlտ ~T|(33sR?ZiٷQ,?C8I\C? Ye?}\?N?XT%'R?8>+W?RђĿcj?!@²m]?L>©4Qe?c~3꿰T,O⿌' Oy*b? ojIɿ}sh?߰r/>?P?=?SV(-bT?^_I?ѱKu?4W`?lD!kyտu S?hطM¿ t?O|(.x?ROLy?ǹWPϷR=lP!?ddݿ Jn?/$~0_%\ܿ1t}RHӿ>)x bND _ܿbq%̿y d<4@@#?R,ȏw?IWEvۿj y؛׿6W?DZ+.GB?;@?v4'߿vT4&& v8u?-z~ο4  i?934B?!!n,|r?rS^_ ?Vi&?n亘?)q ? Kh$ڿN:} ?հǿ/QK?X8 N\ 5;D? 5}%Կt"^?>￈|s'׿:\ |}ۿ|Xaqֿu˳G˿UIf5? G#u[iL?2kR 俼D?3f5E(,E?2ƭ0?O?0|o?ۦ?6? 7?.]H?̃ISd?–uˇ_Or?yp,q@t(ܿHP(?F4^?ct&11#loZ Կp`$dҿRO2l?xU)пQ`Ե"Ƞq`/z ̿tL`붿d dcѿ=DkO?A À? /?0߶98ݿbE!?%/P~H OMݿVJܘZRS?fR`Vۈ?pTOb?[?a@h?x.H?g߿[41Sޥ?h|%?eSo?*s)WV¿k l)F[?m_¿F4yտ$(6 пHt?%uq?:lտn් ;\.7M?9Tn޿eǿK- d_Z?7A߿ohB?*?c:@?3?X5= Ǔk?QRQڿQC?Cx࿠$j@*7Uؿ| Uڿ߭o^!P?:#҆.?]pҿul-f?wο+Vvx?l-]? o?p@U?dN|>?L j?$V$3eVM࿆Gœܿ![A#R?,P?XUh.?cMhs?|חٿӖ!?#Rǿ]v2?A,0А?i$1?~ع?Xql|ֿ܂@.! ֵ`؆̿ UPÿH̹ Vx?98J*4h?6K!,8b?`Ґ.;?"Ĥʏ?G׳? 5U˓`.U?C Mj_?-r{謁5~lIؿ 6?T5* ڿ8kٿyۨ\ƃ??8?8T?Ye]j}SmSBu=CP~$?Cz?{jiq]ҿxw.c忐bY1lTL`ەҿ]IR鿇?󵢿1%V\?_kƐڿP.ٌڿAah?sNm?b7?<%?'=8ʿ?V?4YG?ܐХf@ ?"PǺe`,LA?COҿvUw[Y Dÿ;Pѿ0K+ԩ?$rqտW]V?VƯ/qxj?cqh뫿$y8?}źMs8? ܉?'յ?M?`CU@S8?F,t~׿n0?2PIb|v?C{]aATx /?nldf+cܿKv>t? &?b?yyrfU.ƿ{DdͿK?z. ?酿MQ"`ܿtN:f?NGAC=.O?mpZ^2ӿU!޿'q<>̿Oa@n׿;4$g!?,RkL?sXb42L?YiϿ1*?l‰9?rnel<Q@"?Tq$ ĿB^*g(aݿf^Qd\vfnǩ4"=+C Jc?+t׿ʃ()?Q#> Mw?ũ`?9EN?C)ܿus,?Pf۽=%O?nAJ1?0k*?$&4?U, (?񫾱 ?qU+p*?7%Z1~e?A׿?`*#-`hٿvۿ .?}BZo?D ?˪W? |2oH2?w w?De?SxYؿTZP23ڿU<LxϿͻjȿ?{K0;C:?BQko?FВ?MW2οbG ?8hMQ]n>°? W.翂) ѿ.޿rL$kq3?1\ο| 9X-ҿh޲ڔ?H|N?IfE?W,1ԿkA4SVֿ~?~}ʽ4?)jlf? 7r?P X VyH?=Q?УX(d.J3?33<ѿu|sB?lؿjH?]t?{tr?Pl?sRd?=Կ,?fmњs?Q]m`?=F濬GthX d3y-忔6?}lRcſ;?'E߿@&-iϤ/? ³? ?e3w'οRe?ayE= ?͙ȑa&ҿ1EZؿM.݈ӿ]Ht?RcϿ_\+?-g,Ƭ- ܟm?|oOREٿ;i?*SŹ3bb!+ҿw#?5+r-Hm+6?Kn_򿴭0%c?3Wȿm?)aӿx?Z7Ґ?1n?m'?W&掐?DbLbf4\9j?7%U߿5ҿṖ]P῜d#-?+?b%R?/?]?]B?D?%_jfֿ?׉H?l?ve$5^=zOӿo=׿&KO?Ĵ-i?Xn]:sxZ\jt?`? Pտ?>"ۿ$X0O?_" 0K=?^K%ѿTV0PC`H*?4Y.|쿭MT?$ ?Ϧ ?O'6?:j΀\?p?|q$*vT?X?/[Ł?}go?PKտ(&*?ǩ?n>oh?Vo4v?Wt*ؤg?'i࿾u{Y?B3-xQ?#^п+F%ڿ5WǛңN׻ֿśX?n?|KJi?&zm?X3Hÿاko"?So?2 q%ѿfb>' f4?u9֊k,Q&Z=~Ah3"s"s?E;m?3?]ﰿY?5~?gV?Ò??Zԛ $? ?t?{y"տł!?#*޿tً_? bƅ'?@"oCU'P+مۿL)(e(-iȿ#›uW俞Zi}?SfЀٿrG?']D{E?J92?KM?;Z7.bS?F=ո?y?Pn?dN ?Ax4?WXr?T(?eo؄G?6a(濪7jKK?^8%O?t~t忛 *_?6A"ȁؿFn;?̫}:|?ҵk迕 ?4ޘ}ο?x?J?PnZ:?(CE?+ ?)t ?le? ,MR^s ?vhv!+?'^_h'|(Zkz"a?{' DGeѿ\U~{"}!?Ԡ^,/ @@.uF=O/ .?pUԥ2z?@o ::?l6пm䢳?'M_˳ۢ?T׿\˗v?}66䖩?(]T鿜ƿ%~Z _?5gƿ$k?\lhvn ݿ&lk鿶 S0׿C¿R! { b?zw\ ῄ;?gC+?J˰տ*!?hP)$15?gE\ ?kY6?ѿ#?k?ޤ ?EǨy/#?NBd?35=a?2S\FEX eCl𿣹u? &пPe5?@p賚>xG`ݿ1|bMs!?}@?|lT??l?nSx翎3ӛ?pOSj?UƼ z?}v3ɿ'^;Gſ6쿮Ya-V?ُr 0NN?9K\Bio?}Y۽|*ϳh26pRſPmjۿ@?OgSOLD[ٿ(D#P'?jV5?= v$?{ SB?{#@Oجv@97?Xq?cZ+4?2nj㿖vO6:ӿN?h?Sc޿+1]r?hb'Կ,n񿸱jŹҿx`O ?R W׿.n ȿ|,=3Le\QƠM~?z ?D(peg ?w῁z6?տ'#?-"8?b3?_:?O~+f;??hjZ?ֿ\3/{[ѿ糃;>ӕ/?P/ haOuA MyZs |?X+R S$?lW*ARņ?by)oaT?7vwQwа?Wj*dz* ?(#{05 ?%7O?@?dVԬ?N#bIn?_,?~ƃ՗ȿ9L?c|a?ytܫF?%hTmj]?Ntz#~?Xr+箿ä ?li$L^h? wϿe| .Uѿi(?pg&y?y9`o060aѿLAJK i˿cn?̩Xwÿ-H>/n?{!U\nHȿ?v)x,?vY?W ?;DhϿ@*M?a?jA 8Cu#*y_1QbYl?J տ?<4lܿRZ,3g(oM*?6?d}D؋ND?uǞ=Xv8B+6ȿۉiwhTOu>䖉?Ղ-|8? lݰkO?26z?ZDs?K 1?)փƿtW?pA~?vxk?8T!OOG5?baJQX%?dؿļ-ֿ1Zsٿ@_ie?koAǿʗy!? ?+?T?F?(I?Q9'a4?!D{C?r??? QHͿlC?NUQd̿AMg?2J1忉 ࿵WM'?iLaۿ?ODѿEgZjY?9In=?)?o?%5ڿo?{$ƿ!:k?]ܝ?=Mpe=f]Cc!P/y?SwyNпn-`qa:kۮ?#>I?x 9i?_:z?X0m.m\&㿮үY?,0J/ܿLj@6|6?ҍQ?Tik?Q.K|?%zɿr?wXUnX%?+6Qf|(gxGU; Ȗ?oh#⿺ -?iZr?]^?B]B?Z?wtՙ+h2c5??Ǵ!?'?lG7ɿ*2{UӍEI`?'о?'?ޱwς7+Ͽ L:WEi?"&?U[?pb,n ?a}ʊ\ gk)_ZNοgS|P޿tf]?Hl޿η#K?(NpFu?ܡJ!?ݲ'¨! >?"з*v(?ޅTa?@Dy?H?vp]t?rc?{Q%?SQP5^l?X x5Gx}Pv[ڿtѿfAT9 *H@vÞ?)3xMοh|4W뿈\ʈ?zK+ÿ?7?b<cy6? 1a8Ӏݰ?c@ch?4;q?X?ѧE_u?VH?^4'=hȿ_Fdu?4*9޿GP?u뿤Y贎Y-ݿAUF?2S Ԅt?d>{zc?bѣ?p5?&?XWJۿ9}N?K1S_=?Ou?,V,헢?T|¥?߿-3-ų?"/sg濾v2˿  VMBR.?`_ XԾun;?k{ؿ4o?? V?m*?XcPٖ|?uě 쿍o̅4?+GTkտ|R Ψ(U RFnտ2UU]XPT r?pnJ.5? o.ֿ@\hjzefE?NjJĄ?u?qr?ʳAڿZӵ·?q ?1??ܱ0)?3i>?7H ??Gֆ%{-y?kE@?"\?9w8?d?[١ο L2?u/h*Ix۸?M/;?mM D&߿/gKDcZ῔ZK?(ڿi1=пc:DW&^s?ĩ5o?X0?kᇤ|ȿ}ۿ@cbԆD?hq? X-I?QkԿt`?#Ntɿ쮉e?N ?J?C?P۪/?ZVɿBf?At xqc?8% QXտq##ƿ\係B/?x`lH^?h?2oGlY?찚Baп0Fu/3C߿jfV*@?i7U~oR(z.޿dUC(?FS?3ܞs *?)O[HO}ۣmN&ѿN_R ҿ~ Ln?j_X0NKk?#b u߿5#UB?r?꟭?j[q?W/STHJ?z%ЌĿnⓎ?>.D2?r#lN&HQ?vgS?@꠭?iO;Y? Q_?~j!?r(W?S? qO}ΈT[PIsu{Ɛʌ?ҡnC̿Ϭ@応^TkA'f?wEQ`?eWV` WԎq<$n,EqqmBY#p`?.T2_ؿF3aʿQѿy8JS?$!Ŀ#(:|e ǿfxF ࿥-9 ?͛Om~̥?`^KѿD+ ?Z*s?\tN?\TE[?fO? =l?S&? ?z ?CKgDnڿḓg?N4?,eU忸&~?6x?O°?p\v 2Ȯ*ۿ} ]:=忄v\?폨{7q?iy2z*Bѿ)0#i]?'W5?,',?gmV? &i>2DGտ<y~?[胐d߿?q?+މ{L̇Ị?%$RTͿԿ+_?vxtn1?VzTКFa]ᱽ?V8t}} ?_%ײ⿊tʿM>I/'?)/ȤN޿x&S"MA`/$ڮ?`zU䕿I ?9*Xvο+K|? $?)1s?+~P?ۊXԿJiL D?1=?XQ%? }yɿE+?tb|o?!?FB?r{_YcE?2|\?=s˿|%bп?&L5?Mb95?  ?MztSԿ^OxI?@紒g%rJ,¿6?ߎȴοOuԿy;?s=_ҿZ)G[[?Tj~5ݿ 9?F/?#H?O!-6?0 f? A_v?7?$ 8?yKOٍX?!k?XsvRI? Ȕ?eƺ ?< /UƿÚ: zտvuy?tzA?wPpƿ\͟5ӿåt?s/w'|ڿe?!!#4޸?eC&`Q/?;ڝoԿ4( ߿3Z濴 ٿ'sa7K?ܿmQ b?Ic][O?!wy!?u?u7=?ó %??l忱:'ʙ?ԞRjC濤cO0n?wiN?4:Usݿ/=S]?`@!$῟G;?R|aR?+?r%-? Yu?]JO9e9d?go,FPdy(T&꿬UR? Lֿ9"M?Wv¹T-?i?t;|?&?8n ?G{eH-?Fɢzr唴HA3?zs? +R?aNͿL?4?z.]">]6?JnrYWE ?$HKs04ǍѿfO<|nՉr?49MؿƆN@?/\T&PKJH@1_gaus6_1000_coefs.npyNUMPYF{'descr': 'f%f*m2[?Pɒ Wŵ٩~?Y?.1r?4ןJc)(苙?:T_&?ákL%$V@?F3]?JE_Ze;e[BQ??LMDB5O8L%z렿bTOGe2?2̕?OlãB6?PԮ?փ;zuexղh'NȔH?&Z"ضllZ(Ϡ.>??/fҔ#ZtlH[ X?g.E'L`h0u$'l?mܢj?~S9$-̋?n#?D0N?:.uٻWҤߠ?_ ?c ?[x?Sy:n?^Ѿ&mWG`*$~byeC?_v]u'_?&-3&C²*.+ı?;qx?DdԄ/1R*'?>ǩ "6/q-?`'J7Nz ~?tCQ?K\j6;" *p?o xm0G]?=핧?* ?Hjפ 0jșt?vb.Mp?Q/ ?s\?!Im(;>g08|?Ru?}? ? F5| 䘿J֌ .zA郍?^kDv?ȧ<M+@oŴ@K?' ?N_NXZ ݡEji?G vțzJvXPN¥?aC o'˳?Ú,:Zdhka?0Fmג?DY쇣?,e~1ݽHy?Gp6? fhvvʗ&7=? rě^?۳ra&4^~?mGM cS ?׶??*8?Ou4򅙿4ť?\^I?O{ r?s7q?$G?^!a m10? w?pKŵna r~Ge9?%(.?_5 驄 䐵?!1k?Gh7W ȋ?elJkf?u?J~A ܌?yZP?hpw}P|^?$Qd2? FB>Ze?.ޏPaIA;?J=?}Zzwn)ӗ?ư `?zw3SXz_ ?? 0f?3IrB(IL&Rkݛ?ƶ?x~z?}NܶW`bk?]ˑ??yp?N?\f ?P M*L-FI>?>t6yyc?(r?h8ns?elVwd@<<Xn?WK?L)&7ͳ oTD&թ?xǥ?0֙8qk^|?;騿P$Z՝mvb?U/?ף$Yz**?߳i?(CR?q}?!dGW;?:?ʲ>Ug 'Ǘ?#8rGg鸗d')Ѥ?ظV7xvJ~J̩ޚ?lďˊ?Xk~Pa?rnw,dSMvq?߻B?`!2?fP??2遣KpP#Z?m,s5u ?I|:k=ٵ>'?6j?R'nSz5h?xo-ߗ?0Te1bl?$V@ƾ Zߵ?4#-$j^x?ji{4"?.1?1GxE?±hn7?'CPs!#"$<6?`UPR%$?2?e#o Z}4owB,Q?1)(?Z?N Q+Bi?>讁?q[ ϔ?N8M?=x`#oL{5g+cR?!&?0XCl?=T梿 ;_ܳ N?uB?bcD #@?ELڴT斿3 ?G&ԕÅ?4Eߞ?q.!]ᅪbFZ?lu.?qAqWRv?P?ՠÿZO~/Ff? EV^p ?c?렡%6O:{rK?Yڗ?X%J w? Φ2{L_?Cp?Bļ✿jb`(?2[H?~(@+ 5<p?q/w?~xo#$ŎcHQL?͈́Q>nWI ?('_?׆:nEڈ` ' P'T?xG?Q0;?WTQ̖vv=1 ?7ܫƝyO?Hp0Wx?#R ?v Dpxu??@=_No?tM>zX뢿\?cjq?iI]Pɐȡw;??稘-f]Y,wqN"Byj?"uִ?zX|?xK.?D֗tYNcK? _m' ?혥uK}S?]?eu?&`ѭj^T@>Z N?؋~ˠ?@P?ѬϘ KܿɨDE %W\&m?Xbi?^>U}?ʓP2S%?|?'J}?aS?JQnB@b?>c䤿Ym7ϛ!?G X?kBA?"!zq#m?*k?lȭrx?ϥҴo?tc:Q?Ex{?-ɔܭ%A :(Z?ӧj?5 L?Yʝ뭝?])T3gdܤ?j%1S?]wY.}[S8'%?RY?>.0B d 9xJ ky?Hs?$h?|g!vRw5\L? udLcK?pO@\&m?*'G#?`y4?\ИB?4ePz(RF?H뚿2!̩XQ&S?痏gzw0@;,ڙGIA?(H?KTv?̯v݀?n$@ܿꊃt_?hɖ >!!?imT2?7ocW sꕿb6?43^?iPĺ٘ZH}a?tm> 8Y?Ta?>0 X?N;ڨWam?tm?čPlU3dsgݏ?[Cx?HEaZhJ,?^eNtW~b?GlYœӬg<#T?FEː?LDѰ N>ϙGa?%6Rl?ǀAY&›.Pu?3e ?*ڦꖿ.#Ւ]BHz`RU?M6b?isfyiᢿ4ۍ?w| vA?Mkaj¤?Qx+?̹ߦslka󽅨?yR?~<Лvl-MMPB0lv=H?`&A?E]2g?6݁26_!?7u?VVRdy 3?c!?ԇ . ?Y?].fEbbe="u4򓨣?Х?L$ݽ7U!m@"3գ?ɠ?Oz`Զؐe?[uXlt.A?rK?Mَ]i] u !b5 ?{t}䶛"D +?H耥[i?;?[j+谿"b cfMFޡ?~@ {Į+?E-ptht/??p=g?!R׽ [?04=ܨ?WE^v`U?0mNnGpzİʛ[?>o4&?PX JHcG?>^\v? .0պ$ tlgNH?Brw)gTJ:@-?ҥ ?;v*M?Ep?_?C30ʱYF?ɹuՆ?fl)H؝?N?E D!݌?tԘ?8m-?wWƨ-D#"륫?|:yZer)}_?nR3?6s0>qd?ʁ6m?2= 걿> ˤfgj?yf!?lƘc)f8yj!nDž`Ugٷ]p8r?+<49?@˕!R?湍SvwC?s?Ӑ 5?*~ ȡCM\6f?LޡY?U#{?)?]5{ ֑?zׄzێ9eS:?!ZCIT䬄v}?FN}Я?8JK'$6qn?mKQ??y(*ݯ?dm#嘊?qgKҽ܀DH?Q? V]Lu%[X@Πu?қaD=׬"uҍ}?nrcZ|p؁ʐ `?Gw\o虖L%o?@ϥA?hiX9?X삅?D֕\JEh?2?8W?x*u?&<$>?$r=?nR>A^?-+QXf:oNAQ Ü?p Yp?8͒H~-٥?H1iDa۰nKjHX?Q,Q?;2?D5Ջ/a,N?##wRbZtS?V,H?2by}೿v?l#q{Ʀ'&_?PE=n?hVaG0ܕ~\Rh/r㕿Y|P?9 |?'O(j~aN?AnXsȉpB?|nQ?.{ݲv=Vړ>oT?.z!zH"Ʃ'4>?:tõ?λ¥H%%?{q?Qc/`ri+?H鱿p ?s?+𖘉wNPGk??RJﯓ?_?ЍR? 1D<<2'9i1?g?k𔿤,`PΕ)?L3oXvt ?63?x@@GaWbA̮?4ج?rߣ^MՌ? isj7wBQug?p#Z?7ɟ୿)Bu?(pn ?Q{_i ?vX=o۶?tД?w >\!é41 %? u?)wⷔ"5?҅F?bMԌ{w—أ:tEI* 9?̹Aum@)XYn"?6 > ;Յ?ϳa,?$D q}q?SN~<̚?ڐkcdE&+R?Mt?AxdNJ|S?#\?!xMx%?h(`gӠĄ2ܔgA à?`@ ?a֋CWQί{?4R|q?l,$~u? _|\x+y&7]?Rat?-x8怿12?ڷq?thݓ;XatJtb?:E?ЫU|:"PKJHG>V>>1_cgau6_1001_coefs.npyNUMPYF{'descr': 'C?e5X+?Xr?B:J턝mǿ#{?]}N?V1FWrε|ſJَM&pi?Neeɲ?[RLj?78ʤ? =tl?|౿ziȿ pq :備^(?Cw?u?zݜZ?❀9ȿQ];?Ld?0T0?[#`(e*A@ѿsѿ&G?.nĂ?d7!ΐ?{W,;޿稾Bm?!9?WSԢqӉiEAӿVQh?C?HDh?"?yQaYeiuHȿb?PUH?݆?,l$ͿʴDU)j0JJ\C&?_s?t7Lƿ A‚Ϳ'Uk+ۿF/[?Cǂ?Sr?;{r~`˪Ͽ8e?ţ<>Ŀ]䶸?̐?ԧ:"?*?"wfW}ĿTr?F?mwL.@zտzeP5c[?%r?qztb>=$`?<. 0C?IɆ?~0 ܿ\|̿:' ?]P?=DYr?ֹ`QQ6$޿ʴ۱?3퇻8?Egs.?H㿧 @пo?4}s&?D.Fc?kD8埿zfl+ӿvf7:?\ՠHr?BRk ޿o? JSy?R$$?N࿍\ ^iпY_02n?8o?GR|l?b?<)hۿfS^B?G3ÿHIkֿbg?+1?_[z?="߿P_,g?DT? oa.tg$N"j{?:x~9"|n⿢wH p?'9z9c_cՠ8jI-?b́+?8aݿG^?axɿ=`#v޿ cP?ˋ?j4O?|F@迨$p%$|?9?N k޿p{ϿVCʲ?ay.H?]*?tR5Y?zOƚ 4Dɿ"(jvOؿ4)Ҁ?qkd?Lu?&k߿,L2׼?C)?Ûѿ~!ʿ?(Ke?[?"?96G%XPĿ(,Gf?|Vr?_m33t l+uS0@O+?R]͟?]F*?6ÿuA@Y^ǜпh)?(_?[g-Q?ykmy =ah鿎jq`пn?Lz|x?K6D#&Ӱ?XĿ`ɐO`39(1?Tw?iƿ@u?y/&`?@jDcx52[=.]U 8?2 ?m[RϿb0?LP?)ev?I_Zҿ$nA^ ";h?XdHOhBv?yQ?nt w̢?Of'^Ŀ8U?b2F?b~?_'g=hǿqԿ2?PV}G7?hQ ?Cտ> Sпb|X"?eu?DQHE}?rLg=ȿ\y/'ǿ1cyhB&?,ސ??؞D ?갯I?Bץ?Ӥjҿ ;ƿdEٓ?h}l?H|N;?l_9E?B(#?S߳S7ο\;Q`*F?bj?.AC5?H %6iҿX6 ⌥d?]Od1v\#޿??@SYyW3׿ܾ8"҇ÿp2wB2?Bv4?P&0ڏ? ? z-+h4пA&5w?n3@?>NiJ<#t{r?E?;* 8 &Ŀ;3X?$p?X^d zoūN?t #?7'~4e̿&xz俸!T)0?Ne?lmϿ~? /]T?{?j|2~%ٿvR켿>F0?C?XAlf*} 魵? t~&5kȿjQӿ+=?H? kFEӿZx,\?uc, ?b#jf #ɿ}q)?C9ζ?YL<π\3b픯w5??R* ?u<տ`"hҿz SM*?m{a;?7i Xi/Uѿ֡D?CM;?H}ÿgv?FB)?MQeԿRG?>= f3?ƻЬ?MHm*<ɿTc)\j?;#V d ÿyR?f8?ޠ?va4rU?%Ђko?T/ɲ?bw!ۿ>UϢ?Y?|FNܿR-wҿ֙"?׫;?67e??xB __ԿH?[ g]?2i{?('"5Ϳ 5(c?g)z?y!?rX??}WøT?ut9U ¿ޱ?d>?}$ğbѿU1^ȿ2<?c0R+ܬR?]g?G翶}Ͽp ?\1?L?z᰿ۯ̸ gȵW?=|?м?FɿtĿfCXa8?Y?7쾿`x wJ?61Ɇ?@j?@i,DaпFlܿ!οXJ?H/R?Zh ?X? _俥hҿ214N?mXX ?n b[TR\\fW-u1]T=R?6Y?ݐ?VԐܿJqqӿx:tۡLLY6?w #aC?(+! ꈟ?yÿ㹿ڕQ? b|?C}N?D.ظIqտfoVȍ!P?nֈ"?2l,c7٢p?H@~?+N>?䂳OEпT <;ӿkē?=?Hz-?h_Ծ׿2tI p/.|/ej5GȿيV,?C<:l4?a$z?uQ ۿ:Xп@ͭ|Bh?41]? "\@B$?Wֿpqdw˿pȆ5"G?N/WR?*S1?*KІٿ(ſt)ԃ?5^?8*]??hOI>?ƙ?͈F?`ky9AR˿gn+Z޿~˳Q?厂?*ΣKͿS fʿ8uӿ0 yWX? ?*X3?K 8ҒhqrĿ8t5??ST ^*}ɿ&۱ѿ^qQ?+g?tvہ?~jgvϿ+k?Ɋ>?Vſ䵿ccx?+̿NjG/??ث?P$,s?`ͫyC?w WȐ3AԿaO3?'5Q?~tkm?)yXvKT@KAWҴLooǿ -|?LFsu?"[?VX'ѿD@?rEܛ{?^;e?C]2kPÿJ'a?HԤ?ѻ˫RzI0¿;O0*ѿJ8:?= ?2(ܛ@ǿ,?e>G?\ƍU>ڿÿ5:?NKY?.bnԟ(V"R?b, \?@C\.1o-I?8?+2#?ӿM rJp?Tv,Pr9,oi}Ϳ$§?g3 ?E`?%K=`ݿh?O rcZ?V}?=2G~[ؿfi_T? q?fsЄ? ?_ǿFwzs? ?Ô[O?$^$Iosg"\οF@&T?iUu(?}?[ZԿ}/3z{kM?Y-pN4pFҿP*ټk L^,?VYK?o?#i~_˿ g~'߿ur?~^ki?ֆ?:V`uNi{ m?\PJԿ&f?m(M,?`!Yf!,?RDpG9Ȥz̾xw`?Tl20?=ҿ s?ҿbJZł?u5?gF?Գ9gx8CѽƿцHj?O6h>V|=yT޿&V7?G5et $?5qM ࿴ŝK氈Nק? ?7EڿԌ:`=jy?C9 ?ɀ.S?rFfٿΚzsw"8?6饿=Ƹ޿ _?L uG?|U?HZ8!ɿ=m2U?Bk(? m?0{?@Y}?Q|sK;CϿЧ)H?Fsk?2f@fO?쭪cLտ< FHR?OF.j?-ag?-xп?oR?q.?9?H. 4R?ܙcꅦVȶп~y]cչ?f*Ll?ȿ&! ʿ5)J^c?dnkkB?6 r?o⿀2c?XW?LRd*5ֿA ?:϶ǃ?DU?s;߿퀮ɿܕ ?/XSqP;4?u[K?W:_??>hƿд_pLxe\$.?FCu?bM?j鎉ۿk aIa?Izb+?34?`+㔼( a¿5 ٿ NEiӞP?B?Pѿ^F9`s+5ҿR۹̿HdO?b ?p=uӾ? OTըGMο0?z?8Y?v~?F?}_OLݻ>Vr!EۿSzcڰ/fZK?@=?ڙkzпʿnènׄ??l/?Ĭ[?G]ỰԿ#c{,WT'?M3WnпN^3@?n`?R e9?CmȞ*'-X8 ? $ ?+ȿFiy˿ʅ$A(X?d?B7ȿ]HO>GsU'E0\Z ? t3e?lhΔx쿽CVORÿZMeMS?qW@?k/ҿtQꙶ? u-HyAz81]?IV<5ٺ?v-#cÿCj?^?HGU?q*d Ed"bؿ{Yޥ.'?hx ?5ҿ hү?D֧?BLq:޿ ޅٰ̿?u>C ?W1??-]X¤ gG ج ?A~_wܿhȌ?{cG?M|Lh?`0޿T8? d?[L  SNӿz>b?^K"(?4S?1{??J0YfпDD?nS?:#j? k5@4ѿZ ?bI6y?9)y?z]EOU?,^Ϳb ?Z Sٻ?EÔXɿg z?όa?j0йȗҿ."BX? g7?*:w;ܩ `O#ao?\?| Zп%h[?FFau?2N D<E?i$?2G?tުx)@zNÿ)sSӿ edB{X?l G?AZԿ,Ah1]_ ?x2Ŀ\HĿ;1k?)A?៉J x˨3IJF?ŊzA?C9J_kϿM`R%?&\>h?WZnh?6򶲿izX}/Ῐ [e'W2?lSĥ.vޑ㿒sk ef?xRE!? `,9%ɜ?P$k?.?0U+/ ?z;?PU?J ⿲()¿3U1?SOx{~Ͽ`1ב? 쐋?GE_?\qwn׿ש ?jo?lJVdǿ{ץ pg?d?0j̸?fsJ=,ϼ*bHؿLǼ?J(?iX̿l^뿮cz\??2wRU?QNȰ~Z??˱Ġl˿0*}޸?:fvQ?T%`?f4۵?Ͷ郈 Ϳ7vQ(?rȬ[?dfTȿ)ݿVY ?#lٟ?,H?Y7owBϿۉZv?H(G?%?x"ɽǿ2W?? {?rῧ'@Uȧٚ ?Iߗ&aBcпDat1ѳ?Mi;?ZO?'ڿ0G$ӿy8"~T[N?׺?Qw&0?K%Kƿq^ο/U߿"Mf?Dd?DԿp/ʗտa"qͿ^2?j;-?p:7?Ёdc~xԿwĿHυ A?ˋ?PG]q!ſ;=ƃ{ʊĿ+uE>?Hwb?uӵ$&L龷?FY>7?5s?|g&1Ͽ *)*ҿKHd[?)SK?a:!?)ܿ@ӿYomxN?:?]冪?$myKU¿Eb? ?2˿mѿIJ ӿ%9K?,ؕ4?"׳?B:?YF?݃z.?*\"?Wm(f¿ؿAm?k?O;?Z>Q~!3ܿy!xQ?D0=?v +i?p4?Y K}⿿z%T岿c+r?F?/r2^п],apaचj ?Vz_YMƿǿ匨jO?1DR?ӽ߽1ce&t(ƿ}?p? ` ߿\ʿ*@=?&Q;??^y-g~&9S4|9?Ki?dֿd*i,ؿaͿau?2- +? s?:;eп9i? ͨ?06b|? ?lS }?z3rJt\wykHVKb ?9lj?~!ҘMbL빿Y4ġC:?j( ?qW &%A?QƉ??VP?/U/Z\вǿ&a?EG?k=Y(\?phDJ2tܿԻzο[X7?$<ޔ?B̂u?x~UY/?̿aE?V0?{?#Wx@?N~ ?r?#F#HPk&溿EݸAH8ˬ-cjz?aPq?ピfTx f?/-!:?~)I#m?.k]?Kſ>@I΢@繿f7ZL?V'?~Jǒ砿=7tɿf9X7?ሿG\ i) 9?cc? Jnj?̒`KԿIn?B+?(^{?AFC;-ڿWĿ^ p?s3~H??pPg ?F7&#?;0u-NͿm#pط=2"S;?T?Tr7;7ܸ?t<-լΖ,ڿpe-Xv$ 5<`G?we^E`n#YݿF¿?௴?="F?^ 96?򘖿2tOF(˿jm}?\?tkPy,Ŀ&tx9?Ӣ"?c͡?e࿀zB/HTKj4?8]hؿ`ʹ?:w?|&?QXܿUޫ3¿Wym?I'H?.f2ʗ?)Ӏxw?f#37?#U+ۿo˿=09?-"?; C?d3?3*DڿHʿ5 .?Ȁ%?Bǡ?7ЃBחB˿X=$ѷ?l#?҃qz]PChE?ή?>yv8N翹 Jÿ#+ ? =V ?vMο)+E*Le>)?w?,Pk?,ըҿPKJHG~>>2_mexh_1000_coefs.npyNUMPYF{'descr': 'ԙx?co9k?^JѿH8?Upܿyw¿< y>DE7D$mۿ @\?0ppq"?@Wͯ\@H@C* ~:8Z`?n>^&92m%?r]Կޣ>[B=OمTԿ9ud\"O>b[ߘ3 i忔vv8?'Y@m?2& h?}+w?pRɖJ\?F;z?ٷm?.4?IY?PJ̢? h ?/*Hi͎8?h(nL)d6-:=4]_N+@' s|n.tkܡ~?73㿐{/ꓦH{ȿ?Co>X?>ʻ?Ξ3t?BPe? ao?L@zE?P߇??.LT0?.?+, 0?MgkqѿaHl 1$:5? 2}O?#?E ? c?yuƿd}G-D \ +dʒ?ϝ P?h:ݿk:G??MӿKdu$e0]\[HMzY`"Ŀ "P=?hx[,?|?rW?VT)? a?gCc̿cmu&4Br B^>כ%"HM5 ?n^<+?L}?sye?F%?lr?BlϿƲB?}ÚH@?Yt@?cd$a?lX???·?8 !'?4ܽ?Ja7rٿ&:j $<7,1Zd+d?]8׿ *G?DA8ڿ ¿#B𿖲Dˇf0-G-c Ͽ;h@-?xə?bp{?d?q) ?w9t!OX? \ t?h g?L:'?fݕi?5l9-п+¿kUrtPԿ++?gI)wӿX /4?̅+tٿiCl@ 7Q@D7)^g޼ٿrg2?37ك?β?>?Вw$?}g ?$[;(Bѿlw\x{?(?t`nPUc? ??d|G|?j4+y뿓Ċ$Zu .)+? 8[iS> ?>\եǿ4@O"߿X$?&Uֿ9ri?pj`?dTba?.j?~RA [P?Ǜj[c(O?ʛf ?vYO?uu?~y ڿAQXJ9!7ivqo?[عFN(IFcU>Xҿrwu 8(*?mDWg?ਲ਼_?.hU?/ ?`o?)^M멿gd_MrYup'ߘl=? 2BQѿĜ3?`ћ?*ހk~cBή?B_hr*ڿ>t\޿P6O!?ݿ2~qMq? ?{wa?=+u? e]?P/>2c?o ٿ.k l?Hcy?d6fU}?ˤw~B?$KJ?xX;ο.$?f-l?@r7ѝ?cxѿVfw%-D0!K`&Yǧ?]JcN(Kؿmٿq;D?dOb?@?34u?6BY)k'"]Ϳ ,\8VտdJXo=? QῠwN܇r]%?2 ? J?w#@oIR?>ĩ?wzHfʿ7C_QifjEfb"5?4 ʂ55ѿ5ɿ9w[-?JeU+? fc?6?z??ۓ[?L?Ҧk~?5iG-I&#D5f^8%WXDƳ@U!5?A>?$b ?;Ě뿺J4+"?p+Wq|?-_?7tSݳgm."?>UֿC.sl# vхb4zFwTD>K?FHK$ֿO ?Yw?BqH@?-*?)tM?XT5?w:+(6?@P'm ?Ey⿊CgY71ȿY*?֒Z^? ?hX+8k?hnbܳ?pL_?gT y?V%X?=u?tL?Q˴J=]ai~!x% Z1㿻WYi;2޿̅ mV86T"Y俧濥{x1?G]uiD?T?k ?7z??jГN5myLH2_\@V#}zGտaſ h^Th%?t ̿?c#@g?sr@O6'rftmZuʿw*WֿߘU?c?<@?otW?? u):?ԘA!#?C?vY#⿧N7itҏ Hi"?E٫:*? ѿunoKӿc?s?):L?Y?y?? ?jk4?YN޿Mj1 ¯ {Ee;E?m?n?\B[?mi?1b忙Dp?$߳op?pkKA?֝s?x#^?7L Iҿb_)#E5XfWVw^p?4`cSn|տV0OPnпBhPGq<?)б?[nv? ՛ѿCTY!̞ܿN1Țҿ|E{Q{\#ڿҕ ÿp9j˨z ?E?WM? !p?ǥ9?=dOܑ΋ܿ1WfD?WZ"ҿfUǬ .4ڿK۠Kȿ2Ҕg?:?J"d?a?lԨK>?p'Mwy?X?c+?jI?gNxGޢ秒1[vlXq?ģh '?Lp :ܿ4ȓm+ֿ*0yn?_97?Bx/v`?t?lVt?pZ͵)ڿJڻ?pB򿗑qTv D9W?G6-ؿr2俈`'^\׬n?&cG?n5?>ʆK?me b?9>ٿM6_?+?|+H4P"EѿR/82 b4L?"?`&"Yæ>? t>BށRNDϿ*(U ?&\<@L?aQ?{ ?eϾ}?b?? `{n}?IԼ0_0Q1VJʿ{\ڿEr?O+"*d~ 1?=>ٰſX{ӿH俼p"࿠fPNE&ʿ8;,K?%'ZR?ǃ@`r&?`) v?v ? *f\7J忰{뿛 8v@ @??v;Bė?)?|@Hw?]Fvq9 (? x?!?`zX?;۫?^:?9]7?8FrH?A4Iiȿ8c8иӿOTg5%01b @OؿYVt;dG?<(\#)-ʿYf ?s0K!?ZZۿ?HT?aI >?$U?u!O\?R =< ?gmB?JY-Tv 뿂Bz?xsG)?~!Kο,RY]?<݆?vm5?vH?p G?\3p£?G4=GV쿀l֓/?⽋3ZL?Gܿrb濊BœPwz#hOm?vk?9͹?+Ɵ?t ?| ?Xc8f߿b ef?yvoOM;d6a?RP}s0\ez$n䉪\?|?LQk*?ѫE=?X2^kZ?ܻzy?pTUZZdp?!N?Z{R\?X\U?wpGL/L[E琡R?bg;ҿ "\?c}n俐)FxM2\9GO?\8jrRݧ?up'5?X-ҿ`]m?!?6/+?hbA?7GurV?WÿYwSe?v'iMҰ?͸j?4,?ߓ?YY??`(̮R?ďwo?z]CΈv%^[:Jo俞=Uz?[?,N濟%(߿^e?4㿃|??p?q"?*f?*ph޿ĎM?I?~M&l?|Z?M% +!C$nc9,y:7Kֿx_w5@1W?;Y?*IT}#?c+<v`Կ0żDd+2`0Д*0?lz"Mk]⿮C?~+6A?rBV?,݆?,ҿI>7ƿ0#!?GŀKъ։'>ҿdjIzRC;BTxdU2d?PD??@G%n?:x@֜?# -"??(hx-Ni+pERUg?d5;I$@+Fݔ?{seٿit-?e;6_Wk,Uۿhᙂ?Ğ\cȞ?C.Q$7? 밡@VFcZ?\i[@Dy? K@gD^YQ֮حSRjCHO8e?2_ @(+ w Qa:>o濐tjN+~No R?o?[ka?*?#S_)?klݸ@&w? ?w;?k?W쿃AP%Òhg5"\6:3ض(4sy?6M|:??,NvH]?p4k(?*hn1?(s.;?ju7?ܪN~}y? #? T餽⿜+cݿ|2%/g$R= \?9ÿ2O<9,?Y?X֥пh¿ձc6WٿR^޿JaٿBvɤݿMޠy?QFǿκ%?-8)H? a<ֿjig?|$!ֿ{w?$A0ȿt?$$?Dfݷ?xR?K?2{*.,Tп:7tbͯe俁 I/@a|Kۿ7KҿWBt';տCe?%п!(a4ڒ݂:Xʿ2?@(?p( :?/?!g׿|'E`] -$n?u$TD'?ߧi׷?AOp*ؿт?Lh+?M@?D? NͿ^rG2F!꿔ʿ8q u5˖?IЧ޿JXxd?7ҭ53?_H? q?KIb2-?\4ܿO?<4׿mdɉ:ijj[,mjOb;LU>\޿MTD˿d?X6qwufn+&|t)oM\%?]`ȿv?& ?l(T;濑61q?IտU?F%O??Raw?zT0j¿jo+l<ֿzD&G?p8BsL?-G?%9V !ԿX W?d S~?8oۿ_pgpiU!o ¥ EMԿ+?_f??(G?5u?>/x_?}>?)]OwrF?3>=J@F~xPпJ6`?w?d?&H\T??y` Oi)?|J:K[^ֲ߿j'շ?nkѿd#0?n;?4X^J?}8rUN?|, f?I٭?J|q\⿸]$Cܿl@q`?֟lizU̿\礹\YZſ.ۿ*)}?ts(#ԿwP?(e;TֿlFۥ? ],:?tN^d?>Ҳ?6UH o?XZC ~A?f><6\h(6'=?? XNJJ̊߿T~pQfe?,Pq$?ܺE?o  Z׿\5Db%Sof翶<а?;G& CJ"6 U^TiȯHpA?ԃU9ۿSӃc?c?yF $? ?Or?}n?M?xiQs!yDFdY]Y翩 OqBqB;u?BZT@?T=?j\?jwȄif@98S?Qĵ+@}m?t !?[F6ڿ3J]u{-4^ Pj ;̿?*Xό?N,ҿj?XEԿiF ?-`h?F[?9?߶0?(\#u#?|,y8?b/&Q7ǿ8T?b]7'rU*y?`{;h42\gDŽ*$π ~uYP;?ԣ7?rQ뛪@[\@3"?|[D X@8Sҿi9?RۉU$\Aֿk N!g?Y2Er\+ǿmջ?Ao1E. ?3gf?οdMҿzeЙԿQZ0ٿ%5ӿM#?rʿ2Lqؿ>c?2 gJ ?d?]-?xo?sXfg?+7hWֿHf)_]ǿɣO_|?xo ڛaڿ $Pay,jF?p88?\O5sQ?>$B?S1?ר?m`}?a!KX?A濔_ Կwb>ؿĻK?ݿ?i;\ ̿!\0e?v%u?a4j7{0O?Tn?Ӧ֟?<V?\?Z?V` ?۹:!^._0$Bjo:򿒆k?{?&"^Sj uѿغOE?Ʉ?Kf?HͿqur]\jCֿJ Jݿ|y?t?9/WJ?a?l ?YxuMF??'j? DԿ.p5ۿ̹|Կ!b󿸟Z k#oW|2΄俠Z;Lcֿ;Ą?Ar.d?u"Z?h÷?&ت#D?n|?Q/tCZr`䶿#CÿdA㿍-wQ?5j?OYV?'>?"6?ݱ?k?AbG ?"tӿnW*48{޿vZݿH7v?Zj?[>?H?70j꿱пk:yōmѿ|f}7Z@пƿDO`?zOy/?Q>?x?\?,4Wf׿n#e!ٿ^(,0? l@g@v%z@dw0@"Rd5m? N@Hjo$ - 0bZտJ[Y)S.?u{֤0b~vw͓eC#R`) ?M>L?zvhy? YFq?p? ڿdžQ?(8׿tatԿ^]he]ڿ;Q?lwGyY?3uX%pMF\?Ϡ׿F;2+}וNi%࿏"_ҿۜay?y?i?TH5?m&{6?R[A?: [ ,9;ؿ6w~h٦5?(E:Yswƿ=Կa )d?O٭?:@X?F?͂6?`?a?Q?Baujҿ)?5w?~(鿠`o #3j# j>W-pbwx0M?Tuw? T1?@@f ? Sc?jM?B)vUӿ"+sԌ@z@?{iN98运?  Y?kQ>? )?0~?v2m0.?`*zGb`d>?%C޿+ӿZ !?u$িr@jD49%տOh)O]h~iܿ H|i*俠b?_A?⼙?6~[B?P ?2{? NȂ㿵dLO?0^fU?+ǿBw˿r4s⿴5k俵/;⿘i?ZEI伯}V?s4(^X.S9{E@"ۿq#X A'25@M?l?WR?Ƅw[G3?89?=JNh?;#@yO?ܾ߁%ۿ9?ښm% gzÚֿm-%9"1!(߂ :c?7Jb??)?P3:?8#/? "Oi?ă,t@Qiip+LtJH?^}ӻ^@5lA?Y o 2=ZP-'Ͽ5S˿uAz?_l?W;ٽB?510@:P?it?8nl?N!!QB9wϼ}aKOc6X?kֿ@?E6N?E?.?<{?Z8ݟ?=wK?0s;?.]:ſߛKϾF>}4.PKJHH1_mexh_1000_coefs.npyNUMPYF{'descr': 'ԙx?o9k?H8?yw¿E7D0ppq"?Wͯ\@C* ~:8n92m%?]Կ=OمTԿ\"O>3 i'Y@2& h?pRɖF;z?.4?PJ̢?/*Hh(nd:=4]' s|tkܡ~?{?>ʻ?BPe?L@zE??.?MgkqѿHl 2}O?E ?d}G-J9Y? +dʒ?h:ݿ?Kdu\[H`"Ŀhx[,?rW? a?cu&4B>כ%5 ?L}?F%?BlϿ}ÚH@?@?< }ѿpV X?*v?7?T$?"eӅ`TS5o-ѿJUJL?lX??8 !'?Ja7rٿ $<d+d? *G? ¿Dˇc Ͽ-?bp{?q) ? \ t?L:'?5l9-пk++?X /4?iCl@ 7)^rg2?β?Вw$?$[;lw\(? ??j4+y$Zu)+?S> ?4@O"߿&Uֿpj`?.j?Ǜjʛf ?uu?AJ97ivqo?(IFcUrw鿞mDWg?.hU?`o?gdpl=?Ĝ3?*ހkB_hr*ڿP6O!?2~q ?=+u?P/>o ٿHcy?ˤw~B?xX;οͦsRu? өX?h]cĿNrmq}__ =$쿹A?2?3Iif3g?6?>.$?@r7ѝ?Vfw%0!K&Yǧ?;@PwO?.g'Z?z5Ǹ?; 6 ѿup\?QW?d4 {ۣ'תV?`՟H?r4 ?t-gp}s?uJo?W?.7{z?YW~{o{Sq?\*?Z-xҿԐ$=زl/?d-o?t2"i@?.bB>Kؿq;D?@?6BY)?;Ěp+W-_?gm."?C vхbFwTD>K?O ?㿛-*?XT5?@PEy⿚71ȿ֒Z^?hhnbpL_?V%X?tL?=]aix% Z1o ,㿜c"п =B0?ϔ?sX"?n4sW?eI?VNqY?ZY6TԿoKVqh?1ץ?RZҿx+ L޿HR4?~Uk^?W;b?@od?0*Ri?WtY?^-?KW.{?>㿅i;̅6T"Y俥{x1?T?7z?jГyLH2@V#Gտ h^t ̿?g?O$߳op?֝s?7Ῐb_)XfVw^p?nV0OPnпGq<?[nv?՛ѿN1Țҿ{\#ڿp9j˨E? !p?=dO࿡1WWZ"ҿ.4ڿ2Ҕg?J"d?lԨp'Mwy?c+?gNx秒1[q?'?p4ȓm+ֿ_97?t?pZ͵)ڿpBTv D9W?6-ؿ`'&cG?>ʆK?9>ٿ+?"Eѿ8b4L?Yæ>?Bށ*&\<@aQ?eb??`{n}?0_VJʿEr?d~ 1?X{ӿp"PNE8;,K?ǃ@`) v? *f\{ @??)?]Fv x?`zX?^:?8FrH?8c8иӿ5%񿪭 @Oؿ;dG?Yf ?ZZۿa$U?R =< ?JY-Tv xsG)?,R<݆?vH?\3GҿzRxdPD?G%n?֜?(hNipERUg?;I$@Fݔ?it;6_hᙂ?C.Q$7?VFcZ?D ^SRHO8e?(tjNo R?[ka?#S_)?&w?w;?WÒh\6:3sy?:??p4k*hn(s.;?ܪN~}y? T餽|2%= \?2O<9,?X֥пձc6WٿJaٿMޠy?κ%? a<ֿ|$!ֿ$A0ȿ$$?xR?2{*:7t I/@7⿎WBt'Ce?!(俖݂:Xʿ@(?/?|'E$n?'?AOp*ؿLh+?D?^rG鿔ʿ u5˖?JX7ҭ53? q?\4ܿ<4׿dɉ:mjLU>\޿d?wuf&|tM\%?v?l(T;IտU??zjo+lzD&G?sL?%9V !Կd S~?_pU!o ￾+??5u?}>?]Ow3>=J@xPпw?&H\T?y` |J:j'շ?d#0?4X^J?|, f?J俸]$Cܿq`?izU̿\YZſ*)}?(#Կ(e;Tֿ ],:?>Ҳ?XZCf><6\'=??XNJ,Pq$?o \5Db忶<а?6 Uȯ$ؿĻK??!\0e?a4jTn?<V?Z?۹:꿝^.jo鿒k?&"?ݱ?AbG ?nWvZݿ7v?[>?70jk:yōmѿ7Z@пDO`?Q>?\?n#e򿪜^(, l@v%z@"R翈 N@H- 0bZտY)S.?֤0b~#RM>L? YFq? ڿ(8׿^];Q?yY?MF\?Ϡ׿+}וi%ۜay?i?m&{6?: 꿰w~h٦5?swƿa O٭?F?`?Baujҿ5w?`  jbwx0M? T1?@f ?jM?B"+@z@??kQ>?0~?`*z࿳%C޿Z !?$িD49%տh)Oiܿb?⼙?P ? NȂ0^fU?Bw˿5k俘i?伯}V?^X.S9@"ۿ A'25@l?Ƅw[89?;#@ܾ߁%ۿښmzÚֿ-%9"(7Jb?P3:? ă,tiLtJH?^@Y o2P-'ϿuAz?W;ٽB?:P?8nl?QB9wKOX?@?E?.?Z8ݟ?0s;?ߛF>}PKJHb5>>1_cmor_1000_coefs.npyNUMPYF{'descr': 'R?1?lX<fa(QI-?:AK̸n_?ki7ʿ $Dq?).c?%#?(qȊ?TЗ %~ '?$7$?ιxؿq+ǿxCG^ʒzD)D??JV˿l`DZ/LzĿ֧$??< 5<@&do?4j5,?2ec ӟ:xn?aşaMI̿yP¿A?;y++(CzJ??cL?hFp"\MGW |pٿ[͒N?4hhzLo?(pW?[R?ͪGUPοxe?ӌ?MEK?lG:Z˿k_ɉ]p0؆?H?n#MAĨ|楘+~?(,]C?4j.5J?:ڿrS?,!?]@?<:.пnwG>mቿu?:w1@V\t3S*9?tɀj? ?, ӿ%jr؝˿Tr?/ʿ'm8e=gAA?ͧ??"? qڝ/"k?vx4J\?W,m?(0bzb _do?Ҥ9???kI$2?I27̿T u~atc'pKѿEz۱?P?nd!g4kr!Ϳ vFֱ?.Ң n!&?)?Ĥ:܉?%YZ?ta^h?h?'ֿ><Ɖʿ=61%ɿ  &Ŀ4h?Z%k?1 Κ?A7?`Qɿ`4c,?_gϿ d? lb_̊?0 yF%Yg5MⱿ{H)ʿPN?BI?=S?40?IY8ֿ`(n|z?@.'?4af8&ؿ1ƿR"?΄\8ſ"u_s9'x?-{6?äB?郴dtῺ걢3?ͧw?َ  fv&пoI_?lY)zz`R1p9C.1"J?k}?h?-¿K-``!tK?jILLտIg1nȵZQn!Ta?im?L7Qr?x&Ay?Z@&29t?*?Ͽ C?0T0ǿ?5?ւ?T0 fؿ )v?(Jy?*(bO|Ms:Ȑ0P%S,^qFн5;%?3b?./?W?Ƽsg*ο O̿]3}eԿ_^ir⚰w?R?C?YU?r:i2 Nxȿ:?.5: !&{? 8a?"SCÿ:Ő׿Ыuj,?Z~?_*#nɿ2T ¿Tm0PۿbFտz=?\eGc?hp?7пzn7澌bпmQ?F4??HoFȴ?d ?ZmܴxqԿ.F[!ǿ[d)M8 r?a?hE?Vǫ[t?N,?,Z?ӿC0\>x?9x:ձ?gV?h?lVV?̈?,#̿οwRKAT3q?l8Z'?5}oyiG~' [6 bտA9ſ3}c?TrſU]NUѿQJ@'c7?p Ӊ<>ڿ[Oi?x?XB?;aonLO??r*B]EID^?:"?>cRqJ?1Pl鶿rUd?%[曳DcC{?duI?1/ ?Rƿ&mY_A?*?~?z_?d1ʯa\Mֿ!l`ѿj[I@?SPTX "s崿ЗW?[?GCeelX?[ۙ?e F?'bHx?@%sxְa?T'x3|ր̿FZw&SS?\9>?e?DYd,ƿ.-8ǫ?y~˿~?(( ſLH |?z2M'!}nƿ l9ݿz??ef?H`!!.տbLa?I$VN?xc뼿h N~ٿYJ2ҿX%=9?_RmL?Dc?L7??a%Lҿ6cˉ̿]Uտ`1P2ſI,̧?D3 ǿd!3%⺿Lg<?an?N7?0G֚?o<ѿ,}?0``I9-?ݷ?*=lF?9wSܿ*RɸÿBtUjҙ?!!?~<ĿX̀s.<44{j*IF??L\q6ӽ?j d:ZQ~lC?SϿ]ܿ$2-Gm?-)6?2ǟ=濡$QDI~ &?@?+{ ? ࡿFW戻ȿKM%?Y4㿈!uzxx?*|#a?t|hy@ÿ.ҿ]vνƿr'ː?mnJƭ?V(?A8Dnkw?o?sݭɿ0C,)#?F׿ګ?0c󗕣4K?P|(ե?:vZ?4P3'?q}z?NB(~΂ؖaƿI4*`QѶ?5{kq?;:Dٺ*ȿA޿W9?"W?f+?w]8RDSӥK?GT+?l߻T$Ћ<ܿEÙD$?!M?W?9?gpU.{?*nc?+Ng?+ >Nx`IԿig?g{+r8* r\?Q/?\~0Y,п |G}?9Tq?./?D89ҿဦ?Ñe? $t?R}q=|%oÿ}M X?ୋBQ?d>?Mտ9{:1=?[2Ϳ+J~n׿,ӿᄎ?8@ƿGۿڗz?Zdڭ?gY3FҿK`?xST?@Y={O:} mFӿ%?(X'ml=?*f???Um?*͂Sῼ_GDڍ?jyʔɿemo%ؿ&zxӪɔ?xx?P3~Q*?K??vgVy^UͿ_rZ,?#YO?VA;cz'4?F??r8"jq?8<m*9Ŀ^s?+FV ?||xQK?jȿ.wi?jBڿ Ytǿ{7?3ʺs?zÙ߹\Sw=ܿC)-( |?zhչ?+?rήν?4eKI:k?V?fܹd@ݿHeA^~p_^?'X1ƾ?CZ,.e޿KʿhDQXaѿ "U?`ᢲwI?\;!b?ݲ@?Y?ǘ-?rG#¿A-ſD47O¿18?^"4q?P?PVl Eٿ?Y8?RiGF?[(?4~(??؊ T޿x"?v4I<02?X\CK#ȭ?,*ѓդ*C?`3w?ʿ`5֦FS[qc,jj4ÿ#H?y?ݖqK?\,ܿp|Z,ѿlP#?J2K?:??KĤYɿp"Ye?.?Ѵʌȿ&>ET1)C6k?.O~?}|ݸؿ&տdd?t?z?U*?m?CɿL ˛nؽ?}ɠꏿXZ?yKG%1yҾ??Tg?G^I?>HK nC?HF93/?x?-}pqѿd'Zq?8P㼧?V?@mz?"d޿2-lC?iF` \t? u?I?2H dÿ J ?P,tĐ^2b $WLZLVyǿ@mD^|?!{MO:ʟ3Tӿ(Jq?.|&~T@?Nӱ? )ho\տKcgoÿ@׽1?`?tO ?O)m?%eԄҿ%0}¿ikSq?;4?;e?iPq? @?a;?WVٿx1\|M8AJK nB~az?wԿm:ʿ&=7ſhuEE}?2LѦ?zk?ХGP?^ݿ6?_?5BYﱿgH8Hs俿{]D CU4?$ Ztev8P)`ȇ?n:"l?6 1q?Pnom,?l@?LȐDmf^pz l踿F1D'?d?c̿R_BM蓐8迿0孥?<sݓ?/&tῃʹ?$۲N?ɁxV?ѿg>.N?3?FYd8_ ѿο`?> #>?Ŵ2? G?=rgF?ܗ-?\޿z ʨ]KU?@S?p=Я?K^ ?tĦXڿ~Yڂf?4&&?y0I? 3ʿz3Ђп+ؑ?@ЙNi?Nl?]%V?A[3y?mb?0WcG߿q9ӿ#wr/?<9Ȅm?55y?p?0K?,^84 #?HLj/忄[Ɖӿ6i"%2f?@$@?¸jk?x˴?bjfFsٿ,?0dQT?u1d.?&\RӿwPv{?@aC?8(?i; 0"?xa?Pf,A&ٿhU ?k3?FD?hVt?',oz?tÿ: Kʿ ldY ?oD?WK??8߿%ɿ`d?xf?=?@ʭSxIп+4ZalD^k?T 3ѿl31fHo˚?g/?{Cݿ2[: ?ծ? ?Sob䙯? ѿo@zӿ@yM$Ŀ Nfe?^qƿ29I¿ꚛtſ4!Q=Һ?dG?[HI?.~wbſ~`/j{2 !?/Ű 4x O?$i"#?RGE?q?)ؿRN_@?.e?;'?E~ڿuC4<ӿ>BRLzĿ~?새.7*? j?5ъP}S̿9 ?޶?&7?qJ ֋HcM¿r JR *?=@}T?{ѽ 5?puNYR?O1c/BzvdP?M8?ku?{^}=U »,"P8⿰oMD?Póp<=ʿ>|Ϳxϯ?'?]e?J?ؿO?;!?6?nn#îտ,ƺ `!Hז?@1|/ǥۭ@B Y9ÿCt.躿6S?&ʉQ?E<?iSL)6ÿM(^ſpLC$? X??ŋ?"\/3dޔ]Ϳ2?'O7?c;ȀտLzlTpv`dre TS?z@?v:&:h4@?M1цJ?+?TXtY?Y ÿ0͘g?<< b?BO-Ϳez?Ӡ Ŀn} <_?"9?Pg a&.?R$?0gۨ?Zy`ҿR(?mMH?]o3?qϿK6ſ~4{sg??r~e㿁,ɿ?pqw?F.?nK=?F洿Su?\ZH??$n)还~r?=[?41 .?fԿ-sk`o?-Xw?CBQ$?X-ǿ޾I)Nflѿ!$U:?$^ !WĿgI?hv?Ŀyu_ѿ\xJÿ(?d_@TֿXnڿ|=ϥz=Tm 1?&#H?٭Y?2LQ|?gĿN軿[fq?x ?8`?;D ?2H~Gc.ѿUu{9Lya?ZS?E?zS 'eӿGb?0oj0(O?||l 6?j5^=?m+ ,QbG?vw}SݤJg ࿝F;˿09x)?m+6zZTrſN6?'?j27߿DJ;^4?(@2ǿPIؿھe?VAV?Q)!_O俚%~l1?ojl ?#⿼L|TdW?,4Ϳ˰1¿_#?_?!? NĽ ?1J@D?Sk ? ]r?!Ns?bSȿp6sֿ G p?9k1?:#k?1oB<]?$a涽?!I@m~ƣi˿V)촳?|:j?*?6#L)2⿠-nq?2& ?n?"#?&o/1 .ⱿzF!3??2 տ, t𲿆w*r?xռ?:Çh?1_b? MPƿSc-Ͽ-D0ڿj!q?K v?SҜaE[qaӃ܈ֿW@Կ:au?tH/&?X00Xʿ u¿GF$?G"?R7??M:Jm׿JJRИ] ?z?L ?'%Aqe{)9;F?ϫE}?Çԡ;ÿH*&?~Rb?6P?AE?A:^mG޿6o->?T? 1SGdqޯx)ѿ[e:?c*;h?'(?o{?Uo7 BfpڨUkE?VBlB Կ ?%?prH?kSL>ͿtNt嶩?x?*j?e$?t_'nL?J8XKۿ0 0nc/T?t4N85uj'd?RqĦ?(mJ !W)nA?e ?Bj) ~ֿ ӿ4Yp?\v᭕k??JT9yM?@_b?h?'iñ8A+uiY[?"!?^(ޟ"Ͽ^.’m73п?rB ?&/^?ak,?J1̿3F\TײMV5?,0#.ſV пA>A ?ᣍ? `c?#)I'"LӤ ? $J/sp#ۿp)䯃"j?v6̿aYBXnֿN4ÿP?p1ƕ?W m$ `?AU<2ѿ=֫Lstn?Dz?s'K?.d%?l~?es?dh-AF J'y$?.B,]?L6m9?-?! ?=(߿RR@Ʋz?x&u#X#ǼKt S?pv}%?d ͭ?b ,˺!D&`AOCe&?i?< _w?O?8s@Ϳ. ?{rbyֿF m0/ci?h<1y? GE@x) ¿%H:ڿx٬VE? %/cc?,^H?\ҿWMWǿ7ȿ?hBDsU7?'ɃeſQsٿ]^P;?bW̿[O%wҿjST?< >?l}xKԿ ſ`KȖr7F5}b?g?LȄjQi3?`Pp!_Mf\ؿ%ʞQ\u?vBjLտNH1c\w :v]?`f(2C"?Yh@5 So?=6*?^U?y?ѿy""R?a ?`@N?Xrsg?ֿ 3:&ʿ(z?v\ƒ?Tm@j?dW6n?:a?Gk P$g+I?t}*?*pO?gֿxR0{ Ք;"ʿ85PH?̮>$Ŀ,#׳5@z?ĕRf?\iF%{WῶH9OlvfA?X~ZdpuͿ 塿/X? *cjlZ)zr?R?\_Gq?r翿f'zѿsSBÿ)UM?Ƶ[2?^rwοQ?1PQc?r!?,ÍRϿ.?*D`??{]x?Q8yf)ϿPmwֱ+!ZпbyBN?-?00]ӿQ 0Ŀo㞸?vtl QETpĿ!  ѿ" GPsA'?,p?RĿ.fOvKjv 8_xib?iM?p׿?q h?aiRz;ʿr?L{#:?KZFM=ƿ> u?_ֹ?]fO?w&gxH?^dFk㨮?¬?8VQ0`߿gQ?6R?.ro??Wgοԟ e?/(οeB?w7.8`l2k¿8slkgF?(!?@ !z߿t?? Wΐi?^Iװ n+u?ģ~Q5 ~7E7P\ gCϐrBV?1rm?z}QO?l"K߿JΥm5$W?C?t?2 Ѣ?mH_Qq.ܥ%?Rک́?pڿjW?mC򿾶>OoGH ?hoL?9̜+?w8ʛἕ^p )٘ܿ׫$?-?l:˘?FBIu?풶Կb=m?!Zü t6O踽 ſѴjֿN?C2ɿձ/?jw\? k Qq ?FN2׿}hn?~VfqۿɊ$Uֿv>[?0b!?b94?BZk٪p?e׶k pPc?DXk}?AGD?m? }2j?El?l|? Or%n.7t?QȐ<8ῗ|??YTق?\]{ſstc9̶zbտPܛ?m̿\i2&<ԿJw1?f"{u?}9@םOt J )?>[8GѿL _?!ԩA)CHǿ3 NԻx<䟇 r?hϿ]YB?WOuÿ%rJ좿EFh?՘q2?5.;p%?6~?|≠Qi4&? H[%?lTnQXٿN?}u𿔢G?#~濚2$?V$?6CV?Q9 ?R(&\d޿ L#࿗p?c+?T? vKo?݉,6lg?k oҿ!?4\?:t@?903?v\ҿ*!]?Tf43%d^ÿvj׶%Xٿã?6Iѿ,{?dôP'V? PP㙀?knb?Q8_#y?F~=Qe?uy0?@R֣?^]Hf9z]?AEFV&0?Օ??V$˗?`8LBG\ ?;?Q 0'ҿõJĿJtᅨP!c?YO?-~4DP?;w1a̿ ,t׽̅?Лdo⿽?*ѿ}?V?5~j?N?vBkbƿcH2*9dÿ8pZ?YוnĿd?G0!Hb ??<#U23N8?a ?SVİ*Z}?H%_yl4?xq&U*`Jjp꿢;R,))0 7d-Y\r?!|j(?1 ?{8?.)/ӿmK6?%οQ?̧Gl r?:-;?ӭWt?%9ٿd?r%i?ԟu6!m_{JOjҿ`eZ7?Ļ_R?u M=屿+j?Π}Ů;*?/)?.{D?6U%?h?Zh?lK,[౿ e6Kܖ?sirE?켽FCg rԿ`"C5翔V}bɬ?Xu&ԍnRĝ%?Tă]ԿSP(@?B?r??TO@2tGwѿb{ҿ.? ϺM3?n?aÿh~שZ(蜝 c郩u8gÿQmп6<=?:ֿ LX?.C׿y͍?I.4?6TVo(??Xȑ?:{s?T/1ڿ >>?Rv &{?":[3wFaɿS&?߿o` ?ӵv՝?ڞ f?{|?IwGR7Ri2x? s?IYzM?>o7ÿ(=b?fw 9{_?3Xs?,鿟Dx?aͿܠ&?nS05W?Pscf?.QxW?Q\?p^]Dp?U?/?lF#U$ԻӿGw? -Ο@ܻ?,*ٿS[Uk(*?G%a`ܿ 2?|'=K߿`y'7?tP?baƆ?"wU-?@7c.dp?Y8j%.?ƐT;8LZKS(]&vY?fR8Ql?z(?P>I?x ?;V~8A?FlOds8?r /J?_N$lؿh('1ڿ*-(5?pSV4?JG,?7`I?LY6 KGL׿L*H Կ=>t?,dw8?cM"Mi¿mzB^Y??%ᎍZ'F?~B运}v 1?R ?ss&ZeE?^ գѿd u?ߩ. lǂϿ(NuῂG9?^γ?-"p?Sl?`el?>`z/6ԿW?N?j ̿?t׿_&j׿!툿&;R?XH?V@ 7ӿ9,K?wٿc !?Yo4S?Q6塿?[X"l쿷iYYo?M,-̓"j%ZeЏ˳?eyK?1g?a;:EwK|ǿKJc?О?j?*t(_s? s'? s{Ǧװn$gbH応Sk?\k࿖ tP?RHޅ쿸zO9?\Y?dAߜ8?ZG?Fxø "ѿ&I6Jʿ, '_P? ѿU]?hbHݻ?<zרʚE E?&bmrg?+[/"dzAs߿232?6?0?U|_¾!Dn<ܓ?,?՝!!?^{ Þ7Ͽu?QFA!տ9KUy?h_?y)tj/?G^ȟ?|a×?b؛M_ǿ5nɿ~ !C?Ƙ1Ÿ?dd4mEiӹ&7?AwDa?Pǰ` ӗ?C4߯?w؆T=/޲]?%ۙm?S2QU}?fpvK?ǩ\\b?o;Zv?.F⿶mտHM}?m#r6Ǽ?aHS-"ǿ rH6\|3uh?~8⿸ rw?X?xx?GD+?,zNB& %?e6:ٿ??^#?J翢+8O?ӿ 8H? ?oZ[}+k|?`vwD;}/y#"[>F/׿$( ʸ?z63ʳyiUհ?пD<{/? J)ϿRL+^?*S*|mܿyKĿǟΠm?Txƿ ?2x~)?ݜ"; ڠ?\P+տŪtɿR*pyJ:w!?0\a࿗49?&&?fJ?PN?%Ƴi=z?U=s88^?n*45”?U?)=z?b$Nw?t,'p?q.A?Sҝ(?\\QKDuD?Ur>9EъٿQK$0?J?NxX(qſ ##׿#'ثK4֍?^4ɲ?}gNLֿ"\?8o⿰? q(\6ZshEJ?Β??,M{I]"7(Llܿ|iѳns?Jb ?#%sw$«?FT lƅOLs?c?^X?:?zQ[$+ο}o[*=\?~X??,|5޿ L ۿ|nByce;۽?W#޿ĺ1p?1??e6?MWJ妿?4[$?ulr?Dk?(мl?Y?xE䠧?zzʻ?x &U⿆b?xRm$w9(?YbT%ʱ,ؿbc?n?ٿMU?]zؿgfL x-#?-i#?%D(!?;8'kV o;q?#'0*Ԧ;Q{?4< ?~&S?ӗq?4B‡nf?dܿ#ۿQ=X?'fVq'?WW޺n#&!\ۿKby e? ټߤ?M|2~j?OK?,X?4۳1?rjX䥢Ǎ8(ӿ#\{̖?{L @ǝG ?6m8տf۫Ff5?pi翯 ?>m:5A?w?DEb?MDgGZ԰I?3*;LHXI0JvI ڿ[򿜑Cs?i)?a?c%E5 v4:p =q?|?]zs_[39n/H_YYCƐ?:Q%:^o/ƽAѿ{V0H/?W?pUp#¿[RRc?~!ֿNb?*=貉.uQ?]X ?M?~||t?Jgyɿh?p;?D S?iB??ْf8ѿ F)ο]}%?/^KtԿvh?$KI2Ÿ?y#? 3n.?I?$\|mid?,TK?Ŧ?jfE?NdC  ?t3 ubΐݏ%##=y@2?xA[?dC?ˋ(2?K*ӿ?d>V?s0l?W9;??h4Q.࿅ C;Q?7͈:wux~]mC",oVhy#?qp`'%?F΀cS?_?.?ߝ!.?x<2d}N5?Tg㯿?kksȤ忟ch쿽l \8??gE\??u}}޿Hb2 W"?W ?ib?Y.O?7 俚VJ?-H?wgS?QtO俲_ſZݔYl9S }?l^kh l)?iɵ#?+?%vk? ;tĴ?6mۿ#^"?z0ΒS7? dD⿊7d>ᮝ?X,l7pZ5EW?U#׿yS& Uyb?F݂~?`إ?PzYX?뿈ͣWV⿤3N?dSʃ?Np?vaۿ4ѣԿ\5T&IVY"W?2O]?{t|?`&?Qn?e0뵻:V D?,O/??IƨĠ? "2~Q;ҿ?B=T]?Cu?ZP?v0ƿmU5YƲb?&?jCu?\a3?4пR?`?TQpQL->`NK֛bÿ1?pٿS=5? 38ɅV?E?m?e~Q?j-%)QҼ?7,п}TZ?e- yYeԿ0߿տ aۿXK\5Rs?"\ȿiv?:hӿ:_?ϯ d??]m|?t\w.|Y? +֙ÿtw\b?n ⿔8?%'{?6$ yf^ݿмǂԿVj?o,M?GCӎ?nLx?aJ6?|tNIӿXǿjmF(?"ǖ3z޿l(?粰UӿBS7OC?E#$?(?&>?৿ VYEF~οåz;_9l?Mzw?v؂ ?f** ^+X *a?/s[ٚfZ")?ZӘҕ?LԿJxE?f|NMR*~m?`ϣ?&.Lڀdj$?ΫTBg啒?ս5WERpK ɿ2Ba?3]O俘ؐɌ?W ~?r/ƿM _F?iȯhS#̭O?uF  '?k7txm]⿹n@$A+pu]P?77?H 6Ź,;z?33E$ а燛]C ҿ]ҿz2<˔? ٿ*?'1Nd뿙xh?nwghc?l 87?0SM?-=\Vlo,_?9Ívz4?`cCf*{ۿ f'ӿ2nq0s?8|.-?o6?RW?e!l?#I΍?\s L߿4k!)?zB3J?0KZ?1ĿZ;Тo2d?>rd?a%3枠ο~pf#y7U:i?y1W ~.IGa:D㿈B6psc?rL?ێǿ}k?/ö媀$?Y*mw?zqСԿi x|ѿ~uk Z?‰ _$f?3׸ƿ@+-YyM=Q?=ŭ"?]y?fO&P*y 6sDȿZ^G?Ϩ÷ }&?L6;˿"?L!/?{VG?B?bUZ1o.oLֿ{lX]?i٠?(?\܍Nȿ&u%ݿ&hC9ɃWڧ?۶pſxʚ?{sT?c_d?[{ ߂-?O#N IͿM*N?}Ӕ?? ^=?^?EF%?GYS鿣'>UE?Qe㕿i1"픿,FT:RaH0E?]h{ؿUA?n Gӿsh,?X?ۧ"aiؘN?{VRӿ蹤KcJҿ}?Z̿S^]?q957 dp)?H" ?]삔{?wn3}Ϥ?GR/.AJ?FL?L6X?R#8ú?fvp?/T!? l5?nC?Io0<4N1j<ؿَz8)?f?o?To2w 6*-?̇N ?/ܭ٦?C@ӿ۵뿬##k?cцֆbZ欮?V2ۿꀨV<Ð?-뿺r;?s!㿚UCg??#t??b})? `^|?2,>k?PQ+Ŵ?$|  olڪ?%9:XHûOPtz? 3? :?K'3IוP!?KV?k[+?:p*+?Uӄ,ECR?^ETÿ*bR ?XlZʿx&/{?˻>;n=cM? 6^UZ?B\?t0m%?I?-6"?S =̿ Oq,9?6V껛?_z пG"@`x̕]3:!z<\Ι?}}K?WA?nJ+|5׿C s1?t\H?h?&l?hLԳ2:ֿ!%A?@\9^p*A?TZ翣Fkҿڟ{~޿ә?;3*>l‡l?|0^?rF?ry?zU,?=|]B?cܟ?v@3򿡫es^k?'D?BmYⰿ}o?6}݌@#e>?Y|)BjMI^ %࿹FIA? `*H!{5v?gDe?B3I+?fE޿Θo?37a?3k !9z?hɂ濨?aش??w,6l̿4JӘ:? 5ֿ4]+?ɝw2N`z?~k?o?%Y.֌?}l76g?ƽ2ڿo?Y??:㿌"j{;n!̿Fe;ݠ\kw?<%EAz U_ ?jlݥF?p~Ϳ%Y|?ԫ!?$k?Ma?ngYլg1w8>tG1R?V;rŌ?\@?ߵ i)<}?rxrq)?Q?.r@䶡\N?.׿?@?yL!3Wה_O?H7?G?1*?RE:U&W}Hv뿟UЃ?=Dr?lt%տV j?z%FtH\?|S=?;?Kk?Nl.&O%?-?(?aĖ?Vݿwws^R?+JQ4?בIe?QzјҿQ?Gq5휿ֿ)ů˿QfU?$ ?B?O]"翎?Ѿ?$?׿p*?i#? nvm ۙ?9SӿUHaT? nyd*"7b(?wy)}޿ O&h?lhhR?-?Ubs??'k}DC,أFĿW}$ ߲]?)8f?HAͿa4p?Lt- q^?W2?  ?2?ʡ83?,(I޲?Pn՗w0hp?HzMN\?] @z迃XCY׼?:klA:a?-HG꿸H~DC?WN?`.G?3]IJd!pL񴍊טd?'|,ŵ?5s??.5H쑎~ hnҿzt/#↜mؿ 0?=xY%ǿy:?yLA$v?8Ow?z[$άC/?ʹkS~пc:n? ψp>?e翮5 ౿as4ҿ?V`w7?|5Ϧ'?L(uQ?YdW5ٿpxԿQyſRA ?v i;?WM~\8?G7׿*o}4ؙ?h7H믅m?dT;?&ιM/xx?tw8ݿd?O㇅?xcKU% >ʿh[}Rڍ?HV?yUOͿm%P?͕@$#\NGB7I?"FA x?42y٭쓺k?~?^n%u?m?1e s?9h䱿ƯMO޿m-h뿅I? ?}6ĿXT ?Z/#K?]hd5f?!?F ?|3 @?֨uz I=?J51;?:!J޿ IͿR(ؿ."{? =y?YjU?kr1?He=_Բ ߿kA׿e''P.u?tej X?2>*/]?}?A?~CϿE¯?)*z&#|PҿqTſO4;?c>{}y:X|5:ƩwlEwϿ0 C2??(k(mnZ?r?-=?0ҽo{?J$ng?yZЎٌ{yտn?&!Uƌ?ˈ7D-ѿ\m-?N;{?ZI1?wבx޿c9lH9&HteW.fHta>? տj4?{N쯿&զD(]U?e{^f8ȷ?ԩUၔw P鿮"Կ uYWiM?A"TC?+}¿!M$yK;?.u#q9ο8"̿X3]ݿJ/c;?Mbֿԃ?%x#ܛҲ tk^?;ܿ;*u(?11廿l)+W ڿFIak쿊F?`}<ۿ"E ? h(ކoyMz?oh0?ٺ13U?c7?\3KEnӿ8"s59I~?X1;^e|?.^<9*ge?N2R!?@P-?ſu;?DwHB?5iM㿣)[?Qm@.:Nӿ:|?!p?x-?I4&Ս ?ތI v04v~Yݗ?U\?[.7?VPz6cQ?8xqDSvپ?[au?Sx:^ӿbR+㥃ZTпEk&(55?PkFpmC{<?Ϻb66Poƿ3u왜?S ?T q ſ${y?&Mvs _H ?:Y}V$5?y=?p)O?>? S * ߿xFA6?;\/??׀iCfʠ$=gv 1Ϳ_8`ѿ.f,翪z?DϿLle? O"5ݿ6h)yX п?I&?n"p?z45qߚ6UϿW|Vu῜[*@?(QGO?RKt?f]a鿖hDr}I[ʿ~R[ȿh0N_7%y?8q ǑGgM%|?Lݿ gEZ?M1[ZƼ|?`?N{z0?;E5w_yR?D)r]Q2d#D. 6C "@o?_J_?9:? ҿCj$ᨿ3?+?KO1V7?)IkR?˿B_x~?tɮg*[`?" K뿀s`HؿQi,V'?37>?<꿻э (?O\] ?w L?AW?,ĒZ؆?Iο ?cxK?W?{?Qb?^;ǹ?dm7ڑ6?8ֻq?R*\?c/$&"ˍvՙW#?yӵ2DoG?'r\w俏H6A?}njM?XZjB)?U?x۫s?Rh?rU ՞⿪q0ö?WG{?{#m?r^*0 븒?rr[Sؿk?.ڿ0աOa?D껖? o`?I߷?aNH ԿLtDx&3?Pe ?:?kx(z"ΐ?}s?zoނrcHfi#E8?~|lOBr@ ?WY?dtS??R?(!Bv$iٰ̿K}Ýl?%pb6?R!<'9[ Emۛ׿5eߎĂpy?BT~?r\ؿ0*?e-gӿ|v"?*qb?͘m& ?L˜C? lտ?JAmm?^_S ϜyN?hAޞ?0ctͿB(/_.ޯ?x޿0ܟ?g4yx;X#5S9񿾞Et?.?4/? X"eH|{>)Iٿ ɦ?oP]U{v_S»?0u#6Rkt?>俺]:?4w0?6i}4?ɿtS?U?ѿENIy?<3?Ll{n L?dS?X튘ĿdZS?_M1Cf пeQ{ڿ&˿*4Xkg?]7"?qQ ?[rտXg+'?)ɍſ44?[^?v5?EˬDmIO?R~;ZܿQ ?jQ?Tцv;jIBU?zwn׿?lx?{x?jB?V/FX5`t޿nԪ=ſHsq?gv?մ)TP?qDrؿT-DMk?9D 3?hQS?+$7mο m?^v~]?Wu?Ϸ?Μ ?ҘJ?Vߑ ? ,꿏zE37??4}S?H0Kw%ѿ04Y|$D LlVy?hqwH?#߿ldD #bRg?e\[E?IZ?2Pv?JohR#h?t_ ¿"r?WzrMg&-ۡÿi?!k‚?w`p&u?SI0?זq?6lr?ʖC泿.6_sٿdCy?VW?46P$?i 1տc>,U/.Ư=/L.ɿq>&5̿(=X?_SD?jdf1H_?\ ?5G\n׿ru޿LYCQ?C:X?z$Ł?EJ#r]Fz.0{F&տI/.ſD=bb!:{6?XͿHg?i̽.qd?ۗm5?(^?_Vv?YS|:ұ]l_NyqTzZ?/?f<?.RK?]MhWȳkN-?5/J2?v\zk?D'}XC`hă 'rc?r9t?xu9?\ uѩ?wgßODxk?jPJq_?S?Pm 't?5EH 0^zT?A}Zp)Ȧ?Aɿ?pp?xY?Q^d2U ;͌LFBֿJKh?6 Y?S?xQϿKc!Vԫ?7{'?Ʈm[ƿhd3y?QZ?De?B"7{?E&dL܍8n޿iQC]PA?uO7?^ŀ?濐>.R  k?[P=?+?<])+w?}d4?XYþpa?̘dʷ?V5Oҿ=<п%<0?9 ؐտOK?iEҿ?fz?пH G?ė L?GYW?rW>w܋ҿ:V@)~a{t?g Op2ay?jL/2W׿_O3Ή ncA?⌅u^⿓I?Bҿ1oDy??@H? A_E?9Dcv?TNCbd5޿  [G];B?`R?Ts?"B&׿G"Fs?e[V^ ?9Cq?[U!"?9k5ɿ%D%< YV?52~ۿI+I?6 7AЀkk?Qڛ?,lu*n?Ԧxn^ÿ~Jȿ?Ij)̿ær?~@0LḊ?Sls?>^8g'?"]6q?Wاʠd1?` }?+ .!?TҙпlШ濶P9?uhФ"zZ?\|+\$῜٩u?K8L?꿩r![?E6^?mlO?4AL?[7x9oOe?#r#鿊sI|(?f=?߿l ?pF":`?J`?d6?71I -?[cyޗG?G@:a,?dz/r?I}b̿@?⿃c}猈?9M?f1Cg? mֿ\ P?{9~?ӽѱ?nctHnr}D?78?Xd?3:y?zY? _?(U1?)h~ѿv?*?$4|?IhÿMFǎ¿?q ُ?jL ? ȿ{bj?:]4bu.k2E^ҿDҿ]s?W UοX^?̰u=$޿rd xI? 0K?I ?\e?4"$׿nn?P q?0VwdZXX9?lcd#?  eM%ῇe翩2@BVVD?q5ǿSD?)ԿiCz :?ʖ%7ژ?y N51޿" s\=޿I;\8?UG|ƿ?HݯQ"?\>{^?Ϲ?ǹ҃#?&{>d ?qV|Q?\EJ?r ԁ? Nɿ!*l?E#߁z&wmwƿhEֿQK?Ԁ:xs?iQ?pLp Ai?F Gޜ?V*?Ά4|A? `>e?3np?.w6?>8?r ' MпsGGEI?6tcS?VYcTƿ8Bi8ҿ$-Ϸ.ֿLU?(iK?@{91he?h?M)N?MY?&z}߿G1a?Cp࿓Dmc?yO?z3c)z:?({׿YmhTq?0=:?е:ߝB\|udSd,ڿm7z8)㧟?7cE?=oN? C-?\󿐍j@?(tw?4Ф3mU?躬-0?zmٗܘƐtyҿPH3ګ?B?  ?>T⺌ǿZ|㯿OscSCm?vGBc?X8AǮ?qa(?3?uj"?X+ڙ0Ao?X_p9FxN_D%?U+#9۴\3u?Ww>:-+Z*$޲?P:͐?ݪ ٿTm\Uc?.S?+O?2ALgS]?ȃ3ɏCy@C)R?)Y}пmd9Vê?/]ѽ¦Nt?E6(4`|?HgRU?^;?V?NCYX᤿bn?k1Vp ?|8Y?ؿlNc aտ%n p>?rܱI? vb _ѥ?["IO俶`ze?`Z5?x?tr? (N࿖=,N?'3o3MOۿm42Zh|?p$:?>vܫU XW?raޞ?f?UB((kv1vdݿW%5TݿQ9?(R?Xp/?Tg?uUP>E?nx?r*oL|-\Ŗ Θ>$؊4?&lu{?_ п>yPVWvIXTq3?i?Llf׿YP?[m^wJo?I}K2:(꿹&+K_ӿtA?R8} {?g{V?pɬdU-܈b?#?4G?Vu?2- ҿ{%?Y5*?G]<\㨆{?E?G$-%?b #iF7} 0cѲ?qje?cB?ڔտZQ[ߚ?{3H?_??giD,տ @翿)#%P?f>9?-?{ePFTwNZ¿y?J??e׃ ?(w "Gr6I?`U ? +;a\?X#GݿK,\VJ?TV+?ώ+z?P;޿3}ǯ?r4?C ?(YJ?SNb}ܬ?Bv4/U߶t-?[4?ʄBݿg>.MjvE 9?Ho?xNJ;?9ym?=K%q.C?+Z?H> x?E ?RǾ꿶F_)V?]p2[q?qҀſ<"B*?gA<"i?VBjz8ɩle?/UH1҅?#V ZM;vo{}׿mQ?80j?\|Uy?j࿕irµ֐g?uY?cS?\?v yZ?u1пOZ@g?@oq+(QϿ: ǿbӁ?;~dc? `1nV?l)qeοn}@醿8֓!bF?:BFܠԺ{?q5쭿Ϯ?bog4?XW*mg73? dO:}?-ɷ`ӣZ$;oӿgn,R `b&T?plo c]?y;1?5gb1?VjXпl`?nz-545޶G|f}̿hJm̹o?3]uL̼? ,!,0-?#d꿵my?'?6{ah{?e˿Ď?8&t0a|=D?ۿ?ӻid?\‰N?@R 7Ym鑛(`lѿÅ T?+ +?4'俕ȿ8Kj̿Suq/N?C.?cUFN s}~5T>?;bٿǜ׌? 1"̿V%l}?aMYk?P׫dCi-!?D gܿ $E?$Ң /1DŽZ₩mo'[ڿPʎ/"? ?W<4?Í\ONfS᭿A_?=#z?1Jō?lŤ?A_!?ÒD?|I)RL+1/C%3?zٿ|[]-,_G1?wHտx+M?]TҿRVf?7*Hm?$`2?1镥??4Zr(?$lb忒rĿwB?DRi?89c:;߿ ྲྀuT՟[?G_P?+,?奔9O鿵tڿ;KJYϿ@Τ? o?Z?ȇ.3UϿmw5?LXFӿ]W ?V?` +ɬ}IF?lgN(mGǵzp;?Rk$))v z?/v}ЂOx]?l Iݱ?'?Z26 ?"zR+y'3;Qx! ?}U?` ?r@Ei}'?In(8Dտa <9e?⏴UUؿ r32?8;9?yʖl^??n?ː?txl!Afk6׿n?w .޲?@啫H?VÄ3غ?m?ld&{?P/ۿ)?x ֡?0HƁῤ>?k~V 7@x2w??1xj? gF?ۀC nH0|ٿ)4|97 ?ls?ݑ}?ᙁo-k?aOGFֿt\lݹ,ÞT??ҿŴN?,BY?H p?܁? F/j e?LW i?0q1H翓״Pi`?y q?GF.MԿa2`@ǿ8^]EC8=Nbc]AKN߿'S0 [?fLz?\ćE?ݟБnC_?Կ/緎X=?ݸ;?B5XmU?\!9w1?jmQ2ܫja]Lڿ`.#?S<{tح6W?΢bT{: Tq?4`h?gptJnf?ƺa?'XgW!QTDː"j@N ?8?{?s,1h95A5p?yҿdq?_}46?0|+H$?(kX;޵u:??Q~F&BC^YƼ˪?[oO? !?k;>k_7ڿL?zj?ZmPrj`/ ?$dڿ=, ?Q|eDvGݿ.0\n ʝzn6?Bs0bސ :B͙*?7YqsᅮSW?2Ŀ4Wݥ?D+N?ȕ>?B?XJd0N'Ͽ+ Q?D?h?!0AtD?+GԕȿQd? P?SbeV/?ܜ[俍E?YllN@))M?RF#?]?\R?|Oο%oMsh?Pr~?_5%/G?MG8wۿ?Ies?r11쿛R?Iݿm0?pE[7?%?i?L|ிOS?ؿ@;^?0g{f4]N^?C'w?lvU6?qۿۿeb(?9q?qq{.*$@?tF6p.ܞ?!j㲿Th(g뿼Kܚ޿0։?c(J?Qcc?i<"c? JI&. ?٭64FY?BrWVCJiCGM,xSNc#"?5%j`?R?wMMB?vpfR?%aC1~?F&~3ԋ7LܿٲӿEQM쓋Ttȵ? ֘I֒M?$\6࿋VVo ?,/6?]3Mo?)?am͍<$9tS? =Lccϖ?s*ECۿV YT9W?掄n*u? @e,? Y>?d?Gٲ뤵?RT=y?mXj7p% H#òBkL'ѓ ?n?/d?|(׿Ga7똿5g?uWPB(P?\?SpN˥$x95?9߿0+mș?}:ӿU7?&j|b฿LLcfqRj?.ֿ8Fݪ?O'o~1ܿy=Y8Vn+!ۿPKJHds5>>2_gaus6_1000_coefs.npyNUMPYF{'descr': 'f%{tɚ?f*>t?m2[?j\SPɒ>b? W`d,?ŵ٩~?JyzMY?M%Zٿ.1r?464ן]u?Jc)}-Ӭ/v?(苙?Em翙:T_&?yxٿákL7&?%$V@?Պ}ſF3]??H׿?\>z/fҔ P?#ZtlXҖ?H[ X?7fg.EkV=I?'L` ?h0u$'l?ūmܢj?}߿~SiЛ?9H?$-̋?6<¿n#?Z5?D0N?сX|ֿ:.uٻ%)?WWɨ?Ҥߠ?xW_ ?o8':׿c ??[x?)߹@Sy:n?ј'h^Ѿ&m9勐?WG`*= ?$~bIտ?yeC?w 1_v]t?uI6c %z?'_?d3n&-3&`?C²A,8U?*.+ı?;qx?;ml*DdԄ*CNe?/1R<=,?*'?t N~>ǩ _T?"6t^-?/q-?cnѿ`'J7NLcF?z ~?W[MݯtCQ?2XeK\j6Ő?g0 cH>6?8|?RS2yۿRu?iNi}?^w? ?Z19߿ F5`B"?| 䘿gJ?J֌ ]Yu?.zA郍?unп^kDv?){iȧ< *4s?M+@oŴB}k|@?@K?AZ' ?l5N_NXZY? ݡaB&?Eji?ۮG vQ-V?țzJvX/$?PU?:.V>[E(M?N¥?j6oaC NŵP? o8΍?'˳?x;Úp?,:Zdy!p?hka?Ge0Fmג?'TB׿DY쇣?r-,e~٬5|?1ݽm&?Hy?m ѿGp6? ?v fh9?vv ےu?ʗ&7=?RE4t rě^?.l& zm?۳raHiq?&4^~?ppUS޿mGME#? cSs ? ?{׶??4bd*8?@̶?OuDu|?4򅙿#d?4ť?k8'\^I?2Ng[ĿOa,kWB?{ r?tD|氿s7q?38$G?^a[?!aUp @ m10?pƑ w?pKŵZWV?na rRf?~Ge9?.{ %(.?,,_53S,i? 驄A3? 䐵? eg!1k?4\LڼGh7?W ȋ?ՄtڿelJkf?6/:Ȁu?a!khͿJ~A ܌?V"0bǿyZ/8@?P?y oWͿhpw4M?}P|^?,}Pп$Qd2?}pۿ FB>=?Ze?.XsQ&?ޏPa?IA;?Tz9J=?xԿ}Z:w(F@zwn)ӗ?߿ư `?;}zw3uB?SXz<-_?_ ??OFn \ڿ 0f?O:!3Irlu?B(ILLg2?&Rkݛ?Tϕƶ?xx~z?]Ӧ}NܶuD|,>?WT?`bk?.Կ]ˑ??BUԿyp?tԿN?1\f ?=<׿P 1R'?M*<(@?L-FI>?iX+ݿ>t6y_?yc?EP &?(r?n֊Կh8ns? TJпelVwdx?@<Ug2f>? 'Ǘ?<6;#Ͽ#8rI1?Gg鸗jz?d')Ѥ?jظV7xeK?vJ~J!hALW?̩ޚ?c8 ٿlďˊ?`3)Xk~Plhߚ?a?44wrnw,U?dS?Mvq?-KK߻B?!E`OL?Z?!2?{'?^$V6j?sl)翞R'nSz.?z5h?2" 3h?xo-ߗ?},0Te{/m:?q '?1bl?5ȿ$Vԉ@'?@ƾ'9? Zߵ?W膹M4#- (8?$H+?j^x?lo'?jiA?{4"?pƥ.1? R^1Αc@GxE?D3C@Ps!#&3n?"$<6? T`Uh?PR`?%$?v:Jx;2?]߿eI^Tz?#o C? Z}mpLǞ4ow o?B,Q?:{=߿1)(?Z?OVN Q+V]M?Bi?%f>讁? )!ӿq[nU? ϔ?Nَ ݿN8M?ie'߿I˗ȑ?R?A(=qwrMtÿo1A3d~@|#g? ^οܹ{;?+5>RũJ)?-dYFN(?f/gܨ? ##$@aФlar?Z ;l?AHؿ?P?| 覊?΁Հt??r?wb>?B0ؿELs?ڴT斿7/8)?3 ?~j࿪G&ԕ@lDT?Å?^04Eߞ?kbbuBqRq?.!]ᅪxjD"?bFZ?}i~7lu.?>p~qA?qW.[;?Rv?`7ImP?`d }󿀰ՠÿ&m_@ZO~R9׹?/Ff?k$_ (ˣl?EV@^p ?ynWIS߼? ?^Uw('_?#[>׆:n>}?Eڈ8'?` 'ZlL:? hS?P'T?d6?xG?xt́hQ0;?R4I鿁WTQy~?̖v4~H?v=1 ?(GK_7ܫ5n3+?ƝyO?s$xҿHpL?0Wx?Y#R ?8+{5v 8 ?Dpxu?q~6W??'OzX뢿 1?\?Sw<cjq?l&'iI^K?]Pɐ֤?ȡ<3|*?t]$x8?4iYu)'AqӬ?F"',XE5?d?Ar%)yɐ?_}ݿZշ5u@48J ?Tg뿐?kr /gbJ?GBtڝ??\ ](RGU?w;??ԆLٿ稘-q+ ?f]YY|j,wqql?NA81?"Byj?e.ѡD޿"uִ?jԿz6E?X|?rxK.?qN޿D֗t<-z ٢?YNcK?҅e*? _Xj5m' ? /k혥ԹZL?uK}x+;}?S?}Os]n=Zv??eu?~Ӣ&`ѭR0?j^T ٞ?@>Z N?& ?؋~ˠ?ۿ@P?uZѬϘ K)R?ܿɨJ\a?DE qJ5?%W\ ?&m?uXbi?.\(^>U}?6?j?ʓ R?P2S%?oƿ|?: տյ?'J}?߿aS?OۜB㿟JQżOs?nB@Qh j?b?4[1=>c䤿G?YmtXL?7ϛ!?bU/ۿGDƇm? X?@[bkBA?Qnտ"!z/Nc?q#m? 濐*k?n#пlȭ @?rx? wۿϥҴo?@tc:Q?o!1OEx{?bCK-ɔܭK?%Ab0$? :(Z?NԼӧj?Qctܿ5 L?[3:ѿYʝ뭝?R4NZԿ]A'7(?)T3/1?g3U{?dܤ?e`xZj%1S?\bz뿌]wm%?Y.}[Vnh3?S8'*W?%?W3̇ҿRY?8,>.0B 15N!?d 9>s?xJ kyPMҝ??'Jj?Hs?`C 0$h?q+1|g(MY?!vRɛ,?w5\L?19 udLcK?$;修pO!v7?@\&m?Y*'G#?J4Ee޿;3nC?`y4??q\ИB?~Digѿ4ePz(A?RF?IpP H뚿1Э?2!̩1U?XQ&S?XL&]痏gzwl0@;,ڙq$?GIA?M<3(H?IoKTv?1!,>@U??!?XMimT2?&d7oc̏ =@W sꕿ ?b6?0U43^?(ҿiPĺ٘!yEH?Z[%C[t?H}a?tm> eUQm?8Y?T?a?y->0 X?Qq>ڿN;ڨ??Wam?Iڿtm?G޿č~1;?Plc'o?U3dsx1?gݏ?5-ݿ[Cx?,sHEa5%zJ8 ?ZhJ-GDr?,?̙^eNU?tW z?~b?A4j42GlYœ>`EF?Ӭgw17U?<#T?]9$lFEː?_eP)ۿLDѰh? N>ϙR2r?Ga?63}%6Rl?̿ǀAY&›W9:?.Pu?_3e ?Xp@4?*ڦꖿ}zC ?.#Ւ^Q`?]BHz+)Y?`RU?Ab1ſM6b?ZǷMisfu?yiᢿm(`?4ۍ?8/"Pw j?| AomL'?vA?n5PņMkaj¤?,Qx+?jtu߿̹ߦP5?slko?a󽅨?`QyR?uGҿ~<ЛAPD{?vl;?q-MM ?PB0l"Mү|?v=H?YC`&A?g$?E]2g?a1Tҿ6݁?26_!?t :ʿ7u?~^b*ϿVVR9bboi?dy 3?ܙؿc!?o62Sjտԇ Ux8? . ?^,eʚƻh?B^翌>Y?zE󲿚].@ ?fEbb %x'?e=/`?"u4򓨣?);A-Х?e`yL$ݽtI?7U!mn?@8&?"3գ?)OHH翌ɠ? Ί:qOz[W7?`Զiؐe?U&[u=?Xlts"?.A?nrڸ%rK?̤0Mَ]ij?] u aP8M?!b5 ?Ld{t}`VB?䶛\)?"D +?k۫7b ?H耥$E?[i?LT󿜤;?F6[j+谿Nj?"b V[mcfMFޡ?Cu㿶~@>{3? {Į+?̶E-p4VthUsx_@t/??oiKp=g?J֒!O⥑ ?R׽ @ [?&v"I404=ܨ? CwWE("4!?Y?z?^v`U? 0mNn* h]?Gpzİ^FC?ʛ[? [ῶ>o4&?@˾&!ؿPX JU4u?HcG?]?_п>^\v?GfFڿ .0WwU?պ$ t\?lgNH?> 4nBrw)@ ?gTJ_8R1@:@-?< Zҥ ?X $;v[QSz@*M?*p[P?Ep?_?G_C30,?ʱWs?YF?}ɹuՆ?40?տfuV@l)H؝?⿆N?!YwkEV E? DTEFf?!݌?Ay~.tԘ?Jbҿ&S`?8m-?JWWwWƨ-`R?D#"̔]g?륫?9%oi|:y=*F?ZerbOk?)}_?GLnR3?Cº޿6s28l?0>qd? ؿʁ6m?eQ2= 걿m\-D?> ˤFUM?fgj?j8lyf!?tPlƘcEqȋ?)f86u?yj!ir?nDž`- (%Ugٷ]n?p8r?1:>ޔ?+<49?fu@˕!R?>b p?湍S }?vwC?tWӿs?.vӐ)? 5?Ued*~>? ȡCq?M\6f?I:e LޡY?E-ؿU#{73@?\ۿ)?;4(]5{*|R? ֑?]zׄ?Q8r?zێ9ɦS?eS:?DSBf¿!ZCI~?T䬄v}?Yf 'FN}Я? 4P!񿤺8JBb?K'ŗ+g?$6qn?|q?mKQ??Fp}6ƿy(*ݯ?BAdm#嘊?$,DԿqgKҽg( Z@܀DQ<}?H?Q?gD  V]Luv3?%[%M?X@Πu?lz қau- @?D=׬"uzHO?ҍ}?Qnrc?Z|p؁C{?ʐ `?8w̿Gw\q\Q?o虖3M3?L%o?3{A@ϥA?:}o?hi#&?X9?2b\X삅?WARD֕?\Ro?JEh?0Ҷ2?w}Y,޿8W?F|x*u? }{ۿ&k~?<$>?C|?$r=?t?gɮܿnR>A^?|ҿ-+QX)5?f:oNY_}u?AQ Ü?ܿp Yp?JK)꠫?8͒?H~-٥? H1|?iDa۰1]`n?nKjHX?b6Q,Q?8;2?H?D5Ջrs5?/a,N?O+##wi49?RbZtS?7j^S|㿆V,H?i5n2by}೿(c(?vvE??֖7l#U唋{?q{ƦFO$?'&_?+vPE=n?] =hVa|o&ſT?[Ch8.2?z!zH3g?"Ʃ'4T?>? F.ʿ:tõ?Vλ¥%q3"?H*1?%%?w"h{q?ſQc/`r`V ?i+?GݔJ޿H鱿*ܮE?p ?Rz̿s?YXz+𖘉dbAӖ?wNP?Gk?eh:ѿ?RJﯓ?п_?QЍR?\}̿ 1D<!??<2'̻J?9i1?PxYg?D~Կk$ui ?, LtLf?`PΕ)?=2HL3:(7?oXUS"m?vt ?nY63?}ʗ⿡x@@zҿ?GaW?bA̮?k|4ج?w|&ֿrߣ^ o?MՌ?~ٿ isirW>j7wdd?BQug?p#Z?_-7ɟ୿TRB?)Bu?ݿ(pn ?Z}=9Q{_x?i ?v1!u?X=o۶?焓;tД?`yoܿw >\G*Gu?!é4\}?1 %?  u? 'uehݿ)wⷔ/ ~@"5?[Adl҅F?zbMԌT?{w—WV?أ|l|?:tEI1yΙ?* 9?V.S쿠̹Au0̑?m@)Xn?Yn"?H!6 >HpK? ;Յ?췡6ϳa,?Sz$D d)?q}q?I2/SN~<̚?ěvڐ|3kL ?kc?dE:(T9?&+R?bdۿMt?+r4\kA@a?xdN>Ij?J|S?1e֕#\?\g¿!xVRe?Mx%?C׿h(`L/gӠ-~?Ą2ܔaӈY ?gA à?c忽`@ ?8Ka֋CO}?WQίzMȕ?{?mҍ24R|q?[2yl,w `?$~u?ˑr$` Կ _|\f|%?x+y&7]?T?Rat?-:E?XDЫU|0Pt?:"7f ?PKJH(01_gaus2_1001_coefs.npyNUMPYF{'descr': '?Vj#X#8翜Uا?{NBnu!?G%#v?)u͸o֢V$? ?:T^^2?8LslPls tӿ ؼ?D_ _?P?.j%LkB4?2+CǿvO󿲈?M`? 4ڿnMa?viP%?@~n1gey-' ?jE?Cj?L}ڏ?WŴD?֞D#I?#\QHH?kf?Q@տK4a|i?2P?`s?"ʄ?* MSK?z1_?"Fk5tޙͿjQ?Za~뿨:뿬?M퍂?K,/?(Z#P?ND^H^ mݿȮҵ?pg 5Fɛֿx"?b?h|Bƿ.Ǥ?6>/G?=֐?Z?.X'I?:?.91ko?so sUVS'>z5?r? g?y﬿+?$  j5?PʿRcѿnqO?q, ?oR2C(?b{iVS?m2zտy,e{~Կn>.k #?( ڿL6?"^?ʎ@?7H? -ݿ" W翜ml ?!ݺ=dοuv/$?ac iۗ'?~Û?O3VѿCq3 8@%#?qhԿp ?6=ſנ 40>0?޽?&}?ʵwA4(?s&?L??2^ÿ)H]<ֿYx?ٴ텮~G?7K?a%A?))6b?EwtR뿁fd`?nB?u?.88 +ѿ,и?ɺgA߿=u?ӨB?#OE?_Mw?t/5 8W.?njdO¿J U,ψ鋲֨[?GR&?SLտdA"7 ~?Ђ͠?օڿ<C?vH=lp?V?WĿBP[?X\0!P?>5lO?U0 Sÿ 1&"aM;ڿV--?OTՎ?2?Hi8ILF x?AR*пfgO뿈SZ?1 v?p̬t?r":6n. qEGd ?'%?I%ۇY˥?IDT?(M_B?<`G?CGؿh?`zr;6~?dPӸ?ll?R;?_0#tE ɿÒE?2Gq,g=:0m𿡪 ?M,?8{]>9y^?&Wր?V<*uܿ@Z#濠+U?hV}Gɿ[ߔH^5g?t,?qppXe֭,sї5?Fs+]?,Kba2 Կ"<Ƅa?ޯʰt?Yx?(#j󃡷?Z,?@QÎ y激sqsU D?U? ?Naя5?1'jC6Ͽ7?vq1MڿG?I-W9ѿW4,h:?C#K?i"ڿwT̜U?5<:S?-gI?t20?eBM?<ӽ ֿ;LcJzM_?JZY獹:?T?e40 T?v?聩g?L?? VU4ĭBʿa:D?@f߿%>?ݨQU?}ߒ?ʑe 8PlFbgэ?ΐ:)?lk?/?aӿ` -OѿZ*L?ͮϿ̽??%G5HDe?8[ s?\ 8?_Eoާ`vc?$ 4Nc(?|7h?jC٣￈ԧShRѿmz?0Cli?hzqݢ?ݣSvsfɕ?'=8~BBῦPo?ZxA?ڙ?1PD\6⿗5t%_]ָ?;n?\ɗ?(B? :BIGbÿ;-tnȦY?X ʿ~S?*`JM$?;nR߿o}ӿ%?4NJ? ? ?\qFTplTW(?2? @Hd?́ZVʟ;2?EpAS?"b6UGڿШO/?2IQ?oN ? ?S>I#?:?~'sJ NDR@P<|> ?廗?A#ɳ?o2.fOtrv^;/?4/V༿Cc`?L pۿak\d'W~? '?0ʲ)M1ZI¿oJ?뢨10oXڿT%L|?)Ҍi?+bcD@*?)˛ ?dӸ?Hp?6*MsA?=!ǿ>I&ܿl8?p K{P7ps3??,Y¿ތ?8Gw0ۛ-_6? ?0Ն?V6.?_Q,𿠠DaS$c6?m> ߤ?G=_ؿiHU-տ(A?Dݑq?MB#?X nj%Cڿ$0?_5?Cl?[śxW )dD?يE鿬 t߫"? @>Ȥ?]SF?G{9i&?pjT휑 Jײ?P3(ο?0iq+*?p3]ǿ?av?c\G56%>Ԕ?3Z?嫆?0vzSG࿼gۿ aZ?Ǔ|tƐ ?j?Rҿu16|p?t;,ʶ?)tʿ?Y=l/?$ֿLlmſ@I1࿴'??ֿH ? V, j?W} H#n?opJb$NۿJ?Z_ /="5lx?ctq$?t?u6?&*?h] QË?tVA? 80?9zeх?*?rK?͍Bݚ;2DçTKY?5пRY6D\8?![0 ͿphZoΔ=6Y?."مQz?B1'F?t;t*$ٿio+=!?=>_x?ODzпB*\F|_#?3?p@)o$Bv`;?x1!?p?NxٿNW۫?N8?4Z)Q ^x|пچ5p?&?ԯ}:8Ffa& 4%?#>e?&o<} 6?fƘֿɫ?R-IS>^ƿJT?M:f迵't?ai+?c?knkHY?rjF?:Re#|J|n?9(?*|𿰥ۧ2?ӃzϿX俐Sm?؅ϻMѰ2mY?O?/ZVH俍&?zG<':?2]ȿˎؿ)h/?5;3?rp?~עn?BdV޳?O%PKJH+q]P P mexh_psi.npyNUMPYF{'descr': 'R,./p>I詽>:LVhFdcT|K)7Hϸϼ>/g!4olRu½oL6Ľ!ƽMɽ|L̽TϽo!Wѽ:ӽI3ֽJ`ލؽBU{۽=Zi޽pV)ὛQcP&㽜Mo\MUf꽺ɑhX[6𽷌rfbq8Lz4^$(!cRpARRqۤL}`$X@sIm|T"'7* ش4 ] 3Mc|'0N5sRD=fa*̧?e5!}n"] /$cz;'Ջ )dz~,C_/qۼu1{P3_ZH,^5o79Yݼ :fmz]i kR-n~xpqbr@ix=QtuNv}xMzZ64|}+%ۃԈapRN-&|Xl/o#D v%pȐ40N]n JRBL@'-vEmjD#_eI"\i u:m=< LTȒ&ꊪ>򬾸.YT}r 4sOuom`?E:Vn_Q)s'2; 0=kpy¾z,Yľž(jǾC;ɾ`˾%dξY;о>:Ѿ;GlӾŧվI(־l;H$ؾgV7ھJVLݾ?#6߾a"1x⾘ULfϢ$VG h]ePP龸BF_뾐]j .| FVt7UBBm%eu!DHyCXrSh3sb#R?\vv{%`wEi+=rgZ޶fg6S q %лc 2 2S%ךYEJ.-E^LX#`jq^ݧcW;c1oj x" l#˘rl$&L&H;'{E&)Aܮ]+GH-Z\HT/)T0Ǖ1+b &3v4԰5 Y7 $8ԝ:qhpg<nN>󫳱)@hN2j"kgѲmD+rn2,G@pi)q rT) sވh.tWvJucӮnsv]wLxwIzf X{)z)}Ok ~i\(mIJiR.ⁿgj΂`cŃP'~DŽI)Յz8S˲#êG NՋj92"4Oٵ lАe ɝ7˴EsiQƿy8(oz"eV%:3]gK|m]mu'YrԜw/Q 1hJ)bc>r-4ѡGb|"ZhvI(u/}6kJۥ{`9 媧`_7m9՘9]R+@-GFԭ&QOXa?E9+Krhb&~OsB|R#'Z󳿣h樴m'C#c5"5=嶿ZPb#{WFMq$,횋>"N?6ỿǭ+Ƽ;Ƣ:^./4sFFv;,l;Fv퍐CO¿L23K+¿lYHaÿÿ۬L{Ŀ70[h ſ2ޞſ!bF3ƿ45ƿaǿ}Grǿm5ȿaP3ɿz+[ɿb},rʿӖQ{>˿Dt˿KOsX̿9p̿/%Ϳ\IGοS_TοJ]Ͽ'0+Ľ)m HyjlT-|7"JK{#n^߂sp}? }?> ?Ū]?y|@K?'Mweʷ?_(TZV?0wv? ,?RM?t?S&?I*nZ0?cI\ ?xlz?rs"?mE?gjd?`DyD?Hpv?`*Љ?{`?1\?1?#/\?~II?2r??iܱt??}}?<>?A?(4"?Ժ(Z?~!"?H"?{T{??h,?H-?dto? y?=QC?`؁T?c?dxbc?t4? E ?s7]?hu?E5k?'30?Jl?`a?<?"%?~XRQ/?bġsS?i.r?QzXq? :?+װ?%x.C? y? y?%x.C?+װ? :?QzXq?i.r?bġsS?~XRQ/?"%?<?`a?Jl?'30?E5k?hu?s7]? E ?t4?dxbc?c?`؁T?=QC? y?dto?H-?h,?{T{??H"?~!"?Ժ(Z?(4"?A?C>?}}??rܱt??2r?II?#/\?1?D\?{`?r*Љ?\pv?`DyD?{jd?mE?s"?xlz?I\ ?o*nZ0?S&?t?8RM?,,?1wv?(TZV?rMweʷ?|@K?VŪ]? ? }?wp}?^߂oKK{#7"n|jlT^m Hk+Ľ9Ն>`Hn¿!t$Ŀſb9/ikǿ?oԄȿXʿ!˿|{hͿsο(Yпi\пeLNѿ:%5ѿU%tҿғzҿZ@ӿrjӿ*tԿԿ`ZANտQ2/ႱտB~ֿ#3*Beֿ:ֿܵJ]׿`}iD׿HG`׿(.) ׿QS׿nLؿ;ɸCؿeؿ ؿؿKؿ:ؿVؿfUؿc%ؿxgؿ:;ؿ%V¥ؿlؿyY#t|ؿ=aؿFzCؿr3י!ؿ$!'׿W%[׿X׿[Ax׿uC9F׿F/ec׿*ֿֿؕ֟AdcֿP$ֿ+տ`K)տ!m8\տi տt:ԿQԿ8Կ%@ӿ7p&ӿgPӿWi5ӿbQҿɤBI_ҿ*O\ҿ|=ѿ,iѿѿ3п$gYBypп'˿b},rʿz+[ɿbP3ɿx5ȿ}Grǿaǿ<5ƿ"bF3ƿ=ޞſ?0[h ſL{Ŀ#ÿuYHaÿU23K+¿CO¿vu;FFv;,;sF^./Ƣ:;֭+ƼL"N?6ỿ,횋,q$aFMb#{ZPB=嶿5"z'C#ch樴R#'ZsOsBb&rh?E9+K XaQO GFԭ-+@%]R6m9՘`_+ 媧m`6kJۥg/}hvI(b|"ZG-4ѡc>rJ)b> 1h_/rԜ_'Y|m]mMgK$3dV%oz"(ƿy8iQ7˴Ese ɝlАOٵ "4j92 NՋêGS˲#z8I)ՅP'~DŽ`cŃgj΂iR.ⁿmIJi\(Ok ~)z)}f X{wIzLx]wcӮnsvWvJuވh.tT) s ri)q2,G@pD+rngѲm"k$>j, h1# JgWfR-dbẉcYv[|bW˧a Y`Yv,_B,g]-[9"ZcX- 4W}:~UevTښ:`Sa { .qhpg<ԝ: $8 Y7԰5v4+b &3Ǖ1)T0Z\HT/GH-[ܮ]+E&)\;':&L&˘rl$ґ l# x"pj #1X;cݧcq^aj^LX#-E4J.YךS%Ԏ2 ϻc P %R6S ޶fUZ^Ei+=r%`X{?\vB3sb#R,XrSDHyeu!BBm%Vt7U| Fj .ミ]BF_]ePP$VG hfϢ徘ULxa"1?#6߾JVLݾgV7ھl;H$ؾI(־ŧվ;GlӾ>:ѾY;о%dξ`˾C;ɾ(jǾžz,Yľ=kpy¾ 0'2;Q)sVn_E:`?omsOu}r 4.YT>Ȓ&ꊪT=< Lu:m\i eI"#_mjDvE@'-JRBLn 40N]%pȐ vo#Dl/-&|XRNԈap%ۃ+Z64|}Mz}xuNv@ix=Qtqbr~xpR-n kQ>]iޅZg^dc͈~Pa)ۖu_#\΋ڮY(MŋW܇f^UfbS׈Q (Oj] LZݦ2JmüG|kE~xCCd=MAދaa?mz<29Yݼ :o7ZH,^5P3ۼu1C_/z~,֋ )cz;' /$n"@5!?e;̧a*D=HsR '0N3Mc|d] ^ش4 &7* Im|TM$X@sL}RRqRpA.$(!c4q8LzrfbX[6ɑheU罈Mo\vQcP&qpV)Zi޽BU{۽`ލؽI3ֽ:ӽM!WѽϽN|L̽іMɽ!ƽoL6Ľ4olRu½>/g!ϼHϸK)7dcT|VhF:L>I詽>,./p>RQ|\Q䓧<,Jܙ4BxJU4^C0NЀnjk2蓉x/؀쁽(zCɟ~@@|my䨳B=v qgs{u:}qf,o&/KzkfXhPKJHsy>>2_morl_1001_coefs.npyNUMPYF{'descr': '5ӿC`nF?>g`ƿ_¯R?Ng ? H~ձ)?$C?G?&5l?-? 9%Z 4߿z+?NW*?r w- T>?Omzۿ3n׿:&?Uݳ?\GU](ؿ?.?k?mh=kAƿMA?GTfvY}&s0?׿H{^ƙZ?? ?+vI7῀3^?1Y?g f?d5ٿ/~ǿ*?vJ񝟖[ 6ԿGg_@x/g95%ϴx?S?bOAZ,@׿?3}j ʿڸ?s5#^Uv1?ī#IQϿ_mZpKÿjBټ?xէׄKA?F)\ڽ?f Ŀl?tP~?Lqp%^x [ɺ?dۤ>]?Pf2on40şҩ?75&=`/KqA(?x8ް? {BֿRgC!GV=?PYڼ?=3xa=4V>1<3xٿ4%?P6?w#,|餿v?ĮҀ?Ʃ?!ھ?  ȷ˿|??C5{eH[fQZa^ÿ9+ӑ?*+o?N 0G??}nu?湢*T6俘65 ? P*ہAbsUؿ+vΝ?ttQCǿgcz?$?Ep%8CgſJ-ݸ?aڿPH?.,?+ɡDhޮ?`?}/?@h=ǿ!E?d$Ŀu( ?rń|?`u꿐 oп?WJx8?p?`#Gٕ?E|UH02߿7!?dXQп6^!'ٿ&?ob?'<?0t?綁W׿”¿b^j?Ɨ>G(/_ֿBH槭ȿGԿEuп#+? *8?؊ܩ6+zoP?6&Q ;?“8+uW UMuڿ"9?lVh?fhqw4~pH K} ?h3LOrm6)4?QOeǿnhh᪖?)?'y&?^U?ҔA ? ƶMؿ`@5̿oYsӀ??&ƿ$tcQ?.]? @>ڿBQe?T 鱿xF谿vd O?l9?bod)ڿ..?=2ÿ>m???s8$h֦ٿf,`?DUaҿ3 ?I˕:HK%%ȿ_@ ?ĬsLp3L?;?\M.5*0ҿF`v?v;s޲?!vW%>׿0?$9ܿІKȬɿ+r'?p'?kZuq5A?0%Wl#?]BK?1IdyW{v˿[:?Tѿ -W?)?D',gmg ?95? Rf?uDbտGq`?^?FG2 %`?Fh[6ҿ:Dѿs?Q?JJvXĿ uH?& {5`?GVޮ?:+ѿA? Z Tܿ wEOѿ.?˻? 6 06Ϳqy>? J@mֿAg_?ĢPn?684\'hP?SAE`?ʮu1E^/?`kk-~[z$5Jǿ6ߔ?Z ?d׃+?xI?ԈUT#9¿QeY?4娧6L(mseٿR9¿uZ?$ T?T#%>lĿ>WZ?, ?˟!쿓 v#/?qeY?X bƿ*ytNJ?X6I?8oW,8MF??>?chi3k?QWx?Jfւ ?k(ӿiT/ڿ5lM?-dƿYxbL?E6 ?%oܿ?jV %?ꌸ-ԿXN$ֿ??z1BBg X/ ??en㺿t ?FHjΐɿ5UH?aq,?(m߿UctG1b? *?=^?'7fֿ /d^x?\K+?Jzz&W鿺XɧVkѿL?Pذtq؊пCl?n?g???\V [wҿ@\trſS?fϿ*`A?ܲY2$?2_c㿋L.ǃ?5,(xb?K`v5Ch#?̥j?0^"Ή_˥?$8#BH?r/T? [6ٿGtſrPпY߿s9"k?Mi{¿PC(O?(+ "׿u ?geTq?juۿ4d?qis޿>T:ӿ'??nQZ2qF4sc\ ָ?OcĿXB?/ p?Kj\[+TE^T?`q,]G۴sT?ju?ٓgv1? p[ǿ֬Ŀ`v2? Re#DY+?PP? (˟W?YY񕦿`ѿwſyNB?v8T&n;dkMz fg?vӸ?s:d?<ۿ; 4?w8ſ݂*D?δ~ 0wg1ܿ|1˷_y|n!?H% ?͈x 1ԂzGǿn 5t?(}s(ӿP?1(0ȿ>01B} X?5w<Ѯ?W: 99߿Xkq̄1&A?hW?e9i οƻSG?^*kcsſu !?8s5ȰB3пdmd?(k_2?1G?dKyIPNvn a\jtο{ "k?AfX㜿*J}'?y+"ٗ?HQI-4Ϛ=?}]옐?b"|8&ɿӴ?E;?Qf޿T9?rSSDʿQ,J?i4?r >ĔJ?ͱ7g?& m?]7T$ѱD~ݿ.E? M9_Dҿ/A3G?*Paؿ@WA<??/:m9T4L-?o3X&廿-KAlٿ%ӿi/#?6MG?CeIǿO <;?ݜe\S,B???=id1T ,*[Կ-Gm?oa?0S5?zåʍ??4t-hA.=ο<XlWaǿ.Rw?QC?#.MMοK?yC<οhf)ǿu?pz|?kM翇<{ͶQhSXK?Y?V yvݿx>&_?XǿѿY>?Ou/?Nnt%?U?EhL?*7{͑?К*?8pڿb]q Ŀ&?"GF¿r}|п?ű x?1ֿ/7Ӛ$O6J?촾'`̿P\j?j-Q?4n"?qGUQؿhW?2+ϿbR ?0=o?.K^|ո+.6?mqD Mdش?)9op#?k~;bԿԊҍ?a?4v?v-[?q,?z7)?po?߫;ٿEr̿=?gr@%8Y?_#F?俩6Ͽ5R?.¿ͮӿ(kC?W?MI?=]Aa3B򵿱T,py?(c.D?O* (1`?yzؿgW}?@Fw}?9c'˿'$M?gbM?iUv鿣o(?~=>?qPz"4_?BpQ$?I׿yڶ#ȉ)οTd`ؿR|H?`Y a??+b\ʝ?1L?E.`z忶/Icѿr@;5?8O}mYeտ`$?==ο?#Uqƿ(G?(ӡ?C~?U_16?!ܿ2xN@ ? Ŀf?"t?`ҿ~$6v? Nڮ˿fCT%̿0>? :I8>࿼: j_r?}ςM2_@K'UN8{?k F?^W?c"ω -|T?lx?st07߿`p'򝿌-!+f+ſJؿ}w;`?Zf ))ƿ@5`Ͽ|2ۿk*?` Wէ?-ul&?`O?<迸ys]?F$~ra?t?MsϞ[꿈X7%BX{? ÿ|lt ?x Y?<pj"oʿ`;^?vx]~u?gͿ`D6?EvGѓ_Q؋?Kxy;*QWs׹jΉ2'^f_]?b?=5-UÿO?lulYu;?DET?­{Lֿ }?eh?늣Ϳ@pnD1˿]b>2"̿?H O?bd۰`B]#?rw?Sj_ؿu $PÿF~Y,?h1iyA?u&2I`V{ӿFV ?I9qõd]}%?ؤ?{ĶҺO3Q%?)g;ÿo/п(B= ciԿ ¿n=?ЭoN?P#(-nٿ>C(?^*M?g쳅X?j]3οB[>6-ɥ$:lɿط?\&?AS>??&V?*UJܿ?йΌ?*;]?o\.{1?d+z?[jݫ|BФkKo?ˊ?R{s|.fs):2aܷ?#x}C*F6򠿄|ea0?:-Lo?Éܕ?|4}5P?(>rEiп;?@һ޾??80]u\ܿ؊l?3v]LCPÿl`G?ZMK=ǿHT?G?HW[R?yE|?vKQPZ 4vֿMgt?9+G_*?2[2D&GĦǨɿh?$F_+?,9Z?@W`./Lֿ2z1T̿yS(⵿,P73?br>?{N{cvv)ًſ?iѿ?P?׽iOZYYɿE4 G?<[ȿZJD.S\h`Ԟ`$@?|?Q.Plѿ`?.T"???7!ȿK,+?k8h|P? Qeٿ$v^I҂*K, ;^]¿¼Vύ?f?ʨaJ4v?et`ʿ( +?Hÿ-9eZ&?J(WD$ӕ]?7 ?ƍ?LAspؿ9P<?gs??D?7CLCN]_?3?Su_P?"͓ѿ Q]12}?ÿXNٿW߯?3ύo_pu㿬5??T pۤ?.K *Zϕѿ4?T? ?=^׿Zy?S7=fBďz*^}ޙ:?v =?N4q?m ϣM ?lIb޿BQѿh1JoDқ?(u"ƨ̿,S`8 hpRh{7RnT׿?Q֡?ݨz?n&..%˦ÿ40Kc?JKN?BӿU ?Ё98?+e@B?"l&ڿĿ*7fr?W4>?W0ѿeg?t EtY߿+DF?M??iNUPSvEBs?KuWտ>[ƿhD`P?S{3>N¿ '?~@ǿ-s{? `$o?JH[?<+Aj?1y(?o=6?gWTE%^ԓM k7ῖ8+C? =?$v:忿B?lq_!ٿۭ Jtҿ+?r[G?rԿAF?b޿#$zSƿ 5>T%?|g?kGK/%nDǿ9"bп69,?əy$m?Lq4" ?; рп- ?9? .ӿ;v$?dſ QҐcIqҽ?̦ο䵨o?l43?3N:Կ"ɿA|97?Ύ f?ǹ"q?m?$ -[tǿ9? 'B?~ӿ?m$`(S80!$G?i͔?>鴡Z;&? 2ڿ #潿m?t\?2tgJ?l_e?ȱɹ%? d7F g?KBݭ?+K>U?B[?$Cʿo0kg?PKJHZP}P}2_cmor_1000_coefs.npyNUMPYF{'descr': 'R?"ُc?p֑ 4?1?l>?/aX<fa(QI-?R,Z\⿄f7ҿ:AK̸n_?]ȎZ '?ki7ʿ $o,|ӿ~p'Dq?).c?-l5$?! \?%#?(q,6?{lKȊ?TЗ %^IҢ_Ԧ~ '?pZ$?|?$7$?ιxؿj?x]esӿq+ǿxCGu0=e^ʒzD)D??!ۿl<6??JV˿L5B?_Bɶ?l`DZˊQKο/LzĿ֧$?hN KZE ??< 5<  ?@&do?4j5,?@MjQO&k4?2ec ӟ/O>0ל=?:xn?Gq?maşaMI̿9Ŀ:ÏпyP¿A?|ؿJRko;y++(Ce+뼿fM)?zJ??cL?:!y?v\?hFp"\MGW 3~,@׫Xr"|pٿ[͒N?kƜ^">?4hhzLo?aν@es ?(pW?[R?Gk ?Ɯ&_?ͪGUPο}@1?((7xe?ӌ?>rjW?|?MEK?lG:Z˿V+˗H?`2(̿k_ɉ]p t{أ͊v"ʿ0؆?H?tjSvŸ? ?n#MAĨ捶:.?k?|楘+~?(,]C??%?4j.5J?:ڿd笪jʿd! ¿rS?,!?,%Ŀ;z?]@?<:.пA?/oUnwG>mቿ)Jh?yI2տu?:w1οFiʿ@V\t3S}пz)?*9?tɀj?cvB?έi? ?, ӿ==?݊п%jr؝˿Tr?wD$Jӿw}eҿ/ʿ'moɷtl㿎׷\8e=gAA?+Q˿$ l?ͧ??;-F?K+?"? q࿱x%?aڝ/"k?,ٿjWֿvx4J\?W,m?VeXֿS m)?(0bz}ɨݿo?b _do?[>!T? );?Ҥ9???;?B?@1o?kI$2?I27̿pH ?}4T u~aҿ qPkؿXAٿ,9꿙AӼ`¿kDtAT?׿-?,J?~Ϳ?t+2?ݰP?mC\?T?K+m:P?hlK?i?Yr"ԤÿR,Ŀ>?$!^#?16m?ZQ?Oaf(=$B9pL뤿=L0CTn޿lοx!⦕:?L)ˆv?ӏ#?@ؿ 4 q?yD_%dfƿ~@<,ǿB?j)vJ)8hHXzg?x&[ٿ+,׿O>tc'pKѿ1R~*?Ez۱?P?E<`?h?nd!g4kῢ,g?ҿr!Ϳ vFֱ?;g#¿ˏYֿ.Ң n!&?2^\п>?)?Ĥ:܉?`8?x~׎m?%YZ?ta^h?)?5O?h?'ֿخ?֋?5Ra><Ɖʿ=61%ɿK3߿n  &Ŀ4h?lV꿈:?Z%k?1 Κ?a+?&EG?A7?`Qɿodň?_t`4c,?_gϿ5F.?> d? lb_̊?K Tڿ&,Iп0 yF%Yg5MⱿ+L!(ؿv_{H)ʿPN?m904ؿiz?BI?=S?\5s?1᩾?40?IY8ֿKT?8Uȿ`(n|z?@.'?&Gx?U鹓ӿ4af8&ؿF*ֿMԿ1ƿR"?)̸G?B9#)Ὼ걢3?ͧw?xINfَ  fv&пc6ѿ(?oI_?F\AzSW?lY)zz`R1p9Cz?A;?.1"J?k}?˞9 ?3d?h?-¿Q?K-``!t귄'ĿN?dFd"U?ҖR!?;=4?O?H}ԕM?.\?R:!Ԕ?KL:9?Tq2?}c?>?f ?A3^+6g '?Uk9ÿK?jILLտ]̂?kR2bҿIg1nȵiҿQ vsؿZQn!Ta?V;WA!&"1?im?L7Qr?yaW?Eϔ?x&Ay?ZoE?Fъֿ@&29t?⿳&X #2ӹJ<*?Ͽ C? ۨ?迌6=,0T0ǿ?v'yB,ǿ o?5?ւ?tпH?.ӒT0 fؿYLV~)ܿE #MϿ )v? ѿ.+gli"?(Jy?*(bO??o,C?*pOrݿ:?.5:_AV !&{? 8a?o PbO?"SCÿ:Ő׿&ƿb?Ыuj,?a|=X)z⽟?Z~?_*#nɿ?Tӿ2T ¿Tm0Pۿvpb߿ϓG' bFտz=?ֿL?\eGc?hp?=b?yJ7пzngjVݪbCC7澌bпmQ?Z-Ǐ@ S\?F4??_h ?[)?HoFȴ?d ?Ҥ[? 8ZmܴxqԿaY-.F[!ǿ[d)=hmKtؿˏH?M8 r?a?j|EV?ο|?hE?Vǫ["✤ ?2 t?N,?djٿYI،,Z?ӿ,]n?O❔̏C0\>x?KٿZ$n?9x:ձ?gV?>qt:|%ޝ?h?lVV?]15?Xc?̈?,#̿iB?E޿οwRKATMl³ɿ5^m-ӿ3q?l8Z'?*dwZ?5}oyiG~'2QL?"\"b¿ [6 bտcL?lm4SؿA9ſ3}c?h˿~0TrſU]NUѿj&e¿ V-?QJ@'c7? =gC?p Ӊ<>ڿC-[?[Oi?x?{ ?Dϙ)?XB?;₩(?< P7aonLO?U#ɿ?ſ?r*B]gŐ׵3 ]ZcRqJ?1Pl鶿Lq?{d?rUd?%[曳lڤ?#DcC{?duI?ÃZm?K|1/ ?RƿghÑ?]X񸿠&mY_A?]Wz7?׫ >)?*?~?z_?J%?uU"!ǿd1ʯa\Mֿ%s;ֿB wۿ!l`ѿj[I@?_ܿ?SPTX ![ Cο 1H?]??3?e?DYd,ƿChl?q:jː.-8ǫ?y~˿}B\ÿr;=~?(( ſU4 U ;οLH |?ouʿg(Dn?z2M'!}D?:#80пnƿ l9ݿWo@4eB ɿz??ѿky&.?ef?H`!!.տ?}?bLa?I$VN?@V"?ǣD ǿxc뼿h N~ٿT:?S+1HYJ2ҿX%=9?WX9ƿ_RmL?[9/&cؿjfי?Dc?L7?D"g7?KwA?N7?0G֚`dS?S(<ق??o<ѿz\F?653@,}?0``I}" 4͈V9-?ݷ? ~?_m;?*=lF?9wSܿf%8?6 rٿ*RɸÿR=^%ɿO2BtUjҙ?!!?"W N?v?~<ĿX̀s.7ۿs:`>տ<44{j*IF?1-ſ 0l??L\q6ӽ?L6۞?O L?j d:рimxjiZQ~lC?b8࿌οSϿ]ܿ ;׿A ?$2-Gm?-)6??,0G?2ǟ=߸-Lƿ@rIs w$QDI~ &?x-jX?S}?k..׿0?1>@?+{ ?WЙ?O ,U? ࡿF迁N?_W戻ȿKM%?ČԿ va,ٿY4㿕kAd꿶yT=?0prƿNB(~΂O}W}ȿ?%z`ϿؖaƿI4*`B࿻:,B?QѶ?5{kq?}?_c[N?;:D㿬տպCn?k`va!U?++~G~?Ӄ)8p?g\?R,?v?T:?O_0٨t箿|%<62z󙄿6JOڿ |'v ? ]*+=οhj?C߶? ӿŷ~?:v]"A?GH!̩?ٺ*ȿA޿)߿$?W9?"W?0?JGj?f+?w]bVǼ?<ƿ8RDSӥK??b,LָGT+?l߻TT+:?A* P$Ћ<ܿEÙDLխ!T?$?!M?W?l} R u?9?g応`=?|7qǿpU.{?*nc?D~ވ?Й;߿+Ng?+ >俞nؿW}ݿNx`IԿig?ƭ?-}[?g{+r8*ϱE'ο|ȼٿ r\?>t.O2}?Q/?\~0Y࿬۩?r%S,п |GuX]꿖gi̿}?9Tq?yr޿2$?./?D89ҿ+C"@?ဦ?Ñe?1?1 ? $t?R}q=⿩!& ?Cѝ\|%oÿ}M X?03ҿs8?ୋBQ?U??d>?Mտ-Usq?mHʿ9{:1=?ƕfxϿ,x3ӿ[2Ϳ+J~n׿b* Pܿfο,ӿᄎ?(x! *[X𲿝8@ƿGۿÍݿ {ʓ?ڗz?RϿ c?Zdڭ?gY3Fҿdg8?~'?K`?xST?ij?ھ+@Y={O:} )j7zmFӿ%?s_& =%?(X'ml=?P+&ٺ,7"?*f???SQ#?Q?Um?*͂Sq{yd*?:dO翼_GDڍ?,bpvؿmjyʔɿemo%ؿa™:Lȿ&zxӪɔ?0WT;ݿq1?xx?P3m$_u:?M>,]?~Q*?K?Բ;?cV??/rF?c#[ڴ?vgVy^UͿ+ɿ-#Ԭɿ_rZ,? dX Ϳ`) a?#YO?VA;cu~??ҷ?z'4?F??1PC?z;?r8"jq?8<m*9Ŀ,@7|?3esܖL?^s?+FV ?V}v1?$b?||xQK?jȿ"T?iD8{ݿ.wi?jBڿ?u@iĿN- Ytǿ{7?/:ڿ |o?3ʺs?zÙ߹9Ջ"?AZ4W'п\Sw=ܿ ~`IRyC)-( |?a#7~뿕o̶?zhչ?+?`4U?4)?rήν?4eKd7%?GȤқI:k?V?h$?f&;'׿fܹd@ݿU cؿDbܿHeA^~p_^?ǣ?ri~?'X1ƾ?CZ,.e޿d K?f@B? nb?:VU?e?T?`W{$?i" ѿlP#?+;ݿ?J2K?:?בq?%Ky??KĤYɿQ1߼?ha=F+ÿp"Ye?.?3_?v3׿Ѵʌȿ&>EQT:ۿĹ`ͿT1)C6k?J@ 7?.O~?}|ݸؿ'T?VGrt&տdd? pcǿǹt?z?U*?,)[Qd?͉?m?CɿML?B?L ˛*w&2?P齳ſnؽ?}ɠꏿr0 ƵidXZ?yKG%'Y? EMǰ1yҾ??Tg?(:CcG^I?>HK NY;<h}?nC?HF93/?Y? ^?x?-}pv?aPqѿd'Zq?bnOSD ӿ8P㼧?V?E=9?uF_?@mz?"d޿69?cֽտ2-lC?HP&m(3ܿiF(%4ѿg>.N?3?ZY~2?a<7޿FYd8_ ѿX8ӿBDӿο`?SU⿎,fY?> #>?Ŵ2?_A?M? G?=rgF?K/dU?A$ܗ-?\޿莲?*z ʨ]KU?OԿ^qko@S?p=Я?&ɜJޅ?K^ ?tĦXڿ9rԿBWǿ~Yڂf?x\0ٿO4 ?4&&?y0I?^?m U? 3ʿz3`LⲿxJЂп+ؑ?mq5ܣ?@ЙNi?N >g?|*{?l?]%V?Le?Z22,?A[3y?mb?ny?f. g0WcG߿I08ȿ%޿q9ӿ#wr/?\K;?<9Ȅm?ߑEϿ} R($?55y?p?nD ? q9?0K?,^8J'^I?pfM/߿4 #?HLj/t,rc˿.#[Ɖӿ6i"%2f?;IɘJH?@$@?¸jk?[ ?CU?x˴?bjfFsٿрkj??b?,?0dQT?,ǧ?=?u1d.?&\RӿOn?T\vwPv{?@aC?Z?o':8(?i; 0"?Y ?<axa?Pf,A&ٿLкYؿhU ?k3?Ĥ%+JȿDH?FD?hVt?P"W?n7a?',oz?tÿu8?U~hп: Kʿ lds~{„*?Y ?oD?_X W?vIo?WK??8߿f"?kڿ%ɿ`d?WrӿHнxf?=?/?B_<~?@ʭSxIп#;ʿY7ѧп+4ZalD^k?/]k׿jXrY`T 3ѿl31fƞLEl7)Ho˚?Ԙ2oͿ\s?g/?{Cݿ=v?n]?2[: ?m @? [ǿծ? ?T?7"CR?Sob䙯? ѿ:R뛑?+sۿo@zӿ@ynHҿlKRӿM$Ŀ Nfe?@ϻ>ƿAܔ?^qƿ29I¿5\=?a Ϳꚛtſ4Ϗ(0?!Q=Һ?dG?ؖJDÿ5k:>w?[HI?.~wbſ*?{?~`/j{t4Iӿe޿2 !?/Ű _:3׿KO>?4x O?$i"#?V?F~?RGE?q?)ؿ?]RN_@?.e?$7К?[aTѿ;'?E~ڿ /'?tuC4<ӿ>BRL= M rpܿzĿ~?)/0+LGR?새.7*?ʔOZ?OL? j?5ъ${(?Ja*iP}S̿9 ?1ֿ]eg?޶?&7?U?Yب֤qJ ֋Hc P ƿ`Fh?nd{п#Eyxzl.9?(9Z?Og?9u?\.T&?S.]?W$lԿҢnN?@WF?xaM%j?Եaܻ?g`J?g'E]q̿6D-Ƈ˿?kٍ1?soMֿf#?r^?o"aٿ?c? {IR=?Jd˿Dt?]K! &biο1ydѿ@Eֿ\͔-r$E̾?v(?g 884U?Gb_T?u[?#?"ҹ? ^P?4oE?Z"?L?.r?4¿]+?T-'"述{dؿđ㿝XпfzP[?DJk?V?--!?u}i*'?] d?e?ot?Wfs?Ud8(r?_&ұ>Hb?>qK#濰oMD?3Jg\X4JͿPóp<=ʿ[ڿk椔?>|Ϳxϯ?tI{g?AV?'?]e?!uA?$?J?ؿU?ůZֿO?;!?6?nh=?Ӯ+ݿnn#îտ,ƺ p؊޿@+ѕ`!Hז?LUv㿙?@1|/ǥۭAolпf]' ?@B Y9ÿCt.躿5Ƃ/2࿍I?6S?&ʉQ?jd0?gp ?E<?iSLz_ީ?֭X^)6ÿM(^ſ=kuέpLC$?Pٿ#Sf*D? X??̺ѷ?u9?ŋ?"\/3&B?蝫dޔ]Ϳ2?Gv㿬7 t'O7?c;ȀտJ?HbLzlTpv`N Nxk ˿dre TS?x;5gҿ!Py"|?z@?v:&: oj ?Yt?h4@?M1M 49o뒤цJ?+?_`aI?0y?TXtY?Y ÿmvr?nܧ?0͘g?҅2?,4{M?<< b?BO-ͿXaU?oxԿez?Ӡ Ŀi꓆ȿ$!ѿn} <_?J? @?"9?xg?o€wPg avpC[ÿU^զC&.?R$?7??oUHm?0gۨ?Zy`ҿ/|cvUDL?R(?mMH?Deӱ??]o3?qϿvBlF?e\K6ſ~4at^P{sg??r~eg|Yh?I?m,ɿ?fe߿f?pqw?F.?v+_tr/S?nK=?F洿a;?ş1?Su?\ZH? ?`~??$n)W?-7OFܿ~r?=[?qPyܿ"}3 ?41 .?fԿKI?2jgT?-sk`o?t.?\[?-Xw?CBQ$?ߌ9?'᧴.οX-ǿ޾I_q\8`п)Nflѿ!$U:?JnJ f;\?$^ !WĿHGk?gI?hv?r Mp ?aN9?Ŀyu_ѿ#F?ygڿ\xJÿ¿W"?w?H? ۽?{_Fo?su?N?CA.(1?w15%ҿ{@"{!ۿeHz念|ĿX2d@?$4俆H;?09\,K3D-?@W2\?{0'?wI?AYU?]Y㯲?K( [ǩ#+~sv?X~۴ ?ϝ}?/,?suT ?16̿`Jmu(ҿڕذH1Uܿej?+ P࿾eR?Kd?l:??i%?*? Kmh&?X7aȿ= L?]v(aſ`$um?LWjÿ܍ nƿ#;ٿ^@_(ʲ?]ĹɎ2?̦sxCq?7 KV?ǝF<}?Щ˿wu81Obh?\zܶ?x?w*?};?\OSo¿8&2Կ& AǿY*:ٿoc`N R? u;俑Ms ?y ]? #?6Wb?ءnl?$?Tڿv?ҿ^S/2gnD?G ѿ@94F?o?;X?NG˸ҿϔR|?ih?rn?tW05?*ƛ?"SM?v||C-?(̬ sH?%[߿Ckz؃ڿ"Ŀu;*ֿxk/Y?5FJ@2#?$ߺ?,8jI?9[_?8$^˿*_?`Mj>(?d_@Tֿy?;$4Xnڿ|=ϥw9翫w\̿z=Tm 1?G2a2B?&#H?٭Y? Q?ִh?2LQ|?gĿBRYG=rN軿[fq? ҿ9D0?x ?8`?r%I?|̥\?;D ?2H~Gc.ѿi?>?TY6Uu{9εg>E˿Lya?ZS?GN~v?g8e?E?zS ' c?sZo心 'eӿGb?NpL:"0oj0(O?S!Aؿz6Q?||l 6?Ml?c#7}?j5^=?m+ ,QH5?j4B?bG?vwG ?6#,%0߿}SݤJg `nۿ;֣ǙݿF;˿09x)?I|65ܿ8: ם?m+6z{ؿZ?ZTrſN6?SGމӿ|?'?j27߿9޵?z{?DJ;^4?qg?_a [Ŀ(@2ǿPIؿ{[CaFeھe?VAV?ꛒy&RjQ)!_O>Ӹ8\?%~l1?TW/V&¿:6?ojl ?#9ڽ7? M'α?L|TdW?C~?V3^Կ,4Ϳ˰vSXݿO 1¿_#?irt+p7:?_?!?i哊?,P? NĽ ?1J `?Ey@D?Sk ?ݹֿ\,? ]r?!Ns?_bKP?2a?bSȿp6sֿ"Z͐Y0ɿ G p?9k1?WA M6f?:#k?1oB<]?R4?Xi?$a涽?!I@忐]?]Fr_m~ƣi˿V)촳?ρā{ΕݸPǿ|:j?*?h?U(?6#L)2 \/+8nѿ-nq?2& ?w6-1ٿB?n?"#?pbw?h?kXC?&o/1^;U=п?} .ⱿzF!3?俭 ]??2 տðQN \?, t𲿆w*r?]䬴vUZ*?xռ?:Çh?Dއ?G3J?1_b? MPƿ[&B/?܅{s信Sc-Ͽ-D0ڿCIL濔FL+^ڿj!q?K v?E.qei獢/?SҜaE[s?Ϫ@?qaӃ܈ֿL(锿O(`濸W@Կ:au?l/?tH/&?y?$Ώ?X00Xʿq䄾?KjO? u¿GF$?-鉏?>?G"?R7?X+s?B տ?M:Jm׿JJRymTG򀦿И] ?z?Lj:ݵ?ܼ;O?L ?'%Aqe/γ?譠|bӿ{)9;F?&̔ɿATϫE}?Çԡ;ÿ)TV?@QLv?H*&?~Rb?%g?N!Z?6P?AE?m3+G[?&1;ϿA:^mG޿n܉ WI̿6o->?T?)yt?{/? 1SGdqޯ꿚?נx)ѿ[e:?ߨ- +ͿdϪ?c*;h?'(?G1a/?D?o{?Uo7 B./xxǿH/ҿfpڨUkE?4sѿUV?VBlB Կ־?I? ?%?u'ͿbCOLW!tNt嶩?x??Zz?*j?e$?e ?A2Gޮt_'nL?J8XKۿai¿ܫݿ0 0nc/T?*W׿=g ɶ?t4N85.ژvݲL\?uj'd?[ ơ?d?RqĦ?(mJ [?ڤeݿ!W)nA?L4Wȿe ? hUΒxǿBj) ~ֿRVNտ|>V ӿ4Yp?N-<d޴?\v᭕k??4u ſF`ً?JT9yM?bo? ,_~?@_b?h?C?Z<?'iñ8A+u&??kC,տiY[?"!?{)=?Q["߿^(ޟ"Ͽ^.’CD]7BJm73п?F.ᅭmu?rB ?&/^?Tk"?^Si_G?ak,?J1̿= ?}<{ſ3F\TײMV5?Y^]xϿ3Ϳ,0#.ſV пmSWeQN?A>A ?ᣍ? b?o]X? `c?#)t;)3?n""пI'"LӤ ?`D?k? $J/sp#ۿ4J??cnxqĿp)䯃"j?`8iy4r`῱v6̿aYBXnֿI*{㿨۞޻N4ÿP? ojeO̿N ?p1ƕ?W m~?#xD?$ `?AU<2ѿHڐ?}|=֫Lstn?pH#ݿL_%e?Dz?s'K?'h~c?.d%?l~?OدC?V[E?es?dh8Zq?/3-.-AF J'y$?qƸ;Ὼ\C?.B,]?[yj3?Oo\b?L6m9?-?B- Y?bsx4?! ?=(߿[1?A,RR@Ʋz?Й(ȿz Կx&u#X#[7ο(튷?ǼKt S?-?^83?pv}%?d ͭ?w ?*ʿӧr?i?< _w?}dG?/u?O?8s@Ϳݍ,?ǯRRܿ. ?{rbyֿԟOܿF m0/ci?~^CſDJn ?h<1y? GE@S,?Zo4F?x) ¿%H:ڿk.˿ظqҿx٬VE? %/cc??N?,^H?\ҿpL?,ƿWMWǿ7ȿȳǿ}ؿ?hBDsU7?Ryilb˵'ɃeſQsٿG[׿I3^ʿ]^P;?JY4ٿ$?bW̿[O%wҿE҅J׿ d[?jST?ACo?l}xKԿ?L0?!\E!ҿ ſ`KȖ F}k}ɿr7F5}b?m#X\Կ:j3?g?LȄjQ^қ%?QEot?i3?`Pp!_Yוpb?!ݿMf\ؿhzo׿9"Ϳ%ʞQ\u?5; ?\*}/?vBjLտrǂW6?DDſNH1c\wps,ҿiJ׿ :v]?:xYg߿n?`f(2C"?{^`?b?YhTy?q4wG/?@5 So?=6*?k4?`W?^U?y?ѿKH?gYbʿy""R?^b&^?a ?`@N?&]?Hn,?Xrsg?ֿg!2? *B?v?*:?ƥ(?8Kge\?TEٿ{2t|#ݿzAr#ٿ.ܿX-,?V'j?-BԤ?ȣ"DIѿ٭҉r?Ч2g㢿6{Ϗ¿Ƌï?Az"o?[?ʿF΁ǿ Jۼ,)ݿm}m?2vg)?}05}t?8R;h#QS#ń?UIrL?uQ= j?7͗?+'?,oXɥ?V#A?)*?ÿɻԿCI޿S0_XֿF ^-xѿ Wǿ.5?qvxӿ~uo?lH?r}A¿h T?6*Y1F?0瞖 ïj)?lh ?㮧7C⬞3Ͽ]n o?-ˊy?~?JqF0&IJ?$;%?(;Ԣgʿ1^3gc ̿\Q*W)%(DK~qi[?Ǹ?+̩?sRk/?8`?B?EɿX5fN?nUyǬ˿TK|00MVw3&y@?] ?4a;㿓;Q?86+?BcӿV3p>?xDᛄ/? Qcë<bF??k$ ?e߿j8;aֿ~ldؿM?ƅo̿t0I P?vz¿ŠRv@?wX%49@,v?l'ӿlG*#y?49:ɶ? ;F&[?oq?(T?X!Wѫ? X?s@]?Կ7,D=ӛh޿4zܿt+Kβ翹roֿ E۔X?9NaI;1?OlT]?+?Mj˷*?iG%?0Iοg=?w)??\)ʋ8?_+ ?K8[̩P`?[o?ԿG?kJֿ F`k{wBbz33ɿ߿j@lc}?~s+T޿72hj? @tֿX~?Q?9?;=Q?eEퟌ?B=cqӿ.nr$Y7=Ͽ@wÿU׸%hog?p7ZluF? \6K6땠R׿x.U#ѿr dO(*?]] ݿJeFV?A Z?Rw߿}7On?Xot?O [ĿE>\ƒ?d ? ۿTm@j?dW6n?^ؿ\:a?Gk Pѿ0|l?$g+I?t}*?Z?t_`?*pO?gֿq?E1@ؿxR0{ Ք2y$ѿ.;"ʿ85PH?ٳ7׿L&i̮>$Ŀ,#׳bw#?5@z?ĕRf?BO:?y 3?\iF%{WTv*?p?ֿH9OlvfA?@@ZͿ錗3]X~ZdpuͿ^ē =8wͱ? 塿/X?d?3?? *cjlZ&r? v??)zr?R?9x͸?`m?\_Gq?r翿e5J?FP濒f'zѿs9뿴aSBÿ)UM?V:c翣U~?Ƶ[2?^rwοD?Pm?Q?1PQc?/'?L{r!?,ÍRϿgp(\D)b.?*D`??rq?fZ?{]x?Q8yf)Ͽr3ܿPmwֱ+!Zп1E ^ڿt|ҊʿbyBN?_'A?-?00]ӿ?q D?Q 0Ŀo㞸?-?R̿vtl QETpĿβ[~ҿ!  ѿ" GPphܿsA'?,p?|5/s?A /?RĿ.fO=[rпWȂǿvKjv 8_t7O俀?xib?iM?-o\?'?p׿cp?&L:xR-??q h?þh?` ٿaiRDӊܿ9ė࿴z;ʿr?!XPfԝ?Eo?L{#:?KZm4?jwӿFM=ƿ> u?ؿr6\_ֹ?]fO?Oՙ?4qa?w&gxH?^"J?(&?dFkAۣ`?8Ѩ1v㨮?¬?HG?b4Yȿ8VQ0`߿˓7~ϿrÿgQ?6R?P0ӵ?R=;n ^?.ro??WgοIX? |X0Qԟ e?/(οn6v?|eB?w7.8`ʘXڿ]9ֿl2k¿8s=`\. ?lkgF?(!?8?*?@ !z߿͌$?kпIٺIì?a,ڑ*ĕM/lR{4qr:XĿeuƿ;E:H ajǿoV`?>1_fbsp_1000_coefs.npyNUMPYF{'descr': 'Kp"468?tA◲nÿ6~^ǿ6O-ʰ?:Y?{™?췪|O?j3P "hֿ0H?FhY? ?~KDi?ygS.V/d6?7`ǿa?@& 㿀 ?I-?(?2JI OvyU˿U Wq{kÈ˿u?IԕŽ?p 69UտtMyI?)R&ſٮF?ZJ?;H$?p??` |2u¿?䱙? ͘m‚bႯilLY_ؿ=?B) .W?Y簿K<ῲΟkJ?tZ? ,k̀?؝I?+lF Y?qiٙ?%ӿf鿪) ʶ?0 ђ?ЀU?°TOcpɿUV?|7xo?21ؿz|3ֿ!i5߿m?υ=d?d$r?l j#KlCtM?/?tդTA?D*=?Hjӳ? Nտ"uGÿo<+¿(5[%Җx ?U?C ?7w 8Ps;߿Cc 糿1J?@ #?M*Dy͌?Lc?<(JPES{RD_V?y)?<ZV{Q0>Q?xoyEs[&@g.?ÿPBi㿘,c!ҖvpQڡ?mT?^o濠LWx¿yvge?¼.?n6jm?hc*hk?3пJ~U94'?B`+?ힿG?xjJ7oƿT^c?3 ?u`|h-E-=9?pY? p?Rx?x:sſ*hj0Ͽfw¿,G?8JGT?txp S?J%u??=-?\#7 s3"Կ".r?0kٗ?x?R̛?Ǥ y?M2nɤI :N\ك +J?bw>?yF3/<b?sXE?o?BHf)ȿoŽAݫ޿#Ʋ-̿poۮ?pZvTNJE$,?C0˿!E⿴lͿ'?78?vS?{Fϛ?(okeN_ :'ſ҄M?(}lH?tY?Nј?Ԕ%?01Z?tCA`a?!I t,?H+Jf|?\mV?D ?$!살"? c<̿zv{NV?BKڍxܿn.$ÿzhLϔ? $NF?/yM?FnSҿ'?|q?I,?f迃]1VԿ@h?I:w? 1? ̚3ѿ') ӿ\?'p?2H+?dg`;>?|Q?wnaѿrοbt?e*?ATٿEx?>7˿MQ6,*ſMwDɪ?<xvɸNOj? yת?D}n،?-ӿ439V,D>d~@. ?R;듯! ?*?)^?1 ¿Yh"̟\޿X ?/ ]<ٿ` ?'%?W)E?xɮ?0c?- ÿD~?WHǿt恿j QeW?'laſMտ=?:?-G~?#_JSԳs?]eg?&*WWF࿠%zz.m?P\hߗѿ~Y2ǧJB}?DW?%@?8dÿo^PwK3ݿYT*?T? B4?O?~mYsڿPw 7:蘿J6!e? *?nf`Ou?h/0?/a?`Hd޿K䩂a@ԟ| ?-iR?m 9]?<5@?굥3?|n῾?hC?;A7)¿{л-\uL}% W2R?ҕK<*8R?P?j\}@ٿ`</&r+?s|!?Ճ݃ɿ*?.?M6d ?{p仿E7t8 _!?"?Xֿ~ T?g ?y@܍sc̿pI? e:?D*cDX?*w a?D=B4n4 Q̿cH3F?7?q&?A1UaܿLW_;Ƕ?0G'?RϺZT5?*JgOg|?N<ѿa9T?)?2dž)? ebD׿`w*ۿ0Qk  @?MVe?(hѿR%񰿏|9$տ1?uoCB?$5u#ȿ$k ο 7 ?LgmUzδҿ>R;L?`?ziw 脋?X?V1p ߼>Թ?vLk?b?]U߿i˺$׿Pdӿ8LjJ}9=ÿ}r?TO?+?(,?ڙ;ֿ0~<ԫkֿ(n迤\7*jp?m?:4޿T(г?PX% j?귧'?b鿘g?-NѿsA鿜&\@ӿpB. ?l!JA?L"L ? ԏ?ɋ=*J`f? fǿ-ܠ?GB?`[z߷EۿeRY8jȿ;(oIH?*m_?`|+N?1?0y7~U۽T~lVԿ,R9?ea?®O? nk˿?Gs@/׿8Z?SD?/?wgW$?E*¿4xi6 rȫx?6b#;X?I v6ǿM?o-|#C9WпtZIrX]{8`?qh?);?(.M?ؤG9ž?w̽?̏)aZ;̿Ŀ?cZ?b.ĿN8N3'ٿdd~?QK?=;]l?)?}Ͽ`'Mb9@(wѿ |!9u骔?VhǺ?|Ǘ.k ZӿmT(hCȟ?`ոtQ7G"?Ŀ?.F0?-?/wr3f?SWj'nǿfoFG?|[|o?!?[ĿRۿLߡ*v??~ XX2ҿg!+*?h~<ÿ}W꿰d}U?(|k? ѿgpn?J"v ?Y}w?C@6I\!ͳ Sӭ[L|s?-\͘z"??AB?A9TN?rb,mEj ?s?C?tX}Xf>ɿ\p?c5?\][2Hp㿞ymD?n30|?F#?(҇H]?k飔? ]?By꿼 Yտ>oIbmEO_Eԡ?$?/s?)пyFs9ظ|P|?aT?o1YʿtI%ÿK?-l~?1Y8ο5ȺZȿO4ܿJпNP]c?HRI$ ?/*?yxQ?\Idd?xU"c{?W^?LcVf?`ڿӿ;8C⿠w['G|>5?R?<:_ܿ!x`ݿQῪ9 ĿH??joAض?>`H,?խ JRx8c3?@v?T?dE%bſ*?qZ5{?/m?9gJ?b{񿰜ec?9u#S?̶?7k!y1ѿв 뼿|_?Io?ؤ;?j=&"گ Q?YY2TH?bZ`GHpZdY@uM¿\? GbuIۿ_ lѿ?q? me?ļ?zm']w)?K[wYI˿TNU[i'?&JO? -?Lwۑ?F]=..G˿CZ޿.1pnI?٣2pÿH>R/ӏ=m?ND׿>^%Rb^[bbg_?G.k?\?A[stTm㧿W?\/?`M0v\vyD̰?.r "?eD?jlnMݿX%/TO1[ۿ(P5C)?&ӿy юة?b Lct] @ڷU e8?ݠM?HT 6^zjտاW?`CpD? V)ֿث񲿿 Q#Nտ*?`e?̞|?+pl©;~7O ƿEm)f?vdy-<(.lЫǿYLcɻ1Q?ԌV?)la?鿨ҹyY?yο61sw㿲t,?bjw$?CX?7ֿ*T-KpI?X4DZĩz̿ |kH?v*/=?UMV^?^ [?V֪MؿX=ZZ+5P??Ֆ?e?|%?)п[t Ϳ1Kҿ`r}'n%!? ?ѨƄ<SÞ\o=ǿANpI?Jeȁ%}ƥB$Fru?{?.!?W?oӸ~ \6ތ?LH?sKSSz?Xj۹쿕uѿ`Q?+J7\n?;Ӭ?w q?W'?,& 6zi?R^b?˿?T:|xGʥ~l^?TD+ɮ.6<uVnUȿqXn?@s?9ŵd[6zտDiȿ 1Cgͧ:?VG=8OͫӿL(iqmo?H2L?sA.6Z7?{~iv?J?S|8ԇEwy=?']hb?h:?5CI?+ ߿:>|Ͽp/ҿy hw̿6Jt?Sa-?ȩۘ??a?Ȓb?f?b-fai׿87!翅Ei.i?Lt~+g?PyIyۿ׿r&cEijN?>ki?#+ƄnRƒ qӅOѡ|ۿ}*?f `пP6??3r.?@9#?"h"οdyt?` ƿ2TRǿ%+ӿD 2SKoi@?,j]?a?Ɯh?RῐF?Ο?2%0aq?Y|9Higֿ@&iZ١:`cܿȓL¿X;fk?~ p?8FSW ?TϹ`տ 8N쐄=wпnϰ?B??ҹ{?Oۿ bb׿ͬHѿm2ϕ?'$?u??= & ?l7#d8 8H&aXӿ kI?ܪj:࿎BA!?7@s?vv3J֞?/p 9࿠3ο!,uY{PJyS?Ohw!?fu$?TZt;?qkضd%?}B *鸿=>=hݿ2Q5ĿlPci?>5iφ\eeXÿB"?@I(? 9?zThӟ,0K+;3΢0+?R?~?35O) ڊ̿OƷó&?Ǎֲ?`4]?s%?fsĿT 1􁿈]Z?cB6L;";п(?ܔֺ{?}_!?G0ۿtyjf?zD=?o?XٿԢQ|?]>M?@?;ѿXψ|iۿDHӿZ)ÿ^2rԿ$?6?Cw?xgz!++6?{ӿ?K)R?wR 4^g3v??Bm.DCĿ\YQ'ӿG ?j?ԒS?<?q?f3cU?K2񿲱kwhۿܦOm޲<Ź׿USzL?c?Bj?c? B켌j?BQL^Nؿ-#RO?e^; ?Z4?aWM?XO$LֿX*?!؞9?E?~\ۿ5dl?V'dUg ̿KrڶdR\)?>Dzп*j@ܿ6WF-nſ np?i?bj$?[_?-G?n̦?@||㽾@21?ɝB?!fj⺿6|mHĿ2*SU?Te? Կ˧0S7ز?H{麭?l%$|yֿ@ :gNy?`͊?TwՂeؿF^?(ۺ?s?Įp$7?@lbmտ~4Xcp&o4?d+?+A↓R?7!?NȂ7]{z$O΂gԿ$VQ?<> ?bh$?1Y?ƙV~?Sr\𵿬?`pRQ?g?< %FhJ?|"rO*+FؿE,?bW ʿvſ4jп"R['??YG?jY0Ӳ?#odT '?hO?H1P?4=dxL_Ϳ7Ӂs?H{??Ⱥg?w (|`4BJ ?3 NV=vƿT] ɱ?dxVտ-p`ҿ'J?9?UAYӳ?+E!Gk=׿蘨!:pkQ?9<X?pFn“ ˿[0f?&ˀGfPiK׿4 Tq?>t?Q?NG Fz zE?y|˴?Gٿ6Ù{ĀA?x4?" E?V:t?@"#2ٿV=Rӿ'`6u8MlB춿T?,??gտsK?x# ?.3},$. ?Z7֤?b"fy?n\\x^9ۿd`{0N?gI f? 1Rؐ?` x侑>ŭ?BJɿv^U̿5w?G?~ Sf?߇? };3F WcKځ?_JVK?*ſvׁׄE1Z}NпRL@ d?75KͿο (ѽ>(?7?a7JG?Eָ?,<I.пϰKr?SBݿ \$)ubȽ?GvC@VVbo?a’(Vw5mʿAVP?8v?z_꿼m?rd?L "I-`P~.M?Wh?#͔aK@ YD*1?:1!? `ֿA4"?'5J ?B ÿ½a ֿ?"簿xŋoKOOW??w?6_<4U0>ԿL @}ͿhWx$ˡο.#B?~r(?c!?Lr? KnȾ?i?Ii?P Xxg纓ʿx'מ7W̿:u$崿jDjl&?ȮT?3NK?xx?Q࿕ iXЮ7zڿC?н#hC?H73?My޿n)Ͽ`RX㿅^hҿ;V ?%Zxk?^5?e̎a?=N1?0-wZ? ".V 'ؿ5*ٿ8d>ο0?l{R7?S?*'?^lMۿ6bxʿv>$ɿ|HS ?`(O]?PJKۿy8gѿDptĿh~?biRH?# W?0'F?yӿZG$?B#T?Z3H$?"\?2|Y7x{ؿ/2FĒVwֿdv,[?AW"1?2~? Q?K#9evۿ~\ȿP}4tX׿.MNE?$ɎS1,?W?V_?@vC?pϏO*|`a?9? (?ˡY2,ʾ俘m.}?77c/(2r{2?a5Q Y?.Lo޿@$?0bj ?fL?mdǠ?ƿh?hNoB?@zgH$JyʰPeByHǿ(J¿p leVA?2?5ه.+aۢԿTF'?k'?6Wj?C@ۿl=Ȥc y|K俰U?^? `̿&vAԎء<ȿc|]?c?T@KͿJ3ZƵ4޿5 ފ¿B1߬U?}tw0;[Vο{w|e?%!㍦?ޖs*»Ci?-L?fFP?8ـu?~~N8?D?NX6ڿSvFɩFпӀf#%#㳺?kX)S՗?Z;?dF8?x0?nی(̿MK?$?uſ/wd8u|YGy?G^/B?~w?LPV2Fܿk?51t4IſUR?i]l?[?=?$/K3˪?[4/?wfΰd?URѿ ??0((MZ?<*`ϿSqNпr!??+C?2T?Ls[;\C(諼3?k]?נ?܃V俺(?NJ?da+?,rCX꼿6V? \ ԿYoXޛȷ_ȿe]c ?<Ѕ?rj0 kIz$ʿŊ-PAb?օ|f? j,Zϐſ5n?K=v?N,?`fu}W@ 2d 'y?Bm?p+ 激>JBV?V;..?>Qq?㺐6:Q_'ua?#GHEOh!şڹ?A??(+ |yv? )9f Ųvvj싟i?L#u,8޿T'4[?tCn?4oͿxHw?dվQ?ǎނ?t홿:ǿXRJZҿQLϿr?LU Q?\"UԵ?gVD򿄛1*UɿrM?þ?3?Q]?};{rпH6@?M?s}? ˿PKJHP}P}2_shan_1000_coefs.npyNUMPYF{'descr': '~忠>dkPA{Rt0'eM?;^lTIn?l+vnjOʊ? уL_'iX ?DG?Y ?U >?pL؝/hB?@6<_7Կp v?*n? $]?%tg?XyPWf?$tk2EeXN"x~]?R6?02ۗ?qd,b0?Y[ fov迾PD"uK'ȍmF?G3f?aPV?7ᢿCG6r?iԗ4Kq?H?L1>}&e?8 .?8 Op|d^lDӖW~9?h.lC?6F?9o?ܿxg.᱿>Pas<?=JH~M?B,A?E]9Xla?XrZ&J%8V5迊ݛ?v iѵ? ;diF u9?0> ]]?Ff1?E?8 ࿈A˶ 1M ٿ?uKB<`/?Mðe?>ʍĿ'b[:?},??n 1?sGοݘ K ؿo^Ѵ+xELD?/?:!t?Sb2*o??啿`!N ɿ`9k?& :c?^VfXFܪ?=02`?aAX? W?Pgl?H⻯qh?#VR=z?,Yω?7Fi&LQpY =]0m5ֿ4PPO~kO6l?YM?f7|?4~c?3~؋D?ю= $@#o?S>x˿"'l`xFȿiGa?PR3?|l'q)Dk[?ش/-?y|?Ь= ?J?oG,B{"a&pK*?' ?Zצ?Y}? Mfq?]"gO5?j m?rꝃLq=?PxRcX k?i(?bk׿4d%WG?G%Ea޲7]{Nǿqv'e?3? !̩\?^&˿쵿Ey?3 ؿo?wE?=$ʹt]^?Qa5Np?@[?,z@#?9 r'(qi+.p%ÞQ翤Z7rl[8տm?G?`OF?Fnz7Ϳ:ĕ9?DAd!C?t?.(ɢ^p>E4?(vv'ό?gȴ?7C.)npJ+~,ؒJÿ^T_?b/GS]O6ֿiA?_8??vD9tԿʀ(~u-ґ?`.mig薛:?E~@W`?nfR?`?r+rm=}pb]?3Jlp0CxQ?Qu>乸_?=3?ThJsH =CxOژ,yǾWѿ/a? n;沿`DI.?B;'?9ْ..ޥG"J??տֹ{w:?x ?(~$?:#e8]|}?^Q^'z{)Z4ȢGU,*`햶>AC?D(1UuһVP~T?$2eq?|O?kMp&* 7,]i )ҵ? ތ?9]hcE?5]? @?ڌXmRvſ$)?U5? 9?Ȧ;g?Zc>&M`?:!E Ɍ~BBXw?*ɧu?R ?7gd?Mї?Ge Ttzh񿁴>IП% ޓȿ⤛|x?` 9SC`cLIпzt3s?%]'6 xfբ?CFN z9xG? r#`?^|?PO?|XGͿHm-7?b:J >-z:? 83^؝??ޅ}?(ň?8: 7_ǿaq?7x9"Aގ=jֿoڢޖ#|ڸ??%r#A`?wPAjڒ#?&8 ?LQMO\ⷒ TЇ ?#q??ýk?od .qп63^ ?4[пP;eP?5a ޿ AhCS?v?ޫhJ?5Y8|1`Sj2X/?V԰?^y?\H<+-u?J4ڐ1濠]c}>οf1myv?_oX~ѿICs.?tj8x]͑?Gˣans7>h?xb?Boݹ̰?\{HT,0u]ajpL C1瘿KNC ;u?\z?ht?IbRy?Cx/?;k?jhh˟>7ӹĿYE╿, I33?GX(?;?f^K`?"?m+?U~?gu?[%?vv:n˭0п6'x1wZ?N:?$NQx]ÿ; ~?⢎ztѿߌr?ؓmb?Ҝ#{D? CIbr?s čڿ! ]⣿lj?:.}?eͼV?9?fYĿAs7<"#@?H0Uv?-fì8?^ }?1<$J?e 8bƢ ӡ?@r+T)-?̜n ]j2[2㛿&ӿh B/Y {b~?¢?%R?̨zi?'ry q⿠< l\Mgi?gmŪy:m?\M%hms?ZЕvj Ȳ̿riQ孨و Ҹ?b?Hǫy8Jhb?%ο菉x>,os?Dg^=oIǑ+_?ϜN?~ ;nw<ř?7z*Ɨal2Vƛ?/nn?8?L?!^?^:Hry#=G[?G u^?~\A%35ڶV?hcp>n M\R?Tر?2zK?崮PFޅӯƿ t?h^s?U#Ԡ? r?|*-Jd0Y?'tH?ӿ$ڜlȞ7Ŀk 7$?ӢO)?33oſXęRP?.IO9ѿ0Na#?>?Cّ?9?\7ZEia?=I@*m|=Bz!`Av6t?Yx2-3? fHKMӿq!?F"?ᶾv?bwũE&ZɽAn*QJ*?m[pK?DC2?)﬜Q?ތ"l; ]~)逿F]ɿGiXZˣ@~t?@qlȿu?n:~?"fۡ?D?w)V{׿i;q@-?2+{?.W1U?MYTqiZR5ӐOA9m="6?#=v? 8؂?ϚV ǣ2:`=h4m"esQ?=.տ}jSz`Q$:?/'V$Hs? ?ѐ?]W5?)#ῊbirS?ZA{#?*9ȵ  ?IF?=YHQݿE`িWvJտ؎b$ q?g,0?̻?ʦ2#;̿Wz(mcAkΔ?g?LZ$z? Y{?JwՕ:en?a.sDp Яі.dz?]i}?cx?F0>B4ѿ-m?\`tl,߿Ȝ?Inpt̿ 6Τ ^?'k,掿pHuvAFuI\?sWԿ+?%L+樧sh?D?r9?>^З? ?%CRΫ <>?? FϠQ@?/:{.ҿ3-b`,ƿQW?x%?aSƝo? aѿH3E}+)ҿ?&Kv=Ӭ?8 ?Xݨ9DKA!0?!cW y%bMKTRؽ?Řn)h?.;?1M$vVUſd=VG { 6u%F?L|ȿҳ+?4yD?Q?S?q?ξ1? F=huMU*o?e$tTga?*'yÿ pb?OῨGymkqֿKo3? Ih?p"!P*Xj?VsbGr?Vh?e߈?_Tg?Y0ghϸDҿ95u9?Zn&?Wmr?xLƈ1ſ/NHx:O 9{?tʿ߸3?M?㩟Wt?~H_&?o13h?o"=T=?1??m$-h?g{+X dȵ?jj[p $ bNm†_*.ٜ?;@?:?2?(oEHv{8k]?eO8γ?Qԫ?6B-?EɒI?naિ~AY T,[ m/VbvX?J @t?8p鮿G2ݐ?4x8Uh]8?Mu?nBͿ6cE ?&FWAgj{?4j?\jl<'?:&+⩿6穿PfPҿp)N؃5L??G@Ǹ&E?M)Mpÿ+ۻg؊ڑ _a؎גJ5@!D?dx٣C?v!?{ VhTJ?cN?D⻁vѿg ;?rPj'{?&z*y?n+? Jh`y 0\t?y a?Q۾6lm?Js2?@-п9 Dv$ ;P<אz?Tq3T&a?пo͗?8!>?b":l(?jp?jҌPR?Yz2?"?` ` a@¢?KUﺿ7V1 G逛lB/˿؍(?Uu/)b?xLҮ?^ ƿV܌?zI?iz&?ʢ,9Y?}t9?27?`'W?_ٰBAٰiv4$?k?qqHJ?Mn?+ A?$ ?9j?&!+͓.'?n_rpYS̿`ݮSP?$V F#]Pr?<wr?_C$ :<*1X]qգ?(rD +ٿDbK t>4{Ƚ;  ?heB@y?@ſ1??45ҩ?ӣv?yW4ÿNӿc9l?Ȇ|K?6m%L?$U_?|HO?Ikh?~44dտ6\v?"v?$1)EV? ,Hy?nڛ?wp%?QS a?ł?:ew?W*_rvH}? dQ;MΙʢ?Ϩ>?@y?&.d?kW?(}W:i{6(v ?J?fĿoO?/-Կi`/?Q7DUÿ|9=׿b,?ɐN?+$5K?ެJh?U+S?oaCP ?'8GT)\8Erz?D<7fa?T~k?nh<?h(f翘45“?</7e8¿~^??n:X(c?mA?w빻? -ӈ/l{(?ߨ˿jZ 0^?]N 5eZҹ+O?lz?.l~@դ? $V?Be3?LISB%U?3Siɿ`t2n[Vf?:+?Ο?P?l?~\Nb?piV\ ͢D_ ˻?_q?Hf7?:d D1$ϿhGR?R?vղ?X?2m?T[v_؟?.Jwk῜a?s&^=x֣]D?m+x?0xd`./i?Rٿ-bws$?̯ӥr[;?+k\Oj?_jvm?, F`?4[_cj}) տ5b[?ȿ=S?? "n ?j6<H4?d8qпvC ~?fSI?.cr"ɰ?Pe*{p.?[ c?O?Ă4Nm?`qu8*ʿB~ _@2] x?p4()?̟G?3yYGZ?*4t3?LÿYLA?'f8VTdO?%1ev?񻿀{西. S%ǿW?i(=?H:?{+?\Fr??^>]?Ū60ݿ3Gs0 cTue@r$N?K蓿p)’5MOQ?z]xiDF޿z) 5?~r?⹽SgG,]y?zaj?=?zUc? ˾ޫs?/? +) םɅjjwſ *1L?,\ՠ?mõ"򘋣?_x~u\ ?y-?w?cR. {mK?٦q)Hgҿ?`p'af}?S!?R’?1 ?Pt٨ dd꿨.cx0?Lht?rn?sgq?P83W ?+Tօ? Hް.Oh[ͨ?4 ? hࠋ?~O8?yJz퟿џ9ڴ?q?rD_?L};]@ڐ>^?g?f}?v¿,@?bn3LGv? .3? M#?&t?f? d6Q?>JD⣿Hmfx?? ^?iZ[?Vx=?ScT\Oc?o&O&R~/ٞNƲK3g!c̰?`2xV?uWҿ**Ƣ`ݿ;gY? A ?Z7L\5zq?# 3M@Sb}C?2*Կ*g b\Dѿ`t?6(ʋ?l]?^ͿƽG2ֿc6?}rRnbr>?gO8`=kN?G.xͳ?h: !{?m?Y VѿM?\sw/Z?}ig噴?mh Q??-ØK[ܳ?-_c'_?<2d[i?x]?8Eda?Ð ?"BK?CLߙ˾?7Z n=H+ m¿\f^c4j¿X?&)_+?` wP?;οXTƮSM*l R?FUd^ȩ\>!?&Faw?h\?_>fv?*E6gvG9m?F?]&˿bi/ #?5{ oO?5Lkz?/b?,JsrZ2s&Y8"/3+vÓ?y!G2ѕʝ9ub@?C|%?"ॄ2?t~=H?Ίۿa0啿X ,?'>C$C% -w?$ ,?&O5?@\?y]T2ts]I`s-07a#=%2d߀G>[r~R?fn??/Oղ?\ݿUŒ?=ᣌ?etthf?u8?R٢ ?Ae}p?!e"^?쑆鐿 $,?! ȯ?tnƿh[N嚿vnTزlW$Z=6]*|:j?4 Ϳ>O?_xP`?^/u?/ɿG翸p-ϒ?q?;WR6?|5>?'*+td?jF2?v7y?f=h5Cqy? %nJ?^ UU/pnk g?({\ſfeE?ճWʹ/G}ȿ:?]ɋ?g{?mZ]?񏘔ʂ?J3?LT˶@tA_HY?ᚑjᓿ`y?r웿DxB&?SW>nFit?(O(垿Zjs!ܸ?֎t?m?7F}C?@ TLqY6?B:BG`RD& d|?]Xdf?ůbs',&Eſy8ߑ?{翈%c2"qNοR6 'w@?eQc£?\[?a(?VjX׿ިؼW?”?H}s8‰?`1ݰ?zJv?ωCd¿)rD?j&׿v_>?l?g?F׿BAT񂄕 пm3?fl?":h?S?/S?r?qmmo\r%ԿV ۉg>}?iLə"\?WNrX_Jɚxj}Jf=Og1ϿKh?|M⺿dr ?ZG3?Z؎bs?sY?ÔqY\ZM׿ ]!(GۍZ? v? Z ?gyb{D'@Mﮁ*_?v]EmVZ?6a?'z7<?}x|5xA>yҪ?v0y?/%?w CRzҰ?KYT:~s?K)+{u:U]etBiDX0ۿr,}?*?^`?B[?؍Lk?nn?l;fZX͑@oAL9?x2ū1?K˜FrXDn?z/x7^ݿ.?#X&d?אּ?i`?;?8Q7ƿ(J_O?ELs?xO?fdƩ&TK,l<;!s?wZ?q鐓P*[, z?\;ve?/:n?dl9*?p$,9?% E7ο5@T^0{?^Ը?^b?CCd?xN_$xmw¢4Dq?-aY7pƿWԈ?=?3}?6$iG?Uú?&mtLC0b?kj?! RE?N%懿~7*?CtZ ?foWS@࿚(.ȐCƿ2SԘ S?^lE?>_2˿Cq^¨? W-L]?df2Kt=eʼnl,p?+4} ?xxtA?-K6?H--Cӵ?Z﮿*5'޿bo=SS¼^w ?.>+rVX8?9ĿȐ?ATſ3ĿObҿ? aR,*2t?/s?zgmpMy?Vl%@i@g>gF.th6 0?:_;?,@3?ZKr'?峥࿀1#?I1ƿ={ʵۀXw?xjU?|̩(?lg셿O6|bQilqd￴~ϋ?Er]]݉ e?,̤N?$}?c?M^$%濹nRғ?$?8j2{- ?UG~?(c$?IZl? $;C?}KEk(Q.)U;y?|81Gҿ oLN?b'?︆hp7?$Ԃڇ?x?0ߟ;{ڲ5xJ䄿}XW[GkFG$4d?,DG*%l0^/ʹN_n?4NZп+O?s#/%̌?feZ* տAq?B??HI?~Pj?ؘ ?K3}?[1WA9f0?2N?s?@k6{ǿ,Q?B ,q}?/T ?8-ѿLV[uYW_;?hZ~?!*ol?^Ҋ%? Q? |s?t"?j BԶ>XP`w%=?,ӵE$N?taeѓFR+*fMNN?/-q[ݿ  v{?p ǿO {t^? 큿(\#8H*;?1 WZY*.B?@s>%㞿%?RLS?u/v:ވ9Ntbqn?VN?7?@g۬,2_w?k-?|˃GDʦk?@xH\?PHPYg̪(I+SԿ3 ?f8s̿?< Gr?MM οi?GQHĿv?9? 8R?u`m?bҦ\?nJJ(9ſ!'Ρpݾ?4?g>(J? An&mϒF,˿.}q/ܿ)a??.s}G9?v;i?J$S>?)'3?j9IY˘`½A[%@h?>??=?H{hAF=(?r-b?YED9DUƿ&(_?p?N wTA Oǿb:)?r/?&R$V_?::(zȪ?]哨?Eœ*HT`| &H݄?;)Vxe?1ʿTyxiSu??-?YQ3ſ>Ǖ?~Aĉ4?J?XVNo8!jl?R;?vR?pˌ㐿 ˊ/)=21?.ڿRG ?bƿvBc:R?[@B_.?h3Zka'?/K!Կ8|} $j?~n̴o^Y?AxU?4~?Û¢}? E<,i?e:  )Fz` |W694Gֶ7ZQ?髷1?&]Y?|Xeg?ͱK*V? Z˯?;&b%oƿ@Vk?P~ꁿFۮ?Es?wpt?CfX"dK??X 忍C?F8? u&GA???~߾W(dE?d88zOݬT{{|)f #+?a?ԕ?EռDZ?rKӿ}Ot?((?SQ_SR2?h8C>賾z?vE@6!FO'?oR>5AЗdn]̿9mځ?I?ϓ'?e?_WɿEr-¦0^4ۿ65w4?ꍚ1? 'Ǟ??3~?YZ`|4?dRpw<|dR?[^P?ͩ?{|Bο|i $?yf&V试?a@Ͽ!{kVz?'erQ)> s?1C=ӿl aRz?@\e>l䭈訍?WC?{/¼{t\mcؿ0lZ?o;$?aPՙ?+h/~?|:kJR:6c?aς?`B܊BR7i?9"Q6rX?qjV ຿gf?/dT8Ι{pƭ@ʿJ՛>!Mӫ<ѿmH? `<5S?:?!#G$6?E??s6V:V4ˤxPi'? ֮?SIR ǿ O?Jgѿ0[?$$;|wת$X%??2Ѐ?Gj?ɚJn#?jq"u?T%Mm<^߿.,.O5ɑug9"?ed 6JY?8"|0R Bk?qD{r:ͿD՚03?q~u?0ɽ?,(|.9H?&?R~q?@*VS3T)xkVqxlӿ#dY?^w҅ȿ5#)?Q?N:G?`;n%v%߿pevn?Cω?Z J?1N1Yv?,USȤ| ){?خ݄?E!;?0@;+Z{HWJi٭Tfg?+L?;w?^F8?dVyno?Kdy}?YICJAV֘Óvw>(L_F=?ZEU 6nx(=^?mb\ᅥbsCgt?}r5R)?8 !8葿]IH%SUNYs)î쿲Pf|VhBV̾]Т?fb?3&CT7?͆ിޠReZosJ,?j?m(tE~S? bb?q=:O?)꼴?G"S?x?(jſ\2<?~OKX?mRЁ?9`ӿ0z ) T?g#¿eFWFmԿ1HBݍ?(&Mt?(Zh?nkv(rL%.ݨh4;ͼz|X~|`RN?CT?Y?P$?Հ[6٢?CGއJT+.'Q&ב6F?nix?[C?7dw`ѿ/w?G?R* pžAdt x\?5E?IZp? yd 0LVnبqq ?9iƦХ?~>Y.ʿj 꺿|ֿi୥?3`Йٷ{ ?΃D?;?8?<j`4D.Zc!۔ۿ6? A.?YɚK`}Y?(NG}2M-y05B?mCrPpF?%O(Qt N?QQ??Q%?vo\l?I26dп*|ѪՖ#?oU8/ici8q?֔шH#P0u1ub^wп ?9AĿ_ ǟu?;k[1?>6 ?;׺?d2`(?3QR_޿lJVf. X?dD)G$v?Tk6_&\e:]ӡ?ȿ{5",PҿG@5J]NeChf'x? qPC x;?01=)??տu?Y_~?kۿpH tꜿSۃ?<)G? `D-eEWev?*=?;ɂ8,a?&cej^o߾ry?"T}ñ?4sg?pÐ?8!zҫd?l3t9l Q?֞¿gHYXVm?(UI?V`RJEhN{?Dw迴[FQVSU?DZ=K}_}?U>b?SBw\п0]PF?3+uF?e/5cnjĿhT-(| ,ܗd[?W ?,{0?0 AnN?Vuӧ?sg?}U?lqNK8?:rrJz?@3yĠ? bO?bє?ǻ?< i>÷ſ䵏tx6 ?lVuXk!j?o+?RGTQ?Q:?STȹDb*+T?HNp齿rL? YjV5qb8ʿhXu?~![BlV?sND ¿J%ѿ#?Jނ8?pN?zc΢?ȱ? @“d??ϵ#S¿ھ\-/94V,f?% KfYm?Z4䀬N>ÿu{g?7*5Mܕ'[?[@(FſR:@i?{pD,?؍&5@?KESx?-vȿ6YDYĭZmƿiy޿ޔY?`(W.)"?&o ?..â?ץ|?Jfv? *LTxdO?9Foi@?PJb ¿C{;ղ?`oZͷ&Lb|, ٿ_ `b~qڿЭ:B?_)> #h?I'p?R;Q@?:F?:CJ,UTW<,?O)ԅR1?D, }jXDY ?6k㿰ԓPX?bL!ÿf1‡d?G?pP?xǑ?@i ÿè6y|?G?nCէ忾5G 4_Lg1ſ;"`ѪNB^%? v^x?p< ?TC+?|ۦ?4ЯÙWBܿ\r i5?qG$7Rv*Yp?g¶??)""a³#?x9Wbv ڿڅ'&? 4yN |?gPw6t? ո?b n?gUZ?琿'v@4  QX-Ih\ĿrߡM?4أ5@&?N_p i?SF|5?O{3&Ȅ򿤿"lez9?e񨿔g6?삆\Oɧ?l$鮜x?{lr\9vD?׹t/)w)ѿ*+̑H6v?24|>cO??D ik?:x_?۪k6?AxJYs?^na47;4Vס7VXÿ ?_H?`:fo?ή_&ҿDO̵iaڧ?%"1f"$-$o?@ڃe\?YKS?n?J d.v&$~?n iDu=#`? yՔA=?`5a#̿ܦě3i0ƿ`\wD/?b9qdH|!Fw?h]P?[<~?Ι9ɿ?`zSl?wgpn?>Euy6>?0?(e?KS?Jп&cNjr(ɐ?~s4h|]Ӹ6~Cqkc?D?$Hh?D r7wG-q2KCS?up?ӿzLj[#y1| &߼?~ɏ}?DD`%S!?ۅ}?վAI d?S { x 7׿>a(g?P!S@69冿4F ??7~3'&Pk`A?eJ$5]ڿg}qQN`m̜tʏ? ;?S ?P?y1Ϳ7_z? B?HjYj ?O0/LX?80?^\@{2,ѿmȹ 5Npg&S?Kb?t6Du?<~Կ6$?S?2 \:}c߻?I?Y?#P:'?SV?\ J*?LGLg U5G?Re?nyF=?6v?"'b^k{U?41?j`dǁ ??A৕?fOi+dј4EB? ?W]J?$J{¿ h3wcu?;RNr`;?hsa] (v?eO?xL񿡓ۨtE8??2!*ſ^@"?ݵylj9>??CX43fFipοo(3Կ9h?zT+ĿT?i2h?_CvOX?@ϔ ȡ?F?JqPR޿p-]?N>?GLN?Bz!^b {?ۆ+C?0`Z?PR?B7y?&)% \*R?uz֗ y?_Rl,z?M??ndf?E>צ? ԬYu?u_-8qcm⽿.uOڿO {?PJ:W9A5Nn?k?A~?[p$?|HŶ3P >x3mL?cMxGH? V?[\ Үsrm;ը Uov?;W4ٻ=*/ߚ?]1gC? ?qsjBQ?x0BǏ9p? Y ~D)? HƗ]?% ? )73ܿ4(غ' ܌+AпOÿy>P)8z;?Kɒտt)Ǽ?'~-s? ڴkhu |ƿX˽~LR<:U?|eU?? kw?]qiР?"ғp?G C9I7)'뿷щRX?z~Ֆ?VY4 ?&S`Zuy܅?Jf?H׿|C4UX3HߔUOƱk>(ꖿ|&}ƿf4]e}?&w?Sz?C˼3O|?FC?{fԗ?g%A4&ugy1 ƿ? `wNqUל?aW 8?Ҧ$JH(W?,^1ԿkRX?ҘSi?/-?+  ?G{m*m?b;A?P*ƾĠ+6q׿TԔa+ر2߾?e23?XʼnT/~п*qhԡ ݙ3ڦ?~?MH7g ?޴p?DXʁ?X?h=[-6^:RE09)4?xpA7?@QTďпٞ"+?)!a?Ȩ,ɿvEn=]?h,I/?\xa?mfE@?X^F1dC$V?ܸ?, 3ʭgd>ζPk۷% 7u FOP@?x$m%ܽ =nV?Dkqo? |ԅ?TV8Dg"FU~?[m_y?)QCJ?<`h?yrȳ??\a[Ku3Kc-?|8V#Ր> ?D6KM鳿b 2Ok?`ԁGQT?*!? >c?@hL*lmuHiθu>ѿ@2[BBlr D?4wsJUd?C?C}?GW7G?Q?]h]ۿUp^iInYjK~੿J?3Xƿh€ L3>R-?r?PS? Վ2h? !>u?Z{˳?V# s?n8m5غy5 U?RnRfc.ʿ"S6G?Tʀ&Eݢ ?8uox?̰r?\Ba{!a⿨ju?-$P?0̻A׼JLdn`?He#fct?1?-S_ҿ.<v(ӯ?SU}7s"{56'0Ӣ苿?lN? uǃ \=$䪿m\/ߢ?JN#~ළfO ?vp,y?ؓ v?c<\?è쿫E֔o2Ӻ?$\iWz?6ȖHTS)X!X?I8~Կ<P>|$YNhɿޫP89zУqZ?n3eE2?1JT?ZD?<VЌ?G`%\?cAk?a rp?j8F?-2\%?+ؗ?u+P长 =1^؟ fLx3?Q6$裁?uq~ÿU(HE?ٿ BBt?_ ѯ6|iQ|Yg??PKJH3tP}P}2_cgau1_1000_coefs.npyNUMPYF{'descr': '\/p㿭Td?&,=Կ@TM(ĿӒmB?Fʿ,80гҸDϿ|yx?c$g|?Ɖ3blJPYq?|uN0?Q?G"i?X<Ϳx&U?~ ƺQs?@o=lHķE? }z@˿2uս9.(пD ?~]$GoHAKHr?ѻ?w?@i~@˿[e<?Ͳ?&{ѿP֒?hn ?ڿD,I?Y(L?]?1? Ҹ<ˆe?Ã=Z>O{?K?ܦʿrdZvƛgǝ?inFTD_ $Y~[kܿ&2q?Fd ]ٿ ??{**㿼0?_Ix?ͬ"?[T1}?x,hͦ[莞u?̿`K?[y^Y}8"Kn?GE?X*#'Iۿm7j'츿>qߢǰ K?GZǿ~*h?娽4ѿ)FÚ?e%?i%-?# 鿌t#N??տ2? CSpo?4e#K\^L{0?~ rU?_5w\?N$j?ӿ¶?Dn[?L ?pe3?CT?*)/T\@ZsE&? szWlp?ݱC{{C.ӿi俪QmP{ӿ?k?r7 pпdFFڿ$=mο`v.Ln0uЦ? %Y࿊CD@l?Bȿ{jZf?MKoͿj_G?ѱ?sM?on?l Jn"r"U?b#z9Բ6䍺p?]aBP׿ؚ7pP?Bz迱t?L: ۿ#iO鿚x]Ͽ@Hfǿ ӿ@MʿD)o࿌a? 53ۊo>u?iͿqNʿ?6ۢ?8ѿLNͿaO忿*.?/wE?oP?;YBbt?>cR_}?-&F ?3?H,?@x4?gԆ0]^|?y&?nM?F୶?BL5Ŀl?_jVhi? Gu"'!E?Ƣ?Z ؿ8ejY^(-ɿV㰨@n?օ+'/ɿ} EҫKz_7?^n?΅k?`k=?Rm<㿱v?#?n'?d틌Ʒ}Rwῦ CM?lÿeܙ?Fg8S3?r?P`I>˿)|?`cѿ?|꽳 "߿G翌̒^$O ?mM1vѿ33"6Ŀ5)Ϳ/߿vR`?l'Wҿ''@5cֲ?eggῺz3ϿbuKϿˈL$-\K?z!xk=9?&`!࿄})9? 0x%oD?!9Ã?Ә>z?o?5nR?RHm'On] i%Xпݕ ?TpJݩ?ȁRڿG,tU_(ܿ56y?j?٩Sۿ‡?6։ߝoY;?ѿmQ?]T8?HI ?ow-?BG e[-?q-,޿sV?Gu=´tA7pV?%ӾS)?x??K\п;Y (ʿπp@Έg/?%ο d` ?_пβҔſ6qtſvF"?zF?z1:$?]^c0Av}̓ &`4Ζ?H3I(?W6Y?*%J??xKjп| +s?ŽroaXuԿ< &~?sΪrpB?@ͿG;?=_SnF;P?^@Cj/?dTy?5Gէ?N'?! wc?W?{^č0IQt?OoH?j^m?0!ԣ}?.,׿$@ۮdz?bRG3CP׿KUpԿa5Bv}?q ?iB؂ѿ]P ?#UQt6v%s?ٯ}翗.$|?F?{ٿPvvyOڿNZR:G`u?-~ܿ|?'X?r8?k$1{&nnֿ(L'6T Je?H?_1L?Ծ![Y-?ށӳa no?v^rHm{?4w"vz?' ɿ%#ۿ`y!eCDQ'?';y ׿`CO?kӿPe?Z~~?_-Ɗ|?Lhn?72&Q?H?p;ֿ*?59?dޯ㿊[eЪ~ĮEӿ̳%œ?Rb? /??%ҿ|Eo?Y],O?HW6q{ ?nj~ړL?BDQfF0ۿSRCl}YӤR?HSP# !?m?9\n ?r}?HI@OP?5? ?) ?ѢD}?7tIr$*ֿhra! ?Hj?jaHȿZj ?QT?|lܿ0&*F?2.$ ѿv]?qӿtX,?K˧G1V*Z?.) 84Z>ZS܀RFxVп!0$w^rӠrZ)w促Rۿ l?Vr(?PM ?ѡQ߿Uf3#?{)D@ݿ-7Q?Wp?] ?b|?SބΠn8?0P$Hk?NF?1c,k^F?Qῌ#g!?žJ?x?:k%ǿY@AԿ~}^?;??='?>;|*z?˧Q-O?ݐi% N?=.=O'?n?!x?I'Cп޿=Ui?|#rypCa?DXbͷ?f7FI#/db8^|۰DF@?D!v1-?#ڟ4ooN"?^8Ii L4j?pcTgއۿ;FX?m:̨?/ibI92?f?m}?RIYῶQY[?V1K?|88?P l?$r?Ѵ7*?/v 0?r)+"?nؚ.t ?|MfT?D8:0e?pN\Y?/SzwD? G~Uݿz%?:-y7?*&s`:?GWs??D-?(ek؍=?F-(d?$w?s?:Œ0z]|S?n,ҽ?l|?L]?8wF4?w=t Ή zo-?8ƶkXC)ZӿLԿ[; LL?yUܿ΁O?XrJdؿ>?W|1vx?1F?8?~"1y!?+M,ۿ?U?+V5ܿ\"߿_gw$Ŀ:־&ֿ#MQ`?v}b8>ֿ#Klo࿉%p~?)ȯPQ׿WFZ?|c?fR?AR?44ӓ0H,?Y>R?i? S'Lզ}Rr?]]ܿt61.<"|vٿĕ|{տzyj)?sP3ȿTQo,?xJwٿïܚ?e5Xh}?Z=y?DTlD?J]7¿OML?DR?jw W?d=?5GA~?~]?J~S*GPÿ3ǿtH?;?`02!1? ǭ#?ho+uq쿳!ѿB? %f'cϬ'7,`>?fo ?J XO?6A?9?5?sO=ҿ,?9qiT?r6z?q2 ?Ϩ:пȩZOEZQqACܿ <_Ě?Sq~;hž?Q/r%?&ugmj?1'?2P޿FC?f|?rE?(yk?GٿZ(Z?h_?^AW?(?%A9?;1QJ?^J?8G<ʿx?<UFۿPL?;77Ǣ濠[K7?afLIT-z?5jMCTޛѿU(cR?`?M0t?'TsJGF_&19;b?C 's[@%i~ڿ}/-꿥敚3.,C??yٿ$?cr,쿈Uҟ?I_z?eս?=E?|xۿԱ?&)܎ ?9?\.@οh nJ--sѝ1޿#y8p? e˿@Fѿj頲Z?chDյL?.wӿMHG?*3??&1;?9+pqf?˩f?lV[?J|)Qn?Dfug?f2?ā<@FR? iWo45R #Wݿ ׿l̞J;CcsT"?b}ֿB-"LV?~T*f&?eXռ?B$y?b?&iֿ脨J?J_y?s,.X?*ӿ0u6ο_޿R;? M@?!?cm~8HaANX)ƿ3п^2XѿVD?-H̿r{?Xnǿ6XF ?$iLѿӘ?ئ^Q濲s2᾿u\d ?jR,ۿǎLWv߿@Rt?=]?bMI?+ο\Ps9S?"a; cӿN?Fէ2ٿ W0?lR˿|%?bXy?B%`?8fĿ#\?zWy?*f.?JlynWͿ_H'ݿΡa?E? 窷ݿfQ?Tw#r4ݿOͅ?fTW?N?F;-!=V?fP( cP9s?K?CYI?@1i 1?D㬿~0οv?_jܿFqUѿxI?Bѭ1ֿx|?wQſ^Q? r_?+y| %k?gؿUJ?ࣷ[?ti|l3S[o6Wɿ*F v9nO{οr|옥ɿ? 펷*ÿ"" !?>y̿!X?u?-~?7wΩIM?訦8Rr[ǿC4BQn?y-;aȦ?DD㿟Raο? iNJx?<} ^3r? d@`v6?" ᅧmy#X?HihFAj]ǿ ᅡRtF$TVII׿߇ `bԿ5?Zf?B TƿJ]?vL쿄m>?BI0!¥w@RHm!?`53K@ Ƒ?!~?{CCm¿ɾۻ?7FR߿wۆ&?{rUD[?^׿塣֑3t?v?,Bנˠ.JF%K&,տxEܰ?E(JۿtN˿@ 9߿}h"ֿfPDۿ,-rUʿh14D??ПH?joW)ؿզ-K࿅/Yѿ@3??TLԿZO?ܽ?'u?| #?o.4z?oEfv?? ?r(пRǢ?y4pͿzo5m?"%?Gn?fCq?nҺ׿Eqt?Ex? t?; ?N:ۿbp?H^ӡ˿Q?3vA-?n.?6 ?k)ؿ"`P?;>l)(I?"2t?`c ɿ\iڞ&'*;#OKUy?EGտ:4~>)ؿHcӓп?LHj̿yLl?adu͞O?تQȄ?KFZ? p X 8?h8yؿ7$?즿g;?( .'ۿSt瓿 Taӿf?v;P&?l?|3"zR1vx9YjbϿxM?M?3D?v?KҗпD)?<hnO'ٿEY0w0}N%M?~]2pٕӿl`o/WH~fteRo˶?xgQϿu?׉Ŀe ۿS3K̿ ?@4$?Nyu?.۰?փ|&Yt'U%E?l?'Sf?7䲿cyJ?bBﻢ? C?s >rE屪?(-?68SH?"?!ͣ ?a?rۿv?,eTZ ޿ɂcb;?bФ޿6S7̿:s#x῅CU˿zkd?kͿK\A?Fѿ[??̀Ϛ?ض?U?ۿ 9?pfʪ5{? U ˿ۇ"??8}CmT_a<%l]׿^ KݿN>)a:I?p}Jֿ.k9?AAƸʿU?|?*X\[?6wg ? Sl>? ^L\[A3?́Uɏ^W`!jK#^??2uDIs?1i S}?eۓ?MrF5?P+ aUu߿Gr!mLq?Z5Tk]>?޿a%?P1_ʿm&ts?f8؃?]G?bEN?hIS˿hӀ|?A:A6?üNr@d?)ֶM5?*!4"Ϳ^Y%п!?g>/ftN?dԿ3<л#y~?&N@?*V[ɿtfE?)]?^pV?Jb+o??u=Vȿ?x;8vѿbk4w)࿔|ɶ!Ϳj?.#ӿ; z?cF俠BQ?XQk4_?CBVA?/9? Jr(|?|q?{z?HJςlgݿscܿͫڿ4h?ʐ?|f?Bw?JJ?%1[@?ՠ~ސ?R$?T"?yd!T?(ֵWS ʿr:C\?IyX?ݳЙ?2@^޿W5% ?+񿠑U?ے}C]L[!V?w]U:?5#zտqfIZ ࿰f"ql*}?6`^5D?4,h2翲4Թ>?nXۿ Y?^p6Q9⿵̲G??2;Z.?+!?!mUE?H F?kR?z\Vl>Hi4eG߿Tݲq?P? \pOLB޿/bnпWY:oϿM9(?f bv|+X?:-п`?3 Hjɿ OcC?6=D?|Kv?ˍ\}?;ٿJ?,ٿ~]?M{t|࿾W4J$Dٽ1^?\?uQ`࿎H?nܓ]xȿ^ `?a&1?Սqf?Vс?3-zK;ʴu?ja?Tspji84_xٸ~R?Sb3?X[ Ncؿܥ@?o]߿Zhި?Jѿt*|k?ҿPdxS?]@>῟?ٱ迊q?G=|9?Wտ@4>?tB[3Gef~ ?g\۩s8顫?͇gֿ0&?o4ʔg1)c?ij0^?z?wa_3?h~͕̿"}?ӈ?Jk?7rE'?p=?T@¿Ȱ[R`?A4ÿX)?>tl׿FcS?/ʜs{?쫛N?^RX?e$?{J*?wm?ȏ_yؿQDRl?uؿr'y?gۿݥPͿT׶D?O!g?T?mRy0Ҕٿ uՙv޿AE?3}9?S?#ο ?WH?Ko:տL\x?$?fiB?/ g𿞣ԿDZobw⨐?uz*?ʬf ?P6}W)Ɔm.?%3CZĬ} Q?5V`L߿PZKʶ?p'޾ܿ9 *OV8?s2n?r?$2d࿱_ȁo?f`؎?+[??dϠ]6bWP,?T%9VP?amgN;ƿ;(ܿ^d󀹿3!xx? п^%#??#,ܿ6. ?E$ȴ?W m?Uƿ?I5?Mq?:3E?uo7Zw}׺vS~Ͽ5@?Um:[g)?\CoO?[?!MoT? Y1s?PVNÿ3S?+ ^vIXIҿl5 3.ٿu.nf?b ?-S5sh?2iǿ4¿5ÿ 1͔xq\\AJa?];?9(e٭?6Ϳ bǿ 2 Ŀm!s?ӿx:+?7WOǿf_9?bh"|~?423?'R?5 --?(}$?O5ᅱ;^%B?G?^7T ?҉}Ŀ2Z߿7TK׿CG/Կ$OŖ¿T-L?s#ѿ7|S?&j;?A?{&?Y-_c],?A޿$x֍L?h?X鵿XAC'ѾWſIs%+࿍}ƿd(>f  ?}eؿ'fנ? ӿ9W?߉d?rt9 ?]`???{>0Y ??qǿc_$?Gqd?b!Dݿߙ=?X{A˿d2?!= ?Q?_e[?52 øͷ4?93?l$ ?{$$?p_'߿*#z?4mז8lJ?<R'x.) ?'k!7}Jm忘?ETȿ4?ZEæ>0D;?ڐ}?o0?)#;ܿҦgv?(aĿU"?1)Fo?jfе"?6Au?/X?r?X0zy8z`c|?6ϿTI?^h迤ڣ\C?݁sxCP_[?}D&>WíuZSLu@?}kпڝ?dܿu Jݎ?؆[?T%m?19奻?PV> g>N?'޿-n 2?Z\cp׿<৚2ih(q?7&{ߨ%?@󜙌rgy?(Uؿ Xÿ^}^?K!?-aL?C ?Ӟqǿ=?M3?>juƫ?wfhZ?ũYIJ?1?T}ÿ^+ފ?< >kR|'E?,3 $yh$C?7Ԑg?H#=?RqOY(-F?tS ?De?&Op>LܿV١W?g%?]L?"C? ʿːPL%?.D?1/f? )??z忌Tu?Zpn*?2xH23? @nPݿl<3=?kڿA4NVo?/|Eݿ8dJp?7D]% ?f)0G?S/?)R"~ſ5=6ҿ+R?H?k|U+ݿi?k FzB̿`ofH?fd}?]??Hy ߿НZ?CsW29J?-uƩϿ`Jdu}!z3CS3¿OЙ;Կٿ gHqѿ $65@{w=?Bly俍Ъ7?;^?F'%?|C"ܴ_?5?οOwΡUy+?@' eFE(V?=7JѿqvǿT(@?ݜB?Zk?'2ERI=P7 ߢ񿴵?hȿ 59\UWkjMؿv7s-ܿSͿ)<ϿRqM쿛j?PͿc??PMaw$ ?l+%??FM?xpX?Z`q?iQ dGd?ۂѻ󿴎W ?N/sv5 L&^ Aڿn}y?H Iſz ؿ!/s鿀shNοL#3?qW??GWR?:q޿X6?hYſ礵?ԁCp?d!?NP,?%)쿤?tSտ0w?ʵOܿ3K鿤 F*۠bmٿA~?!ʗW?kӀAi?16U?␙7B*;]Wd?h#eLοY)V?W'[;Կ4ԐU L&sjпPh%%>\޿Ղo.`㿒e̴?;YTEa~?K#2 ?ZȃƿYOѿw=Zw?;-?,?).ӿMտ(b@ 3z? CL=?6c(?Q`y@$ug?10xPR?uOӁ?ls뿽^AAп> 'Л#BZ3QܿPёTOg?@ؿEw? Duo ?q?N?Nqh?[b+T2|(~̿(ɤ_Y?Ɨ?8h? EA?)57-?v?g gL^f}?Υ!]5k?+c2+?]d޿Msܵ`=,?MC,ѿnO? ڿȢ-?Pr~ᅡh࿊f(-{ݿ/EG̿!?e󇕼 ??LΊ0K࿸s?[,ѿǯI?~⩌jԿKn?YX?Ejῲ-e^տ;C9? 6yoƿl.(?*?>?>=H?wHe߿]e2?QGӉ-@?@ ߋ?E6Eey?Uڄ팱!?Dj?hd῭(Θ?{«?h mxafܿ=ы PSMq ? ]m?Dߥ*Ԩ{l?9swGI #?N<_m㿄̊S~?`&Pῦej,{.T׆R}0v%?,pG+5o4?Ge??dWտ,x7? jѿ%?pX %_X忾9KB%ݿyi&ۿUJ= ?:* b㿓Y`?1#ſ৙D(?^}?vLP ¿?kG"$Xi?94ɖ?huJ꿐QFI9>Pr#S;2+?G?q,?F&b,-0Kj6S`ſ#z?p^D[\p8=?3` ?Q #?O]-?sg8=G?ȿS)H?}+-ҿ@Z6ؼo;Giš1ѿayɞο꺄Eÿ߿&;G?"콿GC"?$VmPο ˲ZÔE?4[ERo?<o׿6i', ?3Vq|O=?EL~$?e d?9Gb?%yVu?#?:BeT{ٿȮC󿒚!տIeZ.+ڿp='ʿ~Ő>濄T7?J _? q? !FԴP]>8?H Ӈ4?Z?S^Ͽ1>0!?ӿ?è6пدf?"p)߿f. ?Hk9ܿ.\ yA͡޿jKNWFֿ`-J?zTQؿq|J|?yP9^k? ?@b*?m4X/ҿ-c%^?>O9?' ?\6,?({F?f٦,dod3?ÎL>?s%G?/׿MT)?'`-? mx?aFp?\>^?ǩg!3m?O ߊy?+`Ĩȼa&`;?/a6ʿn?o-Mi3Gn9.?h$=?>ٮ3g?`?]ݿJx?%.j ?VG|?oA ?rz¿)q?4!;տt)??D$o.L>?|%@R+YWο9[}ǿ6?[c0UbÿxԿ" ߿:%q¿n3 l?`Di@?Qr~4;ԿWE?鷿T?r?>Ã\q?Y!.?L??ThFz-^ܴ˽ l3!?Qy?>+?QKk*谭?O!CЕh~?޻翟;~0濓 xgЛ\?와'(U?@KѠ?Ep{cQbױ&J?C9?dL0>Y뱿} tɿ}1?탒N ٿk-?+j]ӿ5??T*K̿'s?2-?(d?I[K?zֿ˶P?#Ŀ"& ?HusLckտD/n A? ^S??ҧv;-?Y|󿌺g?Ia=?Y*-Uyf/gC0ٿdEi=? P7My⿊EۿG?L\sy?# ?%޿2?t]P ϿF=u?{3޿"?)n,ῤR~O?!w¿6? |g(?/.r?J:?@l'ѿic8?X?Xj%?#(eDοJ??HP,=K?$>ٿLس?!sX?c{Y`?.L`\lտтƿ?n׈?  ?8ѿ@M_翦,|=NWڿQGԋ?f#߿Ūq?-fiR{?,Y?*C?*N?eGidÿ n?O`q?x3?Q;ݿhW̿ ϘL0\ÿ; ?Vwt>?xرȿ F?) hH^H?OQN?fjEH]Jm?yen!7do哚ܿK|'? *?jd.Sgjؿpw3ÿFڿ{X ?*auwJ׿p7? fJ߿rh?ڿclJ?b?MOb?ުF!?Zx[ڿ!%i?W%䫇? ޱ5߿fR?\)y'?p0ȿjǢj7q&42 Կkv]R? * #D޿^nxؿwP1׿}O`?6"NluJ9d?xHؿ٘UT?퟉P?BDN?8?%8GL?aE?>$xȑEý?i%K#???0s)俷<7 ڛOa?~k?1lٟiO?#awY?,p񡨝?7i[[?!`?>K??ƨdؿڗ>? ?p.٪??i̿ê*?_|xVB2%]rz?=]󿘹4? @6,!¿r𿒲 Mߵ>?y@RC鿭O~?-n`dM?q)n?jYT3? ?][+Ik~?*[q￸ ?V;f¿;6ϓ̿o sJc?ƹ?5?.@=OZ?W?Q[z?Ȯԥ,ʢnȿp׊2Tcf? TR?˾#?kt_ըW?2B )_ѿ\rqvӿ^?n_ Ͽǿ xڿ|li?QY7s?j`wԿ>H??ݿúr?Ny?' C?h?Oj~׿6[A?Ͳd}3ۿ?L+O鿫賌ֿ&Wl$?M @?{ԗxM b??|Yݾ?9(?^;юퟻ?DȿI?wGo*G;οg\*' ʿ6Կ0" ?ɮA п]?DžпSϘ. >?:"g??ƢC?T?]ſ@j?%w'UhZ?Ȗ*;'οID/$HpEC࿙*?+l_1? p#׿"?dv? i?Y5BU3? ߈WWJ?3,߶?PYȿQ 忺#XE&"@/?"ѧ6˿To(?5D5?3}C?@пNkDI-?|?rO׿o❎8ڿXCIq[R|-(?}* ?!#׿k?-E? Ƽ?aX ҿJ,п\.2 hSti?7>fg㱿u*Iwu_?t(?0;ӿ+(f~?!Y뿑?,}A$7D?[x]ݿ&h?iRX?x7??*&V?{?l?5˙?Y;o_aÿ[ѳr'N6?2\?:=ҿˀ~LȿS٧ֿV=̦Կl'm`?k 9?gҿA?nkmտ7?Lٙ E5?oEN?;j?h>&?–fF}b?hzڿX6?43ҿgT ӿxx6jۿk\&yɿ.?+ 8'?õC?I-׶?۝NBJK#;DZ?V@a쿰3ْ"Ɖfxտ23jg?% οGA̿q p-2ȿ FY?4ctqji?Ү s@L?]v??e$E ?{K?!j?0E?l?\='wK-Y?Y,.R=? ,DY psw,.|q ??|տ: ܿƃFDEo?<׿6&?X(W َt?hv^J?:E]9~?Fe?2?D~ԿƖ?Tse?5}A?6zh#ۿ/UͿ)"onпq`?E"? ˿c3~?לkɿWվm?A]V? UW?⯭?xMNy"ӿ5yn^ ǃzs>? ?Р/?gNU]7ۿuv\?E'rdſE.%׿-Ҋ˿8L t?NOԿVp?ـ?K7ݨQlƿ\97?f. οy :? *6??ȿqiMog@ʁ?Xp?oBĿRa׿ s޿BU~ÿlžu?1-c?׃x9bӞ?SfDڿR&?BȿT"?/UN?=.V?Xk?RlypTx?exϿm#(?#_V?0H݄ٿA=lܿ{lY?"?+Joп:׋^C'Kۿi4ѣ&`Nѿ,+<믿(+?V #Ŀ{>h^¿OKɿ@<{^}'? !I?:[ҿ53ÿ <'")"?@`}RYǿ64c7?;{o?g[*? ~~?l8:ϐ ˵?ɔOj4#2?1ן ?zpC>ܿ8t Ϳn0!?<޿H=Y?Kl|뿢X|?Ā\?YJS?@%=>/ff^ҿWM,=տ~?!xW޿7&C?\?e}[p?9u?0.̊"奇?s?AJ's?,`?`z|5}¿! q ?.Stk16;:l?Om.Fտ+I2e??D?G#jſ.׿?LZٿ19!W?;g𿗍^7?UmL?ǖGsM02Ͽd{S迚T4Âo߿s?c ?KGٿ'MG?̩M#Α ?p?υ?sŰ?KO꿤fmȡԸ3ˇ?/ ?c9?b@aa'?l=п+2 ɞl?k?:W?6n!L?Y]n7YN?WHJ?!,i߿ x3Ͽ@t1ա ]?g|ʿMz~qǵPb|TA?cT]ݿk)m?pk6hV?4S?M?wo["?N¿ s[6?@?m"~?tPٿiَP ̿ĥiQ sp?bҿ;s?W/Oy?fP *Z?JF!=Ït܁$3H"ؿZ9I3?bƿnz 5;N?Ocǿ59c?8W0&je?PdϿA`$?{N-mϰj?c? ]u?Nv?&-?Ƿ [縿Gw;?5ꚿIUU?묉Q?p ?f2?2CrɿM~? ?3@SUKΙLAmB??0>QPdǿ(7$&ݿV9"ǹ-ۿn83ƿ*G>"?avȃ&ۿ Ήe?ɴuKJHG}kGѿ@q̯?j8%NcԿ]&}?4>¿料ʮ ?c /Rp?x%_U?4W &?iT^?wDF?t&?)UJ a '?s%hɫf?Ʊ[fÿ[;?*@X?od8? )8/?lv꿌Ä=?pտ!r?W'?z2ݿ6d\ f?GUGҿx&feWH? ?ۯI?g gԾGO@v?.̰n?w4?&?hjrxMп u+fϿ|gNHa?F?O%zH/`ۿ&O '(?8E]=W2?صh?.dѿ;co]4oϫ?cfȌpsIT?fؒd?*'A?s^ ͮ?aݓ俸&X?$ ÿZ{ʳ?# =P y`.ٿ]& KKƿV7β?LCH,MǿpX? W$fؿ-8"?(Q?gbƐ?(3?6(wz=ъ?]8_Ͽʠ?K]/׿?rfZ ?zOĩSǿ V>bܿVЂB?l/ ۿe<}`)Bq?^?a"_?keٿ`F̿i@ƿ1z+?pοnje?>b _$% c?C9՗?]q-8u?B?&?L_z? "1ӌȊ̉6? _?b+?Y亿r?'z?\˿ww$?SKDYƿcO,N4[?>̿OXX?Ͽ94@?&>6$[$?{hJK?hVN?~a?VyF?ﳣ?w=co࿷r7ӿwĿI??Giʿ oP?r^^r0Y?(vᅢkŞ?;vn:=Q!Vܿ UH@oLϓ?W.K?Bg0迈?FE?|+Ȗ:M? "?9ګ΅=#?X&}ؿ3@5?ڦ{24=sdkֿ`,w<򿫿riG?v~?.QɿL+ܿw' UXaᯥͿ:?6Ͽʟ<&2?(dL?^$?QJO?ԔE M詿;Jמ)-?|gw?940ƿNTϿx}!- 迴{߻DYͫ)?mTg+؆7?*52_n@IkNῊ?"A$?>?ea1??? q俛` .es?^4?v?`|R|_mwοUM?6?uw? ק)d$cG?;u|I"?4OE ki?;*ܿ.N̘BF*߿?܅o?WHalm_տ&:[-]?--5Ng ҿ<6>ֿ~s8ܿK2]%׿'JĒ쿑?,Pl+}ʿZp?ndl ![?f0z(ſ:.?PHLaC֓?gx6?'Dzi?DxT&?C 6Rؼ =?!?z'Y?5^?͒Y߳$?ub ȿzBn?࣯?=R?O g;:`( t?n$#G? ^zV?͵Hֿټb?zjfZj? ^?sjm?H>YZݿfu,?*~>:?ÿ~Fj??}"ۿlP{ 濣!cȬиw?pp?Rj}߿ߐ҉&e?[ÿ;[>?'PY?Pm9?o dkG?p?#豄?ǵ⟍"+ȿ Uei62{Ic~&?އ#ڿٞ!?Aso:2H?%ݼ?!'?~|}H?e5t akdJAN _Կ!XDܸ?]CަͿޥ_7kK?L'dH?| w?(30!ͿqXn?KRy?da ?S?'sPfNÿu =k[-?05?.ܿV@J?#ݿ:Q?0<;?6?N~"87Cf jH?,?p?m`yʉw.?A ?b?\BO`?ֿ4ւ?_Ď ?c. ?b?*/怳?y׎3ÿ_^*ۿ೿|?w> 㿬 L?H; B$Q?HԿE??p*?{iW ?R?Mk;.ӿ%h?%{?B{胲?O)O)aaѰ?GT6+eY?\ gzNp?oLł#*C%-B_rLCFHA>2_gaus8_1000_coefs.npyNUMPYF{'descr': '*4]^??x/?0C#ou?\K̇Kk%ҍW ?޿bR`?O0?XQxm^?BA/R7q?wD?UG ̻X-пym}?*'L=?T2?u?.,;x# ?#Hɿi?Y nYx? GZzsO\? hjۿjUۿ,^9nF?|{?.K\z㿪$X*< mvcݹeT?҃2x?>3Nڿr7ڼCΟ-?_ K娺?K$orƌʿ <:?0tg ѿ]C@?^(?⸾?bCQb]hR谿!Q'uQ(?J^+ڿر#"}^ۓ?H п~A^?b>m? gQ!󿶓 mп2A>?R7sĿrgϕ?fE?`I/zvÿa9?VuI׿Kk<,?δ9=?;o/G'п16?4?p\ҿĽO')a?t SJ U/-˥? @fҿR?g̱*"3?[ ?8ZjAT?_Կ>?q*?7WI|ÿ_h٫ɲw3ú?ʞOx?)2ѿ|w*b?}ct(?6p~sÿR*&?Ȝy̿z Ů?iRR c?5‡Di/[m?%ǿ?pdF?+Bտԓ7t? <}j?Cw#`Cֿ2%F??hHfտ$ t?l 2e?W"?j,Կ@o?EBݸ?~ ZC\檿 b?>aG?\[wIҿ'[?* I㿊X޿fopG?\G?'EumL^ҵ?fX_ſa Ŀ]9._?c%?hMCqIԿd-)Q?qiԿ?K?=j@Br?[eS?bt׿y}ϓ?L9c?䎜v2+s2?U8F#S&տ!`,q?A }ɿ@A+?M?MG<.yh+#a?Ѝ;+п5x)?*mn'?$R㿆-ʿL߃?^V-}?]1~xjhH?1hltӿeWF?7?l*XDv?IͿ`]??N} ˿"t,?3?,v"0+??Hԙ ֿ[6cҿ?n^m- ?<](ӧpvt+pe?e ޿ J?f`Q%Ǔ ?%H?5~ؿ ;]??(;N@f[+#/ҿDteɬf0m9_? J.7?GZ?$迀 "{r?Q,?Կ#7?gL?dLA Wq]|?|rͿi>?X?CԿǴ?&?&LH濐O_?EE@k}ܣ#@6g?qm `࿌-8?9IFsN_ϿN?Vᠿ 7?F8p}?LB@oj N Lǿ^u<|п "\gq?$>,x?I%?.(pn?ſRֿͪt?Gpa?3h'ֿ š?񵿮x#w9u?O?TLBsȉɿ`$V?X`7Cѿ:e?L?˾EBr$ѿo%+\a?`0ů?R0ſ6F_i?ϴο̿D']?X7?k߿&M?o_, lyT[F.?~ ɠ!FXV?l]U5󼿶b?,N2 ʿϼ?kRzRɿ!\@?:fDXu3A?Lߥ0?eRܿ7 ?IΥC ֿШO?C,?x$1D4?YpOܿ%? ?;ſЇfɂG]EG?M0B?h[\E߿vʺ?vL!?8Ԥ6¸?Q*Ϳ<5+R?|O?U ŏqe8_<,Կ"%k޿O?3(l?[G̜̿F\XqͿ^3t?eU鿧iNҿSh?;?>(IЂ$!>s'?Wo۰ԿT9e?(?I31O u?ޡ2W6?-NV*ٮNڟ?~Y`5a_d{#GT?4Q5㔿NKî,¿,h\k?RyZY9Uտj5?-v?MtH6R_qڴ*}]?ȿ*?8r3˶?Xs ٥#UѿWFK4?ސ ~J?(ҿ$Ct l捴?8]]^J20?*8Bs ?zXc>!˿ȟ֖?tm}?Sᅯ6>ʿlb?6"?af8,?~ۿyP@{ҿ?pFm\?RahP'i? x ?簭/Ԏ37?GҿxT?֝"?a忲\@H=?8x7jJֿ ȿ0]?9:4I?^f -)+ia*v?:hҿ_F?H?{d4Wv 3?B¿䫟?+]/Ŀg'?qL?T }$9C1ɿ7-M?Ŧ??b>?l@̙;➤aڠ*?2 ֿ(I-f? Wñ?\῰6@X?1x$3׿Č_\?7nx<ˡgʤ?BhX?z[|<$Oǿ14)X?"Ņ9Gs?ȎN?1=n'ο&@_?<^ܿ*>ȿ-d?ՎRX u?,V,G?ܡ!#D;?(_ ?EKSհ?Ig?MJ31~PſBr?;S?s?ͼ5[?"hDx ̍?>ėq?yzѿW̸^?foZZ?Ar뿖>Kw?心]1տENwD?R3 ^?!6lNP?f?KJ55 ?hKnZ7fܿJ?Vd?*sd;?i.U20z %tj?HrÒǿbV?o1?]0 Xpj.?'ZYؿžn?qY'{?;T#&aB+a?"Qg3տtݤ 1?]iTl?fݿT^%?^OuԿFѱÿ&ނ??5V?KGe\aǿeŁ9F?%%?ſ\{/?P{orgШ"n? l$?xEj%տο$P&[yV?HN?DSICY5ͿX;?\/+oʿ:-?k.)?ӿihL?k\b?o/V?ѥ 𿰾bn?/OuWm׿ ?̓4Կ?GB:?Ԓ.!Կj^??ZI{iIg r?.߸X_?xW'J()t? R޿2 75-\?r տZmc?ށė?DOg]e?H[c޿<=Xؿ5B@u?K $?j]M Oӿ唆-s|WԿƵf?hĿz@hD;Hk?:AG&<ӿ񁍷&?f}!?ϔ"pd'ÿ`Q%?,0?)NCL;@ǿrk5?%"BtY; ?,?lc+v?^iBXt֥x-@&BZ*dҿF[Ē?"{/EݿlJ39?\ǩ?v\R?-gZ޳? *~{<+?俦!_տ84Bu`?)Y")?[d?VO]zF!3?H “~Z?B?2jƿpƚ?/?Z<ٿ}#lM?lXc?&5ҿz5]Y?F h7ҿ}-HѿW?O?3#2пh;{q ǿT>P4?W']'LbGx?!h꧿N?ݭSc?>_lApvWd*?t*ҿ ?=wZ&?2R⿴?}?Lj[Mٿ"{1 ?ȀL0?)^ܿA?]ϿYp/|kп*ej3?G?dW u?F,WHԿP)?3ڒp?Qgſ`鈦"?^KdgW5zzV?ŰHƿL$l?w2h?) c)$[|)ǿ>1+?TKO3?Zp?aп卒qkn?R1^?uշ[ѿ `a_p?? Jѿ=<Ϳlk/?K-h?TsԿQ`?Fb =5U:߿ש?y /?>RDU̿aBP?ģ-2?ѿmt?Z'|?_wοvS?"z Oh޿/MfJ?iϬ?l].)ٿ5?ޠc:RQڿ?gcD?TԽ߿>N}?#ؿ:vЪތn? qrB?du|UjA s̿#E?I?xLۣ"3cfȿ(%xg?br8R??bØ6?G<<^#￴b=u,?|9B4P*%W{? k?B(P⿴2)RXĿL?F`(YA :|?VῨA?+n3?wR(^$D6?` m/`Կi?ls?ǿa]/?ԾHI4??S)CZ?Rf_ LC?b=ؿ +3%x?y Ͽ^Tձ/j?#Θ̿s۹V? ?p:꿏Vd?_!࿙?HQc?2,̡?2ᕙ4xB=ڿ?"".?{Z$Ţzt&[?:E?$d?^IοF/nK?x$`?4Y;ӿӧ?Dn? V̄-Ɋܿ ?Z`?fjo?)S `?l͋~Ŧ.ӿP1~?2F r?zD,X?i9 :? ?5?￶+Ұ9h?W@῱ >0?p.[?蚝 忂r'S?65I￸&`?e Db?|GT̿0?;zN?%vҁ^< ؄IX?bwAvѿIvAr? "?JIjf@ ࿯8p+?7&gҿe J?C?$:j^ŽX|띲ԣ?] ?+!R?@zPʿV;=[x?R C?j0ȣő=^=ڿwrw?o;dƿ1e?Z4د?5:&Կf U?Z5?_<#s+g\Fr^5ſH?(r嬿GAW?TBq3?? LS˿b$y?Ȓѿ9/ο_; X?21(?aٿ?^b?h`DL?z}'ͷ?r? M-ңƿyA Ș? iϿ7^?/?,\*yM?D݋; :UYտ WL?R i\Z^ ?X ,C@ÿazǧ?(3 }'?[6?=X`忌r`?*ݿܶx)׿쭱{?0M ?3$-ӿ[?޾~-Omۿ$n?ȓ92?>~ p\+?ĉ kſh*-?%h8 һ?@+@!O?G{eVL +п%U?B},?]#?_k쿁{пIVd?S??l:?.DnJ?fj ȉ"lɿ'h?`Naڿ%?7R7?J1l^ŰۧYQ!}?@ek{иN??P޿E'ޭ*䵱D#Tkùĵ׋?#DoE?mDR2W/?Eٙ^ .ҿYx?g1Q?I7A 0Ժ?<ƿv# uܿjD?=>=?Ih27:QUS8xwL}e?,_wݣ l`MPz~?3+c?M%J^"?;^3Lvՠ ҿH癿~yq?OhXg#ϿgH@Ŀ\rE??E調Z^|d#?_?C[K|Էտ4΁?yS5ȿY)R[??rZso?˿sZX?{9?c)Cf$?#VZuV?DP]VտjsHpԿB?V~F?!ĄiڿST?2#:տ.L ʒ`Lp?*IKv;>s6?^tld?W\<ڿs!ʿRd?B6ӛ?.?rvYʖ*W?!/n]?V4ҿw_?KOx=!T?:bewY?LC5YssԿ/u0?b{?ͥ@x?~;?|H%Zq*?zϒb濅W@¥9e?4z?dǾ{?q%AASɿơGy?#Y?tHG?'^?=42u}ο1qy?\WY=pt,]?}b5z8e%iѿ&K?.vx?S*M5ɿK?|Я㿃KӠ Կ)=A?DC2@7?5(ؿlj~?49?#pycXĿz?qlgVx?6!I?#z:QSѿ^~c,?<ɿ_$?@?7wHĀnupW-̭?R]d4;g7GO?p?}?jC ƿBA?W?& v;ǿAIB@?_Vʿ9'_?(ٮw˿B@vYÿg?̮C8|ֽ&?3G?x f x 6~?.20x ѫҿmO? ՕP?Lؿأg?\jڿ$3>3|aIޱV?oH^sL?V$?N9i +H٦,Tj?Yο~I?Hհ?ݹѿ4NF"wj?F z?g[~4?}&dI׿׿YHH%'?Tρ?B3HI Ua?}f׿ {?P ?(sQv=̏?YuBQ0ڿd{?_ͯ?lzʳN?gGVF=?HB/h?:^mD? gEaeȿeiT?!pB?*Dx Vt 1o?z^).@`?Wxud?WʪWƿ7?D=|ƿ!A?R嬿J)??&f-LV?1[wI~'ӂ?Pɿ: M?f7幨@1ƿA ܿrG?y Hl*[?r(OW?Ʋ俠'YՌ?( !~#ӿ"H ?o(^?:pN͹ntJkX?XMJ?׆/hyѿ?_Vvпإ?Y㘁?G/߯@>kص떬hh7\r`}?׍^vxңFNۿ5esCLd?ԿSQ?Ir3?l0^?f Wc?x0uFM|Wտb?M@Ŀ漶V?h?~UWkau67?!в[ۿ~O"?Lrƿ t|?L$u9?F'ĿYh?ݥ¿& a?%ma]E]?o?^Ų?-?%տpj?f?EkTLwʿ%*sq;?TKUͿíq?ԁVs?\JE3 FX?JҿmJ<'˿gee!F?^-"H(o^^¿=?V ?Wrq;п-N!@^ ?lI ٣p?c*ݿN΢e?`o?˨ArnGe?1 u'a 1@6Yjȿ IG? ,?ⓑh2ſ.o?7B1ɿFO7>o?N#*?H*+&~Kʹ?˭ݺڿzܥ=-Ϳw$0?=g`?rtD/<t?IV!)Mq?E?FˬѿC-_?ӝ6<Ҏӿ=?`]_?sD?&{:2e?j&ֿ, ǿWF?tN-Ϳ4i4=?`G?v;Y씭?Nb2 ݪӿWH?{p?{Bc߿ԝ?F|5迏p~#߿ʊ?r4?ĕ㿩Eѿ C]?F@?UrIf>oN?V翰U'r_l޿_5?,h-?Xٿ߂ն? Ƚ>PToCz?]WD?H"afُӿ>ɯ?ޠ҉[)6ѿUe?ar?!Y_B}@?ŗп&gŬ?ap??2⟰ٜWJ=?)Lv?ov[H?Z>m\?Bhs70?j3 ++>?e!Iҿ%p?M Ŀ@&pG?eFz?sg 修Q uϿ7f?s`7Nn?A2ٿ=?\࿴ؿZj?fD-?zó޿A^ÿ ?<ң_?yu؃Ԯͮ5V?,ڿr?N`<5?mJÿUS ?уO?]9?`1?t;Z哟 ſǑU_dž?d#@?b.(vn?jwڿ? f?Κg?oÆziJ+̿Hڠ?q?OF Lޥv?̛495̿p&?eȡV75?չWxPF9xLƿR^ÿ!ʈy?qIK?dJV$R?QgWq ῆ$_z&l?;9ժ8Kf?o{'!?r|d|ҿDר?Nipb0ۿ:2{Le"'? w g$)5?-Z2&Կ)u??s ?>6ӿBAWFE?50tĴ!K?M!9x?yڀFտXp?gDA.տL6?xmi>?RڿkmBW?ai࿐a^g˿ &??ː?LG8j hF:?X(#?~ ¿\5?d @sѿYQ?]Xpпڛ?3}?mX\v!L?ӓ?6W;??'5:it?dc^Raw9 ?ݠ?dQ#3pSClP9oʿ*?ra?ԿHLp?۝%xrvӿnD?~g ?=y|N;WɿRGp?F y%5?uK? vOݿ~񙼿m|T?PI?m^Q |Ŀo'?RI?Jaˎ!ʭW?ٛĿ^?[?/wl!R?Q(OZ䆰ԿdZ?iPo87b?Fj?O;4b̿כ1 ?\zP ɇ?1?H`Q1`ϭvؿCc*?9U?H%vDd ?q1#.ٿ#w?% =t?Lӷ?hۿ)W0 ѿ 2s6?v2c? wzqϿbkTVf?7h̀ҿt 5[3?agp?'*?|,cɿv?b(?+/,*喙`?o?J0ȿl?nȿQBRϿi"?Vp2?hpCӿF߼Ky?˟?&?{v\?߰ȿ"?>zx ?zsc0Z}ǿ?6`?q/t/y=0zÿ47?VѿΫsx?]Yok?$ouÕu&pN??%ߛ׿>xz?e?s4QTHѿ% a>l?|PQ.ȨU_?6? %X6|ӿm?NE?IaMƿX".+vû?u5-烹:2?aǠJPX˿Z?_(?B>- 0g2:IzŸf?'a?qC>cNM?@r@--޿$W?X^`?EM䆙?$`?!D;4u'˿Yw ?g(0˿?yܙR?H?c!La\­?fk-п~-?Z_&K? ?U׿I?Q տ'ZF6?e?}mݿD?`HWID$Cٿx&?wzЫ?h$?aLci[s,ʿj*?l6$UTqq?(%p?NU? *ڿG?Ln_c?]Y;Ȯ? gƸ?q̨,?tgҿx,4A?#֪?Ey yܿs%J =qK?bיmpk?{ѿ/%i?8R Jٽ? ĂvFbA?oi ؓ}C???qǪwġ?UƿʾiJ? &q?N#i=ܿ=}? ]pbwm?p'?lNĝݡ>oE?圇ʿ8e?PKJH*Z@1_gaus7_1001_coefs.npyNUMPYF{'descr': '?俪VA?@ݿMuCIֿ"`#?X ȁy@@Juͥ?,8UJ 2T?^e$?!&࿏@,THf?Pi Z:(8p?ibE?,.iR z;PnUѿD{O?V:1ӿrlkd t?Pw?hq?i~V.A?)M+jݿ۶?m?~8F?lB`Ͽ #BIk?h9*} ?G |a2ѿb-$5? vKrR? VN?$iӿ$F7IR?DX9ǿe%?w῾e$?=5=,R?h.h?TSÿ0?6iW?|?Zn>˿^?&տ¤hz?y9? 7俀N*z(?jCfٱ\';'ʊM?-gF? @Z=uL)?ϑ 4`@~h,vU0?kD~7gD M?$[tJدL.-¿?=Db?4yx&?:J=C]?j2iS׿A!(?3+ݿPQ?nWrQjc翋L?=&"&뿕r?\ko?d9Y?]ٿ5ƾܸ?Ӈ޿Ӗ?rͿbh]? 7v?ݿκU\?$px?ֽ&ٿig ?m>޿ޗe?pbaq?82:vѿse?&ηd~_?yr+?Md|{Կ1a5?Bw\]?rhz/!( U4?ϷĿSIƿC,%˿E&)?aZke࿠ۢzPw?a5?0pR?ȿ²?Wx,}?oW?s<ٿ3u6[? ?ڲp?~2ҿ-|KeͿJ?Ŷn'9;?W?fC¿OwKat#пſQt?^Mr ۿ?HʾB/%6?>Bѿ0kPٿV?Q6@}MT?:)?-OS4]?C ?,ſ>7鿒|PqT?՘񿗠sO?`4;{ڿ$/?jʪڿvId?05&п?]?>?JgbP?H=?4/ܷ *i7a?k*D}87mg`?cvLm?uV/ᅣb;\?=}{X?ز>v7z?%IͩRR?Arsa?nn6Qr J?'rʹ?)å z;_d?JgUIܿMG?fڬ7ѿ,E߿$>? d@C(N?X޿WBzտFך^?pe/Fjܿ74\?io_?r ǿ,ܸ쿿pY0?o8,X.nT ?BAǾf߿z|?=Ϯۿ'|i?}^DƿƴyͲ˿am?9h =Ϊ?<*!fQ? D'ޑ.ARJ?h;׭?#GYb?n1{~?$ӿ[kw|?SJҤĶ?˒H?:[)^ ?eFu\,\?z(ѿ䈀cٿTs?.j?꿍Rq_)?vY^?sϣIQ?[{?*):ʿA<?` n9?-B_vF@'$?Z4ȓhwѣJI?IY^wX&?{C?a}|?>)k0ۿJp7G?x+aZ"տ7?铀ĚHw?߄BI੻hȌ?t ̳PFC?nPUZ?A ZsI|ɿT8"?t Ҍ4?cOHj0!?͆?ϯn)?*O?b#^]?8dyTA? {CN_;#q?nЧڿRBſ]"?w1*Ŀ鷮>|?Zk|?+TKտ^??#H%r:"?k?J+-Ibܿ\i?ݮZ ڿՀVr?5Q?04"Wwhh-mL?!XFXԿ ¿B$?gm˱C3?Jڔ웢?ڋ&߿nw?k((xBm?J1]4?PC?KW`?<`Q?wv񿓲p?Px>U9ڿwb?S2)8`W d?(N\ ?x_~Ϳ,~q×0c?Y=!rԿ<,?B&ڿ [m@d?DI?_] >?m$8t@`.JS@e.=V%@U@ng?lz6t/[G` ?K\"6bї?Esݿ+Tu?̠ٙ?7H)п( /?r8 2 ? Ag'#/˿$vf?!LݿJt!w̿vN%?X(ٿpFj_п⌉?U ,?PS;iS@nXy > `?J&qodmK?#Hп-.޿ F?kֿrxڿX\?M nuU3t?rG:e˟E~?ҳSϿ;6e?׹tØ?eFc?awӿ*?# <JpKq ?|B7?}!0ڿcL?RpۿS-Z?3Wa?l*=Ѻ%sbrq˿$kS?#q?*``E?Rm#fRģ?5 +'\ ?rM応:R"?? b&a$?I4J,?VJ,޿L;˿4.kM?qKCYcF®FhT?<;`qw?QQzϿz^{)x `n?^[ 뵕?"!ԺRZ.ӿ%,<?B!?8,j\?B!hmN=m?Z I?Zbȿ j? BĿ8m,ֿOɎ?ޜ¿?,hRLm+?E7տ[SͿLjPv?1eпhv;?O~ 1?/KFF ?, _jҿ|ݠN7?ҾpȎ ?|1HN?RNU8,a<8տbŐX|?;;v_?@Xѐ?p-Ὸ=Xr֧vЫ?gJ!?̻K/ٿ}?M?{󶂄?{Jf!L%? $D+?+%oӿbӠ筣1 ?W⿲R?{Ҹ+-}~3ѿu|l?|nph؇?_?.qn?-!٠&O?: W(Q8.S?P ?eaB׿MR@m?>?bX2FxU?6*7 Am!T?i#u{I982? XmX?/?_JU/C,Ctѿ~_Z?#Owɿ؀ჶѿka?k΀m ?ܾؿ(ƿz. ?!濸k?3{Ky! ?⥌GfؿVdܿ,?rԼAttI~ÿ\5?8/X? L/?̿8K?6߱¿,)f?;:鿳zP?`pڿWG޿)|?," :F?8[Δۿ?64?rm(ڿfǸ&?O̿Ԗ:l#? r_Ǒڿu k?0C䪻?;b?k! )W?ӓ+aQn?lK y ?yJ1EpkD+?3kĿn-sÿXG?qJ˿|ѿC2\m?lG9?-`oT?X% d*?L~&?mz2?B.]ӿ4F?Ŭ(~Z?1*?rL?ų>W/\?+F|Zx:?5-"ӿWX?ܬ{։p۱>?m6ވܹqXѿ0垤Ԝa?UֿM`J?#1?vȟm@Կ|[ÿ61//Lv?=8).\1?r:0??~0 ο5?!62/տW~?J--> Q6?D|Kx?+ٿ*~t ?xO̿X!ѿ߹?ۢ?PӿL?(, ؿ?nfBο0Rh?` [ۿ_,u?q?،տA䡸d?I6BO?Ɩ?|#ڿD?TՇ.?MxՀ*?J?qӧ?vo$LJ?ῳgO|?D5׿ c 1?1[޿?5z?RW3CfWh?w&d?$=߿)VS??*۪?3Y!wпԩ] ?~Oɿ/E-̿o6}s?B}ѿ ޜ5i?1[?՞?$"-?ũaw;? yh?galF)Z?<0&-޿ LN?̨''ܧ?X!)?s`?|aw ⿲z)e?2ϙv?\=$?Ai\?&ѕeBk?:Ӳ!f?=޿9[8?{kQ?[?,uwa8R?y2bT?FKT%?`W݋̤S>fT?R` )O*?擃QI L|Q?)?Tb̿}9?@_?ylxKX?7MlտX0?I3Kyt/,CBU㦿.Ϥʏm?a_ݟ=՚?ӹj?E>۰ |s[?w1?Y濎GB9-?zg&)翋*K?BNEO?,)AVL?aQpd~ٿdcU?!ZCb[?C,: >i?;2홭*?~ga$?AῈ $)?7Կbs3߿a)3?Pw6螘>忶Pv?5s[Zտn?24ّ,迼X3^?X*(2dԿ =??s¿RH' ?Eӿz/,?&/.EF7r[?7<+:׿Zu-?'Gio$10?*Z ("ȿv0{O?ɓ+9syԿ[k?XJ8?pln俪,1?޿iC? 8?,Uڿ]1?Mzݿ?y*?hiϿֺN, x˒?P܌®?gӘ?ա h͇3?F..忎t&ֿbv?pMWp*9y?c޿FIO? zUQ俪?go5S|$vn?vkoҿxi꿊ƴ[™?t)K3?f "Kx?N2t?|UՍ迂 N?"~m?e˼ȲV^&?z@;NS)?Na-4j?tj0r?A俜O?މUÿTb?dq濈ęui?HJ1aq|??,/$c@?;E򿵷dı?IϿXg"ݿI&hC=<?4~nt %Lm+?v;դĿN+Kw꿷jWNx?PKJHI$>>1_cgau3_1000_coefs.npyNUMPYF{'descr': 'vD]Hդ?Z,?ԑ8wd# 5?V i>(2PǸg͚?NUw?mM?:^ qރEN?K'|K)50u?(%7ÿ#-Ϳ↎S$?Z? yGadp͵1[?C4`D87MտxSi?"Z­ؿVÄ^̿O?|{᱿-fĿ/0N?cÔ,\ j?Ͽa0ݿPg鼿Cep?>D]p?KdnnI 5~?4=8xB?1-~iJ;?R.@?'Oȿe?Er M?E 9ۿpMj?m.?⨗ǿSfZ?[R/O:?GcP*Cs47o? ZR3?dFn{YE.?bQ57AϜod?Kb? \RSdi;|޿j%\/?._j?bbU0x?]q?ռ I?'!F?p??a3vj(+=?kt̿HNߕ-?q8#??=P17$;R?{q*ſ$s|ӿ&2?ځcz?([_Pؖ;?AO?/TI&NF´.0O?`XOe1ko8̿jm?GwB $?yGsrQ^a?!A?X/69G?/U?H_raq?z:ou!?C?ZS῝,c >dWyi?BmHM-^ѿj/l?) %Ŀ:T*#_,F򔴿VvƌG|?D@v0|?]?v8g[SſOSt?GN+1^H?^‚2?a/`CI! *;nԴ?24d=?eT 2 ?D"vb?ϥ?w$c꿟 ~84Q?w&Dw僲?i߿5fV_m`z? oX}ޘIܿgUw^׹?PE/?d z!f?z$e?zLҿgzҴ?grq@*ĿÙ-?6hy? GyaJ7Z6f:?-?; d-?U0U?S2ҿ(qcu?mnh?–*}fh?9"D[m~OϿqTJƆ?M?x-lt|LCm^@c?-qzÿZ"濬B`?B0P?-肵hSKNQɿNDR?&__?plN?H\gsԿfƮ?0[濳ǬRſ#l}+?qШ2Y?> W-p?Wf8 ĝ?Hfʿ}Vԭ?DӖ?C^4u1db?mMꣷ&ϐ+dAn4?һwFϏp&L?ATȓ ޅ/ڿrM$*"*?~М?1&Fc?j?Θҿhv|DMi?'zt/ɡNP? ĿCC? C)?I:\ܿzjjQZ :?72U?V nanBQH?NhhA?XuvT?h&#?@ŵSc?V=v`ȫ?ňIҿƘY+m?ytƚC9ȿGU ?RL)qުɿ&?l6ӿ 㗰]s?O8) v?.P6?bw{ؿ7<w;P ?MyÂ?A˗ɲH bzS?!S~Ѿ?D}*?LV7߿0 ^T?xLWm?*<.L{º k>?$z?elC#UٿX3븿52dH.?4 ׌[Կa>u?0U_ƿ$# ?If#<{?hWֿsy]?f"?|Y}xɿoE?!~3E?'[x=Cn?[ܽo_?'8οPȥ1emq?W5d!տ4O~VTcp95?8"B?uF7{FmC?sx?A~R4!??fc w?,Nf0˵@\#8(TYh%?:B[?!Ģ?'&*ɿo7pƓ> ?rm j?{c8cnH?ٌ;lJ]ƿ5 XӿaD??xx?[u WI?8y@WiBP̿jf?$O1Cx?pgw?lnFǿusп9?>1[?rNѿhaS?`.Ῐu̿_`7? ݨ8?QX[]pǖD?%?wh峿u0Ə?oqѿžѿ,Gޥ?>xq?=-JsK ?ې ٿ762P"ǿ }D?$+ ꘿ ;ȿB+:ߘWȿm*?tי?9Ͽ?+VTѿ4`k4!??Z,?G#1?Y8\mre?hWu{D9ӿ7?dտH(1AKj:"?q9sj.^? ߵ?Vpքɿt-s5Ϭ?6ѿRQq񲾿ݭC? Y80"Ϳ4?\ť?+ x"?<<ݤ?qjnyȿ+TI 2?'?r_ v Uȧ|#R?$ыC[ǿ[d? ,~ſ~ħƅ?Ӂ?B0%|ֿ@ 9Vձ?Bi:l03X O^=?O}[?)\?] _#琿Y?n?¿Vh?^Lq?f=ѿJy!-j?N_?M>)a[_x.{?}SX?T9`0ʿ`,yG_a?pgNι?~-ܿSt8Vv?Ξ$ZF? F,(vQڿ t ? OqQ? #={^Y?~?)f="տ2¿J ?.6 ? 7dێq{?{w*?ɴp˿)83H??${ &LH&? ?+ſw ?P<Ȉݿ{#1[տ$7?~ ?Vbzۿ4J?ʅ?\fgdȿ,W? 4i/'ֿ4C*?*_@?Tꔫ@\?ֹ?v?P4v׿p?zn?H+"h%?.c?PY?9= J@۝οFo?{zG?FR@;(@De,?~r?eJտyY-??,rin?ɬ4? );ڿi~Kd?@ |d?tM$¿;cND?J~?74Q+Oȿzv?$u"(? <<?$7?ο#Z?-?1g&D{¿FEHY?q?`4*eZ߶?Ttl(,#RF?*6-?y11Tȿ)h ?JR?g ?Yfux?_)Nܿogf,?04¬Zӿ^.q ?4*?ƫ@]5ɁϪ?l3bˣſvU ?FHr룿~vɿ?薬ץq?絢6]t_)KL[6?n`P௿,4`3Z W3?6(ѻEKT¿,Q?;~t j-{б? ZO^ ¿F? [I(?DO1ÿx~`i$?'gK?o~򿑅X4*吁?RɵQhi4z ͸?M=?@%琿w5tJzz?a{U?n{_%%kL?ćW?ߙ˿9,eh?l!?5OZ ҿa ĿrE ?;ÏDʿh?uyǿ:`H?sZ.71?z2v[#B.sX?6>[?e4{Y2ÿkпoo ?ߐ Y?gڿӅJ9? hѿ4 eiѿ>t?NN?5?V߾?Y5L?o1Ϳ?VZyٽ?7 ÿl] ^wn?ko'?`h7S?*{ÿ33+R<?׃Wkٳ 3$?#e?׿1+? 4q:?׀P0jqIƿF챖?_?,WvG.?0آ췺?(,뜿LO?\ /]Iоr¿6nn?52ظ?3eZG|GCRgΡ?..ڳ?<Ͽvj:Y?&k?ΣƢC?z#s-aؿogYG?hU90CAĿ"i հ?O?|?6y?@׿^hPV~?͚?n࿴ <"?$E?6%? ߵ?%a?<>r߿l["1?ѹ8ն4B'g?\#;1pƿ8=I0?^zĿ'"dw?攔%ῨH 4?E/%_ٿ<:݄U?Ԟ?P>WֆH?kવ?&?ҿ8?@ѿy-OƿUͽ?x,ÿ| ?z̿;n?(3$5,:pܿ6?Py`DU¿q?8\%M?8B_>0(ǡVƿ!zr?a˷{[w?߿Q?Qb5п Jÿx 0?'`Vÿ-k4?'XE ]`P8T?O?@?Fh)$_N?YNI?>EW6 ޿cX?">M?\rս૿s UaRf=g?gH+늵?'%Xf@wӖ`4?2,ܘ"z/NGǸw?C/!?9¿FC凪?Ze?(ʿИxA֯?{Ҭ6 p?ml;Cҿ*}hϿ<U? 0a? BUw?ES=D?ĿҿY\1&?֨I??4/?63Qܿ(c?hԒt?f ȿY0?Λp^?kj&uo 7? :?j hwɿh.U$?O=?k#f0ڿ벌K-?Vd\1?f^N?B]*?:u2ſo+2\?ߛ?K<6 ?Ʊ]BDҿJE4:E?RU;k#5?̛8=ڿ&Wÿg|~ ~?P:eտ^x?ڦ?Կ@- |vg? .|d? '÷? տt4OU*K?惬?Dc{YXV +?Ncrm$[ѿgh;?"G޿VSD[H?Ŀ6;?0?n4 !\$c;.LsT?궸zes U? lM>nlϿI? W%X?^W?yiH?ɣhΝL4%+?rd_߿̿J\?T]\!}I??ur ?qm?*@V?]%?I:ٮW*tտZu??tbǿ٣u?Fp~?T#AZ?5ǂ3?_H0ӿ ]?&OԿ, ?@H8? ?̆(}P?ek f?ҿZSu,L? 9f?`?gVْ~KioqV~?H̕8Sqɿ'?Nti𿊩ʓ?NO?WłdϿ:ov?H?󓝁H+?g"{?QSx{sFAJ??8Cٲ<κ? ?@C.Lj̿V.ÿDw3Cc2?@j#?&ܒ*(?QS)ٿ68VOYAs,?l[?mgڿՔҫ3ZX? :a[r?'] ڿ 1x9q(?]5j?\u K?XTx?~;j@7S?@ ,dP?DId;.~߿ OŰu T*?[V?%d96?MB?\1\ ѿ߂?hLb?5dŐDoGO?Kc.@$4>('忩/㴩?&_o?M?tׇTyMHDvI@?]2WԞh靿H `?-|Օ~{q`z2?"?M1kҶ0?I^LٿpMlG賿hai?[3Oа?F$L p̹{iO$?@FZ?l̉scDZ?#t&?](5-ο^(D7?M տB)9|VXNz?a sOsҿ_zf?)49?HHq¿:i?:"ڮ?)Fם#iik@¿err09? ÿè޿yͯcFE?i޿e% [Ŀ?b^?; 뼿 ?J?4ɴ'SLv? ߿8[aÿf$?$? XQoÿN%? w?{Wȏ?%$?V&/ub忰#iuԽj f?鿊<\?DvfFպB?Z~.ҬῲLDžT@݃ABiQ?},4xq^l?$ ΐ?:r8˿`ɶĿ:x:?VM'?&Aj,t?T&Ư?r;@J?N{娄sPпX@^"?~2h?9]ʳ S1?Iә$?8L=ѿlJN? 3\b(0!'x:?4=?D ߿BW|[?S೥>{ۿ.] I?tG?`Gx?е|ܿT@w &L?xa!hǿQ""F?j7Z?)cf/ɀ?-9ԻŐ诳F?FQqX4 ]Gl9? 4Wǿ;1~? Ǫ)X?W(ĩQF?’>iԿxj維lq? ~Ftlп]%⼌?a ÿGXW𡻿6?l՗?4пɇߩ?YY%F?n(-_>c?6ؒE? v[Ed?5nCf?>CWzP|.CS6N?|r:,T\w?NR?i>I7Gɿڠ2?@|pӁH?I]H?neGg~ֿ տE,?o5'?6 >#3"&\?F퇪,?-1ӿUyʹ ?"f2}?/gdT% d?<e?0 D῿X\N?P ϿX Y̿b.A?0?n!і?W?"?b쿊7bXژ?ot7{vnМۿxmA?Z=)ؿiɍIvt?ǿivs3p? G?Hb8}X?M_?4(Aؿi:ʿ7%?\?s?Zb^?T}?ԿOVt?N ?W!yt"U+ !_?xiב?r"gWN?Ƭ9?k\_0ԿU?T^tBÿ>P;Kȼ?)V\0<?0"?%h.?E-8He a8??7͸?P1FQc+rR?ۆacVg˿S:*?kDO?X(]) ̿Xe)ޠ?xn톆Q덯s¿X ?\vH?ֶ4㿒_P;?0:]?XъglW2PX{?F%鼿w:#?pm׫?iGv2  :X?ߖ>ܱO2[*鿪gŐOM%?GQ?\1(,@ +M?0ۨ?o帯(%i忦%ס~52?Vc?(tAV'8?lT? MϿt%?Z;evϵ?|cR[ݿlO2?謾tΫ?MnǸTϺ?R2?]տ X?|A1ֿJͿz W?6^+?Tw?^E?<}Yܬ?&?L~~ۣYpȿszO?`%Sz?nl?R$Ͽυ0asӿ'?Sd o?M@οtX!?}Ǧܿ7Qyo'?¿6"s?Np-?TڿOVIȶ?T`B!>4a ?<9܅+?Sc??ϱƿ:?Sy T?QCֿ!ƳϜ$G@?dVϛ~ οaze?m4˯տ!!BxԑQ/ſC8?L+?91ݿn Q/?.v `x?viĐĿ=Z$?*!*?aa:TG$?Dܘ?uZ%Wx?x<՚?/~t9ʿ'r槿ƪm?Eɠȳw?S$?Dw ſIֹS?Xk ?PWL3'.?{鿈zzȿm5?tdF3"㿫aG'Z?#"r)˿ԝ;;??̲ݿoDe ?oA?N^Ŀ9*>?r2c?ob C',? R&ȿdX¿?=D`R+F?JNF.P?A;sj;NK?"B|B5߿ H Tg?K"ҿ&Ne@ӿR2-a?11̃=?t`IO?Ɓݘ ?wU̿*{܁fv ̿? ݏpp)B}54?RˍGkh1;ʿΕ?@.rB\?wwɧMW?ՔyyGa{7%?0*?XCHB虿5X-? 4_? իW¿< ?Rſ/3@?fGhwd?Oy?Nn??xh4 ɿ"F@?Rcj^?T-d M?ՙT˨2^JԲ?Q~Qo?{32?d%꿖!׮R?MjK K Ό?0k츇?º0?fyl5?_ D?8 ſ!~$MYJ??(?C:+Ŧ%Vƿǐ5?^0hӿߑؔ?6j޿ƿJꣶk?y"?SR濳bBo?E?t#gF 6ႝ? ?>1_cgau8_1000_coefs.npyNUMPYF{'descr': '?z~KX$ 7ױֿ&@d?߸?bkQ?Fۿ 翢CN̿? q7'?^п9A%lD̛{-}4c)M'.=?3-j?"!/?}}TĿmeڿ8R!? H,?޺!˿xR?HOh`ӭ?!s?`u#UZߞ̳d63AwRŞU?c#}̐]*(=Qk1:?/tԮb?Р3?A$Y }Q FhU ؚ?o0?cg?@A?A@@]?|@_ϭYxL,LK!m?0' ?8UW1 ‹ӿ.Fz΁M?=wp?>hnZοTS%ڮx?^t[?p) [?Xc?:0?`~DJ׿.UGɿDo;?o?*|Rj?D຿d[?ft?E?݄px _}y߿߿8ͿGNd?e)?[Hgũ5(M>ds?ݲӺ?TƝ.W?؉X?,jly'ſRӿ,G5ӿhS`VĿ`?d'@?DmeFl,w@ɿ:?gtR1 .@?ձ{?)~>?ۿ"ؿj3VoK#?ԕ(̥?Q{ xZĬ^ҿp}Xfs?[?~uWӿ)u;Uݿh7nR{ֿI܏\?UY]7d? liпfD1߿d&¿I1e?=\0zB?n'OAÿpEo]EnSϿI-65?2?yn߿Vc2ҿ;e?%ƀ?޼ny?<H˿{ 7Rٿ+4ҿծ?+?UԉA?g??D?އf Կ9I׿DzVɿ$l9Œ?2Ph,?&<@ ʿ2?0?'x?q ޿fl?ƿw񠪮?X?jꧬ\0=??b>?h;T/ЅP?PL?xzZ}¿BeG.?f]?@BRQ?2Am9ҿ!G`:?Y?[ӂȿ9EW п Jy j&U%|?n? ɞ,򈢬q?R>?$sAۿf)տW©ߐI?R,?-aդ˿،ؿn\`/ҿ2i{'?6}k?dMy;?#&׾&?vۚ?tyS?ʀX׿i ӿ.< ? ?Sg?a>d$c42qƿb- ?#kY?0n2zϿhWYs?tǂ?~R9m"ӿ^ſv#?jǮ?{?٥0lͿp'οQE?\.R?ɱ@?D]Ư?Cl덒߿ "߿ ?Q ؜?H2\?Q ծ?p§ܿ $Uؿ:D,¿@194E1?;-DUb?[%u??^H9?j1S*w?=&F? ɼҿeӿj%?ྲྀQr?ZtN?bۿ5:$Ϳ?8l?R&ڭ?WPgx-އ,㼿4dp4`kH&?ۃ?r &¿IbAԿc;S??Aÿ4IϿ̑sm= ?QG"?xtz?`4 ҿ".q x5=9?&? Uɸ& ÿm2ôn~V4ܯS?6ah?ʥ&?y/? g{ݿՕӿ֞p?Wji?=0H? ?,3?qb{fٿ MҿTp-A ?p?!?|ɲMZFTԿ݇f? 5+g?T.* ?zҿ?c)ÿl4?v+??_أnѿ 5 CQɉ!?22?[?M>)ٿv!p#&ÿ|&c?J8)?p0[9V? XTi?PοݝnݿugҿJP? 3W?"Y?0,?jgj׿h˿6 f/É?%oŜط?4asy?NNXߤ H޼Sۙ?(,q??pjDL?b^jj? p2޿UԿ+O0 hLeVV?`x %K3[??! ?!Pa?q?FN?@? /Jر?@5Ua~Krg׿CԿeu5ϵ?TZ?wC}W?#r?i鼿nrrӿF ׿DaNJ?0Jp? [?,gٿ ոտ^ѻ?j?bz*?PK5gSy8ѿL0uq? ?wo˳*fwű?N @?+?_?crZaiſtC?$HH? ?|eWLҥ .%k?{&h?M/ܾٓQ]ʿRiu@Ͽh'@c4|}A{?FEI ?Ҹ7˿ް?_A?NRƿyLHNֿ ޒ| –??ʑPȿYֻ"o?Zn^jX>|1?l4P?޿?;I5˿῅K%z?Лs?d{ԿZ4пwX?WJ]P?ďz~?JI?(&U?Bq ?,f ?P99)9 ῜xտ b?D??EX!%7jпj_"y¿!Bp-?ha4@?6/?2!?[æ2?*?{?SXoY¿}e4ҿF>0?{V ?P#:?<<?&JٿGp4ο(X)&ۅ?7M?_V.uȲ?cE_*l>L{j\N?!g[?S?\gA?&e'M+:`y͉¿z'cwٶG{?cQA?Y6?h#%x̽Qǿ8gR?#Гm/? LL?0 蔫?+" 78Ŀ5ylۼ,?p؊?| f?zyu ),RLѿ *ÿD5?N rZV?2tn?tJ-+k?i(S,cdf0zeȈ¿`ɣ?,B&ކ?>?ڊeK=ΣPaf[?o\?&/v9f+(sJy;u?P]>>?ww?ף,?΋r?=$;æ6-Fy?La䢿@L eWCԿ񪝓Iٿ8DItU"?}&_?؋f.?d2w ?p ݣ˿@9{K?ֳ?7[ܺ@ċ B^?)>-д@kԿ(Uλ}X:=MP?bU I?M7?vaٿK_"?? ?:pGٿ j޿2a">}|?v珞?J?AQӿ^eAn?Nuk/MֆOwj? 9?-޴^?Z?3N?1?E<*k˿[翊@ֿ6M쫍?mV?FB jܥ# οg$ѿ 8N3#?$ojpv?5^?SQӿjwʿL~?8?wv?.Z?BWn?r7?x &̿-̿&6qwÿz 9d?`?M?üV$ZֿR`ֿКhqrI?PO?[ҿv9K}y¿WW?j$u!=? ??+Rޡ?t? uYǿϕ{~є|?^la'?;wʵۿˊ)?)G?bk6ǿ[Nz+>ʿ}\iտҿ?N?iR?QR{z7?rW?%yx? VT-gQ5ſXF~ȿ蝪HT?ho?VF.p? jjпl䶿ؑϭr*Hj!Rzng(p!?[N?d}ShfFBڣIԆ?a?ޢÎ?yܸ%׿L,^-y*ٿh4cç?j?rlw?_pB?׷hAsn @?PT}b?*P˙ .FIKڿl׿7-j?q[`?!z)?n]X ÿ6i@?tյh? )9',ѿX(ha࿪ЖX޿!M"XY?4?vߚBkiʿDm?>sA? ƨ=hW0ԿiD?9?B|kc?ӿmD.ٲ:׿Y+4?2?$y?y^6'rZ|0ĿQewIJ?@rʄ?zQ`*?:V8?ApJտV9'տi ۟˩?k?6BT? \ٿ#B(\ݶm[ٿy^Pֿk\oT[?`ܟ? xͿMN?ʸn=wۿwCпqG?,kֵ? ?o߿TnYi1ѿ4]?MҀ?( ̀?I?[H?+;׿~vBӿJT-+?4dxr?{L~?42B*?R7ȿZ߿'w xP=?2?)7ѿL!ƿ`"m<-GfC?z3GS?t@P~č˿^пD?3+qT?>?kSU1a,ܿ sΔ?/!?_pC?~ܿk[ʿ_0N6zSſ{ ߲=?3?f;5G@ʿ^t?Y?2Fj?gAqҿ`/rF[s?6c?\WhX(m{A)+$s? q?0?Tgп[>ĿP?gzf? V?rF"8s[߿O ,ԿꂎN??Gտ?X:?mK2^1? &?-RrIZ {˿z["ƿؠ!?xAՓX:?S?DPO?,Ul{?U[/ڿ$ο(֥?>媥G_ (?`\?Њ Je?"@?^X|? w?gοhi5wS?Sxܯ׎ÿ%ȿC;ZȽ?Zզ?`TO?(RۿJ/ пA)?8>J?lv?IH )P5ÿ.cƸ?Hv"?Qf?ed۵8bA?Ɛy?dw ڿfĿ?0?P{:7ӿS̿pƩ?l?x,Uz?|R*׿2Z|b$.E?Ɂ?=C-gfW??ЭU{9e㰚?̻:?T$?-9W]ķ{׿3Q ѿ~;7 ??ȫ?7J. ?1?. ^ZЏ?شhлZN1kʿ0Pe?:!8?j+ɿ[?(琩?<7׿E%׿-uu?'?/,?νݿ1Oٿ{o[п&D7#?`A?@'1Ԋմ7п:٦?/Fe?R|?k挐+tx;nMou?L?o%?pv?%)ܿAcJɿh-?^)2n8F|?Xve ?COSC?^פпړ%Lz6,?-?wˈ݃@壼?*q|S]c^˞nпCB`Ͽ%-?28?aTIC¿H'TL?9#fSn?@9X]]6G տbk$x8?^F1֤?*$?ƿv;ÿz=3?\ҧ$s ݣo?_?Lr'?rb*?f9)ޱYt_T KA?!_?n?[?hT?#JտK*޿Fy*T?iكw=?[yn?տӕdտ $r?Dw"?@t?U#Nҿ݅gqڿ6%" ݿY[]ҿ?c?)㄃?BTÿ "Կ9ps?I?ˢ? hM/ԿfM"*ɿd1,??/u?q1?dT ڿB _·ӿPa?횥~&9?>?4ŷ?~ے@d 8ҿP[h7c|P7?BBd?pU`Yyh?,y 7Mz㺿8MUk ߪH5ɕX$:m?)g?O=;?ؗJnf?nOZ~ݿPҿ^_Vv?7?mƾ?S?N9Z>տIo80k?t!M?4?e5Oe4$пY?Rrz?SÿQ@?B>D?\ү?(Oؿ:USݿײlͽ?e^J?%a*~?ulI?X/%FUԿ7m?Hq7]ijٲ?^P@?jB-?"DʞA?tg1Aտwl?-Պ?4SullÿQK^|j}VY?Oj-?W?..?S;uXak8,TQ~ۿK`?Wֿ#(@?Q?? 1?hk\nʐJƿ:?jNm?xdVĿ>.ؿ.?1HF?ǧ.V%?Vq߿4ҿ(#Hgzt ؿi`׿:M?;hvz?2GHS?&WF߿k-P??& ?X TJ^2!Nnk֑?:*ſ"'Je6ѿ,WPz?o\?8NԮ'?$6[!JnnsQ/=֭nT?~b/?5>t@ѿ25ؿ<_]?^nh ??Cq?˵>ܿ1˿P1ο)PӿA*Gs?B3sJ?? Df?9/Ͽ~abƿ0Jm^CQ?,po?H3%$?ޗ3ݘN}K(f_$(OZ?+%f?Yfk(ǁͿF>iͿMىϤD/\)?F.? K=`\̚#My?F .ٿ ӿ{!a?z ?=+ܰ?ʩdyN9?ڑK?K?`e[pԿfO'fK)XȖ?Șͺ?ٿ7֐ؿX,5?X!?+ǥ?,2F?Bec]ݿqѿާ}9?GL6P?_r.?oȿ1:߿uy]ԿA>2?a;M?mL?ď8x?x$vc֨z ƿpw:P=m ?圾x?JH٫?הּ]տ2WϟԿQdl???οn ?s?ë46WRg/ο'x?MW S?ĿZ0OԆ໿s%sz?d&%?<*?X.xwӿ 7"l$?G!?Ԓǿyl?׸}),"??z'bEuǿ`m? ա?USI?IX>ѿcjſB,üs{H?4.ؚ?n?Q#*?@sIS\u׿ տ$y7?p$#?[@ 9?Tk?X0i??SFR pӿ`wW տ_Z+ȿr8,.?|?1M?@?п;/ÿ&~swֿf`ӿ7iIw?A2:_Vψ?˜u?¡?Ggy?\yS׿VDܿޱտC!0.ĿzY?*"v?\ njΠ ǿõ<ܿVZa~SiſPD{ ?fP4ZbM~:2 ?^k?`ؽxl}?莭RjԿVG趿}{Mq?鎲&R?ʇ}6^¿z /ſCACĿNZQJ 5H[?Q?x绿(ꧫƿo<չ`EMrq?Z2)?[:?F' %ˏft?[uCտ5ʿ5R?FBG?ze?쮅n9Կ%8ۿ޾X)qe b?r ?dp?ſr9IϿjs%ؿ~7l1S?PU##?#b<45?z] ?n%6?Zn!WпORI1$??*Oz3h1 |+b5V+?zKP?ɞy:=?BQ?9*H5Կ5YKܰA?4(]\} cǿo L>V6?:F?2Ar:Ų;Ǥ˿A0ƿ+ˏ?Bܝrqb?U{ ?< ?&Қ^?y¿C\͹qYпJ,ؿ!#}ſVj?3cH?cDI+5p?o5rÿ`oi?Prlb?@f(?0?\}¿mtp|?tHb&_? 5?A6?O1-5ۿnWпt#< U?S?K?|J?oQƿϖ>mſdd*?3h?n? %mdd¿xM?`E?qC?bbckigǿ<.#7?̜qw=?r0p?3'5ֿ]L?6V?h,[e?NRῘ9hܿE?3_n?wAS/?O?p#Xv `mn׿, +dإ%4=п̒?Fg*? _M¿+?Njl?rk?<Mk`Fa:=?'&?;?[p?JnJܿ"|jm?ݔ^?CU?zgD4пt"Qb- ?UH[=?n]ſZZ?6 ?.Mi~R˿]"_лe?FA?̇-o?́Ϫп)?P&?|z:c?0 bۿvܿHJ[{aE?Pͭa?pH0פp`ԿlU?lC6?}*?J`Nd$gտd?"o^ѿ8 rlfHwϿ@d"2{p]kV?=,0f?C5ڿQ޿'N?į?1?9? \)%2ݿ9xO>2CZ?di=?C1_蟪㿃;L Oӿkxͳ?R獵?i~y?:o-?<$F)?ۻv8Կ``ҊYE4K?l \z4]P'cѿ`^[l?L9 $?WUQ? ޓֿ9iѯIп:Z?jPs?f(?L Mu 9((jE)ѿ1y? Ǹ?Bt=K4?'녾)?'?~&ڳ?919ǿjZPG& :P%7fڰ?ݯJ"?esVO?VUQ?^ʿ~AaJ9?<.?yJ>\_ <2'ƿz??TO?U?D;?kn[?tiۿ7Yp̿ ??Ea?;Ĥ?!m?nP?8$̸jFݿjZTٿLv?J*$?5'?P8ޞ?ra(i㿴ӿ5?ƿB?duՑ?r;ưi?=/?v?&+LƿLGI?J@ÿD1rE_lfJ?W?RSJiȷ?3;5Kń?e+-?5&?I0D,̿"] II?տvCgq,ȿe "?+`?; xص?r{ >ؿ>M2;ѿU?Ga?t*@?Pj@3? ڿDި߿׺Hq?6j?z`+ ?:?#?xkP4տH#fJн?~4?"=]9!*oҿ.dY̿K?Ӡ ?PKJHP}P}2_cgau6_1000_coefs.npyNUMPYF{'descr': '&?_^>?-ZoݿE?, do? s ({C*H*>_(˿oͭ?n}0? 0Ϳt?5?0m?9&E?}Сzǿy?| HnWo?(Xx?׿&] ?p$ؘ?#лuԿ:;kSLҿ DPӿ+$h?{gʿ8"Ͷ?!1q?cCֿSʻV?w`wk > E.Hj+mc=濷K1h¿GN\?$? vHK?͒'zN?z7ĿR?Կ-@ӿ޿GrW׊?A6HF|aP?S?{3Cg?%O?Hd߿X Pb4ֿ׺BQnk:R?r?FՄ?uܿ&zt?*zㅺPn~y?*BL؍?[$DɜA?OBSYs?ӂ/J/v?X״"ۿEx?˺꿜gпM)g?gb?w*?Aοߊd~?RY]?`sFTſ'X@J?PP> FY߿-U!t?d޴!Ŀ׿?/U?xI/H?:Ӥ??+2Nx%/Wp?[*$qˋ?O䨚p^B޿ ذ N-g?&敉F??2 ?.?S`Ox"ҿ8?g69 .U4%?a{ݿrؚ.i<ڀc?Io?t?j]u垳?oUϳ?ޅ,򯂳 ?^LB?j}: {{μhѿщYaƼ̿1GM?6?ʒ4ҩQ]4l#?+2?)L?b?BPƍN?δn׿Y؉쒣?<%?*gǪXrѿve|少ҿrz#?;F VMB?LT90^;nyOĿ$t$˧Ͽ&tݸ?_̛?(jX8?:\' ?>vĿMz4#p?,,gԝ]Xƿ߯C/?RCI捷ȿ#.d. 9?%0?7?v(v֓?; v/_?[nB#J?G7?_u޿ȣIh?nD׸eٺnL?ؼt+?=?֘eu?٨ѣ@,H.)濊V\՚?ӿ?3SDuZ}'?7n?mz?|5?Υpɿ{`#㿺_ v8ο3S{ÿXHwCk?t"?Bﺧe6j(B?5LW?m? .>?se?$.A\9?Xt9?2m2yʕ?q[ &ʥ?bo?sv 쳙E?Y8u@%p\Y͝͹?ԣT࿐ĿW?׫(?k3?w5:?ŗտJ뿁51/ha?&m"?Zmwߎ?\'ۻDo㰿yPa(n /?:]&U?~v? E?sƋA׿w@?ԶInJFʛ׿H?%UIڿ,i4?;ץ?+(?L"t?jME˿ ?hN9?Q?Lm?,sulпFO翙7JпZn\ٿr?R?tסhп;FM򀿼VE|u?2BƘ?mV?^Te#?2eAտ)BI\>o`пbO?۴sslWQ?p瞼{@t]߹چÝ]9yt?k!?E9Չ?Tı?NBjOo?8v9n~Kyr6=ë?"}O?va??9ҿ."eϷ {fٿ|5? zx ׿3ZvС dwY?mh;?^+-?7H8?,$nԿŇ{jѿjD ?l2V?c]w?!N`ܿT5ll䝿:=޿Ϲd?p0OW濦Gпl[?(-A*?Ƽ)|?vW?v?G^GEK?H!)?@!)տ,e˿=޿+>9?]h'?VG?e2-E?.F>?\2.ӿrrGCEſWCߔ%xX?Ί?㕱v;uQ~Lu`/b"? ?/mv?"?W¶?]pτ?S?ɾ?ѿU,AT?H3?%>ַ;±ww6?-?5@ y?npn?s!kɎ?魹3^ s;7?kf%xlqаN@+(?JcU?8)*=?$A?|S!k:DoۿXοE2鷿<k' :?\˹??f.5*:?d7;Ie3У7?*<ܿ}s? ȿ4?X'?ˊ??A??ݣ&apϭ1hI#Ͽ 0.:7 x?̙R:Nՠǿgby?j? {1?߽?i6rӿ,Cz*Y?:jz$ ?Na 9(z]oV?Rzs#;BmK?+"пOBO 26Mvd1?Nvؿ ?wy?9 ?W n;?oqJ޿tRZ?ډO C迥U?A۷uiL&;Se|$m?>x;1Y?vk+?Ox?g>WѿF&p?G_d!ZʿN^?*=wӿrի?E)?j9|?B~+2D?*P?̫)0V ?QJŢ?8kh PyۿU*^ſhV]G*?gT7?6P??Sc6?vԿE9ƿDzp?M ^?`?M:54ӿKP]Ŀqssޕ?cigݿRݗedS1a?VЊ?>j̙`E2xVrA?ڀ+?TJ?Ry又?V]?lJWPfۿFG^п @iP?c?V4 \Dԩ?uo-?)X*x?tt?> :5Ar/8HkĿn&?2/?j77ؘܿT[If]̘9x?Q&ظ?Pk,?a-U?pݿ ?j8m5?鿳6ٿ\qKgi̿Yhx?E"?W?]9` ?2sTq붿 $@ݿX(?/*G?GZ?aг& ĿSK㿤աſuпl?Cf?Q$x?<{?ǁ9 P?^}?oĭXIܭ?! TƃvpǿvE?1 M$?X񈝛?,Y?1ɅDdȿu|F (̠@b5?BҠC? SKF?dFw ?pV?6p "sku?T}㼿ֽDo࿧4P ?q^׳jULſ ۏC?8`W?lRb?fz-.?QCl¿Fƿ6M?ǎU?\n?UMB쿵(x kK;ںU?bB?@^=jͿzIU!d?鄋(?Enq?M?}*r?o2Dmhf?l҂?Ow`*Xڿ}l Dҿ[Z \+Ϳ0Jj?-f?Ɩ׀5x> ?ɍͶ x-nj?8]`?3?Eq?'ŕ󿿷?ܿJ -˿[XEЉ\:?Duмׁ?Whg3??3ΌX?]gտt!T2oE Q!BPֿO+ʲͿ1ثYɿ 9Q?׿}?djd?^=H׿ ?$F0d迠 ?◬Ul13?,ױ?z?8xB%?nԿ9%N4ASѿ,&ʿӿW+g4R?1kuǿ{(?@?bkjٿAaL?b{!?UhqG*1ſ#GZF¿.x?"e.??Y/s?z?Fv IQֿW/::? z+VQ2|ҿ^ڿg wޕ?iֿ9?4"KX&J޿`bq Ͽ`n;Կ.?,qǿ%r?}?Gl4$ÿ*So?1?3Hп 8[Qi㿹y̿% ٿph$?EȪ^#Oƃ!?tfq?+)i=>z??bA?F-Wg[tſ8D@߿\ÿ?B&ӕp?bT?XGr?[vl쐄fFTƿe:QпN?8y>{ܿx? a?NPխwQ;z?=?e6rտ|&꿡z6mzƇɿ[G}Jr?ƒb ?'?LF?<?nO?|,\e{xU?|R 'r窱ƿ>)=fX?B^B)㿘+:%7Il-?X&wy?"lkTd$?[ɐ?+5?_L? @?!"l,<C?(-? p8dɿT]Q濳yZ&pҿEXֿf|}?ah ghl{~ ܪ?nThRR??K??KkÿѠuTSnտ%r¿vgjeϿhS?7i'??7A3mdY? )?gԿ Xaؿ(i9I$]?$>7?Dƹ˿0iEzNd¿f~=?ِP?#B?11|?BSÿ8?TV"?\Ŀ0q5+⿊&[ǿQFzN(Zjݖs(?K6+ٿD;*UDQG?)I?qcs4F S?zy/1?5҅? PEn?E?V?,l?s뉸ˑ%n?,"5? ?f}?Yf?ybۿ =c? B/15ۿ##Q?n &ٿYh4Ѿ+?M?|Lk[?)#?uagӿp3:ʿ ؿ, ɿ?vN>o?c7?Č{Z9?Ѵ.?SZvˑQ?9o34h5㿻|1ê͎?褏zH#䲿>L?Gv?jl?ę?WgݿpKK?s?:?љX?(y [?UUqԿR/O?1Ya@5?J9mj޿L࿊r(5Ͽlbr{Z6}?Hп0J\|?l)y?xyU>a?')G2? I?Y)¿c@aտ!%A?AM@?[-?)nҿNNx_?<+LʿjWc&?zd}QbMͿT1ul-?Eԓh?G–?Ncp?5`ٿz ?kt?ܿb-{h/ڿ$<ڃ擿X[1Qd?+l+?q` ſJ㮿?{9OļοKԽ?P1s?+8[&+?'tT? ѾiҿKm2F¿D'ֿ7n0D?c?/\G?6(?@Ԙ?%q߿p| ?ȉ-пpbv?\1:X?)ͳ8oxk?Cè? ?M?,␳??aMĻ2QNP¿CE+:hć?˚ tPn,4?vy?!?=?D᧍ִ>9EӿR`](Ͽ- ٿBP?O:"ڿe8?N ?T[y_տgA?=a?/BdѪAdx-v翂͝ǿGʵ?^?f,Ϛ[*?Kdeп'>d?+ ?z4y#VI$?/'R]?e?mT8?M,?3!§e?27$6imdԿ}:?b2(=c_8?}M[?X%%Q?+Q?iĴ*&?w:zK?Pjx?@dͿ!?$?.R?ag}t快`zt׿m+IxC?1F?ij0q_㉿G8?XD̔V)(X?5za?nt F S4":b Ȃf^Sֿ0wu?<9?Qwx6)`/ Y¤{?ⶩ?,E?|W9?Cػ?#=9 Stt?wN5-1ܿ"?Cv|FȿtE?D7? Im?qoȝ?/?y"\#dCKdy?4|ߠ4 *ҿawo{[wRؿ6^?/C?Y&*?7t!Ƕ? lvI?>(Mֿ)znɿKb14M6œ?=l?nS?ӿs+ȿdm;*? wA?9+t?h?PIUHMC?u;q d Y7?|oDR˪:|&Ğ?PvP?UY?_d1@?ICz#xt{p Lg퍇ѿQ#]?\Te?'΍aؿp8ӒN1T2E¿+$?ϛm.R?o`"?b̦?"U=?|刺86Rv9!?sMF0ˈU ٿGg2?y?KqV>w?6:R?V$ym?U`OJRp0?b;fty?g5lgͿ:[tz#?_7?YVI?zhR?X䊂ͿQGZ꿪Y8g?NE?ph7~eLȋE? 4tWzx)ը?j!?P8?Q_?yI?'ʿMHo?c}Ko^$˿<4AῪ!?YV9X?*=Y`]%Z?Jzv?J) ?,꨿m"V? RRN࿃,F֞pruj9n?BRӆnÏOF#Kڿ6ok?$OAʿ+l EwC?T7%?Ԁ_?'-"J?XQ¿Z{IouշAD_ƿ6?n@|ܶ!3пhuM?qh?dp'?tpk?5B?v`4h~!$n?J, ›? [턳OVI&BƿzM?~\c?ZҰ?2Üt?."׿ G;:Nd#V␿\LÿNKrB?N;z'?ЧQ1տBՆ?NaS޽?_8۬?'=o?ВA?N>˵?7liy̺1Ev4Gܿ,18J?ї jX ˿ 0Y?i?`r?v??لFG?j(-?^?)t.#ҿp{#\Կ[^OʿX&ĉ?1&6?mOJʘX/a???O㞇Կ> ?dp?0ԷZy%:𿋒in濬D[ӿ|Sof ?A Xm?Z;?-Y+p/?^? 4^uȿֿe{,@K)M4]&7JݝYnjD0s-Xпn?%yp_ɿ.vX?Ԕq?Ǽn?Cu{K?, ~E.sr{Fd̿UWi.ſbؿB8,?kNNHHRU¿cZ3?BI?W? 3(?J+}?5\Hi5?$\IAbؿB8d{?t0qۿʷ|'?m?xy|ȿ]y?*愭Q0 Fۓ?RܬX~k.}ʿN(?8?<•M?j5p?f'?bx04r?z5ɵ? kX#Կu/6q'}ܹ8:!$ȿ.~X?$V^?? 4-?c,U#\|V?H?5瑸Uпֿړ׿D¿m4:{75'0?9HI?:m9?DR?~:տ0*?~YWA׿S>?aT` ݿZ}}?i4TC?/5‹#?}S?8HrA/>ʧ˿h sBƿJ?dPgǿ`6u4a_vp?F?FO?5^.?h7´?2nϿ|O>e忂ӳ+?ӚՂ˿k5?^8?7?R5?sÿc`byۿ}4 ?!M?7 ͽ?hϿ.;u?&"?($$ֿAvRտ? ƿ:mg!ؿQۀ9(?yҿ ?9:N`l?xy?Bz?W]F?F^f࿦ҙ/Pٿ6Q !q??h,o¿|r?SȿE|Уg"b{?G{׿ S5:{?*N-??,?x0п.c="V@W{, ?snxu?:aB޿ijz[?Lǩa? ?V2?e?T0iɁԿpR?XPk .R\<ѿ*tNOԿvKQ0?^{eJ?W ߴyu3"qfEĿS*?O?"?fj?;޿w;*?nv?ֿ ϓX`!-bpɿ?Hl?֕?Gq?|%q3?2n ׿Gv%k?V, ?t;ʿ\țƭ?7ۿV>XrXT2Co?L׿l""fzd/1?`_ON?+^Q?KU?|-[,o?4sٿQPpt?|._jѿ}Wz?9Y(տJ=q?t?+XƷG? H?EY?lޝοwT1Fqlt t?e}&\Z'?;o?N6N}߿vș¿xÿiN6?+ֆ4?މy0?u?:b,̿0 'm6k?|*;ݨ?/5'@տK=ʿVʿH$,zNw6?`M+}7ɀ?jZj3D?;?Qu?3i¿_Q9Sl?GĈ? ŗH?u }@ɿH;O[?E3j?Ä~,EirՎNm>ʿ.|Z_?>8?$-5cs?dbvr?PM?̨ſTL?5>A`qsjժ?jwtտ̵x}??[/j?*N<?ۓެ?'&B?1޿!?C 9?D)׿^C6ʿ5`߿$$Js=?1?U`?5"#@.A{u?u?J/;?0&?8?zpeP?XŰ?҆tE˿c'?R$(B?(OiMtO }ֿRQFʿےZϦ=e}?)úܗ?6?_WͿEi>ǎ¿򥯀?X?fkI?y ???3q?c9-?;y↑-O4=vпaN|?2<.?˦?Ca?s',oOg6/? T.ѿo7p(uPP?59￈wkeS?cL(n?+߄"?`q?1MHkͿ``a`}Ϳ<,͖ǿ hٿyUY ?hjrZ¿4Uۨ?g$Vin?ԲA]?n0?Ed੿*Yӓ 0yTV:r¿?d\ZiɿP?sgUϿ&?<+m?ֿu D?JV?9ῴlp r9\̿O?hj?2u㿳Pr,ÿe%1?a0?k?B ?Px? H!7qy63?2 px?,rÿeJ!;||!qsNYɿQm4ݿ/?6D,>*iF3ſZo}J?I?V}?ϼW/=?Y,;`2!net"as0̿;nےL?d%4D8?LU?w+?~e?ϱ-)?f'M?wVM?u:濨F_=|?h~.˜r4>?ʉ?8D$qa?#ٿ\2;$%ub !aBۿ/ƞ9?q?⿚, ÿ:OBB?N":G?3<\?4~?5XC?3 '-?ykH6?g/ ;пқ_ ؿ[ʦr31]2z??P@žc[f@*!S,9?N`\2P?aYda͹Q0೿;B??W?M}M^?%] r?H'޿C9a. ?r?DkGԿ}Bv?LǿOP`(?!d7?!f?x|I?)d?o;, #?lÿ[3'쿢?l$pS?%9#?Tq-?uڎ6(?2?hX(ۿL^{ӿ=X ?< *?wt?DZ@{?aX|? M{=H>k?:r.&&V\ڿZ4q?m* x=ɩƧ?Eo͆7?{LPҳ?&sԿ?oCi׿Ӗgm俈u#[TпFUݽ?lQ?Kˠ?(ܽ?@?a.E }s?<ױ3_6j(7Ho?H*n۵4ḿ~(Pt?0I¯`?"0?ûA?FϿݑڿLD? {GXvG#s?u? ܩnƸ? ibܗ?頣ƿLb?g2/>Ϳ~V>?Ջ[ǿd7.9+Y?m*<6?|?%՘?wXĿmN.5@^n׿UnſЀ$:Yp9o? q!?@qۥ?gӢ?n ?{ i?ȷIYyPN w PʿSc ?$V?A8??ԝv?xuBy01Z?!"0 2ÿ޿6oMju?g]Ĕ޿:TcQ?C`š?׌g>KS?R4?i?TVt;-cſ߿y ?Y7?Tst?iԦD?uTmT\w`?2꿏6?mWd?al̵?'q?ltj)?^dUܿ&N ARfj̿<?!?A`? C>?ִ?.pE~5 ?k4ڵҿ8?- j㿪nCP6*4g?ߊ'?)?^h ?"qJ ԯ ڿh0?4gjk*?Bh"ôv8?Cyó鹿`8ـ?p0C?RԿ1 yg?NʆQw]Կ]k\Ŀ܀q㿾Р"Ͽ[+?KY2x?S?ſfw)pD\-?$QY(?T[D?86?xS_T?յ*]Oea۪dlݮ_tbK?$./ 8hv?\U?VW F?^sL?x?4]tlѿރk1׿RW?Qxj?܈)Ч?W0'YHƿez&XV N˒?@WY̿X#?] Ͽ& 线pkc?_?m(.?HU]?$ ?Ěgpӿ.?G1^IPH{cͿeA?VWп@r MF?$I7Ek?ͮ!?ѱF?~?ADɿ85C?׿"Sȿ4-츿s `>?VSpZä?&˷?i;X,E? EQ?|OQ՟cѿ x6$?,?n?(E|$?{ ?%v*\}|/?L 8?@/ [c?!?][[g4ZϿXڶ0U? /sg?m?P@u?:8?n5.¥?9\yhiK. ڿ0;C]M?dc\пGj3(N ??kI.m?L]+$? ˛|C3,+0$Ԃ}? +ҿ0^`u?Ys?iɿ^x?ݣ3:ݿa&սT`k?UI?A?*i?7^( ?CxɄ?? 泿AWN҄}?Jq*fǿia?C?\~?~\?gt bqXп5|?8+=?GAY?|Pvп؎pZzT'?zm;8pѿZT뫆?Pv v?Jxӓ?\|]?!/ܵba3M?k/gt_пܒtɿ 2AͥĿ–`vg?_2 ? |tVrS 8??+^y?ee?e攨?ɬqz9 ?)Z%?]߿bJ^?v p|xϿ$ӿji?0ZD?סsQ갿.?pN?SȿLoeMȿ;ėݿ ˿UU`}kf*Q(.?Zͧ? |?`O?ؘ߿{;#o?v=iC?cKV ޿ =lTM/U̿4A͵?nq?K꜉пp?\Kz :6?(t-^5?hrz?ih?v*:T|ٿyl ǿ@z~W+#?sI2 ?m? ˘F?N?MjZq?7Iԏ_D׿"!`%U_ҍ?$QS?fϿx%Eo?=_:EпOS??(f'W?Ɲ'ڑM"?Zqq< ?0ϡ[F| YԿ@ʿXz Ὸnj)?+/s埉VĿ\c?? 8?~۳?Y^J#Tx꿆TĿ8vǿ(͕cvϿܹxl?}eSʿ$E;?v?]0>߿$?|zkurIjMj?b翐qzew6Ѷ?znw?_\S|? ?8TJgٮ<ҿ 9@d-ſL%?Ě?ox|/\WCc`?s2?tσ~?Mr?pp_bؿӛ2mw?bxf-?qh='iyp俺QT,ҿ8]?J(Nüs?9Wa?F$f?|՞?nx пxލXX:]}22rEǺa;?)h 8?+Q?f;.5?N;1aӿ ¿ő#4F]朿4/yz?;ؿ,T{3?+O>?;uZ?g1oƄ?fgb?g UKM?BW? n ?8iPQD04 ?aA?n?p55Ƴ?~qT ҿ+={ֿ/ؿѿpnP{Ƿ!7?(>.?Ȑ?5Sۿzz J?AM?̥ؿL,|Nbȿf Ik˿jl6\?KhLԿV?ܖ>?Q¯¿J^v ?qfs¿=9㵿?;\d׿-}wA?)w?n|?wC֢?:,It߿dd%Z?A-?U[}}?zܿZ?|23XBy%jֿ\rzYпY:?? ?ǘ0Ǣ?x}y?b+Xz9 ?@?ï?jl#1-пp=I¿#h6@$$.?R% 󿥑07пRo? vDe?d6f?? rόL!B0 ? ?ȓN!bֿz13vwֿr6'?p0Hzʾ?c^οְr򱿉*[zP:$8.?|#w?P+*;?# '2?aV*˿?~>?㝜Uϸ$b̞-޿YsVſFiS?JB?y3 ?XAR&?2$࿗dOl ?(ff?0ڿ3$⿝he忋Ԕ!ƿtyǁcŧ?ISʿ$V!qb?B?' 0?vE: _lqͱ?n6ҵ\?%6*)?yf/6(?}oG?}_[bT00ҝlo/d\Fſqa%B?аW2 i?<_??a~MO:?`??k^v?N?:BkwV?A 翤a+?!"0I~Nuӿoi?mx\?{,?DAޮ? 6?KksJ˼pd?3?p\׿vpvL 8Pǿ2 @?!~?C7?tt?/M?XH?\$XдE?KiV}Q-H|7?;v' 9Ͽ$_Q? 8?Rn?K%?"$?W u{?M`?(h˿V͸Y܆1)GPcW7?teпu16?4q a?/ubK?62M:z?dD %q.Mɿ?>":&'fҖ?Ub%ȿ#gKQ,¿ь3?y.mٿ"ҭ¿_hqִ?&Q?1%B?IfaA?3?"bAtc?d C?k;6ҿbX'axҿk߇𿖓Huӿp¿'?+^: a?=l4?|rdm?BEN?f{B1?2X1JӿNfEq?9Zο ?'_?|?dyT}ý?O4ֿҤ)}= *?LWnb@LRO?6zŻ;gsڿ^[RʿA M?K?Ҙ?^ԫX4?J LLk,?s4Ю?ҿv+;pԿu6¿|p?rM?eU@?d ?Gkѿ@6ĶJ=ӿD5#~?&Zy͚@>?pc? /=ſ2m?_e?{Pn׿uA-wmؿfɞIt?XY?!*ٿֳdM8^׿'Zc?}5\Uп4Rh?ԥX?y Eh;n{O2?@9ҙ?lP}3*h8{J]ꦿZ?IG@?k-zڿ[TITR?3~LmP迷OVP?E#*@Y eԿɎz|S?QS? [|??qA ?#2f%?V$GQB+-?T>7!H?O?e%,?Ҹwc?N:ʿ\%jX2.[6^ÿѿ(?]:5l\ Tx?!kG$?UZ?Yo*Sɿyѿu]C#=?xߺ?/"[?BV*?0OпT?XʔT?J1(ڿ W%¿Bt smֿ`H?Y36?!?1x?|Y?>iTɿg*{6zթ? VP6l` λ?(1?)|Pؒ?0#h?R3Y_qyשS?>ݼr"U! K? XxA?a\o? GU?#Ͽ Ⱥ?'(q?J}ϰ,ÿJ9)*?nٿd0bĿPAc?$"?TI*?`_oQ?eܽ?<϶ޝ'.I|ſƉ4;w8O}?gD .?@mz?bCXϿ ?FAzX?(s俟Q6L<|HxֿNc@fL߿u?A?^?Bap^@=Պ7? {34|5mpؿuY?Mf3?MT ٿI?ϨE?QiԿXJa?-o? ٶ׿rȜiѹj'Rs~ǿ> ?9Q{}?S ҿ`—>e?4/ ?_(8?˱х>?pN?? B8.ފH–xпϿ?x$ؿOcCfd?) s?P hml^+ѿޮ;N?fB'2]:?.̴Z?N9ɿGZ?w+#&57?rֶǿgLO=B|μmϿ34 ڿ[p?4?|ÿx?L?Dmο?4qhٿ:9\~L\T5?Xqx?6EXk᡿x6׿6`{?I?7j=?%?[(52ѻ? h@࿂X?<:8DS%uyx?XY?];ֿ&,d?\!I0 濣fcn?ӾgD翡s}ɿ ?$혁?=?_?&91D迷 ;?m|?DS?zDڿoPBA5HIȿ.q;ֿ*?3ʿ[J٘? ?RR>2;E[?N?iۿhIDE<ٿ&BG?<$?(Oǿ koRw?_x ?7 ?mn? 2opſh|z?6?|?w\[}'ٿ! C8_ZCx?٫?UƸ^H?6i?k r$L?aT;?<0Q ݿUs-tBPoz%v%_h𻿍(j? k|?;T?t쥒?X3ff[thԿBtҿn\nؿ>?'3#Aٿ|[s9U?@g?\ōZiS;|?wvy5?ʧpL߿"v, .'-ÿ]k9"?z|Cʿyv hrQGI?nx?]JrS*??6W1HgO?RB;Nܺ?WӿǮ)jc_ܿ`ר]?90S?~x?ad/?m*x.?6J2t4t?8? >XP鿉ƧFÿ&v2g+ IC ? ?b$n?`j.g ?tw5׿'Rϭ3yvſXinGaXB?LCؿ@=0|?pM?c`?$깒6?nУ_aſS}72 ?`~ ?wʛt|?_ѿY*ిҽ\ƟN[=ڿmM?n~1=Կ 7(9?eʧ?QY?sZ}?|P̿ ylqjڿr.R)Ϳ@&"ǿp rH?Î[ƶſWǟ?ӊT>?t=Uտ%KrJ?\{?|Q:ӿ)qHT-?:z?8dp H?84ql?)ǨҷAM⿀P?)G_Թlb/a?a5\ ̿N<_n?gݝ?R?%0X?ɢTn? b ϝN=?:k'|?n`>c9~A27ӿKi?΁?`fhC?4k?յ!:?GfN? wIQ>-}4o޿Gn H )J{9??|ٿ6'ƨH%=?&J?:jv1>K?f?~ 迉H?<)ꬸ?FcKۿ/ 4ÿF\&Կ?iu?XVs?_&?>$? ? Tcǎ?`I7k di{ſ|/CZ̿͠,g?+?U?hlh?M,˿Vi^?׾i?DJ^?rV(*׍3V`b$Vx??Q{PĿ~-x?i?׹Ю?hl@?*6 +Tmk?7.VN}? oЪ)?uPh%"eɿXѿq8b>?vZzt?P!?_?: R濗𦻓"?\R6G?>&2=V+KߴMcGigi̿[x?!;? !3ܿ=hޒgaH?+?,q?Kբ?Zs?=y˿:pTm?*?KŹeѿH)?Ԧ?f9{A?.1J׿dk+Kֿ̚4ĿyV^Y?6nؿlcr,U. ?*Z1ť?)*?i?ma}$ݿynkٿĿoꬼ?Z<?]LzֿRbzR_?&D? [?LA?PKJHEHP@P@ cgau6_psi.npyNUMPYF{'descr': 'oMY ]|Bm¾rJH݋þՠžVNM<=ǾR *~mɾeq!Uk˾֭W;M+3;95ZwՓvA|ϾrIԠ~9fоU]\loGҾ.нU nӾ)Vuv@0վ:]IP־ƑA 쨆ؾHDR}=Wj^ھÎrpn?Lhqc]i=]R ^X:a+kSCqD*F!2'yPۉO Z  spl] *hv>bX \I>K(#&P <>9К ܽ>zˤz!>㶴 u.> X 0r>3$9X 06>!{$: >=s)h> }uk6jxL>D7"U> e2(>Yb~P$O>Ԃwdf|dF&>  B U>ⱒFy̵>)Z#L>)ju[>?do->OQ߱??jK9 ?  1Zp?s.p!?#7`3\"*C_?|YR#/i ?E5R$Y]~y ?^%P)?+O_` ?f%,.N8?!e- x?<8T/v< ?c[d0>N[!?%1'~9"?T"1Nm YL$?W2<9 %?814 3vHĹ'?K1Gi4nyz)?6J5x=o+?d%16[*-?nb7[-/?,=8^q 1?NN 9NfGF2? + :e஗3?H9s*;)4?A6] Ţ9?3$\?0U.!o;?\O=@<8\G=?f.@(¥e:??'aA&-@?׃c AįYA?[Ba0RIB?*18"CޟD?eĦYCSE?܋PDF?DN H?Xz~EE[s6yI?4>F64 K?LFXL?9G8f.YN?+n GP?"TH_VP?w[$HdY/LLҤ ][?2mLg\?{Lv9^?u5Lbg5t_?@L}O)˧`?T{@LF xa? ޗLR,Ob?JaLBi0/c?oeLz]jd?R}LBܯe?PY~ǨKUXe?"KM &f? JOn;g?0ʿI0Q i?C naHa"j?LG/}~?k?Ѳ^F1el?-cE,ím?sCkmHzn?wCHB :;p? /Xw@w_p?yg<")Hq?ug8q?*397r?3*%,&2rLs?!W4s?ODa\t?UI?(]flu?u&?mE'v?'n32?Sv?f=LG;?dc\vw?_[B? hdx?!_F?4*&y?<ʐ$K?Îy?JvP?JR z?'y zS?H(t{?PiV?fET9|???zY?X2|?AD^s]?1/R}?DggY`?u 9~?tFM=b?̒hF?܈;:d?^ի?`0amRf? `?zGh?-? M\"j?Ipm?M=m?lo?y.o?\ā?ۂ7L3q?'?ݲr?e?6lt?#ܰ?;ϲUu??1&Bw?9?ׇ]x?v?TB\z?4.U?$֪|?߃?h:}?Y ?-S?5.?>8K׀?zJ?,|Ձ?m"@_?"tOۂ?Sqj?,ڷ?Em??7ٷ?T3e?61/?5m T?;x=? cU7?Yh?N?QÚ?1Pڃ?NSӊ?",͘?cP?~EI?ΩpW?_?Ij]?D\v?1R?cT?}?Q?y?9 Q?2pw܀? y?àedM.?FA)3?c~?Tc?z`5}?RQ?M6Vg{?:q˔?D4qy??t)Rw?25?ӂu?J/R?|ʟr?}Et?&o?R?V2j?n0 ?-d?˚/?~YN[?YQTb?K?ƫ ?7GO^c ?υ~{>O:g3X?u_t&p?hj?hU-?誌pc֭#?u˖M0ug7?\F zwq6?g&)V?5e^?UJV1P[J?EԇBB{?h>6ϊnd D?"卿0/̠?T@Ok:u?:<53U*S?L蓿s[(?֍!?7TZzo $?K9W >?ig @?ﲯ6l?ֲ8Ȕk֠?cBoe?λuKB(u?%s4?e8ףn[ џ?EP9G"?2@lZ?Q:{5$|$ly?gS>\/w~?jM Ev!h?qӯh7?Ӈ ૿W.%?RŬDt?y(nA/P?&LsLE8Q?UK]ERu?(}갿~{\e?Z9s G?=X5zj? H,\VI.r?i@f@K&DI?ONѳM^(u?fc_V6re?Zavm-B㷿> {_Hv]|>1%ߵG:2R mG+¿Xm1MDs¿cYU?Etÿ=<ɐ;Ŀ#'s:]%#)`Ŀ$١kMſE#VHſ.,_調Rxuƿsk(SSǿPOD mщǿQ:+ y ȿNVM|҆ȿ4/vRk_ȿ As;>hɿsuř?(RϹ/D?` xnD?bdƝyO?L"6?+\&``?l?#M-??Sw?k`}?rr?+sK?b 2?TZ?y?`誶?;޾C?8ƺ? ^?'-? n?Q?+^E4s?)%?2am?:ʙ?^G\?s:]?Ỹ??Ѩ.-?diW?cމZ??R*9e?|ʢ?xh`Z?. UBV?)(Ho?8]~b?OB?Y?u]omϔ?3@&?4??pؾ?vR??_}ll?Q?L c?'mչ?ht0?~j?) t?L H?V?NŦ?߅D?;u?5rԪM?/1CcQ?_2չ?~$?(z???"Z?M#pi?J`r?7?$2?/S&?a1?e??\}*?H ʤ!?&>|?e?Ʉ??&.a?%iˆ$?4G?DUnM?D?d[B/?ˀH=?QO?D+Dh?m7𹚟}+y?tDC^O2q,?sJnR?h'J:>}? F'3d:~m?pl¿U?!39ſ-뛖5?gWȿP ?CAӊ˿ Ln?Coο?Ҍ;-пJ<]?/A<ҿ[z?*%kӿ M?8٨(տ]`?k2ݘֿur?̈́ؿ@sl|?7hٿ -?BNڿ@Ւ0?Q/ܿB^%#??2iݿ"X?D޿K?.-=߿_g?v~ W4R?aa، P?^忕I4~?lt濲Yh9+0=U-?濔u$s<7O9EN{}'7ۢ@濑#;$ 1y- ſJB濓lɿeW{.Ϳ˄ciO nuп2RnOҿ`!y*Qgq$Կi~ bHտ/俕bû׿{RĪĹ4|ٿp&˃q3ۿ:ouwZܿF% /.޿(Wzw⿮kBx"l.[࿐^[S?RQpc!)FMfrQ7zf G޿]^J1yFRݿ9eI俙VۿK8:F0Oڿ+%scYzؿQ,h忕׿32y~d jտOhx]ӿ7lY翣[sѿԀW翹R%пhtr,̿}gH]迥{MȿUOS/ſBL$Hc%6\鿏vu1fv0&#),ig0J9鿆ϐ1R,N`D4,N`D4?g0J9鿆ϐ1R?fv0&#),i?%6\鿏vu1?BL$Hc?UOS/?}gH]迥{M?htr,?ԀW翹R%?7lY翣[s?Ohx]?32y~d j?Q,h忕?+%scYz?K8:F0O?9eI俙V?]^J1yFR?7zf G?)FMfrQ??RQpc!?.[࿐^[S?kBx"l?/.޿(Wzw?ZܿF% ?˃q3ۿ:ouw?ĪĹ4|ٿp&?bû׿{R?bHտ/?gq$Կi~ ?nOҿ`!y*Q?O nuп2R?W{.Ϳ˄ci?lɿe?y- ſJB?#;$ 1?N{}'7ۢ@?u$s<7O9E?=U-??Yh9+0?I4~?lt?> P?^?SK@?iGy?·?O?jN#xھ?3e)T?B?l$~| ?N7PU?.\a?aa?}5c?Mx}?V?? ?j% ?Bkp ?0T(?_XҢ??}? F'3?R?h'J?^O2q,?sJn?}+y?tDC?D+Dh?m7𹚟?QO??d[B/?ˀH=DUnM?D%iˆ$?4G?&.ae?ɄH ʤ!?&>|?\}*a1?eÿ$2?/S&ſJ`r?7ǿ"Z?M#piʿ~$?(z??̿/1CcQ?_2չο;u?5rԪMϿNŦ?߅DпL H?Vѿ~j?) tҿ'mչ?ht0ӿQ?L cӿ?_}llԿpؾ?vRտ4?տu]omϔ?3@&ֿOB?Yֿ)(Ho?8]~bֿxh`Z?. UBV׿R*9e?|ʢ׿cމZ?׿Ѩ.-?diWؿs:]?Ỹ?ؿ:ʙ?^G\ؿ)%?2amؿQ?+^E4sؿ'-? nؿ8ƺ? ^ؿ`誶?;޾CؿTZ?yؿ+sK?b 2׿k`}?rr׿?Sw׿l?#M-׿+\&``ֿL"6ֿbdƝyOֿH#>DտCi h VCտ$P$Կ#OչZ&JZOԿ` xnsuřҿ@e}i4%ҿ K~hѿhG#пD¿q"Yп[Cÿ;\ rϿs}ĿeՂ.οhɿ%ߵ?v]|>1 {_H?x-B?>avm?cb. Z?,[ 5R?fF3?cvi4m2?j֓ʵ=6?;!(^Me?7P=v7?xO'xu ?.0ð\DIǣ?asgKI?xH$y$?Y ky_Es? %?lM?}+&?^Pţ{?z\᪡3֘? B?{GS?tOrGHǁi?Zvmm^pr?<;}@?5v"D7ַ?\m4f?_2m;?勐x\v?3 8ah+ʵ?rs)%oޗr?V6re?Z\?@lZ?Q:{5?9G"?2?n[ џ?EP?s4?e8ף?B(u?%?oe?λuK?Ȕk֠?cB?l?ֲ8??ﲯ6? >?tg @?o $?2K9W?!?VTZz?s[(?֍?U*S?V?Qk:u?K<53?0/̠?i@?nd D?"?BB{?h>6ϊ?0P[J?8Eԇ?e^?JV?&)V?5?wq6?g?h7?F z?c֭#?˖M0u?U-?誌p?t&p?0ij?h?:g3X?u_?m ?~{>O?ƫ ?dbGO^>TQTb?K˚/?~YN[n0 ?-dR?܎2j}Et?&oG/R?|ʟr25?ӂu?t)Rw:q˔?i4qyMQ?o6Vg{Tc?z`5}\vΩpW?_삿KP?EINSӊ?*,͘QÚ?1PڃYh?T&x=? cU71/?2m T?7ٷ?}T3eڷ?EmtOۂ?Zqj,|Ձ?l"@_z>8K׀?ᔩzJv-S?5.h:}?Y $֪|?߃TB\z?4.Uׇ]x?v1&Bw?9;ϲUu?6lt?#ܰݲr?eۂ7L3q?'y.o?\āM=m?lo M\"j?IpmzGh?-`0amRf? `܈;:d?^իtFM=b?̒hFDggY`?u 9~AD^s]?1/R}??zY?X2|PiV?fET9|'y zS?H(t{JvP?JR z<ʐ$K?Îy!_F?4*&y_[B? hdxf=LG;?dc\vw'n32?Svu&?mE'vUI?(]fluODa\t!W4s3*%,&2rLs*397rug8qyg<")Hq /Xw@w_pwCHB :;psCkmHzn-cE,ímѲ^F1elLG/}~?kC naHa"j0ʿI0Q i JOn;g"KM &fPY~ǨKUXeR}LBܯeoeLz]jdJaLBi0/c ޗLR,ObT{@LF xa@L}O)˧`u5Lbg5t_{Lv9^2mLg\>/LLҤ ][PKG-Z0KXu.R.K2B:wWŊ CJHDV<׾UJbQUPmiI^:Txȁ*`ISRw[$HdYF64 KXz~EY[s6yI D+N H܋PD(FhĦYC SE)18"CD[Ba0RIB ׃c AԯYA'aA&-@f.@(¥e:?iO=@W8\G=F$\?KU.!o;M<B>$Ţ9*n-='8R6]N[!<8T/< Ǎ!e- x%,߽.N8䨈>+}_` MC)9;(Ud'*LV)F!2'QۉO>SCqD*> ^Xa+k>oqc[^i=]R>%3?Lh>qXJl7>>=F* @>B-I>]7Ek>RTW#Mu>V̱8p^\6>cjOd=> wK> $$><Kxae>R9^8k> wo5DYy_>1ٶ}5>𘡕2來4 >[1⾱V>όA*yM>#Y0i#)i>ƥfr޾(Q>n)j^ھŽrp>쨆ؾ;DR}=>]IP־ƑA >`v@0վ:>\U nӾUu>;loGҾ.н>fоU]>CՓvA|ϾrIԠ~>+3;#5Z>cUk˾֭W;>}mɾeq!> M<=ǾR >NžVV>݋þ>|Bm¾`JH>oMY ]> K2?g>'ql,->cGQ㺾 e2wqN>.NҸTp>j&K趾aRQ>b,!ߟyë>,~Z|QF>Ye\٨>\ߠDȄ {> x|a^->un >;D[eΩGk>??a=%9> QRХ1ץzӆ>^v >y9/h@Y >=E-0栾'Sx1>te6o>ҺGXq@Y^ę>_6{"Q 0>AF_㗾\gT>0%í\G>ݷ @>}Rt&>!F4}>#8Π']>WS@& >8v$~U>pPmX>OCQhqa>b3P> HINy>ThI>Q%eNF}Ns>Y4}z_Ȏ4xi>($au;D~~>k[se7o|>N rMZ,sz>mpnV zx>mx3*v>Oj;u>`gh? ׶s>e fMfLr>mcڠ2p>sbU}o>QrA`ʯk1m>R];))m k>cf7kZH^ i>!W!-3g>P!?BeUTlye>D ]:SLǠc>3tDQL.h[`b>F=iN|9o!`>wKIoL\f_>p&H@F]>dXuXC 8X>PKJHOyP@P@ shan_psi.npyNUMPYF{'descr': 'o?)xdr S#?2QP7;Ӕ?‚l'XY?'[8uj.?IJo*?SAGk?U$u+H=d cĖŗ혠Xl{؏M~БYZ+SEᔿGju3g7`M&?ئ*.d|p-v?>yni![j5?xג#?jEtdvG?a+΅>?f}1Wx]L? JҚYg/?nl"e?4C?scyx?e`S?wl~? dLisĀ?h.ۄ?#=3t?I?ԑP^_?6GA?b!WDAt? }bKXg8 ~?^j Fu?2=~kpFWk?f0gG[?v W[lFC@?$*+. x>Mu gT?BZEf1?Edd?1t`LzT?&}_tk?qJ"g?eLPl?{_;s?f?՞9|?rnoS?v%u ?b$t_S|K?}$p̏z?dTR~׻=?\O\X8ԉQ?D@Ҍ+P}?xGoIvo?aX$`2B ,wt~v0_qQ?HeK_u8`pp?ɘ42}?{T'O2?C^TɋՔ?}]I3U{?lGH ;?? m*swn?؞NM]?gʙ?rW`??mʅU?Q1/ ?ޜJ?)N?坉?t?|?0j2 ? $G?S{?p1^uEI?,m숅CIv7?=^&Wu_۹?G]H ?xV{C,A?B. od?])! }lTbX ;py7:Z\j@`򃿬c0<&xjk!سeS'v}/?MĪvh6+Qc??0&)?. C &? /h??Q3"?!?4i?F nX?5sqw;lkFa?{v#_od?`&(odk?_ؖA}?lW6ʀ?er靿xqz?Z 64N?Agvǀ0ʎ1[~LYaᕿy9~,Џk`zw(Ec*Y}0WAf^FtZ `KyEt?q=ڼ盿#=&ҿ?H B^t*?-┿J#[?8=87M?cNg?T'ȇ?n?페b0]?AŅ?49jz?O?ml?yu΄?N?RGḉ?7~?x?u@m?M@Y?&ԴS&?,UFW?슱cE+?rJN#p[/?84'rk7At?bG )p4f?a9e3EFP?/^Ԩ-Lh?gnYQ?/[4#?{\aXg? MR?4yp?7w-6Bh?Ū݁r?&v? ?ip?m劀?(9hb?R ?Az @A>?op ?f4[x/?ko6c~?yL`*uC'e? A%ImUz?[嚻\m-u.V?ܘۃr{GDurpkufߕaԣԿ**`KnH"ȯ$Qq|}sۢ)"g?\+ i|?kjch۫?(;`#m?y.]NO?*},x]?]t%E?MN+M(>?#W@+؀?HR?A,?o\2? a|??$?t{ڜ??/s?ʨF!?sEk?n6à?jQ'r6N?:|8I{Pg?b6d u0?t J?'ڙ8=>歈?h:'u?E™U'Sܳ,_H4ca{xzT1  rhc[[v891 n%7m!lzs1?:"9 Hy[ :OUc?2*r?hu?oy 2fss?Ll:k? *^V6/ZV?/h *:N]}WiRahC anQ#r-Kib벜uR hwWs40ψ\Cth@|! <>:N e p?Gb1Mp?X.4*ZsK+?=bAPS^??D=I:?D10,=?N6e\.?Tq?)gÜ?@?|LE?6綢?,訕?~?9QA?C*?Q3|?wBn#?llw^`q?̳y,U?zdӵE ?v=_W朿0p?? BD݀??{C󣿑?\RR뤿+pZX\?nS@ώ{K5#怿lڨ⢿)b+4_f;>&w=` ݭ2䢿eTv{тأ  p?;-!*T?Q JΞؔ?& }~?>ȗHͻc?p ΏJ˟?9&~@ f? '9C2?=^f,? /zT]}?D&,t͗? ?8s`? o?0+?| p{?7T*:z?_?'LY?2f?d0bc@ˎ?W~utDk Z?[yvX<܄?(pTw5k-s?[ྜྷqV``?80``h+8?<ȠF?4PC?FUk?PW!/Q?/}u?fj?yy?ftz?Jb _Rx?;0?'p?YI S?1 ΍C?tdd[?q#o;q}`hc?5K\ {?p4Z!9?Ӫ6̈?\Џ],`?X %f^rYlq?hn2%ȁpЃ#.ȸZ l=wjzu@&XEH¢cUDZR;U,&!jFn0`ĥ^*H?tfKx\3V?;I 䦿2CՕk?68n0؀?f>}](V,s?"\Fu" ?pf;0,ݢ|?Û xPpM iO?V}?Ki?<#? ˆF wTT6R$ 'cE&ndBPjM z`mqP/B~ S:M0EňTAv?9L=ACYg #g@:iq?8՘EjN? ]S 'R?}V*zPԛ?7p$ۚ?펿74l?k{='"?<7k?ח9[??'aF?[rȚ?,p?ކuA?6 P ?ɧ?mx?WV?E?ZXR?gOcsJ? vd?Kؕ?},ʧ?U,3YFmc5V?:dз(igWs?#Lbb#~?>];G([-b Ů\2Z0٪DB \L.+G@h@?ʜ^Y?D$g9]OmE:`?]r1?hRmP??1‘%0)(*?Tx5Ԥl?QWxv?ئ_6Rca?C9jh?lǎYO?@ 0y?ef?Z2R?Ws?G}>?Msi8j?xq?5pP?q?󦴘$q?yک"?d&?֣g?+C?,xy ?b]SI?J#h?&fd?|'rs@ǀ?B$ \n?: =[>?8^ fC?ɣG#0>{??HxP͆?\:kﭿ򪇮!cy b e&j8\'`!!Mpa䏜RL@dkERί71 I#\Hr6YZP2?sU2go?g%^e?}d6)б?6[ڂ̪X;-eݴ?ښ8B?/ A ?$ǣ-?KMN?Dƞ?ZFd?5 ? L?ͳH?9)?P(iR5/T?twӲJDvo?mЪt1L?'`#B?ra^t^N?X8%}S?u1`¿x|?Nb;ÿaJ6OoN¿4w捽QW_(j%IGpG@',¿ׄyV%vr`ÿ ƨ?#Dy¿lĦ_?Cױ?($H ?^? c?Htsh򹄽۽?(54f?g?}?u>?mM ?%y?B|ɳ?Ay??U?v?`?7'JL>u|?gQѫH?c<,*?\"s PV$3?鱑 ȎL?cH 5 I9x?s;f ;?xe?.\YEW?V$? ?DBXT?|Tޗ? ^(8?%.]?<??>?34 ?Ȉ}ͽ?{wMzz*@?΢!N9?& 9/~hJ}߽?31ug?.С'ÿC̙2?Oy]ǿI?^>ʿ0)}?R̿`Ô  ^̿.) 'rؚɿKbƿU%<ſ/"Ϳ`+[kҿ0ȭc<yԿm?LQZտRHH?Gxտ}?wӿߗ%?п,s?6LN<ȿO ?AqY+Jݿ?mG5 ?y{?U?[%<%?y4Z?l+9j?# ?c)l?QǤ?j{?(7?1=??;/~էgɕ?=$wͿ!W?Ɲ]e2׿!1?E8p޿L#?VXjr"?N㿦l?pV k促53 ɿῡލJzֿp$Oݿ{M޿Ebտ⿿]Harǿjf~- 濹GgW? ݘdQ ?wA R&M?_ῬD"`k?DYٿ{?78uGпt?Ȅp@-t?Ȅp@-?{?78uG?D"`k?DY? R&M?_?dQ ?wA?GgW? ݘ?f~- ?]Harǿj?Ebտ?p$Oݿ{M?ῡލJz?3 ?pV k促5?N㿦lVXjr"пE8p޿L#׿Ɲ]e2׿!1ݿ=$wͿ!W;/~էgɕ1=?j{?(7c)l?QǤۿl+9j?# ֿ[%<%?y4Zοy{?U+Jݿ?mG5 O ?AqY?,s?6LNʿ0)}Oy]ǿI.С'ÿC̙231ug& 9/~hJ}߽΢!N9{wMzz*@34 ?Ȉ}ͽ<??> ^(8?%.]DBXT?|TޗV$? xe?.\YEWs;f ;cH 5 I9x鱑 ȎL\"s PV$3c<,*gQѫH7'JL>u|U?v?`Ay?%y?B|ɳu>?mM g?}򹄽۽?(54fc?Htsh?? ? ?^?ױ?($H?lĦ_?C? ƨ?#Dy?ׄyV%vr`?G@',?IGp?(j%?w捽QW_?OoN¿4?Nb;ÿaJ6?u1`¿x|X8%}Sra^t^N'`#BmЪt1L꿿twӲJDvo.'?>R5/T#X?5h7ZJV?/zPl´?q;c?Kyl7P2?W͵-^dM?p\Q2t&?q?n3?_bز?h,ʪ?`~j+?F?5%?.@cy?J.E ?+]ms?$h-A?Hox݊l?Ր"Њ{{e^ fC; =[>D$ \ n|'r!s@ǀG#h?fdwy ?]SI֣g?g+Cyک"?Ge&Rq?.$qq?lpPbk/.K7ǾBK/sߤcJoT?lark[݂FrGP鎿ao} *y/+bPsݽxQs?k-=Dk?` ϟ}>?5si8j2R? WsA 0y?befh?ƎYOca?OC9j?v?٦_6R?l?#Wx? )(*?x5Ԥ?lP??y‘%?1?hR?E:`?]r?@D$^9]O??ʜ(Y?G@@?GZ0٪B \L.?-b Ůd2?>]5G(?#Lbb#~:dз(igWsU,3YFmc5V},ʧKؕ vdE?ZXR?gOcsJmx?WV6 P ?ɧ,p?ކuA'aF?[rȚח9[?='"?<7k74l?k{?ۚ??zPԛ?7p$?R?}V*?EjN? ]S '?#g@:iq?8՘?=ACYg ?TAv?9L? S:M0Eň?qP/B~?jM z`m?cE&ndBP? wTT6R$ '>n)h?a>F?72tw?_r8g?'xx~?g4Rz?51~?v(?Vw?3#?x(8c?F)?f[Ϛ?`vC(?1vۓVАn?9Ĉҗ}s?#dQ]jj^?P6s?I+˚wAQ#9x@Ss1{cDẽmkCJ%4^j:F}q Ojk!F}V?J.4K}T?%ަR#{lk?飿 ˆ}]?CՕk?68n0?]3V?;I ?u*H?tfK?%!jF'n0`ĥ?4cUDZR;U,? &XEH]? l= jzu?˃.ȸZ?qn2%+ˁp?t %f\rYlq\Џ,`SӪ̈ q4Z!9s6K\ {$o;q`hc߭ ΍C?dd[e&p?I S#b _Rx?z0ꄿyy?ftzc}u?jUk?rRW!/Q<ȠF?[C0`h+8ྜྷqV``fpTw5k-s[yX<܄~utk Zd0bc@ˎJ,LY?SfU*:z?_t1+?i p{8s`? o&,t͗?B y^f,?h-zT]}@ f?'9C2D˟?&9&~?Hͻc?p Ώ?}~?>ȗ?ؔ͞?9' ? *T?t ?K  p?;-?eTv{тأ?2?w=`s ݭ? 4_f;>?ڨ⢿0)b+?nS@ώ{K5#?\RR뤿+pZX\{C󣿑 BD݀?v=_W朿0p?zdӵE ̳y,Ullw^`qQ3|?wBn#9QA?C*,訕?~|LE?6綢)gÜ?@\.?Tq,=?N6e?I:?D10?^??D=?ZsK+?=bAPS?1Mp?X.4*?e p?Gb? <>:N ?Cth@|!?Ws40ψ\?b벜uR hw?#r-Ki?RahC anQ?:N]}Wi?6/ZV?/h *?:k? *^V? 2fss?Ll?u?oy?r?h?:OUc?2*?9 Hy[ ?lzs1?:"?1 n%7m!?rhc[[v89?xzT1  ?ܳ,_H4ca{?E™U'S?h:'u'ڙ8=>歈t Jb6d u0:|8I{PgjQ'r6NsEk?n6à?/s?ʨF!?$?t{ڜo\2? a|HR?A,M(>?#W@+؀%E?MN+?,x]?]t?NO?*}?#m?y.]?ch۫?(;`? i|?kj?"g?\+?Qq|}sۢ)?H"ȯ$?Կ**`Kn?pkufߕaԣ?{GDur?ܘۃr?[嚻\m-u.V A%lUzL`*uߛ'eo6Pc~f#[x/op ጿHz @(A>'9hb?R ⅿX ?ip?m劀Ū݁r?&v4yp?7w-6BhK]aXg?MRjnYQ?4[4#*ZԨ-L-a9eN3EFPbG )p4f64'r7AtJN#pդ[/튱cwE+&ԴS&?,UFWu@m?M@Y7~?)x싿DN?RGḉ?ml? yu΄AŅ?49jz?Mb0]g? N'ȇ?n?ܕ7M?L?{#[?=8?(u*?e-?>&ҿ? B^?#`KyEt?q=ڼ?2f^Bt?(Ec*u}0?,Џ`z?Yaᕿ!9~?0ʎӮ[~?@?Agwǀ?64N?r靿~xqzW6!R_ؖA}]`&ndk|v#>odSzqw;ldFavi?z nXP3"?!阿 /h?O&)? C &=U?ݙӹ>@zk??aW_sYX?,Znt?i3~?0$? ?Mzzdž?*]?So L?  p?M[{)b?B5..L?Gr]?{1[`? [j&[~?pooVat?hp-n#oT g?-Z fUrS?.Srx++?{{@??*Ϝea?/G?88@k?DžiGa?)o?y}խp?cf)Km?r9q1y?V+Qc?B艁?Y}/?NĪvh?I!سe'?&xjk?A`Rc0?s7:Z\j?Y ;py?])! P}lTb?B.3 odwV{,A ]H 􉿈<^&W_۹~+m숅Iv7 p1^uBEI $G?X{ ?|?0j2 )N?z坉1/ ?PJh?kʅUgʙ?V`wn?ўNM] ;?B m*s?H3U{?4lG?<Ք?t}?yO2?C^T?42}?T?pp?ɘ?aKHeK_u8`?S>t~v0_q?zpňPPZ5?_尲 ?0cKªŔO?B ,9q1}t?aIE$`2?TGkIvo@Ҍ+P}{O\XԉQcTR~=#pz!t_S|KrnoS?v%u f?՞9|eLPl?{_;s&}_tk?qJ"gEdd?1t`LzTMu gT?BZEf1$*+. xv W[lFC@f0gG[2=~kpFWk^j Fu }bKXg8 ~b!WDAtԑP^_?6GA#=3t?I dLisĀ?h.ۄe`S?wl~4C?scyxg/?nl"e]L? JҚY?>?f}1Wx?dvG?a+΅?#?jEt?![j5?xג?.d|p-v?>yni?`M&?ئ*?Gju3g7?YZ+SE?{؏M~Б?Xl? cĖŗ혠?U$u+H=d?SAGkIJo*'[8uj.‚l'XY2QP7;Ӕ)xdr S#1}ZO?b>oyox?=atƲ ?\zk/8?eTSm4)/? ax@=j`*?{6*uRn:#y)A=(\@'=A=="C!*MDDcJF(:HpJKzdM.PFPebQ~fS)+U@WKh<]3Y(|[yr]$ZW`aud2icvqZ&e}e, gnPijw SkGim$0p07=q1+s߼twdv=9lxK_Qz2"}Bjڼ2Mh!ZeȕInHĂ]釾;d!5p(ƃX=N; Uھ\ zvm:4ᖾF^˘=&ۚF -9OA=Bd A tVygђ|f`_RCDGZ T ۋ> ﯾsO@̣#Wb$"$Wjy]V߶axX+B?wyԿb a*Ն¾+4Wþ8=1NžŌ-ǾȾ s&ʾ< w̾b_1Ͼ`HX1оgp ҾBPފqӾq5Ծd2־r2ؾ 7{ھi R۾\-n% ޾T$wW\h5fiMxu|< USW]込ą 1Kt쾶L4-h![>cB4.""2#xd\PL7|fY-U*=:7c`['^` "G7 =[Y9F T/ wނŃ ҊQ(F$Tvk;G 7Y/䏿W{_Uח䝇 v\nP g"a b;#-Rv$@*y%3O7('<ޟ(%".*("+jO-!Wk/v`ɯ0SN1HG2~N 30b25}6?7 cgXM9Noh:l؂q<|s%>逫?'@0Au^MB[ckD` DEzF8GƼV.I`6JKb'L 2RMnsO/cPMތQ.ˆRz*S8T"UIWWCXS:YLTZ{p\ܠ2]Y9_o^_`= ˄af)rb9jc,CodW~e f^gpaiѐ~Kj}k~| m̱TnRp.( xp7qFNrL^ps&dt0P;cuQlv:iwMxz>yE3 {̵P|n<}OD߿te!A:o.;}7ll+ǤMAAw7ʱWqV 䲿"^vhgY [9"Fr<ٵ`жEx o,UcکhWe=Xai\x7!pˁU"zֻn`03I1G# +Z2xߓM epC9HLk]¿!Au¿'e ,¿ cAÿe(Vÿ"Ŀ^fvĿAĿrh^%Dſ< ſ\ËۻƿY0߼xƿ8ƿw[VCǿ?t#?'?G_O?bBq?l+?Ah2?oa)d?`H(?ݭKN?J '?mZ?w\o?Fk?U?ݥ2?{1la?_;?vY?4N{?.?7$e?1R&!?w.!?U?1-{2?JP<?tJu?]f?1Į?e 0?A8?DPX1 뿣U$FY9I꿃 꿼+CA꿝& y_\30鿟 C鿗?g2p /%迧݋C| {U翌Q濵y濼n]zr俜$+](,I?wEj;W,#B˫oLz)⿱_ΌUB!q +2ite1߿R䏮 ޿ ܿ:ۿ܃r<ٵ?Ft?\'~?d7J?/@?w?w!Y?`?T4?y?Mx?:iw?Qlv?0P;cu?&dt?L^ps?FNr?7q?.( xp?Rp?̱Tn?~| m?}k?ѐ~Kj?pai?^g? f?W~e?,Cod?9jc?f)rb?= ˄a?o^_`?Y9_?ܠ2]?{p\?LTZ?S:Y?WCX?IW?"U?8T?z*S?.ˆR?MތQ?/cP?nsO? 2RM?Kb'L?`6J?ƼV.I?8G?1zF?` DE?[ckD?^MB?@A?4@?ˀ逫??s%>?l؂qfY>M7|>ӞP>\>xd>E"2#>4.>^cB>![>L4->=1Kt>ą>(SW]>K|< >fiMx>D>\>wW>S$>'-n% >6 R>7{>نr2>;2>75>Pފq>Ep >AHX1>b_1>d< w>s&>>Č->=1N>4W>Ն>b a*>wyԿ>H+B>axX>]V>Wjy>>Wb$">̣>`sO@>= >ۋ>( T>&CDG>|f`_>cgђ>XVy> t>Bd >OA> -9>=&ۚ>F^˘>4>vm:>ھ\ z>; U>=N>ƃX>!5p(>;d>Ă]>nH>eȕI>Mh!Z>ڼ2>Bj>2"}>K_Qz>=9lx>wdv>߼t>1+s>07=q>$0p>Gim>jw Sk>nPi>}e, g>vqZ&e>ud2ic>a>$ZW`>yr]>(|[>Kh<]3Y>@W>)+U>~fS>ebQ>.PFP>zdM>pJK>(:H>DcJF>!*MD>=="C>'=A>(\@>#y)A=>}>Rn:>Dp8>uCS6>iy.e4>2`2>C!1>u />!ޘW,>K)>PKJHFz1_morl_1001_coefs.npyNUMPYF{'descr': '5ӿ>g`ƿNg ?~ձ)?&5l-? 4߿NW*?- T>?3n׿Uݳ?U](ؿ]O?<Dܯ?6̿bѿ@K gEwF-.?h=kAƿGTf&s0?H{^ ?3^?g f?/~ǿvJ񝟖Gg_@%ϴS?,@׿3}ڸ?#^Uī_pKÿxէׄKF)\ڽ?l?Lqp%^dۤPf2onşҩ?`/Kqx8ް?RgC!PYڼ?4V<3xٿP6?,|餿ĮҀ?!ھ?ȷ˿?H[f9+*+o? 0G?AXڻB{Vv]Q?0DlǛ? ?~rοP?f.#N^1Ϳ1?⢪ȿ$T!ۿ}nu?65 ?AbsUؿttQCǿ$?8Cgſaڿ.,?Dhޮ?}/?h=ǿd$Ŀrń|? oпj%?(\w_?Yǿ~Y(69N#?6ɿ}Lѧ?vT*?wBZݿ?zPȄJx36?G-?Ԃܐ8pQbTׯ+?Aa-?~,ڿJl*?4zBr?!)?ەqg60?菂BH槭ȿEuп *8?6+6&Q ;?8+uWuڿlVh?4~pHh3L6)4?nhh᪖?'y&?ҔA ?`@5̿?&ƿ.]?BQe?xF谿l9?d)ڿ=2ÿ??֦ٿD3 ?HK%%ȿĬsLp;?.5*0ҿv;s޲?0?ІKȬɿp'?q0%]BK?dyW{v˿Tѿ)?g ? Rf?Dbտ^? %`?:DѿQ?vXĿ& {GVޮ?A? wEOѿ˻? 06Ϳ J@mֿĢPn?4\'hP?ʮu1`kk$5JǿZ ?+?ԈUT#9¿4娧R9¿A_ɥ"?=?{րΒ~?p-l*s?{2Z?:,!̿d\o¿N?5x?33ӛ \ؿ@JsR/??SzSZο\\?4 6-ÿžٶ?(맏?1nvv? $ T?>lĿ, ? v#/?X bƿX6I?,8MF?:"O&߿(&?zey?%]ѿb2? ,pH~?z̗ ǿJ4;K?JwH4ǿ"7WlA՗غ>?3k?Jfւ ?iT/ڿ-dƿE6 ??ꌸ-ԿN$ֿ?BBg?t ?ɿaq,?UctG1b?=^? /\K+?XɧVkѿPذCl???@\trſfϿܲY2$?L.ǃ?K`v̥j?"Ή_˥?8#BHr/T?GtſY߿Mi{¿(+ "׿geTq?4d?>T:ӿ?F4OcĿ/ p?[+`q,sT?ٓgv1?֬Ŀ RPP?(˟YY񕦿wſv8T&n fg?s:d?w8ſδ~ |1˷H% ?ԂzGǿ(}sP?>015w<Ѯ?Xkq̄hW?ƻSG?*kcsſ8s5Ȱdmd?1G?PNvna\jtοAfX㜿J}'?"ٗ?4}]옐?8&ɿE;?T9?SSDʿi4?>ĔJ?& m?ѱD~ݿ M9/A3G?@WA?T4L-?X&廿%ӿ6MG?Iǿݜe\S?? ,*[Կoa?S5??hA.=οWaǿQC?K?hf)ǿpz|?<{ͶY?x>&_?ѿOu/??UEhL?К*?b]q Ŀ"GF¿ű x?/7Ӛ촾P\j?4n"?UQؿ2+Ͽ0=o?|ոmq)9op#?k~;bԿa?v?1L?/Icѿ8O}mY`$??#Uqƿ(ӡ?U_16?2xN Ŀ"t?~$6v?fCT%̿ :I: }ς@K'U8{?^W?ω lx?`p'JؿZf ))ƿ|2ۿ` Wէ?`O?ys]F$~t?X7% ÿx Y?j"oʿvx]~u?`D6?_Q؋?;*QWΉ2'^b?ÿlulDET? }?늣Ϳ]b>2"̿H O?B]rw?zR!ӿA{п}u?B@.ܘ?`+pp?B hv~խ?B|?@#G$j?7SPS?8qр?u $Pÿh1iyA?`V{ӿI9qõؤ?ҺO)g;ÿ(B= ¿ЭoN?>C(?6-:lɿ\&?&V?JܿйΌ?]?{1?[|ˊ?s|.fs#x}F6:-Lo?|4}5P?rEiп@һ޾?u\ܿ3v]l`G?MK=ǿG?yE|?QPZ 4vֿ9+G_*?[2DĦǨɿ$F_+?9@W2zyS(⵿br>?cviѿP?OZYYɿ<[ȿNٿ3ύo_5?T pۤ?Zϕѿ ?eg?tY߿M??vEBs?>[ƿS{3> '?-s{?JH[?1y(?gWTM k7Ῐ =?B?ۭ Jtҿr[G?AF?#$zSƿ|g?GK/%n9"bпəy$m?4"; рп9?;v$? QҐc̦οl43?:Կ"ɿΎ ǹ"q? -[tǿ 'B??(S8濠i͔?Z;&? #潿t\?J<<}A=?:lQX#?4{Y2}Ϝ=7b¿u=?Ww|m ?ރE4?P}3⿓'(&ӿcU?݉Ῥȅb*˿m?qweވ߿MR?$.+_r?4W(Ls?z[`տL5y/TڰU?4O1ٰ? Q ? 4멆¿*ߎӿj DF?v ?WQFο{)WeL? %= |?-fI޿l_e?ɹ%?d7FKBݭ?U?$CʿPKJHh}P}P}2_cgau4_1000_coefs.npyNUMPYF{'descr': 'Pſf[׿dZELԿ~W?2^?APJL?:3翴CR?k+;:JԿ8A+?`gI m~?$L?E,^ yƳQej?M`|?> Au?O λ[:Mgʿ9E?`00?q΋Mz)<1?`OvfۿWbyȿVֿrD?N8r8ޔ"?/? Ϫ&?3*^ٿh]$3?XF7Կ`Ak|⿵znM\k?jo$!տ%M?J⬁q- od7y?;1hٿ.xf{?UiY^5+*هCdݹz* /?m*?PoY?/]6s[2L1O?El$? wͿ?y韬" ?ATLп> e¿XϪ? Bۿ2JY?Ĝ],ZeGJ?=0y3ҿRe@(?4)wEY\u^qӿ@vM?9R-t?ya ?Dtr쿗Q9̉?f1Ͽ!q__?ve-?6& ?]F4t?Y ?F-i?έD)C_M i?PǗ?@WxU¿p\ܹlWo`o?n<5WT?YmC#?nxRTsƕ?i.Rz!*?uxj?dtѴ.?nmAG€>d6W !?^!GgVc?rSɷ?5Q?h!?+\Ua,{̚?{ |?j]ځ %꿢V3hS e꿐?"/Fu?ri?N~`L7;pڿv3q6?u}p?GvH?,\NA?ؿ-]?bwc$ǿnQП؏ڿ&F?Ο:п2IrJ?JlO3۲Ì?G{2?-/r?Cſ?eZ- Y?>!{[||?f Ig+<=?B<4-?)CxE'пe CnW(r ?~Ͳ?U5?wCc6|?[fXD?)ϳ̿bO?VW?iD)ecy{?߿P?K'?ٽ?d?5 kG^qӿ/3(:|?4e?wV.|2ı?0A޿n+@M?A&3=BBx??v1l7?ʬO9ypϻ?7X)=:?ʄC鿗7b??B7ѿIAV;?WgB ?,&1ͩQ %W{;?ЀSmݿX<"C?/?4ҭ?AA D?_?뻡TL᪽?h^ǵ?|[](?1T쿦 9H?7Z?_G?-?tJ4yc213Ƨݿ([[?hꎋfL?x ?JWT,Կhy n˝/[pGk߽#M_¿.D,xſEUנ?BRͺE~շ?HаP+zrs6?L؍'XUpX<v͗`̲ӿ%*D?|Xƿ@0?HMy"?C?C}?aY786)?/]ltר?2k.|?%7ݿv !<> ?w>w|$}?y)?u!&?>~oǚ?~LJqjn?0CDhRVȑ?h2>(?~;&RJLſ hٿkl5J?[?`ny?k©Ap)pIƿap,?s\~?5^?vjGտ58?0UQMпg.пӿe$ur?(?{0/A?OuAiҿrt'?@-z,ɿP\?ZͰ[?$?Yk?)i!?Ū}HA*OXOc~Kv? !r'"ƻ+?[f;4t? *a)?9\l,?wm?5ƿ.Zq?C}ߖ2ٴ%տF֊ ?;Ao;O2?w+Q)?+74? r\?ÔO]?#ۼkhK߿ukv]?9?mN]cρvԿ HIx]]+֝?\q?:bAK?trPC?&j\΍?^?vLJn"?#zGWc?T{Q?Eղȿ\%]?ƈ$4u=޿ Ͽ)!))׿\Pb ?:Z?c??ۡ 0W?b9]/ę7_ys?bfrs?NnYͿQbCAԿR.[tX,@]N|ɿ0߁\x?T>܊?&]}?up-7E?]iBſmꍿ?CV؇I?Ɔ5ѿ?;B (W?rRtC~bPE Cc`%Y͓?O:пrW?Ah\UI.k#s?Ɗ ?<<;?%U ?ɦ$3?t:O0m?0;Λd0[=dqx?_А?F!?coR?h}S?oɃ?ke_tտSwZ|?s?MZ!߿ Jjڿ8M)cҿ2"Ks?N _U?>?Y[ͿsΒx} ۿH5?ZPYɿ')0?g.T?ci?A?^%Hϩqtpѿ]sp?Hه ?ZL ߗݼ ?T ͝h?X,TA޿ʾc 0x?eڿZ!l?M|^?@?c?di=?[C?[4ڧ1?u De, ?thnӑ5vǿUay +L?h4ý!"H!?zտTqPH֏w ?fmqL*?q*?7 *|O(7B?c?Uk?l]=ֿקЅYٿ&nhE?ѻGt?V0ݿݍo?g}w}e m?@wHG?\h$k&.D3y?Bư {@L?ruE.kܯ%⿏@?׿Zb[XKk5ȣ?n%w?>9?bjջǿ ;o?G¿+?|>?h0r?wX"?$:@kw? ݁{?Yߤ9࿄bW0L?k)\?g?s/?zM9D?{?*CS?,Qi?#nIPrIֿP@pR?D`?@?٩95ܿ>!\dؿ=8?ӿ_q?jNO? "pӟ'?.RQ?wu^CP4?cU@z?o?I0? 3ѿ/4Ux*?Ng?\ ?'߆ڿt ?i͡Q6ԿmY[z/ܿ]7q?ϗmM?@[?htP翞a?[ȿuC|V?I[ ?5Γȡ?䤨?爄G?Dc?綷7?2Vހ mdj>?H&5.WN?`8qş?蝧9?)0\?{nR?HP/Xߘ=+G$Nz+?V~?~?*ڸ%|f>˛?D *ܿsL-??#B}ס[`?C>} ڿTY8f?Ti/IBg鿌6ſbF5+?8v$t??x)?GR|/6?˲k޿A?AT,2Մƿ g xmݿ5P?CgL1ƿ13p?_h0ϙ|J?w"2?h<\j?1dv g׿gfvs(.?E0?Q`?Fi*t ? u$']/?Wf[ܿvqm*lʷl?Mп\Z-3?1-`^?v?5?*7?0lX6#Ȅ?g_r]?x?Lfɿf/AYnUJ7ٿ6"\Y?Z)?*T  ?}Dҵ߿z7r?vO2п4M׶q?wY?~t⡿14Gm?.쮨? X?-Е.c{uATJ~?zt\Na_?{qSb?0|?>.~?6Ά_ =K?'X濏?=?EMֆGlCY3p,mt俕+J?]cs?Vo=?U]?߮pӥ ?ʃpX?: ʤ??Ի`ϿG?OtQ?m og翙q*%R̿f@{I?J`h? 7閤K?![ʚ(+׆ؿkuzb`}hvgֿ#x#F֤?$ j%W]k?4ݿ-)૪?r%jt?ۂ<?Msʙ,?.T11Wc?p&e~?pK:1+*?'XY2Z?bnn?CAQ?͵9S?h?^v ~ZÿT\?-5Bғr?J`?jɲ?+]?!UVn :>XUt??r?ՠF?)<TxͿW%Q5?+?X?Ror%z?w-0e?"K﮿zտV5kS L=?ΆͿ#>Z?rN ?ҿUf8+?\x&'鲐?)3R,%K]X}ʿKg 2տJs3?a?yu1V?W;??&Cs ^$U?h̽Cտ:M?JUjo ?<VϿT56wȿJտUr?Jmx?̽J?|K?> 湿NDp#ٿdEDP5ڿssO??Ab M?zEĨxH]迊Q m0?IڜĹ0-V^?y~BtVƪiœhϲ?Odh?cS1SV?w?X!o?[m?XI9a¿R} <俇f6tt>?g¿9\e?GxKѿ?IOy-(({g?7?y.| u?*I$LULsPݿgX?dxbȈ?=T=ֿF 2\x-5q⿳?o G?tk?vM3"?K/z ?ew}%rs?ԱPڿ܌?f^?q~=ѿ=aIÿ\ ?gu?+fϿ '۸!r8P񌟻'K6ҿ}f|3׿~%mk*J}o?[c57I+ K5?}0|+;,?#9r?@s ;_֐?@IJl0?ni宿 qܿ:;sծ$k?SnPB_j,?Y4^:PT df?oaܜ ?K[??t?pC㨿N_$Ϭ;Dx㿪lUNw?\|?$^_ϿPiY0ȿ_1ÿX>i?"׿skm?vӈD&[܅ݿ}6ӵ7TIM\J8s|?>0lм?"X z?3b5($G󨖬?h!(H?Z;?nl?MCؿz?m?oHHo??Th7c&?y+ OdI׿ݥֿpԒ e?Bֿ|?4gdοi];K(_?o-]uׄY?K79;׿ m(jgͿҬpY?t4Njū4ڍ?hARÿSⱿL+?JɿHq?s5!?෍%ELi¿1?zh%9-XRο f%NPP@QܿuO۴?d<[ٿ0sb?η?h l?͆e?ս,?eZЍOIg⿬D㿗`-ײ?e㌆?aZ?cNq.ɿCQi_I࿆MȪzd翎tt?u1?35,K?kftԿHUѩ?!2Lֿ:mE?G ?CֵqX&2?|'쮽؝?Jᓮzpxly׿^jöx?-*?WR?ߏo8M`h H(dܿ/,?18ج^W? |OiƿNta璿(BZ?GCMA쿀ܢ?nqK?iAk!?}?)mhm}̩?.`_Rڣd? H8?BOe7]u)9£2?2?_A%?C|? 3 ׿:*=Pпێk?fzZ5?To]f /i?a?, !Bm?1:Trտ٭?* ?0^t㿼&X~e p\ѿػj즠?FB? 9SW?(q?'ʹV{Q>ӿڿ ȿ`L١? =.a?$Կĕ9ߎ?LTCqc?I-u?ſ C?8<ެU?mUX"\6hg&K?+?}W /??f,ϦҴ?u߰?l*?)?\&{¿CE#:Uy?8v; 翟E!w1?%A`e?xuFf?O?qyE}Gg?𿌙●r?ecs,Cfٗ?Ŗʿ,ec)M ?5?֝eDU?~0u῔Pe]=͟?^.Tޓ?1q?{hFˣd'xq ?mٿ($C?]:0ϲ?>6z6Wi?u3RÿJ`af?rheqfQRȨ?ʀ1zֿ:#P?@)^*?=?hřC?R2d<7/տquΦ{N?G~j ?C:IDr򢞞l{_ Qg?VB?ɘJ?\lt[>z#/?ëO ?;×NJr/пixBӿ˿?vQx a? ):sͨ?t=6aa?lR{XٿAD?L/Hf9=׿T9٠I[Tڿxg.ے?J,nu`?#K>?7jܿP]WvGVp?'$iO`.?(Ȟ??&"?:yg¿F*];? "‘rVʔѿd{?1XfiпzG^³?\ğI?K\\?eF?I1!x? @|?S$? ?gyV'89$ÿX?/BKD?Ve P?֣~ ?~1b?zǿ\. ?k?K@e+ -?,7ܿf?dVM-BͿOW$B<տo[UĠ?J=?x{DDm~NyP(f?r3G?!C٭!rn?, ο?Is?)Rc?l>}B㿺U˼?cL$d-N9 ܿ ? IYh?Wt?pˋڿ+nֿ,G|¿sh?ܮ:D~?f‘ܿƈ n?siX?pצ.&?^D ܿ+ЙPU?`>s?A L?7?tf$09^/3{x{?njo?B^?SRmۿyN?T8r#8D.vc*s_Y࿘ա?UNE?? V?,lK?|TG?oEO[O?bڛG:4ɉտWoεֿia.4?>42h,?9ֿŒxg?Jv?Z'?Z?MQ?zX:@ƪ?76?f pbÿiB07ɿDѳ'Pr|}?KпPre?ˑ8?TĭdҢ?A a? g޿#8;Ukz/?qE=?"?3fj п/!M俠J^`X.ZhԿahaV?;(ο7?kUo?c9$7˿t0?б%!?a? $Σ_?+{??'Մ?E)N=qCԿ@׿+.rB?͸o??&׫Ŀ8x@.?8ʶRq?0.uM'_??,Ψbᱺ?vQϨҿ {??{z i?>9,?ܺxx?BB%@?<ב|RAy?("Y?p#& Yr\?.BzԿ8?9t%א?zuSr?]&[п'5F?'A?vV9o6$?veX~h<0/CzEV"ҿfnؾP?\?F!9??A2k?(/~*LHH**ɿ^MB~-?ԖU?M|U',׿ qſZ<+e?L?>ؿ8Aˤ?^ܿj^j?-5[Ǿ?ON}(@?0п;Sr?i3'3 Qm2俿5ؿ8찉ٿRٿ!7?fd֚?4?LGeU {;r&ҏ+.[_ѿ݄O? eXD?7.߿x[gP? Jt ? ۍῺLh?Md? po7??025I R*9, W֏W?^Z$?\Q? BfnіV;Kp6:=ֿ N΢?q* x;ݝ?O-? ?^H4Y?Y.Ds&8ޮ? zֿ23?nYyKU6̞Ÿ?R-lLbWW'?EZ<kh? ݿ>/?$I?f?mS?D;)wCg3"?6 OPٮ?wi ڿ0N^Ϳ~0idQ~?_rt?Xi?8D Ͽ΍Kh̿Fm-6?šv͇?x[ IZp?kK?0Qw`?,X؈?d驿Cȩ%¿;] ||0W-T?0AӿsK? ׏*G]?K?B6 D?tҫ?A? 쬏?o)2]B4n{?틿gw+J3WԿ`&5G⿮5s?d;?;m? =}ǿӠfd%?t{o$?.^Gs?ah ^\Q&ij9?9KkmQS?WT4?ar,*N?0)8տJX?k%?A𤵿uHPV?:b0,9.?\hа?05RI?Oc!?Dz6sj?ɫE\+a< p?EC3d]?z .\꿹;Q?","?P6w݊?X^a?:Zl4jBA>Iώ%?x5U? C/?ِӿhoàѿu $\\ܿ?M/LӿCA0ރ±q?kJ~5?zaȿq4=b1?!M9Rdz$?Y3?G?{{֟d?lIޞZsοece`8? ?۴i?fOOW?]9-Ŀ˼ڿ#?19+?W\LܿuظmT,?pFƮڿ&U)?} D~ѿG/x+?\Q?Kg?Ip2?VzKfZؿ7Y࿰eس?h]V;b?R3{ WP5?wsݿ"g=? b|% ,*(9οՁ.&翤8oŕ?q?'?˫Sֿ?oT˿9)?O?+uޥh?o_,g?݂z{d-޿Gn5h~tY?hģA?\wj˿HXBR,X?0(ʿq3?n%1V+U+ɽXuRMh?0.p?z ٿ`b{x??z`2+?D?**r*+j}`?2.dld5}r?VNԊ׿xk?d,E$i{пp ?U2>%?_30m?nLK!ا˿" ӿg›jo?̼}&`?d 濅RDtZ W?w&ؿO褿LJ&e{9?U+d?SƷhjY?F.i(ݿApY?'?ȬN?Tgqq;?W^`fS@?ξ-_|6T? '?9?xX5`?8b߷?oOEs30?R?+cҿU%ۿSA^⿊?\>?|((?j1zǿSy$(|4,?Z8/y?#?RL:{u\ C"vܿTn?cLЄ?T҇0?Irѿa!п%Z͕NaY?]Z?Ұ$ٿ˸?) ʿPd˜?e`^pV?Mg+?Ϊ/?tt?|= u϶?{#`𿇹ixAdڃԿ44R_?kנe´?ک-PƥI?CL?ߘWJ^!P?aT G!t?O")~ qŏP鿄fu\2xB@?}Z?8;`k?Ur}?6?P ?\0W?DӤA?J_Ns?cs >Xп7հtMzh?lr ?=(i?bѿq@0k-/+?a6?12V?)|J?0{eѿAF(vnx?x UUz M?"]$_XX<˲Яl)~F~~K ?&??ӘLOwg^J 븴d?哟}?iv4?0|`÷$Lݹ?+!3k,XͿ?ĔMW$9?>iqQ$Vy?tQ?4#;?$WF?7`yc/翱W@`86]^?pBa? ?H+ wr?xN1ӽ?Y km?3{{TAB\2OߍFR6?I]J慇*  迲> I7͏I}?nʿl:k$?vv3xu88?Ou?ɄSf?W7m?bO}շ?p?(u6}?ϪA?t# ݿjU?K-y? 8X脣C*doNk?s enb/?i/٢tGRNt0߿P?nhӱ?eʫ??:o׿ցcY\Iſ:p?6#~?)iCj?}P8MYm?js?\ؿh/pQ t<ֿ qH?٪?0&>?._?5)0T}_'Yoh^+ ʿkJ2?I4տ޺tK? 埫?Zd8 ?4P2?5*Pd?݂λÿ"_Tny ^{T\ ?Kp6߄?sٗ4>?f?W~?B>=?h[O7^ӿ-1Om\?|H#cK?TǿqS]ҿ ,`m?Q?,~?)|hkKWꕿ,*r)ã?tN?p r vb?!l?ꥴ֑r?GE m?ősnG$?`&[t?;> e¦ޟ:)ēοu#˿axI}?IIvο>!?&n_7?ഹV%?%e޿҇y?g +Z}ټ}k:ڿFdUzNZ?0]?H0*i?UD1CR?`N|C?d)QؿW"?x)͆^vF$6ӿC˃"QP=ʭ?jD~?&e'?F .Xj1TVF{sÿ % ?X?z|/9ٿSøjQ.1p?ZÛ`Օ?,Ԯx8%C^SIw?7:֔I {칿&|;-/$1>\R~?ZW?L&R߿4~ ?m]ۿ˅Y?)؛-?#* ?11t?Dÿج?tUl—6v?U}L܊ֿABձ? OzR?-l4'?? !t?P2c?؝|]Ԁ˿HSTMKefe?%?#G;vB/9Uֿ2cmh?Лx%( ? <̿ Hjr?A.4?*SX?2aG&`?-ytqC𡿱8"wj??tkKp0[?>?(~)]Fm? *#4?0zD?#vA[t?i T6?_y EĖ<Hݿ5tL￾kYS?j>J&?["w?t=xʿ 0?yu?l=?Ζ'2?wA;O߿}]?$У">gد?i?Hn+?NX0ͱ?I/ ѿld?i=iS+?9ٍ򿨔a?]?xjN?R%\r?LT,XK׿"4 1L]wlA?gdM4U?-31?|!.̿r`ֿ>JC?>+&ic?pE~-?"7噿,찥?^&ؿ(0\޿?PN쿪`N|(?7#|Gbȿ[24 {bX^٤?Pp˿T1M0?Z@5 ;.??poq?;e?u$`1?ڔ_NA l?#}_?T; R1#gX[*꿻X1ŕ?cT٭?4׏ ?H~?N뙿}4 ؿ˫ގ6xM$? lR?HWC?}zٿ/ h%Ƣl83п\\?m}ۿO!?p 6?b?Tx Q?}پMٿyV?.g咔?DINsWوտ<*-ҿ2z?X8e]?óIeN?`wĿRcʘC'QhÌS??ʿG?بh?|?-U\M?n.Q31tWD4Mx}fm?t?D̓R? T<?@cVe? D Ŀ(EzC?󊄲_F?:ο7Vj?p<޿" f?ak`x(x2h?*B}?O0?dȯ ?P/)jJȿV?A?:'=fHȿ)`Pٿ=U˿6nY?&'rձmNM6ƭ?9u1Xۿy[Be??"^?sbt5?sw|?a ?}wĿ>`?[⚿^?eğ rݿa.:}ʪ8?ʏdٿbg#?`?qϿe)-k?k"ˡ?÷ڰ?lq[t?=._dwywy嘒dB$u<(?\/?kH>$R|(K?3:kϺ1]?2p~?.?M?ڒKrnVy?t2ѦZ8F?MFz޿#p7?,t67?> +??⠅j?R?XVK2`?A?]i$? t೿ Džڼ~ByX3y5?8S忈Hͦ/"?D׿L뢿sA3?PDȿZ?5un,bk/"D'Bf?q^`m=G;?;譿<":ʿ[yM4N5/?M6ֺտnNr?n:3=vƷ}?'dK=?[c? > dždѝg Qrzx?Rŧ?JN7"?ЦSNտ~*1?/zGĿ͵ y࿼d?dvؿ.|Ř?!=މwnޣN?Cv?e/?ʎI=?Zu247iʿ)R濈ϗM?Ҽdk?)nXѿk׿E>|cAW?dg/2?ӾZ"X?f?ǧ{ǿg Y? cͿ3`1?OU ?ÿl?9/ٿQWv?"H/ ?_n񫨿6@?$ygDk?ERMrM ?XԜ7(G˻?:d?By?%U*>?QYI&?:Щ?̇JM;MֿAy2(†忾K5df^?$9vnqZ?o!.8$;BSu?-[t?P?̆x-ʓ?O˔ҿ%= ?*?=*D? ?>s+dU?c"G(1L(iο.v:쿌=x]?|_+׿X}ri?yk\",?\?A?W ?^w>n?V0XH.ɱ?1?G]+>YXkx' G? ?dHͶ??$Et6lԿ.l$jq?lÊ@l?m@c0ޙ?*qoNȿaȭݿɋx? }a-F?e=} ÿ>4勼º?`~,?x~)?B3q?F0ʿ/hq?ّnl?Ɋr?Ώ["qޒ?2z](P`ۿEܿl I-ݿKɧ? * ?!êE?ο?>>!ylE??y,*mv!77fW?"BԿlu?BH/wU? ?>Jt?}?}吥Xcs;(Z3F46|r?xDzn?7%;ƿX&i)п_㿊cX+?!q?S2r?̜TGg=?[4ե1 ?V:Z?.CGml3&n?yZ׿m!N>m8@ǖ?jrۿy!?^2Lտ2gMQ*KH?iMS?(mj4?\!Ѳk5_ٿzGo_?L7j?WF?K#V˿U!t?%D#|JiDտ6>tBѿ?.OE]?CR8Vr?QO-ѿEj?9?r~5 ?I.Q-?4 "?8 p(Kjj?+HΊ[9XC7?C›yRk?EڿnG`!ʲ??k€?>?n2>쿛U Ƴ?}ޯ_?Jp?[&~1?fj:@(ҿ5/?½ԛnjD!WPiIпf?Jc`??./+?I,}Y&?wt BxNB?"ww?E?_4F? xSU!޿ vui#gO?E}Q kҠ?K ?7ÿ'%[}[N*@*CS"?q&ҿ"p#˫?G'fѥCV?6 .?z2%Lj7?0<|R??jLL u?GC{s5࿺菉Dhq?տ6V?2G?#߿Q\v?ͫ{~7?X?Mo*Jh???/]RE?t  ]?42k3޿~Aȧ?֏St?L"?{<XͿP?ς޿U*?$n$} d?gl ?DVm?H(*e? ;t?&ߩ˿钺?)۩,8?VsHLte$ ?Àן R#hވ1\wQ?RGۿ(p F0C ࿺.?Oej22?jM?)ȝm?۾~Д?:l0L\h'G W>6E?nIRgD?? ϒ*~࿟ah`?٤+fkk?Kutːd,?2N?? _?5)?^0gp׿`\ ӿH?vg?T@TI?\Lv!wB瓿*6'?a̿F'?hrnT?*q˿*]2%HrпKQ?N?xXڑ?h k V S޹XxdWkMu$?[y[V?:`+ǿqK-ʿs ?6rhҿng;?&kvkƿC6\?+R?B!H?Ơk9?xi"i/)п߰ѿp?W?2 ;ǹ?_گP pF>F*=Ͽ8<Aû?@Eugw?1y?v ?yZ]s?Y俲ƀXU?.AzχbS7XῺp?F ?Ȫ6v?rԒŽs?CrͿI#!??;O/|y?w#i?r@?=:?;iڿ 3ÿU?fJPŊd9V?U yVy?17s?oPg0H?Vj2jT?l~?2Z#?g]ČD'? 吪 yφ?U~"|?4o1wz^W}?,/9sړ?6`.ڳq_翟lS?Wtk^߆wj?c)=KEe?΢A?@ĵNd? źPۿ!)>?`f 1cW5Lz9NR9N[?uʩ?W?~ez׿}汿۞+x?/" |0?0SSf)8ԿJ-?fhR bٿ021?Tlܺ?KM? ?lٷ "hf?>%+j9?HR3?VaY@UFARe ?Xx[ϵ?x1?b?I7w?|3*#ֲCvHBun?;d.rj!ӿ?vm违\}٠?p_;?eѶ}? }?7x򵿔/bL[ȿ#8S#?El?}%ؿ ݸxX?algo-f"o4~m}y?a#2vԿ%#o?fbjT^&D?Cc¿_ )l?l?Κ oͿ/뿺)0EVPuD?>=8|Qv?V@?jeJ?:oBT?xۚ=fB#?!_}.?q RYTZf{qz|K@I?2wU?m;?z῱c@ ݢkD˿U?R0?#?@`ӧp?r8BFԿ\*?1d?>kG¿2ÿROSԿPQ{^efM??N?(f{<ѿ*?[Q¿cA???ѿ[z_JAiw?Cғ㿞 b?9<Ӹt-UwNϿԹ`S㿉;cp3?UV;ȿƲ4@g?~{jLҿTfEy5A?q.ʨtF:?&L|AvѿHZ*߿I#uؿn/4;w?O!ſ hw?)Լٿ!ڕ;ѢHK(?qHV?=@?H?7eLNڿ'EܿZV?O?:X쿐XZhˈ¿LAY,Fď(b?TiYfŲ?82ڶ?%э?#+,}Rzcv v? 궽?YqOך?Oy?&MR`޿'֛ܿW%CHa?KnUuu?. ~B?w_-ʿk3X ?&dv࿴d˿؁09;\?(ĦAtѿ`՞S>忭l?IV%Ϳ'v?Ee0K?ʝ ?6oG:?CFpwS?jYg违DffTֿ|(n?|(ہ?Al࿘X Dtfn3lB???o?+9Bɫ8-d+7MmſNȢ?]b?ڌ;;F?\?￀ sDPyWT76X! ?;fM?PKJHP>P}P}2_cgau8_1000_coefs.npyNUMPYF{'descr': '?*-sd?lru z̥9椿ds¿2X׿,a ?G1g ܿ@w}?3?t&L`oп4{?3OYӿzֿhk|7Y?eiܜ3 q6?hOY?rt/X? y~?~UHE˿+|&Q~ֿ1焯`ÿLdb󀬆s"}V?'v-¿Pkc?@741?j!ƿ7U? ?L a#x[¿_clwտĜ,;y?!iIԄ?N+=:?|G#D?梨Z*?Ț;o 9U?'OU亿@ӿcb?&Ɛ>h{sW?=Ǥ?xH?GL?ݯ|DCп-xKп:-ԿxJÐ?ɧ"?QF{1?#  ?@pc뛿6KӿcNr?_Dž?ez8n?ev"*ۿ %Ri?;dѿX@zfѿy@?t>U.뿘o^D L?3?ʢmCz?&:٩{?%IeͿ\b*fؿ]Hٿ)Y忪bD1s?G 7 ,&OofTͿ?dY?sWzF?uNz%?|slp0̿R%zP{뿴TUd׿JE?~@?U1,p?5٧?l94rp?4 r5J55M-?H5dm 3ֿrHc?ģ ?CBg?Eq?ZX?%B࿘,p!?+w9?=m>?b'ۿV#n.z~KX$ 덪?Bw7ױֿ&@d?f&M?ݡ?߸?bkQ?&"4Q5EY }ܣ?Fۿ 翩.fp#?*ѵٗCN̿? 00?XB? q7'?^п~udc$޿9A%l~?ptտD̛{-}4cjtJֺ?`45rk?)M'.=??>D(?3-j?"!/?ZOxA=C?}}TĿmeڿD?k׍e8R!?,t? l? H,?޺!˿(8!޿gZItۿxR?HOh`ӭ?d4b7?oc-?!s?`u#_ 5Կk ?UZߞ̳d638:9,?ͳ̿AwRŞU?BhE"?c#}̐]*(KntDÿ=Qk1:?h_ ?rL T3Y?/tԮb?Р3?1ͨIſN㭭Zo`A$Y }Q Fh@c4~c?}U ؚ?o0?=?a'?cg?@A?A==lzݼ?@@]?|@_ϭŷe]C'ȿYxL,LK!`w?X?m?0' ?=*ܿ0e?8UW1 ‹ӿ6^c?^OO޿.Fz΁M?7ev?!\j?=wp?>hnZοkF|п`ۿTS%ڮx?^LA?aA?^t[?p) &0VӸ?[?Xc?ZDBϿM??:0?`~DJ׿7o?ݲIڿ.UGɿDo;? Jw? F?o?*|Rj?1 CտȿD຿d[?%fN ?v"~?ft?E?ޮKFGdo?݄px _}y߿ëg)?ܳq߿8ͿGNd?\@?Ap'?e)?[Hgũ}/޿D1r|¿5(M>ds? Y? >bſݲӺ?TƝ.W?u -IKpsd?؉X?,jly'ſ{4lZߴ uͿRӿ,G5ӿ(Ό?堯}hS`VĿ`?P[s?dV#?d'@?DmeFl@O<ٿ,w@ɿ:?gtRy:.?U_Z߿1 .@?ձ{?4;%ɿX¹H?)~>?ۿQAȠ[鿡"ؿj3wC%K?jվ?VoK#?ԕ(̥?)h*iܨ?Q{ xZĬ^ҿ|(=1?8$o=p}Xfs?]v:?'H?[?~uWӿn߿)u;Uݿh7nR{ֿΆ?dkI܏\?uȁ 7?UY]7d? liп!=XK5kh03fD1߿d&¿S B?qɖ赿I1e?=\0zB?}^ ?n'OAÿpEo!!O?",ȁ;]EnSϿI-65?g47?ϋS?2?yn߿5@vVc2ҿ;e?J.Ķ2?J'W3~?%ƀ?޼ny?YՉ~l?<H˿{ 7Rٿ{?~8 +4ҿծ?+?G?o?UԉA?g?҆ǫ??D?އf Կsr'1ӿE鿛9I׿DzVɿI?~T?$l9Œ?2Ph,? ܿ7& W?&<@ ʿ66A?<࿾2?0?d¿%Ѳn)?'x?q ޿MC}󹿌ϠDfl?ƿw񠪮?gZ9w?Md?X?jꧬ?ĉٿI`23\0=??͝T?+ɯb>?h;ktiҋ?T/ЅP?PL?XXtiX3HxzZ}¿ɥmk?L̻BeG.?f]?Nuп}ԅU|?@BRQ?2Am9ҿ@݀?xO~Ὶ!G`:?G?R|?Y?[ӂȿDjf俛;˿9EW п Jy ڥH׹?&9w Jӿj&U%|?Չ?ֿn͹?$sAۿf)տվ4? $(3W©ߐI?C ?I_Zn?R,?-aդ˿dĭ[ƿ،ؿn\v?Ljv=`/ҿ2i{'?ǂ ;? sܣ?6}k?dMy;?/X](ֿ#&׾&?C~`?9-aij?vۚ?tyS?۰:c@`BʀX׿i ӿ?ܒMV.< ? ?q׿1?Sg?a>d$c4yV'޿z)u$2qƿb- ?, p?o?#kY?0n2zϿ_~|\ǿ6h?hWYs?tǂ?ÿ?~R9m"ӿ9횿]f^ſv#?呗B6? ?jǮ?{?oޖ`CD?٥0lͿ/^b^? PoLW翛p'οQE?W?.ugp?\.R?ɱ@?y*^鿔Jm?D]Ư?Cl덒߿m+ֿLaBz "߿ ?!}C?k?Q ؜?H2\?#lp?|e֥F?Q ծ?p§ܿi@>? $Uؿ:D,¿v+ ?Oh8\*ÿ@194E1?@ȿ?;-DUb?[%u?64uֿoMEXۿ?^H9?M6?̡?j1S*w?=&F?#6Kv\/? ɼҿeӿ݇?!qaj%?ྲྀQr?ھŸlu?ZtN?bۿT[bn+$迅5:$Ϳ?8l?IUi\?L?R&ڭ?WPgx-އ"ҿg?,㼿4dp4`JǼ?Fh7ƯkH&?ۃ?pu4lտicy?r &¿IbAԿg͡(?7BBc;S?_x)?Ӣ=??Aÿb_2p ٿ4IϿ̑b/?!u&ӿsm= ?QG"? ~ֿJx?xtz?`4 ҿeӀ¿m߈1".q x5=9?$@:4?WR?&? Usqgtݿb'!?ɸ& ÿp!>B?-̿m2ôn~,ܵ?;ʻV4ܯS?]1?k?6ah?ʥ&?A?1pQl?y/? g{ݿ.]"ƿ[{{Օӿ֞p??,?Wji?=0H?i9po5S? ?,3? hnkqb{fٿ=4?R( MҿTp-A ?r?렉ʠ?p?!? \`>Wܶ?|ɲMZFTԿd D?N_xM迠݇f? 5+g?FuMg?n e?T.* ?zҿZۿ~ ߿?c)ÿl4?,tr~`?s\?v+??_أsC9dnѿ 5 CQG7?JzWҿɉ!?22?q"տEf?[?M>)ٿZaտ҂Zv!p#&ÿ|&c?ug??YG@a꿲h˿6 f̚d?*e5?/É?%oŜط?Qٿ!?4asy?NNXߤCuǁ_h!ԯ޿ H޼Sۙ?{LU?L P ?(,q??pjDL?pE[J%߿sG2?b^jj? p2޿bLiɿ8P忤UԿ+O0 hm_?˻3?LeVV?E7fοC'^?`x %K3[??@;}W¿! ?!Pa?Նnt?ARy1Vq?FN?q?ֺ2o?@? /Jر?ι>|ֿ0݈r?@5Ua~Krg׿jǿHCԿeu5ϵ?7K?C L=֒?TZ?wC}W?rw]Dʿ>u/=?#r?i鼿=J}鿊hyX߿nrrӿF ׿8|?AO޿DaNJ?0Jp?!ԿyB? [?,gٿ-w0&,r ոտ^ѻ?y V?)%?j?bz*?"P7;ܘ?PK5gSy4mG? _:8ѿL0uq?"'I&?’p? ?wo˳VI 俜 9*fwű?Йb W?tſN @?+?um6N?_?chEiǿ(|@rοrZaiſtC$ Ea?3_?$HH?Ej̙&¿? ?|eY[έǿږ{ֿWLҥ .%k?c ?X&f?{&h?M/ٓmł޿iu?ܾQ]ʿRiu@Ͽ˴S? vڿh'@c4|}A{?_P.X?ׄM?FEI ?Ҹ7˿|t9ƿvʿް?_A?Iƿ+z?NRƿyLHNֿ"k7"?|6B}߿ ޒ| –?K?!D$ ??ʑPȿ_jm1_տYֻ"o?"]D?qrlUտZn^jX>|1?zWl? ?l4P?޿?+µ꿀l?;I5˿T¯K?GqJ뿅K%z?P3?7'[?Лs?d{Կ@:Ip6Z4пwX?lM?kFv夅?WJ]P?ďz~?SXҿ+#>'?{?SXoY¿e}6e̿z ۿ}e4ҿF>0? j|՜?_{V ?P#:?SAx2߿@ş?<<?&Jٿؿ.6Gp4ο(X)&ۅ? 3(O$?Z}?7M?_V.uȲ?Bڿ``I?cE_*3ŧDٿl>L{j\N?Y2݉? X?ڊer2H1ϿK=ΣPaf[?=Ѫ@2?j?o\?&/*1$HK6?v9f+(sJy;u?jn< ?P]>W3+\>?h5?ж?ww?ף,?JgD?΋r?=$;æV=?`6-Fy?La䢿옂-hοV?@L eWCԿZǿ}񪝓Iٿ8DItU"?,?}i~?}&_?؋f.?T/4$M?d2w ?p ݣ˿paǿ"Xp@9{K?B2>w?.?ֳ?7[ܺpR2пwP?@ċ B^?)>-|,+BV7ҿ#9"տд@kԿ(Uλ{}|?v珞?}}xֿ$UJ?J?AQӿ? a2ܿ1v^eAn?TO2"6?2l^?Nuk/MֆO;y?!Ce=wj? 9?>̒?-޴^?ZCY[?X}?JԿ;ǿ`?ޒ?Ϲމпx@Si-'Q>?8?+x?3N?1?^x(S?E<*k˿[aBS?*3@ֿ6M쫍?~ì;$?z\O?mV?FB v_(̿jܥ# οg$ѿCBX??- 8N3#?$ojpv?΅(~FǗ#t?5^?SQӿБWٿK*jwʿL~?6j?}f,?8?wv?n4bXWo?.Z?BWn?㭯Jr9?r7?x &̿iF>տШҿ-̿&6qwÿȩZ?َ#|ҿz 9d?yq? CUO?`?M?üRqֿV$ZֿR`ֿv1/D\?o'4xКhqrI?@K{k]JV?PO?[ҿb Nz?;wʵۿ@F?{=ˊ)?WL|?H\?)G?bk6ǿL3V#\g[Nz+>ʿ}\iտF ?7MK濘ҿ?Fcx?-I?N?iR?)S"տIB?QR{z7?rW?: UǶ%yx? VAt'ƿ%{XYT-gQ5ſXF~ȿ)?>%˿蝪HT?ho?w!s1?VF.p? jjп=I3ԿN1ϦԿl䶿ؑϭrzq?.' *Hj!L#?F{@)Rzng(p!?(N?[N?d}ShBxNѿ*~.2)3ֿfFBڣIԆ?/~?<#?a?ޢÎ?:jڿr?yܸ%׿hϼ̿wL,^-y*ٿh4cç?<j?*R?j?rlw? n4-i i?_pB?׷hA>! :sn @?J, ?QĉY?PT}b?*P˙:kl쿿Wg˿ .FIKڿl׿?y ?s.T7-j?q[`?3!ῬA?!z)?n]{ÿL'SX ÿ6i@?-ME?7#L7?tյh? )9',ѿu@ٸɿX(ha࿪ЖX޿*oM> ?.!M"XY?QB? `9?4?vߚBkiʿmR[ֿrkNۿDm?>sA?+?<{l̿E8? ƨ=hW.@?j20ԿiD??O?깉UW?9?B|kc?ف o7ҳdq?ӿmD.pLhJ?a2utٲ:׿Y+4?Ӕg?`C?2?$y?hv3"J*Vӫy^6'rZ|0Ŀ|wE?SBy㿒QewIJ?of?1wf?@rʄ?zQ#Xrr&<>?`*?:V8?/Yy!$gĿApJտV9'տo\?a3俐i ۟˩?k?Y\?=!?6BT? \ٿEs^ *׿#B(\ݶG83S?oy}˿m[ٿy^Pֿ=1!t?mٿk\oT[?=?1V?`ܟ? xͿiJ_鿳:cvԚʿMN?ʸ +;׿JfU[ʿ$S~vBӿJT-+?i?;!4dxr?ɐ_ū?􂂣?{L~?42B*?')7K~QR7ȿZ߿'A?> u!%'w xP=?˘?Re[?2?)7ѿIrn@ L!ƿ`"m<ղ5?资-GfC?z3GS?SzhkP޿х!?t@P~č˿H6LMh?|V!翞^пD?Ob%?8gA?3+qT?>?ԉT?kSU1a,ܿZН?0W sΔ?/!?Ӟ$?j>?_pC?~ܿV,$濞9ݿk[ʿ_0Ny*?A-Ŀ6zSſ{ ߲N2?Ilz{?=?3?Y4_׿%22?f;5G@ʿ3t?-GV޿^t?Y?,^(?Ijf?2Fj?gAqҿjVMԿ6'm<ڿ`/rF[s?g8nΈ?X?6c?\Wh'Կ^:8kX(m{A)4 ?t)/۹+$s? q?GKkֿ?0?Tgп|[>ĿP?"Գ&?e5?gzf? V?gvp?rF"8s[߿ǹ?E;]O ,ԿꂎN? d?qCE??Gտ?w$ 2῟Wd?X:?mK2^1?鲄|?ʿ &?-R`ǒ'c>Q~?rIZ {˿ZjetϿz["ƿؠ!?uU\?xAՓX:?j"yx?v[?S?DPO?c jۿ߶?,Ul{?U[/ڿL0[=[ܸ$ο(֥? 媥G_ (?F0_нĿ$`0?`\?Њ Je?l=U?*S?"@?^X|?zӿIώ w?gο ?@nIſhi5wS?ֶJʿNF.S@?Sxܯ׎ÿ%ȿL:z~?;[}ԿC;ZȽ?Zզ?J]ο=?`TO?(Rۿj=׿oцYJ/ пA)???8>J?lv?1mrCc?IH )P5ÿ]C٭?IW.cƸ?p?Q?Hv"?Qf?gtؿ( Fed۵8b1?>۶ÿA?Ɛy?H ٿҠl?dw ڿ(е,?RjfĿ?`P?[#?0?P0-B&Z̿{:7ӿS̿P0,?wїy\pƩ?l?1KпXך?x,Uz?|R*׿HqZ.f2Z|b$.E??_UաɁ??>=C-gfW??ŸLJPֿЭU{9e㰚??&?S Xr?̻:?T$?T&UH4?J?-9W]ķ{׿c?L¬E쿅3Q ѿ~;7 ?n,??'k(!C?شhлZNEG?K71kʿ0Pe?Ă4Ǧ?ZU{?:!8?j+ɿ9le㿙'X?[?(琩?绔ֿmefտ<7׿E%׿y8 ?tpZ-uu?'?ϡ{O ?V?/,?νݿW_Fv1Oٿ{o[пw"R?1࿡&D7#?D>{?q1?dT ڿFEFB _·ӿPa?Fƌ?,hʹ?횥~&9? TCۑ?>?4ŷ?o `/'aB~ے@d 8ҿ;j?,$A*P[h7c|P7?`;똦?REX?BBd?pUuBy2I`Yyh?,y#dP ?H8ÿ 7Mz㺿 S?zt?8MUk ߪhj8?~Q:ӿH5ɕX$:m?5XE?s(?)g?O=;?%et)kRbV?ؗJnf?nOZ~ݿ푼fVZ Pҿ^_Vv?>''? <տIo ļ C?580k?t!M?99C¿ݿx?4?e5Oe˴¹q濍 +}4$пY?]b]K}?`﹫?Rrz?SÿچԘ̿Mq?Q@?B>D?܎XvƿY. _?\ү?(Oؿ㴡ؿ/H8:USݿײlͽ?+qc?Z]?e^J?%a*~?etnb -?ulI?X/%⿤8bֿy)lQmFUԿ7m?SɁ?b?Hq7]ijٲ?sϴa?^P@?jB-?o|ڿYR?"DʞA?tg1Aտr?),`ݿwl?-Պ?]i?0[z?4SullÿMKɿ OT̿QK^|j}VY?_VW?N?Oj-?W?%.Coޘ?D3U?..?S;uFZ ؿvغ?Xak8,TQ~ۿY%W?$K`?Wֿ#(@?ŎW94?Ӕ?Q?? 1?\`Gm~D?hk\nʐJƿBb? g' տ:?jNm?THԿs^C?xdVĿ>.ؿc}BlH6?S.?1HF?jerX?ǧ.V%?Vq߿Wp-GT&c4ҿ(#Hgzt ؿi`׿Kt@ѿF6,п۟֩N25ؿ<_]?#1?& ?^nh ??VIj߿X ?Cq?˵>ܿa$h1˿P1ο-pG[?hS~ѿ)PӿA*Gs? h@?Ѳm?B3sJ??Ο:ٿ{]? Df?9/Ͽ[ֿ~abƿ0Jm;n?!04!֟^CQ?,po?k2^3?H3%$?ޗ3ݘ˄ jԿ$-ǿN}K(T>&?PDѿf_$(OZ?eS??+%f?Yfc[Z濟3gȷk(ǁͿF>iͿW6z$?F5stMىϤD/\)?]3I?yq?F.? K=^^ߨ`?`\̚#My?F .ٿ7f?"R,M ӿ{!2?.*݈?hsz\?a?j[iɿQ ׉?z ?=+ܰ?rX@пԗٿʩdyN9Y"N?H]J??ڑK?K?q~0r /?`e[pԿfO'9 ?I}fK)XȖ?H?$'%a?Șͺ?ٿe 񿃱+Ê7֐ؿX,5?Xq)Q?X>EX!?+ǥ?w-8$0bQ?,2F?Bec]ݿ'T&ӕqѿާ}9?ɗFH?Vn?GL6P?_r.? KEn8M?oȿ1:߿QUn?ʸq򿞩uy]ԿA>2?Dby.?X_?a;M?mL?я["0N(Xpp?ď8x?x$vcX潿l[֨z ƿpw:PKx?a)U?=m ?圾x?p DݿoJ?JH٫?הּ]տͿ"i 2WϟԿQdl?9 Xe?71ڂ???*%7x?>x?NN?Q@pe2g Qÿ{A9Uҿy6!L?NK~ٿ<bǿ|p'? O?N8?e.(\R2?{ٶ?R~?RYê?4Zs\A?-(ǘW?Τ IX?*!<߿^?D24>οn ?xW?Q?s?ë4695ޟ\)hhkWRg/ο<|׵??(˙W?ꮞ?ĝɭ~?)[?y""޿(gʘ޿ ' ſy?o᪓ڿr@.j ?S)g8?2dZ?KIcI@'D!п:bO ?.e{j? mʿqU?۴ Yv?>eB kFӑ?bĩ?0?X!TA?,^?g+tIDǎ?,P8kË׿kiH?JY#9fr _ ?Zk7(?h|i}?{¢ҿ73ݚ ʿzm}`WԾZ#?ٻ;!?yH>?M+3?T{k|ЉiIO?HWK.x?b32ٿ$xׂſg zddK??el޲?N Ю?N8jzؿv2[?K"1eǿOb{j?/K޿& 81E>'x?\Fi?D](?MW S?ĿX/߿N0Z0OԆ໿}ъ1ݑ?J/ֿs%sz?؟_?!tfA?d&%?<*?؏G5gWH_?X.xwӿ+9`?]Hm߿ 7"l$?Qɕ?O*S6n?G!?Ԓǿ+4,e Կyl?׸}),"?'gتD«`??4h?z'bEuǿNQ+? ',M`m? ա?F=8?Ps}?USI?IX>ѿɌaݿ0Os(mvԿcjſBW!Q?S0,üs{H?[?Ww?4.ؚ?n? [?f?Q#*?@sIVrFa޿ԛ?S\u׿6Ӳ'g[?c࿩ տ$y7?.=S?G6O?p$#?[@ 9?׿IQſ7StF?Tk?X0i?\+=&g\??SFR ZŘD᩿ܿpӿ`wW տͧ,S? m>_Z+ȿr8,.?>aTX?HX(?|?1M?~Gw+-zγXf?@?пHnts$տ;/ÿ&~swֿ)C?X(ugsf`ӿ7iIw?Ĭ?ƒCtMyA2:_Vψ?D'Hu?\P?˜u?¡?cêҿl6VDܿޱտe`ތk?4R/C!0.ĿzY?u*??*"v?\ ^0_пnjΠ ǿõ<ܿ74i5?=I+BVZa~SiſPD{ ?k?,`?fP4ZbM~:iz?鎲&R?ʇ}6^¿>RzQBz /ſCACĿ{Q'?gx&ٿNZQJ 5H[?8G??Q?x绿z ]9)7c:]п(ꧫƿo<չ ,?λ#ѿ`EMrq?Z2)?Űa\ת?v?[:?F' %cTqѿP* ?ˏft?[ucV'ҿGmֿCտ5ʿO̷?E|̿5R?FBG?XXF={_?ze?쮅n9ԿM`("Կ͹Vῦ%8ۿ޾nHc1?Ѐ$m˿X)qe b?81ax?r ?dp_"޿ɾ?ſ]KC${пr9IϿjs%ؿy3Ok?Q.Mп~7l1S?ŶjlOV6???뱢 ?:F?2A^Έyp?r:Ų;Ǥ˿2?4MؿA0ƿ+ˏ?*L?`'J?Bܝrqb?[;,#? ~i U{ ?< ?nR@ޣ?н?&Қ^?y¿e 8?%#ĿC\͹qYпJ,ؿ/-h(?oY*z!#}ſVj?ƹN?l?3cH?cDISITlZ追S̿+5p?o5rÿJѲ$P?6ֿ`oi?Prlb?Yj<3?@f(?0?\}¿q?0!Ϳ\n̿mtp|?\sr? tHb&_?t?yZ? 5?A6?~άoA?O1-5ۿ)v?^RnWпt#< U?zkCjh?ÕoL?S?K?Gb,s&?|J?oQƿL? ϖ>mſdd*?\Yo]?{cV?3h?n?Ggq3? %mdd¿Vn7?j5H߿xM?`E?V?ɿtBPr?qC?bC /FDbckigǿ)]^?m(7$ֿ<.#7?̜qw=?gdO?r0p?3'5ֿOłJt׿%TV)]L?6V?26S?Ff?h,[e?NR+AN῵BXk߿9hܿE?Yk?lTǿ3_n?wAS/?SNqb,Y?O?p#XƆD~3˿bпv `mn׿, +m^ C?_4dإ%4=п̒?3x ?Y 2?Fg*? _M¿iѿAM`>ۿ+?Njl?í!v?rk?<CL~{iMk`Fa:=?Rsg?R!B?'&?;? c7Z ?[p?JJUBΉ鋨dnJܿ"|jm?!_0&h?W?ݔ^?CU?f[O`^Ui?zgD4пvt?}GZt"Qb- ?>Ɵp?2RG?UH[=?n]ſq$Hѿ܈%ZZ?6 ?yQܬţn!.Mi~R˿*R?!#_k]"_лe?FA?]'m̿Ij?̇-o?́Ϫп'T:%?3Ss ߿)?P&?(0h?.L@?|z:c?0 bۿP5j8忠vܿHJ[/q?uFiǏ{aE?Pͭa?SJY3UX@;?pH0פp`Կ޳P(?ܸH1鿗lU?lC6?XYҥ?YW=?}*?J`N }H=d$gտd?NrZ4?8Y??&qR߿_#D}??q.ֿep?\;d#rxOM俚pR$ÿ9o{<-]ֿ*}?w+i?ΐ?vy?o?Oɩ?&P?鼿`ڿ'b,9_տZHӿ¾?|:JE^׿Ԣ?aDh?kxfgǿvI#?̖j?_踣ؿ&?:IIIJ%Cҿ63=g?|"͚rq?{{?cftؿJ69?+tgx&j3$?5` ֿt"+?"P?{ ?b\??uXx?&>"o^ѿΥ^F.ҿ:֮Aȿ8 rlfH*/?0i̿wϿ@d"2{:e2?AS?p]kV?=,0f?MҶ\3?C;(?XR58=YؿfӠ?*0֠.ȿL??:=)?׮?3k?ud|I`3F ?"&7ƿڿ@5?uѫVj쿘`lͿ%NA?_6?k W?N`L?}?X xk(?8gXʲ #rIڢ?46pݿj e:C8ع?BiR?OD?U¡l?f˽?4{Vl8,]?J\?5ڿX!ѿJ΅Q޿'N?OY&|J?ogٰ??į?1?%_+t̬?9? mW`(R * \)%2ݿ9xOؠ˾?RX?>2CZ?di=?D=wᅩ͟^?C1_蟪D5o<;L Oӿkxͳ?]z{?I\?R獵?i ]qѿ뚄*B?~y?:o-?+Sp˸?<$F)?ۻv8Կyi?uw򷜆ѿ``ҊYE4K?ؑAS?'3?l \z4]P'cѿ eë?v˿`^[l?L9 $? R;пʜ:?WUQ? ޓֿ ʿ9iѯIп:Z?^n?Cҩ{?jPs?f(?)Z]񿎾X?L Mu 9((ῆZwDx?/djE)ѿ1y?K ?~F? Ǹ?Bt=K4?/8ٿ!'녾)?'?/Z…? 7+~&ڳ?919ǿZ%.PiHڿjZPG&V.қ?Hm :P%7fڰ?j+'q?yAQ"?ݯJ"?esVO?#$ӿ?VUQ?^ʿǛr?_̧տ~AaJ9?h#sM'?BX?<.?yJ> 3׆ѿP?\_ <ٻէߍ!!jֿ2'ƿz??N ?03X?TO?U?D;?c E:6[6?kn[?tiۿ$}M\#ο迄7Yp̿ ??XS%?qlŅn?Ea?;Ĥ? /x8NwD?!m?nP?X$Ὲ~3y?8$̸jFݿ?[P?3:ZrjZTٿLv?4\[?}é)?J*$?5'?7r8򿙜o?P8ޞ?ra(i㿤J{M?k)󿴿ӿ5?Sw?; ?ƿB?duՑ?Zۿ[?r;ưi?=/?ip9v?&+LƿT6?`PLGI?X\3GtJ@ÿD1rE_l+?OePRfJ?W?3ƿf\?RSJiȷ?3;{ig|?`Vϔٿ5Kń?e+-?İQ?2׆7?5&?I0D,̿y{F35տ"] II?տvCgq,ȿç?kLҿe "?+`?fi ؿ@E?; xص?r{ >ؿT࿽Q_>M2;ѿU?*(2?2X0?Ga?t*@?c.迾?Pj@3? ڿޥdԿ:Dި߿׺Hq?&vT? ?6j?z`+ ?L翡?:?#?xkP4տ@ʿ¢H#fJн?߆t?“l?~4?"=]9!Mk;y';)&Q*oҿ.dY̿S?5_ῦK?Ӡ ?mJo HO)?PKJHp}p}2_fbsp_1001_coefs.npyNUMPYF{'descr': 'JbSjпopп8ÿ߼?p47@J̿e? R~RZo膯ѿAO}NWz迤uۿ3~[E?AY'#¿+狌?hrO?ʯ-ÿjn yܿ\αӿp{6?@w쿧?*}\?LI?'vJ-m?Mkk??|Yq%V?$$]tVĺ?A!fۿ{\?'EԽ?vY>e?djL8?W5"Gl?./ro?5I??ɿMft66 ?~?[?@xtx?mxlӹ?jҿnakL?g.eJHT~&?3?#?_ ?p_?O)ɦ? O~hyO=?ӝ'Dؿ-ڮ_]ӊ^?u5#;޿;v2+¿@"\o俋Kġwп/'-ÿlD\?rۿ*?ݦ­?@οŘg?C?iSq?|?oj?y?RV?Ϳ`*dj?*E&?fA?M$ ?"?Pʿ*>?.C5$%?9@?\ѿNƻD٭6~fv2lWWֿxƿm3beJ? ^(:*?F&Yٿn09l?ػT~`d? ѿ_QטcϨ??ƶg[? I?x[?2.@F?zQw܀3?uVؿO?|ݿrQ%?JQz2׿`俳,fiAo^4w?}ɿ̓7:?W@x ~[?V\&LnԿo6;^??2tY?]ȃ?3޹?-uЈ?,d+Qnq?5p6?Mt%?8ǿ ty?pDW̿$?)7:t?Uu5?itVпHoX?zfEQݿnt?H1A˘޿(濊f]?ɮ濔VфοygO?t{ݼl?ܥ?1 T ? #?1(i?:?9Z?J_Kܿ4}/Q俟lvI==ڿf?x'eM?$H?ZNVQh¿B?m?Z'?<Р̿V)=?.٨z!oÿ*lt'HQ_]X#ӳӾ?~𨣌??929?Gul]?@q?[vB4YJ?YO IYr?i?t@f?.)\?ʷaƿsL?,ߎpn?\ۋP m<п R?LL3꿴VgMпag?@7龷Fx?=h90Ϳ6RſtD>*"$] lW?h}ҿ&G1l?dh? -?8(?%?6Cl|ҿEA{ԿrK}T7\?as Ϳ*{[?Z?Y;?z}ą?;e?¾S?;14Jh+?7~ԿcYv?GSjc?Р?1]?Ɖ?BT?$^tȯZaY,{>/w;?lZwԿy{!7?PeͿ T?ӈעm5$ѿ9 .y?\z/ʊ\?gPn΁D7(G?l(K?@IWB?E3? ?@Ex?ؐ8?\q8'?vRޢd'Eտ@oi/({B\ſt\&n|? (L?ml? ۿ^.ܣ?cAMW30~>?>\՚dnT%_1JǿH̿#e5߸K mPtÿ ʠ?g{ڿ>ߘG?l~?h ?FHy? 1 P? 6 ?mN?}v?9p1ƿRFz|(? L?pǪRR/?~?’~NNŶ?ZJXjY?㹷ܿoJތ?K5smZҿTxBepοΩJj< +Ϝ?wm{?zHAg%? qv?!lt俰?e1?\I⍿?? -?0j? Zn?dB`G?忠(e?ɔ$ mBؼA]BՖͿH!Ŀڡ>d0wf?(?۲0+ڿodпk*:!ؿSt=4%QŞAK?mPoTѿ)׬a˿#Kh=ѿ2fsuɿU:Z?a'Mf#?)\?dh?(C&?Lm?(Idd?Hz5*?Q&h?broٿ>Z0Y¿̃%<}ܿJ7rG{ɿk{?&1?H=@?:N?z(Nݮǟ?أ?R?BQ݄?8d?{뒇?F:?TƙA?$ ?`٬H?ЂHR^?Pxbd?j_i|}uпr}Tskz\V>\:Z׿|:VP?PCn󿢩x?QZu6? r}T(3?>ҿATH㿒=Y}K8rû sTX?5z: ES?,?TDֿQ`5?ʀZX?pI0? @'?v?I99?zf?4+\?TwgD; lp_`/]?ң&ο:t?V?{ ֿV5ނ?H@g?@_~?:X&<;~L?Y{UUiϿ`-&-PeCHq?#/?;Sd?ǷC",?fza??:)&4pTߔ?߰ܿ@Ϧt"Z ?-~Q??wN`Z؂JXH\ӿ2Q[(>ϕҿ+/?*[fA(?}{?Dr/4?'g?k̨غ?.lAzxPᵿiͿY?ϯ8?ð?N? :*W´\@ }пT @nPԿ}b?~C8&/?К]NF?3?By'?ZnW? ~?0Կ Կ[{^?':Em?q?ם]U??Ek䂠?.sx?#cԿ Me? ;ѿp~l 9G¿K8^>ֿz%??cI'?57N":?$?r˗?&tQ%W.}ț?BrA粢޿X1.? T?)lgh?yx9?)Mw?tա;?C?<<0{? .>?5iu]?0C,?w?$}@[6?l ?uNY><7wH?A->Ͽ`M?~?h8?Gy6eڿ;}+aCRֿ={B~ҿՐc ?-?{@ǿS?͘?ʈǪѿ}'3?R<??`WZ?S^ȿ\~.?ā@*IW?Rlܿ \6'wVL|0úο4?v&]?#ڍ>?˟ڿ I?u?SycF?%m?.Kfg?K# {69Hp܁?wyLӿYĿËmKݴYӿ-72&Կs4.wW¿ $ãQ4˝R?XҌֿB;K?vNo?пRw}q?is,?\KA?4? (?i?z$?6qn?lҿwp6?C[Կ*1 &X sտ (}˿cM*2Iڿ5s ֿ|(A1?@?.הb[? @?rxY*W?.N#`?~ ֿ0Ydc?r?Hе?O¿cEO?]ft&8`rQ!b0"I{ݿ{4j||ezο~??ᦷ(`(R?Jr? 9?#J){I?y?#\-?;l| tῶe))?jt֭4Fտ{G@(ֿ(;MKܿ7cвA{̚?vBԆϿ8?͊?BxAu1ݿОc?\ڿyoֿ'ѿo ^‡]ֿd-;v?Gnr˥?Hd Z?rvc]ʿ69j?v?,ɭl?BA-?Iki?*^f?d?G)?3?JM?wO؞Lt0HܿR&?]4?ZsZs?+l?s,mؿ`3?oFT0?0Fu?li+_>?V>?h?B׿7(l߿{!aؿMcbڿ]`]Q3xC?gSܿ"Pg=?8?f3eG?Q?&^e?l"I? F{?Tkx?A{=[p̿j6?c [yr㿔 rKÿzlDοsا!ݿLHx׿[ ~pE-Z܇.ֿՠѿٺ2?e#쿁a&X?0?=NC?d޽??#n?2ѳe&?lB ?qsB]sDӿaD'oUu꿄+Gޯ)?.0;?6n?ZƱ֑?SO;a?E,lM?%έ퟿ا2c}?uhƧ|8ŝ?@nZF?sMI?gu甔q=?V`!?m;I4%y?.?m ?!`}h??!:?˲?8?e}JL?/yɐB%^οTE?ӄma8Ҽ$!??2Wf?)|[?~ C?F„Ӷ ݿl,ſοq?O"Ң|'?}]h}ԿMc?X, 6g(ؿ<賿XH?3n?w/-=?ZI}̍?]G?Bђ^;0ik p<ҧbUٿ!vvrL\b?I]djb㶀u?jeп?*zî?.Yz|ƿNO$癿Hl>?a?vƿF3(L]ҿ7!ӉDؿNLɿfLX?5w'+)hy8?n\ ?(?{f?Ȑs??C=Xm*'|?ơfhb׿PDh̿%DJqY>ƿNCl?gvVt?rL?CD ,-.mm?}eS9?) q?O%B?t?G[A?dM?`?Ka_B=? P9a@ؿ~y?; P5oɿXۆ%t/hB?42]x?_?G*Bտs4|?D ?Q͵*[T? osʿˏ6 ?x?(M>?JD? PP?LJL?0vο/j?w>B?Hƒ0?❥~$?]1zt?Xƿ0(IR?=gI1m2mv%Qf?Z.ut&'?߳?׿C&e?.oY}uӿ$k.XU'eq뿑jſ<?(3?Id?4xJ&?ݦ?!G?Xmt\?b} R `?5x+ѿL<;̿2|耝S ⿧3a ɿ9+t?H,+A?/wY?sg)R?,X?|??.^?wР$-?d=俠N$ݿ×-+J@2޿ۮ~t u`˿ VnԎ0ڪn6?5|ro7?fdQLXt?h ?]Y]k?1Cu?E?H8*?7?G,?Eו?|5&Y`?=Κ0q?iOu@%F6[?9| "Q?\ԿԂ[W׿4lL\n?QKտ?Sh痆?fVtŲGh ѿzsۮ%Y$\rPWʻ?lB"οv߉?.?xZ0ٿ^W|?;IL?VM\ T*?\LοLzC]?Tys,t?Gyj;?w9? Jj?44u| z sؿW*r0E?U%?N@Â?vD0?%wԑp?Tp?M`~@?\˳ M_п Z8&鿆l`Կ_D$?7?r8r?7z%?kYe7F<Ͽ/Q\׿jJKj6?=czgֿ Ĉ?Fқ?d2z4?f:?e:?cmbR>?84?%q0̿a1A蓿*~$L[ǵ֖ڿRЛ򦿃) ?ߛĿ~Ϳ]Ьѻ}=]="ٿyѿI1Ŀj W9?s0?lMyeEf/ڿ?Mǿe@?^n?#.1?`?]SV?f?4@׿GhV?ɫyBпI}Iؿ{9ȿt^i'񿂢`•пo5nPz@w? n>k#?P:uXM?TPvH?͊U?x} Ć3ڝowE߳lÿ\ ܠ!?#P =yz?P*r ?L޿d5?ĮuϿ-HNi3ÿ4jͿ_!࿬н"MԿh!P$ 7q,CL j?CYUe?G>K?ЭXpw?i)zW?OEb?tbkc6V?׫(\?iE3a;K̿njSۿ vmSHɿT [¥vH?얓?)XN?{*?OTV)?/GT?@-z{@ڜ?f?hb?ռe#'~~qf?m fѾ?YDcM΂?'m? _e"`IF⿦ ꃃjRQ|vп8[o(?T1Qlt?Q?vƌ=)?UuSȿ2U?Q +p3ҿEk?Gv?6l`=?^*/?n9Ae?=s }a?0Ŏ?񀞤q\$ά$VnHFjLm?e&ԿH/u?(=?>u߿ϫ?U͜ӿ~iҿ5-3oFZο]+?Hm?rOx?s}S}?1He.2(grqٿa| jտ1q?'Zx?d ?s34?̊Q?/[q?B5꿚綵?xD3u?Kr9^+/ؿ>4<o,-iymQ?w eߥVq?y{ߩԿX?s"?@O2?Ym!?S":? è?#;ܿ;v?ݗ rB*?"=ݿv%d?|@? ?/ȯ?ܓQS}?jL?q,?LwoȮٿ~?Ŀ;U*:zؿ `ԡ6#?Fmſَ?Zپ-?ʡMڿD?0?{췿mE\ ?VY8Q`ڿ2' ? `?杖*?tMI?tsǐ:N?47?P￝1[I?[n;F Ŀa4?N]0࿷7BWܿ7> . Կ٧_߿04Q^?lQر(r?CпQB.? 8?uKd?}t8?Mm=V?t+o.?HB_'Ͽ>+?!r@ȿ$ֿDX6^ӿM~{*p2?D $|?QUT5өDU5!,1Y줿#:'/?$. j?;_?څt cjq"??-CzFp01޿w%㪻ܿ6iӿC?Fd?A+-? +ȫk1N {ɿ4/߿a諅*pÿ=a??x?m?:(?&z.?d gSN?w_迃D7ο᜚ljM?iC&G@ÿ$nuCEXٵN3ȿo?I?K? ?1Eo?`0UMZ $_M녺?4q@bxܿg b.??j\"6h7¿xzQ?* 忤z?ժvL/?J[`?Std?%H?R?!ADv?]~?(>0?|6~/@C׵񿎩ڡ?v&>?mUvb? X?Ra2 fv?ξ[C?#UMo%?Ї%wo?8S?F9=?+?]?Nf:Hzr32Hh6ֿ(;kxhFHÿ/3?dѿF???P"Y?Pl⿌6ؿ'T#K{aEWΤD2s?>2/iLh?Z0?K+[?s \?(?6?E% R߿ 2zI?izd?Bvb?,??&%?dҿz?{y81jkQc`["c!ο;(?0 ??=?%C(GU?Pۼn?0Ց7?mE࿶n%t? Ϳ??d5Я1?;B ?fuKs? K6`?ꛘyLD-Rв?V}Xӿqr?#yhQa fLJXʿvb?<>ݿ~4cԿFĿF P57࿉H.?tu?ݥ2?ami?r W$?_Aj?HelQ`Ӹ?ҿ/Ya?;3V?́VZ?tn?:e zv?Oտs⿀WG)?Vm>ӿyd?;k*'?1vޑ*cͿ{ïl~vTiO_Ԝӿ-)?, ֝ [[c?H9*?<[Tr?m?? +?&U?8F .,H#}?瓁!vsTeepA0AĿ,0 j[26֜Cѳ?Red??d?>a( ?2M=7Fhd,;J>XmZֿ3Kr0V=?/Qտ [@g~qmiK(ݿI_p%=og?Mw?? ;v?Pڴ?=C?[qP:?q%?ZV]r鎌t4J@?K"eRG?Us> B? *S˿aB?9|F?&Kք?<]j)1? ׺!ѿk+,S̷VPͼp(o?,cw\?VNI3Sv#?(㦿,׿[lxӿGqN?@.**?B'?0V7*'g?&k?2?dURX?b?:s#?Y+{Tп~ݹd0ýbᅨ;Ѫҿ~{v_?zl®𿉘̿Q?nɿ?ֿnΏ?7bTD9՘?"Gv?0G<>?vHd96տˁ_hзkLy?\=?̴Hw%?S?S_w?H"4ZEq#O?؜vD߿W&6?U]??j0T3 ؼZܿ߿|bFſP?fh3տx; Ù?y?PQГ꿱p?䆻Aqڿ^Nؿ \3ҿΘʞ#-Dٿܟc.?U4?Of5˿tP?d!{O?*mH0d ?e6?H?h_{?CF?'??;^EcOּ?ԗՄ'Peo?Vյ^;!QG? ڿqii~?R¾ja?` ?Z*þ,̿(P;ҿȿ.?iu?#T,?vU|?4E?ECBB?0#`?ADyDt+^Q׿T8Kl 0h+?)ʶοm?pqуKy8^a1?`Ac2% Dv?t[?>(?} ?(T?%2?4{[!WֿtzDRt?S|tfc&vֿߣs쿄܋(bnɼؿE;u{? j _?@v?tŝ}4?ҷg?!y@0?V Ģ?(`uM;b?*տ?ɖDg3@CR"y¿?s{߿,%AC ?-ޠտo1CcRԿ6y?J;#I!?B?a?ƣau*?E?׃?.gŪX+(?BEk}m?é~k)¿j]Dg㿤q?:?9?cP?}?Vf? K%G?ga1￉߃|пPVUdͿDO~(ϫ?j;7^?f[#? w4-? 8|t?֌N{? e6Aп ?;'|l?-h?b$sѣǿB&a(~?+vXՁX ^ ?)&ѷ?:2)W|?L˩? 竞7=M5?; ο4?˿ z׿4@@(?)+5?!9, ?B2?٩W7?f?V,u5R.s?9soڿαD^ ?5 ǿ+xfz4Zo修QN?\Ԭ?dt?LwHO?0??^#`?IcF&m?y w>ƿr̡??#*qRο^?bxѿ #]=1n\?i 2;W տa??/Ǻzd" 3=?$+Y?R?P+?EQ1Hv?/ո?E?ޝ4?ɱJ"zBʠ?\q[Q?nM}3OZր?^T99ٿ#+%zw+Lo,)o忲=k٢?kſ~Ss1ſTGB;0OտnqFǿ%+hԊ︪c?48hLZؿR/?mH?  k1տ1t?N |?TH?!p>?f[?2Hi1H00A?}Fᅫ;H[?Ik^]kƿ髆ϹT?WʷՁ0-DZӿI?ԋFe?nD_ tV?qsqJCٿn[XQ?̭,?lݿB G"?\?d~m?m'v?O?>1A1?كֺ\?,ul ?0d)/s˿:?B(i(pk|$3bu?pϿgld-S뿎ש?S?y3ά~?97 Ja?W!8k?6*P?:bAʿ K{E?wP?:fz?JF`?n?bha詿$\SÆLkHԿ ѿ.+I) s;˿8С?r.  ?"! ==?.ɿL2漿FտD`8Կ֨ΪwϿq鿰jQF퓿C?0koy?30C?$翝` F?ZW^?e4V?ց?m֏?J?r{P?Dt俒G?{ǧj=¿(߈?VNn (x,࿠`ƻ~_k?u[g-n?{-.?i8?-ʳ?8P?_?m&?'a?Nx kڿ+5Tɿy:T{̱6n4ZWyҿ1E?\VWkx?5Ű?oĿ'6?A'/?;+CK?].?ܤ$H Њ|3?;桧?,%Y߻?6$)?nebUҿ3' lӽ$Eh߿D9J`ɿܿ5?%R(\{*q?P\|?1\v? 췔h?{a?b?Eb?BBW?pIwUV -HYɿRpgUBVӿQssZ?IP"qi?Lw!"-?![O p?;?]V?!r;?TF)$??5M?7? ?Dʜ眲VĐ"?OLxMsK٧aXzpJezпlp?Ƴ5V.D?4?a ?ֿ?I!w?jܩ?I?0h2a?i^Z.x_?4>Z?*<?: `&Yb?b?{y|q]\Є?L"P3Ͽaqg忖P[ gq+44?;?r4#?mQV?T?^D? bktk?"h4񿴟akOֿ9.f?+ C -eɿe?@a}R?#(?Wix?4*9Rv{a"M¿D2:a`(cW?WnY?4 \D?TU>?1: ?H2@M?ƣ#g׿ Մ? o}[?m3k?wֹɿ2?%l/XV.pF6@)Vֿʓn迸KĿgCѤ?#]>hۍ ?0GU?W`w?$Q$?yC d/?dx?b;TQB?g!- RZѿȟ,+?감hi ѿ'鿴Gq?SE ʿ|_x?Dѿ+?$vp?$ 5)޿yu#?UֿSE,ֿZ)RLB.ο"$nhƿё?j9:j: @sV?t?J&5sL@CDu"O?Xj?~[?Z<v~Z44Կ8?['˥/dd\+jȿ s !ӿ=| k*kZ?Ҁ?1$k?R? ?3Q=v7?轿I9҅7cobn?ȹ'HQiT?ˌf:Ъ?i2~y?&,?\y?c[? I1濡oF?OҿkgQO?ˣ|l谿T?~tk?p怼? 3?w?NS[o?ͻN5(ēig? !k8UӿwϻG??1Ia=qީ/ٟ࿼?3rh?fOȞ?{a?϶>?mB`п;`$(? qc޿r,yeͿoj:пǙ DhaYq?PP5?ѲN?p?ء]V?e?W׿:կ?PgCb,B?bB#ӿ{{9o?21ۿýq8F[@"?ܿ;ƿ? 64Q?]ä?jQ˿K?|+^=*?ދ6CĿ}/׿h1k9Sῧހdſ4~p? s?U4?Wpe6?txN*T?jrCۿU?s-ٿ=>R ):BͿ|< Q?3LE?L!EnݸR?5 ?(.$PC˿8ٿ7˖ƿrA?Ű~߿?tb?PFڿ]$[춿>< <ܿ[P߿SRO)+̛ѿ(uA?~ {Ba?$L?;b@u?5? g?)nՂ? :LϿ5!Y-H? /Y1bٿFK;uT4$ez[b@s ,?-(2߿YE?nB?*m`qyf?ro?0?[@ ?x+E?)N!^?CEU?׿Hْp_GέſUV)||ۿ9Ҋd7̋.u E0T?Oi*B1?({sr?s? 3G?jE?cO0,?03"Կ}I?k%_翠fD%&ݿe #ͿbQ`:.žs۵?9 %^!?.b?Xc?'' ?Jt?J-LU EտlvO% ?ҿUWJ󭿒 N?}<ӿȍ~'7?pC{ݚb z?ǎ_?Z03?*;K?};N? `0#薿tiJh4m3H?p#U ǿJC+ԿDݑ? %axe0h֤~]Zoخ޿d?M+?m Uu؏?4qn?-k'?H¶?kT?ofG?RvEw?'<}YB=ҿz?FmUU? ?c7?3K?DA6?Rw2^Ŀ<.&--N/Q8߿VM_ ƥ?uu?gԿ@Eh? j.?bm&?O|bz?LdL?,+-?8/??.)տV]wBQ@]'?C տF;u俅п㴺h?,:%쿮i?6J?De?? y’?z]@?Kv4俧\V?);B𿰚V)ʿe>ES޿0EkCm$r~k$ᇨR?Ab ҿ1o?6@3伿@ wӿ03gӿ}LǿULQn?a//0/gV ??HИ'V{`?'aw?,.?:]zWpY;(VA??utʾ{,(P` a?xU+֑¿e7K@nĿ)0ȿ#t^Yyݿ4l0}}Gh_!vϿY,*h?V迍sl@Pt?Zb$?L`Y??p?MgԖr?N(꿾zI?6-!?d.?[Ώ1Կfp&?'>Ήֹba?xýB\fӿ\'{׿rw8&`ӆ@ÿl}"?{`dlw.?1? w)9?0"?m娴?D?ISkϴt0-?ufٿB\={CϿUﳽf(`;es?'PI\E|E0 ?†[?Ri?x??cJTv9?(W?6 Fc͑@?<o$lI@HK?_:߿Y,T칿`O7V?Z}ѿ:E?L Diο]ǿ$$ֿA'@mH<< mٿ,u?FivL6)S?|פx4?WHȂms&> ?Znx?F*[?_?(&,0?~*򿱪|V"e^󿉽,7=41?Aj{7\T?t/?L SſՒ7j?Y9]?x;O k}bֿm"?vοB+??C?f?']yſ*Q ;RhFmſ$j:d oҾh?*g޿q81=?0y9/Z]L]ο%?P,?=?P~n?@?Xg?F7Jz+UD?I|Q-ȈMͿݴ ?$&#(nah忤OÿF.Is<俩uY4uڇ+ſ'\?_O2ٿp0?K챭?66ҿm;Ҽ?f ?elވ G q?tyi/V?V? V? ]?z=+5?*K?rʿ@?GєY`ֿ03VIH+;ſd ؿ,?V5d!mt˿%y~ɿ`u̳®վ?R?(OV+h?#KY? ${3?*[?N9ȕܿpx4w? ̻.H<[ Ko%DV?\bYʕ?ـ?< ?Y?ߨb 祖+OLf9ܿ,]B.ݿ77y)?F|h,\߿r@-?S2r!QAɿLK7pҿ7Hf?y?9Y?K?%l?pj6ڣ?&=ʤP-$?V^xgr]jԿXȠS;.hQUۺiҍ_荿frI?&?0?2goh9s%^\]]ÿCH?5C?7DpϸD?57]?@%t?ϟ?U֚?;)V?r]2_`?rG<zݹ?@jէtVJ?> SjS0u#ֿ8Qlտk]J:{.߿Jξ-o? o6 z߿EM?!?rKg¿c}?$P?M?Vpӈ$?yhؿ|jfìǿѿ5&?mq?3|?&gAS ?=^4dڃǿ/vk+gh ǿ<3_7&@C?Zº? ?%p?>:)eտ1N?S6F-CH{ؿcLsx@-67]-^пȮG?bɌDHħc?V-w?%mdB?`?^?*r?iY?Rп퇝?[:pXwz4^[f@x%¿4yW? ٿP6N?X?`KNR|?;|?Ҏ׿\Dˢ޿({Xؿ2A?g?l ??zt(? `Ϳbkx ޿>.濛|)6/A?2ʿԹ"ҿlӿp""e(ɋ2`Qqѿ?<`pxHv?Sѡ?ʳoϿ9"-Z?j?K?^̵a?^go?SF?@t ?Lf?dN7?" ?,ƝD?T "t&*%R!H) H_sN?LBT?'k5hpVԎÿ^㿔fx,ҿI;? sn PvҜ?AH?Go?``f?FIЎ?1d-?l|¥ ?ܛ?&VDc-8ݨ?lڿϼ?,jɢݿęgh?<?apm?Nֿ b?)2ҿ<^t#BmWGֹſRS)z,;M޿e@&HusY:ҿEN;\˿l*|?׎e}e>):X?E?v(KNÿ b~?!1?YL ?!B޿!pۼ?烈SS˿Z z?WBX+?v$?3?^ 2?G?k?1`rO: #? ;ÿ0~Wdž?V &Pʿ0d?⫽?l_?%o.?ǁ?@?7?uK1S?-|!fǿPH ?oS￑0z? Ty/?Fތ:пE=fȿo~yt|O54ݿPď}ӿD?wrKh2?Xa?m$V?zyd?>HU?؈ ?m֧:濖 C?ҜY Q"ܿ!>,޿@"G:?Q$ iWJcW¿w{h޿ (ؿ FֿL?ſ3 ?Ypm㿏$d?4`Z{pɿ;׿xj?_Ki?!? 6T/?/5g?!ܷƩ?-濅=>2_gaus6_1001_coefs.npyNUMPYF{'descr': '7 ?v= M|?RY? 迤"D6}i}`⨿(A?`@?y _ %wॱ?}(oQMz&?l#?}eNIU-+}p?A+jIm5?DIҔ?Qd\3W|zA?KM6U ?lԕ]?;T|?nfؿU2<þ?eq}G7?< ۷?r> |°? !l?3Њy?{`''?݅P`ht?R\Q0VDb%-+%V?=Iɰ y@[;0po]}ĿRzf?uk(!Ap? QmƖY+?cz?=3ZJ{ #I5?D *RH/D*?~t?[HW2%I cU?%xnmcg?舚L?àKGR?RD"W>Wd??/]?],ῆ0i7E是?IwLk&o&f?(G?jH1?Cu&;M:?6mE?G?l~w?GQX忰CHqs?K?zr75 xN ?Qw-? ?:?խ'࿀nlQ?le%|?8p1'?4(&ĿP 夨D?<˝4?eRxׅ?Կ` ]?hX‡?)-ɭ县fI+Z?U^8?dP&4?[&̻5cӴv?2~ԹTϱ?d-U?P%)j?\+[qͨ?(꿸"~ǒSw2i.?@䑩6?xG5c?=\ݿb镔?">!ٿ<Vi8w?TS? T"^<,?C9"RzTo#JK?68rN]?$W88k??aBaųٖ~-S?[73-ە?KΣݧ?Ed,(}10??V_ι7'oI,?+?i{??]j՞Gubֽugˉ?Rt?RlſvU76Q?v|?s|'A?FAܝʇ l?PӾ܌B4% y7Y?vlyf0c?]dצ?%뿲M?Z.3ѿ:9 ޜ0p??d Q&!+?;>?(p h?S7 VB忞ϖ;?*o΋]?{ᡠ2ˬt?{Ei?R g#vYƿYB]SuJoe?@r?;Ӿ&?J é?@5I0 ߝ?N+ݿ 䕑i?~Tȩ=O?]y室? Ζ㿦>r13ho?hyv=?ȑ?c2꿈yo-WC}=囿5bjiPYO?=?A(?"UĿ>?l??䘁z˿M06?O׿aťs(Bw?^$[I| ?`Da?I뿘bk?-Gǿ]Eֳ Nn?0c th?yټwdߵ?5ؓҡЗa?/2ܐ?:#G̨ϡ?i#/ۑݯ5YZ?+ru^Xjf?០0*c?謦 #"!?b*Qπ?:?-d ?d05XC7ȳ,?Ț.0eqg6@(hZF?EdkQzcY ?>Ǯ~`?)?x/h0􄕥]Ǚ)G1? 堛?[IR?P*D_Misx-i!QkǤ?( 'c4?.1B?r+SD|8,ȏ?0JQֿԐ'8˛s<?6;Q4?o?9΄ئA?fҔD?6<MZ?j#4uh?dԴ?jef?xf"`!gҷ3Uru?: C愤s?6?fҿ;?=qؿNrZ|?ʊfO?Kk/pX̝ 4L?i)bI| m?PR?F, ұw?ݜQ |oSÊԋ?#!kT9=烃?SԿ{j&?;Z?98 ?id=AT?^Y+E7n`=&?7c?T.5x?!?͍^-wjU&}?* sÍ?< ?InaWz?>q)˞k(?0Yk?n߿FH!?XB߿7pà>u?a?ҕ'zÿrw?RA뿢ԍ"j$? `x[t=$ wДv?CA^b߿Yw y "?ר.,?vkԿRQ.?6bYAȕ@ :#?V:l?D\j? PP8٪a? S+ ?^r9z?d1ҿi L?matR x?$08ڿUij-? qz5DK>TD6)Q?d,86?,݋~Co?Uǡ^=['{ ͟Z?oe3?CtſzkA2$?Vb?EFsT4T 8?)n+UW?rr1\m VC?'?[O ӿJl/ړ?NoԿX5]Hr?| oegÂT=A3juО?ejH违iYa]1,??8i꡿+d/?vbX?e3ݿ?5/tڿ ?[tJիaI?C?;Ј?tL&MԿa%h?c$.ep>ΘЋ?$t?8q?腿.N?'-ɇ?4{r? ]-=l?"W*>pK.l?rM?Qٿ5 j&?oPT)J4?G-?)Z>GW?P`T_Ϳ,|zeYk?pg濪~?!X"ӿ,r=|\%O?0W($q\?,L(?70u?8-?*ַ#󿄔?';8L,=:<?J"OZ?-G-?$8Pw˿+U%U?`:?+*Uٸ?qCV'ֿrrEp>?Vrw} y?_=cճfmQ?K?XА]ҳR?='տQ~=vTN/Qz?bϓA?`PR?PN '#S?WfLU~d|?` =Ԉ#%^?P)?3[vל?爗yEh{=?Pskp[o?L0?nt v/p:GN`(?,mV%?֐`?+]п@g3?*J #ܿЌ4l?3ZxdH?{䡿1t?Xeo?Q:忳 ?FF}ɿ %[_np]?=b 㿍2,V=?}3.:?'oS??w:%ϿI7?M`0~{6F?1/ _sfd?M tƜqҍ?@[kI}|¿[A)c?~ǟٿX;g?Zːq1X߭C ?CsLF^jy¿>ҕƔ?v\k(Bhxŭc*]e?s1@qu ?m?Ҫk?Mݿ"J2~0Z?k5ڳ?Ց!Zc?pWw?Ijl:hu?bT?,&O?8?1^XmB]kU?,p*d? C&?ǮN rs?d{j'?xG)rOp?@O $߿ lgE!nD?6Tܨg+?2iC?_RC+mqE?/}˧K{͹A ?;QZ?h<7?TCC?4-V}p1rVt?Q\1?,}? 7TĿ>cK?wnNp0rj\?Vώ2DKv?yor?ק% FIq?AMmڿau^O)y?d1_Ŀj my}t?©flےj_z%?BC̿e?Eo)?A-xbj?p?_g?fᅵEc_6na?GDZG}A?(?>Qf׸ /9?qETl?H}Xe?_*P OOB?zX[ɿ@v֫GLo?epz?Qg?7+h?)0YBys ?P挈#B)S1S!?Ht D?#ʑd!rf:?2j&?_ٿk2_ǔ?MW'Ŀc1?LbZx?͎!j7ǿQ "f*?́vpNIc_ȉ,f軿0q \>F: h?H½?[5˿ ՝u?sX俀- bÂs?u,n@?xPbbZg?9=3J?K 㿏 =c?VX>`<޵輜?@}F֣I)?3qu?Mƺt^!? !qPZLZD|?1Qz`zRĮF?WI5?? -鿈^J߆?h,ƿ#0q?λQ͍`?[?,D^ҩ8C?8fz?ʓu.?1w$p˿ul/Qʣ L?=?/pſJF6?l|]nf8?8<~ \rۍ?D?7*?ayz;a*Srb?rrNfͿiʛ^^;?x]?ʿ=I ^?\=!AyQg?)fv?w⚿h?L9ev?GEοia~|$>?nD|^ !?Րٿtkh~ ?]QѻM?jz`?r??q!gF꿸fbqi+??(P}tb?T6s?v1&rxTѕJ?0H׿m@O٥^_?&b3)؂?6dS|; @훿HrmV? k?ܰ?&g%k>>?ڸt?;ܸ?a=YI'gpO?>N"??/?5* {P<.?*v񿅀BR*%8.?U_W-#,?OxV?a善?yI"TĿ uUb?ֿ[,p [?Ԏ t.eF?:3iƿ4wLK?X,^%Ȉ?`'kӁ?GDH~܁?>k?ɶ%c?QD!n3a ?gfy?Q^?Q0=<ߕ?iɧ?i BX?қR4FN BtO?T!b?"^{Im4?/caS3. ~8?cNͽn?C1?j;+ zi?ѕݿn BF?.umӖG1=?w?[d?hr`~?[M9ѿ/a?sXJ]'agV=?9,ཿW?M^%?yh*|?Upi=^?uU[t򿝙qJ2թ Q?P]G7 ] "?Ntڇ?S4Y2P0c?h`댧?H+ k3'7?qP()q?/rp? pډ21py_?, &eRq?vyb ?/CٙݿƄǶ?QK ҿy*Ǚ ?XcTk )??~}I?yR ?yDZ6ٿ4յa3`f?}J|?Mw}?oc.(P-"?0%2V п`Y܊gyj?(x3?j#lfƿz# ?uէU?7?H=Him?EaL?cv9ӿ6*#͛?ӊNݿ=5 b}.fW%crݧ?]~밀޿0]-!?9g:<<?~aP?*ZFmw )?$ToF?E̖j۵?w:Wrf(:?ԲVp?X0J׿?~ztB <0u?!#ϴD%@?t+^qҶ?/:lS?"`X*?Ǜ?s~?K$¿D7ře?,&v~$6w?sAU$ۇ_? R~)6QHR?KZe'?kT~A'?`rѿ&C`/>?? ǿ;`# A{8l?iL]?K֦?2T;? Y5?X瞵E$?w?{_o⿜Ͻf?0vE:?QX ڿTLx?⩪}w]?^(h?[vƿf\S?u}]Xw?5ʁ5JF[? ?T1?;Kj?JAiRw?JV F1|/p&?ԆEZ,I.]7# ?S F‚{?[8]N?窥 ڿT˳? 8[$8R? Οq V?>6yQ˜?)fzhˇ<wB[S?ƺP?YgTXտrDVn?`޿P6)|?c.ʢ~GMZ?ot\z?y֛pu?v\?)Lz?3R'vzf.?|"W-S)Y?0R*! ڃ?<+?7a%Aͼܵ?C+{/4bSҧE a?*wU +k?ߖ*? /QcѰGVǼ?@ ?~E(rͿX^?p\PBC%W?ZoAq?]AZ;x?W? x?)SyKwܿ}(ݣߢ?npF?X9HHNпhS4e2gVĹ?g?#ٿ`v}2tk9.;&?R!eb"9}0?b)?MF.pd"?c9Lڿձ?Fm0@)e3ka?ۊ' Y^MO:?韗SW?ݓ_?m_iNTg ?RxmΥ? 0Rէ?$o,<F`%?^Z+⿟od=>0?P,ǃw?qŢx?W&ܶ>?C|ܿ42Pe_5?m暯?maW`߿KSoj4O8?h]| oO;?IE]?:*R翘P7&[|.%?^ Kᦿ SyA?@x4[\?_B(0?i.zm|L?gOֿxĭ?x%W䜮Կ]}e?(㭕-I?N@?zym2`%d?/_N)Ϳ8eX5Yw %?&U͡E?j?ÎXR%? <+(K|8;B?ն┿*%(4?J/Qʙ=d?k<2mY1?܅&A'g?f3?1Qп ڰ?v쿠.Fomؙ?5jjqZ M@^?pXm?c˿4KUq5?V~?;N(޿K dW?~gn S3?H`! q?E|ത? SЬr?Ž32dwڡ _^? p㙿Ԥ̠?@\﷓?]{>ӿ,ሓ,+?3?bOU4U&pѓ?Le*޿\ǝ jh?C5Q?_VV=?0 w,Aq?S7 d?#q@qrC ?te2T.`q8?3s1)?%?jg[Q̬ zۮ;?+YG6O?:ҥ(vPQ􍣿U+k?g[Kҵ6?ABn?ZvTŖE? 10$h:J?ɻ?ܙy|m?˾I?fTǓ这`ڧAp~?hN ?hտV J_f gͿ ~sU3v?s?#OE-t? >yPKJHGd>>1_cgau2_1001_coefs.npyNUMPYF{'descr': ')?ʝV?ɂɀ*qȿ-Z~?D'ӿ3HMe6IC?je)a?4񸿿@ˉ?#۳Sh˿ȆCrԿqڨ?y?&(3ʿ$Hÿys?ϺDm/"ӿo?6oq񿊅ѽ?%֯H̿\R<+?)jD6?%("~ዘk|s?4W@cA-J?=S? :"{!?8VLIѿ:0gn^?R п(F`?B㿒R ˿͡YP?P,{h ?W"?1  &jЊ޿g:;24 ?Bb_?x5L߿~?Ju?;{=}Ah?azg?laoqa?.9G?i? `CPsTvC m?|xIڿY_}?1p?K02aoJ?ج5`jϿ@lo*{ܿlE? n-?E~?T PAOa꿱 H=?w98|`?|٠k?Fʵà?045׿0w/L?O[?v^XC|?3}1?|ET04C?#Dt޿x=8z?RD?޸P ῖDzE w~v?@@I? [G`S\x|?UxV?CO*ٿHM]O5i׿p ?DE?WMp?Um? *>?.?c囬"iQ? 9ҿDG ?ІcU騿:ChBP?b'4?$?~nL|׿,[eh +?6俈(ؿV%?3G? ?࿪BRZ俩OS'?~&Pb?.\?Y/ڿ뢼Sy?zc?3x?, 6οxMܿ "?~Rɿv@꿈t????a7䜖|?ogV"޿|ޚ?ky?`m=A;ۿj"?e"W?9*yտ/?K?Дӿ^+03p.`?@4$Hip?db? \ڿLPkt8х?@sRJ2?rxx?F$? FeőW2 ?~!DG?s;Cdӿ?8ނ߿Bѿ?b(ŷ)/Ax?C ?~̿Aq3̿*ӿ>e^?Ąt?(濭B?;/19?wÿ6ݿ> пKgY]?W|ƿLp_&>~?zcw?_t3 U?xҿ'GW¿Y@\ h?a$V׿/?SZ;?% Hc?NLS?˃/ÿr4uQd48C*?Lp?k,e?PfZ515?h_ܐj?j<ɿ\@(k2?#W?_)NÿXֿupt?*?V]Q߿ßjehҿiW?v̗ؿo?QA$?;*aѿB俿%) ?*k຿~?v?&N͉ҿNK&?wGΌC sD9׿sI?&` o6?2Ѓ:?_1"㲕`G%?ǿ8u! ?3I^~VyS?P%Ŀ(M`V=ƫH? oNxG~Ud ҿdK0?fHLj?@r;?SEI\xǿ^HGD?T&lLɿJWƿx ?N<\bR/ѿJY?*#Aң俖pAt??lꢥ̿8?/G{^YȿK?MXCοvBUԿ4LY|Ϳ ߎ޷?Z¸{CBZ?-v *a~?Ӵ=\?^ "?RBſQ즿*Y:?|75Þ21򹿺x+ >?&`,JZmP Կ*ۺ#?+KK߿z {Y?:s8?.>e5?ʜ"?&ƿI :)¿GC? v?Nm>?RgE4ҿ27o?BpeEq࿨Wٲ?ȕk?`ZHJ?ko?y5@ M`?)>B!RT;v8B)v>?*vYп҉D#?af?Hlkgt?HtԅѪ?k?%'9پ?G3ԕw?vO ɿ 8^u&!% 0?U(Zп<fο#WV?)FƿJ|)! 3?^n?DuC1޿#0?P`>(?J Z-?d"?1s\忂AMtпѓg.?܇<ۿ0̿i.? 3ٿR+ƥP?pOM?vÿwu䑎?7;8 ο[,'ٿ8n.? ?Y\?kߦ?~^ܿӸ=?T- ?NB i鿳' #^?'U``pک7?33?+sӿZy?`NҿNQԫW?Dк?gߑ9ؿr^:?/ѿ}@v6?`?٬ $?y]¿RFhRO?77 k?M^?Uֿ; _{ҥbhP&?OɿcbSݿ[]H?Mݽ?VO?οJ߻?8zc?^~?ǿ1ӿB?FEݞ? PZ ^?T}RX?SUU䵿&4i_?J࿖'R?B qHҿ"c, O?E3?$+𡿲4?ʸ6?w[k4ѿhSz?.?"n)R2YI?23?vx㿩g?O׼Wuֿ4u?;w+wf]?ӇƩ?!R׿,3ϿD?KW׺I߂޿ʫ4?Tv?Q!11)C?tŠ?I$ kFڿ]%TͿ[s)Ͳ??Q<ֿ4%6\)?3̥ο?+b6?"de?5 ¿9Ȫw*,?9n)?Yjo.?D?w*[NLGb? J? O$X ӌ?65022_PnSD?ς ?9;{?ƶJѿJ)I?&.? ^߯_?Yy[B?*ӷZL KfPAaƿ?ҿN<\s?oχ=տ_ ?l?J$ݿwEK?nvIX?8N=GGɿ6~?\,l,ýE:\Jz??'2 ֩ٿd"?Oʿlr? hK?\g\zؿDWX?@?JCn1a ?^?R"b?*Т v<^KT?w<ʿ0$MZ?bx?\'Qmܿ>bf?0}MLl(ݿooJ? =-j2XdEĬt-@5?rNr 2ֿ̘&ҿ¿k8U޴?<e:?1W O?@0?d({9οv1İ?Z翿ZOQῨ/HY?$z3?*,?>;`,8ſ]4$B?'?RRsݿ&!*ٿ"N Sd?dry˿H9t]2Y"p,?{#?EZ YА FV 6p?_j-?bF"'k?%Vkп|Jx?%Xſ U!Gο*g@ӿ,P0?d.[a?ܶCx&pzӿ v⅃? Y}#0_?5?a)? *I׿<}8ҿXD&m?Ui?vynu%E͎?j 3Ia?xBnӲNZ3Z ~ܥ?Ta6?A.ԙZ3䡿d2 ?WWңϿ'd 6>LK?zsē]ݿ=ƺտ`Қ?PL knJ?Gf?ugп3?L#?!gqbf4M?lX?ߒ?d?3T+?|\j?醴z濡5Fh˿0K/?.#ݿhD?n~$?>.? ٌ'iؖ?aOA ſ??QF) CߵN.?9ӕro?~?Կ(H0N?GZfpaʤ?>X~?Z|[fX? fS?M:࿛z=ʿ6r?aѿG?^?d*ޮ?OWsR?3"צÿ<@M?? j?TҿәB?~,ٿa-~?Kp3Dx͸=gcp? C'⿨%D=?cㄉ??]uп@|ῄS?b|aȿŒCқlѪ? @QQhd?ZPq̿*ckH:?_nI6|?dn,g?{ef?{~ؿ5_?i^hxE?J^xQпhfеؘjo?zIп쨡[?{.7%?`=Mt?<|eڿ+dW?DrͿG俐*?~(_? og?U{Kſ:.v?*E?r&nc+E?8Trjy꿣M?':C?]G:)`?п?mZZJbտy2?a&k?O}:ؿub#غ?hQ?U? T!?2%s|?2V׿Kz.҄?и޿MN3x0h'?*dž?&gJ2ۿhEi2?~yO?ȃ:?H>&(ڿ~C ӿW}I?Nо MN^?֋>*C??!gYn T¼?q;n?d-ݿCmh<"Վ:?JK ѿy| k=3L}P?NfO?A:SD\?:o=;?m?xX)ѿ`w_?DRi\\?%p? Y^?|L?Pu9|ؿπ3?.-ĿB4$ῊZ:?C)ɮJIXt?T>`l3˭(ԿM?\Xh+[ͿZ%p?`P?ƹop࿖ؽЋ?? ?`%U?כuѿ @,S?qB?<>̈w??rTn%˿N&̾࿵:?@`Q>iӿqH?T1?c8LtBF?cFI!ȃ?( {a?/ΕhIԿ~8N{?T/FdzJڿ:iN??@'??#&u/ܿlZIҿb4Aw?< ]mKU*<$˄M?LԛK?mrӿ_f,?~+/?E"m>] ?gԿزntv?N?Z.Qå%2t鬡?庹]ԿgJ ?Ђ[i?D:s?L\տbQ2*rΌ?Q4Y?>Fbp;=MD?<ꖁ??PTi*-Pk?ٶˏ?X[`߿{ǤϿaa? (.5|O?!9|?s`lܿ7W߿VXI*?x48VƬ?@CFPts4E? ,6x?5VϿ &T }r?S۬s.Aoտ ZR?n}{࿀dK}? f?N8K?.hָ?Rly^4~Mzٿo?Kͨ KIݿ #J񢄠?X߿Xp|o ?z}9ؿ'X?n?,1uqmx? B?XߘV`~\?.j_ǿG=2}y?Dvfy?7ĿtQ{sd T?}W^ؿ0R#wbR?{g ?|fyFI? VF?h!5!пYؙ_> `˿`O?:<ѿ EtQN$5z&¿kgw#?]?d%Y쿈S>=d? o?"ΑV޿O,Q?g-Pֿ4SUZxm@Ǽ?z4"??zVp25 MĿM?l<#Uaj?Rj¿)ʿrA=?tPؿ6࿥xfS?s?OɿF]V?lp@?櫗C׿D2?AU?* 1  M?`.z?{b3 ~2UC ?"?44jӿ6<$7Ŀ\k?czSɿ|Fmy俐:`?>Yy?u~xHп2o<̀ؿmx?ZK֩K?ʠ?p-9,\jx?f66?KULeO 2ٿߏlIN?/?*3b|uVh?Z?Q=пdY๶"<" ?Crp!N)?!"?.㑪?TӨ=?sf7z)ɿPZ?PhҼ{LQYѿe]¿DT0?yC?.:%0+1?Q%l?Ei俐ϟ,Կ.@U?con?z"?pQԚѿ)W+̿|--D?xڑ;Zn:zĿ}n?"ū?(Vҿ;p4f¿}_*?j=*?)Uw⿨GIx?+43?Iֿslۿ5l$Z/?p ?+ƿؒr%?He࿕ řֿBf?>􊫗ĿTaf)Ɵ? LJi?sޙ; ߪ?xYV?&,ɿ :ٿjp7Fp̿mQD?fNVؿݿ&? ҿy0?]8 ?IxR(忙jX?|.?Q z,WH/pտ><*?±ӿNH1Yr>x?*k?ӰпQL ?>mjϩ?\FXh?_Tm߿?q;ѿ0oI\ KB'ܣ?cw^߫q'?l&j,п4?\Xw?kؿ*ӿXKf? )!ɿiZqʿ%?r[KМҿ(t,?+i2P?7?Q?`TZѿPsGrӿXĦfZ??j&D=Z$t?Zr?zyϿ k^;]o?lXɾW԰l~x?&r?*+ :?t  ο"4ͿAj7?{cpk6пLJpz?K^RтL?Kp[?N _Կ;)?,Eӿ4ٌvԿFɉ? @kw‰ݞ%?Yxժ̿W+ҿI ?$]'N_8'M?lż?<[Wⰿe7?D8Կp=l7{à?FV)h .Ԍʿ ?P?dPtTH8 .?= g<߿v?m2W?9E ⿩2m?n<ĿM? }|?t js%?Dt ZSiu?h\/ɲHV?6?dBW߿n?2TݼLXE͢l? t?-D?#%'c?ʳDF?("T>cſ"*Ҕ(5|? п\?XrT?dT^ѿxZ_?W@߿0hMݿYc? F>0$TS`?紉%1¿~6&ԉ~‡?℩?|**ݿHIk꯿=> :u?ĸݿ^54e?dZK60s5C?%(E俆 cAſێf?*ܕ뿰L:ũ?YE?tf\uW}<|y7?xq P߿Mꞽ=?܉?%6K?Js˿t ο89 ?xzl6ѿ6n.?vRB῅fc?z4?V8(М9?平./lHpZ?ݔi?JaPQ\?9H]0PG3ew?-F쿧#?(e$?@Y1⿧`+Z?UB?N~(beb(?lPd¿@!EN?JB?Oaп 2w,6,m¿njcr?< g,?e?-Am쿨G)?n?lX?8DX%뽴a?J?ȿܚ9h繿kv{e-?.Jˀk?!lqr?#xqZNG\?8FY}׿U/ ࿹8?o0տ8̫ ?S?%#쿠+?_#t<_\?׽fּ?x ]?uG+?*ƿI&>0qĿZ3J?Dp.fzɿn#y? @}ps#֓?*e*AjO?6D݂̔?7*?F utth_Kiu׿B=H踳R4r?uWvu?8>ÿ#7 9]Wx7?@ 4[οn0ɺE6Q0?4?Et?@lؿýǿςk*Rfο 4jo?p 4N?򿒱G?GH7?Ǒ?=Fؘ ? ɨ?7|Jlݿ` 6?('Z4U?Bo0ڿgf3ɿPKJH:1_gaus8_1001_coefs.npyNUMPYF{'descr': '2¿rޙ?c攼?=:H9Ŀڬ?j=ȿ# ʿ…?BH?xH ҿzH?KпMX?XFo-Tֿw?0?LZf?Dcu@п6t'?I쎿A vѿvH7?D- I9%l?C.y? Lo˿J??D? RI(l\ǿ?"v#?Mݸ}޿8 O?|_'!?xAqѿoy_?ƿnH ?w0n?&q(n/fu?ϡ?Mv¿]*~ݺ??[wj{?21? J-?'K?U aDpة\ ??IYMa?ʬ}ӿ ?E_ve? ?y#ܿ$,Q {;K8t?Ɂ iޯH$п]^? \R?}U]-ӿx?#,m?(d?@^ н3?6ž:ʿ`Qr[?? ЂG<ҿ  ǿn߸?E^D?dY21"'i?jM!?fV?ᦢuԿMo ѿT}N4?j7ƿ鎅c?89mh?72+>y?_@K?@Z}Z{cBӿ9eÔOE?~L¿)woW?gz3[(ҿ?Ie_2;ֿ:y?UqտK6?2 ?`=+%kտ#{ڹ?)`?ȥw˿ ÿ?W𮛿X?$]%? Ho7zMǴ+U?_? Կhq]RT>?#?m*aҿLY5ѿt\?5cÿ!-'YпAolZ#? WCr? ;п&_v_?G?T?3q鞿nش)Xy? )?}&?8?U*-ԿɺRpY?)C,ey1rU?q8;9qſ?oeU?;2AWK =w5KPk?mS{2?z+Dȿ$.--:>?gpFCR1rq俤+:?(Hl>?@s]H?pd8{??؋c ?h?cZ!;ѿvgjƟR?zvjUȿM,п%?pQӿǿ˯2Y?ȾD?$JdZ׮V,^ò¿5?;ſ+wԿF ߑ?zƱҿj$п)=/?!ݿj ?[?72¿VU?SIڿ,M?]??MпT>37?R[&?!b8pӦN:&2ۿfF`F?\_?3|ѩbѿ(Ywt:?q?ւ=ݿ_D?F6Jλ?a#ȿL8[G5m+?V ?4bʿVom-ɛ?(/?A<ſE@?!@X.<ڿk-?iu?ɂlt!iƹz<4?Ie?Sؿ65¿27?S G"d?#v~?7Y!f?ɿTʿGN򋭸?v)[?@ԌϿe9r? Y ?PѿDm ?E?2a?³пA=?<1ZG?^I*Րvk΃п;qώ?x`d?d¹ᨅ?:?9_iпxeMUOiM"?|!A>LҿصuɿU?;)?JЕտY>?ʿ:VYcB? #׵!;ȝ-?y%]⿞I˖?Wô?*BT?RKYoZU6dg?Zj? Cÿ*/_p?dzGMaR;Gh׿>t?M ?i/ ڿ ?=}==v3Ϳ_c`v?ΒFDIF]?b տpLo?'݂mw?H?ݿDמ(M=?Ь0?j9%l>L +iAɕʿe9?[ qD?iɬ柿ճ ǿv)Ŀ{uG\?W&?O$̿(:ÿC:b? ?"Wӌֹ~)^?ڱV=붿%YyEտ$멟m?/޿2fڿ?DhO^Ŀ4w̿?Isjm?(ؿ>@f$?yj?譕1w}ۿ m?k9,0?X3eп ?=^ ?⏒ ǿ̜4~?#7ᪿtkÿ_~6?|??*K%r?Ҷ"п *4vĿ`ˍYd$?h;\8Mj?[ѿy.*?ei'`?޿|V?Xoʹ?w-A@ѿbtCڶ?S὿&B"? ܿ<?$*ַ?hLTֿ06t?gk?ͰlȪť??RblͿ9HW?eTI ?V ²ѿ*Ɇ)u?tX?H+ؿC ?`$kSō? ܿ ?][;btj{?7FgJܿs?*-vC? ~տ]lzXŢ?dy6?LaeD^?|ua?`<- Dҿ"';ު?@IOû?Vp2IU4sʿGB=(?PZ}ο[IɿH a?12g~Nz|?[ihD ȿ.9?muSu(^ӿe's?2i?K; ܿvC!?l.ғٴ?5*?Ne$+R,3nHN?gm?00(俊""B?|?<٪Em?6͜ȿɫ?aaCQ?~⿲Nm?ݠr?zBIԿ$ʣzNy/?X]:?ŷw'?^깿0 AHĿzmh?F%޼?|w.?F^Sؿ#C?i94"W麿g? ֿ "?/?Lԯ?oͿ:x?o06?޳^#jGEP?Iޗb}0ӿ"o?6?+62?a=O?@-\ؿ>۶*?mАпbP:?/?Qũ¿~?6鿨E8U?TKQ?Pb4U2?V\4(ȿk?JʿyK?ɥſѿ>h C?)nпĶ@,xѿ?sƩ2ҿA:XPѿh14??9z lֿIW?p"c⿿iڿtc]??!9?J J?fS)?6iL꪿Hpy|ĿtئԮ,ƿx?dqΕ;$忊/?'_CT?x?B?%ͯ޿yX)z?eڝ*?ΡOҤ?SC_Nc1 ?4ӱ?ROLп[ߙ?<3ӿ!ɿ6x?Ը|M?ɵޒӿ2uc$?{ei-(ǧ?/p?ʃH)l?R@Jɸ$3)9пdG4?|Wљ\?tgпd?_?B9տl{?C}qScZ˲? {Ŀg7%)ݫz?"煤O?>G#ݿ!"~?rn%sǿW/ȿ!"c?y+q~Z53x¿&IG?%QW?q$˿GM? Kx?sfҿl\8(?@=[-sԿ+P¿NJ!?˱dKԿJBx?6_H6⠾"?a?/)2IQwj?:w{?BޠnϿW"(^п#4y "B?> zѿ8YE?߾}E@?Ȅ~:?}AC"bZٱ+ſ(@?Jö hơf?dvϿɚƅ?2Qs(fvGCۿ*?tҿ@ sz?P?n6eӿKk?z?TܿlK?Es?3ҿ*[bC?;jⲿуcVڿ_ehF ?i[A}K?h v;ʽ?|sQ3?մJǿ5WBtJ? ٛqDoJj=3? _x?v[)?Wdˠjο#@y䃱3?=k, D?|~X?Iӿ+c#Y.ӿIQܳ?"#7Řӿ׾s.? \?$2? .?oC7?ſT$`)?.0B?$|N_ƶ?ߨi ?`E7wƤ?g/*?Bk̿f:P?|jhҿ[J?Zǭv?̱r,ѿ>`&?Jf?BuOտl??&o8JܿQ?ҿ?6_vܶ?n?ۿ&?r.t)>?\p"1]/俴6? x?RcKؿ !?ĴF௿&?=IQ?8*+ؿ >6?[KƿӼy? 7?n4ÿZ?տ2 z?Ajh\?+%6YTym?ᄺULt?9ſ](?]<;f)9?c?˿<|رtxy?)ϑ׍?¿HDi? ÿK0_?>\BXҿԧ/}?.|?гؿW.%?^',ʿb ]?tn2耫`#?: ;ȿ<ݺ̿NpK?R잝ڿ, S/?J`X?BIf/!nҿ?PKJHGB1_gaus4_1000_coefs.npyNUMPYF{'descr': 'QKſ::uϿlG_?k8?Ɔ MLO?x['c0V?Ӽn"|激5Mڃ?i?6W/ܿRg2?xjC7wbM? ΄Z21пN'Bo?Cz ׿W#PۀP"dѿE'X?įBa??1s峼@a?6q??)??-̿"."ÿ@qښ?iיL?"rxп| 䶿860?g&N-K¿Swj?-i<?oiݿihN5?K]n?-}JnX?la6ͿX?"Z?)Ŀ Z?YT?ӿҪ0.P輑?RX2QbǿR ?֏&aҿRW}?pͣ?x ʦ?ߍ' |˿e"?ʪ/?0kkP?̹ntoſOƿN?^r?RsEXϿQڿtSd?.>ht`ҿ|=?H&Vqɿ E&?BYc-?tv׿Dr?Pjq𺿬?I=ֿASi?OOfZe[\{ )F4?4ֿؕż ?g?V8>ʉ̍ PN?oV噿 ?_SLȿtWGǿo6?m9п¿i H?[/Ϳ_@ύ m?հ#(ؿh9?2n$?zF͟߿ZÉ$t?4&L K?t}r¡=]50BݿhX?ԣ,?[׿U.)οH:?1:qB!(?u?@h?83!쿞&Y{?>e9?rl?׿8}Y?]?֯.7ҿœ=mU?4kvԿPЁ1mrk?G)m>Ὶ"C?&y?Mէ{տO+?r~s* 򘴿q7Y?铭 ̿5?ڿwf*&FA F?ָI߿p]3H?F󂉩< c^?>N֐B?8h4>?PS޿Qt&#?V"?bݿH\V?B ?t(Ŀ嶸տկa9?a.|?BaUտ^{2?hmHrKӿ>ٿs?:˿DKпq""8?ڻ?|C֟ ӣ?YXR?R|T hʿ ϛ?U!?x׿ZJ#?\3?r|^ۿ05r?yHD?jiݿbw?ЯV|zr?LB?iW ىZֿ*椌-?/-{?_ٿ@3T?@Sxr?+ͿQ,CʿO.p?bR| ?D\?8`ћ5R?>?bՎ}ѹas?e&⿂)?a(-C?~&-]&տU׾?RL?bjLӿ<r?>ؿgѿuo/J%?DŽ֯ɿOM?" >CӉM]F?u糿:}Ƀz)ѫ?W\+8? bUQ?/WW?TӬJQڿTr_n? Qʿ V;?37¿JTUʮn?d*~,ٿ4ks6?' 4Eп^高?0(q?xoCE? yƿ2ӻۿTrx?¿ 0ǿvfb?7Gſ ,r?6!LӿTJ?ٯ +wTտSxC?_? y*@?\h޿P8?;?ii?"ڿ ᴺH?^޿yc:!?h|-u݂?Rڿ:T? tPIGTS?$yɚ"?jJM?,ɵ?XWvܿio?t*@?O]пOD?q1]ǿ0?J?(;VҿY6?3&?:ֿpQ◿r2Lz?ĴCp.ʿ_wo;l?"KTZ~_6d?hOv¿WoD#?}A/}g?q,P8տ2{B?bԿ? %2ן?ݣ3iU Mܿhq~?+4xϿJ{QEv):p`?$?"\/ؿ5\?,`Sj?jg)y¿x~8P\?@BuzǿPoR*?i#݆׿(} 4D+9z?m(?ɿjLTO?C ѿ4(.,2ܿjj-?R^’뿿Ʒ?ys>?4|iaֿ'Iſm?jtѿ!kֿҺi?.et%Į??ۿ}?WK1 ?ʀE~⿟R!?gfȿ?$b㘜$οe?:et?NZsӿzj  ?'^HQ?c˞ſ8ttk-iٿ{yܟͿ1d?vࡽ?cׁӿ2aſw4?ŋۘL%?p_̓տteIm?UJl? #{tD/?*eĿp:.,?Ř̼?Oa$G.bw\;? _ҿN5ĿڰB?LwŞ?B٪ƿ<ֿdC?@縄Xڲ?DŁM$ͿRru?;ÿԇ<?1Z(ߧp\/ в6BUDV)v?GkHſGO?`ݡ{?=?&yKuп ¿ pY?s2U7ݿI%]xo? ȩG?$DapK-}J?K+?"Jh]pпI-?lS?w0|a?0eGS ˿C=#lο ?aSt-G˿E(?EǴ-?raWSj?N,T &8?<*ҿ$3ڐE?|zE>?({`~DI155o?!c1;?v7,?v*˝?d$q @u׿!n?T Te?1@?Q^kΜ?9[ҿ]$Bÿj?=-m?iw!Iӿ: X׿ϭ?|[?;X῅i? J:?DQѿͭ]Ӡ?3$K?ab0ͿOdǿHyǯ?,2?Z Ρݿ~L3?z>TL+ҿd>ֿQf ?DiŅֿ)Y׿c2 ?ocڙ꿙 ?37+?FU\Wd?ڛ>ѿ㩔?L<8uW? ޅ?QhֿJ|eb0?PKJHP:>>2_gaus5_1001_coefs.npyNUMPYF{'descr': 'Ov],WcÒ?9qh?pd?A|ōۿj5IտMn(?!bX?|`OU¿kɵ3^?۸d?4O !㿲 79ſv'bMSyV?NKCRtJ?ttT}? pkÿ*DEO=? ?⫉E ?ፃ󆱿>>]!i٤fῤ-\?K@3? Ud%j? w?sgeSN?XS_ 忖:v$?aGB(0ӿ:?d%F~?6P sڿ{ֿy?zw /T? mw?QǿusZ#V迺z:?V? ywT}>?8#;?\Y.6|?-޿LW꿇mҿ.d:H>/}?JwOM?p+i?p}?^?ܧڿDuTR~T?pEk$?ǿS|*?eև?o"?)qGck3ο˧?"Yῄeܿ(I+ɿo@?<80?8$@? jt6?['_kSj=Ux?@LF?noFz-26?(4cd?RY_O?_2 5cҿ=1@Q!?ۧs?L_St?KSڸ8пvY?$-?kq9S?yI@(;׿ni _؞ؿ|Ȳp~O|>? ?t7o<${?Bn|?Y|BڿM*c46ܿ|F{uϿB˚? jx ?j[CC޿;w֑?S? W{>?Q!`?RC`9쿊6x꿑$e?Z? ؈f!?onӉ?av`}㋭OTlz_?x X2?mGSc?͍/8?m* Qr&hH)Ť ?N&?ѦoF?#Jl(1?o%z24,p ̥Pr?RX]?r8?uwaU@?ҏ?ѱ.?^h!?Z]qp ?nKhU?G}?cw̿:^ɿ%ZqI?kצ񿍽6տ׿ʺI"?YOK1y&Ncٸ?2LsR?vж?^q * ?;`@пvn:? E??ӿ/{濐[q ~U8?a?‹ęԿ䡀?P̀ҿaxڿ[?k/Ho躬 ¿e?`h@K XͿ;s}S 6ɕ?_?T2J^]r ?=I?P2տmhV%NuMS3$7?OD p?gEb[SOa?LF?W^vYտۅU\Qd:swԿRol-ο(gQOB^;)&+?_&ϥܿ 4h֠}?@:?7- ?hDa?@? g.? ⍖ɕcܿI?Fܜ?PZSOT_*ÿѠ?G\px?D&qyϿ:aK!w?`^]?0*?Ⱦ\R׃vH?73cG#PŦCXv|?Ňl?1Y?$$ܿѿ}_? 7uSI㿭Y0? dJ"-)PtKQѿX ~Y?y4?YTA?ުuo@@ Jѿ3`5b9?" ?ZUY?!&͔A?Yꛒ追ȋH2?S59:'ܿڭ[߿L?DvT5?=S$?Tl?9 MOA?ᶎ%]?T4d=?%?l?PE?}!wcW/=Wblۿf@A ʞZ?0R|L?Ad܅ FM?,?!?@Ef?ߗ|[߿%Zي꿍Ó7 ̄H!?PS\?z5 {3:?{MX翬;y?>YF?cu6v?،zo5p]%?ZyۨL X5D?qKt?oe/¿JuUsBXB7Ɏ?F?w&Wdp?KhR?3ɚϿxmd4xe?[p=? ? av/u*"cK?N?S~?&C_3<:h?=ǯ?gYL??y?zΎu'OqU?CZ?0[6V?+3E?Ґw0?Wv=?_J4>?koX$?N5wR?LUqV{v Ko'?X»,?'i?O׿(7;ǿ1.ÿu!!]2˿ۇ`2M?R Z?r]MF{?!1xN@q ?c`|rSy?nAm7&ArC8a?iE?{:D6?(GIq!1?piLh?3z?9]2{=c?ifD;.ҿ٭???aqEGZv? Am?rQyA?FSοd{1Ⱥ?2ͿlPoٿ-Ix׿c}?Ie ?dϭ@q7t?*6?Wp6QW2Ŕ?թ |r?҉hf"ٿ^jp翣=?Y?'4?1M?o'ῲ :"? ?7-f?.F)??h x¿]K:^ohs mIJW񿴈 k?T?I?Xr$տp?_[j_-<*q俛Ͽ?2Ҧ?@eĹ݋ȿ%5?i+?߿\q?%H91?d#??vp޿̌?DGѰ=9?GU4E?=-Q?&fl ji?-3NN!1FN?d(ѱ?Bjq?̩FF濩ڼ뿳&g@?:nց~d ?%9?!3լ?Y򿌷]}`?XVпN8]RӿIWhj׿Wkտ ,iͿ$"?QC?>3߿1 ^9 ?OS?Iv`˒?.ĿHef?hqDF?oT/~还-!?w~* ⿱ƧV?j?LKun#m????BDl +Cgտ?.B?ɩ,?H,迪ד?t? 4uC;п??6s&O?K` Z\?W]/B G߿LۦX?qcΝpa $~V9q?7'위?a7?%ġ/l%[?:`=t?YeF{?ݷ?l?";տ"܃>x?OlM?΍^w_- :F. r?ip?LN⿬?r쬚?l$wP]9b ?"?t[?)aGӆؿVڞ9?φ( ̄UVcl2@= ѐ?@V&CS;4ʿrJaB?ڿgk }/?N,t[?sjGS'fNdTǿBa8?Rz?f!ѯտymz~gO--ҿ| 1?Q)?t| =haɿ>{!L?D?vHѿZMp̋Qk֥n?z)?!W?>.(? ڥտX/h쿲n.?Q[??Íu?Y<翗ex񿆶.z?ؠ?}f?`[3ؿ_?nXۊ?:|HڟpM[ɿ/\'fړ?E[XH?O3cի??2$< A\Iʖ]K?7DNY?'̿s?:./п݊5`4 X sPȶutM?)z?P"?#Hoٿc}l~@/T $o?0}?r2;?ǧ7p?PY`mwĿcZ_?WRxT?Fұ?Aӿ^P}~-;Z D?%$?t7JS?H@X 68Ş]?J7kʿላ濦$XHrҗ?wtſW:yNeU? ٿ7?̣¼m|MB?zj?3`?ʫпU5^eKN]׿ݤZ?9FX?d=? }NU?kgK(ſrX!Lѿ|^ο O? l?`N?W BP"쿨$˚?zvq{!G?z?L7f?1`?l験Ʋᆿˏ?^0eCjy꿶d9.R?DmH⿩?ZN05p?~* x-?lg 0LSN%p_ֿFC? ŮN?d-nXۿK|HP? y?p&?4Oc?YE迢`; \Tj鿥f ?wa?/H['%?5> ?L8'UW:=>OAS,vKʿ'6HR2\ۈ?1VJ\?VdE;?%빥᷿!gdC4$ʿJS?Jݥ?IyzRN@@>`d¿IErm\?6'?E=?s>_ڿmr6sT ۚ?rYn?'wI5п4?WtG5?ȝ; ?~ /|8?b?v Ŀ sBlU PQN/?;ě?O ҿFc ʿrѿo.lzQ?ϡ??_?l𿇷 MlaJB?WܿS( HGֿ ' Ik?hX= Ys\?=?scЋ?;}QygX%+ sF!?)1Y?zU4?* (?;+G?WkBf&˘.?p~dѿD>7NX ڽX?+i:?uρ#+?uf5u Vտ\UȠ0?D@9qAwܿwBKԿǦ1޿S ȉ;J?HB8iI^? u"?D~?rJԿHe> lK0пzMҰ?|V?t ZŽۿpaB?8Y^?{Jù7㿿!\?y{7~.?D?:m ѿ`[??irx+2t{$֪?F)m_?s6 ?S鿱! ~.@D?Rզѿϗ?£>R3?~;OՠɿF&1sWǙJLP?c0?1;?W"K&^?(;V%ֿ.$h=ֿ:b |K?SCҿN|i?Lz?gr?_+/m|?Mg?dĝ񿿿ܳx@2󿅳b-Ϳ|ҿpm?? ?#ۿ֭?F0?'Fp.[!>1?hў?7^JPʿɂ?1"6I㿈 ;1$?U0?̩?C\}\5?$ :=,V/VD?qcY?`~ٿlQ?477?A[NӿLBdǥI'q/355B׿2x4h?92O*?eVQ?_ԔI?~俸/׿YoݿbQTm?se?ƈ+oܿ%b?thO?Ǥl ?#dltnWTJ\+"fKw?A }H,?*Eۅ͞?<$>ֿ~Ys; !?JbĿ]]gK޿zm+?V~?XR1޵|i%@n=x`M?!R?{}w?>SHq{ TI?:aאTeӿd,V?4J?|:?P;縿4?܂7#Zc"~{ DU* ?տ? rû? c?Y|r/PNE̫"?35 D>=VTҿZC?Ͻm ?nrw`D#nf?pI-[lóE$p?`a{u?yC?pNy?kHֿoC' s꿾@?*L?b?49?s~?t qg?wψ{hsw;JBʎ*Y?iÿU?RMCe\)5ҿP[N?T?22^?a!u/ L \͓l#pI04?v'?HǶ0W}? iS>}俢d=<?us߿ N?nM?,b?mdrU?XjƖ?—?D|BeMY׿?3 wǽ?ph)yNK$̵B?WmѿaK\>K@,??i-jNM6N?}cѿ5Gp[ȯ ]>⒧ԿUù ?1D?֎䛺?t9D?H H|q?8<^m6M(;¿{?{G?Ek?%8?u )J'?SsskujCJ0ѿ_E2?OգܿAҿ¶?R.s|?h l?䍉ۿ%A+K<'V u?i܊=?$D?Tx?6Ϳo\?BU;޿ҿƭϢ꿹WWſDS?N?# ?-9g|͔{+vEÒ=Eǜ`hG?Gq?wy*s7?qٿ}tVFL+?`?"?apeۿ?te0ȿ^&ұ?M f`#pwl>$?yK`?ɋ?0!Cƿs|$~?Rn(?ЋW%?EzG&g g췿^xO⿂o?E{?i\BIk(oֿthf?M$뿈/?돰?9V?Kީ?|~}ڿ΀<1Xj#\?:S5N?>tG?^Ⱦ|?FBOZd/ӓ%? ?iѿRC=?1uVٿZ&>f@u$o?nkdQ*Opݿtk(àn-@-?v{h?\ߎ?W# |l?m6:j@7п0L7}?=?r`?T\ѽdJs?zKxAЈ;}ݿy49/{X?w?X'_˿ceM!?%!`p?d5$|{aCî:JѪ?6?s6>Gj?t ?"Hk?oERFzWpɿUұif.PkE?T|6?g p6IR?v/_?O֣΃ÿkր8 \?To?P??NEL)}x076?: . ?jM ?wʹ?(1]˿޿]Zj:?ti$(F?vE?%m42H?HlIq? 2?qw/[m5￷m'?QcݯϢ?c4?5ҿc}K˱*Pf{rGO}c*??Ɲ0ԿANG?q$i\?Q_?XϿu,>?@G+?пnڿnп&n?f E?d3P׿KF׸?E}42?(5R?$Ci[?PKJHp=>>2_gaus3_1001_coefs.npyNUMPYF{'descr': '}aοӑMlu 0?lx?pC!ѿadoG?fOj?fXP?zY)]󿲖K2޿; ?)#U,K"Ƽ ?@;_ެh=>o? FL1?Li/?`;U?T ?`Z,KX\ŽpC[YאӮ?PcWE*?,բb!?|Kn&vN]⿝7M?" ?yg:Ʃ?d:n?C~D5п3?S2<ݿ^n>Ha[]ܿ?`?S\?\>ֿr1,?UY?"Wr?)G"?L2;v?6ռ\׿h@RMfZտfp iC?R&?2ɅB?B# ?MZuliv+I?ʩ3hfݼZa?2Nث?e/?`V 8j│jHQ8Nu}r?li?⠛8ѿwE? f*?oe?D>Ls'3SݿpyG{?BP8q臿 |I 7$?9迎ȕ>nن1⿎LyA?Ro/r?*3?7?E& XEZ?7*^뿞(j?PĿ=`3׿0ZJ?㦦տ5Hbwpq?x?\1?@4g>ƿ@?'ڿIcT9} ? DY? 0?sw??n X?C25?TJ? ?O?ս ȣj׿Lq1 ɿ;Mh7EbcRk>9? п?,v}Ŋ?4W?\S?Xi_q?eʪ(?;%JzHNQ 1UĿ$E[޵=[]?AUH-?Di 8o?D^@տ40euu?DW|ڿ\تD;޷E??AI0x?=f?b!Yf?ݳ3nWe;5|+?p(RXFze8?g? @h𿦛S?}?acbfc ҟzL"EJ?lg{Ŀ݀?Ǐy?Si-ο-7D?fP~SCZj̿<6*?1?"?b֠Oտ5@k# N>m ?cΓW'?R6bsפ?I[8?h?pqyHa?bۿjjпXFۿ!,o3a?Pu?2?b8!<2ӿk?1fF?@L``?Uݧ9-S?s'+;Ϳ"g*_? oV? {;?59?ZꛦC2$9"%?I^1˿O俾Z|ݿbMܠӿ*T?f C?!>?}.:'@^?Kp?(B.DR5}ܿ\cЌ?^?⭚g?w AAYϝ?&rjW˿'쿀)C?";?D?1 ?`¿?T? 9a?vӉb}̿o?_|.?nw?Ky#g@'րbZ_x߿[af 7M<_?Ĝ?"I?[#?]B@0=*>9? '=K0;dE? ? Ȇ!qdO?8^–?-ڔg?$p7?=?%h/^0&?V{?c ܿ8?Ꟛ&Hˢɿ뿸|a\b/?xJg?ZG1?6Ӈ?Gl4Ѡxbxr?93Q\? 1XȪcx?ܖ@f? y9xl?2 !߬yL߿Ds{Ѯ?O?rB_?azQmMr?^_C?cg?@пHF7$鿄vCS;E?p~?k$?i?&4g4ѿNg?6?M0 oK"{?3T?8jnO?*/?̲-ҿu ղ?zU¡?NG4lqK?bܐxžIbXr>?߃h]-?~?Rl?ޘJv^%_?Y??m9d?x1gR q!N0F=NJ?(h8꿢lN?XW?JMl8уOty[?)l>?sW~?L4&>?,?N|?2ؿlgB?g\$ds?? {?p˜A?Oƙ]յNthC#p8?L*s? Kuܿ.kL?^*f? y?R |6PdYf?3 D㿺t29лiP/?y ?K:?^Aڿ[t%?c: ?i'$?mmSgDI?YDްN^=wE?I{?jFm?pSNH:;?`CmL-g(Ėʄ!i=?dIۿ`u??RMu?qj?3?0,U?H[lEg{ƴݿ>D㿕ci#} l+,3wۿޛyd?P?`c/?LH-?x!T9/ɿ[Zr?i&ҿA)M%_]ÿ[bQ?xc?2 㬿 %迿c9 ڿ!?dE^׿&GjF?d)?AB f?q8 F?l8Nҿ4 DAҢ6$?շ?ӗG鿌x˿>2ڼ?K3K5H)&?ej)?rع ?5,iܦoӢ(ſ_j@k~?K*-? jlݚ/(,@m>C@m:@#i4[qd;:п=r Gz@dz?3HctV,?_8?Иju?d'?WPHĿݙ ?xB+İ?sT2?n"Drӏ f؄^U[YY[?)si?h38?#CG?7U!`̩D(V?َ8H|GHu?&??|1H~?dp?,@?w*>Ǿ ?/׿Lя?{2jJ?=(ҿdQt71ShPc?jiߕ\4H2\'&;?L,??̒B60?|< AGn_ 庹$7mxJJV@Y?fNb ?AS??I#V0Wwr.8`?տE?hĆ? ?T/wPٝsgkB@ҽĦL?}߿F-?fP??wz-L?S?Ak+?2ff2Y) 61]#?+_IW@1-1? >@@֔|{?m ؄u~wݿ7JbU?a?>j3?Wx@kY:4p& V!M׿R=I)? pֿ(Yte?5G,#?9:տ,]o?8s%?u\ǿ5$󢤌/̿?ךI?7C2ݿ{)ي?wMPz9ͱ׿rG?+׿ĪĿ7K$Ϳ6qʿ)8?ʵŬy?4@z?vx|[,u|?|=^?1еNſ'꿜[Fܿ1?NCտ㤛,7f̿=?3Y 3Fۿ*[.tu~l4'x?',_?Ƽ_ٿEaF?&`3,A`ܿddJIw?Cp?2/?mW<(?^zۿq %ʿNB")ٿGv€?INʿ,㩡?Jψ? w?a?*f?,u{￟T 51r:?dݒ&q *ܿP?Y˗?cc\e?Z4.PJп@g?Ky?D* ?RѸLG(]￝t1hx]#=T?;U?lH-; ?W7?3k?N`RĿuq?@ܥN|?KdDyf!l*zù?ag?C\z?3 ީ?δk-PjL?YAw?҈Կpxx8l%,?(km=ο&6}?^?qhѠ? z_?Voٔ.Uny Dmxտgk?FDY-?C~R<@I31ݿ0M?߼8H^&DJF?b8EN{('3+`WBB݈?O'&eA?ݧRm? {?,%?u/-lԿ_A6JS6('?6п==Q4{ҿ[(?a%;?b6t?Z͢?ǦH?F5?r#e?NgDS#늫?*ێ?˛E\m?-"鐦0Uc?{?쬖X?B"? ( $0ĔH/7]W! MIt?2? ϒ!?ɼ ~=?:dj-?n?yaкxIȿLNv?Pi|?BSY9?H?pw&LgzlRWq8J?c@s7?lzq(`r?e?$:^?W? O|ȿ؝~?mҿ}εz˝=o?5?!0swǿ]?|6O?˄?Nۿg;`꿴Ɓ,Jп=RQ6?p?ωMW+?{u_J?el$N׍f4DG*ҿKoH$(?K@΅ֿX{?:?y]}?pZsA?+bkx8qY޿^ "ҿN0`?Z/SUWt?E.jA?Fl?B9fN,K;?`}MǿҺ͈E?T_Ŀy8foHڿ\0?DDx?͗+?|?SsݿnJ-vlu 7?g F2ʿC&?AN?R8o ª&?L?ʹxV@8q޿=]rPĿeHn?aq?<`A*0?\r?8J+? DSCb>28I l?f$.b/V?>@A7ğP?Ku ']gǿ[|?Ɛaz?`:R? ب?M>c?Z,;ӿ,{ _+{ɼyxΛFt? D `6r& >"1u? ۿe$?~iR_D0h'M)?# ^?q?2_l2?[E?BxKnT|0qg3x?t0?d?3?w8^֟?࿄%?dZ}o/S49? "ԿR#S:J.,?%۷?T?l\}ݥ٦ ܿ[es?:|z뿘"5?9.lIܿݿw9fo z?Ba#?Xƒ@%>?4K?B~PlOaI`J,6?X~aSpP^?@?A$[?ͬ(Q?dV6dG?KF3? '?]%ӬL.o;6?[6G?iO:ۿ^? }u?Bjc޿7# ܜ?^?O$ @Qa߿LN[?2x/ ?Q)k?h:-?CPmCHvqJW?qC8D!?UnZ?Ԍ(忑rWxԿ]PUb*Ct?$2# ӿ֬a-x1?B#?_:A? v}?QQMf?{ɦǾ[&G4]c? P?5{?E?U ?8hyUMj6??f'r_gOO?gF-?P?R%?b唣 ?T@^`T7ٿ;V?q?>8,ܿXWXvEG V AW3?8F?)?я?i5tLv:B%"MY%v??w@C S@g>Dž IŬ( j٥?{4?h1?k:9|N5:4/>xcȿB4SS?zj?n kx)?Ϳ^ӿ!y5q.ٿ/qP~G?$g? >W=@?>.،iV)? ZK%z`i27?թ?@ݏ?tGĢƿizm`?"пgL%뿽hC !⿙~e?gN*?RN?ml?X;?t͟S6Cӿ QLpj߫?C8KZ?R\h鿖ȏ?pUt?ROOC8UԿNH U ׿<5M?>Ƅ[ݿXl#3jf!`p?(S˱? ULK u?8(SL@d?}S/J7>48qֿŀmD9,-* ?Ϡ)ZE^ NwFMǿ_ \ޞ?$lY?ɴ?kU>:ڲ?n0Z>?/\X];:濴H6(?ok)?`Ö|?I?AtnmåV4?Qcȸ?`F-vF }I3TNSݟ?g?6̿ _;5?IyMB?Kjֿ?߾*߿yl~?WZu?R?\Uӥݿc 6 vO!p[T?(0ǿ`xs?Y.a@8mV?m`|قп ??ҿdڿnl???ռ{ٿk]d6qV?Y6hq|?cu?frP?k7Rǫ?$J,1@ ǿQ{:<࿠i4?ߋ]͠?g~Y '֝,?NӿG?]('uZcп]?_]?zા(ӿK኶vP߿kS׿l'?R}go?j/kԿw̑? F?ұBѿ8*>1_cgau7_1001_coefs.npyNUMPYF{'descr': 'bY? @?O=ˠ?eٿx^TQ*Ɖuy?Qf?ujS῰Qp?Ug?ltfoot_?yDn6*N65ȿ0J'຾?PD?(&m2?~jROԿSdll?X< ?v@x?֍n߿,ű^ȘM?Cn?o`HѿTӌ:wʿcr?h$_? *ο*5/?'9c`?0lxaf߿~Aݿl%ÿ} o?HF?IϿ.h?L?gPLڴ_ӿ>Ozf?S])p?J¿z]#K'/+z\A?Fl?y?P.pqӿFPֿJڵs?եgc?U5?[dS"?/WJˣÿW6"?6?l99?LпYA킿J24?޼??ZnѿX 6Ῥ ?̂-B?J|?ѿ\o$ÿ諁@C? ?F#1?@1jn/G߲>DMZǿU;}Q?vx+T?h@ſ⿏{)9|51L?gDr?H ˿3;ksͷ?Ga+?>bp?WwD?u\ѿ٠ӿ,=7F̒?송Dj?"?@)e?Mf_S?\i0?ؼY׿DvY-:%B?tA?|Dd?ZiʿaXybֱ;pV?~ԧqs;]ɿ6eҿb׿ęߕ*?7ݽ?""Iy?smg7տ$qD@o?,5쥕qV9jjԿ˕_K.(?qsW֒?\K!ÿ0ʛ+Cӿg޿""&?]ҥ4?@dw(5q޿ ]SܿX]KGʿ ѵ?>=? yG?w&O?EǿB!3ӿԇ+xϿÿ/J?$K`?-apYXۿn^I?D?U?HTܿ6ާſ?"kԿM ?Q?n87I̿zB>vaÞɧ?8dEm?M??3Rwҿq|$ԿY7 ? sa{2?yCf?5Y*hǿOl?߯J/x䰿k'?2ÿ˩?b ӧ?> ?wW)H;Ȗ?Sr??iȼ pſgX1cNĿ,8sq?s%&f?RwO?X˫"ꦅ?'wȿ*ɨyƿ@8‡WF\s?)V??h6/?\J,WڿZ[ҿ2\05P?6(?* Ϳs>-ExM>T??jv?нcg?s-59ܿ*Ɩ/Qk.?^v?.\ ?Chz׿9.տL|7?x7N.ٿx}*?6n?շ\]!?ܙpҿ?TPIO?lǣWP?|?n?RoW?`>b/?cHI}ƿlbĿ@9O=̿׿*\?R-#?;)?XU?] ſq9ă+c׹?QwO?kH ?7p]ƿiFпx8;=;:?8#j Xտf7$?MP?:ȿ쌴k迮%<ҿн&!^?I]?=X?jt/ƿʔݿъ4ɱ׼OZ?W ȴõ?77ʿ 8ʿFY2AN?j$屢{s?| ?eU'?} ?U˿ӿ~/?JC s?\?t?[?ѿ^wֺ-FݿRŵ3 ?|c4??m?;ƿۿHv*v'ZJ@0?ϑIy?@LʿJʽJoff?#̪Ĝ?qt*X g9x#ůJO^?ra?Vu?dZ)/п:̿ԌT?:ypB??xMh¿C#Ып<۱5o3*?$,7?)#? fƊ?ʿ^:Ĕ?0KÏqп oBM?y:}?c?#'iC o2C?%?V^⶿}@ڿ^#YʅAL5S?6/E#Z?cw?ۿV- ZȿNuFCe?<>C?e?ވj;r/qlZ ҿ(~A?OfP?-}1?Rl?^hpԿ"ak8̿hIIZLX!$?_:?3=?ߴ~W?f]|ֿ%(96?0*xx?U?=ҿ[6l(ҿǿ͑?.Y6"z?ش~ĿY6 ⿻2,Ͽ",G'{?_^P?־2Q?Sr¿$ :տb?s?r g{PN< Dy?l↧c4^俬?`D8m?-蝷UÅHݩ¿H?J?%οa# Q,?ST3Bۿ֍&A7?hicl?dC?WLw+Hӿ #G|2\ֿkzտ~޿Z(?DXQ?"9 =l?C`O.&z,׿N4ο 1|pĄq?yv?.kbqY?y?:V-Iֿ4U ȿ }?lpV?#KXV|?\ İ? LL]?84\g?a3?ʿ{#޿Fڠp?"5?.r!#?,׿̔8O?ki]&{?^4vҿ.,wo?6j?@Gg??ҟiʿb9׿- ѿm?yr? ];?v!x?%W?|=? A6o? 3?<=kݿ$!鿽ܢ?9@?hT?q#??T?//K׿ֿqm?0?_?I9h"Z/ؓſ,\¿0 MKWJ62~b?T&?`y?0·ĢIJPտIc9ؿ`wg?#.͖?R⨿`%wwM(?+?u+q?eͿ(< ݿ)js׿+U?Jvy?7w}?i)?$|8ӿ}۲z`JWErƿPu+z\?܎J?R}Y@Vɀ?xD>o?U߱L ZXOY[˿xzͿdrx\?C?JL?1a3?1H ſi.ѿgF˿1G:W(̿[W>E?ds3??^%=@ſHU?TJ?2@ ſK3: s52' ;P? g*w?XĿXʿwſpd?%Ld_?(׽?r0}?mi@T?Pp0-߿;/Pj$ ?St?11?o݂⿇!:ѿޓ?cI?{O?9x˿?:ɿp Tÿ>ƐTv̿v?m?'m/ѕ饟~?/?(fG gbϒJ2eN?ILvVmn-@xŌ%)Q,/ Eh]?X? d~0{;nӿKTͳɿRtÿ0X՘?]n?3Ǹp@`߿YaOv?5H ?\K7?vMۿ8?J ƭ?0/ÿ ɷ?\?Q9r*տ>O<ֿ?X?IR㿫?)?E6׿ `1ѿ0^?-8?Ϳ]п,lA} q:?|ۣ??@?0xqF?bʬ63eп?r?/?NDEX&o 𙓿IXm? ޘ}e:;ѿ`W??ޡ ͿA^= e?Z̟?.Nf:?ũÿrϿx-N˿7@? c??`/ҿΥuEzt$ſ}ܧ3?X?(( 꺿:\\Aѿa PѿR ,p?N]? ~y?x!Y$,㿺n \?"u?PG?:+(Gx?CKR@?\aYdߗpZ⿊@(Pʿ5#?hvr?#|<&p/G링vr?hQ˴=?/?,{ɿWYiӿ6Pa |VA唧??EqzM%?pJ>I$PޘV¿JdqʿX(пP9{?C:?/u#Bs׿:\п+!&0?p?e?D ?v1AnοZ$vտul#0̿5|PϿCN2D??lVx?9z,kh,rϿjYG~bÿh;~?G?Ҩ֟?.1'w% ?vu?"^ƷaMƹҿkWiE?a1?b #?Ԓɿ6 ~ ޿G?^>+?pt7?ks ѿy7~ֿ ҿ?$q?ꏠ0T?|ݍ3?̄տ\8މ俀Թ/]?1? V?>L\ɿۄvǁͿ$H?4R?Q8j?kR6z?| ?܉?ϐֿZr> Yǿ1I4͂?BL^/?0ƥ?RlR\Bؿ;A濾]tkj? =?+Q?cb[H=R %?Oş6ѿY,{_^?:?vb?%`Gޣѿĭfɿj轡?'2Y)?я?"c?kşn?ޅɿcBwݿyp-~??_?jܿn"#rC0^{{ 0?\5]A?FY?!Xѿ{9ʿLa5gK4Z?`bzN~{_4b0Ϳ/?S< ?rQJJWؿ,7]}ȿf?uD?uX?-!{ɿc^׿ |+x?B4 ?[l?;Dο/~ۿZnC?tS?7rW?7P~ު?er~A097{ꬅz?Ҍ=?*V̿\fӿ |-SοR?.w?t.mΪ?k:`1i/[ؿMտL 1?=['?{e?[Dfj yf}LJh?4n?kvOG݆9ο/hHtk?m:?տ:.5<?Nݵ5?>!? @Br(RT೿fƑ?x ?=ӿFZٿU'ѿjb?8Sql?rH?~|:Zø;<=׿(hKӿkK4@@?Wt?w??&z҂Jr?F{?B6ewݮ WFͿ]fYݤ?0$0\?݃/?_w,ÿo'&ny!J?H p̠?Kk Ǜ|hԿS.~:-?Sr?xb?LH;ٿ)McǿR^?:~B?Zb? L.?u{?XAuÚ¿(տ_,?p?6?C:ۿJԿXп0m֊?~3l?E? tH?2֧οl)ٹS: ~]x}Es??K?/Sg?Kg2?W hGпl^z%s?*8oށ?N%;Ϳ/q̒?0?lѷ(ݿd?TOJ??ř?UXx jM}Ϳw6$szٶCkA.¿j:f?.t>N?-#GfBѿe *;?`|S?dҷ?*c?~!7пZhǿU'Ϳ&Wӿр,H ?ⵠ.F.?3k?0gտryy"{X?GrA.Rӿ7sDʿ:3ڱ8ZM?gMh?稽?H2§?bLVοd ӿC5?3w)71?X ???܃׽˿~N!S݂ç_$~:+kֿѿo'?ڻ?ݨ<2?4?ajKҿ9aҿ?貿(bK?$+T?{$ ?B"6?jGMwF[uǿF7%?; nnr?2?bh!p?i,ֿv<{\% ?4?.?Bח&hv|?H%4w3@ϿֆBf/k? ТS ӀEտJS?b?^n?KQ? /EͿKs\¿( PE05>?qƴ`ȊAPҿgWMa?|?S?8}p&b@ӿc,Y./?sR?ִ-#c3%޿pϛX&Nu?-Z)?!5? AJmٿ*$B⿰R[??r ?jq?p0dóLDӺ^Q_뫿\;* fɻ$뤿c=^y "`96?Hұ;?.Rnǿԇ6ÿ^w8boN?4女n?Oe4W",Km?W7Îf?hl?I?A"=?TE)B?GH?VĿԿpc'?f!$w?qe| ?Kۿ^hĿ?+`m?ħ ?٫*?`~:ȿ4Y? ,Bпz&~9࿙C?/u*?nנ?5z YܿK(&׉.ud?0E?[οC/¿,ĸJ1ϒz?;į?ݡ5FHʿnBjTʿ4T-ſ)? @ڕ?d>s05Ͽyd¿x*.6?苢?tr!p]Gܿ:Y?:I+?|[?86c2fJſmBDpⵖ`S s?F ?曱X?VM?Eʿ4‡ÿmGl?ε)V?Hcb?/qc?up7`Ϳd3zd=&ݹ?:m?8?BrlC?2<)Xiaֲw~~DgVcÿ*k?~D!?{lq=׿JLǿF?ʲ׃?Ԧ6?c¿hӿSz?O?,Hyg?6eӿ `Q̉H`?Qb?h}( HV?ÿDR?8i_jA<ſ\Q@ڿ>Ee?v?DmPxFjtCF,ۿ)T󽹿 ,G?fbދ?Iļ׿6 lؿ:uѿ]Ԩ?Nv[݉?t\i俕YmCÿ#\?^յ?hL?"ి@ݴ?#M߿rCk`%?Uqƣ?`Qg9?麌[?ʨ7ѿp\˿O4\ĿӉW̿p?ye?>'n຿Ue9 N߿69-<?U?b>?ު?A c?V̶ Կb$3R3q?3UJB@=H׿,;Y฿0o{?xv?3ŧ"t4ʿrOh@.3߿ݩ?PC?\$?0 Gs?/տ?zDܿ=-?&?z?8jG7wп <ㅈ?wbR鱿r<ؿp{B0z?|+"?ֿbhs?n}?'݅?4Aw?% տNLܿ3+` }gC9l?V34?cBЦփƿP:ؿ̿RW $CſX!?fVD?-i/O1ӀοS/`ҵ%?ޣ?dS|q,ƿ8vZQԗ տ(? Ҧ[?pʿV?xѿٿOܧf&ڿtR?%<.2?"u?ø67¡n.Wy?`d̿@I?AeC?.;3`|?btĿm-$%ֿF?ۿu?52?8{d푥?٬\׿<ʚr]? x,uBҿwmx>!q?@6?7BM*?yH+Sʿwԅ]uÿtґ4?~z \?6?X  P?*%b?Z) .z׿* k-Lï?[՗L?&g?ߋ"F?Ję׿1Ҏܿ$P?G[?M9`{?zɀ;Y?h?o^ϿMS-ƿz3?$K)ʿo(v-?ׄ? eWƿ)+Z[տvZۿ?<TiY?0 ?n?~惨BIӿu: B^`օK0<?:.s?jdU?@(O馿5W*)z?ǒ@? a\]IZB?3g?n;Xq?bء?4f<¿ $Lڿ[ߤ r]?c?u?&-NB\ʿȤW5ӿH8c?8]${?ַTl{i߿Jy|ƿj?/n?mTȿhQk?<?O)?(%5 *!}$?6V}N9?>Ekpȿi&%e.k<?ڰ:?ǣU/?VJ/?ݞ;?&{<׿U˸KH0E͏?*s?:?MS?ƒObٿ#p\vN#P?8g+P?F֏]m?*6;ֿC˼UWm¿$> ?q~}?#jf? .92ǿOEaUJ.A5ֿ?ֿAA#?w6?(?3}?T$gd \0:`+*!4]7п$h?%gX ?0@@tωi8ֿײfl?K?ٯYe1?O۫\׿dP`ss~:}p*?.x?0F ?↻ ĿoR?HBYM?6?* ʿPfAݿ g*Sc?Ih?sLUК;? 85?JЃͿ,}=r ڿK!d883?m? MmeK4A?:R?2\?ി&pjտ?ш? eɿTcȿi?(`.?k_?мſEȿ%,V?6%֐?6 !?^"ҿ-q GgkK1@?z)ԧ?pd? vfѿ>y1ٿ"@%ӿ4!i?]i$L俷ہI?Bl=?j!M?~/Rݿ'ѿ4'W?wM2?N٧ ƿLXI{XSi?H.?&F5?.5`ƿ$#տ HwSu!? (x>?}/TxſHJѿ (r?ܜ? (19Aٿ+=e웫?̔q?\ bɪ(ݿ?UT? s_?MՁֿTEM'οQFwH?/D_+'Jy&ؿl ?>?I?Ҋh?ۄdƿ"Ѻ@r̿ʿ2J9?1H;?:ܜ?,ȿ>^?cS^qe?6 (@fݿv|?ļP?rT?hH ]ȿGx|1?X `,2%Կ>"3?9,7?@ ?N?ZmQ?#fgǿ|,ҿarg灴yrFvZ?!3?c rǿDDYI$$Y?}??e6l?H\$_6yOfٿ i8߿:W?lr5?jzղ?tt`EۿQտ8/`?U?|'st?jMOFQOU|mc1̧̿/?Tw?jzx?N'+A٢˿0Hbj?S* ,-=riȿ]d#;Һ?i?WX?%ǿ{??#bn9?tNw?`bb ?'ѿ&aN7ڿz?g?erD?9=ׂhȿ}-+ `P?VhfIпmGg?m˞$?@!׿"v A(Vr?D 1Z?ڭ K4?~Ŷ? p?Ќ-տ)ŀҿch?F#^?,~PĿ1=i??ad?/^f3)Wؿ+X qu?^y?>?rȤ?h]螑"Նk 򤷿?5TTE?፫T+d̿[}O]?o`F? i]FӀڿDAxn@~|Hۘ?PKJHCP P gaus2_psi.npyNUMPYF{'descr': 'Vq\r3"Y{t!YeAv4D%-xBz;a7|Q^ U~Xl΀ c<0 ʃ3x wecH.[f~@WyN`tȬl Ӹ[lVBߒEFtq5[+#R̽_}MgGf1` [nlšdcy7 pЋƤԤxtͮBD8 /S@u@9ݮԱK7?Ĵyh3g*,/= C<y׷M,+T=VG¾Haǀlľ[ž Q Ǿ~~ɾE1p˾pmV;Ͼv6ѾJnp_Ҿ8SӾ}brU<վ~O־.ؾ#9YھW+LMܾ ?d޾( Pྗ\l][#Ew* 徆ѩ`j4нɏ辽z_|Z@J|{ C4*s%jvQ=#M+nSRS4cyv&r*N8(EѺ/9e MH}sp=-s|r=fŭߵ =q 9 NJ Ú,AA߫^kdߒ/@0F7 tsnwof6?}6aw H LM!h"hU *+$qr%*D&X;FH>( )֫c`+--wd.w^eCg0>\Xj1}j|2MG36b4v(6IW88k7ͤ8bSS:p;ESd=p"wS?)4@@A%͂LB0CGDtS F6mTG,}H~'JJ>mK'M.N5FPdV1QƌE/(Rj+SqYi恤qZgD[ab]G^4aBP`%v/aȡpbtٻ cmE?d*NeϤ6f3%7^g,/h~U,i{,+k!ln `o"j/p4԰cq'Bro*s)t[޶u]ހ#vh7w ѽXx䙪yV ׿z|LS<>]}3z~ZadbŸۀ`UUXz3w]QH,56 !fX)R$\"5dr7<qWPk%, SFe|‘s"qq5N\t\ػו}u8$] jr %k鳚NgǛYI䜿J S+;6t: a΢>ݠV4SA {2I'䢿 .)LXR[0&Li饿ܹ'cz>׹mש.Qr,:c;]v,v]u$A(# T)Lf/7#4&J ;!%?F ܱLurTA/}a[9B `1=re)#!m׷$e~ʿ|'ʿHz˿Ĕa̿~|̿\IjaͿ#*iοA%|TοƟ.UϿk[6Ͽ*Tп!©пV!#п"VѿWѿ ҿ旣+[ҿo+'ҿܼ" ӿ$aӿ6DӿnֹԿLYhԿԿ0Jտp+^-lտտ3eeֿ{lֿLMJֿ+r?׿֔Fe׿@϶׿zؿ~t` Vؿ!Уؿ7$,4ؿI ;ٿDdyٿ0x'ٿ!G/ڿ+Vڿhpڿ t ڿ[ ۿCi/Qۿ.-ۿ'ۿkrۿ#L%ܿ3KSܿvv~ܿܿkܿ/7wwܿ ݿ0K6&ݿz3(=ݿ7#VPݿ+_ݿOtnjݿ;#o2rݿ:uݿh1sݿInݿ_ydݿCRUݿkh AݿT )ݿޚ1` ݿ`rv8ܿ1 ܿ۟ܿVeܿ\#h.ܿ>˞ۿb^ ۿeChۿ`5xۿm`ڿϭ"*qڿ&ע2ڿ0~nٿ8PEٿpÝOYؿpg`ؿ̭Т׿OZd׿-%ֿڸ^Oֿ’¢տick#տk8Կ ӿ+3ӿD.jҿ`HѿzѿU"/{LпP;I*Ͽ#AkͿ[8e˿i?ʿuRSȿxWcƿ?-k!Ŀea¿eX(yqb߀]Eu|w߱eb^_Q;ܢVn(gdPэ?s=x? :ᘩ?S}j?}lŠ?›Z̺?7j?r܎.?\?Af<?`cFg?5?ߐF(?8Tރ??.)?v)?cR`dD?3:?|%R?HEq?y-S?[r?ޔ9 bJ?)6?[,6??]?b(:?!}C9?M?7W_?4XQ?gr/?+?#p?u#{]?\?@b $D? ?6?M,]?BC?=?ڜbp?|* }?:?"?T[?F˞ۿ\#h.ܿVeܿ۟ܿ1 ܿ`rv8ܿޚ1` ݿT )ݿkh AݿCRUݿ_ydݿInݿh1sݿ:uݿ;#o2rݿOtnjݿ+_ݿ8#VPݿz3(=ݿ0K6&ݿ ݿ17wwܿkܿܿxv~ܿ3KSܿ#L%ܿkrۿ'ۿ0-ۿCi/Qۿ\ ۿ"t ڿhpڿ+Vڿ%G/ڿ0x'ٿDdyٿI ;ٿ:$,4ؿ$!Уؿ~t` Vؿzؿ?϶׿єFe׿+r?׿KMJֿ{lֿ3eeֿտl+^-lտ0JտԿLYhԿgֹԿ6Dӿ$aӿܼ" ӿk+'ҿ旣+[ҿҿSѿ"VѿV!#п!©п*Tпb[6ϿƟ.UϿA%|Tο#*iο\IjaͿ~|̿Ĕa̿Hz˿|'ʿ QY >ʿyɿ}ᄣɿ^ pȿ!ǿynm}Fǿ ataƿL$ƿNIſx_ ſ'ĿÿRː{sÿKr5¿OK%o¿$M؍osR{2cS ZOni/ctjެLĶonyZh|˖ 4"~ݠ6t:S+;J YI䜿NgǛk鳚r %l jtu8$\ػוt\q5Nl"qe|‘Fľ>S)UJ Y%,Pt<qW5dr7$\"R fX)v6 !;,5]QXz3wVUUۀPadb3z~LS<>]}|V ׿z䙪y ѽXxh7w]ހ#v[޶u)to*s'Br4԰cq"j/p `on!l{,+k~U,i,/h3%7^gϤ6f*NemE?dtٻ cȡpb%v/a4aBP`G^ab]gD[i恤qZE>YLWߟV{XU[UqmK~'JJ,}H6mTGtS FGD0C%͂LBA)4@@p"wS?ESd=p;bSS:ͤ8IW88k7v(66b4MG3}j|2>\Xj1^eCg0xd.:-!֫c`+ )m;FH>(?D&qr%qU *+$h"LM! H awC?}6fw t @0F7uߒ/nkB߫ᚂ,A9 NJ =q ƭߵ =f.s|!=spI}9e MѺ/8(E&r*Nv4cySSRIM+ vQ=t%j+C4*@J|{z_|ɏ農ѩ`j4!HEw* [⾯\l]E P ?d޾+LMܾ(#9Yھ.ؾ~O־brU<վ\SӾlnp_Ҿv6ѾϾ:mV;1p˾}~ɾP Ǿ2ž"aǀlľG¾=V,+Tfy׷M C<ѥ/2g*,yh}Ĵ&7?nݮԱ!9t@u⺡ /SՒ8EͮBDxt pЋƤ?cy7elšt [nf1`IMg ̽_y5[+#DFtq!Bߒ[ll tȬ%yN`Zf~@dcHo3x w0 ʃcVq#B;'oq"ySmVue9jG_s~hBπf*PK\d6~9ch$-a@6`t2]DxS[,1YWnUbAD\SPZQggFP=a|M;w&XKFѬ IAYF2FEN?CfNAHBXV!@˭=h6;w88p6l}4ÿ2еE1ew/,kbaX*i!(?N%U$[0:/O" { %}Y{y1^xx!#r@8ٔm5Vj S*| ^߲PKJHE>>1_fbsp_1001_coefs.npyNUMPYF{'descr': 'JbSjпf͊I?'و!?,Oxej;鿈3c=Z&C??`q{?4򭥴?[kd2\mws?߼?p47@J̿Zo膯ѿAO3~[E?hrO?ʯ-\αӿp{6?*}\?LI??|YqtVĺ?'EԽ?vYW5"Gl?5I??ɿ[?@xtx?nakL?g3?#?O)ɦ? O~h-ڮ_]ӊ^?;v2+¿@"\o/'-ÿlD\?ݦ­?@οiSq?|?RV?ͿfA?M$ ?*>?.C꿩?\ѿNƻ2lWWֿxƿ ^(:*?ػT~`d? ѿ?ƶg[?2.@F?zQw܀ῨO?|ݿQz2׿`4w?}ɿ̓7:?V\&LnԿtN?VM?RX-?961p{*=?Lпg8m+n*\j1?J?Yd䒿@ܨ?Q&?8pߖvʳ?tҿ2?7Az8HQ@h[AQԿ9?Iki ?fVwuM2bֿa??2tY?-uЈ?,d+QnMt%?8ǿ$?)7:t?HoX?zfEQݿ˘޿(濔VфοygO?ܥ?1 1(i?:?4}/Q==ڿf?$H?ZNVQh¿Z'?<Р̿z!oÿ*lt'H~𨣌??@q?[vBIYr?i?t@f?sL?,ߎpP m<п R?ag?=h90ͿD>*"$] lW?dh? -?6CrK}T7\?Z?Y;?¾S?;1~ԿcYv?Р?1]?$^tȯZaY,{鿘y{!7?ӈעm㿣\z/ʊ\?l(K?@IWB?ؐ8?\ޢd'Eտ@oit\&n|?ml? ۿMW30~>?%_1JǿK mPtÿ ʠ?l~?h ? 6 ?mN⿐RFz|(?~?’~XjY?㹷ܿmZҿTxBepο +Ϝ?wm{? qv?!lt\I⍿?? Zn?dB`G?$ mBؼA]BՖͿ0wf?(?odпSt=4%QŞAK?ZK($^8c2fsuɿU:Z?)\?dh?(Idd?Hz5*?>Z0Y¿̃G{ɿk{?H=@?:N?أ?R?BQ݄?F:?TƙA?ЂHR^?Pxi|}uпr}忒:Z׿|:VP?QZu6?>ҿATH8rû sTX?,?TDֿpI0? @'?zf?4 lp_`/]?V?{ ֿ@_~?:X&ϕҿ+/?}{?Dr/4?.lA꿾Y?ϯ8? :*W´@nPԿ}b?К]NF?3? ~?0Կ2 Nٿ6Q-o?jBD?uÿ' M&:G?^WlU5Wz?da9?xOu?Q1;L%¿=y5贿𜖅tk4?İt=`B?a' ?ط'\Ԯ?6`_$п mݥ `KֿVο8Fy ?I;,?aY ?r}t= c5? _2OעV xA\}>Կ[{^?q?ם]U?.sx?#cԿp~l 9G¿?cI'?r˗?&tQ%粢޿X1.?)lgh?yx9?C?<<5iu]?0C,?l ?uNY><`M?~?;}+Րc ?-?͘?ʈǪѿ`WZ?S^ȿW?Rlܿ \6|0úο4?#ڍ>?˟ڿSycF?%m?9Hp܁?wyLӿݴYӿ-72&Կ $ãQ4˝R?vNo?п\KA?4? (?6qn?lҿ*1 &X sտ2Iڿ5s ֿ@?.הb[?.N#`?~ ֿHе?O¿8`rQ!b0|ezο~??Jr? 9?#\-?;l| t֭4Fտ{G@(ֿ7cвA{̚?͊?BxAu1ݿyoֿ'ѿd-;v?Hd Z?rvc]ʿ,ɭl?BA-?d?G)?wO؞L俠R&?]4?+l?s,mؿ0Fu?li+_>?7(l߿]`]Q3xC?f3eG?Q? F{?p̿j6? rKÿLHx׿[ ~pՠѿٺ2?0?=NC?2ѳe&?lsDӿaD'o+Gޯ)?6n?ZƱ֑?%έ퟿ا2c}?@nZF?sMI?V`!?m;I4m ?!`}h?˲?8?e%^οTE?$!??2Wf?F„Ӷ ݿq?O"Ң|'?X, 6g(ؿ3n?w/-=?Bђ^;0i!vvrL\b?jeп?*NO$癿Hl>?F3(L뿖NLɿfLX?n\ ?(??C=Xm*鿽fhb׿PDh̿qY>ƿNCl?rL?CD ) q?O%B?dM?`?K9a@ؿ~y?Xۆ%t/hB?_?G*BտQ͵*[T?x?(M>?LJL?0vοHƒ0?❥~$?0(IR?=gmv%Qf?߳?׿Y}uӿ$k.翑jſ<?Id?4xXmt\?b} ࿹x+ѿL<;̿3a ɿ9+t?/wY?sg)R??.^?wР࿠N$ݿ×- u`˿ Vn5|ro7?h ?]YE?H8*?Eו?|5&Y`?F6[?9迩\ԿԂ[W׿\n?fVtŲ%Y$\rPWʻ?.?xZ0ٿVM\ T*?Tys,t?Gyj;?44u| z sؿU%?N@Â?Tp?M`M_п Z_D$?7?kYe7F<jJKj6?Fқ?d2῍e:?cmbR>?a1A蓿*~$LRЛ򦿃) ?]Ьѻ}I1Ŀj W9?lMyeEf/ڿ^n?#.1?f?4@׿I}Iؿ`•пo5 n>k#?P:uXM?x} Ć3ڝ\ ܠ!?P*r ?L޿-HNi3ÿ4jͿ"MԿh!PCYUe?G>K?OEb?tbk?iE3a;K̿SHɿ얓?)XN?/GT?@-zhb?ռu߿~iҿ5]+?Hm?1He.2( jտ1q?d ?s3/[q?B5꿾u?>4<o,࿊w eߥVq?s"?@O2? è?#;ܿ rB*?|@? ?jL?qoȮٿ~?Ŀ `ԡ6#?Zپ-?ʡMڿmE\ ? `?杖*?47?PF Ŀa4?7> . ԿlQر(r? 8?uKd?t+o.?HB_'Ͽr@ȿ$ֿM~{*p2?QUT5өDU⿞#:'/?;_?څt cCzFp01޿C?Fd??7봥?Rl?/BEM?G ֒G?@R6?]ԟѿ1N {ɿ4/߿=a??x?&z.?d g񿃑D7ο᜚ljM?$nuCEXٵI?K?`0UMZ $bxܿg b.?xzQ?ժvL/?%H?R?(>0?|6ڡ?v&>? X?Ra2 #UMo%?Ї%wo?в?#yhQa俖Xʿvb?FĿF P5tu?ݥ2?_Aj?Hel/Ya?;3V?:e zv?Oտsyd?;k*cͿ{ïlO_Ԝӿ-)?H9*?<[Tr?&U?8F .!vsTeepA0AĿ֜Cѳ?Red?2M=7Fhd3Kr0V=?~qmiK(ݿMw??=C?[q <`k̿=_f鿀[BR}-?q% B? *S˿&Kք?<]j׺!ѿk+,p(o?,cw\?(㦿,׿GqN?B'?0V7*2?dURX?aWݳ¿`q뚿l?ve ^42濝ovܳ?M3eQ?皌pѲ?0mfؿ?b\8?hG 5?dFhp4T?$_Ӂ ?hX1?>b?~ݹd0ý;Ѫҿ~{v_?Q?nɿ7bTD9՘?vHd96տ\=?̴Hw%?H"4ZEW&6?U]?0T3 |bFſP?y?PQГ꿖^Nؿ \3ҿܟc.?U4?d!{O?*m迎H?h_{?;^EcOּ?ԗՄ;!QG?i~?R¾Z*þ,̿iu?#T,?ECBB?0#`Dt+^Q׿T8K 0h+?pqуKy8ῴ2% Dv?MɛpqK^⿶>t[?>(?R%?7:@!7 ʿxn3jZ?ƪ?WK?V?٨Α}?%2?4{[!Wֿfc&vֿߣsnɼؿE;u{?@v?tŝ}4?V Ģ?(`u?ɖDg3@CR߿,%AC ?rZ_?"Z.?䑔׿a{￰Ufۃ?XZ?pf?2=`{ԿPL1O=bS%+iV?O6??Ll?P}뗏XM3QѿꆗH?<ɛ?n3~+?W9J?Te͍s=Ŀ-4/ʿtMĿ:j?Ș=܈?5?Lk?\l ?yia0?$l{ZlhSн?8(<ʿsTڲ$ڿN𓾿3E=?vlXc?nf?!0򨻿l!Z]ʆ?Hº]?CN@ҿrEb?mKS?MO? %"zu? %Ῡ&?K??[m?i'YU@'¿Q9_[?!]T pg?bSsN?sbo?qGPa(ݿ9g1CcRԿ6y?B?a?׃?.gŪk}m?é~k)¿Wn?Fk]?vk$:t*Ohɿ) ǿ+xfz\Ԭ?dt?^#`?IcF& w>ƿr̡?^?bxѿ|D?dQv?+޿LK\pп⩿&7WT?v-~?T}/cBbEt̿((9??Zy?]H,m`⿊#x?P1 ?EB|t#ab'^Q?:?xPNEb?xEt*i տa??$+Y?R?/ո?E?"zBʠ?\q[3OZր?^T9?H00A?}F]kƿ髆ϹT?DZӿInD_ tV?̭,?lݿd~m?m'v?كֺ\?,u/s˿:?bu?pϿgld-S?y3ά~?6*P?:bAʿ:fz?JF`?$\wϿq鿘F퓿C?30C?$e4V?ց?r{P?Dtj=¿(߈?`ƻ~_k{-.?i8?_?m&?+5Tɿy:ZWyҿ1E?5Ű?oĿ;+CK?].?;?6뿰읉dS?wo>$H;桧?,%Y߻?3' lӽ$9J`ɿܿ5?P\|?1\v?b?Eb?UV -HUBVӿQssZ?Lw!"-?![O p?!r;?TF)$?7? ?Dʜ眲OLxMzpJezпlp?4?a ?ֿjܩ?I?Z.x_?4>Z?b?{y|q"P3Ͽaqg4?;?r4#?^D? b󿴟akOֿ9.f?e?@a}R?4*9Rv{񿈺a`(cW?4 \D?TU>?M?ƣ#g׿m3k?wֹɿ.pF6@)VֿKĿgCѤ?0GU?W`w?dx?b;- RZѿȟ,+?hi ѿ'鿣SE ʿ|_x?$vp?$ 5)޿SE,ֿZ"$nhƿё?sV?t?Xj?~Z44Կ8?d\+jȿ s !ӿҀ?1$k?3Q=v7cobn?ˌf:Ъ?i2~y?c[? I1濨kgQO?~tk?p怼?NS[o?ͻN5k8UӿwϻG?ٟ࿼?3rh?϶>?mB`пr,yeͿoj:пPP5?ѲN?e?W׿,B?bB#ӿ1ۿýq8F;ƿ?]ä?jQ˿ދ6CĿ}/׿4~p? s?txN*T?jrCۿ=>R ) Q?3LE?5 ?(.$7˖ƿrA?0? ?KT?g&Hhqݿ{*Jſ괄 ο:ؘH?"1:?݌܆-? P?Lm߼"N3åud?bF6?&n\ͿحpU;Y%贿o:}?6l?0Bt2?hJ?gIGJJx Ŀ ߿TYz̿Dr?p\}#i.|?';aB?s@)?p a`9\̿gn ?x6K?=&ѿ ftckA?Cp ??M?'8JQݿf`߿50ɿe%.???]$[춿>< <ܿ)+̛ѿ(uA?$L?;b@u?)nՂ? :LϿY1bٿFK;@s ,?nB?*m`0?[@ ?N!^?CHْp)||ۿ9Ҋ̋.u E0T?({sr?s?cO0,?03"ԿfD%&ݿ:.žs۵?.b?Xc?J-LU EտUWJ󭿒 N?'7?pZ03?*;K?`0#薿t4m3H?Dݑ? %a]Zoخ޿d?M+?4qn?-k'?ofG?RvYB=ҿz?Fc7?3K?^Ŀ<.뿚VM_ ƥ? j.?bLdL?,+-?V]wBQ@]'翅п㴺h?6J?De?z]@?Kv4俰V)ʿe>ES޿$r~k$ᇨR?6@3伿@ w}LǿULQn??HИ'V,.?:]zWp{,(Pe7K@nĿ^Yyݿ4l0h_!vϿY,*h?Pt?Zb$?p?Mg꿾zI?6-!?fp&?'>B\fӿ\'{׿`ӆ@ÿl}"?1? w)9?D?ISkϴB\={CϿ(`;es?†[?Ri?(W?6 FlI@HK?`O7V?Z}ѿ]ǿ$$ֿ mٿ,u|פx4?Znx?F*[?~*򿉽,7=41?t/?L Sſx;O k}bֿB+??C?*Q ;R:d oҾh?0y9/ZP,?=?Xg?F7JzȈMͿݴ ?OÿF.Isڇ+ſ'\?K챭?66ҿelވ G q?V? V?*K?rʿ03VIH,?V5%9۽?Q'?KĮ?VUտރ 1ӿ˷uE2WпX?\O?便6Ay?S| ?ڸqQ?qǰܹ(` 6ߧB?._?bbۿo:f=dH?Jp?4^?D* ?Ørik?X%eh>!mt˿%y~ɿR?(OV+h?*[?N9ȕܿ.H<[ Ko%DV?ـ?< ?祖+OLf9ܿ77y)?S2r!QAɿy?9Y?pj6ڣ?&=ʤPxgr]jԿXȠiҍ_荿frI?2goh9s%5C?7DpϸD?ϟ?U֚?rG<zݹ?@jէ0u#ֿ8QlտJξ-o?!?rKg¿M?V|jfìǿmq?3|?dڃǿ/v<3_7&@C?%p?>:)eտ-CH{ؿcLsx-^пȮG?V-w?%md^?*r?퇝?[:f@x%¿4yW?X?`KҎ׿2A?g?l ?`Ϳbkx ޿6/A?lӿp"qѿ?Sѡ?ʳoϿK?^̵a?L?6=-?Aƿ;slVrſFUͿbY 'ϨIC?\▸T&`u#?#y?A3?Ҫd|x1&/ G0{?2#D?k ؒ?)YžS?ˣ̿.&+)rԿU~?B?"{ieA0,ڿ{ԿȜjlϿno N¿q?f?t5?N ?')@пk09_ǿvWD鿍jH6ſ=΅?q5Ͽš迈 t6a?>SF?@t ?" ?,Ɲ "t& H_sN?'k5hp鿔fx,ҿI;?AH?Go?1d-?l|¥ ?Dc-8ݨ?lڿęgh?<??Nֿ<^t#BmW,;M޿e@꿲EN;\˿l*|?E?v(KNÿYL ?!B޿SS˿Z z?v$?3?k?1`r࿔0~Wdž?⫽?l_?@?7?PH ?oSTy/?ȿo~ytPď}ӿD?Xa?m$V?؈ ?m֧:Y Q@"G:?cW¿w{h޿L?ſ3 ?4`Z{pɿ_Ki?!?!ܷƩ?-eԿ'4UzͿ η[?ܸY?$o[:?iu-6?03ٿhւ& T?'?c?/{F{6 QIrL!*ڿkєq?%~˶?r^&n~X{{LUWx!VB}hFk̿Or$fzy¾܍\Jþ98ržzq)Ǿq#ȾLʾ]̾枎{Ͼ Dо1ZmѾI7HӾ/wqԾ6_$F־-H!׾/I:#aپ⍛۾<ãݾ@(=߾+`#ιO⾣3أPi39@=^ 1辥P龸9 2j4Ä<2` k6<;G07CI2#ƿOnP}Ľz<8)[< .,6ǽWpy'=:~ST7mܘ Vօ _8 Jbu@Ԫ5j+Є n+rqEra<{5@[m]\ 㤇8/C^ p^!uCm"- #5$$-%/(3E'7 (֞h*X+hA-7 ?.+kf_0͐&Q1qYN2݇Y3fVQWr4A&25n69wG8U i9>:ɵHH< %={zp?W?@$+sA _aB?KL6ZCGz齞^D^oEBF7G28HZC:1J!6KgggL+XNSO0c; PƊq_Q'kaR rDSj0Tx7 &U@`.&VoX/WвCXdВbY IZc[إDa]4fM^fk_JlWۄ`G|D=ajEatcbba7Uc᳒[`dك9e}f5gcɁggSx\h+4ߔi0lXCjXfSkU+m#a"n;uEo7p˲p v$mqu@n rskrPYs*AXt}`,t|}eu7vFBvt!̓w_w7OxM *y@>~Gy$? z rFi{jv5| MW}oey}vچ~igy:K"'bS;q Sqg1с;f!<" e0u܃v&@z ͣeaZEcz[@W*Al(8'" =`b'SK1M$Z0 ԇ@Ǔ @t?A s`QjJBp{mJ~Ɉ絵ˈIÈVvCQux霓Mtj'85~|7~/EE7fن4]хs:5loP>Zǃ2>tu+% }gS&M{@АxYېu r'RNoo!hxUVSaxepSu+hK?oQ_?$i?b}eq?ZKv?ؼ{{??4e?;􎀰?4vz؉?t@|?rB?-}?ד?P ?)䪗?9W?Ci? Tڝ?^hH?@5"?H?BPxt? ?y ? !?>:h?lm? )c&?rH]?nӸ?#Eo ?OX/>?vG?;j?2v^?~?;y|tϳ?ϊ$?3IA? ν>?a ?iJ- l?x^"?d34ظ?ھ?rҧ57=?Hv!ƿ?V#?^,Jݔ`?#4EPv?è?+k#?d)?_O?6Ml_p?iN1?Ѡ? ?w wj?x -m?S?U B?<?kpay? gU?)-g)?#n@?1ҷ?Sq?P "?7O?\\N;?'IV?{7?R]w?|~.?6ȹ?0?P4?7Uʵ?LϻK?t5ܶ?D~ [ ?!<]?SԺ?F?FH?Dž0Н?A#?*jRF?ZU&f?~rzF{qu~Ð['d O0Ƣ:vD/>w.jK/3fcyH;Әf٫O2evOvÿ6/_q6ſѪ|ƿqhȿg;,ʿL˿%ͿOf7Ͽ^ﭱsп#{*KѿA] "ҿzҿHBӿŞԿunտ$u%<ֿ׿wNU׿I]ؿWNٿ' ڿ ڿUu:iۿ?ܿ^UWѲܿ Lݿ~]ݿ4h޿tO޿7.Rb߿߿XS֑|CV%H࿣ q~h _zA$* ࿳vd9>+F}+!.n}6X vZ-࿧&QoGB!,pi\Z߿L{߿޿9>ݿKhT1ݿ5nܿsۿ76ڿIؙٿEؿǰ׿fQֿUh 0uտ|&;Կ֧ҿ%yװѿ)^?п1ͿlX ʿǿ#"TzĿ @1bỿȽ7eaTyo_|_*'?yN>]?<#{?wBQ?{͕?yt??b؋X?_?uD?矤˅?]qu?=0?(??&?UaG?_a??ñK+?l(?bC?h,?D?q4ƒ?;Q?fp?>W?=-~?/F?=?萙'?G!*?Bл?fy@?”9$?-Ub/?)LB}8?l^?sgF?&?] 9?b??o9~?q5?p B?$B?HM5?*L?V?dN?6.?{??Fl9?}[?FP?04iٛ?6d?|s:b???VW:? >OA? 5x?M ?@(?ﰒJ?o*c?V,Vr?dz/x?*v?Ojŋl?>jZ?O?[E?;[?f{ڣ?kC?F?tMhf?Na?㽉 ?,~?]+7~?Tr?CXm?CXmTr]+7~,~㽉 ƿNa˿tMhfпFҿkCտf{ڣ׿;[ٿ[EܿO޿>jZ࿵OjŋlῈ*vdz/xV,Vro*cﰒJ@(M  5x >OAVW:꿱?|s:b6d04iٛFP}[Fl9{?6.dNV*LHM5￾$Bp Bq5o9~ᅥb?] 9&sgFl^)LB}8-Ub/”9$fy@BлG!*뿱萙'=/F鿐=-~>Wfp;Qq4ƒDh,bCl(ñK+_a?UaG޿&ܿ(?ڿ=0ؿ]quֿ矤˅տuDӿ_ѿ?b؋Xοytʿ{͕ƿ>Q¿ϽwB<<#{yN>]|_*'Tyo_?7ea?Ƚ?1b? @?#"Tz??lX ?1?)^??%yװ?֧?|&;?Uh 0u?fQ?ǰ?E?Iؙ?76?s?5n?KhT1?9>??L{?i\Z?!,p?GB?&Qo?Z-?6X v?n}?.?+!?>+F}?vd9?$* ?zA?_?~h ? q?CV%H?XS֑|??7.Rb?yO?4h?]?% L?^UWѲ? ??Uu:i? ?' ?WN?I]?NU??,u%57=#3:,^S݀}5oἿ"[="@,,*< 뺿rҧ<ھd34ظx^"iJ- la ν>3IA݊$;y|tϳ~2v^;jwGcX/>#Eo nӸyH] )c&lm>:h! ᥿ BPxtH@5"dhH TڝsilW)䪗P pד-}rB@@|vz؉/􎀰4eF{{ Kv}eq$iQ_hKu+?yepS?yUVSa?!h?'RNo?m r?Yېu?RАx?gS&M{?}?+%?tu??2>?>Zǃ?loP?s:5?х?4]?E7fن?/E?7~?~|?'85?Mtj?ux霓?VvCQ?IÈ?絵ˈ?Ɉ?{mJ~?Bp?J?A s`Qj?@t??@Ǔ ?Z0 ԇ?K1M$?=`b'S?8'" ?(?Al?@W*?z[?aZEc?e?z ͣ?v&@?܃?e0u?" ?f!~Gy?M *y?_w7Ox?t!̓w?FBv?7v?|}eu?}`,t?*AXt?"PYs?ykr?u@n r?v$mq?˲p?7p?;uEo?5a"n?R+m?XfSk?@lXCj?<4ߔi?Yx\h?dɁgg?5g?f?ك9e?쳒[`d?o7Uc?{cbb?tEa?G|D=a?SlWۄ`?xk_?4fM^?Da]?c[?.IZ?}ВbY?вCX?oX/W?@`.&V?7 &U?j0T? rDS?'kaR?֊q_Q?Gc; P?SO?VXN?/gggL?!6K?}C:1J? 28H?7G?CF?^oE?cz齞^D?\KL6ZC? _aB?$+sA?j?@?zp??3%=?ɵHH:?p i9?:9wG8?n6?A&25?VQWr4? އY3?YN2?͐&Q1?kf_0?7 ?.?rhA-?X+?֞h*?x7 (? (3E'?-%?$$?- #?fuCm"?p^!?/C^ ?⤇8?Tm]\ ?5@[?F{?a<?h?UqEr?τ n+?qj+?5?@Ԫ?Jbu?18 ?|Vօ ?ܘ ?m?.T?=:~?9py'?6ǽ?.,? ?,<>8)>Ľz<>uP}>n>#ƿO>nCI2>G07>L6<>` >Ä<>2j4>9 >P> 1>9@=^>Pi3>3أ>O>+`#>@(=><ã>⍛>/I:#a>-H!>6_$F>/wq>I7H>1Zm> D>枎{>]>L>q#>zq)>98r>܍\J>fzy>Or$>hFk̿>B}>x!V>LUW>X{{>n~>>^&> u>)F>N > ɐQЗ>[`>*bR> w|9j>6f> El>yQ|>W;2+>G>T!>Qt>yҘ>#IB>&; >gB|>t)Z>*ׄdv>XΝy>5 g">PKJHJ>>2_gaus4_1000_coefs.npyNUMPYF{'descr': 'QFyȌ?Kſ_0vX::uϿ&ľlG_?*P?k8?#o>Ɔ bm1(MLO?q2?x['c0V? iy?Ӽn"|t5Mڃ?$*Cùi? ?6W/ܿ6E&YοRg2?s`1xj_u C R?7wbM?Rr?6q?yG?长|6?%(/:Uտ-VQҿN⧢?PKrݩ?n|- ?g?5iۿWzsS ?FgۿտC1.}h`ڷ? ?D? ?3'޿۸Y6kaο,ڊ!(FGbKDV?z %?eC ?e ֿ!b]FӼQ?0[_ ۿ}q?|g ࿟eǿW43迒$]X¿Yȝ?Dmh?{ k?seؿ?oU1?)??`+x?-̿(/+"."ÿ@֝)@qښ?[ ^?iיL?eNw?"rxпTܿ| 䶿#,860? ?g&NA-K¿EĿSwj?'l ?-i<?cSkXϿoiݿ kX?ihN5?O?Iw?K]n?9zτq?-}Jv!nX?-꿛la6Ϳ.Kd?X??"Z?~5M?)Ŀm? Z?ԕ ?YT?Y\>迼ӿp+Ҫ0.#p?P輑?Ou 2?RX4%N2Qbǿ'R ??֏&VQ&aҿ{ˈKRW}?@N?pͣ?i߱=?x ʦ?haC?ߍ' |˿$"Ce"`쿙?ʪ/?ϕK/?0kkP?xų?̹nڿtoſ2ci Oƿ-wݳN?[ F?^r?EKo@RsEXϿ3ZA\AQڿ2vjtSd?<9A.>u?ht`ҿ!~ο|=?:b?H&Vqɿ<*B? E&??BYc-?l%#5Fٿtv׿\yDr?%pLm׿Pjqxg?V?? Yӻ?I=ֿXH}x?ASi?$_?OOfMҩGZe[\Z}yh{ )F4?{B =?4ֿؕ+)?ż ?g?6 {V8>ʉVzzwV̍ >wh?PN?W3sx?oV噿? ?_v]࿠_SLȿG*j٥tWGǿHFo6?2?m9пkX?¿#FG ȿi H?j;+?[/ͿYCp߿_c#4zs@ύ9M? m?>kph?հ#(ؿR+34hX?)@?ԣ,?[׿E߿U.)οt $H:?*U1:o_kqB!x\DN?(?g@?NhrJp?r?) ֿϗ8 MX? ry <;I,ʿ5 ^ 8'}naMex?;06}y??>(=?(ٴؿb] Ŀhf,H??oag+?k? ޻8zĿ/{_ԿYM< 5xǿn] ڿJz?i0p?,u0?ȻH?Jп<ʿL?5~=aǿIۚrпÿB8Ŭ?Kȣd?2ɤ?K;X_8n {Ŀ )@ȁؤ? S`%?`Ns?Mp$k??}?MmܿkFheܶqJjڿcCQ?BwH?ǿ=f#P?,t9ZKY#[yKI|뿺t&rͿEv"P??ܓ&!?)?H9Uo+Y?پؿPB-se &ME?dOg߿ ?}fʿ-[⿊Q6y6"߿t?Hg8?w~?<̩ 謹bW?E+ǿz?Gƺ-R&7?'w?êIz(?^?<Ʒ,?2C?sSɿmBC2oϸ|T+W Mc?؉'y2褿"I?/?1?+18?dfAw;ÿfl GH lܿ<( T?n?⧣?c\?]?N@Eҿv=BgE_ȿ>w;:y¿he}?Wчk?R܀@3п (鿉 dqQXx`?A%?Yn(?0l>ZU~?dԿ e ?1:Km?I$ӿBOH,*7?gNH?ؿ`v?ʞ6Am'_zĿCZg? R?j0?6NO?ĥя,T<յ 3?'?N*?cyߧ^2`?qO̿: q?b?o%,L fiy?R?PwJ?@;#y?b/οs1Ksw?[WؿxC?]SXi?"þ0c?cP?Vo8mѿ0UjDֿ 𴔲?}vߪmpd?pb1?pʿ 1{Ȫ ƿ{?uο·Z ?O~j?# )jc'?$,l̿4ˉ`醄4? a+ п=@J>衾?OW%֭V?__?7Bu?O-[ӿu?w֕?@h? [[ZZ?83!&`տ&Y{?h>e9?RqvB׿rlYp ?=V?׿ʇX?8}Y?'$(ۿ]?$m׿֯.7ҿ},!?œ=mU?G9 ?4kvԿ PЁ1m58ve?rk?W!e?G)m>D迚"C?"&y?r>;?Mէ{տ:je?O+?~2n?r~sޔh* 򘴿h(q7Y?g"Gy?铭 ̿f_?5?Uʿڿ;JbGwf*&*\?FA F?uP2\?ָI߿99dĿp]3H?=m!F󂉩o^}N֐B?Ʉ ?8h4>?٤J{ſPS޿ 7vQt&#?V ?V"?Gp3?bݿ`H\V?cjٿ&gs?x]?:˿v|,N?DKпژCq7Jc?""8?4VlN?ڻ?'a⿊|C֟㿙].V ӣ?M-?YXR?hTXO?R|giοT hʿDA ϛ?3GU!?h?x׿^%ƿZJ#?τ2T?\3?_C5`?r|^ۿ]D05r?9c | ?yHD?II~?jiݿ$}ڿbw?k?'GԺW?{8?g?0S ࿘u&Ru؅п;x(uK?Z;?gQXOۿa~u?gWʿ.ͤxw:?J$خ?,MQٿlp?1]?YX6y?TQ+ԾD_0Rx:lᎏ??>?׵ind?ЯVvܘ|zr?\p7׿LB?`W?iW b5ηTىZֿ*椌-?_Ć˿/-{?ѠԿ_ٿѿ@3T? zЌ?@S1U?xr?+Ϳ eQ,Cʿv O.p?oc?bR| ?@D\?Db-?8`ћy?5R?mrYƿ>?bIf?Վ}ѹfFas?:놹쿙e&⿷랅|꿂)?ba?a(-C?J?~&-,KkCh]&տU׾?fӼ?RL?^75?bjLӿSq}?<r?gп>ؿgѿhcuo{jֿ/J%?X;.?DŽ֯ɿb ;?OM?\Ag s?" >CHӉ<X֢ ܿXʷ?.n-aaqӿ,* 6JR?"a ?>M]F?P@?u糿B:}x 9{ϿɃz)ѫ?o?W\+8? ? bU]dQ?U/WW?kHQݳ?TӬJQڿ׿Tr_n?tC9? Qʿ:,XS? V;?6.37¿H7EdٿJTfiъ?Uʮn?O%Z`?d*~,ٿ 46貿ks6?6N?' ?4Eп˨j^高?X M0(q?GI?xoCE?ܘȿ yƿZŌ2ӻۿe;qbҿTrx?wU@¿M`r? 0ǿxWAjvvfb?{\1y7Gſӿ ,r?4Sg?6!Lӿa??TJ?M]A;?ٯ 9 Zsܿ+wTտdc~SxC?I:峿_?7Ud? wzjcc?y*@?t\h޿dP忺P8?(?;?NBY?i̷ܿkտOڔѿY?eem?޿o?, bV?7?0='?b?. ?s%Ϳ%3䷭k|{?;+iͬڿ+bv!޿#{XNPݿ*?oXh?'?=-ÿe I;?n?H?v|еɿ ʒ2h2 h˿#uQ4݁?I~S?Hk?晢?L6ٿ͞v$a> LUƿT>?|qF?=&k?֭5K`&ݿKs_[bFB 7?==?|zO?o??KjMCG濨_xs? zѫƿ翬yh>?<8`-?m%gWq9?K!}?F? 3пP?9 ͹ 忒csgۤ?Bee?`tsK?2r%U?g@X"Q|B?H7?ϱ9,ſ2<ĿR`󿜍yuο&&忓O3?,?MR=%?"/?(`Se?QDb\N㿑0cC7?/(++ou7z?|Ǵl?Tf }?,?T]߮)ȿ':ӿ)t-?I<?l"N9?RA?U@q?l.5ȿc\S?KH7?nSP,?GsrمJVe(qwL<'p?ef?Ɉ8/?g[88?}#"5ǿS۾D %7ſ7j-鿾y?n>LܿΙԿN;-UA?0:Ҳ^? r?`W|?a Nviyݸ?x9PA? ?PKZ?İA/?x?^Y?(c#տ߆ {M6Msr?Ğ ?:he?}}?l ?%6|?f啿aWVJlmÿ]1x+B?e0UM(يBF?(?|I??'.eҿi.(ҿHPOp?l9ynlጻ?:":L(gؿFD?&WqRǿc3ۿy"jiNNjEֿc?{%N'?uq ?_\?M;kֿzUJ"?Jvڿbu]?2L9?.2cb?BFcj?X(-Oпn~ 2 Aߤ?^w]4?m'qD ?߿0_ ?9f`?J?[bخ\Fٿ X!ǿT 2?q¿DTlOÿӖl ?_i?.[?kK/[PXmF)7&t?1[?*.f@?Ǖ~Y?c y?6mO?6kҿ=r߃{뿤r}9?6i}L?(ռz)|worݿp.?瀇^Mq?(w̿ a@a%?K9Ϳo$?ǩՓ? :5?B~.@ĩ )?>i?`?"ڿHU& ᴺ`QLڿH?qv@^޿tTyc:g3Ւ"!?f]Ѥ?h|-u݂?R0a(?RڿmS|:T?#s tPIziڰ?io?68f?t*:Kп@?O]п".޿OD?{?q1]ǿ f?0?^8~UJ?`&(;Vҿʷ"vѿY6?Y?3&?2\?:ֿ6!upQ◿mr2Lz?YuY ?ĴC ZA?p.ʿC!]޿_wo;l?UE?"KTZ,V[2?~_6d?,IGb?hOv¿lQ6ώԿWoD#?̈́̿}A/}g?2ڿq,P8տHG㽿2{B?0N?bԿ@tsv ?m(?ɿ[i?jL \V?TO?Aղy?C ѿ;Z4(.,2ܿ)|jj-?q%q?R^’뿿e4P@?Ʒ?sƀ?ys>?BAֿ4|iaֿ@QJ'Iſnh ]?m?S4Z?jtѿ4vѿ!kֿ"#\Һi?7di^.?.et%Į?Bg???ۿֿ}??WK1 ?ǟU?ʀE~$澄R!?7ٿgfȿ?m~;?$b㘜$οǫDFe?2) ?:et?IM?NZsӿpDzj 0?k3 ?Eܱ?'^HQ?2OfU?c˞ſZ 屗8ttztiN?kD0H܇?B?Ym?- \?s=ſ %apۿk: ? ]b4ƿ]ؿW+^?z?-+,ſ#w4?tO?aUP?xk ¿㿭̩Bƿ% :(?^=N?hSX?1?}+G:%ׇfozן?&dގxſ}y_bf3?5}sK??=?/? n?ÿg9٧?ogG?tnP?˭yf/cb`. tbt(?[z?F ҿj]~?L0- ?@g`??V-?M7.? G7"CۣQv,'nq ?h2?b?qv=??:2q^޿Ύ?Ŵ}RAD?[?8EkȿwIѿeFPa x{"[!*?S03ҿPK[*鸿-'?E?Y?9a?_<BD*?Q ?og >-iٿv+ߠ{yܟͿ.Dzhrݿ1d?{Q@vࡽ? ?cׁӿ8W2aſɬ8w4?q[Ŀŋۘ ?L%?po?p_̓տB:o5teIm?,&)BUJl? 40? #{t c|F?D/?]#Չ?*eĿ/VwͿp:.,?5 JŘ̼?wo?Oa$0G.F_$?bw\;?j/5rx _ҿ9N5ĿWngڰB?q߸ ?LwŞ?AB?B٪ƿ<ֿf:dC?Y0Q)2?@縄Xڲ?ڶC?DŁM$ͿֿRru?N_)翏;ÿ yO;Կԇ<??1Z(ߧ"#.p\/R c.׿ вs*?6BUj;?LC^@ҿ"=bѿD_rԿV)v?7=L?GkHſ$hGO?m?`ݡ{?%,?=?t&?&yKuпu܊B ¿y& g pY?9?s2U7ݿ'zԿI%]xo?dջӿ ȩG?kf+.qJ?$Dapk"?K󿿽4-}J?i}?K+?JDο"Jh]pп>֡I-?jpuݿlS?@ޯ?w0|a?b\P"?0eG3VT^S ˿enw0C=#lο6sǦ ?JX*_?aSnDP?t-G˿IC>E(?ϴ5vd?EǴ-?1zg?raWSj?EF?N,T N,9ֿ&8?x<&<*ҿofb$3ڐE?`!*?|zE>?+:t@({`~ `DI1࿽3`q55o?^E#߿!c1Oƴݵ?; 1Mb̿?cD?v7,?;l?v*˝?@w?d$q /Q뿨@u׿Kvm8!n?T Te?m> ?1@?}c ?Q^kΜ?hq!V e?9[ҿ PJD]$Bÿ['Ugj?@?=-m?73?iw!IӿfdTj: X׿N.6Kϭ?p;?|[?0?;X'V/FT迅i?N|^? J:??DQѿ5^TXͭ]Ӡ?z 3$K?$0^=:?ab0Ϳ{XyOdǿYy1ڿHyǯ?d ?,2?H*?Z Ρݿ,4fܿ~L3? ?z>TL+ҿ( ؿd<2ASk㓿J_gE?¢4?k!?:su?w?}^:Ͽ*w?D?ؖ~?P *?. ӏƿڷƿ8TѸԿMF*eq?^6?NLJ¿.%n6-?4п[c ?TŃ?:?RiV˵Ŀ_?)Eɿb(꿑ewLe\"⿜P?lp"{ ,Bz?$5T .? K̝?~yj2?:ϿUDO濬P#U?&뿲g3Sp] ((?qj? r•?ӒɿY;>>ֿ:V2P?Qf ?1Y?DiŅֿ.9)Y׿D׆c2 ?3a忚ocڙM ? U(Q?37+?;} ?FU\SÿWd?= ѿڛ>ѿk(Aؿ㩔?zfq^Lj2l b<8uW?" -fC? ޅ?݁bN?Qhֿ,5E}~J|eb0?P^V?PKJHXH>>2_gaus2_1000_coefs.npyNUMPYF{'descr': 'MatCWs˿Q^f?{!? K?6b?D[?i[w0x qAj@6+?C(讹0 ?3I?b6`? Y?2?m?=A?g?+r⿭&%#~:2w3DR4'yq?+c?ٱ'?|w@ feLƿ4]V?j޿_vٰ[dϿ}ٿc?CU?D;ڿ =Ŀlk'VӿRu?lKֿ< ;!Qٿ<߼Y?6??l˳9?̷ Ҩ?%)?I$?1j$C?Kc>5 D㿰ֿ_X-Mٿy?luw?@95?gK?|Q?o?+Dx?d[*?7ͮ?PT QqHRC8E|??4ӿRWw? ͧb{?qJj'v)?Ll{?|&?A?eU?q#?W?*dͿ*zH\??tLֿzћf?,C?1Zݴ? >_X;TTwMn1!h9>y+ ?ʿ`?v*>f7zֲjdPݿizH^c?VO'=?kh?C,? ߿%h,?n%?-? r\?MfiѿiP:Sjٿ| ?㟭J?J4i?u'?_xpп\? ,y?vW1? W83?<x? C3z mZ=l=ٿ9,9z@?C8׿ ?aj. 1mؗ,пE/ |ÿOHÿ\5xѢ?͑r?@Cjq?qr?4}?mq?vt0ǿ8QhήP}b쿈5n@p wB?'54@.@?*Z @{bXw?*+?cZu!@Dr? tV邂;o?ӿx.<AֿK?FTS?dt'ʿfqErĿ>Rc_忢dh*޿L]:?:?4܃Ly?rEP?io0g?x+ao{ݿv[?i~< Ȫ{g?Ee?[i?ߗa'ڿ5'|*?\w@sM, xӥK]pɐ?u?x1?s9׿6&m ;pXa s ӿ@QI7A?Rl+?A/@?eˏ]?I1xܿj;GYe24n3?ؿxw-JgϿy)oʿ‘D⿒7˻ſX-R|ٿWrI3IſPg?1_ޑ?e?>tHοLō\?RF;߿mXf?쿠w2ũJU)tzؿN(Z?v?JԲ4?cn࿼bG_ܨqv uO C^&?OE}??Iޚ#?MwF?di,k|޿F xi fEons6?ƗyīC ?Ƅn?@Os?8yd? , Y? $t?R\ؗؿ.8ٿH&Ŀ[sI|/b?kg7?L?l+SN`?9aS忂y-U޿0L?:,Aֿ?OJ?I-]`jĿŮ[E+ 4ʿᜱdOCh?pZyӽQ׬ôyԿ$mlͿAO+ 2n;`?D8?1&?le 5ڿE\?ʝ[ǹPr?x ??>2\cx|ar_z;K#֯f?rNB?u?+Z @>Ğ/?Nr?`2:P/D~2ʿG\u迴/9751?M؈𿌄D|޿`j~,ɿA $Q??ٝ-ꄿ+3$?xJWο-Q2g:' 31E[&,?]R!@O?<*6?g Z濎 "ֿ;@?Np?f"?:C?/¢-v/ߙ?cG$萝lwDԿ~d&O<] oM?u??#迓g?JH[?Ϣ?G*?:?=_u2?:)?|eʿ<,;0?r߿!mt8-$̧!d?ҿ԰@J dn?I?]??zپ?]6̚ؿT%݁lgؿ~yl:n}п4]MTԻ?y;\P??j`?`5z 9߿1οl9_VR?k?VD\׿ ū?:З-5m?@f_u?C+?$(?WV1;?ջ?Ï?ܸC?ksu?LX[ӿ-!{Mx#Xք;tk4ῘIl_QXѿCzp֡? ?)۰ֿliXRqkXx7+? <+z?AA~?o$@{?EDh}!׿z9e? 6΀?YOb?t0zȬ迆!_62bNIp?&R~?ChN?uJ?X/ɿ""?3g] k4a 7?6~NٽY-'SRڈ??9?' ?*qU??^"-[Ju$z -Uj< 0M>V^п$T[vGd?j-:@˚0?sO?` d;> ݿ]v\꿤}?\H{ZC?7ƿWƝȾ?u߷rd?t2-?0?~* ?Ghb?|쿮+[ֿ[iտfm?۰b?:rx,)?U#E?SտF9?/қE4>P?] g?P!ROK?2*?⬗T?pJ?GLq ҪX W6`(!=ʗ?`p?W+?ƃ?-{pk{:? ]տ|[i⿱ ÿjQt4濸'& ӿIPޥF %t?t~?YMk?w+QPϿN_Ї9*4DTv?:Rcoy, - ݿL ?3?LL?5?qm?*A9l뿔8ݬ͜61&?*wl?zMt?B'֡?"r?C!ܿoXw;L÷? g?CFo?{o5?=Uؿ3p?\Vۿ"{\ac?L޿wsl޿?C,?3@l?_~j?DR?ivm7X6Q𿰠F9`쿀o fpV?8s?dh)D?y?`稿zt3'[I~X7]spM_? I?t?ݕ?.i6Ί?-QMŦz?=j?_' #?AmU?7 nRXؿJ"|&dn ו3?9X ?Ԉ?u/^?! ?3.xA?ސxg/dmW;ƿg#F~}a6zB3p/N?f]@+]@0hz?CYe?G*½"ڿwx:P$v濸vP=v9/iҿljݺ??>n٬?rǿ|?ܽ5?P?? ?AU?B&v Y%ؿˀR6ğ\2 ?~ οD(|N?p?8կ?_XR?qG?[ l̿tHLPyۿ0?ڄ?vP?L5/?ebO0ҿE?ԣ?'ӿ",lTшg՚濹]=9ɿ9¤߿"a? +?S3I1?XN:?@M޿5=`Ga9ǿȓP0ٿa? ڿf˷ΐl;b Ϳ['Taۿ/-?i;H?)f?}힑j?Z8ɰ+K=J!$:{+YFY?u:̊?ꂓ ?F]ҡ?[v¿zYӿLj$P8쿔%%ƿy=ػa`?`W.?xsԨHvp7m?6X?-?^baʿOVծ_`@R俤Uj?SL&:?t\?D͜?J#ձuK?΁;P?,TF ?@?MPf1,bz1쿄&%/?qa̿VAϿ -d?8cQ?O2?+0 Ti?:`#?,[!`-$ݿE\l^ؽ1Eпn{?6 D[?7?-3z?Vӿ>o=?6?%D ?޽G?*(BĿz^X|k ֿl' 6~6So?h͏?.?/f?ct?*I:\/_T鿛yB ?E̷?PS?*v@c?׭<C޿A#Ρp鿜r,1N?Ȥn?6ntr?q?k)?v?N 2I?9u?vF(uI;^HHۿvQHt?Ki)gdszjhMp[p9=FfBȼȘX ?dx ?W?Izm?Ln8Yw͌? ?4 ?9L(?[s.?)?ݴQ㿚?oUđ?c (?8? eN:ǑH"=Ed?/ ?PieFп\݉? q]?Dl?N4?B_Ę?ޘϿUy*ƵET3.Mn? aucQ޿Wv:? dD:_A?V 8C\ֿlI3dS*gt@QUܻƫؿu],@?8& $1ݿvV:v俩C.翮ܿj@W?{[?_%^?7~ߡ?/+?x?du`\?(gn rK?+4俨P}ȿI7?+}!t;lz ܿxУ࿪h~ݿ{v\5濆> \?%.ڿ|ʜۃ`ɿVmX?â(>?^TPA8+V?^l?rbl?56?0?k:忯܏}}ueTpLbP5 UceV?*+S?k m?e0?YuމԿ}J=ҿ󧀄lBf._ ׿ buy5C'?^m?i(d,?%`x??"Կ*K?D=Pڿ'U?)4? >?Y?_B`b?t"wп#`%9/G(>h?}&l7?g$h=?_ҲE?{}?23?8{|?L FW??[¿T4\o/. f쿙"%?߿5'e? n?Hb!N@0Y?|jb?Ԃݿܧ?ov/<׿)QBҿ!}U=oU3? ?Dg@?`?$?|n?ʬ rп3ъ43Ř=>;{<] \7?5?^M :?p"f?Z|u{r?5ђ?D?? ؀0??K&*Fe(/ٿȘr RDʿxƮf~?/]ʿ*.b?Q~$?UĿh?2T?k?ٜ]?3r@qz& ?XK3? LɿB"R0h]޿FJ텀Q/+~jN-m?[%72{Aֿ쨟*"A,(Tǁ?rix?z0@"AO1G?Ńg?|KvٿPAe:Vi&h? G?lfW%2?L?C jJ?Vտ:UQQK]=_ 1 4?+MZan[I?]Wr?|cZ@?k }?]sXi9<6?oNA?UZ?nc p?Aay?F`Wݿ9 ?`?~?_?(X㐡?d x^P(QF" ?;BA1Y#yT?zq?toVbsڿnGwY$%ʿE?Ol0?Ѧ ȜB?ؽa?I.пB&<VNeoW?u/5J?{ ӿ`Z:ֿg`$A^aoD.%XS?c2]ڿR?aD_?Le.D>տ9QD忲3Ͽ)氱?#"? ]l~?,0"?PKc?t?r{i? &׿MۿLF$;WԿfB?1@]_n?9ȶl4?]rgJwoۿc#??70E6yF?1A>qt?pwN@BNB%`WO,? +=HW?~v(ݹ?Q?}@q?5(?_οz ?{QcпGѿz<@[)2#?uDK?*՗?MOb?dtc|ϿN,7AA8D{}3ֿ?ijy? w`.yڲߔJ?~n?B$O?L]?xl3Ǥý$?,CFf#%+??X?/?W=q?-H? K\߼Οcп7EJa'hOi13ӿʟĿ8k`D?5?u?M(X?7e⿁u? ?TY?3k;?yͼ?jDJb'\3j 𿁉铯n^?|?R?sCB?{Im?"\j^?Av7'kk}}Tg,Jοik;^.U/?V)?t%h?C~t@4ZKc?Q]eE?ŝAe翅I;37UnV|=?/N=b?Dt@dd?0;@#޿|xz?yR;͹?DUO!?x?oXn?:P8Ϳ(2fFݭ)?sUk?3aÝ?o'?%^Dh/Xs5e꿔,Qʬ?OC?NEmB?s0?Zc.~c?8,Xk鿚TzٿF^fձ-^.~(oC}?<]?aڪ?>O YQ?yOw俐9 ο^: ¿ ?-?aP??оB? -G\пbWք ҿKSQQmRr ?`?$?$ldh?Z%>&? rw꿠M?ƍR}?[տPk3T6͹+-:迢7ebο^%2?P*? [3]銠4?dzɿ ޿%?}ĉ&yCq8ٲH5:?XJy;?nL0?u;?Qd]bwܿjDv r?̰z9ͿSﴗyʿZ$??Cڵ?wތ$ ?.*H料?- u@?UϿOO}п.%Կ [!ڸr"!g2?q-N;M:9G߿H6mE?K?! 7?B"6_j?^gIֿU닐DB?O+˿_)E?j?ɘ>gԿ~kѿ" N Oq?4 Z?2!K?{A?-^1-w`Jk?B0q8VܿEs.?xr? V?MR?d>{=SCAM>ڿR,ڎc6?QCM{^yEտwm?Uqf?p{? 1?/>?Ρ7?3P1Q^??F*?wjk¿}(]N?om?\A¿re2Vo-^/G Կ<15ѿd??'?l|?$? ?ʔWݿl'OÓ#8,5Hg?BE>⿑+?K{X?Kֿޤ?Ur˿sv6ɻ ޿XӦm ￀A]ST0pҿVqy?2?Soɿ D}?zA?t2-J׿N -˿hQHp¹7Ytvk?Ȧk;T?n]?xprֿ9d{?AlԿFp?5'?Ө?$ ?w"?gQбK6$K;۲?W?X?r8@ ?ehV?X䆮Q̷e𿒾wUԿFM?)?$lWID?&xCF?_9e?K?ahz?r~ֿP7W?vå閵?ȡ;sԿfC̿Y =/Wjp3﫵 +n忖ne?;g \?ڿ"Ԩ 8f?CA*ӌx(Q}ث?ղ <4?:?t?ByH?.%gRhϿ5pEna?vU?O}?B5O?DVm?`?WJ?V>X? 7Կ迨rʿ+5|W迗D/g?DT[c?g׾?]Yv?-z?"Z?H9WT`㿼`+d@s=?R1䏛L?* /u?*oѿCqɿ ci%忙A=?',?+?a6?̄{Y?1"R? Y!쿤B,S7B/u?n|pؿ bN9& !?.8?\64XؿX_z^HXᅫLỤN*v?pw,?6@J?\mE~?XUO?A?.6` ?7wo?cZ1ozY?;'8?)qYԿaDIժؿ!C?Yǿ|E`&?z@j?艫\7?e4p( m<WE e?)VՎv?{/?]p?no?Gh$? żr? }b￴tl')-`Z_ſM+^K?w|?:tK?.CFOp?ZȢ?+bѿkxmd?Xb?X/[zͿ ܤMGIۿ8ɿu;y)?lE"?fͬ{?C@#c'ڿfR-?!Wjp6¿Z=?ܿ5V9??Y Ls?hbʰv?ɬX_ib?p*\?|?"b,?#?n迮.WQe{H ݿGǙ?p˕#Ӽ Gݡ&Z?qg?1u?b:[?wiտ|-?5xV:5uD@)5~S?xQ}?F? .?-$*߿Df 4=IĬ3x9?FzDK?Z [?i@M{$`u~?PKJHEP}P}2_cgau2_1000_coefs.npyNUMPYF{'descr': 'JMT~ aQ?_;:.u6ֿ!Ԁ1Kx?( l?ǿQ8ݿT?䈪#ٿ ?Pbe׿b=?rg՛? l'?O?D˿ ?֐ ¿KfGY?zb^ пk"XۿE-f=~ꃷ?7mU?~xz궿<|W2п]O.ݟ6,R@rf?L̿c?NKdK )d?LKR¿Mc͗?66Da?GCJz?7ISv}g1B5?T2^ῌ :]?-|W0C?e@U݌%㿣 ?xKc翐:!?5' G=?x?u?8 lp?mpg߼L?=ς^U ?yEJ迻շ[B;5f쿊+szO?ͅ/?hxv?O}(35+?c?K?%{?'s縼T2ݙ1пs_}d?93yӬƿf?[㿲#Rz:ؔ9пz XՃ㿵4T?@-!?P,?fֿ@P0?1pL?lԤ#??^vO?lܿJQ:\?7zPl%1? ͒TBZl?|%7?MG进$-z 꿶U0?M?SX5?HՂn忭mGb?5$))AV{?,rA ?\L?d}??Dp?1?2(l⿁wfC?BʤIִ?'k#P~̔Ͽlk6Fi?OK¿ki0.4׿Ud'i?s|?'d?rNSտx|?.uD?sq8?6 {T=kݳ?xOTYV?k z :%M忘8-ʋտ c?$? ZQ9TbnϿM:6ک?Un:qLj}~ӿso?K?XNN?a.pťkoiU(?`"&He? ?$5$?{:C˝?m"ѿ) ?2˿<ڢϿFص쿗,mvu?V5"?*(N~rڿ֫п0WvpW&?>V,ӿe:hƿHͿMdH1?v,M? v_ٿ4.)?ڝ_ؿt{rX?xXeJ?C;?)Bk?hk:撿U|ڿ}KX-?P)?<ѳelj?9z!?IAܿj¿a8m_w6ֿhuOp?u7#.޿M:Rw?79鿨 ?nC՜XO?L^Y?<9-p?D?A,7UHu?@w뿔Gp? z!jS)MZ迉W#q߿oa?f/iM?Ԩ ?$I9ҿ|ȿ`2hտdwNXC=;ĬDvGPqӉh?1%|"? Ϳm4?9Η߿frvR? '`S?uWĘ*Hn-I?HƿJ?JԿ}}Rؿ sAGѿż3?`J?W.G?܆@xL޿ GT? ;̚ÿ{?lGxA?.$xWǿa.]?6*S&? ʄۿA޸!Կb"m/Eտ=\?X|`ÿe!߻?L<I?Nw?o4a*?B'Կ2Ru?@%??&.ccc?Sj ?k4 ?֏jfwۿA{x3FֿL[c6oe?4Mѿ7?Gn|n4?ro^w N?"C@D,?nT(?m?wu5?|V߿נ5ƿ W3j?dBQnп`Q?Z~b/㿕]o? C\#`tF>؆iz?sRP?A ?$GǿpPh뿡/7$;?Jݗſ7'?~= ?NV~&A1?[࿢2xʿAش,?ۿ#?3X?Zk*Ͽ!rs;UdU̿?)`?JB?ɨ'D1𤚿-RؿFS?*^u??5>ޚKݿԠW?wW>շ?|+?&? V ?<ٿqMȁݳvBm?'ܰڦ)_ƿߋNSqOöt:c?DXǿsx ?+tlOd雎? ?Zc89L?Hcװ|nԿԿrS?,忢+.dO?g`׿ kwc?2$?ߝvr?{Ǘ2?p|݌ʰ炟пͯ;Jd俉׸?wd=?_˿td%2߿qRĿk\cÃu?r:^׿Ԍ#ZekտI~zlibWMտSҗ_׿D5e?F_D !տޅC?’࿺=?O3.? ??'F?lG8"N1%=ܱ6?EK?vN9=?R6xk1c?2U9Կ*@8?e&gܿ l+}r~!?>D}>8~fۿ,N?U>$d?-)1w?5`ᵿX,L|?Ƽ ׿fK3~?)+?8w¿yt?vjܿ?<N[˿ɺIZdLl,n^P=?OV `?Efֿ7R[ѿ6DmݿyƱ?.i\?l8+k?1h뿅0v?(;%?`\n?%!iv?ZҿisaVa?Aj߽wރ߿T`~*>Sż|俥"+?e?gx$#B?l'A2T~_??Tm~E@;:?;˿ǃ?&%t`ο&H?h忕lE?BѦ1Ka?˝vѿ#/BDsd,9֎n ?G#?5?Wup5i?i/RѿaSv?W6ݿ=N3 ?PCԘޭ?/ ?v981?\-ڿ"uL3?&[ѿC8?TĿV1 тsc? )?J0G?x^c+¿W߿){{ۿ/?>Aɝݿ]r!?V(ϿZfo b+ؿ3?dFÿ7?DG5E㧐11(ѿ4׿0?-p*?? |u߿jAeޯ?b@6a;}=&?z@?"? '?,g?|-?;A-_ؿQ$虼ZܿSw? O?u[?TԿ/c~ؘԿпc?,ÿ3i?nO׿z0k?O̡ܿ͟? ?5 "ǣH?j{o쁠A?Z,~R"uE5ўt?tGS?$6?½t9uY?ʀ L?`Œ@?m[+?Zb1d?L5l^?v5¿п!^0^2ܿ?][oCT@?ċ.??06g0*?D?!ֶ?{?*gH?pOq?`f*tҏ- S?x7ڿ=xQ?z (\(brygؿ^J"pOe?^":0¿Cgȿ_vſ?S(?ku>ՅI?^m޿~9Bp?hW&B߿4?ܴV}<:?uU$?"8z7WZKƖO=7w7?^2·z?ב6g ?w俘-5?"݋>?9p~|?z3w_пooʿm?_H R?7~"?Td<#ԿU?C4߿GD%b-b?Uzhƿ?x+CnNڿrk?FVJ#'ѿ()PH?@yſ^\Q$V-xVV?&5hJkq]?& (??&ʿ YAɿ^(!?b?f=R[ ?0z?Hw]Կjy9˿er??pM`̿ S?ĀvP]}s?al ŜֿjIc`t[X$?tn8m9?Yc~|? ΅Y?wt?Or?! ~%`2?Wƿkr?}v$B%TS п= ,sԿ2!q?Rh[?`Q¿Dl?Y~Hlcx ?bLqP?,Qп Q?$-d濔OE1?z%^W9j?zUӲ?Yh?6xg4? +2?*8py4?aw5GElap䘟ݿ0U?X|?6GZ`?bBi s?B4$/׿ٸ?"*̿kH#?I?Hl~?ґVc?Q;Կ/Yi?hf0{̫?q -d?KO2߿s?.㛀 ǿ㮤0?ƺ?>?ĝ?C:oڿB:?(28𿳖J}?S(1GwImӿo ~p<;lDݿKISV?0пPbG 5!ǕRmd?G+L?M"c0Laf?@1Y5?KhY?0п;Y?YӁZal?7QI俔EK5SN#S _?e-h ?:n@N?~?ٖ_yꄦ:94M̿z,.㿟N??x޿_V?k~?ϽSc?PpQ?dZ?"%h̿z#9ʿj@?}a"NA?KPBYο6Yb?$]Kz^҂WBB?EIhE<?ۨ?+|e?} ,GD[ѿ(1?'?t'{?|ng?]^Q#Qy >?])K߿Y?Q0\ʒ-gֿ0ӿ :.dR濑nF?T ?=?ӿӿbU? W?%#п͈?r'q?_Ű3?aU1翆C ;~2sUe?]ۼ-zZ4 YԿLyG=?ϴ"]]?RoV&?FTx鿢Qz@?쨿M(h?qRгݪ?e?gL%?tX˕p8d¿ڰvV'ۿ%ͨ2 ?] iq?p$ ֿ#$ۿӉܞ#H Կ䧮?gV pܿ%Sۿο# u?ՙ5}((?3]k*E^?|A>?"տ6{Y?+iIѿ1po?L;n2쿎P.#hNj:%пՄ??7ӿ a? !n쿬Џ?f/@?Rj?s?86ԿGq A-k!,?Oeο@,u4迂Pܿ͟gFD[?:4qҿH;9?yP̗_[?HW?WP?:M:?Ʋw?#y?O}k?[X7ۿxk?6Lֿ!'t?Z%$?0/P/ ?s [ڿar6?Z?7+sa`?+ζM?_QKEsa?)򿗟м?eVVܿ"~``)t1޿0fqˤ?*$w౿\Ͽ>;=zn?.)"ѿ dvk?N"S'l?4^ȓ?? ?kɿM?4?gW? #?ؚcŢeտ|u ?:5ȿ%?VnD㾘?l *;DsJ,ȿڜNy\q?Ex]ͿSпMf8?zDUu,6V?Gbz? *?at ?A2ؿ2f?pG|E-bG8Sѿj=jD׿V:UaI/}Y|?&BVꍛ?N2>ݿP.:?DM?"u;?! '۬?hm0 ׿5'.Fʜ*?z?Ų? S*tjxyP8l8&?lY#}ǿ*#Kc?+?p8W@?s?cZi7I?v14߿ȏ\~Iefϭ=3.U?r\c?vǡտ8^Iѿmp/㿠"g ?>rM?55ALn?PB;ѿ]?n0.e!Q?8,?'^zf?ZQd=gx0?ϡMs?V' h?mf;?8 +˿AB?'\[ؿ퍱.?펫"u|]X.Փ?QU?5.?$gR}ѿ?ݭѓῼ#?]Ip?Tb'ӿwni/R׿­zXq鿪r? Hnǿs?8xcY\;w̌B?Zy ?((ֿRlKrIn*ɿ.5ÿ3C?NE:Կ}?]C4ſDj??.7˓(r?rq5ˆ/G?5u?}!ǿ*+rp?0?ZaYYqnp~!οgCX 6?@?v[h?WTK+E5{ù__?f&sC|?0g@U̿~U&^_D2" H?AܿE?eG,鿂f?}W?̔]Ǚ?3X?NL$߿-FE?8ͨIj?I\?3YV=й?z`ÿw3]6?KO`{?5?Uݓgd?Gz`BsտT}OӿMPޒ/?|ȿP<?!r쿹*ѿ (aKiLڿOǸbF^r忌#e?m2?v?W?ɿͿ"zqǿ}wä?_2ml?O?6J? K& _?NA+? ܖ7)?-W?|V?P"y?nG~Ho?u3"S?op?ɮ? 3¸\y?|9jۿ`3jǿ>tȶr3?t2?XJ县=#{ǿoWڿB>ݭ?}/{8Ъ8?CP?6#?*Fҿ' ?bL׿ 4=$; (¿6X?U#ԿlVAj#Ky_.?}n?͋mkiֿ?Dlac)濎E>f? l?A?ʎ?DUH^?/D8s+?nOYaGӎJeR?_C 1?gPeӿ3J+Fd?Ն,@?vǰ!ݹ=a?,fFlٿ*q迨*:.sn=.?M%п-Ĵ]?1Li"?T#?n?kN/пН4t?]2N̔ ?LW Y?@k-?[3tWAi?Nl?W5!Ϳt?I)V?BuԿnԿ]￱tFjv^?G?w| ߿8`ܿwA{E't8fT?SI>lԿ܆%o,?עiǿ>? oSĿώ…Կ`D-??\ڿoXn,?DePE?Z)ſZ?KJ?!6?Hp?s޿Fbg:ٿ>=-ݓw?dKL?oAdU^?)TFQ\;aW?kzH?o?]Y?E-?7?]S„翶 Z&2⿒ms5?$+uڿ@Ck?jbٿ+K??).⿞$7?%?y!l?m?vGO?.,1(rE?)σ–ľ\ݿnΰt*3忁sk?ˈaUG߿ۙc?-[jRۖk?":1?`?p)aa?\ֿ2ZϿ s.?Fs𿿰Ί3?)F-XCۿ(:;n?)KJտbR?X!P%w?-f/?c?Rm?!\ɿ(^pKW?%Z?Woq?M5c?nRFԿ?QQ?8Ӊ4?Bb?K?y?YֿVD 4?۴@$׹'z?>Q+ۿcʿA`ˆm}&w?ַp[CֿLfR?s|Ă?p߱?Z`??F] ǿNl{1?Kƻ0?"|0?؋˿-Ꮩȿ?â? qDۿ`ތ^?pԹW&ӿy5H?"ıTӿx~?_?]?g)?82ɿӈM)ϗW>k?G`?Vr_ҿF?5dafY*e?D4hȿ/tYҿ"濟 kqۈ?'?qmId?{ܫ]࿼y?Ri5ʿg wq??k޿W?Kȱӿ'᝷?%ߣ?m!6„?SZ&6?u Op?&s?"?ƭؿO%Qw˿Ct۸?@t/zy?+v)~N!|?y_y??ʟq?6`6;忣*<@?*׻µ?L+?G!?%?}?䳄?&N-v?$ZK+G>wMօO5r,?2e?5ul?)YDοeѿBٸ?/>aʿ@4W5?n slMʿŝ1\?s-?F?vʿ&Ӣ?g Foտ׾W]?PZ4? Jj?!ӽJ?`ڿ?zzOClL?TD ?K$@Z(Cf?;U]aۖÿe[2TX?|JJݿOn&?9ٿbN 뿑 o׿LY(}ٿV3K??e|?DOп`LP(ֿh4ɬ?JS"P?A68?3?5I̚q1L?Ѓ?gYLO ?kr+ؿy!T?Ym(cۿ!'t&f翽Biӿz;6?F"?v?g+ӿҨ~?"}7`'?! p?s1_ѿR? lDn?z@J ߿L "iӿ俁@GnH,u?^ C߿~' Ql?7:h $_V#[?3A0?JšhGP@f4`?;4?|9?[b_?t[FI?<^k[I述'Bי?X)Zl8?_"Nؿ26gqu,Sp$h ?gB rS¿d%/?}n޿"ɿ%?` |?;=’?PLc?%ֿݚ_9c[.4*M׿! IpP?}: ?^e?4V¿jt]]?M?HX̲Ǖv? ]z׿4X?aD$ ƿ:LxbШ?fJQG?v-Io *?lݺ?nX ƿǔ?ӿ'?jLo_\׿ý2@/n?%EHxz/`Cza?ƅӿQїa?/3dտuh8bjw\?u?,:u?|??J鿚C?e>E<;4B?$v?aD?< h?|YlEp}?CKJhm,?,Ŭ<8@ͅANto4kO4?H<  i$?)d[h0r?50?o:ό?r ]?"q޿8^y?k/8[w?my08cv?lYYο !?k,a?kʎ?酨?ڄK[,8?OT8(J(?/*۩ǿIڿpYܿ[=뿽`?S ʿ\?eW:ѿckyCRt?~u,?>͝?'bֿ@J߿~F7gr񉵥?aHS.?nXе ?Ks"} 7Cj)Ƴ`n'QO?+{ܿ?~+]Uc1UF?mP"?? ?#/+?ou?E6-9W-?? I?&)?nA^3ƿԸ?^_u?LJNѿ  ?S`ڿ 5p?<<%&x!ʹrWo^׿X>b?g0?p̗?T7f?~0׿>Y?=5c5?aB?ZV࿠aǿ`4^2juy7u)T?*hҳ<:kB? z*迟籵?'jiB}E|Wەn?X?r?B&F?W<㧿"Gh_9;ї&y?[x??2\'*->g?1 E,Ͽ*c !hkΛ̿VY ?=Y?,.D?s¿\kԠ?w1rh?E?G2Z?x·<ꊿR;wd?Oڿ1[+?*RX42ֿ±iX?g܋`kߣͿ\,IX`]ڿ™&?A9d$* ? 5z?bGY?"]"? Ij<,(4?Xgw?@#?<=Gyڿ6T=x:z#!߿Sn?=?B飮-޿w\j*_?"Ŀ3YL4t?n>ſ3I?z,Sֿ֬ܿPbZ1ٿ8 2gVx?ܾ ?͊vKɿ|)sڿ<?hĪ?|տT?O?CSM ܌? JпSqS?\|?9 a?Cr?:jh[=boۿ_ ޷˿z_1c?;?6ÿpCZ*w?:ɿ?UFk?Ͱf?K)B?ilKBֿ>$?FG' -S?5X[P%ҿlͦ9@#|,o?ݩT?ͪoI?\64 m^5("?qJ׿G?8?+|g˿S?;^ܴ}l?]c'˿6/3j促i,6?ؙ4ߎ?e)?눬ܿ|Rɿ\G2lwοbK3ݿ-¿JDtֿ85a?YPY<[?Ca?4vӿ6(\pbii?m6?:*`>?;ڿҿV?io/OG?X"l"?Q?m$Ϳl?4zDh,ѿsYqؿot=H 6??PǿpfEs?Qxũ;BZ<ֿտD@ֿuѿ&LFFmL?B:տjx-?v ${y?U~y??+~?MU[Y_?ԮV&?z}@F|?7?[?D*˿ho?" r~g?\!޿w.п?)/B_߽\,˿r? 0iſU+;ܿR6`D翢}ν?#۲?1f}?]ۿ@`Sb>1zؘ4 S?jnӿCj=?9^#?K# ?0}0п98?R5 ?ϐO?]Cj?kɤ#?ݿ=%? ScaY@?qz6yF B?^^p῝X;ͺmZB* Ev?ȥ_j?_?4g!?ذ )ͿZw9?^!kLw&ݿ]?n0q?ڿ:?&21!]?FR1?p7?M,ry7#p_ҿZmW?JU ?>Ռx5?P#Q?MH!X?hOY#)$οŴ?nvfZ@?"qW9׿@Mweǿ?W23ltH|?/Ưf(0,[E?JsEnO?r?!\??/$? 1ƿ&a쿳ݴ? EQ?SX1?S/x?ݹ ֿ7B?RRR˖ət&;ۿbS?H? mx"?ܿ[N?t(R;3Z?P׿ٿwqBAN ۿ|gۿe5}?Eʱ6m?FۿjfY#?)C߹?g,?ȃ?:ɪlֿݜ??¿3g?cp̄?]҉+S?7?0aĖ|?hvSX ? ܃8ῑ"7ƿq:$!鿩 N?n6WNؿ?ށ p B(:2?FL p^}?nj|u E_3Y?j5?(%?h`?a4E&m_scj$ȶR]%Z.逿(^ ??Jq`BC4?'#!ZڿrH?Z~k㿬]?)%B?|Z?^JACl?#Zjl :B| |?M0?-Կ7ێ?b_,kMH?"Mп(7_ٿ|goѿA?W/7?@:ۿn{ֿ5Ͻ͠Bֿ(PfV? *)FpJ}7ڿT2? /\yFW8$?qYZֿޙ? O/qq?R՞W?ΠRS?e4A ׷翆9A ? )`gsJ?(>$}?tmH?rxS?dx4y_z;п3ݜ?}nҿlW{?CD q?ٴ?kпߌ²TQпƽA&ӝFXL࿐ƛwD,t? ^Vȉ衿ig$ I?lVտ5njc?['CF dۿN ?1?9{ ?u@^?#fѿ`AC-?9$鿒>J۰?{;a 9@Fj-"\00Yf?tMK k-B:?{ ޻*"U?`_|@Jt:}?}'xØ?Dﱰ?:Fo?(R'Ŀ*Y>?x}??2rò?. )`忸g“^n4? ?M6?hm翬D?!ƿkEm?VToQ?NKA?$޿EE?V>0?0,?*Hw)j?%r?* 5s4ƿ,2J￞*yտ.}?Ѯ)ؿ-¶?I$Rp4*?_%?,"w2?YpϿsÿop[;??(ӗ? <*?\c߿&#Cf?? ?~aٿ'yV?mSe{?0W&dXܿӲdfyTVڿ4dTط?os/kɿ9ۢ?_E?{Ϳdo?jQ޿M|sԞ?X%(L?} D?fZ?`!"켿X/4ɿF<yѿΰSq?*ѿƈu?n/0𿩠XD;?xcſ}ۿɽkZ ,ګcԿޑs?ε>׿|4fNop"@8h#ݿY[pX?:0~Z#I.?ũ `O̿Wۃ?ْ#8t?sFp4A'? ?-%??gaܿ38E}ݿ ^ {@u=(? <Wf'^?X/K\:vҿX^;9ɿDԿtyۿJ. S*z-M?,آ?,ڿ^ǖ=k>?2if ? ?_=Y?,пr?J(?9I¿x*e?vxܿU>6Z?d6Ϳ0Lۿ2 ࿥q Dݿ8$h{?F}r?Y,?q -%' ?!)m?Iq^?=??n޻?CdV6?.ϐ?*FO߿bYͿ|:yC>̒?@cyiӿ;*?J%lvʿLE ֿAmCAпl(?6x/?ARտ.;G?>oхi?PNb?dVvi? ? kտ*t]a?Nο$6 p|?X֭9ܿ!R (ӻcEO+u?|\LY /Nma?K׋8SEb~|_ۿ]c?tx뿨kn'?+?6?Xpҿn3 ?l ^C*?.04b?,lo̿ƒ-н?6"1ؿH̚?:nտV,3%޿1Fy~ ~/ʿGP?x`C8u?o?? qѿ{~ YE?g~b¿?nwOÿ&xV빿T!̿R3_ſ`>B:?%8k}?HfqTڿ@.b?NF 0ȿyѵ?d)?߂(oR?|{ x_X?5LֿoKiٿfk4Xο_V}l:P?e ?ſpD҉?z-?_/0ܿƑV?d=濔Iһ?#g;qѿxWL,wM`Ȅd%LL6?>6?\k=?E<^S?!]BDnx?mRﶿk/]h?df~$?`ټ9?Qa?o1DտY?#Ŀ+ֿ"Kթ?N["k3 ޿ עN?hg[x'}(ӿcT!*:ѿ_Iw?p׿(]PNǡ? e-sʆS̑?̕$ҿ)l!-t?$T? ͢?D}?տ kl>峿Ŀ0oe?|riӿ,dk?"cؿsfٻ? `?WoT?^w>ܿ7XJ'?H d迳Tg?Pʿ߳ᰮ?t3ԿΚfBܿp̿:,@ɱqDs??sJxdUe0j?v9>Z]ÿs? ٿoCo?͢)Կvk1熢D׿ۚӿT$8?恼Eٿyؑ?h׎lϿZߣ9ȿ?b G?LFsпkCrɿ0%rs؆?<.7 ?^]!vw哩?Xs?. ADڿ>gٕ?_,8dh{?:gߝZ忀rZlNٿc:l?UږܿuG?z"I`D? ?'۸U?VJ#q<竿Ap&Ͽ$h$~?Nfc?^>?$SWx?5HVҿu;>K?BĿp 򑮿:bl^?B ۿ@wd?Ι^0j濠ˑG<ƿ*Ub,F?}e'+?ŝgؿyÌb@x}? ÿv( ??/ N3?`5?b濤a/k E tU?+?caZ?`RGп0xzVE3@툴WOr?}sئ)?y~AE-ʫyz?aW?}C7?t%Mؿ=? ܿ.C,?[ t?˅ZkJ迕ϲ]qѿvC 㴿@.H?i?M]ٿ&_3?,@F㿰-ѿoi/Կ'B翤؞?O}^ERz?'c ^=G? -(?/?Wq?A`RSz%?6YElF? }p9uḡ]a/J?ÇS$? ?},Կ6'5Cӿ>O?y?i@Ah=?e뻿p[/ ? F׎9 ?GM板8Dr;C`?.UQB?8MfN`DvLpȿK9?ЬOm?5 WF,?@C?R'c,տ-_ ]&Ϳ97׿Oۄ]E>4?ʮ2鶿L(?^ѿ1?GǙ?YϐP?uHr*^?VZ'D3Ϳ)F?׽ԿϥNɅ?LΔÿ=0?ؿ#G*jK?7s!M>cM[?&h?N~v&M˿O_(?!\?*?=Ær)۱ؿzWƐN ?-?H [? hn ߍ7Qu?cmw?2dީ[ۿB%+?O/捀 ?وQ67Oh?`?ѓ?٠CtĿL tc ?YG?\񆺕?} ' C?wN ӿط?x7? &?^p?>ZJ.?.HA ѿQZnj?`_635ݣH?F2v䋸(2C_|?$ތٿz=K?(@*7:Ӹl?9_'<1"?qzg!?Һ@?A?@Ft^?* hϿ߷S?t1C>?Բ iؿ/ۿ9Cu ٿ"Y_ ?}`YW?*=?)KʿMb?\Y\ҿfˬLn?8[v?95t񿒋*|࿘$g?XjBt!vp?kjXiΚ!9 Y?l?Wb[? Vпٿ}3,Jǿ/<?d?:=?i2ſVņ?<ӱ6B3?οÚgA.Vѿk0?!0 ?:ٿ?ÓDKta?i8#`?X0R 2?< l䕿L>?!F濳9nտVuA ,?ԦNܠ̦?B;?})E/k?Ge7CJwK?WK/ޮbտ@Bؐ߿8꿈?U? s ?# .(?ѿT@]?ZIQz?@(Iݓ "?$%6y?kZٿ%πS1ֿP1@ #?{q?nF?ZÿHwpU X7?gV1:m?fsb?߯`v@?~P?g)쿡|$( v T6Қ?o!_=?H=2?Fm<nݿެ 74.?u?Ź-?%-?n ̿Eg?cخ{?4i?1\z,?x7U(ڿ ?ȦK|濼ӈյ?LظF35?HW%?乩?," ۶ـn3 rѿa?OO?L>?ѿ"?zпve[p~\|?=^5鿱Ϯ6?MοC\e?(K T4?|Jz?(Zۅ?xqW9俌(J?@G]뿒^nE?Gnz^?l 42{P,&ک?dO?c~˔?Th<rNeuW ֿӠ?.d~ԿK>?@[p߅ɛ?3Ԭ?uhпwk?I vѿ ?<70ۿ D?࿒eF\pϿP?ޛ>1?a v @ZK8*? ca?Hg?55? Ĉ_?2&n eE?^4d<(?-Mӛ?me`x̿2Y2迅3m?A@UG?XU?xB}6ٍ0?7ٿZ//C?TiOi?Sz׿׫vw,? 3I[R?lR ?z?_(.7?恚4s?&1,"M߿Cןt*ͭK?x`_5AK3R?D 7?p(޿V7T?'N?#[-?BʌbS-*Y?r?GY@aɿ92Y&?9`;?^|?CqY?A'( ts-?wމ޲?ڿCk#쿌hӿ+'X-?X'?Tп#ܿ>ID<ٿم=m!?7S_࿱r?]"?m Oa?Nu5(ؿ|‘x?+ؿ$b?%jw?1(MI1$?S [?X;?p0Jտ|7VpiN{}?H?)? ۿiNX?uhvHſe= ?YJ~-@<6?n$no߿ǖ*As?CR!}'W,#J?"FIP]%‘-?R Rq?"%?Aw?o?˓]]?:($ Dsx?~]?WL39JA?c'⿥Ў?$j33ķ6ĔϿ$FſGC?eAVL?0wռN?sǦʞ7 ,Z?>bz_ѿ'@?ރ?pG2?t?b&(prT޿֦jйvKx?D oʿy8%?X!cl?5 ?$ۿg7?䔵B?)?"%V]?gzz-ҿ}# ?9 ῕"*i?3Ŀø ¿+(*տ[ֿ^ʌ ?Y4mɿ^RW2ȼ? p?,3Y?Ֆa*9ÿ2[:Nw;܁?ƶ&r?xo?)R L?F?|U&Կ9WҿV cvZ߿&߿ /DG\?;ѿU9RS?یٵS׿2~N??NH?);W?@Iڿ8VYq&щ޿ 3I?I)p?:>/п\h>{3]L^?yѿD:M?P&8/" Ͽs&6߀@TK濏@?Q"vݿb?M˗V?i\5?Y]\#?k0,"࿥-~n?ߒFԿ?,fE?7Ʋ \渿"JXۿx?nݎ?&?`๿>q9;?a1I׿R*?_/?s?!¿#Nb%?ңVCNj??cӿrf\ݿϯ-#鿭mӿWr-?ȹ77?1Zm?z!=忊ӜK?b3ҿIir?::^ο+?ý?94a~?_?m;AIѿwX`(ަ?/ >1?댔Ž?~K?ѷZi׿Ss?͚8?)}?'ۛ?qo?PӿI8ÿ6rBH^?Q!ԿsmL?x'u(ݿui}쿎9?ngWĆ?4nM{翼F?>. ?EEw?0Me|?(]޿ @?{s2̿H?󏷳,5? R׿L-%h߿8 lM@߅x ?aȿS[<#ۊ𛝦afKӿa%ſ%E?A<j?Nп^Y -Y֬(y2uGYϿXĿb ȿPKJH$p}p}2_cgau2_1001_coefs.npyNUMPYF{'descr': 'K?F~H/?Y7E? kߐf?S%:4#?gIzԿTJ'?9d翾і?nRY ?w?D:5?ꑏဿaǿmρ?6CZޠ? ?_ȿڠl GҬۿ,)6h?XQĿ=0qԚ?*aԿt`GP? θH: ?c?NԿ٪9X?O?gEY$?tۏ Ӑ-ܿ4apv.𿾹`z?ˏA^6{?=.I)(b|?Eߠ.?FNj?>`?M /3sYX ?/@k[*o߿Lٴ?j~E迉NuNO+ܿj ?l$q~᧿IC?:NX!?J*u?쐬Y?Q$?$'Zѿpu?4e<ٿ$&3?R*IsW(.ƿЧTw`u?RO8]^(?ŲQx*YfD'ؿE?H Z̿Auȿt?{VPj㿶N?FAdKݿC(?c_?AI 3?yD?xlOӿx0Tٿ>+-?Wй?\o?+?Q?Ͽ޿WG&?U$I/?=,-Uit&¿Py8nc `gԛ??w.P-|?!e?-cٿPCy7~?;r?dS?y\Ⱥ$_~M?O'?i P?2{D?j5ۿz=8 ?]\Bп)+?Ҹ⿽!pA? |ҿBi[̿xM*'Կ(f?Yd?񳜊'?dlIjҜa??xÿĿC5?vmQѿW4C?SlڿD)Uũ$ݺ?p"?;0o2ҿCg:?Qn/?f GH?S,#ſߩſlEԟ?@Ψcο:ˤ?ՙ?38?NN?l;ɿ&zr?,L?6/2.?{ahfdڿOLg*NƿK@5?O?"$??r9oNl_OʿX74}?rg{?1(ϿtuW?}8P?]ʿ V}?b}^Mq,:[忇Ş?v.п$򿵤hPWv Qٛ3?oԹX?Ü?Z$wԿ+ZGE6p֧?$ ?ZFӿ \?СֿJlJ+4{?DF>濏mr?n~7+ӿ)?ʝV?}5\?|C+?ɂɀ*@D;ֿ}?qȿ-Z~?ܗTJkD'ӿ3H鿩GZiKMe6IC?je)a?1c?8'zcʿ4񸿿@ˉ?IӮ?4#3?#۳Sh˿ȆCrԿ(sv޿]TD?qڨ?y?} ӿIO´&(3ʿ$Hÿ壻??fys?ϺDm俬m ? iY?/"ӿo?㿽(_?6oqBzwhumܿѽ?%֯H̿d’?O\R<+?)jD6?f7x/?Z^?%("~ዘk`yGl俄_Hw{3ӿ|s?4W@c'U_5?9aA-J?=S?<?" 8/? :"{!?OBeœ)?8VLIѿ:0+S_'3ުgn^?Ra w?"Ɯ@ҿ п(F`?^,AyhA?B㿒R ˿zҒ pRʿ͡YP?P,{࿬y?o[[YKh ?W"?9n?P6??1  &jЊ޿I#ݠ#{*?g:;24 ?N3q贿:yBb_?x5L߿5(f?f~?Ju? X?sk?;{=}Ah?-E;) 0?azg?lao'&L&Y}Pqa?.9G?1 qu?`Ŀiu?`E9???o/Cb"ȿl>7Z?^oοss>?,;FHB? `CPsT}濲ھivC m?|xIڿC)?뱝.Y_}?1p??8ޗ_?K02aoJ? sY6^I?ج5`jϿ@lo*{ܿ)?pӿlE? n-?@h9ۿVp{T翪E~?He S5?T PAOa;Q嶁{ N_߿ H=?w98{ ?h$X|`?|٠k??\ݻ?Fʵà?VͿnο2=\L?045׿0w/L?:/Ҍ׿O[?v^⿐@8?۠LXC|?3}1?{,AS?` 3?|ET04C?Ѽ l2 '?#Dt޿x=8z?쿳%?RD?޸P ῈմK ҿG*ܿDzE w~v?}?|J#lעͿ@@I? [G. Q?-@{`S\x|?UxV?E#t\?_ݺ?CO*ٿHM]+vjN!g5-"?O5i׿p ?XU'sODE?WῈ#s?moMp?Um?H?d ? *>?.?kbu?c囬"iQ?oE;w ? 9ҿDX7;;֚HG ?ІcU騿^?^w:ChBP?b'4?2s4x?1?߶?$?~nȑ?nI?L|׿,[eh +?j;-?6俈(ؿ1/jV%?3DF\?\NG? ??Q?࿪BRZLA0I?OS'?~&Pb?"[ˤoa.\?Y/ڿnX?_bWտ뢼Sy?zc?k<$??3x?, 6ο7a/ֿN3?xMܿ "?TjyYT*~Rɿv@m$s˿ouQt????dY|?M2a7䜖|?f|ie ?ogV"޿|ޚ?kӋcrk?ky?`m=A;ۿ&SQ¿vj"?e"W?OEnL?ߺ.w?9*yտ/?K?/t3ݿZ)l?Дӿ^+03࿪ί%{,P,ݿp.`?@4$H^?gv?$Oip?F Z?.k?db? \ڿlͱ?3dv?LPkt8х?Ml?h @?@sRJ:? 8ο2?rxx? ?̧ƶF$?øX?%XV? FeőW2 ?'Fbgၗ&X?~!DG?s;CKnjlO?dӿ?4>H"S8ނ߿Bѿ?; s F?b(ŷgU?xzE)/Ax?C ?mY>?j?~̿Aq3̿NmпE6?*ӿ>e^?蘖hRd̿Ąt?(#?aǠ8ۿB?;/19?xl.?/C?wÿ6ݿ#6߿EC?> пKgY]?CO|!ѿW|ƿLp_a?.J&>~?zcw? S?w©_t3 U?^;j?*T?xҿ'GW¿wŬ꿵 u?Y@\ h?r*vqCE=20oҿa$V׿/?U8v%ڝ𿼚SZ;?% ̸~qj?\~Hc?NLS?u2??=?˃/ÿr4uQd㿞K ?8?48C*?Lp?S%|lgi?k(L. 󿁚㿋,e?PfvG? Z515?h_ܐj??Y`??j<ɿ\@(v(U? q?k2?#W?wǿ+?_)Nÿ/J忆uE !?Xֿupt?: H_ 쭦v߿*wC?Qy¿x鿯.dQ&͌h}?=T>? MpźǿV]Q߿ßjehҿ vhпn̖iW?v̗ؿ>!M&>?0SR%o?QA$?ٖ.?w|?;*aѿB俿ڝNixk5O?%) ?*k຿ Aq?+M<~?v?&NHUd=?͉ҿNK&?TGR B/?wGΌC sD9׿.0WֿSiq4sI?&忉G^?f4ڿ` o6?2Ѓ:?vdWx?`*n?_1"㲕俕pB !?`G%?ǿ8u! ?S+5k`3I^俿Snu?)Ef~VyS?P%Ŀ;?eemA?(M`V=ƫH?{+ϿhNN [? oNxG~Ud ҿ:( >cY|ŻdK0?fHcĿG柔Lj?@r;?9]S?lǿSEI\xǿݧ?Gco?^HGD?8O(ֿc딦 ?T&lLɿJWƿu@п??¿x ?N<\'ut6y2?bR/ѿJY?@eӿQfg?*#AңF. ;QB׿pAt??"rʌM?48lђ?lꢥ̿8?MT᥿ëH?/G{^YȿT7䬶?ozѿK?MXCο7?TB?vBUԿ4LK\{q?_o"ֿޕwh?ͱQd6ͷi?t4d߿vQ?4'37$ć}:RW?g翁M~?H=|?tf ?{J69?6J?D0(˓= ٿQÍ2?~&oR?Ⱥ0X0nk?d޿%?D տb>Y|Ϳ(BZ *f !ο ߎ޷?Z¸{,:?QFCBZ?-3}?CӜӿv *a~?Ӵ=\?cܠ?+0?^ "?RBſyg?2q?Q즿*Y:?]@4ܿ!&wA\?|75Þ21=]8Hx+ >?&`,(Կl?JZmP Կ*ۺ#?Yt=;wN'k?+KK߿z '#pJAQx{Y?:s8?8%~s7?&kῴ.>e5?ʜ"?<k?h?&ƿI :)¿w;h?eL߹?GC?e?z0xſ*?g2f.S?;,?`Ej3 WM?P5nF<8?&]?7,+WROYPDԿ>Szڿ3%u?[[?ge@?οڴvKs6g:=?i?#Ƹv?dn 뿴uړ?IV^߿QKN?$?87X޿ ?:8u{:72$?"TY׿u߮|IͿIǔPlK#_;>K.2?{`MĿ v?Nm>?zK@`^M?RgE4ҿ27o?AGNU g?BpeEq࿨Wٲ?s0忇s#Uȕk?`ZH0To?E3`J?ko?ƗR?Qq$?y5@ M`?,ҿYC?)>B!RT;ۿ; Bw.?v8B)v>?P)dyۿ*vYп҉D鿺A;%#?af?3mH+?y1Hlkgt?HtԅѪ?g ?2Pt?k?%W,;u?ɝ?'9پ?> C@D?G3ԕw?#d٢uοvO ɿ 8^u&$ r߿4!% 0?U(Zп|9Gc(?6>6ܿ<fο#WV?"_? /?)FƿJ|)s?ڑ,oֹ! 3?^n?gG[*?o0?DuC1޿#0?p'9-? P2y,%?P`>(?J _j^?t7?Z-?d"?wf~?1s\忂AMtпv8t^?ѓg.?܇<ۿ,鏾ۿ Q¿0̿i.?c8o῭q1挿 3ٿR+ƥiϿ^HP?pOM?r c?$ Y@ȿvÿwu䑎?P/м?*q?7;8 ο[,'ٿSܿQ8n.? ?Y\?0ry?R* 6俇kߦ?~^ܿCA?do,?Ӹ=?T- ?\XO}( ?NB i鿳' #^?Hd̽f6?٬ $?bF3pQ4?y]¿RFhJ|'"KٿB*/RO?77 k?Y?"n)R>?(we6\)?3̥οDK?i`п?+b6?ҭ!?mA?"de?2tȫ?5 ¿9ȪwU0{$V*,?9n)?As?1ѿYjo.? V\q'D?w*[NL񿊟 ?i6|ݿGb? J??'OT'? O$X ӌ? w+x3:?65022_TI=kq=*BPnSD?ς ?GW? Bۿ9;{?ƶQ?ܮ\?JѿJ)I?芔#ۘ`sx?&.? +v??z^߯_?Yy[B? NFAſi0?*ӷZL KfE;+?PAaƿ?ҿɽؿFcN<\s?oχ=տe ? EU_ ?l?}#w?+u?J$ݿwEK?%敍av T?nvIX?8; yuZVu?N=GGɿ6~?^߿ɜQ\,l,ýEFqпBpY:\Jz??VO(ؿ(w?'2 ֩ٿ'r࿗;.9Uӿd"?Oʿ’{?6.Ľyۿlr? hK?ZAE=?2eK?\g\zؿDWX?80s)l@?JCn1? Ⱥn?o`a ?^??q4f :?R"b?*Т k ?X+\? v<^KT?Ӓ+P",c10?w<ʿ0$Mq濋<+忦Z?bx? к?8iH¿\'Qmܿ>bf?ԿRʥ?0}MLl(ݿTz?"ooJ? =-jڜ@?z8聵?2XdEĬt-@5?o&$QK?rNr 2ֿ̘&ҿap2 ?¿k8U޴?wʿ^}\X?<e:?1 OA_? HW O?@0? ???d({9οv1İ?dr˙_wg ?Z翿ZOQӆ?ct ο/HY?$z3?,rcOL?~ 2*,?>;ݾdX?4.d?`,8ſ]4$B?5j c?'?RRsݿgܿRAhp?&!*ٿ"N Sd?$\(dry˿H9t]2YHҿN꿫"p,?{#?G ?vaݿEZ YА FVޮC @?3B? 6p?_j-?(' ? ?bF"'k?%Vkп0Ȩ?)}?|Jx?NTQ|0"" ?%Xſ U!GοB^zk?*g@ӿ,P0?.t1 -пd.[a?ܶCx濃|ſ[(0ɿ&pzӿ v⅃?H!aɿeʿ Y}#0_&?Ԏ ?5?a)?&=? Ө? *I׿<}8ҿ栦r0?,^=?XD&m?Ui?Dr@>Ϳ3, ?vynu%E͎?o{Wѿ%?j 3Ia?o5EۿIf?xBnӲNZ3Z!.ԿEbο ~ܥ?Ta6?Z)_4?)*qyؿA.ԙZ3䡿^poq?ݡҽӿd2 ?WWңϿ‰Y?hܠ?'d 6>LK?/PοfG?zsē]ݿ=ƺտ'!B*L+k`Қ?PL "ٺ9CށknJ?Gf?b#M7?Bݢ?ugп3?n7o8SĿ?D[?L#?!gqbf(jD#}ҿ4M?lX?`?21Ͽߒ?d?3㿃?YF?T+?|\j?׿}?醴z濡5Fh˿ziPп0K/?.#ݿ8\ ?LhD?n~$?ܥ;?Ξʿ>.? ٌ'iؖ?~Z(?^xD?aOA ſ??]e>?QF) CߵeD.뿛rΊN.?9ӕˊ3?fro?6@?oZ?~?Կ(H0N?|(0w}f?GZfpaʤ?a>X~?Z|[ "?`ĆfX? fS?0?-q?M:࿛z=ʿ,{?{ ?6r?aѿ;wZ? yĿG?^?d*ޮ?b?5?OWsR?שA￳tрe?3"צÿ<@'Gp࿇%M?o\?.Iy?=wht?ŀI(q/b2? '?8 qϭ?F3?Ӧۿ+8"u?Gγƿ ٞ?Wm6QŽ?4?/vQ eAf? EL޿T7(2?LL*L տʐX¿ye'E?֧(kmͿ?Ɓ^*ٿĠ d¨?t?-vn?P00s?⧛sYmf=jz̻?lK(?0sA/?Q~­4#ß?9j~ֿE $y҇%y;C\?k"qe>m? 0r>? j?Ic_?j h?TҿәB?P"+R?L_f?~,ٿ[.?^NGa-~?Kpu?KwS?3Dx͸=gcp?Tv? C'⿨%DiMBF=?cㄉ?:j{?:$ ?]uпC?os?`Ł?@|ῄS?DtI ?b|aȿŒC"^@<؆qhxқlѪ? @?H8{?XKI K#޿$`h ?|?Vux!iؿԲ":$ C ?tTJêkOZݿ{YJ?~'>QQhd?x,޹"'sAZPq̿*ck.+տtH:?_nI6|?h?{U`޿dn,g? nvt?b?{ef?{~ؿ^m_B?k|c8?5_?i^hxE?gZK?JNZ?J^xQпhfеؘFu~bN쩿jo?zIп Rʠ?.jOǿ쨡[?{.7%?zֳ?81?`=Mt?<_7'޿yI?|eڿ+dW?6X9~ЯB ?DrͿG俰?{;𿐜*?~(_?Mo?IGa|뿲 og?U{KſoO?tYu?:.v?*E?m7RG҄ ?r&nc+E?:kBƿTNa?8TrjyE%ifXۿ U򿣞M?':C?[df?]_|տ]G:)`?Mm^'U?ft?п?mV %ۮ.+ق?ZZJbտy2?Y`'O ݿa&k?O}:ؿ8c:?S#Oub#غ?hQ?!T?w {õU? T!?堻??2%s|?2V׿ "?a~`5?Kz.҄?vs5#ZΠ?и޿MN3;PX'x0h'?*dž?P~}?jEf&gJ2ۿ;4Y?/JahEi2?~yO?(?X?ȃ:?H>&(ڿQZhl?~C ӿW}I?h⿲tllNо F~wMN^?֋>*C?;G6?|ϰǿ?!gYn T??¼?Ms?̰5?q;n?d-ݿɘP>h?Cmh<"Վ:?0d_?JK ѿy| kd5 +=3L}P?NfO?x_? 6j'A:SD\?:o迨?@T?=;?m?̽? #T?xX)ѿ`w_?D4opX0-5Ri\\?%p?G ?Ғ;? Y^?|L?Av4ȿce?Pu9|ؿπ3?mpHb駒 Jÿ.-ĿB4$@h?VᅧZ:?C)ɮJp?F(.IXt?L?6|j?T>`l3˭(ԿM܈#d=.y?M?\Xh0c'\ѿ+[ͿZ%p?rYؿZ ݿ`P?ƹop.+?I=濖ؽЋ?? ?ƞ ?ǒeŌԿ`%U?כuѿKDs?SRh? @,S?qB?h||S?<>̈w??P^"??rTn%˿N&̾]𿵬:?@`Q>ҥ?k忬iӿqH? 2=?՘TOͿT1?c8Lt\%?X4'¿BF?cFI!ȃ?( {a?*=X+ۿۻ?/ΕhIԿ~8N{^.y,ۿ?T/FE%d(S?2Mm?dzJڿ:iN?ß&1v??@S{ڨف?&6'??~߽?{?#&u/ܿlZIҿ82yؿfY?b4Aw?< ]V ҿ޾{ʿmKU*<$˄M?] ?sĢW¿ G@ ?gԿزntv?חv99˿UO\¿N?Z.Qå%2Oc=tt鬡?庹]Կ"?fvgJ ?Ђ[i?l20I?gD:s?L\տC i?B7>?bQ2*rΌ?+>?U߽?Q4Y?>F3y??mlqbp;=MD?<ꖁ??u|?3w?PTi*-Pk?O4-߿#VVH?ٶˏ?X[`߿6QܿA(jq{ǤϿaa?ʑ-ѽֿa\Ŀ (.5堁)?տ|O?!9|?cJ?2}?s`lܿ+39ۿTF?7W߿VXI*?q=G5<ؿx48VƬ?@CFPČz'?Trts4E? ,6x?P?-]9/5VϿ &L=@?j,?T }r?S۬s.oyUտjY?Aoտ ZR?? 6뿽Ia?n}{忠CGܿdK}? )?  f?N`?t] Y?8K?.hָ?1?O?Rly^4~Mzٿ}t ߿mmlMo?Kͨ KIݿ?W̑)aο #J񢄠? o?X߿Xp uR'$|o ?*|¨$}ҿz}9ؿ'X?:5?#ٿn?,1uqm~L6^?/0D{׿x? B?w+L?R߄?XߘV`~\?YdT/jR?.j_ǿG= Z*eSӿ2}y?Dvfy?)1ҿf4ؿ7ĿtQP.L UJ]п{sS?ؿd T?}W^ؿmJS?!f]?0R#wbR?ʭ4裿 ;9ɱ?{g ?|fyIš_?D2aFI? VF?%?:,?h!5!пYؙ_᷿]Q"?> `˿`O?q[ps(h! ?:<ѿ EtQ翶\YFտN$5z&¿kgw#?At ۿ+=d? o?-}?nT*?"ΑV޿O,Q?ObϠֿ-̆&?g-Pֿ4SU<_:FmlZxm@Ǽ?z4"?ʹۿD{W?zVp25 MĿ %(?sc{*⿮M?l<#Ua D?bѿj?Rj¿u7>Q@?W#?{?)ʿrA=?z#տĖlG?tPؿ6࿲~za@[?xfS?s?wPTܿ7oܿOɿF]V?b?@l2_n[޿lp@?櫗C׿;>Ԥ?!^#̱D2?AU?xwp?QF) FM?* 1  M?l޿^ģCȿ`.z?{b3 c?5I~2UC ?"?Oo?Qb>!?44jӿ6<$ڟIpƿ"G%?7Ŀ\k?Yy?Jrv@:xؿu~xHп2o<̀ؿ`Y?R/mx?ZKOZkD?ۜsٿ֩K?ʠ?,5?&{?p-9)?_H`?,\jx?/i?f66?KULe0WHҿ-jrR?O 2ٿߏlIN?HXӿ0{ٿ/?*3b|I?a*uVh?Z?Z;p:̐?sK?Q=пdY๶Z̑d?"<" ?EPw#sMCrp!翔bW$ؿ&QN)?!"?,d+mk?c{zٿ.㑪?TӨ=?.B?rg?sf7z)ɿPZ?8^aoۿͰs?PhҼ{LQYѿI C*6'1e]¿DT0?S`JݿyC?.:%hCp?V 0+1?Q%l?dR@ǿc ?Ei俐ϟ,ԿՕmZۿhu.Lݿ.@U?cyuQ?caon?z"?V@K%??pQԚѿ)W+̿1?.B?|--D?xڑ;7jUȿ?Zn:zĿ}n?A ͿљT?"ū?(VҿI?A=ͿSK;p4f¿}_*?ۺg!rv j=*?)Uw ɟ+?eam򣿨GIx?+43?|?"Q펷?IֿslۿQ$ڦe̿5l$Z/?ptA+ 7?&? ?+ƿؒr%?ލ^zTݿي=?He࿕ řֿiqBf?>􊫗ĿLFp/пe6PTaf)Ɵ?(KdK?BhX | LJi?sޙDzS?t9?; ߪ?xYV??0W?&,ɿ :ٿP>/MZW?jp7Fp̿mQD?ԯ4ٍ)fNVؿݿ vӿE&? ҿ`?]Ny0?]8 ?L[w?U ?IxR(忙jX?qпD]Ho?|.?Q z,W:*g`׿A@h?H/pտ><*?ǚ,ɧ}?±ӿNH1YfK .g;ؿr>x?*k?HmTWy(ƿӰп AڎJc0пQL ?>m࿨)m?m&Ŀjϩ?\FXh? E?ܮaʒ?_Tm߿?q;ѿEMiCEH?0oI\ KvW޿V&*B'ܣ?cw^?r߫q'?l&j,пlZ?;0 ?4?\Xw?n e?&x?kؿ*ӿ4 缿sD?XKf? )!ɿ!C>iy̠?iZqʿ%?^axL* 9?r[KМҿr}==X(t,?+iƍӖ?_%v:2P?7?Q?}?3 ?`TZѿPsGrӿO?DC?XĦfZ??jv7D|j&D=Z$t?.[ OؿZo-V"?ƿLF??+?t0v?V&?/=@KMӿ Dm%ؿX3?E~,? P??aSH?ϔ? ]??~?{qۿ`^0?p\H㿌՗ ?on-7P%!9/? 7迱hGt |¿W*u2CMI?? ?kٿg>= g<߿UY?0C^\b?v?m2W?ie? @_2?9E ⿩2m?vj⿞c~?n<ĿM" 2? ? }|?،>?R%?t js%?Bf)οFw?Dt ZSiu?>4RvNj?h\/ɲ俢GNԿp_qHV?6?J?+"?捓?dBW߿n?TǗZԿlHd ?2TݼLi@⿗,<l׿XE͢l? t?ZA?*"-D?#%,.?n^'c?ʳDF??tQw ?("T>cſPnz?"*Ҕ(%Ec +725|? пa*?0 \?XrT?IӜ? >s?dT^ѿxZ_?J/ٿ4F#?W@߿0hMݿ.*ԝYc? F>0$'lQcٿ7ڿTS`?נC lʿD~紉%1¿~eaӿL[ѿ6&ԉ~‡?]=îy?]%㿎℩?|**ݿsqTLs? :u?QBw?e &?ĸݿ^ xѿ b֨54e?dp鴶?9hZK60s5C?T6=|ɿ+Fd?%(E俆 cAſقοМ^߿ێf?*ܕ뿔Wswn?NXL:ũ?YE?LG̿ ʿw?tf\uW}<ކ˚wp~ҿ|y7?xq P߿dX?9Mꞽ=?܉?p./K?ZeUD?%6K?Js˿Y 2?WNI?t ο89 ?#EE#X#F?xzl6ѿ9.x-6n.?vRB῍-{BQ?|(,ᅤfc?z4?ISX-?T3?V8(М9?]6׿F)[?平./lH ' ?pZ?ݔi??x?JaPQ\?jAj3ԿLs%@9H]0PG3 ɸqpCF}?ew?-FyJ῾X #?(e$?S z?KW@п@Y1⿧`+Z?6h=?3?y?UB?N~\ջWFտb–?(beb(?zi}=rտlPd¿@!-?ũ8jEN?JB?rX?Vz?Oaп 2w,1yF)?u6j?6,m¿njcr?6rT6vR?< g,?bʥ/ΑCe?-AmG?6^ԿG)?n?lX?Go4JqQf?8DX%뽴Kz.L̿a?J?ȿ ;Y?Rܚ9h繿kv{e-?.Jˀ <8 ?ĞC$k?!lqr? W'*?;ׅ?#xqZNG\?8cDYn6,1?8FY}׿U/ >ݿA} 쿹8?o0տ8j>?oѿ8̫ ?S?-7?z"Z?%#쿠+?F;eG?_#tcI=7ؿ7<_\?׽fּ?m?BQ6-ܿx ]?uG+?-y?D%W?*ƿI&>WڿYCDٸ?0qĿZ3J?wRԿ@ZU|οDp.fzɿ{2?Вwտn#y? )?Ύx+?@}ps#֓?_]scg?*e*AjO?6D̔U)u?̗a݂?7*??\? v?F uttxڝ!SZ?h_Kiu׿B=H踳P}AR4r?uWvuXε?WEr@גw Y3?O?O2q A?0\?~>?8>ÿ0ݿ#?#7 9]Wx7?L%ʞ?@ 4[οn0ɺҍFazrO\E6Q0?4?σM??YQ_Et?@lؿtR{?,>{V?ýǿςw!vf쿺7=?k*Rfο 4jo?w.G )޿p 4N?E1ow?HU#G?GH7?ڏV?C]ԿǑ?=Fؘ;qpB?nC? ? ɨ?V"?sѨD?7|Jlݿ3:%`?` 6?('Z4U?jGIJm?Bo0ڿgf3ɿ!&꿪Z@ſPKJH}dE>>2_gaus1_1000_coefs.npyNUMPYF{'descr': '=?ߔk??JM@T?4&MI ?sm?5GԿC/ XH:Q\D[W_p9? r?toI"@~R]k?ȁ俨 |?ҿƿ!:.񿄚V \x޿_DrxD[տb;ڿЦa?7{͊k?&V?yyj?",im?v/Xѿ/) \迏gGLw7%^<|Ј $ϿL@AĿ"YB?͗9V?O O?]n#?oN2?VGa? ^8@ &= P s &q ?\vߢ=F*ۿW쿷]6hJſߛ#H/пOFQ? $?6,|]?lb?(=`?K?xuV+ЭۆV 7y9+ᅴ5`?׿8TiA?o?Dm T`?a@)A.?A"?lLT?taU,?Shп# ?ׄs黸7ٿ*ΉA⨜ib ޔ^0=(C5?d ?]6?ش(A?r?Tq?z)?ͪV?3￟;߿ĵnƿ'%1N%.xٿi@Okܿ:bhqȞd濪(X :ϿD48?=a3 ?Dì?L&q޼?31}ܿ&ĿG{DHRmZL?dRgs?4?*? w?7{ )ѿ93?+v!kLLӿ'ڿ׿ @|HǿT}]Z׿ởEԈ2`;`?OiȿZ3pGE3޿j~ϳ: 7ۿ(uy?ûjz8?+vvSÿrDsW>RB%?y@?cU?Z0?9ĬXsi=+G?2F=g?M9?;f?I[ ?.R'?Jif?@A|B|*տQ?30scvrlb VEμQ[?jm D? ? ?|zgc4+b?Ic?_ ~?̐F5\ȿ4t9m3s 㿴N׋GĿfI.?gm?2>?Jʹ?o5?m}㿇 ?৥旂zWJο ?+8F}ҿ ag/3!cNÿQIS?f?? ˇ}S!h "b`]ݜ;*+z ?Nc|Ɛ/QC,ڿ鿆H!F=uչ?ЭU?GpB?I^?bQٳ?>ɿ91пbiٿuV2i .%ߖ&{4(3JG'n?P2׹?0I(DӸ?΀޿>!Փc"7}#0?6 ¿qP *?g؉?4e?MB/ +jy2:4}!HJL?lGT·J@^?ܲ?HOL"?) \?? h/?z\(?&qJ?u2.ҿuYp\@x$qY?X|K$O쨉@כρt?s?0?xb?[pn?wc@K-P?}9Ly?{1iST@տ$h`]=r7G?3ҿAȅB?%kLL?2?ц?v?o5[??Wpf%?D{n?#~ݿJ.g38;]nru6  5ҋI?LSu??]v[?1E?.2?b?"ij[޿*?Y4΢?1U8?gqd?.\]ؚ?`pѶ?/*Կipò`wˆZOJZ- ,?5M?U8y?Xr'?6i@)cH?# dm{?zh@@=5?0C?~j?Nx)$ƿ@>F|?p]ſ .ȴR?tX:? ٿԿr 0 յi+濮G?%N~8^όĿjԕ (xa&H9?alv DϮ?/EU`,Ϳb\տT Ϳ8 ?-Qտ~aHY{ӿhnruؿ`z)\ʸƿP,1׿=r?3?n3Բ ?&?HM?T30Ey 3uS?L\OҿpŘٷ#f.?t05x?鲢Z?*4?2MO)?KGDXg?lfI?#z?Tr ? ?n(߿@6&623?w#yZ2-m-?l@VS?>hd?1A+пOiE=( +?b@ѿ1?䅿7n㿰wȿWB¿GM?P|T翩:ٿpy9׿,>ٿnXr?v?=?_ނ_?Ͽ]9Yw?h)٩)ƿ ڝ˿uZж?Y?, _?n[neO?\w?ڥ??N?įH)׿94?qZlL"R-ل뿱4 JS㿰l¥?s랶-pM?ؿi?5m[俸m!:'޿ؾq@\?"?1yԿ!na?@-~ON?=?E'[?`h¿集?߿t։j1ҿ9P0?DB?rw@G@đa?r-i?xAei`?4T<'?8n F#h?*F6?'ҿeXyU?GYnY?l.?NRCM ک7?)c?nSmN[`^@5hnέ̥̽DYm?PUpԿ^Ugݿ~X$ǿhץtA+`6eԳ? fƮ忆fx࿶?*-???%c?vZ?H ?f֒?/3sϿ=DmI?*?Óeh?  gc?PlٮR@?W?3~]EIu10sq?ٻpghU+txW޿a^?h1g>?v^r0?UN߿-!TBk?ĉw QrI?zB?43ݿv\qcL񿺫#Q@ á???!S I?dֿa`?b?DDT??/ؿN/mJq$%7{Rj(ޒ#+놄(w~j??CU?;5Wb?X\?,x;?ag#e6a-Q?7SH?4N+?-eg?-%gДu? aT@??Qo2AM׿ _qǿ{N%?ﭜcX>?ߜ/-?TTc? szÿ9mf.?܅b 俓qhh迡58BX 'ῳ7 ci?pNϿކ&%?=I?2Otmġ?P\Q޿a/P3;?=) ?xW?;??¿yyt?u exh?!$5? 4O-gտOKܢ???ZNIc?!t͏?X2ҿ$9kϿZ_Tǿ$ӿi-Wk8[?l(?+?ιś?#i?hIw7?"|TD?:vw2jgHȷf?r-?X4?t;Da?<n?%;濽.+%?Nݬ? ןV4bb?ȿk/뿢Dl<8f94ÿB k߿41пOJ0?@?"60?nð?tڿU] MXcY2`㿄%-b+?PbT?ݢ?PPE?I8Ŀq&ӍӿhtNY\/K ?J.Mc?V?$*?BU F?ƅ {Y$\K>~vk ݿ{Z\"P?yr?V$ݽ?RK?I\Hʿ6Se 7~s_8?$DѯٿkF?>*[a?C~?mem?29;?~٨?4h/?l ſSڿE։u<+$!/x4@^")?jꗀ?''([?"Ş-?RhԿڐx?Bqҿ|4R忮hlݿ% `9 ,2QY. [?a=?L(ԿF?eD ?!t?J>?4T?-]M?l7h?||? F%]U*EJ殥&eg2w$^yT|AKf_?B4 ?8&Q@x @AJ[Ӻ?&iɶ@ySp?hL?I2?"~OU? ˿nrZſ57+ݿ]ihԿmB ? vJտP:I!s߿ziK邘ֿC?C|ݲ?&$?"1Ͽ΁ĬCuom7:4Vl  Xrڿ>/p9?^+b!?wm?s3e[?$Lp.?X?2# -󿩣[U~"K};ݿ3.LgMǿPr_?#;,߿hŢEďJŲ5d rտԯ?Jb?F.>?c4?=1?VH?Eb6? ̏?ԡQ?m)OD?ÛgA }Hj%^ΰ:&)/?ڦq*wrۿ;Tr) iA( 㿑r?߈ пCj׿eO?u? ?|?d?0?c[?\ O|bύ=Ys?Ih񨶿˹A*f/ ?M*4?1?#DJڿi`̄Z޿{l=nh}/῍ƣ¿2d`?_W0?_B?@&12?DJ'TԿ%bſϘqUW!Z,Ѐ+ZǤ鿜gY?/u\a?N|C@u;H?lz<@ ٿ? >fyCMDI?ȅn?Sq:?G?ԋmMƿiiM?b?W? .&Կ'8޿Σib.hHM848[?:ֿ6@,? TR*?>?q3?2:B?!AM?@_? Sҿ6H4?XPΞ?Sqѿ~WNٿN(iYkpT:*[J翍Q)LWI2K?SOo???'RGK?3?O??CI# #a1ڿ\VN࿯_|",? eDm"H?I?I^?H?/]}f6 ?ڡdyYӿx?ϵ9⇿@WڤW\Y8koěL?SyVCݿ8t?[z& -?-F}ƿX6P?5YH֣ ?nI?o#SI?u1?8.?y%@}?"Z?z;?y8)e+hտrn?PFoѿ(?&.%,?."?&aϿpߕ@C\l58d8xŻ(~?0hGw,'b"5C ٿ[1:ѿ{bl^?D.D?}?^esп:KpqR\翽 PݨDi`h=_Sa)/u$v??Q6ho?)?$͞*مv?~-?;$;\?Pbz?Kf,?9ZZvf? E?}7?zb?h{0XCgzSۿ{NQF)HU?Jt] ?? )?ɬAcy9g?G?|?s7 c?v"]j?Rs:ՊIAC>￵옫!giZ9֯QmG?P?pv EYl0zƿ`|'˸a7K+ҿ[F݄ ? ??lӿwnڱ?8+Tֿ"RekBB]59Zkg뿤^s jֿ,%Dҿ* L!?7z?DzLY<пkQ ?\KS0l?F4<?,{j?`?jL)U̿U +$\PX4tl8VCA0ܿ@فٖ?8ە?[?tSΦ?ǣ7H?/+K{8-oz2.?-iVڿcv?Wq?F˼tӘ˿>O:q.n4SL!-L¿/Y]wZ??cDHdAiD?MN?[?v$+'?YJp"@ˀ5t?O,?ʤ;:?I) +h?3:I xRR3T$迱s7/ '?uC\κ]p9q׹k?*p8;@T:?4>?2p?K_ͫ꿀'ZmXY/Jla;Ҧ?6v(F?*y j?}ֆz/?@"N?4? |򿏘zj?2TsF?hB L?H?o@7- !Ko̘ԿLLf+?&w'3-?xϿR,Т-쿘:J3uVv쿯C^?Xrm?QZ l?*VW?kM?8n7"-D3 O. CuN?du;𰿜)=?PU?b,=]a9`?B਑ʕ翿1m-?Z)?L*ި?Qi?uIZG??4B?&<1r?j?q]s('LP# }V?_P 0A9wwN-6M&)fT0!=CC3m?j+.I?<?}"WU?A?*IG?N[e?&㿩V ~?R_/ ,x6]'{?_iB῿8oԿ"+ꢿFc,¿e]?N+?2f?õ?Ѯ,|3_OabnY?y0?Ejt׿٧>x 7??S]W ?I\]?μ?qй?%B??5?ulqez?p&A?E i?b9nY?t4|T?D?⿿yʿT\(:`\ĔӿEXy?Bҿ~v?"ˣiE?ߛ?yl?kt¿W~$@άAW쿈QB`?}!N? ?-?|7??[y?giֹ 濠Nݿ1AXߝ_TӿDX~8U?lUGI?"*n?C d ?n144.*'swڿ?@^@`[m?NqoA9W?g-y?T%.b?(%l ~d"ſ'PA>4)cc?ʭ?0`}$ܿjؿQȿ;t?'h?Z`4"i?Wfhf&?.shKݿHG&E?(Z뿭r`,v?5??օA?;?07kF?[^D,ޯS6t{0F*8Jlk:M=뿊G2?2&?xt?z1Sb?h|y [?ʙ;?b.ۿ[鿒Ǒ (Y: N?&-?פw?lkz?ѻ_Q?tz3M?t5o&7N~h5?xJ҆ːiҿ*g_N2¿w7Koٿ(eu׿m ?4.4jϿhE: cUȿAxM2?Y\rnȿ.O?!RVHz  7V._$a׿aSz{1ؿ ?$)?[?[]?_O]ۿI|w?'Ocܿ@HϿL&z4?ݘuoῐvAϙna%,*s?O?~ ?~? m?瞧?gZ`fY? v?dRֿ`!u hXΊ;lֿ%X?\?E(R?n޸l?giѿ$xQU¿ {֓ROzс+xiD{?Ba0?3? qH?i ,H)?D}?#zS5?Gy@'9Z"?uvE-@6?Hߠ?96ęſZp]UDSK6`b^ݿmf5DܿiPL¿fG "߿||CabۿsznۿH/Cް?8@?"uߥ&?˯ ?0M ?Yc(*ToQ_bXQ?4b>D{?^?G1_Bj?o7cx??ƊH3?zty?º Sq'W~G ?e[P|FԻFt D9ݿ툏WoMk?)?TsT&4? ?GaL翐c?濆E- [ؿ-#?/`*ſ?}鿿{)=0?wh¿@r#Zܿ,Drѿƾ!2/D:1XR<]_-VȾS?aH?!W@@a܆c@C7`B?$?ʌ^]Iy?h*Nc0QͿ:D̈":^8C:[ȉ+:ML"H:rˣ4:ץW3N:'z<:#]R:L@'D:8ݨfW: \L: T\:˕vaS:`t&a:GXZ:e:\Xb:>Oj:#ꏺSh:'JLp:N=Sp:1[s:}u: oxw:Z&|:}V|:d/sj$:I ^΀:Կ*5:g!Ń:ڈ::Ԉ :Psj:3+ :6 \":ޢ&Ґ:bth:C0P__:Өok:y:!ղ:ȓ:c} :>˒:u5:SUV:i^: ~@:r:W9ןq_:VyŐ LZo:3Ĭ!ؤ8;:ܙYT:֢cKg}?n:ZSaɺU(c~:X]Ӻ?Ƶ:MܺmҨ:%B'=v hL:m{QuxX:2;q@u_;W-ZvOy;aĨb ;؆)*;۸45.;wڦvM*;X-;);SBl#j/[9!;$l(Xkd$;.?D@0$<';G]5,;jU3;jUD50;A~A1w2;(lFU1О5;vХ8L}gn7;:R2ҍ}9;rQ!W9X;;WOxC]ڗ!<;dgRsbiW<;@y3g%8:;jmIn"86;!(z-rrS]*;X_vor5fp(|豊7]#r(1bLvUY!>%ZBk_:Y|e]1NFlp9$Сxom_^0aB=2K͈B彛(Y^Z;pkU e(9oZi"'`ʯc!/`[.":B87@L'{ kpd; h.|O2[n<»rɤGĻp!L@ŻsOwʻpKf1әȻNVYлk&ZYD̻Vջ`6лYۻ}R,һ1Ly+4x!EԻ:}廁ECKֻ/\g< &ػr@Gjvٻ g6Q]yڻC& ^FٻB9(>z xu׻j.VedFһV]+ l MƻʰLg;YGK;jp*>ej;]GvZ[ά;rB|N<:Go=<gJE4C q$4k⾖·<2Glҳ.]k oL=]vCrSP=eK>iI1rR= ˹dPeQ}IU=h)T>''X=ӝ_w%YnnPH[=@TB/_ "ϯ^=^;c0#a=r;g~` c=>8wlΰ`k/e=`qɛg=5ϾvIu>Xi=ayAҒj=Jd~|[l=oLm=-~n=:rl o=c@n=F鉟&D.l=+?Z?ih=*I%ԙ sb=2`Q?Ng`S=EoJ4XCh5Yc1R t'u󫽗y1@*U{;\qm5Unvp/暽X-y⫐q00'?y᧽rV5L(. ½tNeLճu6~Ľ|~T cwǽ\5)À3Xɽ2xýK{̽6ȽLt*н+B/͹ͽ1tѽu?>$ҽ庝Zӽ0+ֽ.|kfսpZڽeֿi&@׽K|spٽe.㽫mCڽo|^_ܽx(5뽝cSeݽp=p޽U`yy޽j~ck)޽nB&Ɍgeݽϴ{"ܙڽI]_ֽZ>8нvX9ք}5I 54t=ō_ VX>={7eXnw,@|=%ang=Gp&\,!* x@>!)z >gj#Pj>> DwU`&6%i>+z`)8]O>jnp ,xWp*#>n,/AL'>QG1,>8(k3Z;۬1>) ]v4qtCXnJ5>,6ai9>g!L8B 4>>"3Á;0B.B>L$={]E>q*?G&dI>֪@z:M>KP8gASKHsQ>\y,!B3YT>M]5B>9W>!?}B/d[>CBo_> e\BR33b>聑OA^d>z$?-jg>t9d Ck>%p2EǑ o>ҕJ"dNq>;\ >x+s>˹r3>őRkv> YdC>ZQL4y> K

    «[@|>v*W>^^S>=ި`>Bl=>_p'Of>&js(>}]>]m>[/> yBm9ڇ>YYOw>fd:>F%|>k>cr>DZ>k>{# >V>np>6W>?g>Cݓ>6z>5МJ>na1ڕ>7l>"j># >$>bP>>(q><…]>-Vb>9>Xl>i >U;p>{;##>e>/Rϱ>D}Os ֛>BN>hA> > $g>.E'>-+&֕>>= >vM6>QM>(>Ew>1>cd 2Z>`Y'X;R>uŤUG>yY>~K Za>F``Z@>u'~_l$<>žܔ&Q>V=v,*ʾ+R>uоq>oiӾ ˕{ >U׾3<>q|0ܾGq>#Κ5]6>L `pLѷ>oHĠ />[14 Unu>1Bp?3sB% >!mS+6R=>-%E5<>kI.p>kD!ˬ_X>-)R&>W`C>^A|>th> J>bjœn>_in+%[>qQ b>#Rׯ A>[͇ݎLGE>i]woW!$}>`rfxb ̗"8Gվـ.V+F侦oYV a峟3:ؼ\% V Y>̄ w) t,!jp%T:4# eG[v$iۑ Xr%oZ!L?&DXU &0('"*7mj])s(%P4x*<΢(ic3l}+Ndd,aTd,}!Н.0v3<%-'] [2B*Ը-S 46c.T@CR7l+.qum :n-}CFp*=5/c-Q@vf8@ENFh,n`A蚌^*a}CCjc=(q;8EK8$W`<&HF>#$KJ~L" LRj>WO`?:O@'ɛ|}P)>F>dQSR/VY?<SGE#?rCU#S~>.?,V #5?CaXr!;?KrYXYA?s.Ҟ[OF?GEB] jJ? g^AP?-A`WkR?`o a}+g5V?uҔUaYVY?+ %bK]?h'9cE``?%/xc#c?Ε[bd#>e?,?:rd!YO8h?E8ߨ/eR. k?Of˂geэn?_{eSAp?`btsee;[r?ӑe,,t?9JČdGv?0ڌczmx? gcba6z?K aDNk|?d9`O=~?{u\i\h1x?33ժPWN\ǁ?l؁rRBP?.ypҏ?*S3I02?l""it,ɭ˲??d5 C2[?Gi(AEkA޳?xѡRgT?>|;ce?ePC(X?!ŪpT?t]' ֳw?)a#J?<*.~-?Y SYã`?~~5VZeN?$"d?i$ e>?A$ay?(0\^m?xb,\q?#w7/8¿N?;}Dÿffѧ?ʪrNĿ r#?SMXUſ%.?EWƿQG`?6cTǿZ?>@ώIȿ. ? 5ɿƅPR?Mnʿ4 w?ĞʿhGVrf7L˿$WR\[l̿ԥ7]&ͿV Ɗգ*Ϳ~~HUp (ο~ \8q/ο:;aο>;ϿAOW=j(4>Ͽ^xِؗ a#Ͽr8ÿЧοRtz?wſ# οw5ǿhj:ο-vYɿ 8{Ϳ0/˿;-H̿[ t οfX˿e^\пoʿڣȬ$ ѿ]-ɿxxr(ҿ84dfȿ ]-ӿƿX,ԿLcſD2H$տF9ÿ};4ֿa1:I8ֿԒҟ1սC ׿e%F̮|Q nؿ'3Ĺ9R%lٿ$3Q6r!ڿ]fȪYYڿn/,lϸ\ۿܶzJ0z~ۿ'?nQܿh'3ꖠ?4,89ܿӌ@?Wܿ%PY?,2,ݿwm%?7Jݿ v%?uQQݿ5W[@?̒0jAݿyZ[c_?$;ݿf=U?mܿfg]3?#jQܿ\wM? ܿ_uIg? ۿYb?Zڿ8Qh?52ڿvkl{?Blbٿj{^FF?3N|ؿw !?ly~׿rP?zkֿ`s45?;Cտwg?/WYԿdO?ҿ\l.?yxJVѿ:?rϿm6?^I^̿G9>?1~ɿh3p?rpƿi1AE?_!#ÿ/]% ?{Y ?a}tw~~?4?Ӹ_BY) ?UeCqaY) ?UeCqa??Ӹ_B?w~~?4?{Y ?a}t?/]% ??i1AE?_!#?h3p?rp?G9>?1~?m6?^I^?:?r?\l.?yxJV?dO??wg?/WY?`s45?;C?rP?zk?w !?ly~?j{^FF?3N|?vkl{?Blb?8Qh?52?Yb?Z?_uIg? ?\wM? ?fg]3?#jQ?f=U?m?yZ[c_?$;?5W[@?̒0jA? v%?uQQ?wm%?7J?%PY?,2,?ӌ@?W?h'3ꖠ?4,89?'?nQ?EzJ7z~?m/,tϸ\?fȪYY?3Q6r!?s'3ĹDR%l?%F̮|Q n?ҟ?սC ?a1HI8?)9ÿ;4?fLcſS2H$?ƿX,?$4dfȿ!]-? ]-ɿxxr(?oʿȬ$ ?TX˿,e^\?;-H̿\ t ?8{ͿQ/?^j:ο8-vY?# ο2w5?Чοstz?w?ِ a#Ͽr8?h(4>Ͽxؗ?blz>;Ͽ4BOW=?5Ͽb?Baοxm(0k^$&d~~5YZeN= S[ã` *.~- a#J@]' ֳw!ŪmT7PC(X>|;cexѡRgTh(AEkA޳?d5C2[$""it},ɭ˲S3@02.yoҏw#\>BP氿A7jqt9}6-SyN[?X?1q?Zc%_]{?[&@p౪a<?I=~Cbۅ?%eu ̧X:? =] ǎ&?aE3Ʀ?D@=+T`?~- S98ke?,?:rd?#c?Ε[bd?E``?%/xc?K]?h'9c?YVY?+ %b?}+g5V?uҔUa?WkR?`o a?AP?-A`? jJ? g^?OF?GEB]?XYA?s.Ҟ[?r!;?KrY? #5?CaX?#S~>.?,V?GE#?rCU?/VY?<S?)>F>dQSR?'ɛ|}P?i>WO`?:O?L" L?F>#ҟ$KJ?78$W`&nT&H?1c=(2q;8E?š^*}CC?DNFh,`A?/c-m@vf8@?n-CFp*=?l+.um :?6c.U@CR7?C*Ը- 4?3<%-J] [2?$aTd,A}!Н.0?c3l}+Ndd,?X4x*t΢(??7mj])s(%? &0('"?L?&XU?qr%/pZ!?G[v$ۑ ?3T:4#Oe?t,!p%?̄ 8w) ?%  Y>? ؼ\>/a峟3:>oV>ـW+F> ̗h"8G>|rfx>O]wo_!$}¾*͇:LGEԾQׯ ݾpQ 6b~_i{+%[|bjnTh> J?AƇ|龁-)H&>W`C]kD!ˬ_X诙kgI.p$E5<!mS6R=Bp?3sB% 辽[14 UnuxoHĠ /徭L `p@ѷe#Κ(]6>q|0ܾ1q⾆U׾3<ᾀoiӾ˕{ `uоpݾ1ľQM>(¾= >vM6-+&֕> $g>.E'hA> D}Os ֛>BNe>/RϱU;p>{;##Xl>i -Vb>9(q><…]bP># >$7l>"j5МJ>na1ڕ?g>Cݓ>6znp>6W{# >VDZ>kk>crfd:>F%|Bm9ڇ>YYOw[/> y}]>]mBl=>_p'Of^^S>=ި`«[@|>v*WZQL4y> K YdCx+s>˹r3dNq>;\ EǑ o>ҕJ">d Ck>%p2>-jg>t9>^d>z$?>R33b>聑OA>o_> e\B>/d[>CB>>9W>!?}B>3YT>M]5B>SKHsQ>\y,!B>z:M>KP8gA>G&dI>֪@>{]E>q*?>0B.B>L$=>B 4>>"3Á;>ai9>g!L8>qtCXnJ5>,6>Z;۬1>) ]v4>,>8(k3>AL'>QG1>xWp*#>n,/>8]O>jnp ,>6%i>+z`)>Pj>> DwU`&>)z >gj#> x@>!>W>\,!*>g=Gp&>w,@|=%an>VX>={7eXn>54t=ō_ >9ք}5I >нvX>]_ֽZ>8>{"ܙڽI>&Ɍgeݽϴ=k)޽nB=y޽j~c==p޽U`y=cSeݽp=^_ܽx(5=mCڽo|=|spٽe.=eֿi&@׽K=.|kfսpZ=庝Zӽ0+=1tѽu?>$=ut*нB/͹=o{̽ 6=a3Xɽ3x=wǽ5)À=u6~Ľ~T =. ½NeLճ=rV5(=a'?Cy=-y⫐q0=5Un wp/=;\q?m=P@*{='u<y= 1Rt='XEh5Yc=zoƙJ4=`Q Ng`SH%ԙB sb+?Z?ih 鉟&D.lWcE@n:rl o-~nCLmd~|[lXay?Ғj4ϾvIuP>Xi`qg:>8wl`k/eq;g~` c^;c0#a(@TB/_!ϯ^ӝ_w%YnnPH[h)T>''X ˹dPeQ}IUeK>iI1rR]vCrSPk>]k oLٱ|S7KHRQ[2SE* _`B##q?1Jh^'n;#Oٕ 76݀3kAXf0_/ /,;zJ9]FR'س,ҋ q$4k<cά;rB<\0<ʰLg;Yz<]yڻC&;Gjvٻ g6Q; &ػr@;ECKֻ/\g<;Xx!EԻ:};9}R,һLy+;G`6л;&ZYD̻V;Kf1әȻmNVY;p!L@ŻsOw;n<»HrɤG;0Ob2[;;d; h.|;H87@L{ kp;T`[.Z:B;i"'`5˯c!; e(oZ;4Z^ZÍpk;B"潛(;=+ 2K͈;m_^0aB;9$Сx;;^1Nlp;wk:Y|e;vUY!>%Z;˙]#r(1bL;fp(|豊7;X_vor5:u!(z-rS]*wjmIn"86o@y3gu8:gRsbiW<OxC]ڗ!<Q!W՛9X;t:Rq2ҍ}91Х8Lgn7lFvU1О5A~AN1w2U3;DUD50dG]5o,>D@0D$<'l(GXkd$SBl#[/[9!-(4ڦ[M*h۸5.&؆*ahĨb 3W-4ZvOy;2@u_zQu[xXL%B'= hL+MܺmҨ3X]Ӻe?ƵSaɺ(c~CcKg/?nܙYT3Ĭ!ؤ8;ںVyŐ LZoԺW9ןq_к ~@:rɺSUV:i^ĺ>˒:u5ȓ:c} y:!ղC0P__:Өok->Ґ:bth6 \":ޢ&Oj:#ꏺShe:\Xb`t&a:GXZ T\:˕vaS8ݨfW: \L#]R:L@'DץW3N:'z:D̈" '8: 3]9i仝]3:a$Z̋-:jyfV':j~ЁZc":*<{ܹi :`sPKJHp}p}2_cgau7_1001_coefs.npyNUMPYF{'descr': 'bY? @?F%?̿O=ˠ?eٿZ-˿UͧpJ?x^TQ*Ɖuy?Uӫ8zG)MQf?ujSz9"?.%̸?῰Qp[n)xU??Ug?( 71?9_lݐῷltfooiXϊ??t_?yDn!ǿ& _?6*N65ȿ0J'66ٿ ˿຾?PD?+Ї?hٿ(&m2?~jROԿ܀/a?d?Sdll?&ORX< ?v@x?eԬv?9$K϶֍n߿,ű_/;ܿ,?^ȘM?Cn?4=B3?;3mٿo`HѿTӌ:wʿAe%m?y_?cr?h$_?Eф yLW$? *ο*5/??l?俣'9c`?0lxaHWQ9?]?f߿~Aݿl%ÿl޿mii?} o?HF?p :ſ"ѿIϿ.h?WCh? lkG̿L?gtNֵ?ElA?PLڴ_ӿ>>r#5Kտ_{?Ozf?S])p?-f[?G5f7ɿJ¿z]#w @ ɿLX?K'/+z\A?ĐlϿ̂-B?J|?YCj?/%2տѿ\o$ÿr$̿;DMZǿU;}Q?v+pbW]u[vx+T?h@ſ"W?J?⿏{)9|迖߀E?0?"sȿ5 66?(rȻ_ E E쿞=oF?,nbB0M0?0_?}ZտM:%FȿS~22V'X? ϼ?oo?LNBԿ.!>|51L?&pt?:˿gDr?H ˿qdt ?^E=?3;ksͷ?hzUaZtgÿGa+?>bp?!? r:WwD?u\ѿ؎( ? ?٠ӿ,=m+#忪{>?7F̒?a E,8hտ송Dj?"?s /T9 u؟@)e?Mf_S?a׫?lAHuܿ\i0?ؼY׿3Ʊ?Y?DvY-:%B?׋U!p@3tA?|Dd?}=? yG?f* ?Tzw&O?Eǿf ?+|đ?B!3ӿԇ+xϿ{us쿪;p؏W?ÿ/J?0!/66%$K`?-a<e?Xe?pYXۿn9BЌ?^I?D?i-q?q쿋U?HTܿGd?9@?6ާſ??j? ޿"kԿM ?$i?\IN¿Q?n87I̿F@͵?aX?zB>vaÞɧ?T/t-^fgѿ8dEm?M??̊'?q83Rwҿq|$Կ'!Z*S?Y7 ?HadhU3j sa{2?yCf?Qk m?п5Y*hǿLv?)Zi?Ol?߯J/x䰿 ׿8O?k'?2ÿ˩?]bӿb ӧ?> ?'"=?1$?wW)/ێǮǿð?H;Ȗ?Sr?6.& f&QԿ?iȼ.?$[6? pſgX1cZ˺ؿHD?NĿ,8sq?( տP34߿s%&f?RwO?f'7?Xͮ!#ƿX˫"ꦅ?'wȿGAΛ?:p"?*ɨyƿ@8‡WLֿ?L'F\s?)V?z?A:ɿQS˘X?'e???JL?dv뿰!n? gdsʿِNP?֡3?w<пֆ?uڿ!PݿEu.;?\ =/"?X?]῍1{ uifX8x?LF?*(3c?*廿8:-ڿn)@ϿI0?Ύ-f?KͿ\*L?*_ɿb ?Wr1?h {{濠/U?Gl 쿈[ĻpB$?gye?u1>2? *thui-¿;RFuEP?ěH.?ĨnG?*53r߿: ? G#ӿi=>?؎/ϿUA`h6/?\J$@?Ux?,WڿZ[ҿZ&~]62[y?2\05P?}u ?M6(?* Ϳʧ%r%?`p?s>-ExM>T?}^M3AƮ4?jv?нcg?In?MԵs-59ܿ*Ɩ ῱?/Qk.?^v? D?*[K.\ ?Chz׿}0:?u B{?9.տL| R4)ǿ7?x7)]?<&FN.ٿx}*?bILοߪgDÿ6n?շ\]!?*3B&??H!ܙpҿ?T~kTտOr26?PIO?lǣWP?+r:տHBܿ|?n?RoW?d?&Nο`>b/?cHI}ƿm^+?ɠ%1?lbĿ@9O=̿ ޿$k?׿*\?iicacڿ R-#?;)?yc*?!չXU?] ſq9ăh տc^J?+c׹?QwO?ZpX3wt]ݿkH ?7p]ƿU8?ӱG\?iFпx8))˿J=?;=;:?8#j/$a~̿|~Q? Xտf7$?gQ' pC@MP?:ȿwDv ?~jy?쌴k迮%<ҿ)E4ÛH?н&!^?I]?|q&i=X?jt/ƿK~?$*?ʔݿъ4ɱՎZG?׼OZ?W ȴõ?XX?Ѽ m77ʿ 8ʿ~?_|O@?FY2AN?H%"1׿ LFaj$屢{s??y{0Dwӿ| ?eU'?A?,Fƿ} ?U˿q,K?}L??ӿ~/?%y qJNWJC s?\??Vt?[?ѿD!}f?.3@?^wֺ-FݿRŵeǎQ?3 ?|c4?qxt?s(?m?;ƿ(f?L?ۿHv*v'Z:ߔ;I 翷3^?J@0?ϑIy?[?ײٿ@LʿJʽJsB݋/? ڲ?off?#̪Ĝ?Eu?U(@Yqt*X g9xDX(ѿ|~͵?#ůJO^?7|п@tpb]⿴ra?Vu?܍?nқ?dZ)/пQ&[(M0?:̿ԌT?^Z`տy :ypB??xMh¿"'?Ed?C#ЫпP2r9uj?<۱5o3*?#]"{Y@$,7?)#?Ьd?Q iIƿ fƊ?ʿq@?(3D?^:Ĕ?0KÏqпϒ<`m@? oBM?&ؿ9y:}?c?ѿ ?T?#'iC ohSP42'?2C?%?>8?n8LbV^⶿}@ڿ򁞰IſI;?^#YʅAL5S?y1i036/E#Z?cw?(?iۿV- Zȿʼn:sev=?NuFCe?<>C?&!Ͽi2Ke?ވj;?_??r/qlZ ҿrOtտ|0 OM?(~A?G4>ެk@OfP?-}1?Y?U[⿴Rl?^hpԿe?=Tj?"ak8̿hIIXڱ濅9?ZLX!$?Ӆ3Ϳ[w_:?3=?kcV?ܠտߴ~W?f]|ֿ]?bN?%(96?R\UOݿ0*xx?U?xc4?Nٿ=ҿ[6l(ҿQ8޿J?ǿ͑?gElڿɍ .Y6"z?ش~Ŀ7,$kL?}]P?Y6 ⿻2,Ͽxo#?",G'{?_^P?^A6z?1Q־2Q?Sr¿T?x ?$ :տb?WSBm~ڿ*i%˿s?r g{t>(v?-5?PN<~Hqο? Dy?l↧wP/ ?c4^俬? IѿSnJ^`D8m?-蝷g?"GH?UÅHݩ¿Y6Zj6?H?J?C~I?[x %οa# RME! ?k1?Q,?STdV?E?3Bۿ֍A -bJ*n?&A7?hicl?mk,?VdC?WLw+Hӿu$P?M~? #G|2\ֿv)󿵑f>?kzտ~޿Z(?6A;翲(&qDXQ?"9 =l?Z|?0IzGпC`O.&z,׿zT(s?N4ο 1|vZLNpĄq?yv?]6 _˿.kbqY?p?u<ؿy?:V{Б`?uޥ7?-Iֿ4U ȿ"\.~!P9? }?lpV?skſe7ۓ3#KXV|?\ İ?41$?ۉ4 LL]?84\g?w7"+G?`Bis8a3?ʿc?5F; ?{#޿Fڠp?޿[BԿ"5?.r!#?kT?~Lb-,׿̔8OϰN~ '??ki]&{?J)@?^4vҿ.,wo?(|տn:5$п6j?@Gg?='h׷s?6Ͽ?ҟiʿb9׿8㦿|?- ѿm?z[߿NSAÿyr? ];? ]y+t/wIv!x?%W? q3H,ӿ|=? A6o?"į?_3vBǿ 3?<=kݿ\c`?$!鿽ܢ?*pǷƂ9@?hT?q#?r|??T𿲥?T?//K׿v<!p?y3j?ֿqm?FJv9ǿ0?_?,p?' [kjI9h"Z/ؓſiL? ơ?,\¿0 MK n-㿙G}1?WJ62~b?fĪ=ƿ8ɸ0T&?`y?xYyq?F􄙣?0·ĢIJPտ( @ۿyC10?Ic9ؿ`wg? 6dVڿ-~;#.͖?R⨿gT?B賹?`%wwM(?q)_¿+?u+q?d^ù?47PeͿ(< ݿ!(?"ߔ7i?)js׿+U?K,csNZksԿJvy?7w}? bm?z2܃[4i)?$|8ӿS?Im?}۲z`JWErƿz!޷?Pu+z\?܎J?N7&.KJ۱R}Y@Vɀ?P~ib?űB-{xD>o?U߱LKzO?ٶB9? ZXOY[˿DI,F&ٖx?xzͿdrx\?}]C^ _C?JL?S"?;X1a3?1H ſtO?1\"?i.ѿgF˿̶P_%w?1G:W(̿[W>E?]0"ӿP1: ds3??UQp?T ?^%=@ſHU?1C9?RfZp?TJ?2@ ſ`?=a{?K3: s5# y-¿2' ;P? g*w?@5^?%EܿXĿXʿ5n!v?FM]m?wſpd?7(M/ 0ϱdͿ%Ld_?(׽?,h?v{.l >ۿr0}?miyrY?+)qc@T?Pp0-߿ಣLƿW?;/Pj$ ?"&UBhSt?11?a U)?ΤAؿo݂⿇!:ѿI HCg^?ޓ?cI?7pſ~RB6{O?9x˿H]?܍G\H??:ɿp TÿPܿ!D/f.WT?>ƐTv̿v?;6wXei m?'m,8_?\ ?Ƨ?-G̿pW+пx!MٿJ?4r;}ǿYu?p‚$P`Bbum?Ül.1?C劋?1ӿc(J!ha0Wÿ'J ?sb,:*?"8(ȿm?z߿p?FUkaX%?޺?(^:>?FDɿ2/տzLڿCzbѿґ~?fOĿ嘷eP?Ę^ڿ>/ѕ饟~??chXSW?P ܿ/?(fG CkԖ?4y?gbϒJ.C޴ȿt,x?2eN?ILvVm":>?/rhn-@xŌ%)RaοU_q?Q,/ Eh]?3)F_3X? d~84sϗ?_?0{;nӿKTͳɿmRD(?Rtÿ0X՘?CIn{]n?3Ǹpt>]??@`߿YaOv?~rW.^5H ?\K7?N/L? ĿvMۿ Fӿ6Gp?8?J ƭ?Raҿ<׿0/ÿ ɷ?-BC?gcۿ\?Q9r*տ}xGR?<@?>O<ֿ?7 H#v{ATĿX?IR㿫?&^H?R)?E6׿s?R ? `1ѿ0^?qX:ٿ$ B俙-8?Ϳ]пlk?znJ?,lA} q:?w򿨨}T?|ۣ?b?JsE?Id1."hÿԿj?E<#?NV濃 ? ?ys¿w?}Ť?du3ۿrSο|)F(w2?o??H?d-ƿKŌa࿜L_?M@?LW?. Z?ۆd?n}?;`?ULǿhz3@?pƿD ?"li?]04Sտ^ae{̸wӿqx|?^T@?~ nYk?ۿ*0Q.˿7?mؙ?8BT|,&Ӵ?X?v"o4@?0xqF?|}?;Կbʬ63eпǖ[~E޿@ sO??r?/?lVϿ#P㿑NDEX&o 𙓿>B?>#B?IXm? ޘ}e,}@1ѿ4?:;ѿ`W? Τb?j?ޡ Ϳݺfw?X fL?A^= e?i>k"EќZ̟?.Nf:?O6_"?b^7ũÿrϿ_LտNV?x-N˿7@? ҿDu c??`/ҿd??_?ΥuEzt$ſ`ie?}ܧ3?X?(<_?G3/(( 꺿:\\AѿS!Ƒ?r?a PѿR ,p? :p$bF/N]? ~y?=V?l2ڿx!Y$,㿪'M(ҿ&88w?n \?$>0 'Sy꿨"u?PG?@T?2aq¿:+(Gx?D zS.ѿyKC?5#?hvr? d3*ܿ#|<&p/G{ 0?rZ?링vr?hQ˴=?Zp?<ѿ/?,{ɿr%G?B2T?WYiӿ6PaЀ=:ayk? |VA唧??{H͈?1nEqzM%?pJ>I_A?h8h?$PޘV¿JdqʿEa?X(пP9{?(nؿ@m+C:?/2L?{Gi?u#Bs׿:\пCo֕i?+!&0?_忼'Cwp?e?ay??zD ?v1Anοn‰|kY?"]5?Z$vտul#0̿?]u2ϲ?5|PϿCN2D?{ڿY4.d?lVx?ʣ܉?8T:9z,kh,rϿ1߿ſ _?jYG~bÿh;~?:&ݿ}@˴%ӿG?Ҩ֟?Gw?کH2@.1'w% ??vu?"^Ʒ]?^K?aMƹҿkWQA?iE?a1?)hy/?g<3>忽b #?Ԓɿx_?:eifLF?6 ~ ޿G?vMi鿛.Կ^>+?pt7?0?ɯzۿks ѿy7~ֿە͊eԽO? ҿ?8T!fB׈ ߿$q?ꏠ0T?STT?0C|ݍ3?̄տmJ?WX?\8މ俀Թ/]?.-Ai¿1? V?x.K?y%>L\ɿۄvǁͿ p?|g 4?$H?4R?Q8j?) xqyֿkR6z?| ?G`?]ud>܉?ϐֿ54??5d?Zr> Yǿs"{;i?1I4͂?BL^/?!w?|,*0ƥ?RlR\BؿΊ)??;A濾]tkj?;|.> =?+Q?"W?nǞcb[HvI?4?FS?=R %?Oş6ѿ&[Sƿ3f?Y,{_^?t3vݿ:?vb?~%?pBܿ%`GޣѿĭfɿՎw3ٵE?j轡?'2Y)?|<@rQֿя?"c?Gdd?Cfeؿkşn?ޅɿ$5?zEU?cBwݿypf7мKu-~??P?lsAF_?jܿ`?>Nz?n"#rC0O&LK6<7?^{{ 0?\5]A?ݳ?k zFY?!Xѿ9-)54?ٔ}?{9ʿLa5߿?gK4Z?`bzN~T yeԿ` nᶿ{_4b0Ϳ/?ISр+c(⿺S< ?rQJVm?z?JWؿ,7]}ȿՉ,f?f?uD?ܢ?|K 鿠uX?-!{ɿoIv?<?c^׿ |_I迟Q+x?B4 ?-u?{WΏ俤[l?;Dο@, ]?T?/~ۿZnC?J'3KrɿtS?7rW?MI;.ր?]=7P~ު?er8Ocs?W6?~A097{h.p+Ϳꬅz?Ҍ=?LH?̙뿛*V̿\fӿ^#,J? |-SοR?Q]D꿳a.w?t.mΪ?<'y?AA5ӿk:`1i/[ؿY\ÿoEI:?MտL 1?77vۿ=['?{e?/g٣?I4U Gؿ[Dfj yf}A;P[?5`?LJh?{D0O÷NiX?4n?kvOlƣJٿy?G݆9ο/hHtk?z??cLim:?տCid?}?:.5<?ΪCr8+$׿Nݵ5?>!?E˯|?HĿ @Br(RT೿˨ YRb?fƑ?x ?e88mH?N3俷=ӿFZٿz}c|ͿTb~?U'ѿjb?RFIa8Sql?rH??t`qQ'gA?5 ?l)ٹS: ~M2ڿX^*?]x}Es?Y_9iϿQ #ο?K?/Sg?;EH?JڛӿKg2?W hX ?Lś?Gпl^z%sj׿[ K Q??*8oށ?=P?SGĿN%;Ϳ/q̒?nJu?90?lѷ<9܇#?1VA?(ݿd?2K\ &ȿTOJ??ř? xEZ?RYzۿUXx jM}Ϳ 5?:?w6$szٶCҐ$醷kA.¿j:f?\0]0?]sZ.t>N?-#GfBѿ{~?>a?e *;?2l>?&Wӿр,H ?180ӿÞⵠ.F.?3k?I?E?0gտryyaj^ؿ+Up&?"{X?Gr^>?(ғn ſA.Rӿ7sDʿ)Əտ7Nks?:3ڱ8ZM?kAۿ~6FA修gMh?稽?TB. ? 5ƿH2§?bLVο1G%?d ӿC5?YKufixؿ3w)71?X ?/e?UfGۿ??܃׽˿-a? 4?~N!S݂ç?Tջƿ{H*ి_$~:+ٴv^C]J?kֿѿo'?8Aaݿ ѿڻ?ݨ<2?gk0@?ƶQڧcܿ4?ajKҿ{;a? Ga ?9aҿ?貿lk*,X)o:?(bK?c\s@&$+T?{$ ?jL QpB?ؔLB"6?jGMw;_=5`!:?F[uǿF7%?^#ŏ˛dѿ; nnr?2?1m_ 8?79޿bh!p?i,ֿfHӀ ?GP?v<{\% ?7Cm@5?qƴo?%dP?`ȊAPҿg>Cֿ@pd`ԥ?WMa?|?d?l!nֿS?8}p_3?Qe?&b@ӿc,Y./?\ѿ ׿sR?ִ-#V(4}?*e@?c3%޿pϛXSP@?&Nu?-Z)?aʞW*?{~$!5? AJmٿ=:g?sy?*$B⿰R[Gu25?G???r ?}?g_jq?p0dFl"?%?óLDӺF̿^B?^Q_뫿\;* LYy,fɻ$뤿c(I[\G?=^y "`96?r[+Ռ0EֿHұ;?.R7{? ε?nǿԇ6ÿՁ2ӿ^PWȶz?^w8boN?\N&L#Oտ4女n?Oe4Wڞ?ޠ|R?",Km?9Oȿppj?W7Îf?hl?I?;w;OĿA"=?TE)B?Ʀ?Z:KӿGH?VĿǢ?/"B?Կpc'?L4' %]z?f!$w?[?1qe| ?Kۿ?N׹#?^hĿ³CH|??+`m?ħ ?L?{T[٫*?`~:ȿ'5O?`ic5?4Y? ,Bпb5u8+?z&~9࿙C?ɉ+@꿾/u*?nנ?;/?lvȡ?5z YܿK(&l (ڿqsq?׉.ud?0E?Ή?Aп[οC/¿s{3 ѿV-@?,ĸJ1ϒz?ǀpɿ1܅y俼;į?ݡ5FE%?~9QM?HʿnBjTʿdZBE>?4T-ſ)?eˑп @ڕ?d>s05ϿNKпqϜD?yd¿x*.6?&e{@ſ I*ڿ苢?trҽ9? eR$M9?!p]Gܿ:Y?+3$Z'yÿ:I+?|[? X?%=Iؿ86c2fJſw?0<3?mBDpⵖ`S s?8Կ tI}?F ?曱X?VM?a~yI?H5׿Eʿ4‡ÿbad+?g<&?mGl?ε)V?97 Nؿy{Hcb?kj?Ҟ׿/qc?up7`L:??Ϳd3sMֿGf(?zd=&ݹ?MHgʿTֿ:m?8?+ʨ?deeYBrlC?2<)X?gj?-Ŷ?iaֲ_(]?s4?w~~DgVS=D%ٿNG1?cÿ*k?ov(_A~D!?{L\??lq=׿JLǿWfRL?F?ʲ׃?͜ʸ? ⿹Ԧ6?c¿u0?֎3.?hӿSz?m ֿk]tͿO?,Hyg?-ľ$?+y?6eӿ `QT׿!?̉H`?Qb?r\?fәWҿh}( HV?ÿYx?QD?DR?8iS?U׹?_jA<ſ4;^_㿬A_t?\Q@ڿ>Ee? ! -aEؿ*hxv?DmPx /?&?FjtCF,ۿP \?)T󽹿 ,G?T(1B*fbދ?IļUJ#H?lݒ&?׿6 lؿ>Ӽ{9?:uѿ]Ԩ?&ظjڿ4VNv[݉?t\)ɲ\?Ok ?i俕YmCÿW W`_?#\?^յ?:${ѿW7 dhL?"ిjv?o9@ݴ?#M߿l ɿvl?rCk`%?73~ T2Uqƣ?`Qg9?im?r&麌[?ʨ7ѿ|֯?RMv?p\˿O4\Ŀ`??ӉW̿p?BiwY^aye?>'n຿ e?K.C?Ue9 N߿69-fߛ@wX\7 ?<?U?uOxLG7sݿb>?ު?D:dX?+GA c?V̶VaE?ʗ;z? Կb$3RǛdrп:>ɿ3q?3UJn5o?_M?B@=H׿,;Y฿ "J l.[?0o{?G[%Κѿl„p%򿋮xv?3ϖ?=jN?ŧ"t4ʿrOh@?ㅈ?wbR鱿 )'?r<ؿp{JUeÿQ1B0z?|+"?C띍8?jT?ֿbhs?*h&pJA?n}?'݅?ZI?.4Aw?% տ%d?9=1?NLܿ3+` "=J?}gC9l?Ȇ L37ƿ$jyJV34?cBЦ(?ro?փƿP:ؿ}hۀiEͿ< 1?̿RW{":[)tɿ $CſX!?a.N]?$'sfVD?-i/Od|?N/j?1ӀοS/T޿?`ҵ%?ޣ?K[?;<ؿdS|q,ƿM4?s@?8vZQa4#H?ԗ տ(?"<ֿ_QQ Ҧ[?pʿV?a^y?b8~-xѿٿ3޿簽.?Oܧf&ڿtR? 6)9%5n%<.2?"u?]wk?Z տø67¡n#im0?#5{?.Wy?9rڿ52Y?`d̿@I?UCпNxVῡAeC?.;3`|?9Ix?YbtĿm-$%ֿXȹ8ܿy2?F?ۿu?*NS*-{I.52?8{d푥??# A٬\׿<ʚr]? x,uBҿf`c9? m(?wmx>!q?[O;hĿ@6?7BM*?,?vQ߿yH+Sʿwԅ]uÿd y?tґ4?~z \?CD"]޿< @6?X  P?r]l ?l#ѿ*%b?Z) .z׿*K^o.? ̺?* k-Lï?]~Pco/O߿[՗L?&g?wc? x/ߋ"F?Ję׿Z}?$RT ?1Ҏܿ$P?&m s4x#,CƿG[?M9`{?`ph zǿzɀ;Y?h?a1z? 5>ؿo^ϿMS-ƿoR 8?z3?$ZNK)ʿo2+3 ȿ}tR?(v-?>i?܋$0ׄ? eֺ/?zE?Wƿ)+Z[տM⿘`/?vZۿ?<TiY?Dy6z?Ե?vԶ?[t˿d뙌?vRĿ :?_@<& ??. XDUM?2?=` ܿ;+LŠϿ˜A dT_?LR`?ex?uǿډѼ喿\B7(?PL e.V?F#?X+d?~oA?5e5۬7?؀|}?-Hc?JJ?w.97e$-=?8^twM[?5:?]3,<᧺9mJѿ\w;?Q"gȿ/{\?m`~49Կ,чݿ?U2?o)?$b~(ǿb3IMF̿bh췝?{?1qbͿ0T0?.(b ҥX$ˢ?)p?n?##?0eQ+Y$?hhSewi\x?~ZTs ?@X?( ܌$8Կ( ֿB?Bp|߿l8$?gc)LP|z%?[4Ť?+T??z׌?ѓ%S`D?PǿT8JU)N ?G?-Oÿv42?c8?4Cp*C*aY\^ß JC?F?X7%;??4!& nѼ3PJ 䨿h[#J- ?@j?F ?݃>g{?]xB޿4^8/¿տTdʿv?R@ֿ Nu?G|0Ѣ￐D\{ \?)#m??$|"T?gt+߿2*zѬg޿ )z?3ڿgƿuia?q(";{̠Mv?i q ջ?u8 0ѿ\cr?4dͰ8P?#Q?_MY+οVN,XF:]οv8?d]F?<5fE?PĿdRƿ[{ÿ)ͭ?N?sX ҿ;?(jT4?Y?xܿ"4+`뿛\8?4$ko? |]?Q_4?FPqܬ?S˿v̨?)e+>?cۿŽӠ?^Ǹݿ(Rsȿ-=si?8?vZ$?4S?x"F翸 ?]𢪴&;BUfE?zw?q?ȺeFl9п((ZӿTۼ<$?n ƿlbv2?鿅 =gKeo$?a9 w?F;?z2Aݿt\_?``ӿ퀈?W?Hnt޿|d??aC^ӿ>)z?ǒ@?q?clA߿ a\] ?j ?IZB?3g?Œ7ۿ ٘n;Xq?OMs? ܿbء?4f<¿\?o ^? $Lڿ[ߤw6a濄^C? r]?c?`&K~?lu?&-NB\ʿbRL?{O?ȤW5ӿH8c?S޿ 8]${?ַn?0Ф?Tl{i߿Jy|ƿĜۿT: e?j?/n?0 tn/iտmTȿhQk?]k?.>?<?O)?^ày9-*?(%5 *!}$?όEkpȿz9H8eI?KT r?i&%e.gK& ?k<?ڰ:?)v;ſaǣU/?VJ/?3z* R?\a4;̿ݞ;?&{<׿!8FD?:ئ?U˸KH0E͏?Jr  ǿ*s?:?Epa?9KMS?ƒObٿ29BJ?v|&?#p\vN#P?.j!Wx̿8g+P?F֏]m?&`7a??"z ٿ*6;ֿC˼UWm¿BԿZ?$> ?q~}?T@~=Ŀ '#jf? Շ\Xy?g"03?.92ǿOEaU,տ+V?J.A5ֿ? Կӿ?ۯe?{¤/?+InҼ?`b̿c]?k-Q;N=?Q'￿d`nS?<}\˿V ٿ~F'5?Kûh6?s/)[οTпHЃL{Կ)\!?{5 տ;JZ?Y}3PsL{̫%? S@?2~&?rHXc? _6)?LeϿb(!?l[?}ƥe@ϿdVʿ~ͫo"?*wƿ d&?n bw 2m׿%sF?Ԅ.(?bG?!b՟修?L: ¿^zK?qb?2r̿uq8տVݿ%@`U?7*;>ֿAA#?2sF翬;Wrsw6?(?mq{?Iܿ3}?T$h?V?gd \0:??~K0v?`+*!4]7пLZ⿁F]/h?$h?e!M:i%gX ?0@q? UzD?@tωi8ֿY+b p?ײfl?K? b?d}9ٯYe1?O۫\׿ɴ88g?ޣ??dP`ss~8 (Y 0?:}p*?.x?o(b4?@}K0F ?↻ Ŀ44?Nsn?oR?HBYM?6+מPgѿ6?* ʿр?9?PfAݿ g*Sc?fWƴrqX?Ih?sLUК;?9Vئ?:t 85?JЃͿ@c#?N??,}=r ڿK!cW72+?d883?m?Gb?=qk߿ MmeK4A?ih?6C ?:R?2\?ി!Dֿ(+?&pjտ?;͛Dr迢ш? eɿ b?y=͚*?Tcȿ`fg|쬬?i?(`.?wyK?Nfk_?мſ*۫'??Eȿ%,HAQ#Է?V?6%֐?\kb"|?b7Ƨ 6 !?^"ҿZ z?y1ٿh_!c64^?"@%ӿ4s>!i?]i%pRKG{?$L俷ہI?Zw!;4Bl=?j!M?!]?@PfHǿ~/Rݿ'ѿ}տԗl~?4'W?wM2?0x:b.[>%TӿN٧ ƿLXI{[rrſi 5?XSi?H.?RTX?`p"&F5?.5`ƿ,[J??$#տ HwA 8?Su!? (x>?//[E??V Iؿ}/Txſ[7E6Ycd9+?HJѿ (r?" kп`?ܿܜ? (:{@? F?19Aٿ+=e웫?ѷxѿ56隚?̔q?\ bߥ,߽?OЂRt?ɪ(ݿ?7-ۿVlUT? s_?M?hS4пMՁֿTEM'οܠꉿR?QFwH?/D_+ÿ(?'Jy&ؿl ?R?I?q?߁Ҋh?ۄdƿG9Hs?M4?"Ѻ@r̿~t1q_ڿϞI*?ʿ2J9?CǿFUӿ1H;?:ܜ?Nܷ?,_t?,ȿ>^?V4 y?3)(SɿcS^qe?6 $Q?\X1?(@fݿv|?)CQ'QMļP?rT?T?^>15׿hH ]ȿGxg79?X- w?|1?X f'>m"L?`,2%Կ>"3?{ؿPG;첿9,7?@ ?^m?In)2׿N?tAi J?0hR?ZmQ?#fgǿ|PD?btD?|,ҿarg灴pu/}82MDr?yrFvZ?ɘ?iZy!3?c rǿYH?w?DDYI$$Y?mf$afXaο}??e6l?w4?7 H\$_6yOfٿJ% *z? i8߿:W?UocG近lr5?jzղ?n?D?Bftt`Eۿn}܄?8F&V?Qտ8/`? ƯfkܿU?|'st?*_s?Ƥ6ڿjMOFQOU|m"?q'?c1̧̿/?o*ϫܿTw?jzx??rS?߻JƿN'+A٢˿ 꾿zږ??0Hbj?Et^LǿHr˿S* ,-=*?YPˣβ?riȿ]d#;Һ?i1ˋÿi?WX?wc?BԯR?%ǿ{??eNmؿ79e?#bn9?tNw??>Hؿ`bb ?'ѿZupM?$:+C?&aN7ڿz?k8{ìҿg?erD?Ay H ?"v A(.gѩ?Vr?D 1Z?~=l?HeWֿڭ K4?~ $zۿ>-A?~Ŷ? p?1?LU19vֿЌ-տ)ŀҿcߴ$?ch?F#^?cٿ/ieҿ,~PĿ1=i?."U? z8Fe Կ?ad?/^f3i"?&V0m?)Wؿ+œῐ?X qu?7z^y?>?rȤ?abQ=k??3?h]螑"ՆkYl 3˿TLI? 򤷿?uB_4ȿ~nʿ5TTE?፫{Q0x#W?T+d̿[}O]?]AO?c o`F? i]FӀڿ@ƈyՆ?B?DAxn@~|Hۘ? Z d=H@бPKJH]P}P}2_cgau3_1000_coefs.npyNUMPYF{'descr': 'vD]HH=^[?'Eö?դ?Z,?W\1[ܿ|5?ԑ8wտ6 [d# 5?V i(2PǸg͚?Q0,I? 󋼗?NUw?mM?G<ܧUh ?:^ qރE]I ݿkF8󁿴N?K'|'oBJ?jK)50u?ٿecU?(%7ÿ#-Ϳ4>GqmRۿ↎S$?Z?3?i8HR? yGad \֒9g#2}p͵1[?C4`D8ffW? TE7MտxSi?A.:u?j 0?"Z­ؿVÄ^̿Lп%K] O?|m0/}35h? /޿P`ҿEڿz:d?̙yy̦?$2dֿBXɿ^*,}?az?r2#?ŚzPɿ9~lȿ,|0??jl]j4*?̬J4ڿuҿYk!?&ڳ?5,e2?Ɂ ?LY9 S?I3kꖬx?p4㿍bOk{J߿{?O[Gc?Ѐ[tt 'g3Ϳ[fѿ)B^H{s?(2Za?{(׿+O?^>{᱿7%?`<-fĿ/0N?-L0ӹ?;)ր#?cÔ,\ j?\҂`4?Ͽa0ݿPg鼿g`e)Cep?>D]p? lѿLQ?Kb? \RSd 3MM3ri;|޿j%\/?;[pп* ._j?bbUu?T{B0x?]q?ռ I?jĪ?~y?'!F?p??lQv~Y?a3vj(+O.i!뿏=?kt̿N4? HNߕ-?q8#?? d s?EF?=P17$;R?=S2pjͶ?{q*ſ$s|ӿ-_ֿ@e&2?ځcz?j"?w,re2Ƨ([_Pؖ;? s0X?AO?/TI~d ?㿫 $?&NF´.0O?*⿀q+N4ٿ`XOe1ko8̿H? Ƕjm?GwB $?%N?o`,_ ?yGsrQ^a?Uֿsm?!A?Xmv!Qe XX˿/69G?~ vOڿ/U?H_FbL\?٭ȿraq?z:X`??wk8:?ou!?C?+/eοf[g?ZS῝,c >NUҿ3!"ӿdWyi?Bmm /~Y?9εHM-^ѿj/l?$$}пqa?) %Ŀ:T*#_hH֓꿀ӿ,F򔴿Vvƌ$?mUzG|?DX?וP?@v0|?]?Y!FϿ ?v8g[SſS6EaC-ѿOSt?GȞ?7xW.N+1^H?-{P?ܢm5?^‚2?a/`Cm%9dԷ;?I! *;nԴ?rʽIsn?24d=?eT HÿY2 ?D"vb?v |[?p}~Ŀϥ?w$c꿟w?'{#? ~84Q?w&Dw僲? /7!ɿ~PqB?i߿5f' ݊ƿO>2-ƿV_m`z? oX}֑[_t?4?ޘIܿgUw^׹?Isƣʿ'TRײ?PE/?d 2F?9Vտz!f?z$e?\k??zLҿgzҴ?'!Vۤɿa^2?grq@*Ŀ|~"TF-ZͿÙ-?6hy?Zt0>?ȑh GyaJ7Z6%3?nof:?-?" m?v@n?; d-?1ϩ|"U2f?U0U?S2ҿ9潿&ItB(qcu?mnh?PbQ?σcR–*}fh?h*?/e?9"D[m~OϿ?Pҿ qTJƆ?M? \/?ZzX?x-lt|LCmXڿHsl^@c?-qzÿQq ?u¿Z"濬B`?6:ӿłr&D?B0P?-肵2޳H濊7ChSKNQɿNDRg|*?H@d\?&__?plN?C?u?H\gsԿfƮ?D1iῗ1:oX?0[濳ǬRſBbٿ#l}+?q0Øv?,Ш2Y?> W-p? )?Wf8Mc ĝ?Hfʿz?>'udc}Vԭ?DӖ?^?o7?C^4oaz8hO?u1db?mԳP dֿm뿖Mꣷ&ϐKc?*PvA߿+dAn4?һjz?3w?wFϏp&L?= W򿻧c]Q?ATȓ ޅ/ڿuB忻rM$*"*?~М? Y4X? ȿ1&Fc?&*"?j?Θҿ/?VR'pĿhv|DMi?(ld?'zt/1"5K,¿ɡNP? Ŀ`?(5CC? C)??@Fv?I:\ܿzjjQ3.?$z?3(4ҿ@ʿelC#UٿX3븿Gtu?JW&F?0U_ƿ$# |Kտe:\?If#<{??bg Q܆hWֿsy ;zd C?]?f"?L~/#,|Y}xɿF0rwJ,>oE?!~3E??VTc̟BHɿ俷p95?8"B?_?y uF7{FmC?##( ?rD&sx?A~ֶP?G˿R4!?^?G:??fc w?Bssnp3?,Nf0˵'[P@\#$꿕Q`I}ڿ#n2ƿe%?^v?d#M1?ɏ p 79?qLXgh?A*F_?a?J6׫ؿ9wLmp?T:F~ꑿ٭$xtV俚]q?7(!]ҿn?!&W %?x:0?5kGy?ЙJ?)ƴ u2KW#;=]0d8S1?h׿gI>b?\sE\?(L?)9HS?l?AؿRS?H?yGț?i֚%Dٿ.r?M^h\?b5Q?PAjeiԿo#,n1gd$kA ̵TvkK$5?2 P{bI\?^~ nLҿV?]сOʿ%hp?`N8ڿ\3.SJ8.ÿ̖l?m69?iQ8 ?l6?j,G?Cr){P|9?'u?6Um?l瓑?nẁ?jB箭?P~;Ӯ?_Կ wmPz?PA:)˿);n#?|8(TYh%?ͯ1?>ʿ:B[?!Ģ?Ԯ=y겭'&*ɿo7pUݫ?aƓ> ?rm ?9٭? j?{c8cT!ҿnH?ٌ;lJ]ƿ2 =?mb濧5 XӿaD?bq? 2c^N??xx?[u WI? 9~Bf ?8y@WiBP̿bп=5Ojf?$O1E!&?(łCx?pgw?4F¿$:?lnFǿusп! ⿚Hؿ9?>1[?vDxq?Gn V?/B+:ߘWȿjiѿ= ⿸m*?tי?=m?U\9Ͽ?"O7?+VTѿ4`k\_[壾߽w?4!??Z,?V?&,#ٿ9XdٿG#1?Y8\[!R?iN+mre?hW)͚?c4I?u{D9ӿ7? ܻ??dտH(1AKjN<:"?q9s:6I2|?+A1>ؿj.^? ߵ?iql#?iS?Vpքɿt-s5Ϭ?Q 9 ,Կm׿|#R?$ы?˜T\ҿC[ǿ[d?exH?`7n6? ,~ſ~dž-¿v2KB?ħƅ?Ӂ??Y@ʿafY?B0%|ֿ@ 9Vձ?G@qUǗܣBi:l03X dʴ.O^=?O}?wpeǿ[?)\?DjUj?^:?] _#琿v~,\*?Y?n?¿ZX!UP˿$_VtFVh?^Lq?I+?ɓf=ѿJy[v):U!-j?N_?,8?}WS@+?M>)a[_x.{?*ea翺i?}SX?T9`0ʿ2m6ƿ~9ͨ`,yG_a?pgNι?⨯(?e~-ܿSt8Vv?;'?,?Ξ$ZF? F"}`ǿ, ՝?,(vQڿ t ? :9ֿLs2 OqQ? #= > YUszͿ{^Y?~??JhY78?;ȿ)f="տ2¿F?3G KJ ?.6 ?k*嗿 ,? 7dێq{?YZ7*At{w*?ɴp˿_{L?gwCf)83H??^G? %I?${ &LH&?ۑ=J^a? ?+ſw ??uR<#P<Ȉݿ{#1[տG?odN$7?~ ?P?k?Vbzۿ4J?t؜3ID!?ʅ?\fgdȿ MHǻ4,W?&!doء 4i/'ֿ?7?1X_4C*?*_@?zj0?;FR/?Tꔫ@\?"c还98?ֹ?v?P4v׿u`l?; [+p?zn?O$c?m՚~?H+"h%?3$|}s?.c?PY?9k%-X2= J@۝ο/΂"m? 1Fo?{zG?63?UÑ?FR@;(@De,?K_0e0?~r?eJտ!濰yY-??,a?6 3߿,rin?ɬ4?AQ&@?ě(? );ڿi~Kd?;7"j?@ |d?tM$¿y3e27UHۿ;cND?J~?bMl0׿74Q+Oȿ~tZ?;̵~zv?$u"(?-pR`?V˾? <<?yR0ֿH?$7?ο4vɜȿ#Z?-?!G,/辿ӊ1g&D{¿YpH̿q0xX?FEHY?q?ӿ}=L*)`4*eZ/Y?+|߶?Tt` ?Y?l(,#RF?o\'2ח0?*6-?y11TȿYӿw >aٿ)h ?JR?gL8#?ds~ ?Yfux?"1y!οfcj?_)NܿoXe)jgf,?04¬aZw+`Zӿ^.ZŃ?&Ͽq ?4*?$?(m{?ƫ@]5Ɂo8??Ϫ?l3bˣſuAϿH%٪߿vU ?!z?vHFHr룿~vɿBzpd?τ'¿?薬ץq?t?,Z^F?絢6]t_)K]y?YN˿L[6?n`P௿I!?nFoJ?,4`3Z W3?>w?6(ѻEKT¿Ob¿x`Uǿ,Q?;~to?0q? j-{б?X7Z֦? ZO^ ¿.ud?{8iJa]ȿնy񿨣u?hΓ?%sB& ? ?BJ;7,?J@.Զ˿c k׿9? G%??m?m-7.?Z^ggߗYv8cTV?}%t¿ް?l9MۿǪDv}uֿE pȿ*ZX1?ܿlxlF?p\'̰?KOՑ?'[?sHF?E?l{u?;zE [I(?DO1ÿjѸ?ZS00 ?x~`i$?'gK?ڠʿ{?o~򿑅X4k%cԛҿ*吁?Rɵk?J:[Qhi4z ͸?RlmV2?7/Y?M=?@%琿DW ?R(?:?w5tJ2[E)V?zz?a{U?" d<޿u)?n{_%%kL?'TM6@ӿćW?ߙ˿3>̜?$9,eh?l!?Zb?s>?5OZ B[?sH^55x?e4{Y2ÿBglտ+okп*BQ׿ܮqX(4oo ?ߐ Y?t?NN?0Dr?]친?5?V߾?V$7^˘R?Y5L?o1Ϳ0$տ_m"?VZyٽ??mQ?t7 ÿl] ^wn?ً/A?ko'?`h7S?iK;*{ÿ33+z3aR<?׃Wkٳ+9D39?^Iտ 3$?#e?;{?YA?׿1+?ۡ3JKҿ`!%b? 4q:?׀P0=7P߿ Y 捭jqIƿF챖?Ŀhvӿ_?,W?2W?<1fvG.?0آ췺? p y_Wd?(,뜿YjVFsٿ%Y',LO?\ /]Kfe?/ؿIоr¿6nn?;8? pܔ?52ظ?3e4|?J@ǫ.?ZG|GCRgE?3?Ρ?..ڳ?XM?⡄?<Ͽvj:Y?bgۿ I?&k?ΣƢC? h:~i:z#s-aؿog!)d7Ub YG?hU9Uz%|?<4@X)Ͽ0CAĿ"i հ?\?U^?O?|?6y?ԕTGٿr3?@׿^hPVERп%ômҿ~?͚?t E?3 rn࿴ <"?L?jȩ$E?6%=S?'P%? ߵ?%a?@:ybS?<>r߿l(tȿW+ÿ["1?ѹ8ն?3{?4B'g?b{7?\#;1pƿOdХ m8=I0?^zĿ(>?'7t.?'"dw?o?t?攔%ῨH ]q'? 4?E/%|ވj̿_ٿ<:݄U?ٱ仿hԿԞ?P>qAD?o{`WֆH?kવ?"FH?g3?&?ҿ8?o꿎us}?@ѿy-Oƿ?S?tI;Uͽ?\?ĩn?x,ÿ| ?bV_޿[wf?z̿uB]ƾ濪;n?(3$^NR?S5,:pܿ6?,e?Cl?Py`DU¿SܿLzW?q?8\%M?ʼnQKppF?8B_>0(ǡVƿdKۿc!zr?a˷{[Ջ_?lȋݿw?߿Q?fpw? `^b?Qb5п JÿMlsI'?x 0?'`VeJcͿÿ-k4?U)QCdſ=?'XE?|п9g|׿ ]`.1?HiܿP8T?O?@?1_A??Fh)$_N?Aܿ F?YNI?>EWonXL 6 ޿cX?_/޿i=">M?\rս૿+h!ÿQs UaRf=8d&Bz?Oڿg?gH+늵??u-k?'%Xf@wӖ>?r9?`4?2,ܘ"׈ Կ>JR?z/NGǸw?ԫ,⿍P-+C/!?9¿}?@BFC凪?Ze?lQ?K됓?(ʿИxA֯?jBڿ닟H2?{Ҭ6 p?%aDY⿄ml;Cҿ*}hϿl?¬M83<U? 0a?6!˛?>VTP? BUw?@%*?ES=D?Ŀҿ;@ΎYY\1&?֨I?BP?钮,ʿ?4/?f?/&+?63Qܿ(c?}y濗:ɿhԒt?f ȿf/P?mٙ⿰Y0?Λp^?1?B/?kj&uo 7?Ӌ@:? ? :?j hwɿÿy-ſ{_lOh.U$?O=?@i@?~3Kпk#f0ڿ벌KIR\ h?J?-?Vd\1?h< ?e?f^N?`&?B]*?:u2ſn彿*>ISo+2\?ߛ?,|?NJ?K<6 ?#`t@տ[Q7?Ʊ]BDҿJE.ڿ(п4:E?RUQ$ۚ?e]@nc;k#5? 2hs̛8=ڿ&Wÿ'P?OĢ(g|~ ~?PEzwbl?H7p?:eտ^x?{HCȿ1?ڦ?Կ@- ;2t ƾ|vg? .`If-@0:|d? '÷?SYt!?AiH? տt4?H'+= ?OU*K?惬?IU#¿ZDc{YX=ֆ|?^-ؿV +?Ncr ?lUv?rm$[ѿgh;?{\Ĕb=?"G޿VSD=&^'ٿ[H?ĿX?/6;?0?lpܔ]?e]8?n4 !\$c;?:5?.LsT?궸{?y?—{ h?zes U?&R1Vڙ? lM>nlϿ}]L忐PI? W%X?=&F? a Ῐ^W?G{?Nl?yiH?ɣhYmy?|?ΝL4%+?vV(xV¶?rd_߿̿iqEfr,J\?T]̾ ?9*v\!}I??6?QK+i;?ur ?qm?>xD?L 3磓?*@V?#pB͊?]%?I:ٮ _AK/ֿW*tտZu??>oP7ؿ\Rtbǿ$տK]^H~X?٣u?Fp~?FDǿ@S?T#AZ?k#0QUȿ5ǂ3?_H0ӿm!u?~O ]?&OԿ!7w?:eʢo׿, ?@H8?rf)? w? ?̆(}P?^0/ fڴZl?ek f?ҿgLYϧ0XZSu,L?xr?;ο 9f?`?&'?>.ok?gVْ~Kieui tc9x?oqV~?H̕L18Sqɿ'tnp?drHԿvAVɿɆϰ-I (F^?v>?| ?M$(a?Nti𿊩ʓ?ԍZ7%TG?NO?WłdϿ#?0b# ߿:ov?H?yR(?{?󓝁H+?uzo޿[$g"{?QSi? ߿x{sFAJ?>G"m?MEy??8Cٲ<κ? ?r ⿓'.n*f_x f:28n?[3p@?z҄T?2?i?%\ D*?aZ?7?@ 8?'.ҕ?*(ѿ%A=2SFM6翑PI?xT ?`]?/z_ͫ(<5( /"?].N4mzj?t"*|P?B>y?QuBsݿָgIi?ܿ厤'?HM=ƿ|E+ǿP4+ʿ+ ݿ |$8?c%?2?؝]\? :b׿#ű?֊x) %$?tnnO˿aS?JX+I5&?G( +}?:D3?}۷?c6?%X;?L&ٿ5iOKw?׻GL俿I-?;>ÿDw3C-pC2ӿ2{4 c2?@Y!&μ?i"ѿj#?&ܒ*(?5=+?@3[?QS)ٿ68VO5!!nwmg?YAs,?l[?:fYRȿmgڿՔ |ĿQ=yۢ!ӿҫ3ZX? :a[r?">z??\|Jɿ'] ڿ 1x13?ڣ祻9q(?]5j?xջ/j?N*#١N*W?e3?\u K?XTx?' )벿1/S?~;j@7S?.yܛ[?@ ,dP?DId;ډP߿'syt.~߿ OŰ'o!?d#Pu T*?[V?GHV[?R?%d96?4A濎 m#?MB?\1\ ѿ7K獟ؿ߿߂?hLb?e[?ܮ5dŐDOR;mLqL ȿoGO?Kc.R\?ASOĽ@$4>('忩/㴩?^!?x[<%?&_o?M?HVX1E?tׇTyM7ڿHDvI@?]2W ?cah׿Ԟh靿H `?QI?&0k?-|Օ~{q`z-&)}jؿ8^컿2?"?M1kҶf?{nx=rп0?mѠ?[oSD?I^LٿpMlG賿~ rito"?hai?[3Oа?NRҒ;ԿF$L p̹GO.c25鿎{iO$?@FZ?ȼ?V[Կl̉scDZ?BT ?o$Rj?#t&?](Ow? H?5-ο^(D7?jt߿?x?M տB)9|V !8XNz?agӿ}-|"⿌ sOsҿ_zf?> O(?&$.࿧)49?HHq¿Q?H?:i?:"ڮ?,^4ƿ{o?)Fם#iik@¿'hP%W([ؐ[\ڿerr09? ÿdmaaE?]LߌԿè޿yͯcFE?[K˿0U3?i޿e% [ĿЖy(.ΐʳ?b^?; 뼿ǦC?',:ŧ ?J?Qj+?Nt}Y?4ɴ'SLv? ^vп W? ߿8[aÿ1Jvr֒cݲ?f$?$?/Mf>QkX3ӿ XQoÿ)^h[?9>\|N%? w?lu]?.u;Y?{Wȏ?*LRQfٿDcA?%$?V&/uOvݿvCb忰#iuԽ"gSw?S~8j f?鿊<\?P47]?wU?DvfFպB?;Td?Z~.Ҭ);| 违M/LDžT@݃ABiQ?i@x׿},4xq^l?GUw?/?$ ΐ?:r8˿txq-Tvÿ`ɶĿ:x:??S/VM'?&A 7? {gt?j,t?T&Ư?Nf߿Ĺ?r-1.`Կ;@J?N{娄K0 ?5LsPпX@^"?+ ?2c<ÿ~2h?9]ʳ^'?;~ ? S1?Iә$?.?x>2?8L=ѿlJN?Sg<濕rW? 3\b(p࿶ݴտ0!'x:?4=?a% egO2пD ߿BWBm?Rcp˿|[?SWy?rѵ?೥>{ۿ.] I?kcmy?tG?`Gx?o<#俏uSM˷е|ܿT@wDli?^7j &L?xa!hǿUtuM?~ͯ﷿Q""F?j7Z?a*{ƹ'?co#?)cf/ɀ?ƨH~D43?-9ܓ 4Ѵ?G"UCTjb?j^˿.?3. rQ?*?XUC޲? jN2ῌN ¿ ?ʘZ7ӿ`u ?8?pII?.t&?cE}ꅖ?@пbo)Vh?o4?Ŧ?F>N쿌jH?n:}>ԻŐ#} Կ6J诳F?FQq[ M6?RgP=ӿX4 ]G= .wSοl9?牛Ԑ?9;̿ 4Wǿ;1~?xKEZ?Tϣ? Ǫ)X?W(ĩQF?ǑZ׿4{)_?’>iԿxj維h4]KпŅ?^пlq? ~FfL) ?d?tlп]%⼌?+{Cҿ耞倥?a ÿGXW𡻿kxɿVFԿ6?l՗?`23?֠bſ4пɇߩ?V?KvJ?q?YY%F?n(-_+A?a s9?>c?6ؒE?*a15+0? v~N1mm?[Ed?5nCf?RQ>CWzP|.C?1-S쿰S6N?|eeaN?K[[?r:,T\w?NR?fhx}"e?i>I7GɿE0 xL2@Կڠ2?@%:Y?۬,(|pӁH?e?F?>VG60?I]H?neFֆ `!-?Gg~ֿ տE,?y,"]޿o5'?6 >#s@?r3"&\?F퇪,?t˙v?ZW:?-1ӿUyʹ ?a?NG?"f2}?/gdTX?p!r6% d?<e??D~?0 D῿X\N?DDi gY?P ϿX Y̿RL/ؿVkJb.A?0?,U?:5f\ܿn!і?1܇??W?"?y7ϿSY*?b쿊7b-Կ19ǿXژ?ot700GG??@T?{vnМۿxmA?o4鿒$Y?Z=)ؿiɍom=D\Ivt?ǿ^jf?5"ivs3p? G?҄?Vil?Hb8}X?Y&EY򿐺ԃ@?M_?4(L/`\1wqAؿi:ʿŰœ?[#7%?\??h8z?s?Zb^?b|#z?T}?ԿhzYlr$x῿OVt?N ?$X+?tL,g ԿW!yt"U+s,n?Ųh) !_?xiב?C?mN?r"gWN?T8_vN?Ƭ9?k\_0ԿJ!?Nr?!Mg?q` pޣT?1L5ؿn$?ʎJ"P#HӿH64Ԇ$R-僌? c'?z0?KHп6BhS?2q(öc>$??xe/?Y7gӿ/Ps?ҿՍ"?@ 6?3C?Go?7U/8v5 CS+j5?nהL?~Y}68tU%d׿R(r#7Ϥu$?a)Ŀpb4޿B&ٿ@i.tſɫ{ h?9oUV?"-12Z|+d?x ?v4ɿ6{lY?U%࿺@?~jQ~ ̄#hN̿*v]зeֿ'5'?S#8'2A?+̮s]翶g q?Ƀ);?Bֿ|lñ?^`k)ƿ)G?ẅr?,cN?:py?I^AՌo?Ht (ft3] Z?qߧ~׿M2O?8܆~FS?fWnq?~|g?tقH7?"sO5g1?.u*A?>U?T^tBÿb4Ik#ѿ>P;Kȼ?XFb0ſk@p;տ)V\0<?0ںN?iCӿ"?%h.??us4E-8He$tU?嶄? a8??7͸?6G~C%̿HTy?P1FQc+VVlķ|ƿrR?ۆacVe|0?`w?SWۿg˿S:*?/Ul?J6R?kDO?X(]ʿ|&=C?) ̿Xe)ޠ?`jѿbu`ֿxn톆Q덯s¿5?3 ݿX ?\vH?z$?ze?ֶ4㿒_P;?U$ * ^ ?0:!=׬1]?Xъg0 M?})lW2PX{?F%鼿̝@?[?w:#?pm׫?- f?ONU?iGv2 )dGJ|? :X?ߖ>ܱ!OwrrO2[*鿪gŐ\Ԩ?`׉يOM%?GQ?My?A1?\1(,@ +M?7mՑ?kO2;?0ۨ?o帯xkN.(Ŀ|1ǣ(%i忦%סN`?"~52?Vc?TSÿ9>o`?(tAV'8?t"czУlT? MϿ'þJC?=Ht%?Z;evϵ?kxKZ?ڼ|cR[ݿlO2?ē0?M?謾tΫ?MnǸ7uQĿ9E=?TϺ?R2?濟 s~?]տ X?s/C׿|A1ֿJͿ?2Avx ?c=jz W?6^+?ּ#J?\gTw?^E?+˓%?c U?<}Yܬ?&?T@3O7t-_ ?L~~ۣYpȿfg.KSszO?`%Sz?>??nl?|̬{bA?R$Ͽυ0asӿ .RS`'?Sd o?=>S?i ~ҿM@οtX!?,Kg5: ?}Ǧܿ7Qy>Pӿo'?¿C=-?h뿅6"s?Np-?zKX?&?TڿOVIȶ?am1!T?T`B!>4aG8HS6L ?<9܅+y.R?Ru?Sc??fN?'e܌?ϱƿ:?w.Gi-,?Sy T?Qu&3ݿE9GT࿨Cֿ!ƳϜ 9?dB$G@?dVϛrʒ1?G?~ οaze? tf3)?m4˯տ!!Bc5-2hk=ԿxԑQ/ſ]k?NjC8?L+?4?N0-?91ݿn Q/?V[S%?.v `x?vL cU@ȿiĐĿ=s@?_a߿Z$?*!*?rKм?˨k?aa:TG&c?eah?$?Dܘ?s?~?uZ%Wx?xi$BU/?x<՚?/~t9ʿ/ *AXceB'r槿ƪm??cv00Eɠȳ˷?Bx)EϿw?S$?wdL?,P?Dw ſIֹS?ڀCDr?Xk ?PWL3'.?Q'u?{鿈zzȿ6QugJm5?td2I?iFƆmȿF3"㿫aG'Z?K fٿx ܘ?#"r)˿ b_WÆ׿ԝ;;??8Qg?a׭~=ۿ̲ݿoDe ?yy?Vq %ſoA?N^Ŀln?$@Kcq?9*>?r2c?8@.p?ob C'Iřsa"㿀,? R&ȿڦ |r/3@?fG#Ր"?:mƛhwd?Oy?%7y??Nn??{[C<~?xh4 ɿ[.wҿ["F@?Rcj^? ?U.`?T-S!1οisxd M?ՙT˨ Hp?Veʿ2^JԲ?!L&|?e?Q~Qo?{32?ᦡnۿkV61?d%꿖!׮9a.߿R?Mjh4?mѿK K Ό?ZL5o?$Jαa?0k츇?º0?\l"?Կ"/'mI?fyl5?2]꿒]ڨƿ_ D?8 ſ .C?ADW7!~$MYJ?b%?F c??(?Nn89?C:+Ŧ%VƿS)˿{HP{ǐ5?^0hşku?[6@8ҿӿߑؔ?cӍ?Q;7?6j޿ƿע}濺^rz ?Jꣶk?y"?7VѿJڂɿSR濳bBo?ְ;7ܹƿsrWǿE?t#gFT&l?'WϿ 6ႝ? ?1?W}.Tnz?;a-? `^Y?yql~?F4ޏ?2m? ?_e_mg? p0H?8KӏDKp꿠U3\O4?_\a¿W?wb?w*ܶͿc",?7l?e١?#տ@k@ U٘@>pb>S#'e˿=пĭd?8qZ<Ԧ?-??E?APƙ ֿ{+D?,%?ЎXB2H4"οp}տ;L~??dٿ~V}?58-e?J}?ZCx+F?.Ͽzx?+56?*t,p~8U. \LgſH;T{_??[hѿnR,ڿPKJH)4>>1_cgau2_1000_coefs.npyNUMPYF{'descr': 'xWǿa.]? ʄۿA޸!Կ=\?!߻?L<I?a*?B'Կ?&.ccc?֏jfwۿA{x3Fֿ4Mѿ7?4?r@D,?nT(?|V߿נ5ƿ`Q?Z~b/`tF>؆iz?$GǿpPh뿨Jݗſ7'?=YTIt?=?nX㿶=7J?,М~K?K^w`iD?ذ?a)ҿ(࿸5?Zǟ?@ЩH?bBĿW?N5x?/*т?p?x/gҿH(?Q' _? -޿9uio?6H?Hܢޠ" n&f"?5￀pЕ?O^5H?XdI\~j&VViZ?wwπt:5A#\>= ?NV~2xʿAش,?Zk*Ͽ!翈)`?JB?-RؿFS??5>ޚKݿ>շ?|+?<ٿqMȁݳ'ܰڦ)_ƿt:c?DXǿlOd雎? ?Hcװ|nrS?, kwc?2$?p|݌ʰ炟пwd=?_˿k\cÃu?kտI~zliD5e?F_D !տ=?O3.?lG8"N1%=ܱvN9=?R6x2U9Կ*@8?!?>D}>俱,N?U>$d?X,L|?Ƽ ׿8w¿yt?<N[˿ɺI^P=?OV `?6DmݿyƱ?k?1h`\n?%!iv?Aj߽wރ߿"+?e?gx2T~_??;˿ǃ?h忕lE?˝vѿ#/֎n ?G#?5i?i/Rѿ=N3 ?PCԘޭ?\-ڿ"uL3?TĿV )?J0G?W߿){{ۿj?>AɝݿZfo b+ؿ3?DG5E㧐0?-p*?jAeޯ?b@6a;"? '?;A-_ؿQ$ O?u[?пc?,ÿz0k?Oܿ͟5 "ǣH?Z,~R"u?tGS?t9uY?ʀ L?Zb1d?v5¿п!^0^CT@?ċ.?0*?D?*gH`f*tҏ- S?z (\(Oe?^":_vſ?ՅI?^m޿hW&B߿4?uU$?"O=7w7?^2·z?-5?z3w_пooʿ7~"?Td<#Կ=ቼ?Doi?l bų?@J9\ %!?1? dJ? &v V&ܿD`?**?m <J^q?i?=-B;txοmDG/noWpѿb-b?UzhƿCnNڿrk?@yſ^\Q$Vkq]?& (? YAɿ^(!?0z?Hw]ԿpM`̿ S?al Ŝֿ[X$?t|? ΅Y?! ~%`2?TKB?Z9DDrp=-?5y?@Qq?sq?A/Zͥ`Ͽ ?* &߿vǿ7?N(_?䷷0h=ʤ?؈^?iPL/>r?}v$濭2!q?Rh[?Y~Hlcx ? Q?$-d濥W9j?zUӲ? +2?aw5GE0U?X|? s?B4$/׿kH#?I?Q;Կ/Yi?q -d?KO2߿㮤0?ƺ?C:oڿB:?S(1GwImӿKISV?0п!ǕRmd?Laf?@10п;Y?7QI俔EK5e-h ?:n@N?:94M̿z,.㿟_V?k~?dZ?"%h̿}a"NA?6Yb?$]Kz^E<?ۨ?D[ѿ(1?|ng?]^Q])K߿Y?0ӿ :.dR=?ӿ%#п͈?aU1翆C e?]4 YԿLyG=?oV&?FTxM(h?qRгݪ?tX˕p8d¿] iq?p$ ֿ#H Կ䧮?ο# ((?3]k*"տ6{Y?L;n2쿎P.Մ??7ӿЏ?f/@?86ԿGqOeο@,ugFD[?:4qҿ̗_[?HW?:?Ʋw?[X7ۿxk?Z%$?0/P/ar6?Z?_QKEsa?eVVܿ0fqˤ?*$w౿zn?.)"ѿ'l?4^ȓ?kɿM? #?ؚc:5ȿ%?l ڜNy\q?Mf8?zDU翶 *?at ?pG|E-bG8Sѿ/}Y|?&BP.:?DM?hm0 ׿z?Ų? S*l8&?lY#}ǿp8W@?s?v14߿ȏ\~Ir\c?vǡտ"g ?>rM?]?n0.e!'^zf?ZQdV' h?mf;?'\[ؿ퍱.?.Փ?QU?5.?ݭѓῼ#?Tb'ӿwni/R׿r? Hnǿ\;w̌B?Zy ?>((ֿRlK3C?NE:Կ? KP?68k/Ͽ/G`?sn(t?[sBֿ]C4ſDj?˓(r?rq5迀}!ǿ*+rp?ZaYYqnp 6?@?5{ù__?0g@U̿ H?Aܿf?}W?NL$߿-FE?I\?3Yw3]6?KO`{?Gz`BsտT}Oӿ|ȿP<? (aKiLڿ#e?m2?"zqǿ}wä?6J? K࿮ ܖ7)?P"y?nG~op?ɮ?|9jۿ`3jǿt2?XJ县B>ݭ?}/{6#?bL׿ 4=$;6X?U#Կj#Ky_.??Dlac)濔A?ʎ?nOYaeR?_C3J+Fd?Ն,@?,fFlٿsn=.?M%п"?T#?Н4t?]2N̔ @k-?[3W5!Ϳt?BuԿnԿv^?G?wA{E't܆%o,?עiǿώ…Կ`D-?oXn,?DZ?KJ?s޿Fbg:ٿdKL?U^?)TFzH?o?]S„翶 Z&2@Ck?jbٿ$7?%?vGO?)σ–ľ\ݿsk?ˈaUG߿ۖk?":1?\ֿ2ZϿFs𿿰Ί3?(:;n?)KJտP%w?-f/?!\ɿ(^pKW?M5c?nRFԿ8Ӊ4?Bb?YֿVD 4?>Q+ۿcʿw?ַp[Cֿ|Ă?p߱?F] ǿNl{1?؋˿-Ꮩȿ`ތ^?pԹW&ӿx~?_?82ɿӈMVr_ҿF?D4hȿ/tYҿ kqۈ?'?y?Ri5ʿk޿W?%ߣ?m!6?u Op?ƭؿO%Qw˿@t/zy?+v)~Ngs?HdԖĿ"Ak7t?ǀڲ?U +J4?B,տv,?:D'[r'?FpzO .?fQ?C|q6=?cnʾѿ[z*h?vt?%&?%b{?6"Iϕ?,sv?ך nG}3h??6X.?pV&:g]{ῷ2"?ZJl?M Tjd?|ߧ*?//n޿ȧK@?s>|?q?6`6;L+?G!?䳄?$ZK+GO5r,?2e?eѿBٸ?n slMʿ-?F?vʿ׾W]?PZ4?`ڿ?TD ?K$@;U]aۖÿe[2TX?9ٿbN V3K??`LP(ֿh4ɬ?3?5I̚gYLO ?Ym(cۿ!'t&f翨z;6?F"?Ҩ~?"}s1_ѿR?z@J ߿L "iӿ,u?^ C߿V#[?3A0?;4?|9?<^k[I述'Bי?_"Nؿ26p$h ?gB rS¿"ɿ%?PLc?%ֿݚ_9c濔P?}: ?jt]]?M? ]z׿4X? ƿ:LxG?v-InX ƿǔ?jLo_\׿@/n?%Eza?ƅӿuh8bjw\?|??J<;4B?$v?|YlEp}?,Ŭ<8@ͅO4?H< h0r?50?"q޿8^y?w?my0 !?k,a?ڄK[,8?/*۩ǿIڿ`?S ʿckyCRt?'bֿ@J߿aHS.?nXе ?7Cj)Ƴ?~+]U? ?E6-9W-?2OԿL[8y]?nܲ?a4]@ ']!?&)?nA^3ƿLJNѿ  ?<<%&x!X>b?g0?~0׿>Y?aB?ZVuy7u)T?<:kB? z*迣E|Wەn?W<㧿"Gh_鿬[x??1 E,Ͽ*c !VY ?=Y?\kԠ?w1rx·<ꊿR;wd?*RX42ֿ±iX?\,IX`]ڿ* ? 5z? Ij<,(4?<=Gyڿ6T=x=?B飮-޿3YL4t?z,Sֿ֬ܿgVx?ܾ ?|)sڿ<?T?O?CSSqS?\|?:jh[=boۿ;?6ÿ?UFk?ilKBֿ>$?5X[P%ҿ|,o?ݩT?^5("?qJ׿+|g˿S?]c'˿6/3ؙ4ߎ?e)?\G2lwοbK3ݿ85a?YPY<[?6(\pbii?`>?;ڿҿX"l"?Q?4zDh,ѿsYqؿ?PǿpfEs?տD@ֿFmL?B:տ{y?U~y??ԮV&?z}@F|D*˿ho?\!޿w.пr? 0iſ}ν?#۲?@`Sb>1zCj=?9^#?98?R]Cj?kɤ#? ScaY@?^^p῝X;ͺv?ȥ_j?!?ذ )ͿA? )Q?cmݿPW .?sd?{uLq5SX?Qh?68ҿ|?! ֿM,툿]?n0q?ڿ!]?FR1?y7#p_ҿZmW?5?P#QhŴ?nvfZ@?@MweǿtH|?/Ưf(EnO?r? 1ƿ&a쿴SX1?S/x?RRR˖ə mx"?ܿ[N?P׿ٿe5}?EʱjfY#?)C߹?:ɪlֿݜ?3g?c+S?7? ܃8ῑ"7ƿo\ֿ{[7? ?ߎz[y?xcv?zٿm` >:n6WNؿ?(:2?FLE_3Y?j5?àQ?n7?R[@;߿ִǸ?.\IٿPɿE?RπkݿN8 ?/P? [ῐ͒)?3 Z+"lX4E?J&X蒓LJ?gnj$?6=˿8D )?s Wyڿ݂㞸a4E&m_ȶR]%Z.逿BC4?'#!Zڿ]?)%B?#Zjl -Կ7ێ?"Mп(7_ٿA?W/7?5Ͻ͠Bֿ(PfV?T2? /\yޙ? O/qq?e4A ׷翧`gsJ?(>$}?dx4y_}nҿlW{?ٴ?kпߌ²TQпƛwD,t? I?lVտN ?1?#fѿ`AC-?{;a 9@00Yf?tMK "U?`}'xØ?(R'Ŀ2rò?.^n4? ?D?!ƿNKA?$޿0,?*Hw)j?* 5s4ƿ.}?Ѯ)ؿp4*?_%?sÿop[;? <*?\c߿~aٿ'yV?0W&dXܿ4dTط?os/kɿE?{ͿM|sԞ?X%(L?`!"켿X/4ɿ*ѿƈu?xcſ}ۿޑs?op"@8h#ݿZ#I.?ũ `O̿sFp4A'??gaܿ38E}ݿ <Wf'^?X^;9ɿDԿ*z-M?,^ǖ=k>?_=Y?,п9I¿x*e?d6Ϳ0Lۿ8$h{?F}r?-%' ?!q^?=??n޻?*FO߿bYͿ@cyiӿ;*?LE ֿAmCAпx/?ARտoхi?PNb? kտ*t]a?X֭9ܿ!R (|\LY /Nma?b~|_ۿkn'?+?n3 ?l ^,lo̿ƒ-н?:nտV,3%޿GP?x`C8u?{~ YE?nwOÿ&xV빿`>B:?%8@.b?NF 0ȿ߂(oR?5LֿoKiٿl:P?e ?ſ_/0ܿƑV?#g;qѿxWLLL6?>6?S?!]k/]h?df~$?o1DտY?#ĿN["kN?hg[x'!*:ѿ_Iw?PNǡ? e-)l!-t?D}?տ 0oe?|riӿsfٻ? `^w>ܿ7XJ'?Z]ÿs?͢)Կvk1T$8?恼EٿZߣ9ȿ?kCrɿ0% ?^]!v. ADڿ>gٕ?:gߝZc:l?UږܿI`D? ?J#q<竿Ap&Ͽ^>?$SWx?BĿp 򑮿B ۿ@wd?ˑG<ƿ*U⿣'+?ŝgؿ ÿv( ??b濤a/k 쿬+?caZ?VE3@?y~AE-ʫt%Mؿ=?[ t?˅ZkJ迲@.H?i?,@F㿰-ѿ؞?O}^^=G? -(?A`RSz%? }pa/J?ÇS$?6'5Cӿi@Ah=?[/ ? 8Dr;C`?8MfN`DЬOm?5 WF,?R'c,տ-_ ]&ͿE>4?ʮ2鶿1?GǙ?VZ'D3Ϳ)F?LΔÿ=0?ؿ>cM[?&O_(?=Ær)۱ؿ-?H [?cmw?B%+?O濊h?`?L tc ?} ' C?wN ӿ &?^p?.HA ѿQZnj?F2v䋸$ތٿz=K?Ӹl?9_zg!?Һ@?* hϿ߷S?Բ iؿ"Y_ ?}?)KʿMb?8[v?95t$g?XjBtXiΚ!9 Y? Vпٿd?:=?<ӱ6B3?A.Vѿk0??ÓDKX0R 2?!F濾 ,?ԦN})E/k?WK/ޮbտ@B￈?U?.(?ѿ@(Iݓ "?kZٿ%π@ #?{q?HwpU X7?߯`v@?g)쿶Қ?o!_=?ެ 74.?u?n ̿Eg?1\z,? ?ȦK|35?HW%? ۶ـn3 rѿL>?ѿ"?~\|?=^5C\e?(K T4?xqW9俌(J?Gnz^?l ,&ک?dO?h<rNeuW ֿK>?@[puhпwk?<70ۿ D?P?ޛ@ZK8*?{UX@ܓ咒T\/;ܿZ?B'o|?.~? ZѿD6MӿnE?r7̜l"￶ܓof ?RQCVUNżw\Ţ>?Hg?2&n eE?-Mӛ?m3m?A@UG?ٍ0?7ٿSz׿׫vw,?R?lR ?z?恚4s?&Cןt*ͭK?K3R?D V7T?'N?Xѻۿ߮˟ȿr%ȿ9EID<ٿr?]"?|‘x?+ؿ1(MI1$?p0Jտ|7VH?)?uhvHſe= ?n$no߿ǖ*As?,#J?"FIP Rq?"%?˓]]?~]?WL3򿥁Ў?$忓$FſGC?N?sǦʞ7 '@?ރ?b&(prT޿D oʿy/пyѿD:M?s&6߀@TK濢b?M˗V?k0,"࿥-~n?,fE?7Ʋx?nݎ?>q9;?a1I׿s?!¿#Nb%??cӿrf\ݿWr-?ȹ77?ӜK?b3ҿ+?ý?m;AIѿwX`(ަ?~K?ѷZi׿)}?'ۛ?PӿI8ÿQ!ԿsmL?9?ngW翼F?>. ?(]޿ @?󏷳,5? R׿@߅x ?ۊ𛝦afKӿA<j?֬(y2uGYϿPKJH01_gaus6_1001_coefs.npyNUMPYF{'descr': '?/]?0IwLk(G?H1?&;M:6G?~w?CHqs?zr75Qw:?nlQ?8p1'?P <˝eRxׅ?` ]?)-ɭ县U^8?4?cӴ2~Թd-Uj?[qͨ?"~ǒ@䑩xG5c?b镔?<TS?<,?To#68rNa?8RgZ?=u ' T?%Hs]AX?tཪLF?þk?+/ɐ d?UY<9?+I/=MYqA?!?NdѠM&T?CA,?{iRVUZ"1ԃho|?z,6X?\0SVOg_L2]?88k?Baųٖ[73KΣݧ?}10??ι+i{?GubֽuRt?vv|?A?AܝPӾ4% vlyf]dצ?M?:9 ޜ?d ;>? h?ϖ;?{ᡠ{Ei?vYB]@r?J é?5I0 ߝ? 䕑~Tȩ{ S闿]R#?'?22ePOJ=c?&͉W? O+|"QԂ!?G;7TnF<3P?+O?\,A1_N0Cmr!?ٻ9?Jqr_W5:rCp3JGKi9?TC*?EԪt;r)?\.=w?<ǔ`?M06?aťs^$[I|`Da?bk?]Eֳ0c th?wdߵ?ҡ/2ܐ?̨ϡ?/ۑݯ+ru^០0*c?#"b*Qπ?-d ?C7Ț.0e(hZF?QzcY ?[HE?/{?iX8][!o?f]|Pm?l,?o[!bD*.9҉D&c_ɱ?6qM|^>Ǯ)?􄕥]Ǚ[IR?D_Mis!QkǤ( '.1B?|8,ȏ?Ԑ'8˛6;Q49΄ئfҔD?MZj#dԴ?ef?`!gҷ: C6?;?NrZ|?fO?pXi)bPR?ұw?|oSÊjw 9nuOh熹?t$ C&:7k!-Ix??npVvt?9=烃?{j98 ?=AT?+E7T.5x??wj* s< ?aW>q)˞0Yk?FH!?7pàa?rw?ԍ `x[tДv?Yw ר.,?RQ.?YAȕV:lD\j?PP8 S+ ??i L? x?U qz>TD6d,YX?sc8?Ȭa|hhVԆ?9}?$}6_*vx]M_V|?Xv w,݋~Co?^=['oe3?zkA2$?EFs)n+UW?\m V'?Jl/ړ?X5| oeg3juО?iY?8i꡿vbX?? ?Jիa;Ј?a%h?ep$t??腿'-4{r?-=l?>rM?5oPTG-?>GW?,|zpg濪~?,r=|0W($,L(?8-??8L,=J-G-?+U%U?*Uٸ?rrEVrw_=cK?]ҳR?Q~=vbϓA?PN '#S?d|?Ԉ#%^3[vל?yEh{PskpL0?v/p,mV֐`?@g3?Ќ4lsd7_)w=?ϬC-#&ڠ~?&S"] ϛP=?ҕd٢?P2k%X.Δ<fן?†YNWE$X?EØS+IqM$?U?Ԥ12 (-C?*nV; cz>?xd{䡿Xeo? ? %[_nYE?j? D+朿vʶ?/rYտ-2\jn?\]ư?dKJds?ns nZ Xe?jy\胿 z.)d_-?&x?L5~ g֩UҴ?0mbіY?m{?iY?+`Gԃ1?zc?_ɤ*zIT{Hvܒğ?F*?J&ǩ:3ܞQ<=1* S[?p( Rv퉥*? 'u?J>?2,}3.'oS??I7?0~{6F?f񄿾M t@[k[A)c?X;g?q1X߭CsLF>ҕƔ?Bhxŭs1@qҪk?"Jk5ڳ?Zc?pIjbT??8?^XmB,p C&?rscK?p0rVώ2yor?FIq?ah~]Qѻjz`???fb?(PT6s?TѕJ?m@O&6dS|HrmV?k?&g%ڸt??YI'>?/?P<.?BR*U_WOxa善? uUb?p [?t.<:6˄dJp,f?v?pб !r<٫?c4VS?7Y`'餴NA/9?_?28¹\}6ZzOţ?|H` ?pcq?c,V{$hq?Vkg]?b?A) ?G>eF?4wLK?^%Ȉ?GDH~܁?ɶ%c?3a ??Q0iɧ?BX?FN BtT!b?Im4?aS3.cC1?+ zi?n B.umӖw?hr`~?/a?J]'ag9,ཿM^yh*|?^?qJ2P]GNtڇ?4Y2h`댧?6yQ˜?<wƺP?rDVn?P6)c.ʢot\y֛v\?Lz?'vz|"W-0R*!<+?Aͼܵ?/4bSҧ*wUߖ*?cѰ@ ?X^?PBCZoAq]AW??}(ݣnpF?hS4e2g?`vk9R!eb)?pd"?Fm0@)eۊ' 韗SW?_?iRxmΥ 0Rէ?<F`%?odP,ǃqŢx?ܶ>?42Pm暯?KSojh]| IE]?P7&[|^ Kᦿ@x4[\?0?m|L?xĭ?䜮(㭕N@?2`%d?8eX&Uj?R%?|8ն┿J/Qk<2܅&Af3? ڰ?.Fo5jjqZpXm?4KUV~?K dW?gn H`E|ത?r?2dwڡ p㙿@\﷓?,ሓ3?U&pѓ?\ǝ C5Q?0 wS7 d?@qrC ?T.3](5sX?)&?2k,w%?̬ z+YG6O?PQ􍣿g[KҵABn?TŖE?0$ɻ?˾I?`ڧAh>1_cgau5_1000_coefs.npyNUMPYF{'descr': '$? U?{?ķ,'EN6MOQ~/j2'[HĿXo?z?w}ǺJ ׹}^ꣿP+H^?B(Dڰ\l/?*Fx]?^Kx?ie`l4аVzY5?mث`?:<Ŀs+ӕ? nl:Z{̿>3w??fk"~?fJ?z!>/7g*տ?p?/lY ٿ~Zpsd꪿s_?X H?:~?7?Bd?}iXfο 9}T] ?\ W?Nt&o? j`տ`pſ1Y :?"Ǝe?>Yb%W%6[m?t*0>?˴Wo9p :TZib?GDȿyyDgzڭ?<>?F?aD ?5+ :bj?舎?ay?(Ԓ-Eʹ?"/8?gTGz?,+ƿRwb?-)?_D&ڒ)ӿڐ󐿐B"?i87'?)B?]Z}ogeؿ 1򙿝s> L?.1W?V'ヽ ? iD?̏Yko?/?xѾj?Ì˿3ǿBٿ i)?$??:K?j]Y̿r''ܺp¿Fd5ʪ?^}B?ɭʞf#ܿnߋcj?$(X]Z?n0vƗaFMԿH#'9r|Y*ơl ? ?N?CLkyo ÿs..Ք¿%ݸ?MK?ج[Uv}sLPʠdQZ?'HI14~?[sڿ=͵y(?0]{ڙ?(F?W6i|@?e)?zҿ3i仿M%?࿉:F? U?hv謹 q9>;`ɞTƿOXr?x9Hث=??E?ހ?Ql1A?6{p8&E)AῚJ{Ī?H?.I1ߟ?@ݿx3F,MjR?4'T$|?sǿDed]dſBw?aJ?O(?AB?^Q9NZ̿Y\'Ɯ?`C@ u?:{k=@翀őG.?".M@?xV+,?Mv%Ŀ =fYֿ8?B^=?P&vi)(տI;5¿~Q5뾿‘Gg&?tz?IF4d?a2ͤ?c_EÖ?wRYs?խ.¿~v 㿠"~u_ ah?>ҹ?a?axa^r#NhCn>?z M?:٬qn ֿt<`.?Knj{?:1}?BƪE"@5[?jV?9?$ۿ_C ÿZ钤?p_K?4?6AUŘ1A3ZX?-$>Б?C8!?`j.(? ۬2;4ĿlJa\pҿJ?? ?5Թ?h.xƿ)%4|?'%|]?̍dG?֣^,id*k?ͶY?Nؿs+`?2+b?G(P[( B6K?ze߳?ljPN? N|aÿD/cb缰?\dG? M A?2Yy'&B?\Y P?pRcVf=zʿBqFÿ?G3_O?k?l ?V%ǿuq?D?(v?ي-t^0A!\?TP/?p{Aڴ:.?AQՠ? h?d{ſtj؍Tט7?0.?Qˡ'ꯣ?tļܿ0O<[9K?@?Fo?ؓ0KՋ?o9҉r_Y"x?~̂Ҵǎݿ7ReD?0&#?j}?*x"Ŀm>nMp 5i?"ISUοlq߶=?q-?ч?'Cm )ĿzK8 swɿ7/V?9mǯ?c!&1?V*G?؄ƿz68d1?e)*-?Mjjx` TV?Eif?3)P?(⚦p@Z?ݱU?zHJ2IuUHш?/FLemӿ=R?ȁl?qzpxVĿ99LIj?p?HhLΎ?8v t? _Qlθ:+&ԿEUtr?2]?нPnfؿ!5fp ?‡ b\b):?܋{`?>BZغZndu9?3ť? j`?ܫ]Eyп,ӠӪ.ſa7?? ;S"D˾_? #?wvWɿ>lIeӿFwR?% (q?<%x+-:W4I.b!?#?W2 H}zH!?'x*?s"?l0ЄƇԔd? K5bN|տ+q9=?0p F?r'e"|TiLe%?} ??؁eſ,u\>ÿ.Z@K̿d2.&.?i,?jp ?4?*AܻLJI6%?! .?(Eeڝ d#U?l?)U~ҿm?dYHi}?ЃsijyY%a˿ko8^H?wP Їg?忌@ ?aT,?,)@x?|q t0z:ZT?/p,r;ץ֫%?oD?DS-NwE Y_G+ҿZyk?{YLI?D7Ю?⚽T\3\ ®?M0,^ѿeGq?C?\zGqtk*UMQTʿ+0E^?ꨎ'4?ZI=ȿ(J]DHs32ytU?\ ?)?F}ӎϿtZ4DQtr^ C|?FNJ?`.GͱOÿj?ܿOe?;\8?p?.#œ׿}g:8794J?K?3)hM?MZ??uIY覿QI H¿9)H ݿ)bln?lW?6?:Ut?d Ж,Nɿ. n>f䩦 PnJ?Wko?`N?"?HuYKy?*z46?Py z#ӿŌi"2?v? ꁸ?/Nq*?gBu YTο9 *?W?a~aϏv;ҿ DEv&7?$a?Eޥ?t,(,A!)js^>6qѿxG??U݈?@)v -ݿ Z#B?AF\~;뿢Mn?J n? 5E?>&ۿ4)@+\?XN& cۿk?E,X?HuPD?Lά8k$:s6f?-LmC?=b% u&뿾zRѣr'W?2.AwC#]ÀHP?]?DTz?"dRz_ѿRֿǗO?G4E?WPc>~Ȣ D?Llti񿥿ջc'J??D?4W:N$W\S(p}i]sԿf_?67B?5Q VX2o`2Re?Do?p㿅8@?WEI?EM Ldzxpfy,P?V(q#׿O@?ؔ$b"?ܽ"D~?8J?qEoJ8Pyv&?]e?{?yz74޿x"n(ɒ hʵ0?ݧ]?ۜ?zӠ1X9p3|빡2ĿGG?vhI?[FSc?xllަu4诿f?U?W/lb?4?S¿稯s*?I I$Ev?f\m7¿uɿSuN׼ꢤؿ]Ӗ?V)?М5ɲ?(sC1пic.t?yK` Zؿ8>IS3?íV?o*#Xt6uC,.ſ\a?RX?85Wj<Ѕ[ӿf %ÿTäJ߿ ?=?G쓿J$?>¿7?=Tҷ?ptF?y?_xݭUZԿcIp?b(A?#_O%?i71/4ÿ L¿j\Oֿ_wd?֘o?s(&?%F^$?/ ſ̸ԗ,!)? v%Dǩ?^f8ٿ:Ft ?4ўf?LäK(x$ |"ڿ~?^j?Vs4\e<8D? B5?w?bk'Z}?)dtοs4Mp+?N}?4lH8?0;v*Hڿ +? y?2q?k¿Ƕf qH?Qx?&?JGo[Ϳ[nǿ jۿkFfƿ?'&WL?;?кпh]6(Ü?#k?FS[?Da?`\"ֿ6f?P휇G?`?egFx?+!̿:>@|Q?8?vɘ?+?jLRV֗gx%ȿ$%h㿫L ?ql?49c?ORտV70بo8?:mVAֿ?DB ١?%_6]vF?,u7ri ?Y X?OKmN ΜIȿ־p @?,m}O?cҠ4iVW||?[;?'߈ɤQ}kYʿypRg?8bac?}MH56D,b2Dۮ?;a?=?,IRԿr@ 丷?*F?X Ҥ?OX2?{r_ͱ/pz\׿q79n?#ՅH?4xUҼ?&g?qM(¿^pĵp?\p?OrT% ڕHF(a?j}?-yE$P%G+?x6?Qp?x4g⬻g rcT??v]?˙SJſ5w¿: }KGֿ^7q?faz? R??W[%P?.Uڔrk׿y pYJb?:[P?A^T&۲ʥrupM*Z?G\?g 9?4g.ds?VR5g?i,?/οTWaYc@?b8?:c@?ZWgbQܿaT_`7?GFRh($ᶿ{=]ޒn0Jw~(?ԡ~24-jd"?#4?xv@[?JbS?7hÿTۿ]:_ ʭ?Gpa3?J۫?}2?-ZW[޿/C2?<L(? !`?zt?:?,-h‡?G?r@^B]e0⿘#X?b7 \]?C?,bCҿƍy4?;(̻3?@4E4?N̘j gҿ2VCet9?uKz?vU?kPL򙰰?-QuZ↵:d?vO?"/]h&2ijɸ%¿H1/? ?W2cϿ0'͋q?1uT?6I8Ыhڿ1)ſʃtE ??j"mp_BBQ2|P/?Rdv; +k,qW^%?0cS?pڿ7%yݘYۇ ?ɰĽ?W穱|Lp4Z BAZ>Z7?Z3y2m׿Ps`?0Jp ?gK?0ßoLp %NJpf6Z?|?(˿(>9~_?@n+@? 5Z }9?ōQq?2DϮ{?6u2?ľ_jfG Ͽն!p?\Sĥ?mFVΝĻ:{ֿ#-̼U;"7?th?ddS\ؿH uh?:f?#Rc.Eֿ1 ͿAhֿ\f[Nۻ? |t?ݔn?}n_?!/ſJն4 g2hTPaճ? KF?x?Gl17tӣʮp?䈱 嫿LBTi?0)2?j[̠\b6}ta?{T? EݿXYށSþiϖ?/ |?8?((Xo? ÿezJи?d/sz{6ѿ?6}'? T|?+ Կ*wc2兿W$?D򝲌ſa+}Y i6"?l;?닢U~V|MHF:?$5 ?LAp?Q|J#\ÿ@??Y2Ƕ?6ЖſUk(h,?C?57=bӿTW4bg?A?R\*Ϳā%ٿ[T :?"_{?Oa?J+׏u?k֑*PlؿyR&(t?01Ƿ?T :4?Ĥ蹿EJ!ֿCe=-)7?Կ|sg[Q?.?}⮿Wbm[9cMп-ۄ7޿?[O?t{f+ρQ xZ+?B?| ѩxkڑ/?ͯA5uzԿ*S0,X\bDԭ?zA?ۿù?r4%ѿs&tPsk?<-9?@R嶿׃S,{vn@?Մ4?$j{k?[Ĉ%PzWȜ,?Bd]??l,<7?*Th[ʿ\ƿk տ?FcVȀ?x 1?9l⧴ݿ̫bC]?e˜G???Zy¿vݿk@]j*?!cڢe䉐]<_3?`٠?F8T?k(xh¿uFs?l%?E۠U?[Pȿ%Jy?T" ?"⪦\LQJi"sAc?*~#?~e?˫lixǿ~;x ?wml? '?Sފ$˿`# yN?Nbu?i w*Ϩ?x磛[wV j|dU?KTߩ?NEE&n?m}ߨ?5SſGP:?1Py?C Ɔ?핛Ͽڨ?)G?oNe{[1ſj㚳(X?ճz(3?H|89?Ъ_0,? d7ǿ7't?>?l/ r#^yd~iI?, K?uRV0ibĿ5*R?ET?` -̿`?(%?{M61пェhȿ\!,ߤ?3?><;AOxm1 D?6?vǿ`ws/9:.x?muf;O&{?T?2t?HdH T^Jl3? ?2+G]?YaOP+>SR?8r?&+?~歿_˓0տw(E9Z?JZ ?*BV?uNV`y/X { Č,?osnaeXտΎ3?R ?9u?}uVʿ<<.l}ƴG_Ԃ ?- ̷?0pp(w?Ɂj Mo?ؼU_ÿM?¾Ѐ[?4hqI᡿{hȈ??[0pSؿ )Z/>n?*Ps?1Ƴ?2} 俼3_Y?j%;?@: (O0"y^$R? ֚ ?ji1y?%zg'^B׿~gPaN?:R߫?N;2?Vr2}ZX7ûZ?0"i?0?U~?0ĝѿľuAMBZT? ^? q?y&􊹿y53b?V/?oU<%׷CcP=?p^Psh¿_dq?.@}IM?n)?"rU/Oҿk+SEV?3־__s3ֿXU(?4Q?Gc!`Ǖ?zD9ϿGqw aӫ?^I?`,H?A03?Ivu;rֿ5?bD+?h~?tL2XԿxa{@?pſԶg?Д?q0w9kٿ^>ʭ7?/_ﻺ?.O|?D9@:&N["q?UHv?J;Znu?>'j?Y~݃RbԿ@D@?{A"?!OJh?C>l@e?j֩?ް„h:w7&LD4ϛW?~?W?r+ܿ]/MW$V ω?\Q?[¿t7}3m4p ?/]@;?2*Wt?5JVɿ5@#Yg??H濶7>&AsYP?qH?Yտ3t"?~O N?ʟ?WNÿ\7gR?d*BῷOe??Yg?0??Z+Ϳ'(6??ep3Ӓl3?W☿Ly?pQ?^[Bnu ¿s)17?11Rx?v⿗&1?,7? f-A(}̙}rc?Mr?6)|\)ȥK=V&aL 2]?A[K?:=S;Ws Ar$vȨC??\GBȿ4Yd,Pp{nq˿򒎝.v?NL&?as?iI¿ kĿSyTͿ[ ?,v?,L3d?a|U?UZ쩿ơgQۿ{ ?wjc2z?ՔE~ ge?Қ?hV?]bؿ+n*rֹjt?l?i?%mF;Կ{b^>p9?9?X?uy=nnpN߿}d[7?@?#ӂ.!DBSHYHl{~?^ ?Ծ^{?;Es?0b2? Wo'#MݿW逿j4?W3U`@z\!j?vDf?Heo,?G7f?^6Z >C e쿴uHZmN ?wF?%@~?`Fs_BLk^sP@ ?>꽿~̊ "?Fu?kc͐?b'?0S'o:Z?rjo,yL$ ,߿(b?t%X? ]?A6οPJq.5p\#? y5WzΡEÞ:~bpr~ ?ÿh56?3]Qu?ZNr)ȣ?Fƙ ÿh(?Oެ? _q?yƗP*BGEHY0a B?&`ૹ0Ea?&__?Ʋ9ܙm׿U$pƿ2g4rƿ˟@DZ?&BQ?HrϑڎXp/@?E}9?SFՅ 񿮸S(*@̀?ǃ? CrGȿO׿rٸ?7,??7>[?*RNdAxtI C)ƽ?o܈?z@ѿݣx0?moG?P/(䨿YűN) V d?3u?+,mg׿n?ÇQ?N}<o y]ؿXZPKJHa;P@P@ cgau8_psi.npyNUMPYF{'descr': 'r&%w,r7t~>xxa5v3/z$xbxڠ2q|bzgG,o~fX}BEXNȧd! u=7|PHF7փ['TD$*O cVQ]9&ɭ^ \.} fc]u@=Gx+VjFp!0g葾kyzڎxvLX9d&( F#?Ngͤ[+[hwP^8zC&D߳1qvbNYםׅ&G847>wN_C0X #!/čKL8Ť#Cf:߽D"$)1朾fp]sxQ}w_(Εܠ]{iG^Ѱڐr)ƶaA2QO h:ڹp=6Td"Eat cn[hLcѸtWy^1ʺƶPW7p%缾,:nX͈,S[i;5谍]¾^þ2\ꬰ,ľwU,dƾ0l6H/LȾRo{lʾ@l̾|T:ﰾf'ξ+$N)|H$0о9Gŝ__Ѿd_걾ҾqI $H'Ӿ}RiMfپjվu|fco־kbRc_{ؾQiOJM JhKھҩźF!ܾy!;i& t޾zNwG2>"VJ>$Ά-=\!*X⾀G͔)MN7Xh)j?aG^,75i7y CM(sј,j_Nhw®*`w,g3{Hl>\1:o";N>PL@piIo>d)*TX$>C ovLb\ $> %l˻>ZS&O>;U>c>ifK/cF>p5U(Fd>֤CLQ}l|>N^>,G>5@`v%]W>6nTZ[r>2[GG[>@a @1q->& C[>.SzԺ>bq9nz}N> M'USLFő> eN">6 S2"^Z զ{>; emnHf>R $>~w>Yv104%>1}8Xp"Wc>j6\)"s >)IB3v9?B&z?bJ La*a7O?tG?e5*?)+)?k+J''= ?8*I" ?75€҄?g68F;?E$7 ]a?~{ É?2{H5=ŃqZ?K?KH(Ðs۴?, 9X?K5/0!k7z??!V$?`c$m"t[ ?ë6Z #3B!?t5#t"?rRP$Iw$?~ $8\%?x%"%r%&?r1&vJ(?f&4݉Z)?}i' /a+?/(XRkJ-?] (+ /?YgQ|$) ؊X0?T#)Tc41?V](xV0*7Tj2?L?*hW3? 1b+W4?7}Y}+؝16?Tz+ ^TX7?"4N<3,bXf?C8?Ψfu, :?i,k{;?!/,ţ?o,Y<ɐo@?a5,@?,ZkA?ƌ('@,wL*uZXS?k? {5 T?3$$ ?m3)f3T?5 ?q}U?{"?N7V?h|(?; V?Jm-?F W?׻1?G kX?J_ W4?\'Y?cAk^8?[Y?3;?dLZ?A~??SyqMT[?/[A?7 \?+]D?@\?ZF?%j]?iسH?,)^? ]DuGK?ul^?M?)2T_?Ǐ]P?0/F_?EXQ?}c<`?Ow]S? z~`?{\T?|_`?rZV?_=I `?S$hX?ysز$a?s;Z?pM1Na?`L'"\?93pa?es^?u$a?Ox|[`?5<䦜a?%a?5]=̕a?#@b?97a?t }cc?,̔a?;#d?ZZ{a?Ce?{t=Ua?*#g? R`"a?>[.Qh?1q`?m,7@i? `? oj?%.Q/`?.`l?ONR{_?/m?]t^?ֳa>o?'G]?}%[p?[?gf+q?BrowZ?Yfv(q?솬X?_[/r?2t_V?I ms?*T?887t?|R?\Fu?+R\WP?,!u?&LItK?uRv?똻 E?72}kw?- ~h??Du^8x?jM2?kRy?$'~?RYy?-%Cz?No:7HD^{?<E2z* |? Nj;|?^_4ATe%W}??2G!QYI~?k^7^~?+ "boț?IeD?r3/h_|b?0[nkU?jn/ ?.q?.)sʞI?vh?Ot\q?Fމv]̊? %y&eɂ?H)^&{p?Q2]}68F?>tZ±?ž? )7W?&v_-S?j|(і?ӏ> +l$Ҁ?9bV{?"۵~?j9% <?V2򏋿*4,~?[R i|?-Geuy{?mᵞcи!z?DZ0{x?+v[.C`v?9=8Agt?ϼ_Czr?9~a/Ο?}mt1J"E 85p,昿D5'Ta~r\qbYA9Mh5jF(皿O[L[q4g*`u)raJq{zq姙Y@63L6'pJP3 ل.w"Di]3ZC%7Zslu㞿uiS[b570v81wdo87LXl,ӹ^X[ҩR=͟Y֋gʟYk*cX/ za"awt}L 2Z:Нôg$@dGč*ǠEL }+8\>GO ?}X㑿pȍIW?0p2? KBPzF4?vxrAz+? X/kv?kʏ?\l?ӘP?@P?$^?j2/?DN?@ㅠ?7'ׇ%?̬3?<[Z?tt ?zh?ʮT{ث? m?0 ˯?u??I,?<J?Q#? ?m"?} %?O 觧?<]NXF??P2&vl?/eQ?0P5?PcU?TU #.a?S q?s*@w?j?TZ?WV?ֶs?g?TY? >?KP`?۸n?Cin?v?K?v/#?y^U?Q??';?x6?U2c?E_8C?Y+?LCc?u?HZe?X?K.I?@ ?#?.SvX?Dո?[]C?ER?KT(ayk?k]6EGm?%? A-?2'?L ?瞁aY?"j=R?U?҇[͖]?u`}?̂Ʉk#?8bjR*?Gn.顿ֱH?}ߓ]?86;Yh?1 69i? ia? P@`?N&i$L?mfVrN&-?ЍȠA?9r¿_6?͢GĿȝ?bƿZnA,??ү!ǿ ?Wv,ɿov?? ~˿8:G?3jmͿ?W&?uޢQ9Ͽp+?=+пK,"?.f_ѿG?cb;ҿǼJ?0ӿCg;?UDcڿws?t`ڿƻ*͕{?_,1ۿ3DZۿ1pr%ΛPۿЗ'woܿ3hS<$*ܿ`Է|MDܿM n,Eiy4Oܿ1bItIܿv$ĿI6 4ܿRUzѼƿܿfzɿ,gۿNU8̿n;U0ۿ11 ;LοG'8ۿ\п/[1ڿJƝ1ҿ{P Uڿ>|(1ӿFJ6:ٿW@ԿTIU&,ٿ#ȯD*ֿ6}ؿ2ޖkVr׿\Uy׿1iؿFMֿ B ٿi6 ֿ uۿ|iNIտ9+EܿqWԿܭi bݿxӿoխs޿v ѿ^y߿ȵп(Kf8֨ο ZR"!nU# R̿P*rMɿTɤtƿExgYuÿ)zH6⿴wRˠ̃+=韻!`ljM;0xx!ѫnĞn3MPuy|]tZmZxW5Iw㿝H/?nڈx8,g?DAN.?@zh7?ʡٷL v?g㿁dP2?WCH?ٻJ㿲}&L? 7⿀}?roH⿛ߩ,?p8SC ji?\1῟m@?GRUtU?ū ;? ﴐ࿕I1?XZ:=?s޿h?xĦݿ [N?gܿ 0?A4ۿA@ϣӖ?ӑrٿՁuqC?D?Pؿkwi?عxֿȊ*?5uԿuo?* ӿ ua?1|Uѿ')$?A,QϿyRۚ?٫jC˿oA?+,kǿnTh?QD|ÿþ?,T ?˵ҶdH?"s9{?ndИ̠?Zف? ގT?.r?2RCb?DwRSA?:|(1ӿFJ6:?JƝ1ҿ{P U?\п/[1?11 ;LοG'8?NU8̿n;U0?fzɿ,g?RUzѼƿ?v$ĿI6 4?1bItI?M n,Eiy4O?`Է|MD?3hS<$*?З'wo?1pr%ΛP?3DZ?ƻ*͕{?_,1?ws?t`? uk?>UDc?ք?q??N}e+?4d?n?BH?Kn? ڗw:?RE3B??JH?v#?|#??5 3? ¿s?l¿TZ?YVÿc*@w?jÿCU #.a?S qÿ0P5?PcUĿS2&vl?2eQĿ<]NXF?|Ŀ} %?M 觧Ŀ ?m"Ŀ<J?Q#Ŀ?G,Ŀ0 ˯?yĿT{ث? mĿft ?yzhĿ̬3?.[ZĿㅠ?:'ׇ%Ŀ32/?GNÿP?^ÿ\l?ӘPÿJ X/kv?]ʏ¿xrAz+¿ KBPzF4¿0p2>X㑿pȍIW"`)M&ɺ.bYe0#xL`˿= 0z8þ];פT~զ}=4-m{n4Wqme?j).I8JɰpU&qݮwNNXN; κ8ܵҋ1&hA%dM`lqp҈]k lM걿@G`I狲=d91)0PF pP"^#䫿'Ξ 沿0tǹ}>GO 9k sSq*RH#*Ɣ`Nj*FԲR)v A)GdrIޓqv%аcCD;}Ϡ -ͼϽ8"oz+H^qnmdP L/ JGd^?NJrؐ#r?ܛaɯ|? 8lȣY`?@ؙ.?mb'8ܨ_?C_PO?xcU'? s4T$7?6(#Uv/Д?a󃓈pI? 'H&?$tx*?g}uZ;A?Ztv΅Xg?..1_? +&{?}8\?nmt1?<T?Yy?xˌc`?] )]}?n0A f? ?Z-S?j|(?|W?&v?ž? )7?±??68F?>tZ?p?Q2]}?&eɂ?H)^&{?]̊? %y?\q?Fމv?ʞI?vh?Ot??.)s?/ ?.q?U?jn?_|b?0[nk?D?r3/h?oț?Ie?7^~?+ "b?I~?k^?e%W}??2G!QY?j;|?^_4AT?2z* |? N?7HD^{?<E?Cz?No:?RYy?-%?kRy?$'~Du^8x?jM272}kw?- ~h?uRv?똻 E,!u?&LItK\Fu?+R\WP887t?|RI ms?*T_[/r?2t_VYfv(q?솬Xgf+q?BrowZ}%[p?[ֳa>o?'G]/m?]t^.`l?ONR{_ oj?%.Q/`m,7@i? `>[.Qh?1q`*#g? R`"aCe?{t=Ua;#d?ZZ{at }cc?,̔a#@b?97a%a?5]=̕aOx|[`?5<䦜aes^?u$a`L'"\?93pas;Z?pM1NaS$hX?ysز$arZV?_=I `{\T?|_`Ow]S? z~`EXQ?}c<`Ǐ]P?0/F_M?)2T_ ]DuGK?ul^iسH?,)^ZF?%j]+]D?@\/[A?7 \A~??SyqMT[3;?dLZcAk^8?[YJ_ W4?\'Y ׻1?H kXJm-?Z W|(?; Vn{"?N7V5 ?q}U $$ ?t3)f3T k?{5 T*}Q2'>L*uZXS`;LB\HQRpT:fP0QTkw̑YG_IQf %KP,|O{O:}~u֬N+!4FnMP#RM07L@}n2%EtK)RX&T[2IԹ}'u֖HK(\ G&cDc)(%FNQ*TpER|R+eYlDl'e+I剚CŌ('@, /,ţ<i,2k{;Ũfu, :"4N<3,Xf?C8Tz+#^TX7<}Y}+؝161b+ W4L?*iW3f](xV0*7Tj2O#)fc41fgQ|$) ؊X0] (D+ /,/(XRkJ-}i' /a+f&Y݉Z)r1&vJ(%"%r%& $8\%rRP$kw$t5#t"۫6Z #4B!`c$m"t[ ?!y$T5/0!7z, pXnH(s۴n@{H5>ŃqZܐ~{> É`$7 ]ah68F<75À҄P*I" +J''= )+)d5h*[G`KJ La*a7OiB&z)IBb3v9V6 )"s 0}8Xo"WcYv1g04%5 =~w; )mnHf2"^Z զ{ #|,GԾ֤CLQ}l|ѾN5U(d;FfK2/cFɾU> žZSP&O Q%l˻' ova\ $M)*T X$jPL@#piIo\1:n";N/,g3{Hl2ʸ*`>,꾥_Nh> CM(sј>5im8y>>aGI_,>N7X~h)j>t͔C*M>1!*X⾬G>>$Ά-==>>$V> t޾NwG>oźF!ܾ!;i>M JhKھҩ>_{ؾQiOJ>o־kbRc>fپjվu|fc>H'Ӿ}RiM>ҾqI $>__Ѿd_>)|H$0о9Gŝ>f'ξ+$N>̾|T:>o{lʾ@l>/LȾR>,dƾ0l6H>ꬰ,ľwU>þ2\>¾^>i;5谍]>͈,S[>7p%缾,:nX>y^1ʺƶPW>hLcѸtW>n[>=6Td"Eat c> h:ڹp>)ƶaA2QO>Ѱڐr>]{iG^>_(Εܠ>xQ}w>fp]s>:߽D"$)1>KL8Ť#Cf>X #!/č>wN_C0>G847>>NYםׅ&>D߳1qvb>P^8zC&>ͤ[+[hw>&( F#?Ng>xvLX9d>p!0g葾kyzڎ>x+VjF> fc]u@=G>^ \.} >VQ]9&ɭ>O c>['TD$*>PHF7փ>! u=7|>XNȧd>fX}BE>bzgG,o~>$xbxڠ2q|>a5v3/z>,r7t~>xx>xUd Pdr4>r&%w>nTđpKr u>PKJHvYP P gaus6_psi.npyNUMPYF{'descr': 'RwQI+:q{[ur+m3"JNk  7. p(D c ͯ .81Hb5H,KezUfxoVO,KM0.e&N\;j !{#rlN$^{31%&bJ(: +)MV+^,[z*.B2I0}&B1ʙ9H2<\3~04U;j556AJ89e=a);hY4p<aW> :@zp @geA*.B5CU^SiECC(Fdn]G&dH{ ^)NI#CYKBN7L/ETN{,OPqQV-R:eS~&T`嫗U&_VF[-W^oYL6AZF<[~jQ*D\(zN^su_I+U`=qav|0EbS!c^dHX='d0deRfk#gx-"4 i̳,ju JWkT/dlj m oI^D`7pNGpiqcq]^rHL_"sr}sƾtuduuv 4[wGx%;yw"6zg8{p>/B|? S}4~Pk~6vj%Yؠ숤-{*3PS2͂"QNs/J¦ـg˄o|`wV1x?ꆿ051eeߍ{(99o]퉿ҥ­o QPoJ-"siˎ|%ϣFS>6o5r &bHQ[itc6ْ'Iza H'~/DKU|}p~ەI&EhޭDn.wc ЧؗG3&L6]¾ő?}:,阿Fư<']ѿ֙ci á\!XtKc(˚t? SI$_@[ XP LgmMj\Y^vGՒ%3+|Qpz(V b>Uə2[H9%ߘ|%~TU{Ï!9T;(jXڒlϨnt﷓Ӆ/+͔hPqF/d"Z/=J舿f+腿+\WI~vwkq1Fp}ũ`vwFp`?RdBq?5sz?a0?.+MD?.T;T:?x_?Q|ܓ??O9Ζ?"ķ~ڙ??# ?[!8͡?, #?mv0HUN?F;!?ȩ+O/?#?黻?4'?y{?׀yd?+$?6L ?쾇Wδ?S??.M>?Ik?%^ܲ?d:hzл?.?DA?$Ӵ5}?XM]?`c?Xe?uWW?1?W?W+btK?,%^?j?N?JC' ?e??y ?)0j+?91?rף?tѩ]s?3?lɿ?^9W?ZS4? >?!)?I'l&?AU X?P|_? ?U?zb|עv*{ɂcp+iTo $[Ը(Hƚ'l8Qÿ#Bſ̾ǿkx[ɿr7->-̿w;Zο.,pп,2ѿҿoԿu]2տbֿEN׿rGz:ؿٿ$8 ۿ|4>ܿnaݿs޿bn謜߿rY࿑o1g῁=ῥgz#%mcXFeT`58XΠ{mCBSbY"υwLK 濰CYQqΟ09Sϸ-ճI]ibat-  7翛y)"c+>.3:翙翵]Oe;ϙwn翔"?m}7翊濂H6է.HQ1eRp忑\&RR1俊pAkTD+'gxCkv%A !΅,q2Wv߿>cݿnܿx$ڿ|_Ho,ٿ.waw׿Buտ˟7[ӿw ҿJ(пMBtr̿^ȿN{Ŀp0f%݂ZEQ|=~M/n?(Ç84?rÐVO?뙘=s?ג$ ?࿉tT?q ?462$$?#2{?)(5?cOH!? h4K?ֱo?_?,kѦ?!~A[? -1`?=q_?Z?M9BP?cҠ??Ois)?е.i ?o0bp? <*?dn>? QHSO?-NU ?1^0?0Yk?E ?2?yR4?ya?nV3?6#F?9z? <*?o0bp?е.i ?Ois)?cҠ??M9BP?Z?=q_? -1`?!~A[?,kѦ?_?ֱo? h4K?cOH!?)(5?#2{?462$$?q ?࿉tT?ג$ ?뙘=s?rÐVO?(Ç84?M/n?EQ|=~Z%݂p0fN{Ŀ^ȿMBtr̿J(пw ҿ˟7[ӿBuտ.waw׿|_Ho,ٿx$ڿnܿ>cݿ2Wv߿,qA !xCkv%+'gDkT㿊pAR1俑\&ReRpHQ1է.濂H6濊m}7翔"?;ϙwn翵]Oe翙:3>.c+翛y)" 7- ]ibatճIϸ-09SQqΟ濰CYυwLK Y"BSb{mCXΠ`58FeTmcXz#%⿥g⿁=gῑo1rYbn謜߿s޿naݿ|4>ܿ$8 ۿٿrGz:ؿEN׿bֿu]2տoԿҿ,2ѿ.,pпw;Zοr7->-̿kx[ɿ̾ǿ#Bſ8Qÿ{Hƚ' $[ԸTop+i_ɂ|*{|עzb&?G?P|_?T X?C'l&?x!)?߂ >?ZS4?89W?lɿ?3?aѩ]s?rף?81?)0j+?y ??e?VC' ?N?j?D%^?c+btK?1?W?B>W?e? ,?qv?({?0e?]"9? $(]?\_[3+v?JW^p?QTҹ?^,L4}?hj?4M?*I'?Ԝ?~C?[~?]5? 9?v?ry-?<"?&B%j\?2i?3las? *?8ܸ$w?6e?+h?*A?A:L?[L#=?+K#?*,?? V???P?U`{?6:?uW??S?쾇Wδ?6L ?+$?׀yd?y{?4'?黻?#?ȩ+O/?F;!?mv0HUN?, #?[!8͡?# ??jķ~ڙ?fO9Ζ?|ܓ?x_?T;T:?*.+MD?a0?5sz?RdBq?NHp`?熧v}ũ`q1FpvwI~[We+腿Z/=J舿F/dhPq+͔Ӆ/nt﷓ҒlϨ0(jX99TzÏU%~TQ9%ߘ2[T b>Uə(oz~Q3+xՒ%vG\Y^MjmR Lgc XSI$_@? tKc(˚!Xtá\ciѿ֙']Fư|%ϣsiˎoJ-" QPoҥ­99o]퉿eߍ{(51e0x?ꆿ`wV1o|ـg˄/J¦"QNs3PS2͂-{*숤ؠvj%Y64~Pk~? S}p>/B|g8{w"6z%;yGx 4[wuvuduƾtr}sHL_"s]^riqcqNGpI^D`7p ow mT/dl JWk̳,j-"4 iz#gRf8deHX='d^dS!cv|0EbJqaT+U`su_ɻ(zN^jQ*D\F<[^6AZpoYS[-W&_V'`嫗U~&TOeSV-RqQP,O/ETNBN7L#CYK ^)NI&dHzn]GCC(FU^SiERCH.BeAp @ :@aW>hY4p<=a);9AJ8Ѣ56v;j504R\35ʙ9H2}&B1B2I0z*.,xV+c +)bJ(&}{31%lN${#m!4\;j eL0%,KPoVezUfڣKs5H,Hb81 .c ?(D  7. "Nk " m3ur9q{[I6wQ>\Q;?ɀ!;"!Vn{;OdXSsܶA5!{1[:퇗﾿"bKbO뾱(A Raho㾹“5L⾱F$w!g߾AH<ݾ%5۾.PQپ)F׾0oվ0]ԾҾ$ şѾ ҬgYоӧ_ξr75̾;ժi1ʾv#PȾʫҐƾ63 ľFj.lþ+N¾oZ9^yśe| 0϶kc<.Jr~nbVBTFGXSc}}I{B餾եh&Q$9ɼסַy¡?kM2<pz百j+旾uA; wdSM.B`EڲvԏbR rer<߈B憾 ɭAKe(~}9؁Iuui^f0~{CM}y?orwPKJH>>2_gaus5_1000_coefs.npyNUMPYF{'descr': '?mؿC]$^#ҿ_?N9$?GJePҿGib?_?_ֿjH:nVX9|-)?`?.ݛ5K}ÿs?^ԿLSg3nC?Jp;?ðt ?/J$wϿ d؃?~2'x?8)iw??V48*ԅ55x￐D+? ,+?mp?ZP,l?D(zgҿ#ӿ1BT?zi4?Uz޿?ǡH? ?Zm1?ÒΤמ2C VRN8?# Z?CDp$¨'K,?zDw^? Az%ҿgFۿoEԿa|?N?&!HvPֲ[8;?H1*iI(?U? ˪?;(I@)70H_?tU9틊3- sGp???dL?^3濖F2" AF?yT9na*4?cg?u|? 20?=ƪrݐS娤 @AÕ?Ti=8-";H9? I&y?'$BYxZM&5ƿ0l;?dZP!=d ?vNU@@z'bBt݀Bd(lH=2?rŽxr+pѿI?wKH?Y?l5NExc&?J{0T'AVzn/9 M?(7 *? $G?>Ȕ* Wd?_36 ?z&2?r\f?ⓨǿh^y"?wcm?eD?c꿹:f5N[?xlh8ą⿵??}):?+!?o%AÏQ0 !?iϿf 1?GRm? =⿘ß|ٙԿ )2wʿWx\\)? p\c^s 31;F?3m?տ^tb?WJutZ-ƒ?g4ۿkE)?ifk+=b!ʿ(KCտEOyU?pM?!\?]?* v?|fbf׿(<\ֿO?翅 @?X-¿LW&so7D?$?:`y?O胑2SH3[ ̯?,޿ сI? ?ρf(-? "1[?< b?04pUW"&8jRkؿA?2l?&+p7?H~߿Nш?,@濰؎,;¿*qգ?Y0?1QgR?Z*gԇͿH*X?@?ޏ;JG3{M;Kv?E>~}.?63m3%?Ye?uo+)3?œu^? | I?%4׿pҡrh/пo鲲? l?-OƕEi3@?{:?B|ݿ/o_?b 9??(ҙZuHIT]?MLf꿘|.Nq?mgS?}?qg׿@hI2YO;?MRkm?N ?~q ?& 9,쿪;H|c.?p>J? ye*"5E`7?B4ּ>c|AW$?fy[?=[@o~2Xͨο/,N?!!8Xs}kMd'Z?^h+?2~j?a#?#?ΜIޣI Q?jlN^u+ e e?U ]?tCm??NBc]EʕV׿T_6!@JvN?r{E؃?x(?ܿ4=Կ[?sd^2Ħ?iZ?I&?2'9 gc?IR ?atOA|?~vShOgjt?p|΁"?jޢ?M?3>84q iƒ)ݬ?::ZP?:.?ؽ?5ٿ4lG7ؿOpfο"آ??$Scs59Y2m? ni?Q ?% E??sOuNѿ"g:BW\?R৐ѿKіe&O?B}?A@Ѿֿ[T/J%-@9?p4?6m-?zw?`e"Odd0W?9 <d4)I|?nj?$$D"pw"8<(c?ܽX9?ĩ͐jQ?xj?mXŕy$I$?/VPֿBSCkL?3x ?1o?踧k࿋3?rS׮?  te?MֿP/_&,)ӿ T?Mً׿Qz|h?]76@/-X?䜢ld6i8@!-9׿PWIZĿp5y??jA?Gڮ?2bܿ[yS$,? ѿ%no?ߊpǿ޿i2 ?hkA?zaQ⿲|Ln\ ?(3>0?O%h?}`ɿn ؿ.忑J?}k?(?34&?jRſVlE@I&=9 ,?{M?n+CFϿP*"??"B^*7 ?#`HΪѿm?wF%?䝕ѿj6[m \?PA?|?^O ѿۍȗ^DW{4r.?P~ߏ?Rg(?T߮|?G,k޿0#ujJm׿i8W4?O?L9 5~\ޫ?$6z?U ?̎Tw-i66D} ,?f⵮!%]U?/(os?,aP߿p𿡇BKG%q^1?_(*?a_Կ`?*>o? Lj,z ?ESZ޿1E ?i $?nԭ?G-t5.Kw/?6`d(?zT? +O!!i5@P@8*1?BJ?iҪ俢?&yN?"ZwaᅥFԿpZ]??EL_@7^&MD+pA*AL?oqyv$dп!w?O9;f @+ʔ?M PI?H鿴'*18bT9濸-@8?v~1?mW#.Ch?^vw?Z m ?jwÿOߣclH?A2?X[;?)f?>BF?;s'5ާ^"+$?Zf?EAMʫ?١+$S?5|_zXAtֿa?uNO?&Ƞ(}?-ǿK `пԿms jG?_+!¿y/?iuL?~t?kVxc?Q]?}W|y3 ׿C*?he5f?C zx)>a(.8?VJ?bX?p"#տS f`?mq~5k5/9N?q ? @c-տzؿKn M$ 䁧Bwp?RwV7?:{-_K??Y? gQ?ۙ Sп>K> %I?yn 忈65 ؿTI9)Կ伮6?c¡?j?7c?zw0yzSb>?R89h'#"ݿM ? /T??ؙ?Xg10vο\~L??ݿ, -忘W"͇?L6?2,r,=?`d,f{??NRؿ]R&?\Ix|:׿ad%TC?6?EE?ͿG/??6)? Wܿ`hyqOؿo,??f%G?8(;fӿnJmg(%/?h PM俔V@T˽? n~?ùt?v?^“n-yݿr-ٿG$6M{O&?BwF?RZ*DNA[^?T}lƂ4rCt?kM?-iJy?t}?>:ܠN˿hӊܿxz_N?ɿo?}D}?@3D?ʓ{s+ nip?6gVпoҿ?0brE?-- Y?Ҁ ܿo,,OɿG\Vn5ӿ=T?v&? v(a']b1?U'S?1Oy?vaA?,f!ٿ}kʿANƿaEccI? ?Gx+D|nܿne?d?=N&Z[,]j?jr6D ?/pmԥֿboؿ騪? U#?hH?ה$ؿ(?f%` ז?ߴz"O?Z鿑+=F#Ψmj8z?J v?d^ZJ%f3 $]Ƙ&֠V`U@*?o?YnnQd¿p"6"?zPR?ղ!8]⿳y)GD+?;" ?U^Ғ?Y??#bf?ЩJ(&C=?F1yl{PG=ޕ?rbg@)ԧb?n}n'sg?ʘع?)Yib?XF:eUDIzS?lxJv?{H s?_V>ZUHuUC?Ö)qq?*P/i?0F'?f1 םvտKv?_`˪>^U`?c޸?3v߿c?f?wasBɿFhB|?'r=dڿf? ܿ2BUt?󧞬?v%?wW,?п,鿪b1C?b!)gQPYR?Rϒ`?`?\^6~YH?s` 8JLN5n3O?.M#?O]ĶN4V9lPK?f!H'?̓[H*ex?fk8?.Sֿ-1ο };D)пp9/?9z?s;?gBX</MksG}?p?}ԏR?8$rR?޳ *M@&!?c':Y+ ʙa?&"?u?I{5"'9K"?`'?7$K޿9?%2R?r-D_ҿ"޿VA221?ېN?-`?]Ni?pFƿF?jp?ٶ6M vJ"?M@Qc?Et?kq,ܿ}R, 8?l)CRC?.?(twܿ?Oq?] `me?p,[?;nZ?g7?DeCO/`E"?%_0׿@4ж?(rq?} ?D8 pY,JQ*+iRV?fвߕ?2+*ҿӬ%?"kӓݿJ6Wÿq?+sUb?u!ݿ7"J\N ٛ|?_6S?W?,}\p"0 &@Ep@?Rm ãAֿX?*DY0Cp2迉?2_⣿?Sz?_t(x2 ?ӂt8ۿ.OLNfѿb??X0?Oқ`ҫ?JV?K~!Ij"rrz'?jɾ?hʂ?͔?7%Jb?zc?e?xn3)?о;&oLeZ&G?q?HpſA?{!? \e+/ᅩ#j>A?-5i?&П;S߿Tʈ ?sO@b1M¿bE?+{o?ܷ?ɻK\?<yȪ¿JdDDZbԟ5@$f?1ML?PCɁؿ>ؖ:?Ws΅<鿠+e_Ł+(?HF?Xő?0[;-2?%?+DB?ĨWBuk4A"d2?2'Zdÿn8iN05?^K@ԭ@[x]_MƿnȞ?^TB+^;?!)?P 4d?EO?uu?;A .ֿ^ȿ~z0g?͝⿑,࿖K.U3㿳 _?ዏ?-Cw?q?Go{oyd\⿾cjf6?qT?  m鿛o?hB)?P?FH3>f?d?r5R)lS$ÿ-3X&?#fٖ\?V ?M?QEۍo"<ށ$u?XL=?/b ?\Y/%?DRդt7?qVa4ib߮\!q?c/&?ۊ)Q?S!ڿDM'syj z@NK? A\2,(-whO ?\ߗȿM-w?{c?D8XĿ}L4𿸳H( 鿺^;KEǭ?=@F.z?>lʿly`k4@??ܠTQ?F.qԿYiq@Y%6?|hA%:W*Z~ G!?ć#J?Ԃ?F?2ʿj¿Ljf _g3ƭ鴪,?Gߖa@{? ):9?oΥcoZ˓ǿ̼}:쿰vi?gB0?m8ݿc4,W>?;=78 ҍG?K_+ؠ6ٿF4qp bTdƿM^?l?-V?aK:c 7[ a?Z L;뿐z?)_?ħΟ?Zȿe>?$F#RտTՒ1br6?<`?ȿQ:lZ1BZο3ۉ:?Ig??+Jd?± W0 ԿHh?VT+L ߿G '?s]ɿ?3(vԣI%1v1?Y4?L׿Ey翔})$?14?]ޫѿ{p㿩pMDDRMw?v6ze?[Ʈ(:?Ć2<?k_\Ԙ>5y/&?I翦_Gſy? ?i\/?\VC|ue?7U?bȞ{(?avQd|fspht?G]M? *+?2,4Ƭ?cc忖K9T h"' a7?Ê?ƞ,ƿĠbп?<pҿFeKMHs67,hѭ?7p?ƽw?[v:ѿ Uj5KX(gտpo M@ "u@ -\XHB?֧Hy?s7!?wV G^sP ÿqhwۿv4?agR? půP?Ϸ?kCU?Y1I?U?6N :=~"<0?I?GHԶ?8Uc_?K RȾoxi_G?ݪ?zu}?X6]_?>C迚ojtܿvΔ/c'"t5뿷??3&,@P@pAYWxa| |ȿ{ZaU-C??rW̝ѽ?_?=r(鿕:m^]翯 sq?bAȿ0]f?cz?X PC?2yRPP8I誗?JzʿXx?)X?ܽUq15Pſ/e?Ek?`ϝ[PX?7'?L@'*?^/ 8  3LveL?I6HR?|VV(Hm?rCg?} ƻD(?R? ?Q'b)3" ?DY?]~ϗ?߿xB&𿠮iKQevf3}mD?%˜$?Wc?(޹?)Nbȿ)nKQԿ 5-VQ뿮gI֦?/P?V&?h__]Jgޘ"5'~K?@lC?G ҿͿ=3uTܗ⿩]/ z,3? 9?lӯuп4F3?zUӁC9,|3g ӿlosӿ^.qpp?-l?XwodIc?${?F?_p),;|4 ?uBmƿ׿&ҿC?p6 K"<ΏQ'? 3 ?-S#?w7#יe࿕V?PˌF> y ޿0 ?Ȝ`?X`4?3;޿??b D?dkҿ1$Opտ^m^fz6)?>·?/n?nLsM ?_F(kѸ?0l_7?ҟDr1濺 t?Y??+BpN?ffcUm??B?PKJH .c1_gaus4_1001_coefs.npyNUMPYF{'descr': 'wB?mտVsT?x{?)Wῢ?.V -?lSV 翘; Y?H?.Qe4]?s ?W7o F?K Y6Z?^ݦڿF_9ÿ ?$w˿4^,FĿpӧb?o<b>V?6H<t~QƟ~ۿ v ?EϿhMǿH#_K~₵?%^}ZS?c'kĿZ?ғQͿbiq?pXM^`-?USSN?F ?)9BHL d&`ÿX?5XQT?V ?5}忩uӿIV?Оǿ?McP w/?x)׾}?v65׿ڨX?d*\Z?~H=y@?[˿^u2jƿHi?eʻ"Y1V59ٿ=tz?=if?̿'8D?F(5?\qTyտέ\Ϳ,Z?Q?.09̿x3d(ѵs9 ?%!*ӿ@.?:洿f6{ݿy>>?v,:[?zGǿ`Qvg?`WĠ?p%?c?Og󒷿ۿIX? t)%odDf :?j!?`utֿT3+пzC} ?Fu?jhNwҐVǿV?qDp?`^%;{p.?u?Mod찿!Z ?0r+?qt?]@_RJy1Lֿ%;? p\B?>7U`ϿI3ѿR&Z?Ҝ޿>P?7 5?:[ʅcǿe4?"4JԿa+?';\r?ëΈ?Xq>sE>e!?8"ſW Ͱ?uC{ƿ Q?[Z]?~l MտPT(?:K?8+@f?$dm⿘PV?7]\?dҿ/УZԢ!>?rgp~ӿpsR ?(c%?(GR6صr>пAY6>?1?0g޿gُY?rH^hb#O?ZAڀn2+ ?ߞ&#?g KJ?MGݿ5?@{o?l??W䪷t r{އ0?miҿ&wI?U)t?k= bH.iq@Mܿ,bw)?+ϿE)"п::?TCctٿfwؿ/v?\7?~XԿ!l?ew?(Udat?; `?)}2T0ܿ?3o?dxv4˿fy ?J*ҿ)@?ky)?bQr"ۿ?&x?hؿMvb?/L?LͿ/s?4˿i!?f㬥ͿXn%ݿW7? yXFWٿ6y? eϿpX@?5OVϿcǝ'?0dW?er xz࿞I,?`-P;7n L*?*j?j0\?k?:\6ҿ'%wB?@3xۿ`=5?hB@N?2%,'Ex<ſUy1j?0Ja0* +?T‚?Ių{ݍ0?8`ŏT*Ko?7?}q[$T}?ˑת罿c@ƿUFU?/[L5 ?d *m?c" $?>?qH@R?TݿDJ"?|BSֿaɿ$?HOS]ݿz\?t ?ﲪ{׿~Wѽ5J? ɿvUow? )K,?PirPߜ2ſt?? negU ?%+3$p?ntHw꿯ix?PQ?;@Uuѿ Ɲ?o 䒹7hkߑ?DAVosѿuG|w?LԐU?8(ƈ޿i.D?h `۬lc7\*{Yʦ?Bůۿ@`0?O߿/? ?6@忎g?6MfDb?2 Fq寿ο3"Կx?;pP˿пRp?k 9Ʀ?+S3_ܿPc? ?QVnUxҿNz'\1p ?z!;v?;ǿEDӿnu?P?}~ n:?Q\?D^-ƿ..n?an8ҿ"sd??':"?F$Bwտ!@ď ?PnQj.v٘Wп&L ?Ǝſxih?\x^S׿#]ND~? *ܳ(~?Ękhο`y j?w9soȿ Pc4?c}+ֿ'??>u7ۿđ./ؿ΃R? ~/怒'?X?, Jпj?{ʿ.?cg `fƿ@h/?pm½ſ^33¿ǁ7?pc?i.SϿlJ_?+~]?)Ǐ!czxsӹZ?bえ&.(nٿ}?4Ɖ:ٿd(?c1=?a㌜fbYgY86[?V׿vN#N% {?,ٿ5 nϿ?`ֿE )?ڻ䁙׬?^ B+ݿ)@?7LgҿcW?^yx?^ɠӿJ 8??O62@ƿ`MɶmAj?;g28?RFϿ`ZF~'ҿ./pE?Ia? )Ld?lR:撬?[ tZ7??H{(?|U gG?&bNpտ>?>=MI激#"r?h?uAC|~kƿ~ND?tЊ`3 ɿg(ޫ?0k,-˿Ihh?-S?Zv>\Կ̆?+? 9s$Xӿ [B?چҿAXk=y?l@42?~㿒k;ҿF?8?7P\M׿DEj6PbK?)bX?>9NB?9ߍ:?4>=ؿi.hȶ?Bo 0~kC"?>?? 8ԿOپ47?lf>ɿֿ@{f.?sI{[,?ֻ?liWF ο"E?!9ƿtx?r-,s?q~F?r߿(?|NȸB[Em? Rp,࿖k2?FȿD6*/&z?-)W˿}o?#|5mxٳ?5?ֿL2\Rʿ'Y? )QĿ`kҖ?v }#?**u޹x%(?Cӿqvy?P"Ϳn f ?EJ?];B ?u9z}H??X?'h8K3? /fTǿi{輫?jrs?Ԅۋ?$ɄKǿ*]n ?R1 ȿ,ڻ?ҳ=\?λK4aUj(޿Gͪ$j]?ܟ4!q?= @HܿIi5?ҫtP|?"?n=?H鿘O(?.ʿT{k;t?p& ע9=gW?ˍ[?{Q ?TN8ҿο,+W? k{V&п e?6I(׿Y{w?YS?E x>Ӱп$.\a? F{?K`W:e&˩l?_B[@0~Ni`?U*rȿ^y ?9?eE#&C ?Mn-?Jxd;߿ Ե̿4L??NTؿѿlFo?c2J ݿRIvn ?9{7v-2R?[("Wѿ!n|?)?*4W׿ӣ?.:(Wt}?yB^P氿?FEiZ$#s헷J$?PԿje ΗEڿշ??zȿ ; ?+X+u|Gk(Կ2r?Fj=ɿIy}IIB}?ySHJ?,տJ[`qcǿ?:젔Z޿YO8  ?Q׿dz? ?< т*ܿ|?;f.?FC;޴ؿx"?rW-@7 -?(?PrHzщ`7Wꦿa{?5;~G^ӊh?eGe?ҽbοO}um+_?㯬he޷ј?Q?v5ð?ºȓѿ®#-E?r@S? B]PϿmsG"?\ڿtY9E4?Ur)Ϳ roT?j̒r俲-d?YzR ?h8ow迵ھm?(׿4ѿw>#o?Fثܿ.HcտسûP?Կ̾ڞ 2D ?.t(X?Y7¿u"G ¿7;?YKW-?N|񨦿 ?k,ӿ{ҿs/?sI,ǿ6s,A;?8Voѿh V3?DjP,?M D{n?D=Կ`O=_.\D?ԝ?ϿHF ?8i пʆ?-ZDп?䗃? *m? G,=׿ܖ>տϕ~?a5a?Mο4^`dl`Q?iʿ?PKJHp`p}p}2_cgau3_1001_coefs.npyNUMPYF{'descr': 'g ? \c>hd'j?B7e(?]q R?ksb? hMɄLP?g7x0?hOQ*?zЯ@ٿ/9f?o,Fdl?&1cfC?jxMb?>?jH_o}2ReK߿u?Gb*?JhӺZU*xǿҿ37?'#Hgby?O=}ĿFh>sZ|?!p?;by +Z?+8< ?ڋGSn?xqo?ZXѿXah!ѿ\$'xOfqs?7G ٗ 0? Φ4p>+2gѲA3`(ݿR\?uV¿Ta?Au,I?FԿr~?RS4?[ф? v?z.HCPJw|ٿAM#o? :bYIFA?Jg!Iɿ%Xؿ-dɿ_b?Kz⋯l'?6V]7?FbbR? X0?(]}?~F῕Rk?HW">? Z0v㿦щc8ܿDiåic9kYb$?jcw3R?4Sſ9|̖G?? ) |Ϯ?->?FW?slCA鿎w  l}Wڔ?L{U?qI4пg9󿭽D?|G?Z['?JIk?;*eM܍iى]ό25?F?ADjtuɿqO?Ŀcw&I&?whn.?ox?b?̫b?IIc?;]trB5?<5ֹ?3 FҿU?)? } ?~fp?-?$ҫ?7VAݟ(?';7{,ܠ=NDs? TilƿiFVqҿN6;xi?>cxb? P%e*?PY!꿹َF] Ŀ Yseпu1?- ?a#8?aC·h H쿴XId?Z1e|?hj?DZ|?-+yQ۳?D!+X_?{Xh )i [ſ=0LG)ԕ)?tŞ?4?ZojJDY|@*?+,?K:?H'?Cc˿!(Fn?8u ?^࿄9?A"K-J ?tٿ ?I`V8j߿`? E?}+Ŀ T?[sl~ ? ?lvtڿkY?&H?7'\DԇŵNԛ9x߼[?H~SٿO G2kA!f?D_Ff?r^?\?y̻?o6¿@?DI?w?̥KPё?6";zF9"տLj?dc~8}=bt?}p̿q п 1khɄ:?HP7׋? AE?,[?J?}7lP9C?$+ ??aN̿b2ۅgٿ:Gȿ%83?LE&?Z࿮i?1POF¿Vv ѿ? onZ?5Ϳx|e?2Gٿؔ?m׻?/[?Dk8?I+NH'|Ŀh %Yvr?KW?- q:' lEeg,Կig?BUU)?+3?t(jh?GAS X?OVds?Z+5ֿk*|yj@EydĿ{0S?i (ʺ8?{ #?I#|?u?\6NIٿW @?jj1:ݠ, 3+C|Hk?<]-?+Znuӿ}+.uGyL!':&3+x?GF@?`Gg?'ǹ??om■t895?PQ$ܿ+/E_?:jkz? 7Iÿg>0bm6=¿'8,?)7?@ 񿙧ڟ3id~4п:?AHqeܝC?SO+8?]?9g ?8CWj? 0b9?SdL?oҿoFwl9:G[Z⿸O*E?v4X?*2?K)o?c_t<߿#^țx?\D+?~MZ?W-M?|gKG|%?ẍ応Yv?%ܿ*A57#?ʒb߿?"馬i?džc]#?Z|?C俶tѢ?߹A޿ֺ?L$k?ַste;>пE"Gٿb3p?1cm?aT?Ȍ7eſM#2 z,kɓQ){?o?i>? yU?(jQ? '> Ŀ¸湝? XJֿ淳sܶc?5 lÿ)@?H+?jqC?mk ?JɫI4}?5^ыNܿ*bO?%_h?yDǿ i(7?'ۿ \?rpr?-o?Dx5?N?+a<ҸQÿz:M? Q?LBƿ Mſޫ%Ύ.@?oi;?odM?յ I䰿>-zCKӿI RtUF=?\Y ?Onr?PD2?*NQܿ:gb7?Kjgy8sϿnsW῔Ϣ?$?MD?F,,տd.3>00EK?K?׹z?3?zY?kQ*?yj2k?tm *qX-%oL<-*HҿzQ ?Ob4_78?Z6|忪C:/k£ id?gȐ?JcCx? xv/?l͖ܶQ?%6}?PZ=P%D`յ}?c"4\jgk?Iԥ?G<$?x@?%ibONSӀw$?c?5F?c"$[@is3`࿫v*K );?q@7cR?]V?M'ɇ?!+?:Ў)6 ?| ӿB .?(w:N-Ͽ .m?|Zٿ:v6?ef>?S 1?։\?f.ZxȿuUdz?zGo~j?3A?3ք?r ؟(W=Ga\?#yd忧{勺?]09kD ?C\?Db&? /bJſ2il?|뿖/9[?Q~$!mk?v˿qjͿeEG;;]ci#v?I?y4:j)?b?6R?V? ڿFśKJJϿkb?^@ݗl?AI[zя>ƿ/`Iؚ?'b9?9+3b?zo?-4 kOa㿅tp?(E^-p?f30qΕ-t?z?|V7׾ĿoEܿshQ&(dWC?fj mC3üI?1n(?$$kT?d3 ?8~=?"f,9wi$C3[>Ctz?f?$OmXğٹ??cѿNw8Tտ>NAc?B?hoq?ʿ; ſ{kB&xM Y?g[?dL謹~?TP.SNfc,ɿFܸ{ޛx?Ɖɨ A? -3w?v#98ҿP P;?.G տO?)߿FRοJa$3ֲb:^'{?Դ?:?$M ep+e6[*.ʿ/?v?de9B?L\+Q!¤:<>"jſ>O?'n|"? ?Ve𓞞o?#ӿG&?(7jOIă?xk,?@?Zӷ?Mjx L?E%Uh?i[fL?TF:0E?-X? 96q.޿@b_$K)wȷ#ĿY9 &?Hq^?lK࿶97K?DΣ*C?:ӠV-~?ɮ?ICF?Up?°-q?^׿+o?kb6¤$iuwĿ ӿ0O.?^qܩw1P?R Y?hVI?XNO{?B #(x׿Cmő?Ua'[4쿢H|ɿo#Ϳ9^U[ri?4?+?˕l 6;&CkO(?0-/?43?`W6?Ow||M0ؿ~?h Nc3&¿ҿ+}i?{E $/?;eGL?Y !;MLL Q?Zbݿئ?&.ķ2 \ҿPƶ?A *d?0?Lm a?ܯ,L?kDqbW}?s"Jɿj?^Q)?V2{ ndN䧓8?4޿lujQ3׿eIyDm P?+Ps ??W6ڿ Oj)1?N@Qi?ꄙ?=gƂӿ ί*1\˿LWrN?2JDG? _^?Dea-Dݮ?^o]0/x;YZ['a?GN746?n e )]v\-?OsH?%De?#a?i7U薿TB&ƿЂ?s6⧐P)i_vԿr:w&?R0' AL,?}DQ-ɿ>V1?4 ]?0l? lR?Ui?a2? ]`޿mOc?XA4<迀jٺ? uƿƙs?^|H9?nI^?%4r?y ?\m<ǿv0?1&8?j?4H-SпVASivP]+p?$u}F%ּPwῗ?@?R=?E<?:,@W?|8T῞' ?__G?A +ȿ6M㿠TP? o4?ή8H? o/2OͿռ-j?*3YF?/ kl?1:K?~=݊?⨼)=j?BaEԿuˋLҿKMٿ>o?݉2\K?;9?3ocSzt#ӿWԹ?ioҿvpܼ?Ja ɻ'_c?i>ly'?VdV?B,#I??ũt?tc$E?:6JCNÿIM'cĦ}?hڼDŽ?Tv]k?~οp?ml Q"f?Hc`]Y9?: ˿6? F ;{=? (?[ ?YͿY]-?}~4?\<?K?H~ͫҿW<2?.QwU+,Od?($>8AʿǙÛkE\.q7x8?c29Pd`?8c4y׮ƿ8?nT?i%ć?s82gR֩ǿڼ31XĿ?z?/f ~?uٟW‚ә%Wf+&zʖֹ?k&=5oz>?@8\?-NUuHdc?"㉴Yݿo#92Sl ;ֿk忊)i?\ B ?yzݿ(um?rI?'e'I{?t^?a??qHsԿS4P?q[>ڿPB?2 _%O}?@h/OO*Z㿝ӿ0ڕa?|-IDp? ON?f$ۿ U?i?R Ô?@g?x^gS:A}p?\/(?Q߅?/E 33ʈma? P=s?V]?Wc*?G9/%濙!e:*Dǖ/î)?Ctp@E:?jhΫo?fג?`?Q{?.*\=̼P@㸎PD?hN??5yɻﭿϥ`G6;?ɿil{'n?Nz?$W%rPK?ףK+cU?p?܊>?WiL(? h_v(?UF?6%jcs򼿞S?ſbU?}șؿ̘O?Ks$?^ϳ?,av}?iKϯ|^߿GX?ս]E)?f&8mT3d]v; ˿h?Uȿm?J6"?Rӝ? j?`+NG>⦨b AR˿EW5j}?f(kҿ0?K%u#N/̿٩ ?%^P?Ɛ?+%nڿ޶r,v8e?WU?/mQąg&xԿ.ǧbKB?`ߢ`?O g?;:dNU<(Կ@G?NVQ?RrR?SF}>Ӟ?Z ,ƿ 5?:>Yz?oH<;?Ai~'m?d1H6P?kF?1ށM¿T1r??6^+ܿ0&K?5oDۿ`\84?6桖?:a|(b?nԤ?&RY2wSj?sDĿL7?2gmڿUk˿]8Կ?gAz?cѴ?)>ܿ ʗ\?͌/댩 km&H1i?aՒzÿCDX?󭈹뿶jەHӿ,_4P?B?j??:p^Ѿ?Wϥl'῭.;g?8I-FÆ; @߿KJO7?ĕr9Ђ ?ɖЕEۿ˞?D[?uR? ?ƿa ?Sbj?mv?]"?SYG'?i]l^>!F糿.+ܿğRD/ah?. /Ȑ:J^?>׿Vx<s0?g&5 ?H#2пpQ?|H[ja? o 7?7<͵?|q?4C<f?fp⊷+r#ۢKbD"?ˑ۹?1Y?sa!X㿴Lٿ%;%!雿t?fxп/ɽ?Pzi9N f?`ѿ &?%E۱?Åf?gt4cԿƬ"п(ؿLp`ÿ~6y?TN߿se?5I?c-k?S-n1?e@ῪZ?? v;?86%NbZaeӿj1?\N,?L?DJ3?&/ej`w {AİS?^Կڷu?@M1?F>?ѥ?= ɿ50׿p9;@o?dYGۿ"ck?ձ/F]zoȦ8ݿ \;@ԿX2?@I&fƿL?4FE^%s?c4 {?*?s?|QAE?|`OTC{u?;z?"v$ſmov=O3?|I֯?q ?~3[U?9ѿⰞQ?߿e?'9࿶Mѿ.NPJ俐rTm?B?k9QF?Jo?|#wnӤ?QWӽӿy*b?QIL?m5A#MZ(ܿ4X -8?l ʿ#Կyrk?Qܻ̿?"ZԿfE|9h?%p&ˬ?'˜?m7Z?pI}t '9?͠j\a7gl??|گʿ!QF?CVg[2ݿ,.qb?lTM??6i?B vCHLhh;޿|%4P̿U8F?RҗƿZ5?ݢܿ3?dw?[a]?m`E?w 2z, ?-*E1ݨ]?,N!]1пW?eT\<,{?N2H? ?SwJ3??e[ړ?HhdԿ&k??kod5^ώѿ<="࿫A=ʸra??20q6& ?S.%.`X?7gCZ?ު2ڿ<^?M]ҿ9.? \wI?$*`|?X{K0sĿ9BqۿĿlL7?ӖGP? tʰ?F?}sİRu9P? pt%?եO?,i8?夺YcyE?[ͿY8z?$ͿLSR?]}2V~Pi࿛xY?ZpNf? ?$S$ٿ$cӿhv<ܿ:)s;0Ͻ?9Z Fx?& ϣ]3?bvQ? '4Ϳv?͟3ǿлE?<8ٿbЁOz?Lۿn !ٿR`?Q6؃eȸ*P?&],@ÿV?PK? ;;ʿw?WOVR$󿭥 Կpl?ݶ4Ŀt}x?g`yD'?IK?<,=?r28K?J02?9Cp?4{Nwh?[ KLCfC⣿S%?Gֿgy'?Y*)?R?vB `"v?EQ忉X73 7G߿Aѷ\dz?n> Ŀ Ro?s+ү=a.:?wB?C_?~?tՖ?%#&¿jZg?<(?r"c?5w޿:ܐR?dѠz"KQ9Ւݿa۞`տ t?x{IƴF6#"?7{nѿgm/8A˓?uȧ?UT?6V?p?̯&=%R̿>UVÿ2 nj?Kn'?QoĿ# 7i?5ZvP\W?qu%Q?1ſ k?VLY'迅e?3bl wտOH᧿G(Yagl+?u#x?I#^z>Po?VW\?LjO?GuGI?YYQ>~ُ?Cdf?_6?+HUɏ72L?rK?Yy濰*?v͹gǿJ:?p:|?5WA̿?gDp?m?ZB_foH?P?Î_Dݼ?c࿽2BK9(H&ɿ]?;VxD~cF??KЎ?`x?"9?v>J`n?~k{ڽ?4޽dͿ23ah-۝? Dz?60?.0ٿ!(Ͽ4 ;QG?hY?[ߣZ? @ҏh?![`C7p~?/cD?A>Uw?2^5?$’o3?dt-^gsUYqGEbC?$k]N|?NqhYuɿnտ-OO޿S%0v7?yCrͿd?Dᕿ^k+?F?V׿D#=Z?[ȡ7ӓe? HȿO=+lտ"1iD?`ըz4b?>&w 527?$0޻?3Q?wx z?RH+ٿ/?IVv՗ۿC:^0?|k?nG=M'!ei(2nĿ"O3;BCl>[㿆W|·?ã[qΣyp'ڿ]5ͦ BPʝ?;3?qT˿xi#6?7h 3>TH?Jy&"eƿRy?. jGy] ?XtED?: ?!3?3P:xҿc/?=wuҿj)?ړU]\7?b^ZڿPn\th?B4gT Lރ? p+*u?f?ȍT,?Ž?7ctI߿X7V?}5[?[sXPmҿ-Kar? 񿒷Q?N2R??GTmk-73rw*lϪ?oj?sn(?Nƶ?ofP./?X?@}W*?Ln ?¢&h?>׹󐻦?V@뿫L5?2n6:p7%8W?u,^*!? _\OYoڿ4a0p?"'(?Z09?m'?&* ?&?Ze?~?ȷ 義*}?ҭu3V?X;mnhZ>*?EH+翣5X+ǿb{Py\ ?hi*ӱlS^? ^7RfQҿ۞V?ન?f-?I^ ?#uH?vHkZz?R-H]=He? Ӕ؂{=FD?ZE4弤`X ?=WbnȿNl?8ύ|?n?>Ra??<ݾxҿ,8F(?PW 忚GYӿDѿ?Vb?ak?6Pw2?7C翐C+{?D%"ܿ3?̑NG|?p'[A˿|N!ٿלܮ?Z?Sc"?? ?M-:鿬$҉toAӿIPp)kj? v`c?D'ؿYǿSq|?C?Hb-P~%wQuRڼW?L= y?NT}?~Jq?R.?/"~A?V[E@PH?| ?Hg?,{?nf\?vX#NGH?_YOS>Y^h¿98+rwԟ?􍫋Ȃ'?` ࿳WulY5?싷܁?gPO?#RU$?^7пFw?^Sx^$G?Q%?{uV]?"]9X۵#WZ+Yſ'oѯ#?wuſC  ?𱬏T˹u@9v?%(S|?@oD}B˿&Me ?[YI$?'?k?K(?ͬ?"v~濙l?ǩ̲0UB?:.nݷ?- lɿP6C0Ơ|r?[%?V0?>OF?J4gٿ&? v(U3m.?ny휖տ1ſ.Wǿdb ='w[?D2&?0>&LٿţH? aG?E$m?m?tH9:ltM C?C,E˶4?b=ܿ@qq׿ϥ{߿K訰=#=-J?w»?/¶??ŀ?:#Dq?й8c ܿ3C?@ט]?`/Ͽ."G\cBK¤)? ݒo?5oosO?Q{K(׿͔I3?Kցv?P|;??뇖Fhݿ`n (*࿖Uŵ*z 7?_;Ϙ?X&>տ#$;Ӭ?(1? g_K?PY?>ۚ: ?Rƿ>-њM_Z珇? Ƹw?a&ya?((dؽ?J|A/B  ?iCʿn ŏ*?0cFĿi!?F7#¿q;޿4$?YXn^O?A֛<"Hb@9yٿ{ſ/V?;[z4*?19¿| -'*Bؼ?%w?8'׿b"/!p>'K@dE1fٿyq?̹6lZ?J rX'$0r??4AϿ͍8?4RI쿼3_auMd)MؿYp?@PĿ ?!-PK܃?UP[?Gb?tE}? .ɿ]xj!vۦ?ĸ?C3Y;?]>??4뿛n?J翖HTc1M⿑}u~]_=#?z.#? lҿc\'F?[չҦb2_?||k=뿨)ʧѿDI5b?a#ܿ9x??n?a?TL?;rXzdS }A?z3Ή>s-?N?X鴋ȿjL;п(2ѿtN(?0ZȤ?z){k"??п1?pH0ݜq|fe:Tۿ?ry̿T\;t?Ջ#OgPk?O2?q؄O?-\?b}t?D˗޿ڛ?mf A1ĿVYh ӿl,? k ?Ep4|?8}?ԿHo翾Uw{? @CRFQ>?ȣ?TY UT)Lq?DڿЎѿ8n6\DR}?Kпg3d?@c䚿/Q?8?IA-ǿi͟?:)M6?H;P?Aƿ3n?d*k zf?ϰϬ*ɭW?/{t 濟ʛLҿ3?U3??-@F9?笠µ\d!*ȿ*+d?:`?b!ǣ?TYtֿV\?ίD?п,>:s?#Mrؿ rǿ?p-8:?\GZ?ڿPnPS??w?ggsRrü?uO?6M?g?< R.?[-+ɿ8Ra |h~?S?^+~4?WB)?tFEiѿ6cX?Fտe讗P?`}[KRfH3Xܿ(9(eʿi/˿cҎ?L3D+?^ X?ƞL? ng?$VB۫H?s,-=?80x?N0߿izv0D 2翀_xn*?63οЦ۷r? -?&A ( ל?nZ?j ԫx?qNl[ƿ8?$jSˣͿmƎz?qFOw6NƴL"}?SEr?d:\w?JK6ߴ.7?7 P志I/?a һFο0U ɿ\7;E⿏?(?d?Aɺ?PlLjHJ٧?.sʿ1mv?2 ˿J1j ?SIҿo^տ ʗf?o?`0?v_F{ֿm8ݳT'¿jSMN ?\ֱ ?N T?undڿӜ^Kֿ jeK/Al?Za:߿*_i?pm?pXp^YpWX ?'KPX?|s?Ai?wWլ^i}꿤&@O6?c2g?YTFBq- (ҿAA(0M@пU^F ?Hawl*#?`3:Ῠ;y?ձ㻿F,?HH7QԿ? ? 6@??w<~?E0 ?{YvqtFVP ?&Ó0_翆 ŶMs7e.zh޿$A1Mu?H+꺿(yO9q$HG+);X)@?MGԿ˧A7S?0ivx?'rh?̶L?߽C迂iT??忶ք=?|B5W?rucֿ'xr1ϿΊcCl?᠙Y]ص?<ֿTii˷?zt񰺿$!%?B҅-?݊F:a?FI׶?5R52¿lѼ?\ ߺc)O2fpn%ʿ ?ˀJcM?8w Y3S ߿s??=J?R?K85LJoڕD?J1OG?HSƳ.ҿL@>ƿ8d;E0?0A,?v?Mhֵÿ1Hʤi쿐]DN]g?D;??jd3 ߏѿa灰?gͦ鿟ypT?d*yƿ%?$ɿIa1c?(0O=F@W+?q1´?]ݕ?A8?5ʿd?Q`(^T[?.t><7|jcп$+=S:D w?vyȫUm?;wr?*C6οTX9⿺Օ?>W@N?8I[Q?j x¿o ׿A-Yh?a߆?ɽw"?G(Fο}Gο+!@ ضſ_ռ?E.Hݿlf?FD^?$0?\$L?^צR[\Y?iyY¿(N?T:O?<#c%c˿ٰӒ?m4)=?X?#8ؿ?Eh濔`K%/XD*^,῰O1?FIcЂԿYvyFaеPzѿ"~Ƃ?\<8c0}(?H}O#¿[I*?w!#Ф?ѫf"?f?׹ҿ1yFʞ?yIؿyx״?b6wà@W¿RVƿ_dW??/mK¿ޜ|z?:~(C5ãooǿ ؿTWS?0|m^y? hz~2DeY}H?'I\ F C?o??пL3WC?@f࿎?>H?S?Ji?ZӮLۿ mұ?ZHD$Կ9?֐ɪ?S RON[:ݦ?ށz,տJА,3 ]_`?jF |?c`俽ID?A)&5?$?dw?҆ρF?[ʎa( ?h:?|Trbf̿ueOGU?@jm?+.N?[?ʿC׹j?p?7%U?% ?@5`eʿdX}?*PK7,?O9z!?pm͚?}|:߿ZM%!ڿ҈G#ο.7ÿq?Lؿ $ ?vfKO?^0/?ֽz?O7b˺k:?տR?cn3\?=k"e9fE;ñB/9=xgPN>?54ĿzMV`?N$Qҿ8xi?pXVrù-W?Ʉ̗?'ޱпHm.-?|Zοr[6dΐ F?Pea?EC5r$۳?)?.D?@2?d.1Y¿`U﯑?jP!?HntF,?6YYQPf˿Mk޿4h񿠤h??85b槰P"8J?(ϿJsC?HX?Ǒ:ű?d ryn)οhA㿲yXؿN7?48L?`p@?\ШԿd+c?3턺?/Ǟە?RNT"?;@$a?q ܿ~KŁn?Ҟ)?J?Tmy=Ŀ*Fq,qej¿;|ῆV*/?+ٞGg9&?Bw^1Ŀ ?tӊ}?LR{`?.dؿ/n>؟8տ0aSҿ 5?WgB& bF?}`!b8οrYk?zA?D'!۾?j%kZ?nT!E"ݵH7JI:ؿ:Ԕ:F?o!-{-`?nNt D끿3UMTF?=48߿}-KSI?yJ*v|_G?S"ǿGɟAjr -*q?WP=dܜ>Zù =*Q`S?*ҡ]?H ?` g[`FqܿF闿}Ǵ?\H?Dr?[m?Dc*;K[B5?2y\6W~춡jb?h[aÊp?XgY?Bz^ۿL/|?i(4kԿ@,?<0Y[;Կ+ݥ*ʨt|(H7'ǩؿH0E‚DȿY'F?Hpm` ?P3v+? K̝?B7?6 i俾ה?qzj?m'gN? ͮc.T}E+z1w?/>d?Jʛ^Av?bV ?vY4Y0ǿÈ¿ѿfě˘8kh?ڽCi?I7|?Y"׿PֿryϪI=wH?T8?0o?R|<:\1?=>Y8?(3qԿaO[l?M"g<|C꼋?$ YW/ɿXz+lNהZ?vi "۳0?1U6qU˿ +V?Q+J?qٌ'?̀L*?{ Tnq?x# ۿlw5?,'O 0ȿ֪\&r׿| "?K?31z?ڎ\Pl8?7jRYѿ8(?:XS?Δ;M̿z#?|C޿;Oyv߾?paA+>D? ?Z?ݮ?O^d? 1S?2(1`ApDȿ1a!Կ-uq鿰?Dd)# 5eeѿ`K"3nh?ޢ?6u5?JJƘ?=Dj?'&*,\?8e0mj )k?`m^jl9U3⿓Ԍ1^?_Ĕ!|~? mOnQlfU?Ij;и?Sþ?-?Q?O9Կq?ju濣Ɵ?T5 ]BI.^ ^޿ȐڿaHeqgs/dx?,?υ?&#?, "̟7v*3.?+?_Qa?'?p۾˿Y-A?D=my?.߿2sL??Ihƿq?XHĿBj qI{HqϜ? ~ ?B%٥势CGпc2俊Gj 0wSHx@{{?t@R!!̿z"k??N?rR?/^˿>X?U=TK8?v}ڣ(ȿX {_[Ŀr>C?OwʲȒe?^Dl ܿnhF[?C-?@)}*R?8NԿviGh^⿤cm6+ֿP\0O?K?s?b҅*EPP .)ӭ߈+^?5qͿ|C[õ?C?T=?(e3?pw?~tW?wS<"޿uu,\? ?xdx2¿`&BG@߿O ʿ Ar鶿?V兕f7yӿc;bs"п{wU ֮D? tyl-ؿi?]Qy9?Q `?`l?=_ݿ$4R?|gп`D?U?'JA^E6y dc_? D%ҿ pH0 K᎖f!x?pbNw ?G(-?s?4?ucٿ?=ZL[L?yQ ??h5迾dƊ?YJV_m%IJԿrke|YܿN?q UG*?˃(2?8Gg @V?C5"$?.JZ(l`,hS?>݋ -iXp??g]"ĿB%ҿ?9o~??t1Z?]!-ЭV>?EUſ7ܺF?]{,%?vT3?L ?f(?;Klp9ҿyj2?Y&C[/̜J0eo9Bտ%Ȯ޿l-?l!΢#ՕM$߿ v]9?hߴ`q?/(ſ$P%3!}?C0d?kfd*?-:Iӿ(%y(H}u޿0??s%/??U_vOl(VԿy  ma?kWƈ?q'?_AɊ?hSAS98vUr?9z߿A U{q:lxH?9˿σAI?a' ?d9.?gGg<ahak?EUwC??i ?. ?M"yҿ_V-?2g;Z2pM!PDѿ0]\nտ :W+?Z1X豿Xw'?+fIԿ$/ uٿP9,?58?45?|ܣ?8@ ?M5 etTY ?y0 BL?k7d~ڿg?Y В=ƿv+ċ?mJPw$*?1^:?}H#ֿ̉W<7Y?{ ҿ|{Ƴ?c z&XU'ExXS.ѿ¿j9}c(LB?H׿߿?]l?~r2?ya0? 1?9w:zX%u1iͿϣ[?FH? )J&mi?&pѻWzZϼ꿋L6z?k,砿uOz?6(l?(ܷ?:g=}ڿ̣3\M?xc3Ԣ%sOFn&ݿo?w{YPh?Vt8xu$?Ս֭?u ^a?c9mM?rt9˿X.M?aRr?Vd?(C(?Q4~8MV? >P쿀J3??\bvFE>0Cul`?Ӂ ǿ:?>_=n?Lk1?+?J@u~չ?Ӟ^*F?hH?o?T|Ͽjz?1W3N9'S?f տ3N˿ܬ?BXSE8r?m}M??w:??Å?geX ?$ #`#?P>?بMɿl4@?Iųc ?QCϪm?Z?W?W?(lOl3ѿڂO!?i1_ib?`,=X¿Њp */?BHѿN !i?D¼?EK?ۯc?R*n bA?LC`*^?&Hѿjvg6\=:? ?*rw4MgO-?x"I>4l2rX>?_7 ?p<#?|߫~ӿGSƿ=|\حƜW綿N9#?`9BTr1)@"s"V?ƿ[Ņ?7z|Vw(? -j?Fw ?q?4= N ?4ѿ`Bӿ/@(?]mKɿ& Ys/?3wxѿc&?ai?s?k.Nw?@ٱ-5P#k>ـU?<'2YB\? 'F9)PKJHxO>>1_cgau8_1001_coefs.npyNUMPYF{'descr': '?ֿ;?ژ?Fg`DQw?~<|?0o׿dd%?0W#?gƿ-bAs (O?@[?8]WѾTſb\? ʙS?37t?7?@pS/޿{.G޿0Nz[?+M?uư?|Q?7^U1ʿ4{_){%>D%Rÿÿߐl?sv6?mz? WE̿P8տ5L)޿S2+?79?ʦ3ֿ)̿kS17 bb?/"eXPB+w T0?(T[?_kk%2~d˿t m׿[Hm M/>?._?y?^,dIӿpPL;I$?%0!7ԲWH?p,o?zw@[ ǿ{?NRoK?N}/?kjֿ/eZƿElr?/?D ՠDb=܋|M6l?D# ?D!D۱?GSȿ/K=ԏ0?O?G:-?L=}HMd?j?N.69KῺ?~-׿9*:Z?0XT.?П?~ l? Tk?f?xdIgҿʴb` "aD?+pDXʿ~4z?`: ?LiE9ʿXuHbF#r)?>na̫?ŠѿY¿+9ض?}{wo&I?L?`ҿx59MK,0b\ e9ȿ~<п@`bI;|JҨYxi?FfT?jI0ZzZ?$sҼ?vzͰ?8qaCĴ?XWGF?lUᄱ?YGͿ >e׿Iݵ潿.Gc$? ҟc?+jL1usϿ:ٿꈩ5ȿ A~?&IC? Z?$a˅3?~^ W?\'iT7iݿ3ֿBC ?.Eu?O$3??nacMGk#ٿtݜO?8Y{fQ^?,ٿ{?5z?|x^uн.Xq" 1ʿu\#?rI.?WW:gx? a@~5 8ȿ6ՕQ/?,R9X¿I7g?&SO?/u>?ɧhڿP[ټXZBcֿ_*-EͿm~1Ŀ-@|9? Qy?T[Q?B54?*W~ݿ73Bܿx@% (>9Ak??|+m?aq޻ 3pkrҿ6]>ǿ'/6_ 2?!l8M??制?FۍHߴNW71uB?|𲀻?5<љ?Sw?1 ?Z+cf.+tgfX?b?7?ݍo}Hx*UӿֿXu°xwz?>?|ɹ:οUBq$?Jߞ?B$? W?b͕ۊ2࿞0`ܿǧ?j0?Iks??Ҥaѿ'r_ͿŀԿo̢ϿsɈ? x?J??=-ܿԿ-?ew?7ݔh?,?2wyd˿@غsBEr"OCTz|\ɿe-ҿ0%*Ƽ?ޤ?".8?vf?=eUɿz%0 bԢ)VS9?eV?L^xkſ` M hVp?h?1 ?,قmؿkIFF?FZ?͉#\$߿~ :׿4?V1]?/bNn?0S?m/̿2 ˿1uѿh;bͿ7Y C?I9s?l%)H?NfHvտlIQۿ ?~[n=?e#?,݆Ϊ⿥9N6ۿ837KzK6,^?GL?j?9t?M*?FOۿ7&ҿU<&0 M-tH?vmy?~E1?֡? B?Ҽ3_?aзbZ?=|[ʿ@ǩcܿ|^bjW7? Ll ?S¾δ$D85Կ P $?q]N51? mlѿHfȿp2ݿb!?$* -?GwxJ ?/o?rק^пbHϙ? Lsk?e?hwM?L?Dvf?lmοKĿ@P#?oS $Ƽ?2r1?1%?*Vop$?DaѦ?GnЪ?s3[ &9y?z73֠mIп_HW` ȳ?-d??홐?j䌠uҿ驆̯VI?ޯ.?60ÿ30Yf6Ы|?$րvǿmkW/s4,1?+'P? L?[T߿Azڿ!g?kn?OI5?y9*|?0((4r!?(V? \~ſEA#WۿM*d-?1Q?_P׿D6NLп!Ň@?]<ҹ?9Gb?ʊo?<ԉRԿ`WԿOu*\J?XIl?.!?>m;;ۿO'{?_TtX?:̺o4^I!Կ9$&ӭ&?,Lp}?9݁P?0ؿfg ? Q(# ҿo|9E?J6?u-;&:塜?Tm?BSVyۿȵS ɿ\ ?p u[x?fzVvlDۿ!1X)ſRX? 5,?q9?Q rԿS*Ⱥ뮹 ?.9"ųp,׿#ڟϿ؁u??/YGo?I"+ۿ 9_r"?,h?:IؿYѿW&9"?L?[[t?q<T n¿:B?L^?Y@?yёѿT9#Ŀ(ô?@lr-W?ɇ?I5P?C 4*ſտW^ÿ{?,?fM?wVhEܿfs3ſB3m?hqU^~?2붿ܦ|վ?JU?Y/ ?d3.ֿADfտxsf0"@(`? )o7?7WWǿmvRxkܿ[/U?6tg?~u.?xz_a?NFgM&?Uخ?`]}Ͽۂ_p+I_?  ?ĹnV@?lP? 9ý#%Ͽ?ѿ#uC¿kE~? C%'?jJ?| ?gP#?BgP1C ~HDĐ?Z?\<çO@ҿ&~+Ch?2?,ѿq"t`j\& ?(w?]=åjw;i׿9Yq9?6_m欂?(H^ǿVI%¿ß? ̷\?c@?J?|j!?b`6`n?{wi0ʿ{>ƿGr@m/㕿a¿? 55.=ͻ?v  ?޳Qy?ㅕMӿag"E̿\Uq? jLߒ6d?I{f?\9`?x u߸?lM 3frĕ`?xӯRQ޽?+F=ͿV|ZпPqdb[??Uzn?Gc ƿ=Ŀ3&Ѳƿ@vh?jݼ?~ђ(~B޻ ٿ0ƿE.6?oRFI>!LIlcn?*ajo? EĹ?tsɿY̯n Z?NoqK]q)r} sة?"?Cτ:Q\?>&LĿn-4x ?j ?WߺO?Knֿ +k0[Mҿ n KulV')؃? G'-u?пb3D3V8,^ђ?F B? ǿ#kԿ<&Կ @>Dol?Ԍݪ?eҿє!Sg% ?$Ϳl,tV?L\Vz?ɱg35хٖ?ov"?T̿׽ĿXr"?=?`8?z} ۿiEпÀKY?1?X~L:?Z_D}mؿ@6.Aҿ̲I?;F=?i曬?U8?)?M`?8EA+H-|7=v?<3ױܞ-пUvZÿP]?a2?u[o?TLͿ9CAB?? ۱]+Ќ~ 0y9l?{?!F?zI⣈?uJ'OӪ2Fҿ7K`˿>8G?tIoƷ?LÿZv4?d^LF?؆}V:?#BпG)ƿp 5  (\3!۲?`tsN? ʀ?W,?𾥟 ?= ǿZȴݿ—n$}ѿ3K?Ma֐?%?Ul?lEJ;ÿsx?{ο`d5ҿhU?NR??0+?I ѿbR5ſ*?K=^9?3:0 ?lʤ Ͽ:[3r޿0*,&_?lm?&SNs\$q广G5i? ܒ;?%:)Y+⿉JƿB?ΓJ?PпFߘlq&-?3[ۿ4tlX\?no?j?D'ɵۿۖ6\u."?vJ ?eҿ>`@@?!ʸ4ҿѐrgf?v ź ?oj|(|]Ϳ[׿ y""..?0D?,5M п}q5N?"&Fm5|? r%?6rṿtAhۿC ?h 0?*B`L?k6-~#%C޿ 83???A?WLe IC(66w?=`?Q#s߿iӿntX??0`?2(԰?וN}=k?2Q?`[ށR?,ȿI|ʿ8񑫄?"IN%?*?g̿$"b?#ʚ?mE ?洿'mRͿ޴nٿU пt?]?TOov?s?Yп^5п #/ ̿F6rf?UY?Vzb@!2)ƿ0t.#ts? frg?x^~j?DZoʿ"/硧ο6isq%ƿ(žz?0 ?@i`?b]5ѿ}pпQM??L?M ?tz*6}F<d̿_&A?b߷M?M!hѿlԿ(v޿; '5DK]? ޙ?@ų}ҿPnY?%7?@v6䩶ſ Vnɿ2v^˂"E?d81?~ȿhi'ȿ{sB?精?'ryhg?`>?@< R߳o?W ?r509GPrmnW?OQjp"?^#+.?Lȿc3O+u>M4??fXvQȿdͻCؿd鮝?qI؄8??.x)sgؿJx?:?/B%?I.?<9FǿħgܿlTпI?HRe?>M?N$Mqݿ2|Ϳcu?޾ŶKq?L35Fۏ8GjЉKu#h-Sk?Qf#s~? u¿g>Zj߱k?J-[?>!$k?Aڿe|ƿ6lUi?Moɿ6iK!?i R ?I~?8}Ŀ;vϿ;oտEF.FĿqr?[?Di8?tW{ꢿ3JֿT*m;ҿ(Y覅=?Pﯘ %?ښr?FV? rr^w[[E7ZĿih?kٸ?jRg~A8ƿ,r}?~J>7?hϼ?,80oѿ-<.ȸ?,p?G Er\S?|.1?x "ƃ?6ѿM[ׄ̿ ?2? '$?4h}w@ͿX͖?Pf[?xcfs5a󿿿0 2Z?q¨?.{8?GM"? C{z?ޘwȿ?ɣy:KO~E~ڣSaou~?)|?K^18}P5?)9?L.xj ׿%JZпd? ?Zi ? `H8rܿ!oտ43u?L?wG?Z?> I/tTs`ƿvAmn$\6~*]YU?vʗ?䤺9௿<ôZ)eALp=?56)6?"E9~'߿m:Uۿ˚\Y?;}cH?>0b#f?Zp?]tɿS?D)?W?t'P{T;ֿ6 & ?-%?5(X?2{V0̕.T翰oe?P? Ԋ?YQAǿ!~m ? Ǥl@/l"q?xA)L?-O?_5T:~tп,KwY?Ucx?Ĥmw ӿ>` z 5tbl?9yXew !<)K=ӏD?B( o?wVv0oN?昌vѿɗ!(ֿݽMпȇ_\?#`T?d?>jhFGƿ ¿J5?IQ_M?v?t?~.P%Կ4 ƿEx ?hJ~?,D?̧D UY?ָ?? ſiTҿF8^:s|w X?#?tɿ¸&g@? D?DFcпX0f@ڿ{hl\ȿ98?9^?T)9fhoK?H,\-H?&s~Oxb,Z"IV?3Jw? CB?F8&?\d?ڬ5%]8A_οeXLl?z?eЎV^Ðܿ珵W@e?]?tl*bտ.?Kn? V޵?0Cڿ~h~ӿj!X3?:1?Ⱦ[?jR !?5Derlؿhrr߿0)?.c?sa(:?/_Xڿ՛?_o?h|+?Y? ά=˂4ſpmoͿЄ" -~? ?HfMO?*djcCcAow¤ο g?Qut[?v!85EǿSk?ҫ" ?d?z6He}58j9?h$D?"D{W?q.=. ?5Lb!ܿy Xz̿jҭ?w"ɼ?9c˿Q`DpZLл?Z?4 X?aֿ&wf,տ4Pf$c?ݾ?1\?HC˿I:ЂG fÿgsn^;?i@?䒿j:hhƿ8.SoXb?xa?? sX ?L֜K\sN+y ;}οkɿi$?ZV?4Jh?;c?p˿Ǭ`"Ҿ?VΦ>ǿbl?}?/R?/DͿӿ{d}5 ͺhYc?g[K?@k&R?(6_?~Hɿ'h_˿wz-+ϗ??D?k)__(p5|`o? YLX%(X*?=2ޱ?ؘyҁEпO`|}dtT?[{X󷿙ۨ̿@z? ij?74)`?N1ֿ[2_E;? ?%Wf:ʿ"F fV?`?X0/ݲ]5?ĘB~xÿ(b4|?BZWaQ?̡-PvϿkڿ*K9P?jѥմ? K?(0H/'c[޵ٖ?-*1? 6m+? l^п3c,+;?g@1J?kU4-?M6Կ4P曬q4V?b-|+?ݿUhԿx˿80/ٴ?qA?.E`?Yu? ZK?f{gwDҿbG`?ra6?. Ѥ?AR =?zܐdU'&Կ2x?`0`c?  oWa?s4ʿLF?ɘj{?afοj?ZyW]?iq?.嚿)dȿ}ɭҿhߨĿv>??P ? Xo> R޿&,aؿkx?$m ?04?eس?|>{B8HJR?%Ak?fANvCQzϿf:6/~B?cO4Jo+пVuҿwz6:? I?c?jK?faC$G?*2*ٿVE:ɿ [?,Y,TlJ?(r ˕?Zθ?qL ׿ƜWSοWŘ? ]eT?H%?hu1sXtѿkA4!ӿNRN?? W?/|O?j_?ml[^տ7:Fӿx|to/̿Y zU擖a?Ƞ?t}??^woֿk{5"ѿ ÿ?|E?__Y?Vuż?$`>*ȗ?*˿cZϿҟQD$?NGB݀?> ?8pſ)?Q㺿f ?߽>w?xeտʖr9AІ?خNI?az hP:y?K ÿ =^ٿpT˿-.aM?Ļ!V?ߙ"?P޿xmӿ\p?8y\?n8u?RQǿ?&[?S񻟿¿%aX>pEI?].?8pXSɬL2d׊? $_ 2xUп!c ?L&ˍ??tŲc?ع83Ϧܿ$e%ɍE?0gy.??0.?h*0?*?̿+,L¿sc^Ϣ?lcy2S|?ha? 7T?¤!?ݿv^pؿm۠#E?jwK$?8tE6?`G-տuZ ʿLVi?'?~? M5?sϿ^iBпa8̿p? u?n6?xŲ$_տ":lؿ8;Hj~^F)I?Ocm?J"~y?f-ɿ%KWؿ (ˢϿ ů?`?vm?&4:?k#IZRoڿDIӳ儲c)?9I%rb!/̿ 6Ɗ<?tm?&ȿ[/ѿYϾ6.';s?5Tm?|RJ?x3BR?g_WuȿL}YwQ?w?[,8TC "<X?'S?˓Lss?PT8f4ZlH%?A p?Gm@?Ս1;|/FRA?Jm|?ץ=^;ɿҊK? ?˞vm?\?dj#пRp׿Bп&YyȊKgl_?.cs?<䡿ª ٫?vwʿ"l4ȿ#|ÿhPܽy(₀?T)?x~?Zr<ſ@z;JҿS U_?wU?4t=ju=K[/=%=_k!;=5\=oP=*=fB="=e:=%OL> @>>W>M )>dᛑf ><Б" >wCy>~>cS>~ >>)>ؚ>ozs$]>E> n>e(H!>IlO ">H*$>;#|a&>8y(>c+>OJ->!.<#0>hK1>EzlB3>z5>ss6>< &qR9>և5];>}HBD=>C7I@>T9A>*]G`C>ibf E>-G>II>x6[K>7eBIM>R;

    3fVQ>ʀá@S>6T>b:V>[:r#[>;b]>Dn?,_>LF `a>3Gb>-EOd>zNFPf>]-S>h>ZhDSVj>:]l>.o>Ye/p>f*Mr>Os> jnu>P&K}{>hj7}>m(>1~E>/Q>a_&>u*D>6T>:AD>. B>Igĕ>kM$> >OSvy>ӿ> gfy>us>UF-&>'> J]>e:>(3r>,1>>X&>E#r>is}`>ڥs>IJ>_TÊ>T)ձ>^8>"b+>TwP>9ןM >>SKuin߻>2 1>%>l9`>K#>4 ^>x{> {ΞA>')j>a>V3b>u|>s3>.o>:7>[In>k$>>Ѯ*>jVY>ֱ[U>vA+t>e(@>xȁj>Ҏ"]>" >yL@d:>)Hw>7E5}>jo!J>)>6>jB>0Š[>@>ۨ/U">E"Hu>+> ~D>a}>-?>C ֫u>prEC?^\?iӘU?;?&M1?Bnۂ?A_?r ?kK ?~I ?a) g?.?Z ?1R?b:?ۢ??[/4z?o`5<??ط=?ކ?`(Q ?eh` ?t+%kh!?""? #?f}$?فX_-&?r槌'?T1d)?14*?3),?-?zײ/?mJ0? %1?ڷ2?a4?q,Y&:5?̩}6?57?֣e;9?):?@FI]?Lr̍^?P`?k&"`?{Dda?`J b?ICǵc?0@Qd?Fu,e?bf?+W h?,Li?f0kj?k?z?SQm?Ln?'p?(2p?Rh$gq?@0ةr?9s?r,t?yHfYu?év?;Yw? \e x?L)y?E$-{?t|?U}?o.?C+P?~*?eہ? 笂?!?RWi?QFU V?W(K?;_K?-C5T?fƣh?06~?sV?;c?觕(?<]v?_೧ih?vg.?xͱ֑?1'?qt`?0?]?B\Kg?X,=ϖ?bF?^?btϰ?'d?F顤 ?!1?D=?C?ԻW?!\>?\2j?+9,?^^?-e?j ?scf?A? :"?sY?$G?%o?*&m?n^?dJ,l?d+?AE-v? u3+? {?Myu?r_E?)j&k?el# ?%W?a}?j̀H??{ʍ?s!`J?N+p ?>%0H?~?}QP?o?ҧN:?P3cu?0ʯ?A ny?b"?JDyZ?#V?܁E?|U?:D1?@d?&?Ϯ?/ْݶ? 0k}-&?QS?E0?cn?NM?i?)l?jC?; f?™Ά? y˥?)? Z"G?,:?T ?Ftq$?\7?KFI?fIuX?rNxe?7JWFp?\x?64?-?A?"̓?4 ِ?ɯz?!9 r?ؙLg?8$Z?\J?Ɗ8?ԇ#? ?d^?5??և3?&_әm?E?\?B(?P,9?p}h?S+V?> ?sZ8?欥?"ne?d>/~"?0-?'U5?jI?б0? ;B?e`Y?$?#;e?:+*R?EM}?BIf?/; 4?7]$?[s k??t F\0? V?$ey?+?S?Dv?GRA!?%?>?H?=3?g5?J>?n.r?-}T?9+?E U_?#jͧ?( ?u ab?*9?,a ?>?3r??Yj?\((?fA? V?zWњ?_ ?_ ၿzWњ VfA\((Yj񼿈3r>¿,a ſ*9ǿu abɿ( ˿#jͧͿE U_Ͽ9+п-}Tѿn.rҿJ>Կg5տ=3ֿHֿ>׿%ؿGRA!ٿDvڿSۿ+ܿ$eyݿ V޿t F\0߿[s k7]$/; 4BIfEM}:+*R#;e$e`Y ;Bб0jI'U50-d>/~""ne欥忆sZ8> S+Vp}hP,9B(\翓E&_әmև3翳5d^ 迥ԇ#Ɗ8\J8$ZؙLg!9 r迅ɯz4 ِ"̓A迠-64\x7JWFprNxefIuXKFI\7Ftq$T ,: Z"G翴) y˥™Ά; fjC)liNMcn濡E0QS 0k}-&/ْݶ忖Ϯ&@d:D1|U܁E俎#VJDyZ俫b"係A ny0ʯ㿍P3cuҧN:o}QP~⿾>%0HN+p s!`J>ʍW&NyῘq(L83EFvQ7 ӣ߿E#a%$߿xs|޿@Ů]$޿5f~ݿZ"mM&ݿ@Dgܿ(ܿs[ۿO-ۿOJڿł{3ڿ{@ٿ{<ٿؿj̀Hؿa}׿*W׿ el# ֿ)j&kֿr_EտMyuտ {տ>3+ԿqjE-Կ4ӿ-e{Pӿ@!ҿIٻcxҿr?ҿdnѿ)ޭ=ѿ%[cп9'sпhп1[Ͽt[VοP4Ϳ-P!Ϳzi̿%*˿XS˿>o_Rʿ&ɿ8zjȿ`UȿSQǿHǿ BtƿQ_ſAſv̬Ŀc)Ŀkÿu<¿AE-v¿d+dJ,ln^*&m%o忿$GsY :"Ascfj 􏺿-e>^^򸿪K{+ԻWC䳿D=!1F顤 'dbtϰYHZ>x2|b?UBSPTDEBT\)†G.4dS- ff:hX*C=ȦQfM1i+J+fh= 1F:"P䌡k䠿~EB*`I`L9՛)CšP?^],n,[ա(Z0XӏW9TZV74UWtTkS5YR ~s"Qxߵ6ko!J[E5}WHw羙L@d:A Ҏ"]㾓ȁj7e(@ྣA+t߾ [UݾVY۾*پ3׾k$־InԾ:7Ӿ؇.oѾ3оu|Ͼ3b̾aʾW)jɾH {ΞAǾy{žZ ^ľn#¾9`%3 1Kuin߻⹾ZןM wP"b+^8v)ձ_TÊIJڥs5s}`E#reX&1>(3re: J]j'ើF-&usgfyӿ񣖾vy*hONFPf,EOdGbF `am?,_Z;b]r#[+)~ cS~wCy<Б" dᛑf M )>W @%OLe:"fB*oP5\_k!;%K[/juf>t֠1ش[~^hg_]@ PKJHB>>1_cgau7_1000_coefs.npyNUMPYF{'descr': 'q?^쥄Ƚ?MmYڿ N?V?j+?jܨ Ϳr&1>}ӿ [dzW3sЇt[ʿW]?PqH?`#8xnο4Ŀ\q3z(Q ?hխA?:p?ٿ}?@"ϿHֿ>W#?Eb?ISR㼉⿊3?(?N|?6'AMϰ|7ӿPʿdT.]?B0q?YD8?oL"?-?Y?Ds?6=?3iO̿ \8#ۿm]X%?/KT?se尿w~㿁mΐI?}}?p kx?ybpֿ*SԿicĿfո?Q?婅2׿!3"7?T{i?l/(?ɦR;ܿG>t'=ѿl/z?[#a?lV^˿5*왿\a2? A0{?] ^ʿ/"˘?G+?g%>?-_|myu?:): пZ]M?z#?,Cc_Lѣ;ѿnen&+?s첪5rٿɠi?,- }?+oBm?<4Iٿ|`Y$ƿ8E?] ?&LĿwo|? 5?ĉzԿ쭤 vbݜ?Ҫ?bxU?뿁pٿ/ӿI`!%? d(͈܀j}?n/?HB~?d@5Կ$`4\࿻RbO޿11Q?{6F'?5XտtNj&Sfʿ\s?kF?e?dؿLӿÿB7YXK?^8 ]?8a}?z:>$V3O][?MsMV?ECcSUGc0gI?e_񥎼?ӄ?E֟e@)ߗпErֿ֨R ?ڒ?BO妿'i࿻ ޲q;?3 'Q?'ֿA Ϳv0U?\7s2'?|2SSԿgʏ#/sg@>?ߡu?2GO?P':;8[Ŀ2lȿ+#mM??'C+E#2 k?@%?ۖ~m ǿ-z\R>h?,j?_=ޞ'?I?2D.5ѿe".é?/dnh*? َ?ܒ4t{?hI%K9/ }o?K&~4Ug%g¿^Suǿc~5OǿZg?եH}N?̚b?LnǕ?w> E`ʿVsĨ׊RAɿ2X#iOq??2W?{ൽ?dBKпN'~ѿ6y?:'?0Y#z?p?ej9?0?nտnԿ *nPÿ-[?x8v?-Q今?P^^׹?ݡ?]d?^m'qտ ({c][SW?R`?9?}aq?9v?Ktdz׿ƽdk?[?6? ^˿KUѿ]?#,dȿ*؄,kErR?8V ?N.8̿֎|'?K?3?~jJ*rAMCAɿ R|? /??X9Կ?k?ph q?؄蝴?IDnh.ѿ "¿ʉc?Ԁ߃?P nއ|CXuYпnZ6)ӿRkm?r?r?FL4eƿJh?煛?Oːz?`G9տ^:_ٿwy?pt? Fܘw? i ?}3yN^ ҿ=U.*ۿ_*ȿ {Udм\?|hGA?YhUÿz1aٍ޿ ,,k? sRʿ~pѿM;TZl?7!?XZu? pwӿ7TJ?D?f"ʿmvN\Ӌa?Nji?$d?(#۶иnںɿ6mM?8aʅ?AB;; ֿ*1?@*/?GE? ,ҿd$ȿ,DοzqKg?Dm?Oȡ?p] KxsZ?7ڴ?kj`I?⚳?c@T3¿rݮ2ɿ`ܿnl?IʂpFѿaliw?Gc?(Ґ?sCѿ3_?1?,TŖJIKؿE) sy?J˸?@PkXHZ?(QĿF oeʿ#G??<1?}G?,"?E}οiA.տ6f4i?쓄`?J j?;p?}ƿ]׿B?=`?l0F? v=ȿ`mbL)F[;?m?r!?1οtݿ ?\?8:?y=ֿ.4 ? ˣ}??\?k?ߌZ~ӿ3! &οh-ݒIQ_? ^DŽB?L ɿL|⼄?5x? zدNտ^\OS?xp[>?[qU:JL;jؿ8QLݖ?λ?2? Df$̿YT-ڿpۿO?O_Y|?nHp?5?[X@94|FZ^ĿJFԗ"RdoMrf{Pȿ>?eE"d?VzCMbҿ0'\?™a? OPVƚ.^ֿlK)@%maT?; gBH?(hpԿ#T?8 (?sY? !CſUٿ7j  п#{2Ҳ?ʙm?`eY!?gʿ+P?T5L?l9a?bv}?z9FM¿n銟iԿь?x?tV&ڿ&YC켿͆?yOϯ?~EԻ?;; ¿-KUNslƿ#8?ZS?Ѹ0@Ŀj@?P gp4'?1?MJ]?#Ŀ,WοX?F\?ΛOԏ0fu? 4?%;?Þݿص鰿g9Р?!J2A?["tCȡ?Z<#(?.UdzLÿzǚ~]ѿ$!iE%?v .v?~WEl??+0×,.?e,H?5Wϴ-̿`mSn?̝~?Fgk?p >0qioH?Z2AEGPO?UH?]4y?)xhr?Dڹϒ4 sUxFPҿ;%??\?d{|?!ӜпlܿFHؿU?K8S`?j Z?~x=?Krֿy*+,`L@<7?|;?${@d:U?8l?:O#eyH*e+SX??0"p,wĿnۤ?mlַj?wįĿRxhG9?9l?Nz?p"}~35ٿIu;nҿ1q/yĿ1-aؿx&=?4V??Bzi̿D\N翲q?NZ4?n1Ŀ._z [YëK!U?94? }szJӿ0?P|?r^ҺпD|@?gm?-1 !ÿNE㿆ĿI ?M?;M ?i.}54ϿH?1 ݿ= 0&7?3?@/Z^޿ajȿFUL?Zy:?+ց?8c7\+:,8:ſVU9"пXο_)W?Ŵ?m?ب_ʿ@aZv??ϝλɫ޿.F>W_?y8DaN?TeJE9^?~),AFſ o"+J? h,k?o_?beVhqF+Y?#YH?)oM[﮿^(]?F{?ew?qxվ?:γZzө?1TNſ3V©Ϳv_{sPmʿ{S=?|?FZeɋP+տtm:'9!?Eod?vHU̿iguk1`?7v?3#3տxͿds.Y;?eAkL}?@%g?sη*\9¿xIe"̑?1_j %ؿ=91?ɤql?ыƤ vڿߘ"Կo!?˿l?8E?nz|O豿lv׿>q&ܿ2&!yп!jd?r08?컔Ϫ?71?bſv6b˿`?)xZ?Bu:0MKhڿw̓%L1h?PC*?Z+^?ο̸UP޿T ֿ 'Ϳ@M?-;^r?`|?fӗ!WqDzա?A?@~UƯ?^`?RR¤PڿwXr츴?@RJf?;?zW84?"bݿ>x%쿛ô\:=P?d'?q1E:տ0տ^pC?OX?wU?|?"? h*`&Z?]Vο<ۿF~ߣ?@j"=;?%"ӿo+W?l/?Q(*Niֿp&ſ1n2? pXJk?6OͿ3g3̿}+ƿܡg݅q?i?ϋmBvq%QKο*)?RG?L?䡌xMuƿ&@q?Viy?9|¿;2eOϿuKⴿ 7y~<rÿݛ?t#k?O@?ިͿ6_ x㿱QTֿd??Pܝ\Đ?K/2?o.M?؇'o?ZCͤ?HEً?,XHgR٩a¿t+PI\˧?VcOƩNBҿG&ʝ?Sn?$d'd 7T\z%?/B?ώ̿I Isn~L~V?1ᲪZB׿j? VKh?z/?<?H̿l `]̿?v߷ʿR&606οdy&?П ?j"Xj?J*m̿xҼIupu?4z,?p/p&C?9H7?`b!Qjh㬃a] ^ҿI׿w?. r+?8idMcڿwW0?ŕh?ץΑ?RCqؿ- xncjD$"?iD m?ؒ7\?#q߂ٿ@#"㿠*W,N?,\? C_?ɿ̰xSÿq|b?Z;?#?nex?\: Y-w㨠:mqd$?a<ܾ?.z-?G!?I{wӿLqBYz82h?7qLT?e? *7O?8Dtտ{ؿBЉ?ƶJ?|&!?߿ [ؓt¿4?lmU?jWE@f*?ݑalPZ~ﺿ0L})?R-?ໍ]$1" Mѿ/Dg?4??w MͿs#'4ᬿ Nzʿry?V6?c2?oKig?z?g? k+?$>SpȿnlMEտY"?'joWmީ7?ByޱԿ&? GN?4|EͿX꿶S(kfĺ?ev(?>#?05 e#W< ?.Vjտߣܿ bWyl4Q???eN?(ſlꩈkjƿ -kK>0??9w7?i?&?z~W1' l8FHM?d4DY?dڑ_"&v[C{¿6ÿS^\?PrO?2n.?İ˛8?S>Ů=?SKɿy>vsտ3iN2?5hXM?WF?FҤ-hz?Ip{?z/jٿZ,۵*]@? o9>?K=ÿY{lɿS6֫?6eQ!?ڃM?K ?';(˿Զœܿrd縿͘OLM? O?F@?piM?pʵ?.{B?%tο TAʿ{>Vh?NK!DC?1ӊ?kLtmC?<[ڟS2' ǻ[)H0.>?z7T?6\挂?D y?o"% ԿRRF~P9?k?P&?ł?Xc ֿi4gܿT&KQt?jj?b` ?_?95}|ƪd6(ȤS-b?yn|a? sTĿpd1=ǿ&/1bTпl?9YO?d??0??<¸+ڿ@ ࿘Εh(?_¤?]7!?Lop? :.ſ}9!Ͽ^ S¿JGy? M?Q5 ?Un<ܿC׿hq80shs?`(h?1Je2=ĿЙ, `Kr?"M_?MDJF𩿷?c?N-p1?""< ſdֿ?|.i?z{GRM?ICҷ?,Jٿk' cw7=??Zw?Xv?'}8 x:%,?o@?b[m?i¿` Qb̿.ht1(jug8?w(?^X$xQkпd˖?$3w?H[[ ۿ ۯӁ`!vW? !(?8 ?ȿa /e`nT??v7$?Dտއk#t[b&??t?1NɿG%wĿ֡}?rqT,ٿ %ſ& 9n `?o+4B?PQޓ~`JʹF˿F=ѿ(Sп?+Y?\/alXԿxB \Ŀ5*a?O[!?4ty4#|Ϳ&94T]ؿGS?:l?{DHv?$6?t(qƿv.Q'T̿>I ?5B?/5s9?D;ٍ?ow?B]$?#ſ6_ x I3F t[u=}'?пm~(?|Zo?R@ſͣ)忤g鶿0t_?J8Rz@ӌ-y? Lv?NHSۿ;/ տh0DοG?6s[_? /ߝ?4ǿ{~׿$y#*o:MӠrAʿN??ы n|eEҿMG i'?殯?WIةÿ*<]?: ?{>?,ִC2?(ҺU?hH],/7ÿ֔ _?9azaѿAۈQ \3 ?1O>k[?7Vg5 ?dS3?cK3*Jݿ*klMdŧ? ֦pϾ?d ſn"P ˡ?Ql?;0.FO[ڿ"H$PrZq?)z?92wOʿMJaٹ:P?FK?V)T~G?\`Yi?ђTɿMؾ#ݿ&8LA?Dk%o?v Y#?fcqwȵ؀ߥ̿EoIԿmX%Y?(@?_?:lοZUCndjȿ?5KE?Nt?/ qR?Sv!8qп(z)ƒ s`cT¿CT?zw0 ?BXmaŔ?SS3q?e8b ?pyiq?0~?d-bǿ(ʿV~-? Qخ?湦-ɾ?<ڿjwu?-uC?{R?rƮ䶿?QZ?{Ͽ-俀nmtpٷݮ?Yu?w>%?h3'ZFڿXYdJ'??dU?@ƿLC {Քo?cݳΩEӿ}&UҿEUhҿ@n7?Zl?~t?Q˿*֋Uʿ@ 7ɣ?4?!Iﲿ !"ӿ$K;W?$j?(PĿk 忏=gt̿_(?ε?O<п"A?&?(LC¿PKJHZސ1_gaus5_1000_coefs.npyNUMPYF{'descr': '?C]俓_?GJePҿ_?jH:nV|-)?.ݛ5s?LSgJp;?/J$wϿ~2'x??ԅ55D+?mZP,l?gҿ1BT?Uz޿ǡH?Zm1?2C N8?CDp$¨zDw^?gFۿa|?&!Hv8;?1U?;(IH_?틊3Gp??^3 AF?T9cg? 20?ƪr娤 @Ti=8-" I&y?$BYxZM0l;?C%yп NN?L1忰;6?NC2fDޜ@nfT_2*?ѹt\~?$Vg??^ȉ,?uoIo?,Կj;?>ZPvNU@z'bB(lH=2?xr+pѿwKH?l5J{0Tzn(7 *?>Ȕ*d?z&2?ⓨǿwcm?cN[?h8ą}):?o%A !?f 1? = )2wʿ\\)?\c^1;F?տWJ-ƒ?kE)?+=b!ʿEOyU?!\?* v?(<\ֿ @?LW&$?O胑[ ̯? сI?ρ "1[?04&8jA?&+pNш?؎,;¿Y0?Z*gԇͿ@?JG3;Kv?>~}63m3%?uo+œu^?%4׿h/п l?@?B|ݿb 9?(ҙT]?쿌mgS?qg׿YT6 @Q@ q[3@B-B)?9%{?$@m[%gWZ?a'?sx2h†?O0?bWn?Fʿ%MXԉh?;?N ?& 9,|c.? y5E`7?>c|Afy[?o~2/,N?8XsM^h+?a#?ΜII Q?^u+ e?tCm?NBcT_6!@rE؃?4=Կsd^2Ħ?I&?gcR ?~vSp|΁"?M?84qƒ)ݬ?:.?5ٿG7ؿ"آ?$SY2m?Q% E?"gR৐ѿB}?[T/J@9?6m-?`edd0W?d4nj?$D"8<(c?ĩ͐jQ?mX$?VPֿ3x ?踧krS׮?te?P/_ T?Qz|]76@䜢i8@PWIp5y?jA?2bܿ$,?%no?޿2 ?zaQLn\ ?O%h?n ؿJ?(?jRſI ,?n+P*"?"B#`HΪѿwF%?j6 \?|?H+n <&?xroշۍȗ^r.?Rg(?G,k޿jJm׿W4?L9 5~$6z?̎Tw-} ,?!%]/(os?p%q^1?a_Կ*>o?z ?1Ei $?GKw/?zT?!!@8*1?iҪ&yN?wapZ]??7^&MD*AL?v࿒!w?+ʔ?H鿄8b-@8?mW#^vw?eD[q?D,)@/멘 ?wÿA2?8ؿ)f?>BF?5ާ^+$?E١+$S?zXAtֿuNO?-ǿԿ jG?y/?~t?Qa(VJ?pS f`?~5k5q ?c-տKn M$wp?:{?Y?ۙ Sп> %I?65 ؿ伮6?j?zzSb>?h'#"ݿ /T?Xg\~L??, -忯L6?`d,f{?NRؿ]R&?|:׿%TC?Ϳ?6)?`ho,?f%8(;fӿ(%/?V@T˽?ùt?^“r-ٿ6M{O&?RA[^?Ƃ4rCkM?t}?:ܠN˿xz_N?}D}?ʓ{p?oҿ0brE?Ҁ ܿ,Oɿ=T? v]b1?1Oy?,f!ٿANƿccI?!Z\o?F򿍎՜?"d♦J?0L{濮q?&ٖ?A+ |?R/zI0?6Z}?t 翶߹0?X+e?wP+[ ?^=?ud>?+Dne?=N&Zj ?boؿ U#?ה$ؿf%` ז?Z鿚#Ψmjz?d^ZJ$]Ƙ&֠U@*?YnnQd¿zPR?]GD+?U^Y??ЩJ(C=?l{Prbg@n}nʘع?XF:IzlxJv?_V>ZuUC?*P/i?f1Kv?˪>῔U`?3v߿f?FhB|?r=dڿ2BUt?v%?пb1C?PYRϒ`?\^YH?8Jn3O?O]4V9lPK?̓[fk8?-1οD)п9z?gBksG}?}ԏR?޳ *&!?Y+ &"?I{5"?7$K޿%2R?"޿221?-`?pFƿjp?ٶJ"?Qc?kq,ܿ8?l)CRC?(twܿ] `me?;nZ?DeC`E"?@(rq?D8 JQV?2+*ҿ"kӓݿq?u!ݿOj ۿ ;u;??){꿸&M ?ü1^?lC?1[Jb?e?xnо;&Z&G?Hpſ{!?/>A?&ПTʈ ?@b1M¿+{o?ɻK\?JdDDZ@$f?PCɁؿWs+eHF?0[;-%?ĨWBd2?ZdÿiN^K@[x]nȞ?+^!)?8Y_ܿr;, /2?:u`?=?zIڍNjO?z)g̫U@țG-i??M|Mޯփ?v =cx?n|ĿEO?;A .ֿ~z0g?,࿳ _?-Cw?yd\⿰6?  mhB)?FH>f??r5R忍-3X&?V ?QEۍށ$u?/b\Y/%?t7?4ib!q?ۊ)Q?Dj z@ A\whO ?M-w?D8XĿH( KEǭ?F.z?ly`@??F.qԿY%6?%:W G!?Ԃ?2ʿj¿f _g,?{?oΥcoZ˓ǿvi?m8ݿ;8 ҍG?ؠ6ٿbTdƿl?aK 7[ a?;)_?Zȿ$F#Rտ1br6?Q:lZ3ۉ⿙Ig??±Hh?L ߿s]ɿ?(vԣY4?Ey)$?]ޫѿpMDMw?[Ʈ(:?k_翬5y/&?_Gſ ?\VC|忢7U?avQd|ht? *+?ccT࿯ a7?ƞ,ƿ<pҿHs677p?[v:ѿUjpo M@ -\֧Hy?V sP ÿv4? p鿫Ϸ?<ɑaD?FgAb\u?zs{1 z?͗?"Rr?Ui׾??ʚ*l!:/?e*dioFhvsڿ@?xF$H?:xۿf^I[ؿiк#? ^ 򿄹ֶ3?d"k?+0tp@?ߞ?_S !*?g^꿀:$?hPT%V@/kL?$= O񿂖@jp?r(u/?hpο=~]1?ݱۿ`{ȗL?0*z?UUslp?U?:=~꿂I?8Uc_? Roxi_G?zX6]_?ojtܿc'"t53&,@pAY| |ȿ-C?rW_?:m쿯 sq?0]cz?2yRI誗?Xx?ܽ5Pſe?`ϝ[7'?L@^/ 8 veL?|VVrCg?ƻD(R?Q'bDY?xB&vf3}mD?Wc?)Nbȿ 5-g/P?h__]J5'~K?G ҿ=3uTܗ,3?lӯuпzUӁg ӿ^.qpp?Xw${?;|4 ?׿C?K"< 3 ?w7#V?> y ޿Ȝ`?3;޿b D?1$Opտz6)?/n?_0l_7?Dr1Y?+N??PKJH2o1_gaus3_1000_coefs.npyNUMPYF{'descr': 'K?$Ї8?@ ؿ9/ ѿHtZ\ֿc7P?b?Riq@Ț?i2&տ Y?BhZ޿6%? H/?IJV{ѿsE{~r)hc^g? ;Q0?(fc'?}#_nؿ@. 8?u?Rl_ j`?R62տDuT⩟@PI=M?Nv ?]M@?^l)w?Hccjпˆ? )*ӿe?ލd?VTfa꿧pǀ?3B2V8?Y!4? e?6HwB?qa@7e'z@ia]?<2xBm @J_.*Z4=?`ֹ?HS[?#iXۿw͉8Dt?ݨYAԊ?؃ ?r~-S᳒t?|Bڿ.?txS쿒z@==n?P:6vbsLRT Ͽa ?QQYmc ?#Ng]+OX5ҿ@ j~j ?[kt?3տqGTP.{?>?>USd?YԌ-.?}j}J?F῀7; V1<{?!迥.`,?,(z?X?-ѿ}ۿT'?OkHF6?U3pyrd?r}lf3cDw?"ÅѿzSNe:?Шh? &\xo_M?A;,I?9PF2)l? ;g?ׂQ?%,v4%q3 "Wѿp[w6?%xϯ4?{G<|򿺍d_$ %C%@U/_?(; ↓&wmݿv]=?Q$+8$Q?sX6Sؚ?~ſ%NJ?YmP]Y?(\ؿ;ܑ1?4翬of?U_AI( ?5ހ?fl6?mw=T6/"bEC8@zk?wN:?<=%U?Xq?PK?P곭J?a+? tSΧ?ɗ*wOڿ śCÿN?<_+ Cv?blb?C݅f+Wbݿ:њw ?bl1ۿ-zfrPR?tfa?b1ІD3jӿPc?W d=?<#?s3#?6䕁O9en?O ez/濪i|?߶ॱ?00"OM?2$6!^~ҿȾ!?;sa*:M?_h|?@yR=2?']鿚 _?k翰?0)ῩN&?B.?D^&EJ?Ҹְ3Lǿh|+'?=[ +p6v?=k;W?OY?5߿8`ۢ?vB(Hm?z$[?z@?A3愇?A?z?Wcuή 17?idWc?b<"^[^Š?Y=Ͽvy?$):?z$g |?j&7?m?XZGv ?ξ7m|p6$@?Tx8P޿R?Ý&J?r))?>`Uh^ ~87+?`򿒪?o0?fu*b4gj]?'?<'8gO?җ.o?0Gxsߺ {Gܿ0(;Oܒ2l8˿bG??'ΠտBk?,-?bȕө?{V&?2̓?Xx-ʿw;տ*uËo? -1𿮐 +?WYぐ^^-i?aRm;\H֙?ķ]Zÿ<w!É#˿ ?naIˢῒ !?@ [?KXzOY??u?}IƮ"\a?aIA1ݿ?vO2e'ҿO\a?+E_Ὺ4?̋p}3J?BˡK?0'V?N俼Dcj;?W]4drm?Ȅ࿶3(Hڿ?T!?j=L* ǿ蒉WS͎w?K3+?dq% 22?8A9X?v:!P j=?h?DBۿƶf߿)Av˿^?[.hο{]%/?l_п{hǿPvX 7?X#7s?&0Sd1 ?2@qdݿ}aʿمPc,@XV6@T~!`? S?! $?(ޓ?j>Fw|?li0?G ?Wbu˿o If?GDU(,hy@h+ے\AA?%nFm?HbDÄ s?}TKv7G?N_$.࿸:O>3?^s?z'2}?+i-ҿl \忽L\w?tU?5rM?6o-gA߿3AX?{?tV0?ؚpdj?$[῍꿾v%F?MJk0?gEwq̿|T)j˿.NY'K ]\?gQfֿWcI?0)/?`?5zKޅ"?{M\ ?/修߸'/?X`tZa"¿4+?5"F8?ɒ2S|? <ȹ??[3?x>I{H&EK@e BZN?G2\?*8e?=H?05R?TvNY zc?D^9O82?)`?Zߎ)?],^)Կ#p)?8 c9C>x?L96/^H??{;1c?3.v/pL: 2^sP?sPJctzlP?V?X) (BS`? 2A 8k@^VȄ 㿘?|ݿ(Mb?ӗE~俿֕ο*tn O x?A31J@e;jdyQȿ6" l?B6^C׿%?V_L翞kxc?A)H G? 9>z@47 ºep<3U?>dn c~J1X?lGDtFydmmĿJ2"߿p?F7?&FWrvSL?@#˿S?5׿шꝪ?+: ? eW cl?ng;?ѿPNϷ?H"ѽZܿHI{X˿7FE?]gh.p?`IO+?ekzv뿳O(?gPEl?BJ||kƿ_&Q?c=|˿@?ZϿ*9Oȿ5 0ڿjxN?l=`h3,l V?@ߐ !?e/?CKoe5?"X?g ku?}翁{?0PHQ6V2b?$jЋ࿹UCп?4rѿ;ܟAF`?L*~>iWO?1 R5 &?8<?e2 1e7f?!h V?Fo￶TQ5?VFR? C?K,?W:r=eÿ *[?,oj}fvW\Y hlɧ? ?>(u?qН̞ݿx_S?Vkw!?1?[^/Cb;@пXdeѿrեh?0闩4 P\?ė,zJoY?=tfQd@-wl?6),a,\A?m m@?- b64]"迡YU?kܿ{;ky]>@fbܺ(?jguaAO?:9{(jҿ`lq P"&?XӴ?<#}?/܀\6ŷ ?j?r&S>;N94Կę'q?[ 濤ix ?8^6俬x\?L ϓ΅W~?NotZAi?Ff R!?1TN;𿗲Q8? h 3?܊0*68o. c?z(*?ȥ7HVʕ>ڿyw-?HL3f?3P?[6?~uIQ??g8oOVJ?b^f9m? B%?׊;?O"t"9?(zj|? ,Mh?̶8u还E?JOD?_h&6Qtk ?տҺLP7ӿ8O 3?y@#w$`mX?)r?$BoٿذӿtgE?qx91K?O?\폵BcB w? mMH˿\&e7KmA?Kq迈 3c9?dASS¿0cdG?. LϹ ٿPz?gm?.,(lx%w??(?KL>*^Y?#\Ƕ??ii6.?pfGP?՝yR?>տ.?mcyM0~מ?[`b?9䬿ӿߒ?!O9C6޿ʓSn:?[WV]>+}?DPg7,'+,ɿf a?r1qҺ1|C?La+s޹?'U ??L+ؿ^B>v?bawL1W?'CpyѼ?w-d<ȿ^ZL?:zҎ?pvJ 1?ݙF\;LQ@?8://?Y6/?b?߿> ?n~$X?BcĿoe~ٿB!cd?H(ӿ 3j"?k@ӿI??Σ((ZKL?6F"`1??PH}1?|>޵翭&i?2 ǿ)D Կ?}x?ZڿD}?婋Iῲ(Z?ɲ$4uO?3E;?ZT!$-~׿e&~?pB K Nqȿ>7Zi?ÌrSѿ\@sۻpH1#{lF?LQϿ`pv[`ɿ>=IHٿ@l?8? o!6u`@ggῖ4^ſ6?̱'ԿaH¿K?Qkd+>>1_shan_1001_coefs.npyNUMPYF{'descr': ' ?Zi / nh?XO*ƚ?̛ڻ 3{:u@?-RV?5@#30H?*9+m?T8(N1VFw`Nd4;??\?F;a0WkrN݉}R2 $ɜ?<.t"?w8E$u?<[K?$#ӥWL]6o~Ŀ|)+M?߄sĿB?xX<oP`?`t.3C?`uXɒ?-O+Fcr@**G?MLvk?Us?X[ja?4W?űثh`? 4 w0D=u/ſ` ?2"7`z@i؏?<?Bu6 ?}NlP̽l3>?HdݹJ?L?rc`=J?d.Mw̔6>v#RP2ɿ?u!գ?gF?zNSٯ? 2 BUGi@5`?_WŕMϿ9r?,؜O1?pla&?ą+?tlNBj?!'hm/wƿh0?p65пV㯊j?T?o[]?X+J9'j`rпoTɌ?Zsy?|^?*G;;L?RWr)J?Rơivkο o%?H~ӿCϒǢ?^v?zi?flZ?<8 ]BWL?I똿Ev ÿLV_?CW~ Nnr?QT?-Vg$wJg?|/Dce-w?w뷯wfsL Ú?J.c=4ʖ?rj? R(1/0C L?WDx{a?lP?`p0}jDfY{?58V8K_Z/9Rʎ̿?!#*TkБ?}#?xhr?? <قܫPԗ?&MђLS~ƿ8c?nWǿ-C ?|4EHL풿Z:?6je?$?R:P?9m[bM!ϣL^lQ'j?<9? d@?dEV?<9Iť ǿ Uo?t] ̿s-?@ʇzl?v?MO*fb]?&!Ȟ$8K?nyH?R \hA2 v̘Ŝ@{.s;-[b{|?K)¿顚?K^>bC?akif?AtL 4(?'*?s ;D1ЦHcX? kJJss>??`?z%׿8?{7Sǃ/裩)D|?UW̿Ԑg?eq‹#tg?y5?jttI ?Z瑖bʿ@?[k1^%tA?|?یߋ;?uֵf=X5&bT߷?fq6iOS\7'?*bbbCm b?Ьt܂tο4|?вG.Cѿ#e?t3?,Ū`?쪇?dS]}u)?k*&h-+A?/ő.xb?O󒋳U?eN 4@,/*LjY."X?#7t?{rHU?ds,aө Y?x^' B9?顔·YT3ek?&3<$ʿP\n?E]u?5MNd|? 8"pB?m~fʚ¿O7޲҂*xGο:3?|څEz׈K?>6I?uꏐ?]L}O,cfp C0>wTOB.]?E@ra?^_?ޘ$?6ؑ?<`?E1=P0 ?cabͿ +_?h^W?}?>4 (?l&,hЦ?,eٌV?ʝ |U}rrx5y~Mj¿SNY? ۿ(޼M-q{?C]p?},?Rw֦t?$YXe?\}_qyB$Ͼ?M0xG`1ƕ?XP}?x~[*Vt?g=?4[Iq?-w9? ~l?-㌏?(A榿Jt?H}.zĿ`ˤۜ?ߠ滿"u?aL?o2;W}?2{W\A|𐑨t?NǿË?"cqP `??,(?^p?ɑ`ӻ?M?~0`J h: Gu'(؂o?™di?)xYw?_ ?l1? 3EDW?7P~ÿ2?4~>$xCHr?N`? #=ޓŀ9@?8W )w?X9v?v2,[ "DV(}0}$t?ߊ a鮿ы?Q1󺿟o>*#Q{i?QcGԙ?툿?Z@me愘?- |N?V!W?-zWT3l $h֛ſ$IN?^ϽX$ C಑?\k`?"m/v?[{?afʙpE6Aӳ?%kcJa3_?;|쳿ddVx2\* U?jP)|-?NJIЍj?}ޟilXߧ d;7PO ?/5uޝ l$q?A.`?)TF0jiG?D$`V[Zf?530?-#'?Զrd8\ g~ENaD s.i?K?vKo+]y?aҗ żB|[G/I=b E]y?A!ZahOZQ?&N?KNtHC?HiȖC{l?sg}-ɿm?`JWt?t?4X)?ki/j?w`9ˉuAr[VDWпc?tTq[ /8?3?}d eW*Y?dF]|+uRN~ -67*?39~k(4|<?\>az5?ҊHnev?C#F$]#o?Z\D1Wa?D#Iu?cM?q y?r|*?V5 ^(v׳lMz?3?^&_o?.=*?WS Tq?w]xya~?&wɿa/%??F"Tim̍?x~P>7[?hx󐿭 6?D,n?XN!m$ÿh*tŀZͿ:\׶ц?A={(G<9M?zJ?&_ug?"ٕq?.!ҳ?0Uv?h{}?N.8Llqa2P'ߎÿ%UŖ? ſ|?jwǔ?Z "? u<$?Zgv.;S?)ftjȨ?ci j?z4i0?M? ?B+`x1JC?;wUGiL>FX;?ѹ$ZzIҮ?r¶Y,H?V>-D?B(?m kkis?ë8Zq<Y& ,̍΃?0 ^br?znQEB?-~#wur;K?M+?JUBX?K=Xh? 1`ѻA G?rm]ƿ4I +?ിSW2[&\?jж5H?b?ݎQ0H˿jʉ?{ϔѿµ?vL?ҝ?捤?ku<%?ET?@owB8%?6ďٰ?88ױV&I>?TUMwׅP^̑?c$``l¿dUx?icb8Ho?%@ʥ? Rm|?ay~?+hQפ Lފ?f]a~? !-w?!r~?* 8O?&+=˟aqqIͫfu02Y?>&񱿶kK^h@`÷n& ?4^ ?vM}e_?B=OrY#3?HM?.H5>;᥯u&#Цm4kje!+Tf!z?n-XW|du@fG1K:,=&?Fbk?p _?[kzQE?jO: l#?zBI}?HV 㖂 v?!xg8^օ? pl ?/G?M:5aU?}b03,.Qdޞ{ӿjx?@ !Ϳ2"?Dz@(?\X}Uq޲q?z@ʅ^Ft*X ?r-UŌ?ni#?98J</?ZQzk`+@葸%}>ȿzпO?BEO)Lv?1H?0>ѥ?[&0P v !?bdk%p{?0Rj Ŀ5$.?7^1f? !SK@g?[ Ѓ 6ov?HQm]K$̿ Cf#?;˾Qz!'?(n*I?յ>= ?[+Sh|.9zZjeyjſSo?}4?r w ?Q?QkX*}?5Uz.ǿr/?Ӕ%ԋ ?݉^?W3P]m,?M)%c?֯[6?Xuh!/8?wZcc^ w|f?ap?Vѡ v ?}1q 3{j?T1U*hg= [O#cae?OG{;??+F?=xna޼H?%ւs!?5ച]43ȿ\у?oZ6n ?5և:.?z݂|^5?:ty=+{v#2.:#Ŀ@y?VCX?p(p?T?^73vqȌբw{7Ŀ@*t?4(KRam?LU?G LwdG?5Vۍ?„?dh9~?l?HcGŚ&8o?Z0c?HNVѩm)?:JzuƮ _ʿdp?‘.?~%Z?y8x"mx8ޕ?c?:rB?:A{ߨ! ?W>,_o黱?!m+~Ë?-a?Dfg`ު?Haݤ𞀚DU?2Q 4[?WX&xkj:50l4?%uGk?ݼ?G̍kp lVUǂiƿSmAK?#=.ZHcv?Sֱ?ls/; 6@uy3@|zT?Xu?taib?"3?[3\~?'xYpcOOܙpS7?;7?y$P?cF|38!Ӿ?U+ȿ9F9?^A*Oe^~|?Ή(pth?&49?@Lo ȿVd ? _Q6ȿ5 } #IJq?-?_gm-Q?猿B2?/Eִ`e)n3Tƚ?~ZοDJ=n?.1,B0b?@p񙿨a??@ϗ? ϧ|W˫ ؘA?l{A?^Yan\?k9YӋi?S#, ?pF?b|Er '+lx@lLȿ0Wrq? Ŀl-?Du?(~ڷ]y?zu9?µKb_7?{xГ/¿ ? Dǿnz3?A?@(Qd,'uհ?tX`-r?; +#7T5ǿc?lοf?ߙ ?N 2 ~?#IDV@?SՋd,? :&tcZjgL ٻĿ͐6ז?K]<|?p2@RApr,?P'Sdȶ?ⶖ} uSJ?B毊)[{PdIU$ƿXB+?GlUƤ\󘕔?D2ߵ?yJ? ?t5y;?F|o=}3x`r4?^l?@]sRx?apw L^CގT@-Ƭ?pA7Uaf[eq*Y,4:@?Ntt[˓?2p?42?U:Cى(o?<*>o,Gۑ?‰(cB?J=/RuZ?kª, ?VSuWyc?4 ?C/$%,?YƉ?:BbW )?+J( tēv{?RKÿD(z?%a*ZP?0G0?"?BҺ?{@O<ƱZW8Vl*YyFǿnò0f]?9cë/F?OߙdU?@C?:W?('?|u{?ثpTӊ?'m?̽[?r笂?L?sUEצ(?uœpE.?<, ,?@Hq?]hX4`zm| \{l$p ?J5? J?ǐSݸ?Uhq}^3?R^fN:,a;Ղt^h?StE ~? q[ۉ`Q,TPoe?;A~f?֨ ,? ?" ï?F}ѐUa?1𿦿{TР?b ˕=п|vv"?֛$XԿh?z_6]Р?,Ƿ?h蝿vH7?!of]}0oY%?|<݀ԩt?!೿p}jLUY? s?z?c?H0x`NRu?qb?ߎOٜ!K?_|?t T+ՎQփ?K7?:wggh]׽?PY*6^n?H:P`"ѼH+.cϸ]vſ%?XI]%y?N}Wg?#ҁQM%KN?=d ?p05޺C3/H?&!Fg?VYQ$a#m?su2X <갿@osUnz?\NC̿oms?|oO̓ÿvC{?V 6?nm~?A t?z%_=ݳ?xq^r?A`DcPg? s>M*[ſ*X '?@VWc> 2?Rnu?P).H?FeʪXIMzة&V-?ӿ(?Ĵag`X$ )?}lr|ͧ?X%Uƕw@<^?ylU?> L?9s Wo?p#~?G)p?UzV4w ȿ )~?uD ˿R>9?c&3A?ꄀT?]lᖿo?F('rG?F`?C~z?y3?`#v$ƆZ(?J ryG?.n?p'\ ɂ?&)<2M>mj~KmR?ēE8iwJvuu']c7\UUp?$!s Xd?PG?ޯ#`a?^N«S,SĒ?:;݁(|o?8?@Xrg\?}?mU-z?s?3\j0:?HMGkCa8^60?EǿgU? X&RTu?.ςՋ?Hd?{ ?hxܘqC6")[34KTĿ]f? smr"ˎ?v?2yU6*?mD}?? 67?Q*?y?zY֔I5?lS!ok}U4?^sgO-?¨M_g?&琿DP;G{?2-ހS^a?*szM\϶ \{{Lp?{ mY5x??S6?PxV Hڼ PTK\?|@ ÿًH?"zA*%i?.ߔ?oob񕿀Z,A?D=M7-섿vU=?xr}ªP =$? 21vfL ??p<*k1 sBOC1;"ӌ?2¾ V=\`cJk?7e!3?0t7rϖҽwGÏСos=?@4ye?׍fX?̆?TvvvF Z?%OCMܡN1g\81V~.5^kWοޛAà?xF3`¿0Ŧ?* ?n?ܸw8ɿ]`i=?:z$a,s}6o.7˜(X^G5^oSqg;?@V~&}Qh?++My]? \%@u?lAI6X9?^jj?dX-:?ǏaqN㋱?em?-wƠ?TOk\ {? !+5I?P8ߧ B?gXЭ?s x?Vߙ?`|X#ޕ>U?\n(K*{3eͿЩy?э.N1n1?ht ?h O*w2dl ?iŮ:\֠?|8\O㬔e?P3ڞp?i3 |6](pBgEQ{ҿg0Ev?]Uſgx? ?z΋H9?kJ ?k:]bƿV u?Ю 4Jgn?]qɖ?\c?=?ށ@l?(3qKmvt?& i?Y p E_1ɪ?۫æCl˱l莍x?J>k?e տp&?r,Ā,>]jOfq[i?,(⤗8%V{?6 /.?n a54?A HCv.G J躿F?F,&}Q795Td? 23KJ<6^?f32C¿Se0?zB.M?I޴Q?^板tV:?R"뚍?G/vTWp?N쭿 ?Øڞ?PKJHhFP P gaus5_psi.npyNUMPYF{'descr': 'Zm c>pqoKd>3.yf>t6h>śj>VWUvSm>73Go>kfq>[fr>0 t>~!Wtv>f0ٟox>nך|>Z}N>'Dh>3>8IY>Cqݔ؇>/ZB>?Ġ>EX}->Rԑ>l(>>=(>.H>>")>ơJ9>ܞ]>&>>E{>܎gť>25>1\'>?$>Qխ>(!>0#o>{ز>t<6]>)5>%ķ>2dk >%c>̅>UY#>bi>[g>.A>a\> b$d>B2*^>;U>oJr>9qؗ`>Ш>q`>A>H>p2M>v`z>1v>xi$ϗ>TT?o>*bY> >3R]>_>ww>->(3>>ε [>|z}E>+v>tmà >@}>(>Ő>DQ5)>8>g_>:3E>K=|?D?8 K?+k%?,?g5?Jl{?cq: ?ғ% ?>X ?^?'?[O$?@X?z?1p?UzMIl?;?'}24?K?TM?]cp ?j4p!?r$"?!2YK#?$?4r%?ۤj,'?9#(?(4'*?hQW+?}z|-?$WL/?2z0?At1?F*\*n2?; :3?Y[!5?B6?Z7Y7?d!z8?Xv:?@G*QZN?P?@ª6P?mQ?NcR?.S?vاT?d<@U?nrW?#/)]JX?]mTY?xPqZ?ưi4LG\?:4]?KN@_?2;^k`?XlT@a?$ab?ʕ^Ec?J*?[c? d?Ne? a=~g?}>.h?je Xi? 1j?(EBk?7`U%m?L{n?*ҙmo?Npp? \}q?Jr?NB> s?|7s?ovYt?GMu?gj,v?e1w?_u~x?ɼCy?"{?UF&R1|?3Md}?~~?i?4?XS2N?-{u?|?˜?tM>G?#?HB?kOÆ? Q? A ?+Eaz?,o?c k?AvPn?x?|p+?)?Q.a a?E|pj?RPi?VR &?J< IĒ?='f?  ?NŷY?#㍯[a?E?pd.n;Ŗ?`|?|6?UNq?Q?Rz?E3|A??Sm: ?ٜ?wGS?y+r|?VQ?yӥ?:?ٙRj?g3^?͡?>?JG/殢?ozY1 ?`̑?zՌɕ?_Pmfu?K<?C~X?Rpɥ?0ݿ9?>@;?1?KōN?{S"?^Z?X"è?ɜ@)?Z??./ML?,Q8S??Z7R?p?C?4?33v?I]?L-??]rtC?ig?+f? :y?0gV?*詭?2Xȥ?->?Ձ?/q0a?76?X'?/?il6H%:yTpz-FX yHCȰ¿ÿSŕ`Ŀ4 ſ{\5ƿ8iVǿ#+g'ȿ=R]ɿE ʿu|>c˿o@̿WͿi\;οݶ)?Ͽ7ewп1qпAE:ayѿ;2ѿEG4vҿځҿcդmӿƒdӿ*0!\Կ"b&Z'ԿdCBտ9cտ ֿ %6ֿGֿjkJ׿z%7r׿>?׿mSؿ?T͢ؿؿY~1ٿ}pٿ[^ٿXOٿ%\ ڿ10ڿiPڿmiڿf<{ڿڿA"%ڿ>$ڿ9Suڿ{.yb`ڿDBڿS9ڿE>ٿBƬ ٿ+ztٿՇ)ٿkD2Xؿ-nteyؿ\ؿpkRԢ׿:H )׿ʯ}ֿ*[#ֿ/տ*Կ`B4Կ7(ӿN;ҿĿ5ѿs_&ѿJ[Jпtοے,̿hʿwȿ`˻ ƿU}Ŀ˂6¿9w5BƵ!߶걿R%6>k*CӂL|a?j?qw^F?9ѳ?A=?2c{h?&sʆ?񦜢?M|?A?x?Z?|>ro?aj ?n:?T?~]?F'?e#Yk?5?u]!??8?{gh?Q6 .P?BZr?c? 1]j?Q)?@ZNͿ?-ï==d?A`2? f? 5?ɧ{?a_Q?1`?puV?X?^B?<)?v,? B]q?Bv?@hG?w]]?!5?4~?,?s(?ጁ0F?eLE[?Bg?&k?Me?ToΆW? 1??<z?a/?CG?_~;?LNiA?;B?q?O;?7-7?k3_?.Z? :^a? ]?_{@?g?ul/?P}=GS?>?y? ~' ?V?x?2ی6֮?U d?5z? ?C^:,?\%iE?BOT?B)Z? X?lJO?@v>?‡[(?u0g-?i8w?cfX?:Tt?;ȵ?v/z)?gMs?gMsv/z);ȵ:TtcfXÿi8wǿu0g-̿‡[(п@v>ҿlJOԿ XֿB)ZؿBOTڿ\%iEܿC^:,޿ 5z࿲U d2ی6֮xV俥 ~' y忕>P}=GSul/g_{@ ]鿍 :^a.Zk3_7-7뿣O;쿶q;BLNiA_~;CGa/<z 1?ToΆWMe&kBgeLE[ጁ0Fs(,4~!5w]]@hGBv B]qv,쿗<)^BXpuV1`a_Qɧ{ 5迊 fA`2-ï==d@ZNͿQ) 1]j信cBZrQ6 .P{gh8u]!޿5ݿe#YkۿF'ڿ~]ؿT׿n:տaj ӿ|>roҿZпxοA˿M|ȿ񦜢ſ&sʆ¿2c{hA=9ѳqw^FjL|a*Cӂ?>k?R%6??!߶?BƵ?9w5?˂6?U}?`˻ ?w?h?ے,?t?J[J?s_&?Ŀ5?N;?7(?`B4?*?/?*[#?ʯ}?:H )?pkRԢ?\?-ntey?kD2X?Շ)?(zt?@Ƭ ?E>?S9?DB?{.yb`?9Su?>$?A"%??f<{?mi?iP?10?%\ ?XO?[^?}p?[~1??FT͢?mS????z%7r?ŤjkJ?F?%6? ?9c?dCB?b&Z'?&0!\?d?cդm?ԁ?>G4v?32?c?E ?=R]?+g'?|8iV?{\5?! ?Sŕ`??Ȱ?HC?y?X ?-F?Tpz?y?%:?>6H?0?iz?d?|ְ?LXT?f?ssɨ? ?AA@?q!?)S?|?V:sK?wKJ?Q@Q?5nZVs?EtE?9jّ䃵|N򹅿a Ȍđo]Lw $ i"H<)yf/C7?m$_lmetM8Ze9ON/1ɖpsZ(Kb;$7*\/8ۼĪDCaȵrYgil2Xȥ*詭.gV :y'fig[rtC!L-鬿I]<3v4DpZ7R2Q8S,/MLVœ@)Q"èZZvS"GōN,>@;)ݿ9Rpɥ;~XD<礿_PmfuuՌɕ`̑gzY1 CG/殢>͡g3^әRj5yӥVQy+r|wGSٜ?Sm: E3|ARzQUNq|6`|pd.n;ŖE#㍯[aNŷY  ='fJ< IĒVR &RPiE|pjQ.a a)|p+xAvPnc k,o+Eaz A  QkOÆHB腿#tM>G˜|-{uXS2N4i~~3Md}UF&R1|"{ɼCy_u~xe1wgj,vGMuovYt|7sNB> sJr \}qNpp*ҙmoL{n7`U%m(EBk 1jje Xi}>.h a=~gNe dJ*?[cٕ^Ec1ab XlT@a2;^k`bN@_:4]Ѱi4LG\xPqZpmTY*/)]JXnrWd<@UvاT.SNcRmQ@ª6PP>QZN5?LgPCKEI\7vH~.)GEZD8XC?O$'W^ X ѓ% cq: #l{@5,+k% KD2=|3Evg_>8DQ5)Őm(@}Bmà +v`z}E𾗵 [a(3a-Xww:d3R] *bY)T?oCi$ϗ޾1vܾ`zھMJr;;U˾B2*^ɾ b$dǾa\ž.Aľ[g¾biUY#̅轾%c2dk %ķ)5t<6]{ز0#o(!Qխ?$1\'25܎gťE{&ܞ]ơJ9").H=(l(RԑEX}-?Ġ/ZB找Cqݔ؇8IY3'DhZ}NZ#qs߿gg?ך)N?sEٿ6ߓ տ}5b DUQQ?f|9?ʿ'!渿IUҿ^Swy?n,C?ݜ-?Dי?O7S?E?:KY_+[O˿̔V  ̄=&̿͘L @]?ڨ43?aFH?4e=N?TſٍQ̿8bg?]`?zM&"?X,⿢ҿRW8z࿕.:?M\ٿ}B?p8?,5pΤ9~?!G?n+D߿)!٣#࿽Yɿ,Į̲?ԂO ?ja?n? ل?|п/$jdc?pw?~5I~ҿWn6ݿc6׿BA<' ?-z9?Y[ڿ` nÿbXÿ_8 {?O{؟r?&&?)D?O]w?bX'?z<4~̿g7zB6ɿ=(`?@sa?[Fv?j.U?"#13?jTj?ٹR#v$x8x*?@=?翘*VżC ?ӨC#?jׯ?S U?RͿ)w۶T KпVȿlqz.$?HӿiyX? nY?v%R[4} ?~f?|TڿLͭ8տXҿrt/=?S4?t@Z7N8gԿ%=/*h(ڿ1@ѰΕOP?C8?ϴi,/5ȿ.*T?S /><ǔ± t?v2?79?QAQ: K࿒Q򿚸ҿǹH~? g?+=?32'??hAK@oQ?(sL!?TLDO]ͿMT?DNh׿ȴq?pŏο|p1z5?yk2L?}?rZ.lBI `;y ?ΠEf?=}BKn ¿`|uֿtH?.I;>C?e5X+?^pjLRl'?Xr?B:Jª?ƿ-턝mǿ#{?G)-?nQ9?]}N?V1F:xS#*u?Wrε|ſ Vz?ҳ5JَM&pi?WCno?\M[?Neeɲ?[RLjюԿH (??78ʤ? =tl?ǐ^ѿ^ZlVͿ|౿ziȿiI?_ikֿ pq :備^(?k0? ?Cw?u? t* ؿ||?zݜZ?❀9ȿ!Z$࠿}!пQ];?Ld?동8x1?0T0?[#`A%gtտ:qݿ(e*A@ѿsѿٷO?Mq̿&G?.nĂ?&/a㣿*;T?d7!ΐ?{W,;޿ L'/xB稾Bm?!9?%QԿ|UT%ſWSԢqӉiῐ$1?) )$tEAӿVQh?cS?cI?C?HDh??5p?4?"?yQaYQ;ʿaeiuHȿb?)Bv?WCF?PUH?݆?ƣkc%$/?,l$ͿʴDU)㿾c?7IGj0JJ\C&?Re?ʛ f?_s?t7LƿK{:~uK{տ A‚Ϳ'Uk+ۿEJ?i'FF/[?Cǂ?.q0?rG*?Sr?;{r =iVZ~`˪Ͽ8e?ze=4?]yZ[ţ<>Ŀ]䶸??L?*/H?̐?ԧ:"?ٖueP?*?"wf񏤿ʹLfW}ĿTr?F\"? mRU?F?mwL.@zտR)X%U)׿xĸ?zeP5c[?%r?!2k?9uM<:пqztb>T?PCs9?=$`?<. 0C?"6N7}pGh?IɆ?~0 ܿI?d9q\|̿:' ?-^A?1H?]P?=DYr?\(k!km?)(?ֹ`QQ6$޿lU/?0:ؿʴ۱?3퇻8?k]˿?Egs.?Ht`)%TM|w濧 @пo?"#?3E ꧿4}s&?D.Fc?!C`qϿ/?kD8埿zfl+ӿEQjpͿvf7:?\ՠHr?+MΙ |BRk ޿,;?2.׳4o? JSy?kпS/+n?R$$?N࿛FLпEDS濍\ ^iпY_02n? K?SyP?8o?GR|l?'~?b?<)hۿ|X}W ؍fS^B?^D?޺XԿG3ÿHIkֿt?y3?bg?+1?NHqjzп9s "~?_[z?="߿JکkE ؿP_, ܿwθ?\З-\t?[i3?za,hտE<~R!lzr?}Y?R+y8F?x ?X=0?>p/~޿xHA6ÿ[]?qۿ?#пڕWRȱ? ?a_ҹf%?M)BSV <:zCʿ1?]ZV?9E;t5 ?< .A쿜?pٿTz< X~/#?F?y ?<?忽߻ڊEw߿Bʿ.??3+m5g?os{C{?DT? oa.5iп3Mtg$N"j{?Z `?4 ?:x~9"|n@1Qk)?wH p?êƿC I?'9z9c_C?UœRgԿcՠ8jI-?42m?W;^?b́+?8aݿ^俆-G^?y+?i &axɿ=`#v޿Wh? wiѰ? cP?ˋ?=TX׿ 6??j4O?|F@迍%Mӿ z࿨$p%$|? )qSS>?@&rq?9?N k޿S5׿t[ڿp{ϿVCʲ?rB?s+ay.H?]*?cA\l̿ b7?tR5Y?zOƚlmF`m 4Dɿ"(jvOؿCT?qCܥ߿4)Ҁ?qkd?jɎҮ?+8,_?Lu?&k߿N0ۿ V39̿,L2׼?p o?EOqC)?ÛѿbB wFؿ~!ʿ?yՕ?/lR?(Ke?[?7塻j{Yd?"?96Gc3+ʿ%XPĿ(,Gf?]HZ??uwRߔ?|Vr?_m3%cn$xܿ H?3t LMy0?(]Ҥݿl+uS0@O+?3 ?Ԅ?R]͟?]F*?EM95g᭿6ÿuA@Y;)/?`h~q^ǜпh)?5[W{+?K ?(_?[g-Q?å ^}?ykmy =ah[?ޠ&Ijq`пn?NS?Ҝ ?Lz|x?K6D#$H>ua\b?&Ӱ?XĿ0 zz} /}`ɐO`39(1?c\?~?Tw?iƿ=_ ÿOTfQ?@u?y/&`?J࿗Q s̿@jDcx52|ܜ%,?^][=.]U 8?1?r(?2 ?RB1m[RϿDbq?kZFb0?M㇎?QOa ?LP?)ev?IHrXya?I_ZҿNH= ߠ?Ze$nA^ ";h?Ar0?14zXdHO7=e?h?hBv?yQ? Sпb|%9=?@eڿX"?eu?"ς?sLl?DQHE}?rLg=ȿXy2SYr˿\y/'ǿ531|?2n1cyhB&?wNdu?h!?,ސ??T'=Xu?m?؞D ?갯I?z!1P 0ϵ?Bץ?Ӥjҿz@zfьلh濒 ;ƿdEٓ?!0.?{gݗ?h}l?H|N;?bʈܿ eE?l_9E???[%@sտř=M-`̿M`?y?QB?_-E?,s-ۿ[ҿ-/Z? "ts(?X ?G-?)তZFnпzP(n'?q5?0>B(#?[LS+ؿqbtԿS߳S7ο]~|]Od1v&vB?k4.?\#޿??rE$俱#,?@SYyW3׿$" ?~!ܾ8"҇ÿp2wB2?T)?~梤}?Bv4?P&0ڏ?BN޿Vw? ? z8,2~--+h4пA&ῷTM?^sdbҿ5w?n3@?BѿڳT?>NiJ<$E몸?㿁#t{r??.9X>?E?;* {Ik+ؿ8 &Ŀ;3X?ɽ ?M`ؿ$p?X^d zG{lRd?oūN?t #?h3v꿳.Zr!ٿ7'~4e̿&xzeB?֓⿸!T)0?gs?x b?Ne?lKXӢmϿ~?ǡ͔?2 4 /]T?{?[ڿ%_Z7?j|2~%ٿH฿vE俄vR켿>F0?aT?0sO}?C?XAlf.5LjxV7?*} 魵? t~eOڿTU&5kȿjQӿL ?֓,J&տ+=?Ғړ`Mh0?H? G܇ZxῴkFEӿZx濔 ?9ԅ&TL,\?qW#?;4 d?uc, ?b#j+dM鿑S[޿f #ɿ}q)?򆅪 ?$ZǿC9ζ?YL<π… xVg?\3b픯(?̯?w5?? ߙƞ?R* ?u<տᰂ??<뿰`"hҿz S?P;?SM*?m{a;?<^EC(?7i Xi G!i/Uѿ֡D?.{*5?!X^?CM;?H}ÿA ԝl#N=D?gv?FB)?Iӿ;$,⿢MQeԿ^M?JRG?>= f3? 5Bٿ,c?ƻЬ?MH/ok3ۿ󛷘um*<ɿTc)\j? ?GiϿ;#V d ÿAJj?:T?yR?f8?pc俟J?ޠ?va4⿝Г ۸rU?%Ђko??"F?T/ɲ?bw!ۿ 1uȿn\"g?>UϢ?Y?(QؿU+ z+|FNܿ1c?4TmR-wҿ֙"?DzU?^.\1?׫;?67e?r+ee]f??x`J0>!M`B __ԿH?Ъ ?)m2?[ g]?2i{?On.pT&?('"5ͿgN?Yt2C 5(c?+?D?g)z?y!?2B=lW%?rX?`rOa?3! ? gLXq~?\uϙgw?$$R*I-ummaοlY?:+*?Csu?\"K? riPBR&!ԿOA0?H657?+.?#:UIGֿu[.vS!U$ƿW??kj?J A?"N9|鿔mŪ?)Y<+3qT翰y;*?ˈfS 4#ԿVA?MX[@-?Şk6?*v (? :}? PZZ/2(\?*g "8.ӿCTњ̿ =] ࿬8[z;?V ?On?'¿rD6R$꧈z} 9?M 5G8_t?T(c?vgxο̾?B;M?&3F .߿z$⿰2迢 ?g[ѿ/v?ZI?L'ax &6?~}?Yq4m2?^q6ƽ?j=aIcGcNH8?>6? ȿR0ߋe?69?%Tù?T*on?f(M0 ?d6?3kׇпVaV050zпF\ :LrCg^?ÐZ?2`[?.?$)̭pQZ?|BU? N5t[gԿ|#KN94f$}?tӦ.B?mE;B%D0㿕}S\?e}o~F|~'?fށyn?n Hi ??jT:cˆֿIWƿpc|.'V<?\_QG:?\6?[pMۿ%?u N{ԿL{?(Ҩ?h+?"bPvE?p?LKw}]I?ȲI?ïZ8c ֿ*L uN ҿʾ;3e?YdX#?kc?>??"hc?}WøT?ut9濾;辿oU ¿ޱ?p f?Ӷ6?d>?}$ğbѿ#D&ӿAaĿU1^ȿ2<?3?s"" ?C?:Z8?Da?7x4q?q]BJῐ?BHGK?m ʿuпMſk8~qo@M?^٭?}E|?&X?_|п@1?,U2i~2ܿ[W~?u2¿?x@?&f:j'ֿޖB2?@ ru҆y{a(!T?CKfmj&пg*?{ڇ b?Fs#?Mظ?kXc?tQ?Hzn,?7? 1ǿE01 fM(ʿ$5ˋ$ȿ|^ ?ą! 7ҿT'o?u'pF?:^Y?ӌ;ޭ?ϥ?O8Oҿ4ctYik׹? P? @i"F䪿cڿ14G7ٿR)?@o᱿-Zd:?R?CSʿD ?"7[)e?/;ݿ %x俶LY0࿶녭ƿ?Gګ'>?QؿdfLh3{VHO?).W ?;(?f?Yʘ,?ƴ5ٿ_DC! ?#:+?!Kǿkn\ܿw˿`^ڂŇ? EL?οjþ{Ͽ9N!?Z??Dש ?^f=?@]?OhiJ0ῤ@F!ξ<4]왬Kӿ 9{A?9?|?5U`? n?:{vxuu ?>c0R+ҭMU?BRܬR?Vjԡ?hQ!Ճ?]g?G翺[qΌG.޿}Ͽp ? ?FLп\1?L?UԨeǥ6?z᰿ۯ̸pr@@\?Tr_ gȵW?=|?J3k?м?FɿB i|࿷I<տtĿd E?n#IԿfCXa8?${軱?.;I')?Y?kп-B}ѿ7쾿`x T ?6p wJ?61Ɇ? Qҿx8())?@j?@i,B^ [q/㿻DaпFlܿX?5%r񿂥!οXJ?+4_?;^AZ?H/R?Zh ?8u ?X? _?' ǿv!(hҿ214N?xN0?6)?mXX ?n b[U6#Vfs>?TR\\f ?8jؿW-u1]TˊӪB?Z?=R?6Y?@]5q]|h{?ݐ?VԐܿQ¯ aᅪJqqӿx:tۡ=HBT?Yx)׿LLY6?sH?H)&?w #aC?(+/7o2￈:% K?! ꈟ?lm oϚ?'Pyÿ㹿c?,?ڕQ? b|?iտ?C}N?D.ظIqտ#qѿ7@ݿfoVȍ!P?/,w?戦t鵿nֈ"?2l,c1B,?mw?7٢p?H@~?fXݿT?+N>?䂳OFaڿJ忭EпT <;ӿհ?lҿkē?=?A6nev1?Hz-?h_Ծ׿ sѲŪӿ2tI p/.|/e?]ڧ@j5Gȿ:3\?BBU?يV,?C<:l4?r7-#/?a$z?uQ ۿ H`` 9:Xп@ͭCf?G?|Bh?41]? _jE`? "\@B$?WֿGRt;ѿpqdw˿pȆ5T b?jտ"G?N/WR?{pϿ{?*S1?*KІٿH4ڿ慨'㿠(ſt)ԃ?  6? ]?5^?8*]?H/׿v{?Rɧ_?J?9#yᅤԃ-?H%A(61οVFAK?8U?:Y?;ݕ?a7?rϿ, vTۅIK!?Z. )i?%+?&4?hOI>?ƙ?Eڿ0`0?͈F?`ky@GX^9AR˿gn+Z޿]m3?㿄~˳Q?Jk&o?5?厂?*ΣKͿU GCQ|jxֿS fʿ8uӿ=??Co]0 yWX?)A?\Z? ?*X3?xI&n؀?K 8Ғh7ڶ^?qrĿ8t5??2&؁??ST ^㿁L Bz¿*}ɿ&۱ѿ;!/ϝ?lXKONm^qQ?+g? :忮IW{?tvہ?~j2^O}>gvϿ+k??(W?VſI(|$"FX?䵿ccx';?S-!j𿨻?+̿NjG/?u?/i3 ??ث?P$,s?m&^*LO;?`ͫyC?w WȐԩNz?鑛3AԿaO3?.Xj1?#)#?'5Q?~i ]t/L2?tkm?)yXvKhw8߿zT@KAWҴ>aFU?b~߿Looǿ -|?!S?j3tx?LFsu?"[?CnT?VX'ѿD@?4?EX2:?rEܛ{?^;e?5f2UF?C]2k:?sPÿJ'a?9A2?G??Ujٿ kMۿ\ƍU>ڿ"Y_?tܢJ߿ÿ5:?]p?k?NKY?.bnԟK[BţIb?(V"R?b, \?cxCJ/Tſ( 1J@C\.1oqh$?h*{-I?8?_XެĿMJl[?+2#?ӿl^gп g,ϿM rJp?!Ш?hFTv,Pr9,oi}Ϳ2?1?$§?g3 ?ԧkE*oſE`?%K=`ݿ*?}qi?h?O rcZ?@hlO??V}?=2G~, ,ӿiym[ؿfi_T??>I? q?fsЄ?Ot⿟8? ?_ǿBHFwzT_?^ȏyſs? ?Ô[O?) I5<$^$Iosg"\οp5ē?5$F@&T?iUu(?^J-XxU2|?}?[ZԿ#?uܿY}/3z{kM?15/ɣl"ҿY-pN4pFҿBzD+?g}ʿP*ټk L^,? ɿ?F\ٱ?VYK?o?_1fT܎ҿ#i~_˿ g~'߿SRm?'v+ ࿨ur?~^ki?l$42`9Cb?ֆ?:V`uNAS忂c߿i{ m?[?矷Ͽ\PJԿMˣ̶?c?&f?m(M,?XbSпjI/?`!Yf?p٥?مq?L5?`PYc?,,L|?yԿ:اYq=I7տ.L}?yi֒M?`S}K?a?Y?ʣ-2?0?抎Soѿ̎S9׿&w(`[J:ɿPj5Dh?B?LT?D?!>!,?x[?RDpG9Ȥ㿵W?0:z̾xw`?"?Ʊy?Tl20?=ҿrqؿׇ$h s?ҿbJg3V|=yT޿W_oq?&V7?G5et $?V1=!ѿyr5qM ࿎ͦe?}j<ѿŝK氈Nק?"P?>L? ?7Eڿ-RϿapDտԌ:`=jy?F_R?R?C9 ?ɀ.S?&ݿRR?_?rFfٿI?AFٿΚzsw"8?{?枦?6饿=Ƹ޿XE? _?L uG?e!`l̿_~_?|U?HZ翲ϩ8!ɿ=m2U?pf0?66Bk(?˨!Q? F? m?0{?lB4qh?@Y}?Q|sKuJ@ۿ}8;CϿЧ)H?^kpB.U?q?Fsk?2f@fO?8;ٿG?쭪cLտ`X?< FHR?u?vX?OF.j?-ag?E1DR?-v?fmxп?{x&7?#,?oR?q.?h9LԿMT?9?H. 4R?:`\Tt7D. ԿܙcꅦVȶп?Pտ~y]cչ?j+ w?)?f*Ll?ȿ1JgſJtWؿ&! ʿ5)Jd?j;A?^c?dnkkB?r⿼7z?6 r?o媋j¿{&|L忀2c?F3?m?XW?LRd*5ֿRՍW?[骢?A ?:϶ǃ?t\ ڿf@?DU?s;߿Zi޿7ɹe퀮ɿܕ ?0 7Jj-?U<׿/XSqP;4?w15?ʻ?u[K?W:_?g~⿙͟??>hƿ2Cο"3д_pLxe?2?\$.?FCu?: l׿6a?bM?j鎉ۿәӿ&Εhݿk aIa?Feo?jo^ɿIzb+?_s?%p?34?`+㔼`L1}4ѿ( a¿5 ٿw? NEiӞP?+UO?Za?B?Pѿ%Nǜ𿋟d?^F9`sM; ?++5ҿR۹̿3?]R~H?HdO?b ?[,+:?p=uӾ? OT濐ږcῚT_.ըGMο0?Y?C&Uz?8Y?Vr!EۿH\4? H࿀Szcڰ/fZK?e?zz?@=?ڙkzп=iӆ࿪jX׿ʿnèT.?le ;ǿnׄ??l/?:jƿKnJ ?Ĭ[?G]ỰԿQ玨}ҿ#c{,WT'?dU? jܿM3Wnп๒,w?-,P?N^3@?n`?7׿. ?R e9?Cmaʿ1pܿȞ*'-X8 ? ?F2F? $ ?+ȿH-:ҿFiy˿ʅ~sU?\E?$A(X?d?:}NẼ?B7ȿ]HO>G2ֵ?uCsU'E0\Z ?Tȴsp?3< ? t3e?lhΔx쿓f> GwwD׿CVORÿZMeMS?'&z?^`cMĿqW@?k/ҿH>]1Ŀ@?tQꙶ?R?} f1¿ u-HyAzVpt?ls?81]?IV<5ٺ?Gjfeív-#cÿq G?U+?Cj?^?HGU?4YοM-O?q*d Ed"bؿ1 C ?W1?WF(1??-]X¤ vJ0gG ج ?|r(*?2/zu?A~_wܿe;|? Rj?hȌ?{cG?-1`u>?M|Lh?`0޿NvÂf`T8? d?/1ֿCQ<ֿ[L  SC"?1B.Nӿz>b?f?:A?^K"(?4S?KذO`?1{??JJfֿ TE40YfпDD?ʚ0L2?K,)M?nS?:#j?'ᙚ5ѿf_}? k5@4ѿ23?iZ ?bI6y?o[ݿi,gG?9)y?8!c?z]EOU?,^ͿG9.ۿe#Hȿb ?Z Sٻ?F?vȿEÔXɿa*u`?(S'?g z?όa?i{~ȿSѹn֖j0йȗҿ-:8?oBѿ."BX?j)³?މS? g7?*:w;ܩHFʿqX PMq??`O#ao?\?.*-ڐ-g?| ֖۽?}h5tZп%h[?-u?i?FFau?2N 3LbF?D<E?i$?iÖ ӿ俵[Ͽ2G?tުxG\WRChtտ)@zNÿ)sSӿ`B?>Wſ edB{X?|N]}UF ?l G?AZԿKNDп,Ah1]_ ?W(?s8~x2Ŀ\HĿH u??;1k?)A?$N;?៉J x˨NN?WXph3IJF?[t9?t/?ŊzA?C9{.H,Mn ܿJ_kϿM`R%? ?6'ٓR?&\>h?WZnh?┕߿)p}?6򶲿izX}/`ĭ9%ɜ?P$k? N$#Vq?:B'4c?.?0jGs?0U+/ ?z;?Fς¿ךA?PU?J W8Ȗʿ|lL׿()¿3U1?Kc]?O--SOx{~ϿfkYw?9F-?`1ב? 쐋?tֿSǭk?GE_?\qwn׿L(Xm%޿ۿש ??Zb)t?bi? 5:? 6?G1ΉCH?@n$@?Ei ۿ@l^>?׹pϋ@ 2{jzk?;=?_ڒ?=׏?4Bjbؿ[+(99*LJ~ʿvJD?Տaq.F݈~~?*i?AٿK?0j <+㿢q?:Hp!Pv7~?39?~J?5?̿ʷ fyFam^, (`=뾿%ɹˍ?bzb'GQz@gy?dJo?QW.G?L.;?a ?8_psݿiC?*w-?Pأ'ٿVL yؿÿ-P? )Aj ?% Ͽd(*Zݿ:Xcӿ8;=[N Ox?NZԿ0/#r?Vк]]?EI2_?iRbz?i+t";Nr^1xea?+]J"??7Xp?79࿃ZՈxq96ɿTG@<Ŀ$Ҟ?= C?"##\¿YnC?9f?Ui6?y`~e?9"(zM!z 'ɿܘ3E=?:c?@9a,BZ?Q&mё?\z?/:;?|Ze@V޿~ſL%b?6?f>L Kƿ%Cvjo?lJVdǿ%1L{ο-pfx{ץ pg?l:y??j)Ud?0j̸?eXĿ_ؽ?fsJ=,ϼ*bHؿ= æ?f8;&?LǼ?J(?^zݿhiC^qϿ@`k`\O?o#H?Um]<տbĿtNToƍf :?HY3:-?MBt?{ҿ0:1?\ʟ?F L'X9ڿl ]3dz?usv|/?" ?ߔWͬ?Կm>㺿YUsꐿY?X ?j?G?G}?ʒMȿn ?4?vnS0R%X3'?4BQÿ^^4򎃖?2n?^ v7րl]u(w?1{&?`Y`mʿ_}o¿$λ㧿CJ{X@?^H?5h$ÿ[->Q?:ދ^?/"?T%`?f4۵?.=xп"m?Ͷ郈 Ϳ-BAH'%7vQ(?rȬ[?z\-iѿdfTȿ)ݿ!?0X}eVY ?#lٟ?zڿWe ,?,H?Y7otr dwBϿۉZv?AG*&I?<ЂѿH(G?%?zh1?1c?x"ɽǿ'u?ECN?2W???7? 7#X?Hwb?uӵ$sK2п%#?&L龷?FY>7?$ۿcEY?5s?|g&1ϿL-G7x *)*ҿKHP?̆'?d[?)SK? zP,?a:!?)ܿS~gODl힇@ӿYogC~vA?Kè?mxN?:?nA79kYwͧ?]冪?$m9I5e¿sbPyKU¿Eb?q?#? ?2˿6#Y8QNǿmѿIJ ӿn?Mbʽ濰%9K?_EM?0ST?,ؕ4?"׳?B:?ѿ_?YF?݃On2׿Ŀz.?*\"?ۯ6?ӡI ٿWm(f¿ؿž_?(A4?Am?k?½j(꿕N{v?O;?Z>Q~C+#࿂+'+!3ܿy!xQ?'AUd,?4?D0=?v +i?]G濭 f?p4?Y K}⿨ ,#9տsI?뿿z%T岿c+r?($S?r?F?/r2^пHWc⿮gӻ?],apaचj ? BG?o"Vz_YMƿǿump?a?o?匨jO?1DR?S"cU?ӽ߽1ce~21? {"X&t(ƿ}?٭h?X Ѥ?p? ` ߿C 꿜38ʿ\ʿ*@=??Ŀ&Q;??=7ݿp&(?^y-g俶E"s??P~&9S4|9?*x? \?Ki?dֿÜfNPd*i,ؿaͿn-(*? PĿau?2- +? !4yAu? s?::lv㿸8D;eп9i?u=@?OA? ͨ?06nؿ$KJz?b|? ?lS,G'׿EL>п }?z36ٰ?A3>{ҿrJt\wykɅ?(6a?HVKb ?{aJLf?9lj?~!ҘMc~J[ӿbѿbL빿Y4Ki?Eր?ġC:?j( ?MtӿPp%?qW &q&Y?uzѿ%A?QƉ?1QѹK??VP?/U/㿎V]P?:PZ\вǿ&a?u6?.h?EG?k=Y(\?\7b.M?phDJ2tܿ`?{QԻzο[X7? s??`?$<ޔ?B̂u?΋D4B]}?x~UY`VMPְ/?̿aE?h.(0?*?V0?{?#Wh1ſ t(?x@?N~ ?-tɿEJp?r?#F=q+jҿ{ᶺnR#HPk&溿?S5?￶L,ҿEݸAH8ˬ{?1},p6s?-cjz?d!WtJ?aPq?ピfyK*e2ÿTx f?j ?8!8L?/-!:?~)I#m?ZϹпBK?.k]?Kſ)οQry2Vֿ>@I΢@繿 q4?,7~f7ZL?V'?.~"qpͥ[A?~Jǒ砿=7tɿy'aG9.7ѿf9X7?&,P?ȳTሿG\I??iH]J4? i) 9?W)|?nb?cc? Jnj? ny;Ůk?̒`KԿ[(?Rg7In?B+?hX+ ?U=?(^{?AFC;-ڿ5ʷ~lٿWĿ^ p??Wӎ??s3~H??Mv?ҿN)?pPg ?F7&#?Y>J~̟lֿ;0u-NͿ!B?f^߿m#pط=2"S;?jF??T?Tr7;7ܸ?W¡h밲?t<-լΖ,ڿxQ9!J?*xm ޿pe-Xv$ 5<`G?8;-K1?d q@?we^E`n#Yݿ˿jN?+D)ٿF¿?௴?.Q?M?="F?^ 96? jxeI=U?򘖿2tOF(˿\;I?54"pݿjm}?`TwX?S{;?\?tM|1ͿkPy,Ŀ&to?ūi5?x9?Ӣ"?gfܿjIQ۵?c͡?e|\#ο?K*࿀zB/HTKj4?%/1?׭>8]hؿmS??`ʹ?:w?dҿ0Q?|&?QXܿQ]ӿ\{Uޫ3¿Wym?NzLJ?X]I'H?.f2ʗ?JſJ׹Yb?)Ӏxw?f#37?tTDF3; ҿ#U+ۿa:?V7o˿=09?u1K(?J3@?-"?; C?gA0Шv?d3?3*Dڿ,iӿ _(jFHʿ5 .?j?d_j?Ȁ%?Bǡ? ¿4TFh?7ЃBחB˿bAƿKX=$ѷ?l#? \"@x˷҃qz]c"?Pz<ʶPChE?ή?SӿJW?>yv8Nd"?c2㿹 Jÿ#+ ?# mS?.? =V ?vMο;I{r俠7)9)+E*Le>MlZ?~Q9Կ)?w?sڞ7?,Pk?,ըҿ`qĿioӿPKJHQ))P}P}2_cgau7_1000_coefs.npyNUMPYF{'descr': '.ojaܿz㎡~?j?;q?^쥄Ƚ?O<@࿼1Y¿MmYڿ N?"dƿ0NV?j+? |?Sjܨ Ϳr&1>}ӿ;lY? [dzW3s _' Їt[ʿW]?CJ?xaPqH?`#8xFQ?Ͳ:h?nο4Ŀ~/ܿeQɔ?\q3z(Q ? #1ӿ3ݎhխA?:p?ܿF?O<.ٿ}?@"Ͽ[ʿyvg?Hֿ>W#?L/$пU?߿Eb?IS% Z?aX?R㼉⿊3?3f*Au>챿(?N|?8P?ϒ7F㿃6'AMϰ|7ӿ&/}!?6D0D?PʿdT.]?]*d (B0q?YD8?@?u~ҿoL"?-??a?Y?Ds?~?e6=?3iO̿J,ӈ=^JI? \8#ۿm]X%?1Eҿ`n6Կ/KT?se尿?#8?w~㿁mΐI?@B60wп}}?p kx?'eciF?tgybpֿ*SԿ+ ^"j?icĿfո?iT{i?l/(? ?XH连ɦR;ܿG>t'=ѿr:qt?l/z?[#a?MSҿuѿlV^˿5*왿һ?)F\a2? A0{?{S٬?ehS?] ^ʿ/"˘?pLVXʿ ?725?U0NTĿ-_|m=? ?yu?:<п$h]Ϯ?): пZ]M?d=Eɿ8ٿz#?,Cco?s#䨟_Lѣ;ѿnend窿+ߞ?&+?s첪)|!ӿSҩ?5rٿɠi?Dl=ο΢,- }?+oBm?Z?3/dդ?<4Iٿ|`Y$ƿӋ-p׿Ճ?8E?] ?!ܿF`0ڿ&LĿwo|?X?X޿ 5?ĉzԿ-Lq?q?쭤 vbݜ?}.VP޿Ҫ?bxU?!!LJ?C뿁pٿ/ӿGz?u󄅨?I`!%? dx⿻gjb?(͈܀j}?ZK2笜(n/?HB~?֯i?WFMd@5Կ$`4\jveG^O?RbO޿11Q? N /ir@{6F'?5XտȞJ>?? +)E?tNj&SfʿID P#m\?\s?kF?:{?Fe?dؿ  ?xq4?Lӿÿ Gj؈{xt?B7YXK?%EeOĿ MjI^8 ]?8a}?Ǜhb˺?ZP8|?z:>SEo˿qt߁ ?$V3O][?MsMV?C:eGfſECcSUG` ڮ ;j?c0gI?e_񥎼?ħe_穱տӄ?E֟=l@?2xˠ?e@)ߗп |ڿjh?Erֿ֨R ?$׿.ڒ?BO妿0~v`?}@-?'i࿻ ޲%AqOr?q;?3 'Q??Ss˿'ֿA ͿpG0ۿZM?v0U?m ƿϷ\7s2'?|2F?8Ae*?SSԿgʏ#/I ׷濔w>Ek?sg@>?ߡu?fμ'rPU""k2GO?P'r|B?/ ;$?:;8[Ŀ2lȿޜt=ѿQ?+#mM??dۦڿ8@=hɿ'C+E#2 k?^u9 ?_ٿ@%?ۖ= ?uk=?~m ǿ-l8" yϿ+Ī.)?z\R>h?j#0ῷGhп,j?_=ޞ'?q0y?K`I?2D.5ѿ!8??g@?e".é?/d&=(Dx!=?nh*? َ? #;?q]Coܒ4t{?hI%K9 MJC?S?/ }o?K&~֪;D?xE?4Ug%g¿^SuǿrSy̿:?c~5OǿZg?ڿPXҿեH}N?̚b? ?w<.ٿLnǕ?w>z:0 ?j6? E`ʿVsĨc7߿M^S?׊RAɿ2X#iOq?>Kڿ⿾?2W?GtF?,{˿{ൽ?dBKп >?N'~ѿ6y?TQԿ?ؿ:'?0vA3[?{D?Y#z?p?"DGd;пej9?0?YVÜV?yԿnտnԿԌYÿRY?8? *nPÿ-[?n͘\9S[пx8v?-Q今?͹D(пP^^׹?ݡ?&TZ?~Nؿ]d?^m'qտc&[?3ट? ({c]wMKac?[SW?R`?Tϱo?͜9?}aq?lF+8?̴]́?9v?Ktdz׿ ci9eʿ ϟ?ƽdk?Ltn"N忔[?6?W?B, ^˿KUѿE$@?) ?]?#,HS@vӿ4ԁͿdȿ*؄}5?Vd.?,kErR?8V ?xx׿N ?N.8̿֎|'?7YSȿ;*,_c4?'DU[ÿ?+bTvz9!ɅE?bwe1Kx6 &I׿&O*?%OϿR O^?o3qտB+*|= K?8X=KdBթ?BS<棿tXv?],,?_OڿDտu)v%}?ĩ0Jٿe5~M?yt2hF.ZK?JY8xCD3?~jJ/(1p?48?*rAMCAɿLCۿ N? R|? /?NAҿ衯ʿ?X9Կ?k?Z{¿\_t{Sտph q?؄蝴?(*?|HgIDnh.ѿmMNӿJY? "¿ʉc?Թ_:㿻Ԁ߃?P nއj'H?ÿ|CXuYпsѼſϵJ?nZ6)ӿRkm? ڿf91ֿr?r?>l5?H眝?FL4eƿJh?%ҿ1)L煛?Oːz?fd?tG$Hѿ`G9տk= 㿚?^:_ٿwy?*c)ADrӿpt? Fܘw?l0?) i ?}3yN^ ҿkj?']AwT?=U.*ۿ_*ȿ1mНKO:r? {Udм\?ԪU3=r|hGA?YhUÿs0֗p?jhs7?z1aٍ޿ ,,k? sRʿM Qz)?gӌx?~pѿM;T x{GZl?7!?I g?yw'C߿XZu? p?Bi )?pwӿ7TJ?mZtiQ=ۿD?f"ʿp?m-@?mvN\Ӌa?\_f-{A?Nji?$d?QN?>|f(#۶T:ɿ;)?иnںɿ6mM?Zd鲿r|k1ѿ8aʅ?AB;RH@o?L*i@?; ֿ*1? NֿRvȿ@*/?GE?| Ge?4d0 ,ҿd$ȿRz+aԿҁ`?,DοzqKg?oFZѿ{޿Dm?Oȡ?[ͬ?6sV ~?p] KxT].봿ӐX?sZ?7ڴFu6}W?"1NYך*x?}R?*S|$FP8ͿȣDo?? 5>?kj`I?aw0$⚳?c@T3¿v޿}G?x?Bێ>x?,"?E}ο\r<,{d?iA.տ6f4i?XZ쓄`?J j?-JHy ?Oz俰;p?}ƿ@,gd4?b?]׿B?w⿻䘱=`?l0F? ֺC"?e~Jwɿ v=ȿ`mbL)m !ѿ{?F[;?m?57`?7-I4޿r!?1οnm?3h?tݿ ?sySݿ1?\?8:?}K?c?,R?y=ֿ.4 ?]*|ڿW ˣ}??6? BRڿ\?k?ߌZ~ӿ|$.?!?3! &οh-ݒѱcܿlIQ_? ^DŽB?=?[BL ɿL|⼄?Jf2iĭ?&¾_Cƿ5x? |O?Ϯ0G?zدNտ^\OS?`4lcyпb禿xp[>?[qU:t =?@V?JL;jؿ8QLݖ?cM ߿} ˿λ?2??V: ؿ Df$̿YT-ڿl4n?pۿO?W!s=1ӿO_Y|?nHp?jѿ?56hsԿeE"d?Vz1;?{s?CMbҿ0'\?o j8ο5j ™a? OP1{?۬]k̨Vƚ.^ֿlK)@%=l#E"?maT?; gBH?/ֺƿᇅ?(hpԿ#T?d9׿ݿ8 (?sY?~'u3{?PQDƿ !CſUٿ^HQͿ[!҉?7j  п#{2Ҳ?g;RRMc2߿ʙm?`eY!?Ǝ?Gl>gʿ+P? cԿj{قBv?T5L?l9a?W?-9pڿbv}?z9FM¿#2Z?l.!ˢ?n銟iԿь?@ ڿ&8qYпx?tV*=|G?0ڧ?&ڿ&YC켿#smӉj ?͆?yOϯ?I`*[?H~EԻ?;;ol?֕"Tk? ¿-KUNgi:J5?slƿ#8?}׍1ZS?Ѹ0@Ŀ:?<>?j@?P8r0]=? gp4'?1?(}?0MJ]?#Ŀq?} ?,WοX?ְrӿyF\?Λ'X}5U?k?Oԏ0fu?@fؿ5Nÿ 4?%;? 3? bM Þݿص鰿{ LV޿Uڛ`?g9Р?!J2A?뺮?o-["tCȡ?ZT%?3\?<#(?.UdzLÿZߪ?zǚ~]ѿ$!iE%?0ֿBSlv .v?~WEl?-KC#?]۫̿?+0=.?+d9{?×,.?$jb /Fkȿe,H?5WϴkE?5e?-̿`miS ݿ(١(?Sn?̝~?3x?XݿFgk?p >0%<׈?>?qioH?ZpNȑտa?2AEGPO?3)G̿N[yԿUH?]4y?@hpT?=e,g˿)xhr?Dڹ(ڨ?H =H?ϒ4 sUfa!?xFPҿ;%?frgܿ?%3bL?\?d{|?. ?hJ!Ӝпlܿ,Կm=*?FHؿU? S`'K8S`?j Z?̡Tҏ?`~x=?Krֿ8n?~?y*+,`L@uI8e/6?<7?|;?B?ɚIZ${@d:U?@8?VMW?8l?:O#ewf"RX ȧ?yH*e+^{|\?SX??0"pP+j<,wĿnۤ?JjE?m!ҿmlַj?wįĿiQ(?qcNLJ?RxhG9?F`D !@Eʿ9l?Nz?b?Q\p"}~35ٿa ?[Zr?Iu;nҿ1q/yĿEvi6`?1-aؿx&=?jY y&C-4V??<>?ŏU῱Bzi̿vzcA466?D\N翲q? Vֿs^*]4NZ4?n1Ŀz_`?CT u?._z [YëNC!mK1ÿ?K!U?94?`˵?,Va }szJӿa'U<ѿj?0?P|?3զjݿb\~kۿr^ҺпD|@?X(?IFbܿgm?-1 !ÿt#?Xgl?NE㿆ĿXyx?I ?M?.d?M'Y;M ?i.}54ϿXS ?E%7?H?1 ݿ= 0&7?~ot[NRwѿ3?@/$ $h?!Dž4Z^޿ajȿyxW.hnp.?FUL?Zy:?\I :hͿi-(+ց?8c7\+i4r ?r-?:,8:ſVU9"пE].yD?Xο_)W?zE_ۿI_Ŵ?m?.p8W?B*7qїب_ʿ@aZv?VGnP?ϝU?X ?λɫ޿.F*R0?>W_?y8DaN?)%x8? E?"TeJE9^?~),a~?V?AFſ o"+򹿅 )GٿMR?J? h,k?3)aAz{ ̿o_?beV ,+?$^?hqF+Y?#YH?l֍Q?]-0?)oM[﮿^(]?lR fq&ܿaEU?2&!yп!jd?_®fr08?컔Ϫ?SDR??G.ۆH׿71?bſS~?vp?v6b˿`?rj ӿAؿ)xZ?Bu:0,z?Mz?MKhڿw̓%1"[JI?L1h?PC*?|?qDZ+^?οbT?#8?̸UP޿T ֿ`Ejl|#E? 'Ϳ@M?&߿i(-῟Uf?3 ܿqحZ?yw Lsc<*?b!?`/]?dпDM1¿hB6ܿ 3$迵L?|eܿ`E4y?͇S|nqێ?uρʿj ]?eu?L3k\`@-wzO??pq9¿3lR{?;XEv$ZwRE?Te?s?1L-?y\ʙ)u8ȿ .?n4?`9Ch?@Wz?EUpl]ISfܽ}ӥ??UFοO;?kFƿp^j?п%02?d+DI?EFJ?,ZӿӦF˿fPhٿDt?nTWd{?AThտۿFR?i,(?!]U7?ۙ_3)ع?VZS?ϣԞ?fK J6*,ϦUQWP^?Z"uEU\8xr!?w}fRӿ,ace{f?WCt-8lſ}?Jjك?q@ ?|-\Uڿ'k?h@Nڿʿ?Sz|??jM?r2ƿ"EȓK9пe#ǿo?W?2K¥? 9N¿ ]u؜¿^/~Fd}É?MzʑM|AZOoS&"\y?z>;^r?9\?Hr!ȿ`|?fӗ!ery ?ԞJ?WqDzա?Ƒ>g࿅=̿A?@~UƯ?1Oo}?t~Dn῰^`?RR¤Pڿ~}n?&y ?wXr츴?tͲ;()_ÿ@RJf?;?۽#;?|ٵƲzW84?"bݿ_c?Sϐ?>x%쿛ô\Do "3ش?:=P?d'?HMQ*?] !q1E:տbH?jrG?0տ^pC? ϓޚOX?wU?d<[?$|?"? h*`Dt_?JT?&Z?]Vοg4$?.꿦ƞ"?<ۿF~ߣ?`ÿoh`@j"=;?%"ӿ+?hW?o+J{MD?W?l/?:?ϊ2[Q(*Niֿp&ſjQ-O?{?1n2? pXJk? н|?7zbl6OͿ3g3̿4V˿_?}+ƿܡg݅q?A齞ɿ+Fܿi?ϋmBv /i?QH?q%QKο*)?{;տ *[kg?RG?L?;?>yZ) N¿䡌xMuƿfѿis?(V-b7Lњ?&@q?Viy?.[s?SHj9|¿;2eOϿ w?!F1?uKⴿ 7y&Dtſ4V?~<rÿݛ?dq̟?t#k??? ň↑O@?ިͿ ͛ju\?.ត:"?6_ x㿱QTֿW|mjكZ?d??XĎӿ] 2Pܝ\Đ?K/2?ꫝ?Юo.M?؇'o?sx?aY?ZCͤ?H2`pM?Eً?,XH8L7D?gR٩a¿t+P70j?%tz I\˧?VcOƩرkǿ r?NBҿG&ʝ?|m^:Sn?$d'K 2?Q"^\?d 7T\zyb?%?/B?gA>?\vWܿώ̿I Isn~<{c?EXJ?L~V?1Ცl&?I?ZB׿j?kHY俤Iumq? VKh?z/?LcO?d;͠濢<?H̿sUM? T?l `]̿?v߷ʿfUp_\ ^?R&606οdy&?;xӿsw迒П ?j"Xj?G?Q?J*m̿xҼI ˿r?upu?4z,?ҟԿ=85p/p&C?cWYaI++ֿ9H7?`b!Q%D?WT`3?jh㬃a] ^ҿB@Կ}?I׿w?ƊI%ܿNȁ|. r+?8id>=1?ӌ"k?McڿwW0?Iҿ ]BH8!?ŕh?ץΑ?B?ɖ?-YL?RCqؿ- xncp:D`[࿣ djD$"?iD m?%ʱMy?;Yؒ7\?#q߂ٿ~Ħ?7[k@?@#"㿠*W,N?oN.>( m,\? C_? ?2!=ڿɿ̰xSÿλN>vj?q|b?Z;?~?ӿOЮӿ#?ne~#s?!2,x?\:lд?Hxp)9;? Y-w㨠2dϿn?:mqd$?si$Ͽտa<ܾ?.z-?]r?"ҿG!?I{wӿu^0lB?f}P?LqBYz82h?wW,cRpڿ7qLT?e?}[!?Wo" *7O?8DtտI+*d?D?{ؿBЉ?фƶJ?|&!?߿>mY?j M? [ؓt¿PZS߄x?4?lmU?USpȿPs.$ ?nlMEտY"? ڿhڿ'joWmީ7?By'0c/߿BN, ?ޱԿ&?I ?s"俔 GN?4|EͿ:[-?N3?X꿶S(k"q)?fĺ?ev(?:ߞSϴf%K>#?05 æ0 &??e#W< ?.Vjտi~4:w;5?ߣܿ bWy>KcOJ&mѿl4Q???hK-7?&4> 忶eN?(ſ ?I ?lꩈkjƿ g42ܿ5œ?-kK>0?Neprÿ@2Jֿ?9w7?UVȱK?e/%i?&?z~W1,ˋ.ꤿ ;o?' l8FHM?=iͿ=f'̿d4DY?dڑ_,C.E~?^L0㤿"&v[C{¿/*οh?6ÿS^\?m ҿw[4AݿPrO?2nR2?l:v.?İ˛8?HA۵?\ES>Ů=?SKɿ?vX?y>vsտ3inj=l I>?N2?5hXM?/2#?j/Z3߿WF?FҤ-gQf?-?hz?*$L»пIp{?z/ ?2H?jٿZ,۵nӥa㿄<_[m?*]@? o9>?j a?9U~ZK=ÿ- [?²?Y{lɿS6֫?͉?x4?6eQ!?ڃM?k@~?vEʂK ?';(˿y?[IT?Զœܿrd縿ħ뿦AB ?͘OLM? O?j7?hR 1 F@?!?L;%ѿr3ؿpiM?pʵ?9?DjBw6Nɿ.{B?%tο}V6x?7@e? TAʿ{> ĉtݿG|osM?Vh?'wJq+ѿNK!DC?1ӊ??陬kLtmC?<[ڟ57cr?mʰ?S2' ǻ?%! ">?[)H0.>?U+Lƿz7T?6\挂?a J?4hD y?o"% Կ0 Z?_\ t?RRF~P9?}kۡvVĿk?P&?uCq ?A0.Fł?Xc ֿsWCB?$`j?i4gܿT&KQt? ڻ|bjj?b` ?_?zȆ?8aѿ95}|ƪ6psfGz?d6(ȤS-b?䟇m1VĿYRԿyn|a? s`@?nlTĿpd1=ǿ|f#‡o?!ne?&/1vtBCڿT ?bTпl?mE4Lٿv:y>19YO?d??S ?bS-ֿ0??<¸+ڿt)Ƿ?DsT?@ ࿘Εh(?9YHuH ̿_¤?]7!?E2%S(?.u0yFLop? :.ſ'u]K?l?}9!Ͽ^ S¿8G~!Cs;?JGy? M?Q5 ?vп$3w?H[ P?Ǣ&?[ ۿ ۯӁוlܿb#?`!vW? !(?RVn?0ƿ8 ?ȿa /e`qѿfvP?nT?? +S?XTDHv?6эmK?`d6$6?t(qƿ?m%?:?v.Q'T̿L)$,&?>I ?5B?6}?́Կ/5s9?q6ӿ[?D;ٍ?ow?κ?eۜ0ۿB]$?#ſ}|?PM">?6_ x I3/7"?^Q?F t[u=}ڿ ^w2?}b5?FE'IE}sF;xڹ }h?84?Ne?V]48G'KHпl x鿐%?pp?F:` ?!?F\?›ي Ͽji?aVV?]شy)ڿ-!a?5r5忇濺 Z~b?,yo?C8WۿUԿڵ3DݿCGNY?Sip抴?2/XѯٿSE[fK:.?cٌ۰?)HL?Jp( 5\? tD?r$Z?봾nʿ"G?eÿةp?j"?~!Կ>JxT뿮Xc[*?8Rz@ӌ-y?U#աN!:o Lv?Ni?&01&?HSۿ;/ տ6*H?h0DοG?Ţ@OˆT6s[_? /ߝ?\0Vj?ۥ4ǿ{~׿ǽƿ߈DW?$y#*o:MӠC?[)î-|?,ִC2?:1檏tij(ҺU?hH]vǷ?o?,/7ÿ֚֔+| _?9aG5?茑?zaѿAۈQ G8ÿ(-W+ ?\3 ?1O>k[?(( տɿ Ƴ7Vg5 ?F{?oZHvؿdS3?cK3tY˼? t @?*Jݿ*kإFx'|?lMdŧ? ֦pϾ?s#L'<uؿd ſn"P ˡ?L:t?ߢWQl?;0.FFhئc?)?O[ڿ"H$PrhC޿yt)Zq?)z?"qVy?ilѿ92wOʿMJaٹ7aCp?:P?FK?Fqؿ*>VſV)T~G?]k?Uܿ\`Yi?ђTɿ?`Dz*?Mؾ#ݿ&omtWF}p?8LA?Dk%o?xs1gW?#)3 v Y#?fcj{D?tuU?qwȵ؀ߥ̿WXSׅ?EoIԿmX%Y?b࿹_Ā(@?_?,m?r#@o:lοZUCndjȿG\Uv׿?'??5KE?xʩ?0QIooٿNt?/ qR?k?a࿯Sv!8qп85lU?B[F?(z)<#C.=yfDeIңlQS?;ZZV} ѿQ?$4픗 ?yZx?c5Ϳ?ɿE`c"? 3? i3ۿ[`$!_?Ϋ#QW\z?n?3[0k?XN`QD+?m+*̿Pׇ ?ǚr?i˿|f#0E)=b?4ͿBh?ᚿ/ͮݿX'd?ǡZ?y?1 ? 8-0ÿD+hf?@h4ӿuO4пL Ke?hB s]?Vt f`ԿZmӿ<?'ڿ$^IX?X忒K?t/H?00?-9E:VIz?DZؿZ0]v?)?4x׿J[ƿ䎇{𿧔?Y5}ѿX?L ߕԿ;>#~ zJJ?g'??w?(CƬ EF]r:wͿsָpue-J?-6i@T]zٿxz]W~r#C=?DOf ^ʿɲY;Z?©b'H?VO?@ƼOSԿLZ?^lĿIcN?r-ck[?@lsoҿEI6]%4?s%d?9;п}Qo%$HY?ˬ ?oU?eprBq2ѿQ 6󷾿Gƒ s`cT¿H9}QPҞO?CT?zwt`yjIʿJIs0 ?B?i?̗ ?h¿$&?@P濑k%)7ÿrfuf++U,?WAi#?č2'_F? bewydx?ȨD?g̀νƿߛp@g߿@;j?P!Ј\:.i?=?J"kf8?|9Uο#Q1?p4?~s*5*j?YLhA {H?梜%?zI$?8TLͲ޿џ&)տܿ@̋˿%?v<1H?vv,ÿsIˎr?b<뿐B'B9I? CkM?|SL? u࿲|RNd?ޠK`ɿ[?VdK?'4޿TMɕ?;KcC(W=}ɿj?Bɼ{?g`(?ޯa$4o)Îƿ);6^!? S?nO? NSqտXʳ2?i'п|=P2ٲ?Gaɿ[ӿB6+?ht7#GsK?IO?;% xzпi1)};o`?kz%o=?"BW¿6s?#i<?;uFFv&?lnÿv_?U_M??Ua?@]CٿCǿ^ Y ڟ s?6?@20?SNS?M:?^X)ɥؿ>hr ?XmaŔ?SS3q?$˹9ⷿKe8b ?pyiq?Aď?:M?0~?d-bǿ?{DVvQ?(ʿV~-?|5{ؿ! Qخ?湦-ɾ?znj鸅˿<ڿjwu?VHv ?-uC?{R?~?sf&OؿrƮ䶿?q? пQZ?{Ͽ7?ڱ&,?-俀nmtp;DŷNr[_?ٷݮ?Yu?ߓ?(:MNw>%?h3'ZFڿ(Dh&@?fj5?XYdJ'?N 0MJo??dU?@m޿![2Zl?~t?Cc?\RmQ˿*֋UʿiO?gѿBi?@ 7ɣ?4?5ǝ:?T3ɿ!Iﲿ ![տӆ8?"ӿ$K;W?F1` ˿.r쿣$j?(PĿEP?'?k 忏=gt̿6Opk?_(?ε?_nZֿq ࿄O<п"A?^a ?Q>޿&?(LC¿r&.A ?WUk?PKJHP@P@ cgau7_psi.npyNUMPYF{'descr': 's&H_*jjqҏNa4&[-YkͨS61ж,G 9h6k ƬI*/#޼Kx -ta |)2K̾"q YD'ξ[:;ĶacоԒxnѾ/'XNJt!ӾL$5ԾceȠC־t88aB md׾Cd#Ztپ ФZaO۾f OIݾ0r%0e߾mUļG, _ I⾜Z'1inI'tm μ",y1k]|U(ջr^-;ː;|,J/-;-|&ՠ"dBDYo:({ׂ=hxn͆|X0Iz&i{j~ 7@0ȇr5WV>ΆE}fŲ>62 u4[>imƝ\<>~k@ؔ$>gy>N>S'=7l>$-J%;NJ\>pd_M4>zԱ>] X>tG[ß7:>@fבKEx2G>t,h#]>^ ,6HX>:?M X{x> >:b>M)uN|v7>Z(NLQ >]]qsf>]Ӎr>ѥ4kU#6>tsdνNu>}Z OYb>Շ}ij>g:dCNE?u浌mUIz?P3~\S?ysKֿ?fNR=6\?n5 ?ZQ[,(3 ?V 3"?0,})!?̠4Z!+mHR.?kr"-d:ʼ?/Q]y#- f?斘n$ϻ-?0Oj%sxŕQ?![&ӱ'?$ҟR'@?U9VP(|?wsU)ぺ6 ? c^`a*-K"?.;)fdU?ti;M=ԖdV?Xx:x7mW?=[t]96~X?ƍA$8NY?0^[7tZ?y֯6|[?4 5`6]?{i3YdI^?1Ӯ%I_?^!/%aHh`?@*>F]a?c4C%ٍ.a??E\ d*hb?F"K0Hc?p6j]/Zc?@ס>RR)d?5zέ?-y=e?Njm"?jve?(#|!+?!ݰf?Q<2?<^ug?mDrN>7?06h? uu_?Kϼp?m`?3Y|q?Mq_b?A\jq?Lec?8Oq?ؽ AYre? u1q?W/g?< /r?dGPh?B :er?tj?r?2afl?0{r?SNn?3VW(gr?\%$p?wM>r?*q?Sĕc s?P_9r?}Z3s?.Qs?=Hs?Golzqt?*,s?)HVu?\r? i\v?X[r?s!'x?f^r?rFy?T9Yr?jI z? r? {?jq?(t-9}?IDq?bp*~?p?g?~{9p?~?GU|3o?Nm?]m?]*h(?<%>l?i=9?"Gj?JxO?]SOih?ڸd?Arf?F%&?KWd?./]?B0a?L T?K\^? B25o?XݓX?%1?|,R? ܿ?4:8H?GK/^?1տ6?޽o?全?w*?0SC(j?Q5xn锌?5ZThuYC?6Ba O?Ӷv3f%?vk\R6l*?Mp׸˻? ?ts$8%?l"dv,e?`~$vyUS?zc|Gyא?Нc~&B?/g`~иBE0?PSR?L\*__eom?,lpL-OK?ViHC@?y.U*l?y+qWx_?׼So.m?J%됿:\)EN?LnnK$?)D%o; D?׵jm^Ͳ?( 5]?EBe䖿|1 ?sc( DN)?Zq'f4?eߛO6Sؗ!?*@])?Zf~f?RY0W;&?-3$ +0 ?Տv ҅?w-&Jj_ ^?=4)\?I9Ǣa< |?upz?D>"WOu?1 Τ3fzp?v_cwbre?D*T?)r_eƍ3a7?_P2izm|H[vao&*l}:W G޵GĂH!N8R憿@/%43-?:WƓ! %APKݿ\}NxɬV8G憾_oc0 ku,➿~o4Yȇ2`Ӡ3wy>N/܊뷠ణ `+}gí_n ~DeX}(^5p 8qǼél|YW* W8+|t𬿬cDjpⰌqͫT\/[Jo7{Bz簿xL`y~&Z}&㋲-v",3^wYAkGh/SI@ޞ3:ϵq[(ԣ@af0|-R^ %P8^ 5 oqx/ě2>zhgMGhVRu#>Rɻ(ɐVop[yx/=_7Ι '΀)p^nʵ0j.C?#3eK7u?}+j챐?θCGF?ps?b>&GW1"?;xGJ$?ץ_fݟ?s3{ o?1q*@Wȳ3?B.+Ħ]?byb? 7\}Mk@q?Vgqְ?? *In2д?箨 ̵L?V\ܿd5F?b1?waԾh8ͻ?^b0Ot?hrv*^? d*Xim"?=0+A\x?it$w\?ylͫ??^~s ?-O:z'9?|)ݵ ?!>uiF?"AݲhDf-?8X/R?K;Z,1?j!R `k?S1YS{4!H?ȷ9wT7P?k*4߬~?=7L̕;U?`2&m|5`Eǭ?lw8M?1T,?:?NA]?^z&O?ĎP?ś?ȒW]?/H?:Db?f?pQBH_?G^?VOT?3/!n?@?,ֽ}?"?,ؗ?O)S?YW?$?-:?:Գ'?t?=p? Fc?vO?FE?k1%[?>ڂ?[6m?icy?c??U?z?h?Y+A? sID?욠?>+Ր? ۧ??`t?#;?즸I{:*Y1y?|@&5x?v੡Is?iw秪'/? 汿?Z\Z*?Wuf??UNrTA?W.TLf¿ÈqAk?BFmpĿGx?(^?iZu=ǿ JmG?A ɿٟ?$p(̿)VW?Yժο%?R<yпw \?߽hѿFJ0?3pKҿ/PZi&?' ԿÉ't?'5տ ۳?ںvYֿFH?_:x׿g ?(2#ɝؿՆW?y ٿ'g?ưJڿɨu?w#ۿ#l?1ZMܿh߯R?@3ݿT?FߑWs޿m6 ?@K߿JUZH?& h:Η?x'^j[щg?ߖ̱?ݔ5b~aG?84r^ҖS?p,῜y{?+X%?Pօ9C 8⿎dwa7CnZ_C`E'KsCeΥ?&-⿥`8bYN_Ӈ5P׳F9Ŀȿ'bef˿,XbFο1×G&'ѿP]mwC{ҿb|ῇ owԿ=GhsֿvR3׿Z3(JٿWD`e[zR$ڿa|/߿']ܿ֏ ޿,{ݿݿ99K߿d߱ܿUY8%UĽۿ`8pFxڿZu῀;JDٿUTMk2׿+shֿcvFhտ # 6LݑӿE(BTҿSB@[xcпAdc>qͿu%[ȐiR8ʿ@(A["|ƿ t8rP{>¿oƈH֌R*E_7+5x#_x.H1JH/>} #tb腎T`tvpk*B༝?s{s濑1+"j?kz-p}L?2 ~V1\v(?1 kHn?`UeQ:gt?R; ZBέ? c5w=};?Yw''%r?ٗȭ4B?/-w?oaF[࿘XDE?zx?M{޿Ӭ?#ܿ3v+Q?΃ ۿy^?j'YٿW{?&׿| ?DDտo?eb̻ӿ~? (ĉѿsA}g?LϿ:t8?K!y˿i6?JmYǿ̃J`?ql5;,ÿ-欜?轿1?i-w?K3164 ?ZbHM*;[P?ZbHM*?;[P?K?3164 ?i?-w??1?ql5;,?-欜?JmY?̃J`?K!y?i6?L?:t8? (ĉ?sA}g?eb̻?~?DD?o?&?| ?j'Y?W{?΃ ?y^?#?3v+Q?M{?Ӭ?z?x?oaF[?XDE?/-?w?ٗȭ4?B?Yw?''%r? c5w?=};?R; ?ZBέ?`UeQ?:gt?1 ?kHn?2 ~?V1\v(?kz-?p}L?/h|L>?1+"j?o?/??]sM=(?K.~ ? `DE?*aD5?ύe^?$U?3?Ky۟j?IU?s{s?} 5x#?_x.H֌R*?E_7+oƈ?H t8r?P{>¿@(A["?|ƿu%[?ȐiR8ʿAd?c>qͿSB?@[xcпE(?BTҿ #? 6Lݑӿcv?Fhտ+?shֿUTM?k2׿Zu?;JDٿ`8?pFxڿUY?8%UĽۿ99K?d߱ܿ,{?ݿ']?֏ ޿zR$?a|/߿Z3(J?WD`e[3?s?vRῇ ow?=Gh]mwC{?b|G&'?P?1×f?,XbF2 6>?'be׳F9?ٿ`t?V ٿAr?}S@ٿRjq?/Qؿ0j?Teؿ)ڳ?3+Րҿ ۧ? sIDҿ욠?hѿY+A??Uпz?wcyп^?YڂοY6m?GE̿b1%[?) Fc˿|vO?tɿ7p?.:ȿ:Գ'?"YWƿ$?BؗſX)S?,ֽ}ÿ"?H/!n@?(G^VOT?feQBH_?QH񜺿:Db?P?śȒW]?pA]Wz&O?XT,:?_>`Eǭow8M?s0O2= R?7rl&oǟ?&] ؚL„N=?`%U ~D4G?ay|l.QTS?4Ӕ{cj?˕@? 2&m?|5ui?F?)ݵ? ?3O:?'9?^~?i ?ylͫ???it$?w\?=0+?A\x? d*?yXim"?erv?g*^?^b0?Ut?waԾ?e8ͻ?b?1?D\ܿ?d5F?箨 ?̵L?? *I?n2д?Vg?qְ? 7\}?%k@q?by?雕b?8.?Ħ]?1q*@?Wȳ3?s3{? o?ץ_f?ݟ?;xGJ?$?b>&?GW1"?p?s?θC?GF?}+?j챐?#?3eK7u?^nʵ0?j.C?_7Ι ?'΀)p/?=Vo?p[yxRɻ?(ɐGhV?Ru#>2>zh?gM 5 o?qx/ě%P8?^-?R^ @af?0|q?[(ԣϵ?@ޞ?3:kGh/?SI,3^?wYA&㋲?-v"y~?&Z}z?xL`T\/[J?o7{BjpⰌ?qͫt?cDW* W?8+|qǼé?l|YX}(^5?p 8_n ?~De `+?}gí뷠ణ?>?N/܊ȇ2`Ӡ?3wy?~o4Yoc0? ku,V8G?憾_}N?xɬP?Kݿ\ %?A?:?WƓ!/%43?-R?@G޵GĂ?H!N8*l}?:W H[v?ao&!2izm?|7?_?eƍ3?a*T/rBreGfzp|_cwWOu9 ΤzD>"b< |u)\끿 I9Ǣ_ ^= ҅-&Jj 0 Ꮡv0W;&#-3$ }~fRYM)f5Sؗ!*@'f4eߛO#DN)Zqs1 sc( 5]QBe䖿SͲ(DjmnK$)D%o;4\)ENRno.mK%됿Xx_μS*lܞy+qC@ y.U-OKViH_eom,lpLTSRA\*_BE0&Bg`~иGyאНcUS;c|ڦ,e,~$vy$8%l"dvθ˻ ?tsPR6l*mMp叠%vk O썿ڶv3fPhuYC86Ba5xn锌Q5ZjዿyQ?w* SCݽo 全IK/^2տ6? ܿ4:8H?%1,R?B25oXݓX?L TK\^?./]酿B0a?F%&KWd?ڸdArf?JxO]SOih?i=9傿"Gj?]*h(<%>l?Nm]m?~GU|3o?g~{9p?bp*~p?(t-9}IDq? {jq?jI z r?rFyT9Yr?s!'xf^r? i\vX[r?)HVu\r?Golzqt*,s?.Qs=Hs?P_9r}Z3s?*qSĕc s?\%$pwM>r?SNn3VW(gr?2afl0{r?tjr?dGPhB :er?W/g< /r?ؽ AYre u1q?Lec8Oq?Mq_bA\jq?m`3Y|q?>u_Kϼp?ԋ\(~p?V#sYFW)p?C`ўWoo?!v[UJin?N?L6SE6n?V7o-Q _{m?N2l?"H@J7n9`k?v,nG4q=k?2D:)yh{j?Q'Aܖi? u<9h?mDrN>706h?Q<2<^ug?(#|!+!ݰf?Njm"jve?5zέ-y=e?@סRR)d?p6j]?/Zc?F"K?0Hc??E\ ?d*hb?c4C%?ٍ.a?@*?>F]a?^!/?%aHh`?1?Ӯ%I_?{i3?YdI^?4 5?`6]?y֯6?|[?0^[7?tZ?ƍA$8?NY?=[t]9?6~X?Xx:?x7mW?ti;?^=ԖdV?H>.;?3fdU?HZLfs6\?s?|ֿ?P3~\?S?浌m?VIz?h:?ɄdCNE?Շ}?ij>6}Z O?b>sd?Nu>4k?#6>]?Ӎr>F]?qsf>Z(NL?nQ >")uN|?u7> ?\>:b>?M ? {x>^ ?[,6HX>O,h?]> fבK?x2G>ytG?Ÿ7:>]Ա>?] X>Ud?_M4>r$-J?:NJ\>('=?C7l>gy>?>~k@>ߓ$>ڄi>Ɲ\<>\62>t u4[>E}>~Ų>0ȇr>WV>I~>H 7+z&>ki{<͆>8|X0h>xW:({>8="d>rDYę&ՠ> >F-|T,J>/-I^-;>ې;b]|> V(ջm">-y1kSm># μinI>H>xZ'G, >e0e>mUļOI>0rZaO>d <#Zt>  md>CȠC>t88a5>bet!>A$n>''XNJac>ԒxYD'>[:;Ķ>K>"q $0>Oa,2xRĚM>-<|g u>/sޝ[-e?.>[fuQղM7>yH@71>L%FK+uC>ta |)2>Kx -6>k Ƭ >9hS61ж>,GNa4&[>-YkͨsmIu>>qҏ^>6];uu>=$5ѯ>÷HCYC2*>VUNB̨> xRu>mIF~n7b>|m8<>_$>!ʎ5Y>~EدÏmm>EstYۥܜ>P ?u@}>gjj]g6&H>_*J wl>>sE>kSN7/Kg!>yVZ>I8>B87>%$(>Qm܍>,;ʇ/dh>Y\D@֬C7>Z'̄ 6>qPn&D~>"L%-{> +ӧy>4zvv>z Pw}:Ց`t>#v{NWzr>:yÆYq>v܈w͸o>a6+v ?rt^ wi>a-sbd,äg>yCqRsWd>-{pe b>eHn`a>)JڌlNV+^>k Dp}j؏ih[>x=ghPKJHfcP P gaus8_psi.npyNUMPYF{'descr': 'P<y>V9ҡ>ooG>t=$ؤ>NG0D>%[>"S mR>#țo>RO>ǔ>8H>*`eQ>0s״>V{>=e?>]E $>(->:]>bv[>  p>>nl>Z0Lj>3>Aq>|\>50k>jE]>ro>KA>cZ s>+QH > ncB>׏+A>Q >4>*Ĭ>/GĻ >*N3>4o>QUm>&X&>^Q7>84=>銂f>R>P~>3J>*>n!>L20>_>U+>%>ԝÖ>o->YJ>#H>6O>cFI? {\?O9?@j_9 ?'?ΜV?h t?cX"L ?LGZ ?r蹝 ?m0!l?P*?h-?*X>?H`?v٢?uh^?"!%)?H}ݐ?Y(t ?yCߜ?ZC?ݛg<?prj ?m+ߖa!?e"?)ow#?6$?ea %?Zsu'?l4U(?04)? '+?%,? 3C.?D>/?l0?W_1?hg2?a3?p)4?uK@5?)dox 7?ͳNC8?S =A9?,ֱ:?Uv;E?/=F?Q]nG?C,I?ɴ.CJ? zK?z@L?8xi N?hO?dӁgP?,' "Q?Jrk Q?iHrKR?wS?%LT?웋j(U?B V?V?ryW?\gX?!AHY? Z?T4[?ͯK]?w#^?G_?a9`?`?}>foa?@+b?aޭb?.庍Zc?9QJd?_d?mce? lif?|\Bf?\h$g?^.Bh?[qi?i?J{j?r;Fk?· l?c60l?2mRgm?>JK^n?^wj,%o?Eu?&'At?Z6t?:r)6t?P6^s?; 4s?lGM܌r? Rq?V'-q?jjuZp?r'n?/'Bl?-j?妟Jswh?Ae?3?mDc?JTc``?;%,Z?pjS?*_Q:I?Im5?l#7 JE"1 S]. ] =oc)ɚhs5@nqGTt Ȑw[S-{y_~qT v݂t4 „/È 6ފ"& U -aeIQ̐͒?::T6EwR*u eÁlZg͙?56}3[NE-NcӋvaܢ6iekЛx=pAfp|k翬]yD9=迻g"K|lX鿈+{ #f'עZUˌ,t鿳kW̺鿚fC鿕=Q鿍UdsaZ~o/v qYgӘk@翩3je0s1dE忀?⹞7EKV37Hg' Hῑ"T 9!)޿WܿqbڿQo'ؿ3ɂֿw'jUԿQzҿ z֢ϿA*LʿLU:ƿx7!fP#Φ3Hd:hgXA$ ?NZ/[?$c??m=B?AuR?8?%s?X?5?4S#?%?\& ? r?N[m?t;n?xs0?%?rK?ZAc<]?_g?af?i?XEa?kO?L43?1) ?Ueb?k"̛?wwQ?m^?V?z.&?B ͨ?mwz?p A?|m? -l[?q?XЀj?F?)KX?)KX?F?XЀj?q? -l[?|m?p A?mwz?B ͨ?z.&?V?m^?wwQ?k"̛?Ueb?1) ?L43?kO?XEa?af?i?_g?ZAc<]?%?rK?xs0?t;n?N[m? r?\& ?%?4S#?5?X?%s?8?AuR??m=B?$c?NZ/[?A$ ?Hd:hgXΦ3P#x7!fLU:ƿA*Lʿ z֢ϿQzҿw'jUԿ3ɂֿQo'ؿqbڿWܿ!)޿"T 9 HHg'37KV⹞7E俀?dEje0s1濩3gӘk@qYo/v ~aZ迍Uds鿕=Q鿚fC鿳kW̺ˌ,tZUf'ע #鿈+{K|lX"鿻g9=迬]yDp|kpAfx=7>Лv&+B#ԯt'Fڌ%{ *9v ߒ⿴TGk_c97RS蝴 )߿ ޿]Ҟܿ3هۿNrtٿĞؿzֿ-fԿ9YYӿX%Wѿ#5пy$MKͿ$7V`.ʿ ǿ.n4Ŀ8-%ի'\ o*mc6wB&shmCpId?n?ڎ}?֫Նd?'[?,?RJվ?l_ ?ՈEu?YK+u?tru?u?e0u?|W6v?]v?v?KyBu?#Kau?I^:u?c8_u?!vPiu?6,5u?k̚t?+Wnt?p?߈Dzt?2t?us?,ޕs?g@Bs?vQr?Ӑrr?HjJ8r?%Q)q?e#\|q?˻"e*q?Ħغp?nqXp?-JK^n?2mRgm?r60l? l?};Fk?J{j?i? \qi?l.Bh?\h$g?\Bf?lif?uce?`d?EQJd?6庍Zc?aޭb?C+b?>foa?`?j9`?G_?w#^?ίK]?g4[? Z?!AHY?ogX?ryW?V?c V?j(U?%LT?5wS?HrKR?`rk Q?;' "Q?yӁgP?hO?8xi N?@L?-zK?崙.CJ?C,I?R]nG?/=F?>E?v}&D?tEaC?yB?DOT B?V 2A?i`eH`@?8B_X.?? ֬=?xv;/?3C.?%,? '+?s04)?l4U(?9su'?ea %?6$? ow#?e"?S+ߖa!?Xrj ?g<?2C?yCߜ?5(t ?(}ݐ?"!%)?Zh^?X٢?H`?*X>?쒀h-?O*?qm0!l?qr蹝 ?&GZ ??X"L ?F t?ΜV?p'?j_9 ?'9?{\?NFI?6O>#H>YJ>o->ԝÖ>%>U+>L20>_>n!>*>3J>P~>R>銂f>84=>^Q7>&X&>QUm>4o>*N3>/GĻ >*Ĭ>4>Q >׏+A> ncB>+QH >cZ s>KA>ro>jE]>50k>|\>Aq>3>Z0Lj>nl>>  p>bv[>:]>(->]E $>=e?>V{>0s״>*`eQ>8H>ǔ>RO>#țo>"S mR>%[>NG0D>t=$ؤ>ooG>V9ҡ>P<y>[plq>PKJH鴻p}p}2_shan_1001_coefs.npyNUMPYF{'descr': ' ?Ry{?c͂ῄZi / nAP/Z?h?XO6?&? [?*ƚ?̛?PvzHBkFi q?S;пs4?!?$SD00?߈swZ*7?8 _#?:\/U?3C#dC?ZB䛋Ei#?!?b]?; -+̖̺дKh2{j5rɿ0j?̹ ƩX?[~?Mڻ 3S1ԩ?uۏ?{:u@?-RV?m萿9^̿5@#30H? r$=?*9+m?T8(B9: 7? 1Zy?N1VFw࿕?\PD`¿`Nd4;?'Wޖr??\?Dj?{rF;a0WkW౿XYQϿrN݉}R ? ?$_D=?2 $ɜ?<.t"?uRЂ>w8E$u?<[K? M=D?X?$#ӥWLJc¯?Q*]6o~Ŀ \͋j`?|)+M?߄sĿ}fz?# 0B?xXgm2Sjy?<oP`?GVN.?S'JR׿`t.3C?:eEM5?`uXɒ?-O+؈2Ʀ?>?Fcr@**G?jMW7){1῕MLvk?Us?fpB.?M!+?X[ja?4W?sB?x[űثh`?4y#0]=f4? 4 w0D=u/ſ3K?2 f}?` ?2"7`4r^07Kڿz@i؏?<?F?]ir&?Bu6 ?a~E ? mH} ܿ}NlP̽l|,VuV 6?l3>?Hdݹ_oV_$?!imN?J?L?CY[`cpbW2߿rc`=J?&Ru:o{P?d.Mw̔]zRm?H:a4?6>v#RP2ɿe#;ƿt!'?u!`wN?uPnV?գ?gF?zNSٯ?缪 lڔi0 2 BUGiR{׭ѲWz?@5`?_WŕMϿʼ?J͓z9r?,؜O1?t\]ÿnk!?pla&?ą+? bR?X-ܿtlNBj?9㼇!k?dؤ?!'hm/wƿH?k?yK?h0?p65пTI|^GӿV㯊j?T?/kF8ܩ?T?o[]??ȌԿX+JܞX{mܸm?9'j`rп-_PM⌢?^ ҿoTɌ?Zsy?SA9'^?|^?*G;;L?CboF?L?xhr??SMb?Gl <قܫPԗ?7-ޯq7 п&MђLS~ƿm"O]?F?8c?nWǿؖp%r-C ?|4#_]D?EHL풿Z:?.?a;ݿ6je?$?1qWThĿl?R:P?9m[bM;-|?l|3?!ϣL^lQ'j?Z#?p (M߿<9? d@? G=?dEV?<9-?q9?Iť ǿb4Ճ , Uo?t] ̿蒮?Ċ?s-?@ʇ50ݗ"j󿠖zl?v?/q;*`Y?MO*fb]?W )?0߿&!Ȟ$8K?2¿<@nyH?Rp(_?}@I? \hA2 v̘% BŜ@{.s;EӋ LY:?-[b{|?K)¿ziD?9pῊ顚?K^e;j𵿽bC?akif?W~E? 㟪r?AtL 4(?kMؙ?YT~t'*?s ;DCi/'`.ǿ1ЦHcX? kJJ%b@ny?mWafW?ss>??`?]B,z%׿8?ߚ5<^?Z_;`?{7Sǃ/裩i-?64Pj)D|?UW̿\*ݩPCU?Ԑg?eq‹KޓPR?-bNῬ#tg?y5?.&v?jttI ?=?Sl?:|Ɯ̿Z瑖bʿҀ.\gكuB[?@?[k1^S`?.\?%tA?|?g6m=ۿیߋ;?#Qe?QHj?uֵf=X5&b*Aۢ$f钣T߷?fNC,֣?q6iOS\7'?T;Y?jLTտ*bbbCm b?uݕ(1Q1Ьt܂tο@S$ ?os?4|?вG.CѿXpَjX4#e?t3?"q %?,Ū`?쪇?w0?p(ֿdS]}u)?iO;F5:x%?k*&h-+A?#?3vm%?/ő.xb?vcPv?{ ݿO󒋳U?e+<`;T Cǟ?N 4ę}?2a33ֿ@,/*LjQ?H$'?Y."X?#7 KX+lD¿t?{rHU?4()‡?ds,aө Y?ͭIt?WCLȿx^' B9?5ԥ%NA?顔·h?E}YK¿YT3ek?&3<$ʿ,icffS5P\n?E]'?# s?u?5MNd|?7F4p⿠ 8"pB?djO+f?D#?m~fʚ¿Ak,΢YpoO7޲҂*xGο IsNxO?SS?:3?|څEc%?uiFݿz׈K?>6I?艝+*?uꏐ?՟f?apy]L}O,]?acfp C0a{s˳>wTOBG+? ?.]?Eg ߦ@ra?^_?"tH5I|?ޘ$?6ؑ?k?Ȑx}j߿<`?V˜: E?E1=P0 ?Iw;? =4W?cabͿBksBCtE +_?h^gVg|?T?W?}?ٙ M9>4 (?0vE;7YX?l&,hЦ?ϡ|od?ojUGῨ,eٌV?ʝ ^4 hC?|U}rr ? (ݿx5y~Mj¿jpI?mSW1?)xYw?_ ?z2گѿl1? 3E[7?`G/?DW?7P~ÿϦoWKۿ2?4~>$@bBw ?xCHr?N`?kmZ?ܿ #=ޓŀ9@?\2??k?8W )w?X9v?@쫄X̲Zb޿v2,[ OnM:J?BTqE~?"DV(}0O ?QJj)}$t?ߊ a`]6?鮿ы?Q1.B)? 4hMҿo>*#Q#ƒlYѰ ?{i?Qc٬ ?^gzGԙ?툿?jU?&?Z@me愘?8 q+Zdŏ¿- |N?V!W?8?"%E^?-zWT3% <_ճt-k޿l $h֛ſvNݏ5Y?$IN?^ϽX6qy?@l|?z]Q?B|[G/I= 5cz?ӐwĿb E]y?A!Za:Qaa!?hOZQ?&N?K]?_R?KNtHC?A<.PD~ɿHiȖC{̣F;mO?l?sg}-ɿ[w*y?Nm?`JWt?NZTBBJYHot?4X)?L?v.H?ki/j?dcܩ%9俌w`9ˉD\*Ufr?uAr[VDWпăP%?GOe࿤c?tTqZbRv)c"?[ /8?3?Q.t)Ԯ?zmJƭ?}d eW*Y?Zr ѿdF]|+uRN~вL˦<@s? -67*?39~ط?VBMD?k(4|<?.4< ɠؿ\>az5??#ʪ??ҊHnev?C#FҏA`F=$]#o?Z\DEdd?1Wa?D#Iu?&&p?魶2zԿcM?q y?~! G-V!zr|*?V5z/ԡ?yrC,? ^(v׳lMl'?xc1俔z?3?nd,_Z0?^&_o?.=*? )?62x^캿WS Tq?)NBoe׿w]xNKo?[AO?ya~?&wɿ;٠,8a/%??F"TA\x?im̍?x~P>7[?}M{#?h׿hx󐿭 6?kM쩳q}`𲿕D,n?ϪZ"?B͈?XN!m$ÿ?725u[5ץῒh*tŀZͿ ['r?X ?:\׶ц?A={(S̡?#G<9M?zJ?Y+rTTѿ&_ug?2B?ojO?"ٕq?.!ҳ?k:lh&Xo3违0Uv?h{}?XyϨo?N.8Llqu9K־?g!ٿa2P'ߎÿI4+áמ?%UŖ? ſ/?37?|?jwǔ?I o?gۿZ "? u<$?+rF+ԭ”1Ѵ?Zgv.;S?#?1<齽)ftj?qQdſȨ?ci j? kd?ݐ=?z4i0?M? ?O?1`ؿB+`x1JC?WZ?;wUGiL٫?+D̠uʹ?>FX;?ѹ$ZzuZeAPvVٿIҮ?r¶Y,H?U^Aq?D"3?V>-D??vDz?^ݿB(?m kk(SXdń9?is?ë\ɱ.?-!b?8Zq<Y&soԢc ,̍΃?0 ^br?_i,wUnO?znQEB?-~23O?SE濔#wur;K?JP2DA?M+?JUBX?}x?p K=Xh?"}S 1`ѻA9m\`,n? G?rm]ƿba?ݡn]?4I +?ി? ƻ;DSW2[&\? Ѳ?8Ii?jж5H?.??{d𿦂b?ݎQ0H˿LeͲĿNÅ?jʉ?{ϔѿahYK?ܬƿµ?vL?/yEH Kտҝ?捤?l\n?ku<%? Ѯs?VqPFE?ʐ5KA\<{ݻ? +{?6>єOP=9_}2"?hG*~C]?]_[䂿`s+i4?Z 4?`h{؋}X²8cH[&^?GYso?Nn7@du?\!nrA?ebݓ?/p _#¿ͫoY{rKۿ*P?1rʿf?ʯN?+m?/Eݥ: arY[?:EwK[?M˥Yd?أE?w ?,d ܥJZ'`Ufq_h?O ?C/OS{*gĿ_8?,!tЏ)9[?fUfʿUcz5pǿ X?<z?m?"V?j8k? F!몿T _ Nb?Cr?fd?G[b?ds?b^|`rص ^S+e>T?@ow?;O?B8%?6ďٰ?Tͥd3JAEE88ױV&I>?v;]]=?TUMwׅP^̑?bje?^_rc$``l¿"|AiBR\?dUx?icb84wh2?҇Ho?%@ʥ?p/%W+Ϳ? Rm|?ay~?iv}.ڿ+hQפ hLj?Y$?Lފ?f]a~?ph(?ș* !-w?!rS&˿wrrl?ĒH㕿=a?6;*?\S@o܁?0P?\ͻqëۿp쐿s_?~YO?Pt?hdj~0|޺mj? ӿͫL'?N[Dl3¿4Qҏ7 ?ԍj?K zm2>?$7;y̿`P?QT?}\ڷ{?YXw?D Ν?iRhEпvO3ͰY7#?;-#T?<е?cdh'γGj?$m~.ʿ3f?20yi!o-Pmմ?;TӾKt?m/󛲿$VϬ?2E?|u׸O"[Vпz&?o?7!M@?W?0byGi?J?9:+n?]>ֿPBp;i:?kvz\ 0&?c?芈?hѓ&?n< Ŀ{L鋌~@?ޑnsgAO?sKΠ)~(? }S@d?F Bk|?K?^z/ O$,T'#$9߯RۿΗ4s9fK?^?H?V:Ilϫ+2俧 V?~}<˥䩘}st?mX?/8?t??yM׿#`6C~Yw??1Jq}N?NkGҋFz?,qdݴo}d)ǿm<`a?a r~?pPŌ?:6x-; 4yr?.7?z?写?<')䤮?e]|uY>ԿSp@<+Y˿*[ȵB3?)93^?iTrSſscr(ڹ?:q٧ky c?<go?V/m1÷ǾX әɿJR]ēpN?)?@$\?0P I}bWOtǔ?Bٿ6s{?H9ÿD^Ŀ.X1ѱ?lڠ??N?YwtA?ꮙ} ?b6,,>~?ЇD~񿨷* 8O??^?&+=˟aq'1?=qIͫfu0kc3[(j?2Y?>&WgF?aȥ8⿶kK^h@`÷nڧWѦl?& ?4^ ?D݀q?t?x{-?vM}e_?FL1E?|CLпB=OrY#3?l,pҽHM?.H5v՛?|v?>;᥯u&#6Ħz?frk,Цm4kje!zݲZ뛮?v(k`0Ѐ5au? ¿tgzXrȀ˪:~_E`lBO4~/uѣ?>/G?ԫyR6& Nv?M:5aU?wY?Ct|0Ϳ}b03, X4y_0?.Qdޞ{ӿљJ5|?jx?@ !Ϳ$?O9]2"?Dz@(? D~ҿY\X}Uq޲q?mi?BaR?z@ʅ^Ft1>>`Q述*X ?r-ØfӚ?snaݭQ?UŌ?ni#?rS?GK98J</?@&:;ym?ZQzk`+@B?% i䓿葸%}>ȿzпHRfz¿jO?BEO)Lv?">k??'`?1H?0>ѥ?ljwrm?w[&0P v !?Lϖ;ZC?bdk%p{?0Rj Ŀ ?Mٿ5$.?7^1f?3ƅſcObѿ !SK@g?l)\y?dZ?[ Ѓ 6ov?GsEHQm]K$̿dh\ٿo.? Cf#?;˾dv$?Q4b ſQz!'?(n*I?,G>|$Msյ>= ?}BJ걿[G?[+Sh|.6}?#N0?9zZjeyjſSX`So?}4?! d?'8rw^?r w ?Q?[~?91U񿏔QkX*}?Abeſ*?5Uz.ǿI?p-&P?r/?ӔĿTB-L%ԋ ?݉^?1?{"?W3P]m,?u N< ;Ϳ w|f?ap?HNa?`F?Vѡ v ?1e?Qi>ٿ}1q 3{j?ADMxk?T1U*h?}]W;?g= [Ofɜ.F俒#cae?OueF'~?G{;??+F? xi?F41㚤=xna޼H?X5)}%ւs!?M=Kײ?\W:?5ച]43ȿQN Dn쿚\у?oZ܎A ?Q$^Ҕ?6n ?5և:.?"nGwM@?pz݂|^5?x b=~?:ty=+ R͏?k)s{v#2.:#Ŀy=cYYӾ?@y?VCX?@b&S?q_b?p(p?T?{ 2^73vqEA:v? Rf?Ȍբw{7Ŀӏܪ?h"ی@*t?4?>:^U\?(KRam?LU?@?=ߦпG LwdG?1{]?NeuN?5Vۍ?„?*F,^tdh9~?l?Ѝ‰,s?ֺh?HcGŚ&8o?? ð? NſZ0c?HNVѩu\coI~t?m)?:JzuJ~? qI?Ʈ _ʿdp?:*P!Z {Կ‘.?~%Z?NjI;?݌}?y8x"9;:$T㿮mxDmu`4$?8ޕ?Fm]ov :p?J䜞?nq?l2r@ÿµ?HxE/a͝(HfRXi@?\BiB?M+܏?g^J܅vp͠k*¿_E?E sYXшurO?LYm?>c?:rB?Zqt8߿:A{ߨ! ?+p1o?W>,_o黱?bhtR?lԿ!m+~Ë?-a?Ɓ_ſ0Dfg`ު?b?I[?Haݤ𞀚ٓL1DU?2Q g֙[-"A8L?4[?WX&ՌU&?ߡ%Իxkj:50l4?ڗAAމx?%uGk?ݼ? z?펥wֿG̍kp l&ayx*?VUǂiƿRT拒?|ы}?SmAK?#=.BVof?^jйZHcv?Sֱ?yDTiC&=d?ls/; 6&s b~@uy3@|pzgrʾzT?Xu?\9| ?y?㢔v7?T?V !?p,M?pO7;3?V{)?-Dsg噿TPz?Yk୿G?x,ZT?znZAct.;?;|A?:ߣ( ʿ}ÿ +p翂zĖ?"UPdG?@K.?Jٟ ?Ws?T̈́ԁVcVq?Of?(@+?v>2p?42?Tt?=[&-U:Cى(o?8QaT?<*>o,Gۑ?HDl?U‰(cB?J=/>$RuZ?kª,jSۣ19C9ƿ ?V[Ll[?.F(qI?SuWyc?4 ?WMMtZ#%߄?#N?19I9?f]?3< |cPN?|Fʍ#%F7m .*Pv2?N'봢?6w #ҿצY''?vQѿn#Hn? AҔ `˿D}ܿ1&Ύ%3o?E?v?y5͔z?B=rD,ͩbm!??`sEYʛ{`e?MkyE >0lN?p6V߶u? =&? 務?tS?y WL? 9MLEpڨH7YNZֿwWm {x>´,r?&)A?C/$%,?YƉ?s/shE:BbW )?w r?W:;?+J( t BT]Leēv{?RKÿr0\'?9Z1?D(z?%a>)? XՑ*ZP?0G0?sDŽW?QH86?"?BҺ?WqDZ?X+^{@O<ƱZ,|c?W8Vl*YyFǿk~[ɻ?-j^3?nò0f]?9cëz|E˵-sAܿ/F?OO޾r|?ߙdU?`fVk?smϿ@C?:W?Ϊ6s;('?|u{?h^?iq?ثpTӊ?-?pҔҿ'm?̽[?28#w?G.]?r笂?L?:S?MȾ"sUEצ(?כBkcB|uœp؎,%KE.?< ?f?, ,?@Hq?qB|-=]hX4`zmVAZ?2B?| \{]˵zo?-"Vl$p ?JI\+?5? J?9!lf?h绿ǐSݸ?}xOڿUhq}^gm?p?3?R^fNɁ`%?Bm:,a;Ղt^h?\!<ĿgpStE ~?I!@@?FWg? q[ۉ`Q,vſHTPoe?;A~L/?ga_u?f?֨ ,?R?H ?" ï?M0.oпy>6ں?F}ѐUa?ԿTkz?4v?1𿦿{TР?Tǿ3Sb ˕=п>71??8: %?|vv"?֛$XԿhS?#h?z_6]3Sk[ ?Р?,Ƿ?ڈ'G ?v5Y"εh蝿vH7?tT](?!of]}0oY%?rNp.ڿ|<݀ԩt?!೿U\?=9?'ml)?p}jdjё?YhvLUY? s?3mNtD!?z?c?ײ?8p^H0x`NRu?`:|?qb?ߎOü(?w:u?ٜ!K?_nOH?'俌|?t T+_Jh8m?ՎQփ?K7?EI?D0῞:wggh]׽?$.QRyB?PY*6^n?QV?Q?H:P`"Ѽ$˪׬T3bFH+.cϸ]vſ8?;j?%?XI]~u{?'jw:7㿕%y?N}Wg?^h1!^?bGM>?#ҁQM%KN?g|Hrn션޿=d ?k5VZ?CW^?p05޺C3rvF)/H?&!Fg?5U?v@9в?VYQ$a#m?i su2X <갿- +U4?@osUnz?\NC̿ɠ-Ƨ?roms?|oO̓ÿ)\?vC{?V 6?JJ?;Mnm~?A t?\|sveE?z%_=ݳ?`?e7迠xqUy|?PGFK?^r?A`D )րcPg?g)?\? s>? A?"M*[ſ8=N4?*X '?@VWc>}??t 2?Rnu?P;CԔ?P).H?-̆?jPMٿFeʪXIMz|kf? j~?ة&V-?ӿd\E࿠(?ĴatX?X?g`X$ )?)B?R?ξPlZI濈}lr|ͧ?>D4U?X%UƕwʏOeNx`\d3⿀@<^?yf>Oڟ?]A?lU?> L?_؇Q&9s Wo?p#~?U?@?G)p?`c jXdw$UzV4w ȿ`P?/9? )~?uD ˿S_PB{?QkpR>9?c&pN7b?3A?ꄀT?Xp+;?r]lᖿo?s f¿{ ?F('rG?F`?EFV.?q4?C~z?y3?'_w7z ٿ`#v$ƆZ(?!5 ?zzjb?J ryG?E7O?Z׿.n?p'\ ɂ?b. CG?&)<2M>q\?HQ?mj~Km "d2?[LR?ēE82bK9n^?iwJvuu';(y?9J}Ϳ]c7\U!M'W\ÿUp?$!Fe?VMc]?s Xd?PG?/SmoM?!Jiޯ#`a?D(O񻪿4?^N«-?+K(7?S,SĒ?:;݁Lz'd1B\(|o?8?ze8Uq'&?@Xrg\?}?L?.hĿmU-z?s?ţ̽&M\ѿ3\j0:??{Ʀ?HMGkCa8BYG}rW$^60?EǿDi%?gU? XESʹ?Jٿ&RTu?.ςՋ?̕?m?Hd?{ ?[iNl?7ƪhxܘqC6mXZ(?1[J")[34KTĿȧ3SH~?|3]f? sm7e$Zl?&Rn?r"ˎ?v?zZ@ԫOW5ӿ2yU6*? Ҧ?"n5?mD}??0.@ ?*2P?Q;0rۿ`4tYG&3Ɂ.͊? ? 67?4l]n%¿Q*?y?|zd _T.?zY֔I5?SG\?>Pb(lS!okTrؚ? y;a}U4?^sX}( ]{gO-?¨M_g?ٓO`?;To?&琿DP;G{?;Y>&ӣjoSݿ2-ހS^a?MxjB?*szM\϶\,?(^| \{{Lp?{ m)^|$I?Y5x??^vZ$?u]U˿S6?ڻǸr+:nƿPxV Hڼ'?^Bn?ܸw8ɿo~u!]`i=?:z$?Yx?N#x?a,s}6o.7˜A Rh?;L?Sqg;?@V7 3kჿCnlN -?=?jDXV?xoA?lۿ0PԐ? ?\XYÿVW9j?˳$٤?i?5YAS? l#m;eпDt)jz8D{?1,ؿڹ=2b?a @ ?2ǰѱ<i?vbp^_V?A)?㓄O, ?0dKoEe:? ڵ? lz翖B s.O ?R[ζ ,?4#z0` 5J,&?dX1?z#O|j0l`8`YXDݿQF? 9)cdj#o?O t!?ӉV=?"$gZtRZJݿWbМb?37?{Ͽ"?\F=`{*??J Zo8?˯6 Ƥxt=j \Bɿx);e?1eѿf(U젿'u9?K y?VxÿzGeJ?vD(XYa7?$&"`?r";fHNFؿ,a0?kJ$D?@N??cntx?Mx-ҶpI[2  ,rp?Ja5 /?ׅvZ?hdU:V-|0?Ed.:?3(Ç3Խ2ÿ ?Yiէ>0]2 ?=#Vп~&}QWbйxE{Ŀh?++M ʁMvB?y]? \34'?T$$eѿ%@u?lAI6X9?yUSٙ ^jj?dX-:?3Lhj?i?ǏaqN㋱?[T4t}_翑em?-wƠ?ݤEЫSh?TOk\ {?Ilb?MJ[⿽ !+5I?*Pb_Mbj??io]?(Z2.jb?Ks P?SEԿF~0r?ei$9?5؇}?9 *[N?L`]x?5v?h f?sVP8ߧ B?4x+?9_?gXЭ?t=fߑ$" s x?Vߙ?|EIͣ?[Eoٿ`|X#ޕ>U? 媃'?\n(W W9?: .x8ƿK*{3eͿ_z2g߻Щy?э.='?r{, ?N1n1?ht ?R`[њh O*w2dl ?qt Q_?iŮ:c:??\֠?|8\Oӵ?}?b ?㬔e?P3ڞp? w€T?J1Qi迼i3 |6]qK.P?(pBgEQ{ҿL3?~?ҪZҿg0Ev?]Uſ{xRYW'ޟgx? ?4桲? .w?z΋H9?^vrЯ[ܿkJ ?H0j?v?k:]bƿ?A?f/2ѿV u?Ю 4-a^9-?Jgn?]qɖ?R2}BG \c?=?>T7?U M?ށ@l?LBָ}ؿ(3qKmvt?& i?Sdԭ?,0jNj?Y p E_1ɪ?P^huǢ۫æCl˱hKy܈ZB=1?l莍x?J>/!?1E߿k?evU̶Hc? տp&?֝ħ?D3?r,Ā8?#ɿ,>]jO7RjM%w!¿fq[i?,(⤗" }?tp A?8%V{?6 /.?q"p,n a54?ȩӓ?UTp?A HCvv? t.G J躿Ba>˿0?F?F,&Hߗ^o?p+`) }Q7JϿfFG*95Td? 23l5?l L?KJ<6^?f32C¿M5w57Se0?zBʞ ]?.M?I޴Q?=nk?U]^板tV:?hn꽿˿7:?R"뚍?6??L?G/vTW5?S[*Vp?N쭿nך?A^q? ?Øڞ?#ْpޣ?=vPKJH\>>1_cgau1_1001_coefs.npyNUMPYF{'descr': 'ÿAOI俦f;?\f?j?NuN5?=he/#?ׯ!~a+e=_w 1?i^[@?`[2DƿEߐK뿰`G?ֲi1IB?dm* u$?f^K?#jqTM9ǿhQһb?f;a[^=q???<ǃпZ sӿ Pj?ƗHNR?Ԓ3+뿼;`?`ǿ+ۺm Ŀ4i?Zu^㿿"ݿ0p(F?G=qۿO?ϼQſ!sϿɊ? imd¿8Q/?0#(u?*M6%Ϳ׬B۟?EhS_2꿂Ɯ>&?I9_c?pXw&IJ?n?0)K@6k2ؿG׹?1bIǿTvY߿xU|$?# nK[Fۿ&? h9¿lҀt?>Li,?-ͱ?Wשx,(b?zf7 {@i ?Qg -[?_l7FcQ6Y?8 -|[ٿ\j'?p?Pv(Flq?[/߿+geE?SFQX8῿и1"?V.]ֿ,-ӱ?-Y?6{ _{?ta<-)E>?aӂοH޿!d#?v eY?A+]뿺͵:?@8fG|hƦUo?}3ÿ(_ֹz?]E=?^VQ÷?΅Bh?h,5_?F8̯?vɅ꿰U{Q?ND@?nV0ܿ>$#?اo?EMGi\;?uj4ٿ#QLeݿe?e?XO+?PczD:2A?t'R5?#wf/(?FH?Z}ѿ ?`g ࿶ ֲ,tDҢ0ۿoz?Mg>*?ڻG.?ƽNÿn#u?5穀 ⿯Iv*?%,?g}2k턽" ׿R#?8?3TW, i'?0*~?ØTTt1X 1?鈛?G,\>A\X?`u6?ƴ⿔?$ؿ[;OW?aPX"?}[⿳Q;?DYN8?~,IX^1nd?,X.ܿ@t ?n=eI?= Φڿ}o~.?dD激A~i p3zC?0ЪuɰOˊῖ ӏ?]m?7j?HƿP1q͒??fҢϟ.пy?SS=:ؿ?wbmƂ'0.??1@w?JF^7?_G7"JpEg?qԿ @P?[R?]aΐr򿊨q[?2 . gj^H\54⿙$?| ÿvI ˿k#?p?=\޿i\R?YܲEF_B?5A3?vgC5!`?ZV쿤/kS f?Mګӿ8??V#͑?@` W %}C/'{?I[.鿚ῗ4ɒ?k XO;?r?zUU\w?Yi?s\ٿ_(3ֿl)?{v ?lLܿ|z?MPヿP,i?SU?d%XW׿(]? W{_ԑ?-w?S`K濈l? t @ީ?~ƿ$LT'пKS#01?XXU9?~0n׿8?j*?{{IDU xG5?/迸&P?XRƔ?25ٯҿAn@bhտ6ܐ0?bo=?N7j㐔?&i"?wY)ܶܿ ^Q"=#ap e?-w4ÿdwi? 4.?]b3+пx?J^῵Dzǿгn?FIc] H?['(\ aQQjO?xzyÿ򋮔x9Qΐ?B?'Ŀe?H<Ɠ?#nͿܱ*Qd?;.YÿT!?~9x޿pA?yn?.$سP?{x7C?.“^.?~òÿe?[?ޚ,?ްX!8MŒ'3?SRDVֿn( f?pQ!J?\4C?Fx P>=dL2z?kOuLۿ#մvYB濱V]пR|y?hҿ:S?C2L?Ud6?Hl@ۿA:?yRNǿ @g Pܿuz?,?wdm > 4?d[ѿ,L01?n_&x??/s?U;"o.r?N#$q?%.8 ӿL =㿖-?xƿb{BTeпT?6+#vڿA3V?x*xU>?k6}G?_D`jTÿwu?`ٚ´n? kk<. ?`/|L?tnſL=׿hyLI¿UħL?lZؿ񃴤?1T?>GJE?#VXؿ2f?dѻRӿ nwk?g{.4Op?I>?j H6Ϳ>4?X2C.?Ȩ^οu3h?/oO?l\أ EĿ>?8ݔwnRkb]?wŇ? /q?\}?8ܿ7j??"ctѿ^//?),q7 ~?Dڍ(?!Lqѿ2x ?۹9HFkO~nlX˿V4]?tS㿮nw4&I?DGR-gֿfF? /w{?/V[^?oMf\?ͮg]ƿ1p?%#?2*ۍp}?k4ٿD@9? OῬF?^F{?0nii?%}_I׾ܿ< ?hzG?~Ol@LD?HV%e[?;5Nֿzki?wu?S`V<ѿkpc?п؍+NZп$_?x`1ZvT?E?QeJtډ?Poڿ Ƕ??d#ōMk3Կ*w#?OgtQ*ʆԿo:?p⿾?-J:B?֡꿄̰䨊?ap?etԿ@Hx??˿rAmx?;?~?F/V?yYKտe7@?nJ)׿!m?Tj-LG/(?j ×?D%1{?F5msr]~Cw?W$h(QP?afc⿪& 鿦H?'L ٿ@z1\?Y3?taYPxZC { ?pDJ忸q?C?̿ň?2,j|ƿ`RnU'ӿh!?HZ?Ac1ݿ5=?yď?/e.?4HSsU*Aۿl&S?:+?*!GcM&ʿ f,hT?8|kJ9e?\?~-DW?>^l?.?O>Šb?LadIvn?j e? uRyf?3?dhoP?$C[&8_?%Ͽ$Yǿ:?#>]Y<+ƿp=?ӿ\\mJq?vWK?ZCȬ?x}ΩܿMu̿U`p?ɝ`#ؿd@r?]2?ge+<+H?8sB&CRh*\R?o)?0bf*с?2 K,?pԿ$;ۢ?+#ȿ9W?@W|t}4?^ W? ׿HfS?r'6ܿ R?{s”:?Jxs'S?G(~?m{^b?P.*l ~m¿'gƑ ToePtHÿvMؿy38?mܿݘ@?HWU?VX4,{G?0-P4]?F[l3$5C?Ҟl?"+qFP? s?Pz/ ?$~:0ۇgE ? 'ڿw?p*f˔sm?}K0p?D.,-?/m?Ϙz{?Źvn_(?8h1_?s.?ӏZ:M?bUտ[4?BPn'B8_s`ĽJ 02R33sR?ZiٷI\C? Ye?XT%'R?8>+W?!@²m]?c~3꿰T迥*b? ojIɿ>?P?bT?^_I?lD!kyտu S?O|(.x?ǹWPϷddݿ Jn?1t}RHӿ_ܿbqd<4@@#?j y؛׿6W?v4'߿ v8u?-z~ο4B?!!n_ ?Vi&? Kh$ڿN:} ?X8 N\ 5}%Կt"^?:\ |}ۿ|XaqֿIf5? G#D?3f5O?0|o? ?$V$3eVM࿴![A#R?,P?|חٿӖ!?A,0А?~ع?Xql|ֿ`؆̿Vx?98,8b?`Ґ.;? 5U˓`.U?-r{謁h[|?S1ֿ!V$?eҍ?Qz'oQ?T5* ڿ8kٿ?8?8T?Bu=CP~$?xw.c忐bY1l俇?󵢿P.ٌڿAah?<%?'=8ʿܐХf@ ?COҿvUw0K+ԩ?$rqտ/qxj?cqh뫿Ms8? ܉?`CU@S8?2PIb|v?nldf+cܿH?NTnܿ"Âͧ?bQVT?|.6? ?⽼ =迀f d?G*?"fԿXE?N?Eڠ 0Pkٿkə?}j_?+򿲋1d?Ș7?t@+߿/Zڼ?Pꩿs]ќ)?a?b?첅T俸K4+yͼo?R2df2?f9?fʿk x?F,`ErD?I0ۿp迟6n?Zrc3ؿ\A6h??؈=f"?>v>t?yyrfU.ƿz. ?酿NGAC=.O?2ӿU!޿;4$g!?,YiϿ1*?rnelTq$ Ŀf^Qd\vfnǩ Jc?+t׿Mw?ũ`?us,?Pf۽0k*?$&4?qU+p*?A׿?`* .?}BZo? |2oH2?De?SxYؿU<LxϿͻjȿK0;C:?BMW2οbG ? W.翂) ѿq3?1\οh޲ڔ?H|N?1ԿkA4SVֿ)jlf? 7r?="ۿ$X0O?^K%ѿ`H*?4Y.|?Ϧ ?O'6?|q$*vT?}go?PKտn>oh?Vo4v?'i࿾u{Y?#^п+F%ڿśX?n?|X3Hÿاko"?2 q%ѿf4?u9=~Ah3"sm?3Y?5~??Zԛ $?{y"տł!? bƅ'?P+مۿL)(Zi}?SfЀٿD{E?J92?Z7.bS?F=ո?dN ?Ax4?eo؄G?`@n?{Vпpkڀ3J^?pQf?񜗀!\Hٿbe?+aOtu?pr-?,}{= œ?Z?w̮/f?၅?n[ ϿdB??L#F!5ؿ@wԡc|?VWg?+O4&?y"(i oſ $?&<ĸyهTx?,:(#?FgFC?\Ou?zKԿyK?%@k?\"?)c?FQ:ڿ\8e?fy׿B?nοvjX?`5?Xڿ "h?tzv˿t0?GV=7jKK?t~t忛 *Fn;?̫}:|?Cy6῰ڜuu7?r^Tؿ|~?״ѷ:? 6+"N\ӿC+?J˰տ)$15?gE\ ?Կx`O ?R W׿Le\QƠM~?peg ?w'#?-"8?O~+f;?ֿ\3/{[ѿP/ haOuAX+R S$?by)oaT?wа?Wj05 ?%7O?N#bIn?x??K CԿ~ƃ՗ȿ9L?F?%hTmXr+箿ä ? wϿe| .pg&y?y9`oK i˿cn?H>/n?{!U\nHȿvY?W ?a䖉?Ղ-lݰkO?26z?)փƿtW?8T!OOG5?dؿļ-ֿie?koAǿ?+?Q9'a4?!D{C? QHͿlC?2J1忉 ?ODѿ)?o?{$ƿ!:k?=Mpe=fy?SwyNпa:kۮ?#>I?0m.m\&㿺Lj@6|6?Q.K|?wX+6Qf|Ȗ?oh#r?]^?wtՙ'?lG7ɿ%̿sǨ?!˿gڿ? ??ȓ Yn?.Ud'¿>I`?ޱwς7+Ͽ"&?U[?a}ʊ\ gk)_ZNοtf]?Hl޿Fu?ܡ¨! >?"з@Dy?H?{Q%?X xPv[ڿtѿ@vÞ?)\ʈ?zK+ÿy6? 1a4;q?X?^4'=hȿ_Fdu?u뿤Y贎AUF?2zc?bѣ?XWJۿ9}N?,V,헢?T|¥?"/sg濾vMBR.?`_ 4o??XcPٖ|?+GTkտ|R Ψ(2U r?pn@\hjzefE?qr?ʳAڿ1??ܱ0)?Gֆ%{-y?9w8?d?u/h*Ix۸?mM D&߿ZK?(ڿ&^s?ĩ5o?}ۿ@cbԆD?I?QkԿ쮉e?N ?ZVɿBf?8% QXտq##ƿx`lH^?h?찚BaпjfV*@?i7dUC(?FS?)O[HO}ۣ~ Ln?j_X5#UB?r?W/STHJ?>.D2?r#lS?@꠭?~j!? qO}ΈT[PҡnC̿TkA'f?wEQ`?Ԏq<$n,E`?.TQѿy8JS?|e ǿfxF Om~̥?`^Kѿs?\tN? =l?S&?CKgDnڿḓg?,eU忸&~?p\v 2Ȯ*ۿv\?폨{Bѿ)0#i]?gmV? &i>[胐d߿?q?%$RTͿvxtn1?VzTV8t}} ?M>I/'?)/ȤN޿$ڮ?`zU䕿+K|? $?ۊXԿJiXQ%? }yɿ!?FB?|:r&޿5[?2|\?=s˿Mb95?  ?@紒g%rJ,¿y;?s=_ҿ 9?F/?6?0 f?$ 8?yKXsvRI? Ȕ?< /UƿtzA?wPpƿs/w'|ڿe?eC&`Q/?4( ߿3Z濢7K?ܿO?!wy!?ó %??ԞRjC濤cON?4:UsݿG;?R|aR? Yu?go,FP迬UR? Lֿv¹T-?i?M7?@ ?f/k0Rx?P0BwgНѿcjXJRؿW?F3*.~Oޒ?w5mp@:?ǟn?z2vivH?\0,fg7Ϳ`?⿘)@?_??)п0tc? dpѿ GvͿ1[?({߿1t?*>&?Fɢzr唴 +R?aNͿz.]">]6?$HKs04Ǎѿfw Zÿ ,ܿzl/{?"ԿTT?ϵ?[-Ll?+zø?o@stR'??kѹn?`G'K?My ?8B?44S⏮?:ߓ?jsܤW7:?y:Nٿj)@>r?49MؿPKJH[V>>1_shan_1000_coefs.npyNUMPYF{'descr': 'dkPA{Rt;^lTInjOʊ? DG?Y ?؝/hB?p v?*n?XyPWf?XN"x~]?qd,b0?PD"uK'aPV?7G6r?iԗL1>}&e?|d^lDh.lC?6xg.᱿<?=JHE]9Xla?XrZ&ݛ?v iѵ?0> ]]?Ff1?A˶ 1M ٿ?Mðe?>ʍĿn 1?sGοo^Ѵ+:!t?Sb2*o?`9k?& :c?=02`?Pgl?H⻯,Yω?7Fi&4PPO~f7|?4~c??{zq7?ю= "'l`xFȿPR3?|ش/-?y|?oG,B{"a&pK*?Y}? Mfq?O5?j m?PxRcX k?4d%WG?7]{Nǿ !̩\?^&˿o?wE?Qa5Np?9 r'(qi+Z7rl[8տ`OF?Fnz7Ϳ!C?t?(vv'ό?npJ+~,b+ i?p ~[-;+>-?zG zgƿ{ w?DPX?1K?V#V?(c<"Z,%~S}~ƿ'? ?x=d?SaT?uI9Cn?"Bz06yGS]O6ֿ?vD9tԿu-ґ?`.mE~@W`?nfR?m=}pb]?Qu>乸_?sH =Cx/a? n;沿B;'?9ْ..ޥֹ{w:?x ?:#e8]|{)Z4>AC?D($2eq?|O?7,]i )ҵ?5]? @?$)?U5?Zc>&M`?BBXw?7gd?Mї?>IП% ޓȿ` 9SC`cLIп6 xfբ?CF r#`?^|?Hm-7? 83^؝?8: 7_ǿ"Aގ=jֿ?%rڒ#?&8 ?ⷒ TЇ ?od .qпP;eP?5a ޿ޫhJ?5Y`Sj2X/?\H<+-u?]c}>ο_oX~ѿ]͑?Gˣaxb?Boݹ̰?ajpL ;u?\z?Cx/?;k?YE╿, I33?f^K`?"?gu?[%?6'x1$NQx]ÿߌr?ؓmb? CIbr?! ]⣿lj?9?fYĿ#@?H0U^ }?1<$J?\5eG?C?J#M; t7?UD4wktkXZ?(D1ks?@AUiY48BJiŨ}?-)e?QHGH'=.?QEk8bƢ ӡ?̜n ]j2h B/Y%R?̨zi?< l\Mgi?\M%hmЕvj Ȳ̿b?Hǫy菉x>,os?^=oIǑ+_?Fm+^?ʝO?xI14&U̺1i?Mx7s?|xxb?ieԐ iQgo&dW eq˿^J?tFs囤N?y酿Q?ܬ@n?u&JO{@Aո2eՈ3Ŀ<ř?7z*Ɨ8?L?!^?=G[?G u^?hcp>2zK?崮P t?h^s?|*-Jd0Y?$ڜlȞ7ĿӢO)?33oſ0Na#?>?\7ZEia?=Bz!`Av6t? fHKMӿᶾv?bwAn*QJ*?)﬜Q?~)逿F]ɿ~t?@qlȿ"fۡ?D?i;q@-?MYTqiZ9m="6?ϚV ǣ2"esQ?=.տ/'V$Hs? ?ѐ?birS?ZA{#?IF?E`িWvJտ̻?ʦ2#;̿kΔ?g?JwՕ:en? Яі.cx?F0>B4ѿȜ?Inpt̿'k,掿pHuvAF+?%L+D^З? ? <>??O$Z T?) \$ ?@[RɎ"{cA񘿍id?f}? $?2~??8L[|)ROɹ?ؔ~{ |>Q@?3-b`,ƿaSƝo? aѿ?&KvXݨ9DKA!0?%bMKTRؽ?1M$vVUſ 6u%F?L|ȿQ?S?q?huMU*o?*'yÿGymkqֿ Ih?p"!PVh?e߈?_Tg?95u9?xLƈ1ſO 9{?tʿ㩟Wt?~H_&?=T=?1??g{+X dȵ?$ bNm†_2?(o8k]?eO8γ?EɒI? T,[ J @t?8p鮿h]8?Mu?&FWAgj{?:&+⩿6穿5L??jp?jҌPR?` ` a@¢? G逛lB/˿xLҮ?^ ƿI?iz&?}t9?W?_ٰv4$?k?+ A?&!+͓.'?`ݮSP?$V _C$ :<*1DbK t>4{ȽheB@y?@ſӣv?yW4ÿc9l?Ȇ|$U_?|HO?6\v?"v? ,Hy?QS a?ł?rvH}? dQ;@y?&.d?:i{J?fĿi`/?Q7b,?ɐN?U+S?oaCP ?)\8Erz?T~k?nh45“?</?n:X(c? -ӈ/ljZ 0^?]N lz?.l~@դ?LISB%U?3SiɿVf?:+?l?~\Nb? ͢D_ ˻? ظ䒿jNɿh.?'etǸK[ک?5?*ap3#$\?rVύ礿|?ZC!ſ*Yon0? Яa?A ?ܝO>_q?Hf7?hGR?R?vղ?T[v_؟?a?s&m+x?0x-bws$?+k\Oj?4[_cj}5b[?ȿ "n ?j6<vC ~?fSI?Pe*{p.?Ă4Nm?B~ _@2] x?3yYGZ?YLA?'f8%1ev?W?i(=?\Fr??^>]?3Gs0 cTuK蓿p)’5z) 5?~r?zaj?=?ޫs? םɅjjwſ,\ՠ?mx~u\ ?cR. {mK??`p'R’?1 ?.cx0?sgq?? Hް4 ? hࠋ?z퟿џ9ڴ?rD_?L};]@?f}?v¿n3LGv? .3?f? d6Q?x?? ^?fGTedſd<$?I$,?KFVW?w`+-a?$x\C |`|#Mпt4 ? " 'O?ScT\Oc?&R~/ٞNƲ`2xV?uWҿIW|? [ܭ%S?4˦?Q{㞿,[y?#056`K-5tݙ?z5Z H( ZZᵿmިm#pZ"s<4?w!?N9cRʁ?Fg٘lg?nD㒢9ĿN hT?տR4m?XiO+ÿ?2Ă̄ ?U:^?ƼO?:'Dz?ڗ}¿mk?G8`~^qY6?RD& d|?ůbs',&Eſ%c2"qNοeQc£?\[?ިؼW?”?`1ݰ?)rD?j&׿g?F׿m3?fl?/S?r?V ۉg>}?WNrX_JɚxKh?|M⺿Z؎bs?sY? ]!(GۍZ?gyb{Dﮁ*_?v]6a?'5xA>yҪ?/%?w K)+{u:U]r,}?*?؍Lk?nn?X͑@oAL9?K˜Fr.?#אּ?i`?(J_O?fdƩ&wZ?q鐓 z?\;ve?p$,9?5@T^0{?^Ը?xN_$Dq?-aY7pƿ3}?6$iG?tLC0b?kj?N%懿~7*?(.ȐCƿ^lE?>_2˿L]?t=eʼnl,p?-K6?H--Cӵ?bo=.>+rVȐ?ATſ? aR,zgmpMy?@g>gF.th:_;?,@3?1#?ʵۀXw?lg셿O6|~ϋ?Er],̤N?$}?nRғ?$?UG~?(c$?}KEk(Q. oLN?b'?$Ԃڇ?x?05xJ䄿}XW[G$4d?,DG*u?rR?d 4J1"e@?I$b>4NZп%̌?fAq?B?70x-^ J?( kUH.xU?_+A(Q̿8S?[_}~?iX4xؐV?eɄnソ]Qxw?d[3ʿ~Pj?ؘ ?9f0?@k6{ǿ/T ?8-ѿW_;?hZ~? Q? |s?XP`w%=?taeѓFR+*  v{?p ǿ 큿(\#8ZY*.B?@sRLS?u/vbqn?@g۬,2_w?Dʦk?@xH\?̪(I+SԿ< Gr?MM οv?9?u`m?bҦ\?!'Ρpݾ? An&mϒF,˿)a??.J$S>?)'3?`½A[%@h?H{hAF=(?D9DUƿ@{[?<۠cƿ_?p?b:)?r/?::(zȪ?HT`| e?1ʿ-?YQ3ſĉ4?J?o8!jl?pˌ㐿 ˊ/)RG ?bƿ[@B_.?h3Z8|} $j?AxU?4~?e:  )F|W694Gֶ&]Y?|Xe*V? Z˯?P~ꁿFۮ?CfX"dK??C?F8???~߾zOݬT{a?ԕ?}Ot?((?h8C>賾z?oR>5AЗdn]̿ϓ'?e?_Wɿ65w4?ꍚ1?YZ`|4?w<|dR?{|Bο&V试?a@Ͽ'erQl aRz?@\eWC?{/¼0lZ?o;$?|:kJR:6c?B܊BR7i?qjV ຿8Ι{pƭ@ʿmH? `<!#G$6?E??:V4ˤxPi'?SIR ǿ0[?$$;X%??2Ѐ?jq"u?.,.O5ed 6JY?8"|0D՚03?q~u?,(|.9H?@*VS3T#dY?^w҅ȿN:G?`pevn?1N1Yv?| ){?خ0@;+Z{HWfg?+L?dVyno?Kdy}?V֘Óvw>ZEU 6nx(bsCgt?8 !8葿]IH%Pf|VhBV̾3&CT7?͆ിJ,?j? bb?q=:O?"S?x?~OKX?0z ) T?1HBݍ?(&nkv(rLͼz|X~Y?P$?އJT+.'Q&nix?/w?G?žAdt x\? yd 0LVn~>Y.ʿi୥?3`Йٷ;?8?c!۔ۿ6?(NG}2M-pF?%OQQ??Q%?*|ѪՖ#?֔шH#P0 ?9AĿ>6 ?;׺?lJVf. X?Tk6_&\{5",PҿChf'x? qPC?տu?pH tꜿSۃ? `D-eE;ɂ8,a?&ry?"T}ñ?8!zҫdt9l Q?֞¿(UI?V`RJE[FQVSU?}q|r-?8Nn׆D.eؕiٯlqĿ>_}?U>b0]PF?3+uF?hT-(| ,ܗ,{0?0?sg?}U?:rrJz?@3yĠ?ǻ?< itx6 ?lVuRGTQ?Q:?*+T? YjV5qb8ʿlV?sND ¿Jނ8?pN? @“d??-/94V,f?Z4䀬N>ÿܕ'[?[{pD,?؍&5@?6YDYĭޔY?`(..â?ץ|?LTxdO?PJb ¿Zͷ&Lb|, ٿЭ:B?_)R;Q@?:F?TW<,?D, }jXԓPX?bL!ÿG?pP?è6y|?G?Lg1ſ^%? v^x?|ۦ?\r i5?qG$g¶??)""څ'&?gPw6t? ո?琿'v@Ih\ĿN_p i?SF|5?"lez9?삆\鮜x?{lr_ h?杝_6?~B3cy>D?*+̑H6v??D ik?AxJYs?4Vס7VXÿ`:fo?ή_&ҿڧ?%"1f"@ڃe\?YKS?d.v&$~? yՔAܦě3i0ƿD/?b9h0?(e?&cNjr(ɐ?6~Cqkc?D r7wG-qzLj[~ɏ}?DDվAI d?>a(g?P!S@?7~3'&Pg}qQN` ;?S ?7_z? B?80?mȹ 5NpKb?t66$?S?I?Y?\ J*?GLg U5nyF=?^k{U?41?A৕?fOi+dј4W]J?$J{¿u?;Rhsa] (v?ۨtE8??ݵylj43fFipο9h?zT+Ŀ_CvOX?@ϔ ȡ?p-]?N>?Bz!^b {?0`Z?PR? \*R?uz֗l,z?M?? ԬYu?u_-8qO {?PJ:W9A~?[p$?x3mL?[\ Үsrov?;W4ٻ]1gC? ?0BǏ9p? HƗ]?4(غ' ܌+Aп8z;?Kɒտ ڴkhu |ƿR<:U?|eU?]qiР?"ғp?щRX?&S`Zuy܅?|C4UX3Hߔ(ꖿ|&}ƿSz?C˼{fԗ?g%A4? `wNqҦ$JkRX?ҘSi?G{m*m?b;A?TԔa+رXʼnT/~пݙ3ڦ?~?MHDXʁ?X?:RE09)4?@QTďп!a?Ȩ,ɿh,I/?\xa?F1d, 3ʭgd>ζFOP@?x$mDkqo?8Dg"FU~?)QCJ?<`h??\a[K|8V#Րb 2Ok?` >c?@hL*l@2[BBlr D?C}?GW7G?Up^iInY^[+zi/ӿ b>J?3XƿL3>R-?r? !>u?Z{˳?غy5 U?"S6G?Tʀ&̰r?\ju?-$P?He#fct?.<v(ӯ?56'0Ӣ uǃ \/ߢ?JN#vp,y?ؓ v?E֔o2Ӻ?6ȖHTS)X!<P>|$YNhɿqZ?n3ZD?<VЌ?%\?cAk?-2\%?P长 =Q6$裁?uq~ÿ BBt?_ ѯPKJHG'Ր1_gaus7_1000_coefs.npyNUMPYF{'descr': 'zSn+T?%Fvӫ?ȇec7|Z?LSW tgx?pbn3 ?NR-ahH. `}c?B4'$DR;?J(0=bu%?D;=fhb??aֿX5?JmԿ껲hRċ?ֺ⿡>^?B#߾ٿkC?3t^ڿxF v?@[!ԿH]?I<ȱ|p1j?mx\Wk? 鱜~Cۣu࿡Ò j?bk?m$ܿH(6? ??;?$VrͿԨ ?ۿ5?.8ky'<=`4^2I?ҙ?`dҿpa?l\̿01?@ L?*5Tѿc7)? Y?6J#/uϿGEs?-k"?lpq 4?JċAG?[NU?OèʿiG/?eHL?ftr,;l?r#?RrYyҿMVV#:?Z{뺿.1/գ?AE+̿gxLj?G]lZ?yEݿ#? &ſ37? YD ai,rY?Č_?<5~οe'g?u6I:?pn7ؿ">Uu?Si (?{ p?VQY+"?9_b^QAV?]h)3׿y?UEa~p0F?I]d;^t*߿mc&-?XpĜ?LM鍃̿P ?m? |z?.'F#?|f?ڪ <޿B{?|D 02S?bG3u.?ǡ?S޿:Bm?J}/ ؇f ʿ>?򡍣? "Zி$?V 3?򿀤P?J 鱈hu6?h]?l?Q޿>eB? XH?SR+ӿѿ5?ĤM*-ٿnyu݊cs:?{ t"? ^տ?\;㯙? !ґϿfo7?;=,dտ슰??(8>?l`?Hڿx?uꧽɿY?ay׏A@-ꋉQ$?-A\-?5d*.d?%Qx[ٿQx?QULO/n?tĦ-%A?6?% lf^?4ZsM`?R_EؿSW?HJ򰿠Հ"?n'X'UWG00@ EA<4?@?.10 NG?*cοY9?~VʻĿ.?*w̿#2=?K…?-2\a)?2ü| x?](:¿I Wп\?m걿$!/շ?]ǿjPJ?Bl>߿ȜE//?fi3i?:$Dž2?8ڿF"O8b?Tjבbg?P#T޿.E?k:&2N?eΩ?XM|j0V?'?V%\ÿFyҖװG?mۿe?QcIؿTUOJi8"?Ҝ;I?C ٿC Kٿʿ+?s0O/%e?dT,,O@?&E6 ׿ґ8cbe8hH?SؿR?Ł Xp?E+wh$ϩ&?׻I(?)տ8?pB oF?}xBg?,@?܉ ҿ928c*?'w]?{9m⿹?tH3әQy?¢w0Œ'Ph?.:oؿF7B+wW?v:̿ațƏi ?翁M 4A?*ƿ;?Kտo?gӅͿqoJ\I ~plj=?YZs *6DI?^ǥw$?a'Go,ib? ķܿPgJ@{_ط?%{:A?0?=@kz/??du4?ꔺa?th⿿>&?v@! '>?]f)]zA% ?)sпV*9Y?vuؿ_+LJEQXr?¿ (Z@?ej,㿲43cE?rʧv¿q?+тk6V?f?hM>c,? *oo??\?cпWp?Nْfhef[?!Tt{2?[2L88?𵈦 qۿ 2?1Rq?is(l.ѹ H3ت?tkެk?V>?li0v0?l}Bҿ.m㿽?nM#_rJ9O?r+׿e0I?R$Ͽf jſh|\>?ųG3V?9Tc%[ڿpu?^^F?N n{ Pr?3gп:7dO ?K^]ǿ?P M?R ;@?A~&l?P)׿\l^"?Izq>?١p?'i0j(? :M]ʲ?$\pѿ10vSĿf|C?3 X?iK0z俢q`?\96%ۿ)e?ZֿnWjǿʐ[l?[.,חu'ˉiK?ˇaU?@:ӿj$u?lfVy?4.te뿈a ?\@rLh?aI?ݿ`-*x? * SCcO?U5-?e4t?M[M6)7T?yx!?l7Q )?X _￷G"n?Dj2!^Y`?:=u̿|u3p?3// \Ϳ>2?O? $@Xa?QFֿgb-KҞ%J?@S? MEr⿹S3?:SA\꿜U\׆?fZ꿓 4?ꓽF]o?6׿ mrͿ䀏eǛ?翉?ۋ rѿ=?5"ۿcW3?b￞_V?{翲?;ؿ.Gy}<;/?"CQֿE!rn?eVfd]W¿ZwR?nqGͤ ?N^޿8,;0 ?A[?YDNǹص?Mj࿬׾nտ Y?0|6* ?I Px?F*'?'9u.liڿNݠ ?=)#]\?23?-':Fe:??]˹i62g?zCSU:ȿ[:?` x?ŤRvYd=?ϬW:yHĿ:ZD}?e@&4ݿ3?xy3OH]?/_bXDFU?v,xOпJ(Ϳ1.g?#eVSh?:E?]H ?x%h ~C6?v F? ̟ttR`fAD?d=~ԿMOw0Y58(?n?X|&"G@A ?8Xп#Iֿrp.?'쿌S)Lm>?:2߿oaC ?j`z?pv ,E9v?iSnv?7:؍% B?Wd ?TUԢT'T?MǏٿǕ?xeVD??k GeM?C'ß>8Eމp?CތϿíXթ?cuߘ?ұu+пoO5*??pĿ#k)cƿ4?̑h˿밶X?i?ҍ,ѿk-;^?\z4@|6F?5ͱH?; >1w?i'NФ&??f,{￞MWl?Zb(`F?p:*R㿏̺n ?jj=? J?#8v?S!6Dv¿7Hw$XῖLf?nA\(0+?R ?oc~?goDZ?S>S_t?&cBǣA?N_$[꿂oKQ%?^?jy]?2?8ܱFg~k? heۿ>2Ki?l ;4?PӬE?GP*2a{[?A%'W?^mP`?fk3}i?(?>{ÿpⁿ]<S?k(|=C&?0Do]ǿ,HzT1"?-:K:zt*?@8c?9~?8PտQƇ?Zإ݂ ?~r? b׃h?47[&nm?RJXxQ7?NӞ VD?!htPBj?J'tB,vOsW .?Tv_)?#*bؿ~ӿo6\?RZ_x?YEܿQS_>6?Ta`?ĭj˿25I ɿѿ#Fי?=dͿ& mQſ3?$<Ƣ?{NXO?0J޿/ˢ4?~l%Z?*!w ?5߿^*5?y󇡧EpT?XW枬?Nb?De#忬t; ?MPο^#r?@`𿖙?:`b?^CUhx ?(98οɋп%y$?*LLӿtt2?=ix࿏,n?e d5? ׿jW$ ?$l`SzdQ?ڕ俪R]?t?R%:,п9p'KԿ=$?ˡ ?3>4Ϳ»wW?\?oJr?ZD8??}=к?HNy4?Ͽ9пbض?i9ǿm>?t0L>?*пۡli}ϓ?4?GZ$.f@N?!z? il(??oڿ|:|?1,ɿ D/}?p࿍p}?DupEk$?Seև?)q𿪛˧?eܿo@?8$ jt6?kSUx?noFz(4cd??=Q!?L_St?kۖщGz?Qʫ7ӿNBtjF?}[Cy?0jqbP?gN7`?ڸ8п$-?yI@(;׿_؞ؿ~O|>?t7o<Bn|?M*c46ܿB˚?j[CC޿S?Q!`?쿑$e? ؈쿎onӉ?`}㋭Olz_?mG͍/8? QrH)Ť ?ѦoF?o%z2 ̥PRX]?uaU@?ѱ.?Z]p ?KhU?cw̿%ZqI?6տʺI"? 3jVR?IWΊ?P0lO?3QBxNDd?+J翲?dHK俌2LsR?^q ?vn:??ӿ[q俢8?‹ęԿP̀ҿ[?Hoe?K ;6ɕ?T2󿐻=I?mhV3$7?gEbLF?ۅU\Ro(gQO)&+? 4h@:?hDa? g.?J˿Xn>I?PZSOTѠ?px?:a`^]?ȾvH?PŦŇl?$$ܿѿ Y0?"-X ~Y?Yުuo@@3b9?ZUY?Yꛒ2?ڭ[߿DvT5?Tl?O?T4%?l?}!wcWblۿʞZ?Ad܅,?@Ef?%Zي꿣H!?z5{MX>YF?،p]%?ۨL 꿐qKt?$ V#g?I VDӧ?JuB7Ɏ?w&WKhR?xmd[p=? av/"cK?N?<:h?gYL?zΎqU?0[6V?Ґ0?_koX$?LUqKo»,?O׿1.ÿ!]2˿2M?r]M!1xN@cSy?7&Ar뿾iE?(GIca?m#DSN=?] жN"H?۟1ֿpiLh?9]=c?;.ҿ?aqE Am?FSο2Ϳoٿc}?dϭ*6?6Qթ |r?hf"ٿ=?'4?_̋?(VOXB*?8,_9?z!™^?ga@G'߿Fr'?1ٿJzI 2?U(e ׿ g?v+@Sa4 -qzt?G ?P@ۿ`?*?|,;z)f?/`ۿSm?=4% 6ȿd?F!\ØݿO^*?CLs}K?++z 迋a+W1?PphuEοMt#:?^r ZB?=g|-͟?ccc3p?AͿ~Yڿl?$ի\z%8v!϶!?twڿK~? -/Un?4[_"ǿ?cٿWkZ,?W-²?=`6D+?~pԿPY-k8@g5,?ZENy1Q? #?p 8јբ@z[l3߿OS?.ĿhqDF?-!ƧV?LKu???Dl +C?.B?HV7'위?l%[?`=t?ݷ?";տOlM?_- r?LN쬚?P]9"?)aVڞ9?UV2@@V&CrJaB?N,t[?'fBa8?f!ѯտgO--ҿ 1?t| =haɿD?ZMpz)?>.(?X/h쿑Q[?u?exؠ?`_?:|M[ɿfړ?O3cῑ?< A\K?'̿:./п`4 XutM?P"?c}l~ $o?r2;?PY`cZ_?Fұ?^P}⿺ D?t7JS?X 68Şላrҗ?W:yNe ?W:=ή9uV`&GԂ@?O(t?⌮׺Om~?s1T?)!A?.eݷW?gW?Rڿސ?Jn?w1a?cmx?:Z?`j ++ʿhg{ؿ,6m*?P?<9o:?y:Z?^M*β]?^sL٠?ġ?IU?8nϼd'b}?Cχ𿆗#"? *fٿJƤ?YE䒡e?ƕ#ml?saͤ?!3cSJя?6!?Q{@&&?Le5]i:ѿp7gU?<7ORp]?(u࿿O\ؿJ?r5H\?HuۺĿ:,;? ;迊ƜX]?U-vnUh?ҿ ]?b/)? Z?cGb'Kſ">OAS'6H\ۈ?VdE;?!JS?IyzR翦@>`d¿6'?smr6ۚ?'wI5пWtG5?㿾b? sBPQN/?O ҿrѿ.lzQ??llaJB?S( HGֿ Ik?= =?;}Qyg sF!?Y?* (?Wk&˘.?D>7NX+i:?uf5\UȠ0?wBKԿS ȉHB8iI^?D~?He> lzMҰ?tpaB?^?7y{7~.?:`[?+2t{F)m_?S~.@D?ѿ£>R3?F&1JLP?1;?(;V%ֿ$h=ֿ|K?N|Lz?_+Mg?ܳb-Ϳpm?#ۿF0?Fp.>1?7^JPʿ1"6I;1$?̩?$V/VD?`~ٿ477?LBdǥ'q/2x4h?eV_ԔI?/׿bQTm?ƈ+oܿthO?#dtnWTfKw?*E<$>ֿ !?]]gzm+?XR1޵@n!R?>SH￀ TI?אTeӿ4J?P;縿7#Zc"~* ? rû?Y|rE̫"?D>=VZC?nrnf?lóE`a{u?pNy?oC'@?b?s~?wψ{Bʎ*Y?RMCP[N?22^?/ L pI04?HǶ0 iS忢d=<? ?,b?XjƖ?D|B俷?ph$̵B?aK\,?i-jN6N?5Gp$?ɋ?s|係Rn(?E g췿o?i\B꿁thf?/?9V?|~}ڿXj#\?N?^Ⱦ|?dӓ%?iѿ1uVٿ@u$o?Q*Opݿ(àv{h?W# |l?j@7п=?T\ѽJs?AЈ;}ݿ49/{X?X'_˿%!`p?$|{aCѪ?s6>t ?oERF濣UұPkE?g pv/_?kր8 To?NEL)76?jM ?(1]˿]Zj:$(F?%mHlIq?qw￷m'??5ҿ*PfrG?Ɲ0Կq$i\?XϿ@G+?nڿ&n?d3P׿E}42?$CiPKJHAv>>2_mexh_1001_coefs.npyPKJH` >>?1_cgau3_1001_coefs.npyPKJH#>>'~1_cgau4_1001_coefs.npyPKJHJe;1_morl_1000_coefs.npyPKJHfN>>1_cgau1_1000_coefs.npyPKJH>m1_mexh_1001_coefs.npyPKJHA|wP@P@ ;cgau3_psi.npyPKJHP P H|gaus4_psi.npyPKJH4K$P}P}Ü2_cgau5_1000_coefs.npyPKJH3"lG1_gaus1_1000_coefs.npyPKJHq[ :1_gaus2_1000_coefs.npyPKJH_ lp}p}Y2_cgau5_1001_coefs.npyPKJH"p}p}s2_cgau8_1001_coefs.npyPKJH P}P}U2_fbsp_1000_coefs.npyPKJHiP@P@ cgau2_psi.npyPKJH*>>1_cgau5_1001_coefs.npyPKJHS>>)R2_gaus7_1000_coefs.npyPKJHڵt>>-1_cgau4_1000_coefs.npyPKJH>12_gaus3_1000_coefs.npyPKJH"P@P@ 5cgau4_psi.npyPKJH7/>>O2_gaus8_1001_coefs.npyPKJH>>Ď1_cmor_1001_coefs.npyPKJHP@P@ fbsp_psi.npyPKJH2P@P@ Qcgau1_psi.npyPKJH>>N2_gaus4_1001_coefs.npyPKJHA`x=1_gaus8_1000_coefs.npyPKJHY1_gaus3_1001_coefs.npyPKJH\#>>p2_gaus2_1001_coefs.npyPKJHaՂ>> 1_cgau6_1000_coefs.npyPKJHx>>K2_gaus1_1001_coefs.npyPKJH?P P morl_psi.npyPKJH >>2_gaus7_1001_coefs.npyPKJHy` p}p}*2_cmor_1001_coefs.npyPKJHNIP@P@ gcgau5_psi.npyPKJH]ҘH1_gaus1_1001_coefs.npyPKJH*>>2_morl_1000_coefs.npyPKJHsp}p} 2_cgau1_1001_coefs.npyPKJH@ 1_gaus6_1000_coefs.npyPKJHG>V>> 1_cgau6_1001_coefs.npyPKJHG~>> 2_mexh_1000_coefs.npyPKJHH" 1_mexh_1000_coefs.npyPKJHb5>>YB 1_cmor_1000_coefs.npyPKJHͰp}p}\ 2_cgau4_1001_coefs.npyPKJHds5>> 2_gaus6_1000_coefs.npyPKJH(0> 1_gaus2_1001_coefs.npyPKJH+q]P P ] mexh_psi.npyPKJHsy>>J~ 2_morl_1001_coefs.npyPKJHZP}P}] 2_cmor_1000_coefs.npyPKJHF1>>: 1_fbsp_1000_coefs.npyPKJHP}P}y 2_shan_1000_coefs.npyPKJH3tP}P}f 2_cgau1_1000_coefs.npyPKJHv>>t 2_gaus8_1000_coefs.npyPKJH*Z@ 1_gaus7_1001_coefs.npyPKJHI$>> 1_cgau3_1000_coefs.npyPKJH>>1_cgau8_1000_coefs.npyPKJHP}P}Q2_cgau6_1000_coefs.npyPKJHEHP@P@ Fcgau6_psi.npyPKJHOyP@P@ shan_psi.npyPKJHQyP P ;Pgaus3_psi.npyPKJHFzp1_morl_1001_coefs.npyPKJHh}P}P}2_cgau4_1000_coefs.npyPKJHP>P}P}2_cgau8_1000_coefs.npyPKJHp}p}2_fbsp_1001_coefs.npyPKJHW>>, 2_gaus6_1001_coefs.npyPKJHGd>>@H1_cgau2_1001_coefs.npyPKJH:T1_gaus8_1001_coefs.npyPKJHGB 1_gaus4_1000_coefs.npyPKJHP:>>2_gaus5_1001_coefs.npyPKJHp=>>2_gaus3_1001_coefs.npyPKJH{k>> E1_cgau7_1001_coefs.npyPKJHCP P gaus2_psi.npyPKJHE>>1_fbsp_1001_coefs.npyPKJHX!P P gaus7_psi.npyPKJHJ>>)2_gaus4_1000_coefs.npyPKJHXH>>-C2_gaus2_1000_coefs.npyPKJHEP}P}12_cgau2_1000_coefs.npyPKJH$p}p}2_cgau2_1001_coefs.npyPKJH}dE>>Y}2_gaus1_1000_coefs.npyPKJHV4]P@P@ ]cmor_psi.npyPKJHp}p}2_cgau7_1001_coefs.npyPKJH]P}P}{z2_cgau3_1000_coefs.npyPKJH)4>>1_cgau2_1000_coefs.npyPKJH071_gaus6_1001_coefs.npyPKJHfqo>>V1_cgau5_1000_coefs.npyPKJHa;P@P@ ӕcgau8_psi.npyPKJHvYP P Ngaus6_psi.npyPKJH>>2_gaus5_1000_coefs.npyPKJH .c51_gaus4_1001_coefs.npyPKJHp`p}p}U2_cgau3_1001_coefs.npyPKJHxO>>=1_cgau8_1001_coefs.npyPKJH*PHP P Qgaus1_psi.npyPKJHB>>21_cgau7_1000_coefs.npyPKJHZސq1_gaus5_1000_coefs.npyPKJH2o1_gaus3_1000_coefs.npyPKJH>>X1_shan_1001_coefs.npyPKJHhFP P kgaus5_psi.npyPKJH*Op}p}2_cgau6_1001_coefs.npyPKJHQ))P}P}2_cgau7_1000_coefs.npyPKJHP@P@  cgau7_psi.npyPKJHfcP P Lgaus8_psi.npyPKJH鴻p}p}m2_shan_1001_coefs.npyPKJH\>>1_cgau1_1001_coefs.npyPKJH[V>>)1_shan_1000_coefs.npyPKJHG'Րh1_gaus7_1000_coefs.npyPKJHz1_gaus5_1001_coefs.npyPKiiNPyWavelets-1.1.1/pywt/tests/data/dwt_matlabR2012a_result.npz0000664000175000017500001554532613340062070024412 0ustar lee8rxlee8rx00000000000000PK!BG:zpd_db1_2_ma.npyNUMPYv{'descr': '5sp0_db1_3_ma.npyNUMPYv{'descr': '5sp0_db1_3_ma_pywtCoeffs.npyNUMPYv{'descr': '5sym_db1_3_ma.npyNUMPYv{'descr': '5sym_db1_3_ma_pywtCoeffs.npyNUMPYv{'descr': 'symw_db1_3_md.npyNUMPYv{'descr': 'symw_db1_3_md_pywtCoeffs.npyNUMPYv{'descr': '5per_db1_3_ma.npyNUMPYv{'descr': '5per_db1_3_ma_pywtCoeffs.npyNUMPYv{'descr': '؊PK!(symw_db2_4_md.npyNUMPYv{'descr': '؊PK!Zзsymw_db2_4_md_pywtCoeffs.npyNUMPYv{'descr': '[TT3 Z?1&[T_ j\?--PK!Zsp0_db2_5_md.npyNUMPYv{'descr': 'eވ7J:A?,WPK!sym_db2_5_ma.npyNUMPYv{'descr': '[T_ j\?QLPK!IMmsym_db2_5_md.npyNUMPYv{'descr': '[Thg?xPK!Osymw_db2_5_md.npyNUMPYv{'descr': '[T^)?EYPK!K ppd_db2_5_md.npyNUMPYv{'descr': '[Th?E3PK! {sp1_db2_5_md.npyNUMPYv{'descr': '[TꑶE?Ub7nH#?PK!]asym_db2_5_md.npyNUMPYv{'descr': ' wPPK!\Ġasym_db2_5_ma_pywtCoeffs.npyNUMPYv{'descr': '$wPPK!{9asymw_db2_5_ma.npyNUMPYv{'descr': '[Th?rrrPK!yasymw_db2_5_md.npyNUMPYv{'descr': 'per_db3_6_md.npyNUMPYv{'descr': '\ؗq?PK!Ĩasymw_db3_6_ma_pywtCoeffs.npyNUMPYv{'descr': 'rO^?PK!޿Lzpd_db3_7_ma_pywtCoeffs.npyNUMPYv{'descr': 'F?PK!]2sp1_db3_7_ma.npyNUMPYv{'descr': 'ؿg'W?;?љ[m7ݪ?stu?CM}_PK!=#Dsp0_db4_8_ma_pywtCoeffs.npyNUMPYv{'descr': 'ؿ£'W?ɤ?[%n7ݪ?@tu?(DM}_PK! gsym_db4_8_ma.npyNUMPYv{'descr': 'ppd_db4_8_ma_pywtCoeffs.npyNUMPYv{'descr': '^$)?U0uȧ?]{{?PK!vFSper_db4_8_md.npyNUMPYv{'descr': '&?<Y??PK!베per_db4_8_ma_pywtCoeffs.npyNUMPYv{'descr': 'kyPK!qAsp0_db4_9_md.npyNUMPYv{'descr': 'myPK!Jsp0_db4_9_md_pywtCoeffs.npyNUMPYv{'descr': 'z?I71?Nou.)俯H@?, fPK!ʲsymw_db4_9_md.npyNUMPYv{'descr': 'z?61?V~u.)S@?,fPK!zsymw_db4_9_md_pywtCoeffs.npyNUMPYv{'descr': '/⿈꾚PK!0x<sp1_db4_9_md_pywtCoeffs.npyNUMPYv{'descr': 'B Ԓ?.RUr?@nٵ?PK!csEper_db4_9_md_pywtCoeffs.npyNUMPYv{'descr': '~+ iv&-2?V~u.)pi(Cg@ᛯe#?qKa?PK!asym_db4_9_md_pywtCoeffs.npyNUMPYv{'descr': ''?{?~5'y?Kwf?o9>0q?r9*?S??[xPK!Rzpd_db5_10_ma_pywtCoeffs.npyNUMPYv{'descr': 'ox?<d? *ՙFֿPK!!asym_db5_10_md.npyNUMPYv{'descr': 'ox?<d?X)ՙFֿPK!;Tasym_db5_10_md_pywtCoeffs.npyNUMPYv{'descr': '?%S?h?Kwf?PAev?OZ"iJ^U3DӿPK!} [asymw_db5_10_ma_pywtCoeffs.npyNUMPYv{'descr': 'z?PK!Rasymw_db5_10_md_pywtCoeffs.npyNUMPYv{'descr': '?US?h? wf?+5ev?H?"y>J^@V3DӿPK!+zpd_db5_11_ma.npyNUMPYv{'descr': '??PK!bHsymw_db5_11_md.npyNUMPYv{'descr': '?"?PK!=symw_db5_11_md_pywtCoeffs.npyNUMPYv{'descr': '+?@F=GU'E?#y?ϊ՞[ſƼT?#,sx?tPK!h~Dsp1_db5_11_ma_pywtCoeffs.npyNUMPYv{'descr': '|ѿ..@3sֺ?+ 8V-~1#4?dlZ݈?>g9jPK!NV&zpd_db6_12_ma_pywtCoeffs.npyNUMPYv{'descr': '|ѿ.@^sֺ? 8=2#4?dlZ݈?9jPK!0sp0_db6_12_ma.npyNUMPYv{'descr': ' +vqDb  -:K{P 5?N;?Z-:?\U?{F?PK!ݭEsp0_db6_12_md.npyNUMPYv{'descr': '_sp0_db6_12_ma_pywtCoeffs.npyNUMPYv{'descr': ' ;gqDb  -1:@{G"5?N;?.-:?U?}F?PK!psp0_db6_12_md_pywtCoeffs.npyNUMPYv{'descr': ']tF?YD?)E?1\U3?HOc=?PK!.Ksym_db6_12_md_pywtCoeffs.npyNUMPYv{'descr': '?RCzo?BwFн?o;?JK{x;~o? [!?׽V?HW?Ba?PK!];symw_db6_12_md.npyNUMPYv{'descr': '?wCzo?uFн?|;?*J@{4~o?P [!?|׽V?m{W? Ba?PK!4symw_db6_12_md_pywtCoeffs.npyNUMPYv{'descr': '!w40B{K{d?L ?JH-0J~fj?gIPK!icsp1_db6_12_md.npyNUMPYv{'descr': '!w4+B{@{M?NL ?_-0|-fj?IPK!S3sp1_db6_12_md_pywtCoeffs.npyNUMPYv{'descr': '?PK!IHsp0_db6_13_md.npyNUMPYv{'descr': '*[Vwv^(N p V?}Rn^;dz1?kAкjs?5K?>?PK!!Phsp0_db6_13_md_pywtCoeffs.npyNUMPYv{'descr': '7&?[\ܿE3S?@x1$?n7 ⿚IQѿyN4PK!Psymw_db6_13_ma_pywtCoeffs.npyNUMPYv{'descr': '&?\ܿj3S??|x1$?= ⿞WIQѿov6PK!r$}pppd_db6_13_ma.npyNUMPYv{'descr': ' ?PK! 4Lnppd_db6_13_md.npyNUMPYv{'descr': ' ?PK!Lfppd_db6_13_md_pywtCoeffs.npyNUMPYv{'descr': ' ?j ^_pҀ+liGM?PK!g per_db6_13_md.npyNUMPYv{'descr': ' ?^j ^ VpP*liG"M?PK!:#L;per_db6_13_md_pywtCoeffs.npyNUMPYv{'descr': '7w? yr89yn@{n]pE?[\ܿJ&?b"-`?#U_?>j_(C@P4?PK!C-Kasymw_db6_13_ma_pywtCoeffs.npyNUMPYv{'descr': '?|?PK!KWzpd_db7_14_md_pywtCoeffs.npyNUMPYv{'descr': 'Dl?=+&#?z}sҡ7^?vȺi̙C?d+(=?PK!_Hsp0_db7_14_ma_pywtCoeffs.npyNUMPYv{'descr': 'hsym_db7_14_md_pywtCoeffs.npyNUMPYv{'descr': 'f|AZM|xI T? *M?g<= dpM?T͌Rw?Qn7;?PK!bx8symw_db7_14_md.npyNUMPYv{'descr': 'Π|A?LM|xI~T?*M?L<= yM?ΌRw?Qn7;?PK!Kd4symw_db7_14_md_pywtCoeffs.npyNUMPYv{'descr': 'Z?y1G?=+B@+[?yu1d? bҼш@ʥ_PK!2,rsp1_db7_14_ma_pywtCoeffs.npyNUMPYv{'descr': 'Z?1;ک?t++[?+yw1d?f b}ш@➼PK!~sԙper_db7_14_ma.npyNUMPYv{'descr': 'yi?ZM|xI)?V$?ٲ6?&?l?!8OPK!֔asym_db7_14_md.npyNUMPYv{'descr': ' Z,sް?K3Zٿy3~ ?PK!B^asym_db7_14_ma_pywtCoeffs.npyNUMPYv{'descr': 'yi??LM|xI.6?+$?䫇6??l?$8OPK!fq~asym_db7_14_md_pywtCoeffs.npyNUMPYv{'descr': '?2.Qn?=+3aU)?룧=|?7y,N?[~})俑Jѵ ֿPK!Iasymw_db7_14_ma_pywtCoeffs.npyNUMPYv{'descr': '?2.Qwn?t+w_U)?eW+|?P&y,N?'_})SJѵ ֿPK!^*azpd_db7_15_ma.npyNUMPYv{'descr': '>4??DLz?_tŻտh PK!zpd_db7_15_ma_pywtCoeffs.npyNUMPYv{'descr': '>??FLz?H_tŻտ PK!'sp0_db7_15_ma.npyNUMPYv{'descr': 'i(Uݿ)FA H ?PK!ϫosp0_db7_15_md_pywtCoeffs.npyNUMPYv{'descr': 'PK!ysym_db7_15_ma.npyNUMPYv{'descr': 'sp1_db7_15_ma_pywtCoeffs.npyNUMPYv{'descr': '?%N!C?` @Q'ہ?PK!asym_db7_15_ma_pywtCoeffs.npyNUMPYv{'descr': 'eO?HtW=:hGu⿞F??lBؿxj"HL?PK!.asym_db7_15_md_pywtCoeffs.npyNUMPYv{'descr': 'U???m$EU?L?x߿sʽ?#|(X# fY?͋d"x?Ɵդ*s ??d]?^ 9rEPK! zpd_db8_16_ma_pywtCoeffs.npyNUMPYv{'descr': '%% ]ҧ?kj?0޿(z,L@ Ly2?AM?`?cQ?o4f?PK!?zpd_db8_16_md_pywtCoeffs.npyNUMPYv{'descr': '<@_:8;?h?f>?$:f|?jwFA!?PK!`l;(sp0_db8_16_md.npyNUMPYv{'descr': '?'D\ۜ%'?=BN#PK!|sp0_db8_16_ma_pywtCoeffs.npyNUMPYv{'descr': '?z:f|?kwFA!?PK!B۩sp0_db8_16_md_pywtCoeffs.npyNUMPYv{'descr': '?wD\o%'?=B;N#PK!hsym_db8_16_ma.npyNUMPYv{'descr': 'տ*-TQ:ܝs쿺Wk྿YJ?=0޿Ĉtz;濽ZJ?e?j?oտ-T+7ܝsdXk྿YJ?0޿Ptz;Jo[J??j?*ŘX/9~?=0޿_lP{ 迹amO~a?//Wˑ?R0? >(? QL@PK!b{symw_db8_16_md.npyNUMPYv{'descr': 'Řx9~?0޿AlP{ 迩am濂;a?h/Wˑ?>0?m >(?:L@PK!osymw_db8_16_md_pywtCoeffs.npyNUMPYv{'descr': '-Cԝ@n@PRۙ?=0޿.X迕ҴSwe?|n`? )gU8??-@Zt`ܿPK!3sp1_db8_16_md.npyNUMPYv{'descr': 'Ѵun`?sm=PK!!sp1_db8_16_ma_pywtCoeffs.npyNUMPYv{'descr': 'cD缿!tJ 1PK!7޸per_db8_16_ma_pywtCoeffs.npyNUMPYv{'descr': '?R?zNQrֱM?޿;M9I?Հ!?PK!q9asym_db8_16_ma_pywtCoeffs.npyNUMPYv{'descr': '?]?DQrM?޿M9I?!?PK!3 asymw_db8_16_ma.npyNUMPYv{'descr': '?Q6h?c9CD?}3O?1?PK!}!zpd_db8_17_md.npyNUMPYv{'descr': '@?-!NPN[C$PK!E`zpd_db8_17_ma_pywtCoeffs.npyNUMPYv{'descr': '5)?zΙ|}ɿȖ5pM?wg2?sERCKŃ)?]v?.8?^>?&)6h?b9CD?2k3O? 1?PK!8>zpd_db8_17_md_pywtCoeffs.npyNUMPYv{'descr': '@?fNPNnC$PK!O7sp0_db8_17_ma.npyNUMPYv{'descr': 'XPTtօ>a%lPK!Adsp0_db8_17_ma_pywtCoeffs.npyNUMPYv{'descr': 'X0ㅀ>s?)܏8?k$i?%dF?UO?PK!gnsym_db8_17_md.npyNUMPYv{'descr': 'E j?"9B?{_>?28?fd$i?F?xڼUO?PK!&?sym_db8_17_md_pywtCoeffs.npyNUMPYv{'descr': 'HB@}pI%(+ec1пQ/D?U. ? 7ſXphq?)d,?*ˆS?<VPK!Qoppd_db8_17_ma_pywtCoeffs.npyNUMPYv{'descr': '1C?Qe?PK!հC9sp1_db8_17_md.npyNUMPYv{'descr': 'ӃYx]Կ )׀ڿ&@aPkع?*0<)tERys?,Iø?% ?Ȋ)?njw?ƨ?՜熊?.I5PK!4asym_db8_17_md.npyNUMPYv{'descr': 'ӃiXx]ԿZ ڿLBa쿙kع?Z*0 ֗ A&p@'8)tER1c,=?(ߺ?.?"=;3?LW,?~ƃ]?UwM?K}|?PK!# asymw_db8_17_md.npyNUMPYv{'descr': ' F?@ێῐm..l\+p>4 пQ/D?:47 ?8nK ,O-B?U '?Lڍ*?RWz[?2PK!7asymw_db8_17_ma_pywtCoeffs.npyNUMPYv{'descr': ']`@} 굀# s> v [A&p@8sERQ,=?P~ߺ?1?;=;3?LW,?~ƃ]?hwM?n|?PK!asymw_db8_17_md_pywtCoeffs.npyNUMPYv{'descr': ''R^?O'/i?`OտC$(X?\UU/࿾ @0?XE?slѽ?PK!ozpd_db9_18_md_pywtCoeffs.npyNUMPYv{'descr': 'm΅SR@?Y?NWV?PK!}<<sp0_db9_18_md.npyNUMPYv{'descr': 'mῖR@?z2Y?WV?PK!sp0_db9_18_md_pywtCoeffs.npyNUMPYv{'descr': 'Z p3`/??9G?-dIտ?7As^R#| L-`?$[?Y?eOU?Ѫg-3/?PK!s2sym_db9_18_ma.npyNUMPYv{'descr': ' 4 ZeLo?QC+ʂ?qN,?PK!~bsym_db9_18_md.npyNUMPYv{'descr': ' Zῐso?VD+ʂ?5LN,?PK!2sym_db9_18_md_pywtCoeffs.npyNUMPYv{'descr': 'ֹտ"?}j~ X7x;6P V?̯~T? p+a9!Q?k)  t=PK!sp1_db9_18_ma_pywtCoeffs.npyNUMPYv{'descr': '?2Oeww G?DZ?w?4|Eֹտ?qk~D7x9F V?mf~T?&aSQ?°k)PK! Nper_db9_18_ma.npyNUMPYv{'descr': 'T?P[?"9mXs7ܿ~MUȲٿxޟQlhBehE?ENQmn%CcO'/i?iDV#k=տ'2a?c[E<㿬?P[?*αY?PK!Casymw_db9_18_md_pywtCoeffs.npyNUMPYv{'descr': '%3?WؐAL:t?#mv\ChJ@YPK!symw_db9_19_md_pywtCoeffs.npyNUMPYv{'descr': 'Rka8S?(L?ħ?^6[PmZ?تſxwW⌻?..= [Vn?80 !4ѹq=PK!Gsp1_db9_19_ma_pywtCoeffs.npyNUMPYv{'descr': '?׉?H|7?HvnBC?-Ŀ/A̔v.8PK!!_)sp1_db9_19_md_pywtCoeffs.npyNUMPYv{'descr': 'JP?C.1vf['?PK!j6per_db9_19_md_pywtCoeffs.npyNUMPYv{'descr': '(?BsL?6ħ?ο|XVuu\.) 9?OZ?GF迅9Tx<a<$?W|@?PK!6aasymw_db9_19_ma.npyNUMPYv{'descr': '_$?2f:\r?AwE?'U?Яf?חҖ?h)?p  (?mU kKXɿlmⵗ'@v8?PK!^CZasymw_db9_19_md.npyNUMPYv{'descr': '?Җ?h)?Tq )?!kKXɿlm|'mz8?PK!asymw_db9_19_md_pywtCoeffs.npyNUMPYv{'descr': 'ǥҿ8?J ?vk俎 6,过Hu|?rnǸ ?r"?PK!;7zpd_db10_20_md.npyNUMPYv{'descr': 'ǥҿ18? J ?vk\ 6,u Iu|?n ?r"?PK!Nzpd_db10_20_md_pywtCoeffs.npyNUMPYv{'descr': 'cb}DX׿%NȿFubɿ{?KEypm ^?*bt7NqR?? }>PK!sp0_db10_20_ma_pywtCoeffs.npyNUMPYv{'descr': 'PK!Ursym_db10_20_ma.npyNUMPYv{'descr': 'ҿ:{?{ZB?!=urȼ?pkg~yF=)?C/Ӓ@PK!PzMsp1_db10_20_md.npyNUMPYv{'descr': '|6C? 60z?]"&ȡ!"$MCקPK!U\sp1_db10_20_ma_pywtCoeffs.npyNUMPYv{'descr': '?֫{W,KҿL?'?Żx$Z1>D?"!:׽? VqID߿PK!b6asym_db10_20_md.npyNUMPYv{'descr': '?{WsKҿﹽL?*!?Żx1>翊 ? "l:׽?jqID߿PK!Œ.asym_db10_20_md_pywtCoeffs.npyNUMPYv{'descr': ' <Bf?쿹6wU ڿLϔ]A?bT|}Bcs4DV&ddDDX׿̊$VY&S.s?u|*'_?i&@?0aϋ? PK!h|asymw_db10_20_ma.npyNUMPYv{'descr': ')EwJ2SHxĽG3CH9W)<߱֫{WG (ҿC?v?Q:32icȿQ?_ (Zh𿟭ԍ^?0߱p@PK!asymw_db10_20_md.npyNUMPYv{'descr': ')wJJާSHxĽ'CK92);߱{W(ҿw«C?v?g:32htcȿ9 Q? (Zh)ԍ^?8߱p@PK!Basymw_db10_20_md_pywtCoeffs.npyNUMPYv{'descr': 'r6f6U?i$p!ʍ}~˾PK!qc  zpd_db10_21_ma_pywtCoeffs.npyNUMPYv{'descr': 'I?Q +? lW*6?| Q?i:@u?)'?Uz?PK!<  zpd_db10_21_md_pywtCoeffs.npyNUMPYv{'descr': 'r_6U?f$p! ~˾PK!*I  sp0_db10_21_ma.npyNUMPYv{'descr': '??yj?&:?nAWV;Bq?o?6޳$?PK!é  sym_db10_21_md.npyNUMPYv{'descr': 'ZjPz D̿m'i?B(Sw?GB@AC3y?,pb?PK!'`  symw_db10_21_ma_pywtCoeffs.npyNUMPYv{'descr': 'Sw?Ϣ;@3￷?ib?PK!/Q  ppd_db10_21_ma.npyNUMPYv{'descr': 'o"@xV@U8t@}@L9@C4j| @_@]ȟ@^Gޒ? w ?DQӠ@)D٩?$K??wk2\?șs$ȫ?RquJ(ߍ?:Y?M5gPK!ۺ  sp1_db10_21_md.npyNUMPYv{'descr': '0sі=PK!e  sp1_db10_21_ma_pywtCoeffs.npyNUMPYv{'descr': 'o"@wV@X8t@3}@L9@;j| @@]ȟ@Gޒ?w ? QӠ@)D٩?K??uk2\?kPouӿC5R?蜔?g ?a@ȳտII-?WBͧs|ӿPK!\|mper_db10_21_ma_pywtCoeffs.npyNUMPYv{'descr': 'P*ouӿ`R?I蜔?g ?)KAȳտٔI-?YBͧ\|ӿPK!_  asym_db10_21_ma.npyNUMPYv{'descr': '|ڿܰ oVQ?Zɨ+lXP_4ؿ!i3ebݿp\?u|eG?1I쿎Y/˿t?PK!Ù  asym_db10_21_ma_pywtCoeffs.npyNUMPYv{'descr': '=?a6@55_?j{6aL?ɕU@ <=? w ?DQӠ@; y?J?s__m?a$e"?pu?JLՑ\N?[&Gly*?PK!  asymw_db10_21_md.npyNUMPYv{'descr': 'U:r?ZW)ӿy˿PK!4.((zpd_db11_22_md.npyNUMPYv{'descr': 'nU:r?W)ӿ˿PK!?((zpd_db11_22_md_pywtCoeffs.npyNUMPYv{'descr': '?q?L?&No?S;??xD4"D?.zJJ?ES!q?A7Z?8ƨ6H￲TIP@}A?,@?Z$k]?lk̿IJ?D@࿜R\PK!JvR((sp0_db11_22_md.npyNUMPYv{'descr': 'pݕQI?жΘ?fݿ6¥rkì'Fƥ{ۿ31F3?wfb"пRV5??} M~S?^)^oj:?./mjC1?PA>PK!P" ((sp0_db11_22_ma_pywtCoeffs.npyNUMPYv{'descr': '?q?L?&No?S;??:D4"D?GyJJ?ES!q?A7Z?7ƨ'6HXTIP@ A?4,@?Y$k?k̿IJ?D@࿞R\PK!FRV((sp0_db11_22_md_pywtCoeffs.npyNUMPYv{'descr': '-ݕPI?жΘ?fݿ¥rkìEƥ{ۿ21F3?vfb"пSV5?} '~S?I)^j:?./mjC1?vPA>PK!((sym_db11_22_ma.npyNUMPYv{'descr': ';pd?}aSΕ?WvV Pì'Fƥ{ۿ8!?2#*Vٚ¿?Is4? 躿ǧc{ǿ1/H?;`?摱?PK!Zo((sym_db11_22_ma_pywtCoeffs.npyNUMPYv{'descr': ';Գsod?"aSΕ?Av PìEƥ{ۿ!?"*Vٚ¿Q?:s4? 躿Ħc{ǿ1/H?`?D?PK!TX((symw_db11_22_ma.npyNUMPYv{'descr': '((ppd_db11_22_md_pywtCoeffs.npyNUMPYv{'descr': ';#?,7QqͿ ' ?n}?g6*"PK!((sp1_db11_22_md.npyNUMPYv{'descr': 'a(߿xf<bд򿧴?wL?SSۆ鿐+sĬ'Fƥ{ۿ;@; t@_Jۿ\*V\*BCԿf0?eJk#?eqgjK\:k ÿPK!i((asym_db11_22_ma_pywtCoeffs.npyNUMPYv{'descr': '5a(߿e;bд#?L?SSۆ!+sĬEƥ{ۿ⒛@ t@NJۿ\*V*BCԿ~f0?Ik#?eqhgjK\󿘄k ÿPK![((asymw_db11_22_ma.npyNUMPYv{'descr': ''.=ڿ֓p?m ;ȿ^·N?XQ%pʿmGO?C\ X? xU?7ƨ)FG￧lGN@5E?Qsڝ?tMb_H? _@|T,z8LPK!v((asymw_db11_22_md_pywtCoeffs.npyNUMPYv{'descr': '1Mݧ?Դ(P?gQ?p;PK!s00zpd_db11_23_ma_pywtCoeffs.npyNUMPYv{'descr': '1Mݧ?wԴ(P?9gQ?;PK!u@00sp0_db11_23_ma.npyNUMPYv{'descr': '"y㣵U!? ܿH f6{eGб w?b%? .?pdЉ?XH"?G8 +ܷۿ"m ;Q妼?q"?PK!=R00sp0_db11_23_md.npyNUMPYv{'descr': '"yUb!? ܿ-H f6yweGб&w?b%? .?dЉ?G"?7 +ܷۿ"m濢;Q妼?q"?PK!00sp0_db11_23_md_pywtCoeffs.npyNUMPYv{'descr': '8="PK!o00sym_db11_23_md.npyNUMPYv{'descr': '}?= ?.o(!??y&.UcScۿ=( E!߿PK!<00symw_db11_23_md.npyNUMPYv{'descr': '}?= ?n(!??a&.ῡTcScۿ( cE!߿PK!4۝00symw_db11_23_md_pywtCoeffs.npyNUMPYv{'descr': '00ppd_db11_23_ma.npyNUMPYv{'descr': 'dG31濏H b6䱿bou?n(?Z;qs?xxG?|s?ggpӿ7@l?"{u @PK!h w00sp1_db11_23_md.npyNUMPYv{'descr': '͛ecvտ ΋^?\ecvտ% ΋^H?\yݝۿ+`> ͱw?PK!uL00asym_db11_23_md.npyNUMPYv{'descr': '^ɤlEտ-\G뿗ȤlEտ-\?Ghu0A+{p>d-$c?Fm?\Ńl7k҈?Zfpȿ??8L?]B1c4'¦ax߿9(Y"{׿ͨ?O[WNf?-? $1i=j??^?WۗVqPeƿPK!Vo 88zpd_db12_24_md.npyNUMPYv{'descr': 'sf1?TsD?S9RKͿPK!vO88zpd_db12_24_ma_pywtCoeffs.npyNUMPYv{'descr': 'u0A1{+?d-$c?c7Fm?(ZŃl7҈?Tfpȿ??8L?B1c%¦ax߿&Y"{׿ͨ?aWNf?-? (0i=j??\?ۗVpPeƿPK!mI88zpd_db12_24_md_pywtCoeffs.npyNUMPYv{'descr': 'PK! 88sp0_db12_24_ma.npyNUMPYv{'descr': ')T<%9@ Sn6@1W'3@10@OB,@ 1'@h~!@DI`4@@] @4E!?8L?-mOc,\s߿s`׿}9#?ˆ?Fmf;?z8?j4p?%3n ?zXtCdԠPK!88sp1_db12_24_md.npyNUMPYv{'descr': ':C>;i$PK!)per_db12_24_ma.npyNUMPYv{'descr': 'D\?kxs 0H]?F\o?PK!Tper_db12_24_md_pywtCoeffs.npyNUMPYv{'descr': 'W\{'?ea|,?  sЇÁ?}[{'?|ea|,?k ӇÁ?RxxՐ?Aħ6(?+ԿDe?ay A1?c^4Iv"?g @/x攦5? B^dyh?\(? ?Ű\?PK! \@@zpd_db12_25_md_pywtCoeffs.npyNUMPYv{'descr': '#7ݿ˒ܿnchFٿقz^ fg#οFt׿Yf?z忟`?  ~xjn7L?d( i<?[?rA6}w]&]?%1? U?`~$?PK!^HHf@@sp0_db12_25_md.npyNUMPYv{'descr': 'Ht0^PK!@@sp0_db12_25_ma_pywtCoeffs.npyNUMPYv{'descr': '#7ݿ˒ܿZbhFٿzfg#οFt׿De?;z忩`?%~xm7L?$ il?[?rA6}]&]?)1?T?b~$?PK!A0@@sp0_db12_25_md_pywtCoeffs.npyNUMPYv{'descr': '.;t03PK!@@sym_db12_25_ma.npyNUMPYv{'descr': 'SD忷XWYp?ٹؿD8B#ڿ#tשοFCD߿+Vt?fY?ך@U??Aa#?qM_? Qn$ؿ%vKz?LC?,&?Qֆ!TPK!!@@sym_db12_25_ma_pywtCoeffs.npyNUMPYv{'descr': '}D忽W`VYp?ؿDB#ڿsשοCD߿(Vt?fY?=@U??Aa#?YqM_?dQn$ؿ$vKz?ЍC?@0&?gPֆ!TPK!@@symw_db12_25_ma.npyNUMPYv{'descr': 'baC?Iu ֆA?+Uo?zGn?hOG ?PK!"K@@symw_db12_25_md.npyNUMPYv{'descr': 'baC?Iu PֆA?To?Gn?hNG ?PK!)@@symw_db12_25_md_pywtCoeffs.npyNUMPYv{'descr': '`~f?"P&J?=~8пRU?PK!Z$.@@ppd_db12_25_md.npyNUMPYv{'descr': '`d~f?!P&J?~8пRU?PK!"1@@ppd_db12_25_md_pywtCoeffs.npyNUMPYv{'descr': 'JJ,PwpM>'$ca>xJJwp>;ca> g谥?x)nِ@hÈ(?ĸt#5>1h;?1ib q?;C+_^#ڿ#tשοP߿.?Kٴ#пM޿=&Wn}ֿ&-ҿQ؂=?Q6ڑJiur9Y!T?PK!!@@asym_db12_25_ma_pywtCoeffs.npyNUMPYv{'descr': '?p"-ӑ'w.?:=,gvTD?f~~+.?!6z}?ntch? PK!eO@@asym_db12_25_md_pywtCoeffs.npyNUMPYv{'descr': '谥?(nِ@Ĉ(?vt#5>mf;?9` q? CV+_^#ڿsשοhP߿+?fٴ#п޿&Wn}ֿ&-ҿܯ؂=?P6ڑIi@urY!T?PK!Eg@@asymw_db12_25_ma.npyNUMPYv{'descr': 'UH?wɬ-رPK!i@@asymw_db12_25_md.npyNUMPYv{'descr': 'UH?:wɬ -رPK!%A@@asymw_db12_25_md_pywtCoeffs.npyNUMPYv{'descr': 'M:?N$Of?ǃ5f^@2!z?)F=vY`M,{ʓ~q?GD”d #ڿsשοPHn߿J ?Pi?r Bj?̸ 8v¿\?so]Kxw9mW?D-A? ?YCIIʿ~| PK!xHHHzpd_db13_26_ma.npyNUMPYv{'descr': ',67+?GJ-K?>zyhU}W _?[{`?lMaHɆտl|?\UmpK*k? .o?6[9$67+?GJ-K?zyhU}d _?{`?NMaHɆտs|?\UmpK*k?.o?4[9  >PK!ӭHHsp0_db13_26_ma_pywtCoeffs.npyNUMPYv{'descr': '| >PK!I5$HHsym_db13_26_ma.npyNUMPYv{'descr': 'ȻÿwnKQ?l t?{?'޿H1?6#M3WW?+C93?"1AKпgI:_y?)`LͿLlKACC?9XЀ࿜J.2?c?uMӿ9;?׿PK!|?HHsym_db13_26_ma_pywtCoeffs.npyNUMPYv{'descr': '+Ȼÿ xnKQ?l t?{?'޿H1?.#Mῴ3WW?t+C93?.1AKпYI:_y?~`LͿvlKECC?.AЀ࿥J.2?c?uMӿ9;?׿PK!3ڇHHsymw_db13_26_ma.npyNUMPYv{'descr': '? .o?< ?hcTBۿv3y(U?F?Z? ?Iy?*r׿(yd%ah¿JŇ?PK!LzHHsymw_db13_26_md.npyNUMPYv{'descr': '?.o?: ?xcTBۿ]3y(U?F?:? ?{Iy?1r׿(y$a|h¿Ň?PK!MwHHsymw_db13_26_md_pywtCoeffs.npyNUMPYv{'descr': '<]?Ȼ??pYT?S;?y엻`(vSBoL?-{zԀ!%? .o?_F5'?Dwo?ۿG><]?Ȼ??pYT?S;?y엻`(vSBoL?-{zԀ!%?PK!#HHppd_db13_26_md.npyNUMPYv{'descr': '<]?՝Ȼ??8YT?S;?&y엻Q(v[BoL?${zր!%?.o?j]F5'?Two?ۿG><]?՝Ȼ??8YT?S;?&y엻Q(v[BoL?${zր!%?PK!ԅHHppd_db13_26_md_pywtCoeffs.npyNUMPYv{'descr': '<]?Ȼ??pYT?PK!D܏per_db13_26_md.npyNUMPYv{'descr': '<]?՝Ȼ??8YT?PK!TRCper_db13_26_md_pywtCoeffs.npyNUMPYv{'descr': '"( A|-U|+#) wTu&,TI mNwT?.o?_#) 9?\QArQ=ۿMFwh`? ?jd?ZGDD?oǣb~qM?YPK!u&HHasymw_db13_26_md_pywtCoeffs.npyNUMPYv{'descr': 'Ν]έ>~92^2+`?jmr}c(g?39xܖeUݍ?zHr?X%+?!·ҿLcY?8 )AA?+#E'?W)Y@[W^@LHT?IZ)ῖ5',ᅵǨFGG̿趿,Vѿ#Z?:?PK!i~ PPzpd_db13_27_md.npyNUMPYv{'descr': ',Rd>PK!#tmPPzpd_db13_27_ma_pywtCoeffs.npyNUMPYv{'descr': 'Ν]έ>~92p^2+`?mr}(g?29xܖaUݍ?pHr?,ůX%+?!·ҿLcY?8 )AA?#E'?I)Y@"[I^@=HT?7Z)}5',BǨFGG̿߶,VѿZ?:?PK!&PPzpd_db13_27_md_pywtCoeffs.npyNUMPYv{'descr': ',Rd>PK!G^PPsp0_db13_27_ma.npyNUMPYv{'descr': '|#+M?Htbп,JUFp(??V$;@W?X`ە/&*:?6#п1?<%8Ќ?Ar榪zliD?@&j‡?G9^o ?Z׫U?VBmL?8 )tމ?) -'?Xn@H깿AT\@z:|?גnEJRDYo ?vZ׫U?VBmL?8 )tމ? -'?}Xn@H깿3T\@z:|?ێגnEFRDY<tuLϿMEa׿6Ul'I?<}ٿ1 ^?I+$3lX?[bп,JUFw*J?_>I&H@ҤWOaУ0fk?">?k?3sڿ)e?h?7鿜e`\?L1+v~u?PK!PPsymw_db13_27_ma_pywtCoeffs.npyNUMPYv{'descr': 'I&H@ӤWOaУ0fk?>?k?3sڿ,e?[?7鿪e`\?C1+w~u?PK!FPPppd_db13_27_ma.npyNUMPYv{'descr': '0Za?{<ۙzр쿢 AxڿnAdSnd?/g<?PK!L!PPppd_db13_27_md.npyNUMPYv{'descr': '?qG Ybп,JUFmex?:P@W?1P?F]?ަ_?*=fпVbÿU ࿦0ܚ;wq? BlPp`?PK![PPppd_db13_27_ma_pywtCoeffs.npyNUMPYv{'descr': '?YG Ybп,JUFߞmex?:P@kW?U1P?pF]?Φ_?ؖ=fпVbÿT ࿔0ܚ;wq? BlPp`?PK!a)PPsp1_db13_27_ma.npyNUMPYv{'descr': 'v8?R'u?j߷׿Ms_7@?"Rl ~rb?Ƅybп,JUF[Q1 ??r0V4q8?~Uw$Կ&m??-Hsw?VQ&CZ? J-.l?}U>XO׼PK!DPPsp1_db13_27_ma_pywtCoeffs.npyNUMPYv{'descr': ')8? R'u?߷׿9s_7@? Rl ~rb?Ƅybп,JUFQ- ??g0R4q8?{Uw$Կfm??-Hdtw?%Q&CZ? J.l?>q=PK!#Iper_db13_27_ma.npyNUMPYv{'descr': 'Fӿf ;0T࿤%$dzU/{?~Ԉֿ^nݿ+6?8 )9 ,z?,&&?$@̺ny@ʹo?ܿ >㿘5tJT|9￷d?nŻ0?PK!:|zPPasym_db13_27_md.npyNUMPYv{'descr': '_sW:`ҚssϿF xۿӰJ/[:b?62a5ؿq5IJT|9ᅳd?BŻ0?PK!+PPasym_db13_27_md_pywtCoeffs.npyNUMPYv{'descr': '_dWr:`ҚnsϿ%F xۿjJ/[:b?]2a5ؿQY4 C?2&迢 ?nB5l?nce׿;"}G?7*N%#%-?/bп,JUF[QgQ4 C?2&ݧ ?iB5l?ce׿'"}G?5*N%#-?/bп,JUFQgs.,UL?BDP_91s?U}1w?0n J±?TsR&c%%?it茡ӧSM13?p[F?4o?kt{({pI~*LпXIӿ%UM?LeAt`?W' [$?ыQKD3ڿQ┿PK!6﹮XXzpd_db14_28_md.npyNUMPYv{'descr': 'IM\%< i?MM^afU^B?Wf,!ow >5U(>PK!%ڵXXzpd_db14_28_ma_pywtCoeffs.npyNUMPYv{'descr': '7,UL?IDPd91s?V}NZw?{0nJ±?sR&|c%%?Бitӧ$_M13?Rp[F?@o?Npt{hpIE/Lп_Iӿ%UM?ޞe `?%5 [$?RQKN3ڿY┿PK!ȹXXzpd_db14_28_md_pywtCoeffs.npyNUMPYv{'descr': 'IMY < i?[M^ifU^B?o,! >=U(>PK! yXXsp0_db14_28_ma.npyNUMPYv{'descr': '-Ɖ>PK!GYiXXsp0_db14_28_ma_pywtCoeffs.npyNUMPYv{'descr': '"ҿPK!}_XXsp0_db14_28_md_pywtCoeffs.npyNUMPYv{'descr': 'gƉ>PK! vFXXsym_db14_28_ma.npyNUMPYv{'descr': '?Xwܿ زjԿ'hտjqR?q0X 62pݿ.IAۿQ6j?МD?Pũ?5H>H)SM13?[F?"?,6|-9vC0oпn^x&ӿ?uSG?@_C?ۀB*?~-|.鿁Fzտ1wPK!XXsym_db14_28_md.npyNUMPYv{'descr': 'JпwwpEl 򿷬&bk -@ۿ~dqvD1W^Ԫ?-?8ߩLO?@jَm5-p?IG#5?)п8Y$z/ ?>h$O*?AN?JEǔ?&-?e#X?ykK$|?PK!NXXsym_db14_28_ma_pywtCoeffs.npyNUMPYv{'descr': '?жwܿزjԿL(hտqR?=X#62pݿS3IAۿģ6j?0МD?Pũ?nH]H)$_M13?2,[F?&/?06|m?vC0yoп^x&ӿl?SGP@_C?%B*?6|.\Fzտ11wPK!Jпw>Rl =&b}i -@ۿ~dqvۆD1]y^Ԫ?B?@ߩL쿳X?c Aj̙m5p? M#5?)п_$C5 ?GhO*?JN?VEǔ?%&-?e#X?nK$|?PK!'XXsymw_db14_28_ma.npyNUMPYv{'descr': 'jMxNC9jc~1ÿmS\?cd?@~}LUb?c Aj uz'ٿT1FYJ0?AiKٿ5h?Cz9ߒ+)⿘H ?Cuu@A:ɿ![rPK! XXppd_db14_28_ma.npyNUMPYv{'descr': 'Zb $N$_M13?&]QF?D:?{俻6Br% dUFпQRpԿH?Ue)󿅿lVZb $NPK!J XXppd_db14_28_md_pywtCoeffs.npyNUMPYv{'descr': 'yhվ^/PK!jXXsp1_db14_28_ma_pywtCoeffs.npyNUMPYv{'descr': 'Rhվ PK!*per_db14_28_ma.npyNUMPYv{'descr': 'h EQ?_E?*/`W}Hl*?Oj ?;?3?b?8i?(v?Su_L?PK!WbXXasym_db14_28_ma.npyNUMPYv{'descr': 'ſJ ?fſJ ܔ?{gBM#? ᳯFrk? r:>ڄv?쳖?&jſB?[ƒf_?Z#E?W?0夠ukۿK; _?QA\?beu?֔&*3??Ͽo=;ѿR%h?O3Xÿ<< Ԯ/?oQ7MK?7}\Ǖ?bW#Aꦮ{?Xj@bq4C@?3k:P!>É>PK!F``zpd_db14_29_ma_pywtCoeffs.npyNUMPYv{'descr': 'NIM#?5ᳯF2k?(u:>ڄ?6ɿ쳖?ſFB?|ƒf_?e-Z#E?DS?$ĿE'ݿ-b? V翂xy? E-Oҿ/?r 6+X6.ÿiUpͿZPK!=``zpd_db14_29_md_pywtCoeffs.npyNUMPYv{'descr': 'W?뤠ukۿ* _?qA\?geu? ֔&8??ϿK;ѿo%h?FU3XÿG< ;خ/?>oQ7d)OK?7}vǕ?`O#Aa릮{?&bj@b́>PK!ӥ``sp0_db14_29_ma.npyNUMPYv{'descr': 'T?Ŀ8Jݿ6?nV?%)ܱl?=8:^ҿjt?P7?EN濼U4"sq`toyWGPK!c``sp0_db14_29_md.npyNUMPYv{'descr': '?ۚ]m?rm|t2?EϿ;;ѿR%h?+P¿Ũzg ?o_ӿ?,i"}?vmpaUjkݲ?I䠿 |?W ka+7&?XԾ>j+Ӿ@T?ĿS:JݿGD?fxV?,0l?98:^ҿCt?P7?ENo4"sq`toyWGPK!܅'#``sp0_db14_29_md_pywtCoeffs.npyNUMPYv{'descr': '?]m?rm|⿮z2?`Ͽ%;;ѿo%h?+P¿Ψam ?_ӿCi"}?e`pakݲ?I䠿u|?@W ka+7&?tXԾ>G+Ӿ\T?\pĿ׬ݿӺ>"?^|3ob]**j?T=׿Jyyx?ci5V?()6cJiK5IO)ZҿPK!2``sym_db14_29_md.npyNUMPYv{'descr': 'T?VĿʼn׬ݿ>"?__|3i]>j?4W=׿iyx?ciFV?/)6cJ %5NO)ZҿPK!A}a``sym_db14_29_md_pywtCoeffs.npyNUMPYv{'descr': 'QbA~ֿ-&S?126?M*_PK!M``symw_db14_29_md.npyNUMPYv{'descr': '?"Jq+ٿ\Z{ǩ?ǎ?)Bi?ɞ͉dM?Ͽ[<ѿR%h?iCxĿ`b2M߿Q z?|m ǿ|<_BٿSrte?LlB5?!y?WӐ1ݿhA^ ?l^Nq?\VGf?PK!rA``symw_db14_29_ma_pywtCoeffs.npyNUMPYv{'descr': '?bJq+ٿZ{ǩ?Uޭǎ?-Bi?(ў͉TdM?ϿǑ<ѿo%h?CxĿhgbr*2M߿Y z?hm ǿK<_Bٿ~te?elB5?*y?ddӐ1ݿ܁hA^ ?0^Nq?VGf?PK!‡``ppd_db14_29_ma.npyNUMPYv{'descr': 'j?x}o?5ϿT;ѿR%h?;գ¿^MHU?pv*%rٿ ȝ꿨Gd?⿠ЮS ֻܿ!߿w6I?HJ. ƿ y{.(?PK!y``ppd_db14_29_md_pywtCoeffs.npyNUMPYv{'descr': 'j?y}D?45Ͽ';ѿo%h?;գ¿hMU?{v*%rٿg %꿬Gd?⿈ЮS ܿ~ֻ!߿6I?J. ƿgf?b.gG?c4cG?8#Ǎ2>5Di eiHW?e-Z#E?.k=U?IĿk8`ݿo?h?'$P"A?3CϿ <~?!Aǖ<пQۻF?%1WR5@ )PK!``sp1_db14_29_md_pywtCoeffs.npyNUMPYv{'descr': '~I?GV]?ul\?pYo[̨?MϿ%;ѿo%h?vJ&OLx2?x5,h0ų'?ozȿ>nf?b!tTW>f?ǿ.gG?Ye4 ,G?er2>{.(?xˇ+Z%?D bjF,?:6"{+27 RkE?ǡ?PK!hper_db14_29_md_pywtCoeffs.npyNUMPYv{'descr': 'q0ScX?PK!n``asym_db14_29_ma.npyNUMPYv{'descr': '>x?M֦=ݿ}Ĝ?PK!B``asym_db14_29_md.npyNUMPYv{'descr': 'NS?,hZgĿTݿ{hT$?iL*' gs܈mR?Ӊ%:ɿo ?86 aֿ `O />>x?@Z֦=ݿ~}Ĝ?PK!6``asym_db14_29_md_pywtCoeffs.npyNUMPYv{'descr': 'd#>#IK|;a4)J?r6k`ؐ@?Bt:UNAـس?~3ƿ'S?^FͿp TӿLɿ&?R3h1޿6*?cc}bэP?d;C&y̦?&{1m?t68.?c 7e !D?\4k?PK!{hhzpd_db15_30_md.npyNUMPYv{'descr': 'a0ҾH>PK!rhhzpd_db15_30_ma_pywtCoeffs.npyNUMPYv{'descr': '="IK;4)J?r6k`ؐ@?t:[Np݀س?~3ƿ'S?:FͿ TӿLɿ&?R3h1޿ *?cc}0ɍP?iῩC&Ǧ?y$.m?/t6W.?ea 7 !D4\4k?PK!Wתhhzpd_db15_30_md_pywtCoeffs.npyNUMPYv{'descr': '`0Ҿ>PK! Ohhsp0_db15_30_ma.npyNUMPYv{'descr': 'wRo?Ͼ#?} ?\ ?}' u(wjۨٿRíBr?$SE$YjF?V& M?+Qqq?w깊`e@?1kq?|ih6?{w?WEĺ?dx z1ƿgBA׶=\?ӿPK!gBhhsym_db15_30_ma_pywtCoeffs.npyNUMPYv{'descr': '1Ro?kϾ#?bQ# ?} ?}' [r(w@ۨٿ۽Br?Sj"Yjq?J$ M?u+Qqq?w깊ۛe@f/kq?ih6?{w?=Eĺ?m z1ƿBA&=\?ӿPK!>ihhsymw_db15_30_ma.npyNUMPYv{'descr': 'f'9?{~ ?$GΊ5'NO>ٿ ?CVjF?(b$3'?!$j`@HG?Z,O?tUڿw_ɯK8S7?+|f?5>sjHϿiZD?PK!q؆hhsymw_db15_30_ma_pywtCoeffs.npyNUMPYv{'descr': 'ٿi ?4AVjq?1`$3'?!#j`@=G?Z@O?tUڿAw<ɯs1S7?|f?5>isjHϿZD?PK!S4hhppd_db15_30_ma.npyNUMPYv{'descr': 'hbR>ѼPK!#hhsp1_db15_30_ma_pywtCoeffs.npyNUMPYv{'descr': '֡WAmU Fd89S:Ac:Q~/1M Q*Q~BIY7D';@M"w7B=0|%/6 ݿ&?55޿T?ͮ}(\@?OGk50xED?އXHh?;[3@,9?V )4?I@PK!Qhhsp1_db15_30_md_pywtCoeffs.npyNUMPYv{'descr': 'dZR>?/?QkY'a?0XZs/@r{*x>#Ʀ^]?n>տL,S W4t ).?{]3C?cg8NnGi?PK!3Whhasym_db15_30_ma_pywtCoeffs.npyNUMPYv{'descr': '"sǿOv6;пUl)ݿʭK?Yc o#&?K*0޿.W?!~xY?&mU#kbjA?%g38i|?;Yiż$?ߍf\&?@_vԾ?PK!+hhasym_db15_30_md_pywtCoeffs.npyNUMPYv{'descr': '?O\kY'a?TVZs/@Uy*x>t^]?Fn>տxL,SP4t =).?uR]3C?d8Nni?PK!Ahhasymw_db15_30_ma.npyNUMPYv{'descr': '&&ꂣe 'F(K /Dۿ&?S 6޿ڤ?ͭ]}}忒?I0өx ymلz?}$??S񿐷:?\-)U?Nw?PK!fhhasymw_db15_30_md.npyNUMPYv{'descr': 'y3zD낖Z #;?G~{E~a{y|?o𐿍i`?U߂k᭿UMx?VHϿ 5B?1dG!=?0s yL޿NMR=|k^?Fx?:yl,MI?Mm8chᝩŒt%Ɩ?6툇e0꼵?\7pؿ:*9!cd^oAPK!^,ppzpd_db15_31_md.npyNUMPYv{'descr': 'q6k%$YPK!ppzpd_db15_31_ma_pywtCoeffs.npyNUMPYv{'descr': 'ly3zIJ낖Z #;?T{E~ay|?oei`?V\߂k᭿UMx?MHϿ2B?AbG!=?n yL޿ KR=k^?Fx?:y濳,MI?Mm8𿭃hᝩRŒ#Ɩ?>툇'꼵?)6pؿh(9!꿩cd]oAPK!7c Tppzpd_db15_31_md_pywtCoeffs.npyNUMPYv{'descr': 'O6k%~"YPK!8܁ppsp0_db15_31_ma.npyNUMPYv{'descr': '?CǴ?Dw7?0s yL޿~8=T?1uҫ?O6濊3c^I?`5TL9qy:=_Y}?Ɵab?0^mؿ[B%~0F ڷkPK!/#&ppsp0_db15_31_md.npyNUMPYv{'descr': '+ h ?w )?rjr E'XGH?RPcn|9n M B u"??E97F;?`XD]ۉ0~sm?^TKE񌁮 ?3}~x>us֋*]L?dAǴ?Hw7?n yL޿=6=T?*uҫ?6/c^I?4TL9y俗<_W}?ϞYb?^mؿYB|0F ڷmPK!ңppsp0_db15_31_md_pywtCoeffs.npyNUMPYv{'descr': ' s֋$Կ¤ƗY?v=?s:(ꩲ?Hv5$ \/?8Kɗ?SHR8?0s yL޿~8=h0B?A䤜?P!!tM?O)8>E1EEOԿnƗY?E)2ENEOۅiI2?X+JSqq'?pH-~CX0A]:Vq?PK!*ppsym_db15_31_md_pywtCoeffs.npyNUMPYv{'descr': '?eDƿS`/e?OE9ߵףP?K†$$\? ǧ[?yDw>xCM>^^PK!!ppsp1_db15_31_ma_pywtCoeffs.npyNUMPYv{'descr': '?f?n yL޿M(=h?C*?bp:JA?ò-:<:g?Ce'K?#u Կ]ɲܤE@X"@PK!FWppsp1_db15_31_md_pywtCoeffs.npyNUMPYv{'descr': '?>ƿ`/e?LE9ߵLףP?F K†B{$$\?Cǧ[?}#Vw>CM>;0? ?xq?O@PK!\per_db15_31_ma_pywtCoeffs.npyNUMPYv{'descr': '? ?xq?O@PK!.Zppasym_db15_31_ma.npyNUMPYv{'descr': 'vi?EJ57?s?İ;??6`뿂ڣժEȿ2?ybR쿾ɋ?A?0s yL޿b=z?NJ ?E%HbE?jL,; l\)Y"^?+>kbƿr?-tX˾*m?>|PK!xAppasym_db15_31_md.npyNUMPYv{'descr': 'gbƿU?F+tX⽴*m?L|PK!2ppasym_db15_31_md_pywtCoeffs.npyNUMPYv{'descr': 'w-ADg ?w )?AU_D|f?8zwS俶>s?KXB?d?V+?hv>?xv㿆oP?qg_m8>?y"]?ViŢxۿPK!ppasymw_db15_31_ma_pywtCoeffs.npyNUMPYv{'descr': 'A?yOFρ6Ɏ[?A84~>w@Dg ?| )?AU_|f?=8zwS;s? XBף?d?k+??hv>?iuvVoP?e_m7>?y"]?i׿xۿPK!Exxzpd_db16_32_ma.npyNUMPYv{'descr': '8t?>;)K8?U1rWP$h?n][M4#?¿Pd? 2qۿnM;?KNgz[}d+POv@?I(ٿ(L8?vT?rDV%/ցDM?]g&?-p&vֿ4 =?OL'?{IY?v( Eyo[y9C?PK!^"Gxxzpd_db16_32_md.npyNUMPYv{'descr': 'zr2/1PK! xxzpd_db16_32_ma_pywtCoeffs.npyNUMPYv{'descr': 't?>).K8?1rWj$h?.8]4#?ᔆ¿d? 2qۿN;?%KNgz'b}d+Pg{@?N(ٿhL8? T?LV%ЁDM?^g&?p&vֿ.4 =?UL'?~IY?y( Ey _y90C?PK!9xxzpd_db16_32_md_pywtCoeffs.npyNUMPYv{'descr': 'r2/1PK!xFxxsp0_db16_32_ma.npyNUMPYv{'descr': '֬hTֿ#TֿdWITֿ"UֿPQֿioN`ֿ]cCֿ: /ֿh+d׿Oqx-ҿE~b.I7f={TY? יg[}d+PD?\XٿbZ8?0T?o-G,>PK!+nxxsp0_db16_32_ma_pywtCoeffs.npyNUMPYv{'descr': 'M+-G,>PK!`,xxsym_db16_32_ma.npyNUMPYv{'descr': '<i?"&aD?\/?8?4ӋT?ב뿂( T? s?AXJֿ% ی?|;?I ?6"˛q-쿄C~?Xe?PK!IZDxxsym_db16_32_md.npyNUMPYv{'descr': 'Sm?iM9mhr*࿝Fm& 9ʿ!)PK!R(xxsymw_db16_32_ma.npyNUMPYv{'descr': 'lxxppd_db16_32_md.npyNUMPYv{'descr': 'FH: K_PK!7}per_db16_32_ma.npyNUMPYv{'descr': 'WKЙ?}[6;Ŀ?]DAvyR&?uhӛ!?ovSU@SݿY.A(C?'A?"E,%/?"7/'b}d+PYw;?9oٿX8?b _T?7뿑~FF?Qk?uFOq~׿H!8?}5?$ɏl?j'ۿ&⿡C?PK!`xxasym_db16_32_md_pywtCoeffs.npyNUMPYv{'descr': '?[9ᅱ50pȿ[WvZ?5hſYsͿKsJ꿣E_쯦¿ca?|m?bC;?k]k?j?:L7??)?PK!>xxasymw_db16_32_ma.npyNUMPYv{'descr': 'Ab3?C{H?րRNϿˏW@?>H<'b}d+P FL?wٿ' 8?Z@T?IכML?c{{?Aҗ*hֿX/Fp?6?ftLM?NX]l /qY ?!2M3f?PK!@xxasymw_db16_32_md_pywtCoeffs.npyNUMPYv{'descr': 'a>u=;V,a5m>52?8A^̆=F?I~.D|i?/u80?ؿ~,Q0}¿CL ~hsSPK!Tdzpd_db16_33_md.npyNUMPYv{'descr': '?T(@+Bž{?gz'(]?f:?D߿nۤshٿ D"6 Q?`g*`?SrCk?( !1t<|M?;hc-?,=s|FK^e(Ka?( RI;??nœcξ'ݎ1>H|A>PK!ʩzpd_db16_33_ma_pywtCoeffs.npyNUMPYv{'descr': 'a>gu=;&a=m>52?06A^=F?E.Di?|4/u0?$iQGd8P?/=俐J?Bc?il9|\; ka?e.;q0nDӕ?񤓎+g?p+vtM? ?nW? ?aҿI>ؿ/Q0}¿GL ~xsSPK!W%zpd_db16_33_md_pywtCoeffs.npyNUMPYv{'descr': '(Ka?2$) R;?Mn˓cξ1>|A>PK!^,sp0_db16_33_ma.npyNUMPYv{'descr': ' Ǜ>r½PK!qsp0_db16_33_ma_pywtCoeffs.npyNUMPYv{'descr': '$#Ǜ> wPK!y gsym_db16_33_ma.npyNUMPYv{'descr': '߿퓛cY9 ٿY]e{t$鿞O?`g*`?X?v)@wt ?l5 UȓkG3?x,N?+?xN6,?>/ݙ?<+l4?s6҃ѿhTN翩n(? ?hZ?PK!#0[sym_db16_33_ma_pywtCoeffs.npyNUMPYv{'descr': '*RXAa?0a?+?Z?u.R濹Pr6|?,˄?e?yYQ??%vgEӿ߿#퓛fj9 ٿ4^]eYs$鿍O?&g*`?X?v)\st ?5 SГkJ3?| y,N? ?d6,?>/ݙ?&l4?K҃ѿy TN n(? ? qZ?PK!tsymw_db16_33_ma.npyNUMPYv{'descr': '?{ۿ1y[o;Yٿ|J!)ǿ}7?jY%'̿[/1#?<H+8c)?PK!߫ppd_db16_33_ma.npyNUMPYv{'descr': '2d`s4v?W? ,?MQ? N?[ʱٿ>]!Guz?4ʻg?hl9PV[/Kv)b?tBb/1¿?z5/[?6[I濭 ]Œ?k?r%?U8'??9d?+|kd8򿸏ps?ڃDJ@V$PK!`ppd_db16_33_md.npyNUMPYv{'descr': '4@&2@ 41@-a/@csKU,@> T)@ڛ;&@dI#@* @ec^@rb@%oU@Ǡˆ?hl9popa?S~0i@?7q?ǔYy +?^?QY ?r?0͏ؿ_bҿf(԰9 Lo_`fZ PK!wSsp1_db16_33_md.npyNUMPYv{'descr': 'yT U><ݼPK!u|)sp1_db16_33_ma_pywtCoeffs.npyNUMPYv{'descr': '4@'2@]41@a/@MesKU,@@ T)@ڛ;&@dI#@* @:ec^@/b@uU@ ˆ?il9v$pHuڈa?U~0i@?y7q? Yy濔+?\?QY ?s?%͏ؿUbҿge(԰+ LW`fZ PK!pjsp1_db16_33_md_pywtCoeffs.npyNUMPYv{'descr': '^Z-p U>''BP.?0wcJʢ?< ?V$cye+׋e΁п{As8Ih]Kr?BLБ6?CC_?PK!|per_db16_33_md.npyNUMPYv{'descr': 'X/X/ W?f?KzYgh?c?M:'(?i%#̿&k=8?b)ԿPK!U zpd_db17_34_ma.npyNUMPYv{'descr': '+F.> рfNӾJ4>3^?>'G[%@c@d?N~݉IP?Vd7@:uW?4yG ĚaA?"XImU ?7,?2=ƿ-N5?oxEտ ?=?,'濣M F? Vg?x?QՅΩcIL? <$쿉9Uz¿n#a[ ;?Devmʜ)?M:EI?=Aw%q?@rD]U`@?4ժ״i>߾} U>7hPgyPK!jMzpd_db17_34_ma_pywtCoeffs.npyNUMPYv{'descr': 'x.>fNӾ@ J4>#?>mG[%@%c@d? ?~IP?Gf7@qW?s}G Ě*A? ImU ?ԫ,?3=ƿB˺-N5?[xEտ?=?U'M F?UVg?Y x?{ QՅcIL?3C<$=} U>qhPgyPK!n0sp0_db17_34_ma.npyNUMPYv{'descr': '?'ߊ@[lK? L(Z5?I$|?`< ,?2=ƿ^N5?gwAHտߤ?+?`=?#Aqta?AJIT?k=&j?Am$Ge8 ut[ݿ>Д= N>PK! jzsp0_db17_34_ma_pywtCoeffs.npyNUMPYv{'descr': '?0@WlK?L۸W5?$k|?z< ,?3=ƿ`^N5?BHտz%?+?`=?Bj2יta? IT?:&j?&Am$jGzsp0_db17_34_md_pywtCoeffs.npyNUMPYv{'descr': 'V utᾸ[ݿ>˺A N>PK!zsym_db17_34_ma.npyNUMPYv{'descr': '[;x¿̓Y}?E0K @8!=[3?fѿHC? J#k% g?6^RI?ܵdd`O;޿̍ݎlB1?{s5?I'm?5~S?b¹?5q?֎7⿴{MD?PYп?\)(?JN N,?[x¿Y}?\K @[Z=[3?,fѿzC?J J#& g?Z0e^RI?1dd`?;޿-ݎl\*1?95?IKFm?5~S?¹?q?7⿣MD?]Yп?*/(? N,?(=z(K񿦖 տmA?]Zf;L?ë Πq?2qL?dRt?cW?è$ @4 )(?PK!a'symw_db17_34_ma_pywtCoeffs.npyNUMPYv{'descr': 'u*ẇ?kzyVQW?x׏(vEa?,^ s8?|? lRԿ3Ui?PK!!symw_db17_34_md_pywtCoeffs.npyNUMPYv{'descr': '1N5?&Dտ5/?@.=?Z U=?Fr?O6#X_Ct?\UP?8rh쿯AĿ}?]}S+iѿc?3=ƿX>1N5?&Dտ5/?@.=?Z U=?Fr?O6#X_Ct?\UP?8rh쿯AĿ}?]}S+iѿc?PK!ճppd_db17_34_md_pywtCoeffs.npyNUMPYv{'descr': 'J8E`aϻCck?BDq,J@4>j%;؀e>L8vjF5VG2cli/8Hq|)"d-n#tJt.vi M*~V31?2=ƿN5?Mտ>?0=?W濧w?D7?;?UcO2{?m4ܓ$Y̦?]7g?#<=?Rs1v PK!8Psp1_db17_34_md.npyNUMPYv{'descr': '}t"K~jsֿXr@0Z)@NW'?W :Կ~=*8W?H*-њ5v?I꿱pRI?}I?V#We`Q޿̍ݎl}?x?~Tֿ+?/D{;ſz\?|9ƮZx̮?;[T lUo+ L?̇}00t??.諭U7=`F>%;e>L88F5h2Τli/ Iq|)Qd-n#.tJtͣvi in~L1?3=ƿNN5?SFMտ6v>?#0=?Wxw?.D7?o?6cOi{?Bl4$Y̦?=g?F <=?XsP v PK!q͈sp1_db17_34_md_pywtCoeffs.npyNUMPYv{'descr': '} u"K$~jsֿU*r@1Z)@W'?ik :ԿEJ'8W?*-n>5v?qRB)@}I?#We`޿-ݎl}?:x?nTֿw? 7D{;ſH\?ƮZQe?]T lU(+ L?}0K9t?@ҿ7=3μPK!per_db17_34_ma.npyNUMPYv{'descr': '1N5?&Dտ5/?@.=?Z U=?Fr?O6#XPK!per_db17_34_md_pywtCoeffs.npyNUMPYv{'descr': 'Uq2qYgpٸ)eI? e`UiK޿̍ݎl==?:G{?frh?3R"⿠~@-\]d7ֿt?.:e ss6ۿ.9ߊ(??^qIBN?S1|@Ħ?PK!asym_db17_34_ma_pywtCoeffs.npyNUMPYv{'descr': 'F83?\W8B??t7P?vNRMɱ?'p h}3jпJ'*;?zC?_J\WDPK!-zasymw_db17_34_md_pywtCoeffs.npyNUMPYv{'descr': 'RhG>vAJҾC{t?t!&P9,1?Je'G?ZgK]x=8?6w(Ŕh?ns4}?8zI?*]?Gq?pnۉLDJ?+ܿU-yL&CS% .๕׿??'ȑKm?hԛ\?uN?ijoYٴ񉚚jԿ;?X t?-jFGڿ\MbSSO/?0%翾}Bد?PϿFE?4Qv-tPf?]ّ*AE^s?<XT7H4,'?'>k%後Z ń> 84sPf(PK!HEzpd_db17_35_ma_pywtCoeffs.npyNUMPYv{'descr': 'G>vlJҾ1s{t?t!&VvQ9,1?~'G?ЭK]x08?fw(Ŕh?ns}?8PH??*]Y@?Gq?AunLDJ?wܿWF-yBCSؤ.๕׿ ?'ȑmgԛ\?UN?pk%Z ń>)94s܈f(PK!]7Isp0_db17_35_ma.npyNUMPYv{'descr': 'Y׈@$w׿-*??5 pn I*-?ti?~`{j?6!4տ烱OS<~PK!Gsp0_db17_35_md.npyNUMPYv{'descr': '=F>^>x-9>^>p}|;EG?,˸CyOn?x5*ळ?o{1\ hY\}ui?q?In)0J?q9$ܿ] ~T;R`F忒leN׿jL?AS῍)}n]/D? !?V4U?tp'/?Hdҿ:W<;EG? 9˸MzOn?P*ळ?(|1\ψhY\.@}uiY@?q?n'j0J?#r9$ܿ] ~.;RG4eN׿iL?JQAS/3S$ ?Nq?nB>J?shdܿ.&qJSe!TdSr׿ǡ0?mXG'x6o_?I9 ?tZ?o ӿaTnk_PK!Vmsp1_db17_35_md.npyNUMPYv{'descr': 'E'`jԿ;?!Lt?-jFGڿVAْC?0Z1dQM.?(ɿaw?GlT֥ ,r?NA+p1[.E?cU>#RLCRV,-s>`~t>Ѧd3<">:J?HhdܿW&q8KS "T忴AeSr׿0?܁XGj.x6um_?y! ?vZ?lm ӿw$Tn_PK!9Xisp1_db17_35_md_pywtCoeffs.npyNUMPYv{'descr': 'ݗ'`jԿr?fLt?-FGڿ*V鿷aڒC?w1dQ.?}(ɿ^haw?wlT֥V,r?A+p8[.E?U>QLCZ`,-s>Ԏ~t>3<"> p$|ۿO[961{̆jԿN=?n_t?-jFGڿnkX[M;2e?L濚"ha?Hm必37x? ڿPK!,per_db17_35_ma_pywtCoeffs.npyNUMPYv{'descr': 'iURtۿm{ci2jԿC!]J?e.t?-FGڿ,iE7V? Q/aPzw?E,m?k~RB?\QXEȿ rj翂+B?d9`CB?2IG?*rG # l]?*(TPK!6asymw_db17_35_ma.npyNUMPYv{'descr': 'E￱̽տQf?Nq?`n忬J?gFOlܿhm?=Tn+AM׿h?T@=? .v?Mο?fz迼)m@tPK!$&asymw_db17_35_md.npyNUMPYv{'descr': '"jԿ ?it?-jFGڿVQ"i?=c~xL ?]k^2q?1_mR:2?ۙxU?? &ԕ?o@Iڡ@࿂by,x)?ſpʩ41fU?PK!Ghasymw_db17_35_ma_pywtCoeffs.npyNUMPYv{'descr': 'Eu̽տQfY@?q?Sen忸 J?Olܿ hm=T"oI,AM׿h?3࿈@󿛡?v.v??kο?z迖%m鿯@tPK! .Ⱥasymw_db17_35_md_pywtCoeffs.npyNUMPYv{'descr': 'F+x>a 0ip_?0 +c'?Wx??E aG kr? :f5xvYs?yJ7R?x N ?BPHw\ø?>a῰&۠ !NV?nH??ϝS&8U J;50VEmD.?rҿ1F3?C՟iW?! ?? &?b? c?PK!*c^zpd_db18_36_md.npyNUMPYv{'descr': '`5> TlPK!/^,zpd_db18_36_ma_pywtCoeffs.npyNUMPYv{'descr': '+x>, 0Jp_?n + '?ֶWx??b aKkr?:f5x޺vYs?J7R?d N ?YB&w\Cõø?Ka῭6&͚۠NV?d1H??mmϝ8D J;40VmD.?j.rҿF ?eԟiW? L ??&?b?b?PK!mN)zpd_db18_36_md_pywtCoeffs.npyNUMPYv{'descr': '"5>ATlPK!cӘsp0_db18_36_ma.npyNUMPYv{'descr': 'a?Kq ?g5Ͳ ?dbU@pC$aMW࿵o@,T\9ƻ}տz'`?זf!H?54wf?}|E ڿ1~?wc?A穿*,?Yi <}%&*24k?,Eu,ɡ?>6^.7>PK!$qsp0_db18_36_ma_pywtCoeffs.npyNUMPYv{'descr': 'a?q ?lg_a ?T;U@vCuar"po@;,T\9N}տ&`?m*f!H?3w@e?E-|E ڿp~?N/!wc?UA穿)+?mi <}̐*24k?d,Evɡ?= ><!|оmlɌ>".0t7>PK!*sym_db18_36_ma.npyNUMPYv{'descr': 'q tk$?O~׿K*Bz?yn?MaG#3e?0SK?oI_?PK!,@ؘsym_db18_36_md.npyNUMPYv{'descr': 'w޿Үnᤶd??=paܿ=06Q}EFbvw׿|;?[ ;?g1,cM}fk?T+?ѵԿ 䵞ؾCõø?c$׭Ey(۠V?ր?eEn15k>b tk)%?{~׿BX?{n?G3e?RK?I_?PK!C%sym_db18_36_md_pywtCoeffs.npyNUMPYv{'descr': '??vNp? 4CGѿPK!:rsymw_db18_36_ma_pywtCoeffs.npyNUMPYv{'descr': '?JD?FNp?ѲCGѿPK!,#ppd_db18_36_ma.npyNUMPYv{'descr': 'd )ҿ@TN۵?uzk`?0c?BS?BH.P ה?ø?],ῠW%۠bV?VGf?F޶{9"ō:WnT`]eSy ?>d )ҿ@TN۵?uzk`?0c?BS?BH.P ה?PK!X(ppd_db18_36_md.npyNUMPYv{'descr': '?zX<":6MX8'w 6M3gdYr17O.P)'7%fH1_H 盺@i `6ީø? 0RA۠.yY.V?g?O"O.$HY@2';a|+Y?=zX J6ީCõø?y -?YA۠+xY.V?xg?-#.0ʹHYzV?Zc͌пm*3J͜z?k=+W? ?t0边k@Wh%@PK!Ӕ\sp1_db18_36_md_pywtCoeffs.npyNUMPYv{'descr': '3c2'̼k|`W>8ռPK!(Kper_db18_36_ma.npyNUMPYv{'descr': '9-Zi?=s? I,?fQhI?sOXbMWx?$UB35\qDz4rPK!^bper_db18_36_md.npyNUMPYv{'descr': 'D ϊif/(3hYHސ-s?y_MMŬ?!ǧٿtPJm\Ň|Loq`By*\`# @YD?@PK! 懘asymw_db18_36_md.npyNUMPYv{'descr': '?w0j?? :h$?!?e[B~)?@ؘ9rһbmُp`no@h\9翫}տz'`?xz?SLt?n< @3A?}D!@п2&zƴ)88@[y>?dD ibG/(3hFYHw-\@r? z_MMuŬ?ٿfPJ<Ň|8q`y*\_#2ZWz_yeCõø?. tT;۠Y7p V?b҄??Itq#-<(X4XJ,-?ڎ`fտ#F쿚?{(?ƉT̿&6R?9(=> @E?@PK!asymw_db18_36_md_pywtCoeffs.npyNUMPYv{'descr': '19һbُ[`no@h\93}տ&`?D z?uLt?n< m3A? @пTЏ2& zƴk88@Ry>??u"(+ 7k?`}f>Mp OG?PK!M9zpd_db18_37_ma.npyNUMPYv{'descr': '=q ]>,.Ͼg;>@cRm`>v@rsi?( 7}?bH~a55*%?ui뻿Z޻;?|ܻ-2e?1 @D?@U$?a<3?cA3?5Sm?و* ȿ;hϿeq?6 S?g?j(? gp#_cjM?޼?_iN??N A@PŞ_?N'$o?֩PPK!6iS]j+L'?$;X;ٿ%Ж,e?5ATGtSտGO-!jv?ӅۿpF%W?3?^H8ɿivUå?#rə?OZ??= 还–U?n{п $ھ?mp&&w?ks%N?KVXA?_0|1J#>Rg:T=t;C0A=PK!4zpd_db18_37_ma_pywtCoeffs.npyNUMPYv{'descr': '\=q ]>l.Ͼ5;>Mm`>ev@==si?}(^}?}a55%?"si뻿S]jWL'?,;X;ٿϖ,e?ATatSտԯGOjv?CӅۿpF%W?93?I8ɿtUå?+qsə?DOmZ?a>= s}U?n{пd#ھ?%q&ew?s%N?WKVA?i_0>1J#>CmRgUT=t]0A=PK!ڻmsp0_db18_37_ma.npyNUMPYv{'descr': '5M?I ^?s\Hп>g¾?뤿h?`Q?hW⒩Q?A?C7iu)Y>_r^>*X>*2sv6PPK!ײ˰sp0_db18_37_ma_pywtCoeffs.npyNUMPYv{'descr': ':[>*X>2sv9SPK!#sym_db18_37_ma.npyNUMPYv{'descr': '?DƣveFε? BؿAQ?2Q.ٿG?{ٿxeX?=;7ĵʑf ?Lϵ?Hѫ?,rT ?@U$?fh<3?!sA[g?3%m?K0Cv ȿi1Ͽ@[?(%?|?j! -?J?[ (?glk*?j?[- '@ X?PK! sym_db18_37_md.npyNUMPYv{'descr': 'Qyc?Z6g)?]l?BaK4xy?LT.?4ZCƣ>Fε?BؿNiQ?.ٿҰG?{ٿOeX?os=;8ʑf ?-ϵ?Nѫ?q* ?U$?Vh<3?J3A%^g?&%m?53Bv ȿ1Ͽ[?8(%?|?ߙ!7 -?hJ?r (?lQ*?Oj?a- '@k X?PK!yasym_db18_37_md_pywtCoeffs.npyNUMPYv{'descr': 'M6?;??PK!}=symw_db18_37_ma.npyNUMPYv{'descr': ' @޴lݿM\f?;9"?PK!x;ppd_db18_37_md.npyNUMPYv{'descr': ' @[lݿ\f?9"?PK!5͂ppd_db18_37_md_pywtCoeffs.npyNUMPYv{'descr': 'n+?II^LKտ$FiO1Yv?~rۿb#W?4Ξ?I8ɿ[?ʱ]C aK"ֿM~?3?+4?[ɿ GĿC7(T8?%g?7M Y??.xYz٦?wI7$ǧT^PK!"`sp1_db18_37_ma.npyNUMPYv{'descr': '@Rʸ9@;K4@L]/@Gj &@SLa@F6 ?N??@U$?I&>3?]rjAuߗ?;,n?0ǣȿ(Ͽ,R,"s?f=Eϛ?C? r黿Ӣ2 y?dk\?A >?2HjxpVB#I@&?U*_s*PK!˳֠sp1_db18_37_md.npyNUMPYv{'descr': '}T ~ ?:u:%?cWۿcD?hZҰ[տޕN6>v?.EQۿTM#W?79?^H8ɿ9r:??KV鿝&?--8Pῆ~?l¿UʽF?A 6d?gj4鄿E1Trx?01_;٫6?;Tg\񾜩hվ![>"(MtB>@1WPK!m sp1_db18_37_ma_pywtCoeffs.npyNUMPYv{'descr': '@fʸ9@K4@3?2jAşߗ?r;,n?2ƣȿ&(ϿBR,"s?HEEϛ?nC?r黿2 y?k\? ? >?Vtmxp,#I@B&?~k_s*PK!S?Yfsp1_db18_37_md_pywtCoeffs.npyNUMPYv{'descr': 'v?bEQۿZTM#W?99?I8ɿp:??鿩&?-8Pῳ~?^¿TʽF?e 6d?64鄿_1Trx?6*01_];٫6?0\hվp[>F^WB>@sſx? (?vų?ɍ?f$=DN?PK!per_db18_37_md.npyNUMPYv{'descr': 'sſx?⇩(?Kvų?Lɍ??DN?PK!lEper_db18_37_md_pywtCoeffs.npyNUMPYv{'descr': 'ţ?-皥R0H?e`wUV?<ȿKՇR?`]}I5Bpj#ڶ;31E?F=R?@U$?[<3?TAS ?rmm?λȿϿ#p:_?BA?ҠW?D K)?n?ߞ?cSDW?pcJDR@?!JDcTI+]ÿPK! ^^asym_db18_37_md.npyNUMPYv{'descr': 'P}?d۫?0bVe$M,?3-9K̔H+?gڿC?ǒWq)Kտ$8Ow^v?<-p~ۿ+4$W?fm?^H8ɿy9,? `u%.(?<2?JU uο #,?GF'< ^X?PS:ѿ X<[翆De?n5??" 6-,<ѿϏPK!Y.asym_db18_37_ma_pywtCoeffs.npyNUMPYv{'descr': 'tţ?<暥0H?h+wU󿲡V?<ȿAJՇR?/}I;? 3Bp*"ڶ; 1E?mFgR?U$?,Z<3??A ?emm?ͻȿb2Ͽ#p:_?3?ѨAŏ?q n?}VȿYϿpwk?>~ʖc?qt\?aſ4P)=?>a?TF;? Mxy?M0 @ i\cK?G jdPK!D~Iasymw_db18_37_md.npyNUMPYv{'descr': '3?hAEŏ?q n?UȿϿk?%ʖc?gt\?0aſ)=?D>a?(F;?Mxy?"0 @>i\RK?G񿛞dPK! {Jasymw_db18_37_md_pywtCoeffs.npyNUMPYv{'descr': ' ZBF}4>k>붣Eq!B??kwvajv?L el1j?Muښ?:S;Jåsk6?Hhy׿?;ؿ忕>EAiE?ո"(?R=a?;~z?y#޺S㿵ONd U3g>wl?'>]=gT?~:Fcb?xkX迤LLտ{%ѯ.ݿz@?GreӬ?JurFY+Q)sPK!+Өzpd_db19_38_md.npyNUMPYv{'descr': '3.X>BWi/PK!zpd_db19_38_ma_pywtCoeffs.npyNUMPYv{'descr': 'ZBF}4>.k>춣Ext!B?Okwvav?Ve1j?vښ?d";Jå~6?Qy׿?~;ؿg +REAiE?"'ո4"(?c=a?;~z?,޺S*ON^ U3$~>wl?>z=gT?,Fcb?xkX\Lտ %kħ.ݿ@?&\reӬ?rFY+Q)sPK!!h,5zpd_db19_38_md_pywtCoeffs.npyNUMPYv{'descr': 'X3.X>XWi/PK! sp0_db19_38_ma.npyNUMPYv{'descr': '$Z7q>^*#jd>`:$/"@>PK!E%ksp0_db19_38_ma_pywtCoeffs.npyNUMPYv{'descr': '2dc7q>L*Id#jd>$3+T"@>PK! sym_db19_38_ma.npyNUMPYv{'descr': '뿍 ] ?ոPg(?0c?}y?Z?SNI5Y2࿹%?EdBGo?^)o?qe(ֿ< ߿~&M?~>zlxtbIX?PK!㰮ڨsym_db19_38_md.npyNUMPYv{'descr': 'r2?xK?bu=ݿ튪7J?PK!usym_db19_38_ma_pywtCoeffs.npyNUMPYv{'descr': '3] ?"'ո$g(?7c?.}y?HSND9Y26%?k_Go?)o?3qe(ֿ=J ߿U~&M?~> xtIX?PK!yyfsym_db19_38_md_pywtCoeffs.npyNUMPYv{'descr': 'Q`1i?6?h'?3>>r,2?PzK?ab=ݿh7J?PK!-symw_db19_38_ma.npyNUMPYv{'descr': '(?Dnb?z?2[S=i+N 33? J36?D]ۭ?"kM`J*Yؿr&}7࿌m3%$ǜ?#߿zF%޿S?<-&?PK!symw_db19_38_md.npyNUMPYv{'descr': '%g@R'R?'3 -Pi-E?B!?&9Qbt?p?--? ؿf] e޿ ?}Ľ 󿗆BS<?[|CtUO6 ?U_cŊ_???!C5пzL$ӿPK!Ĩsymw_db19_38_ma_pywtCoeffs.npyNUMPYv{'descr': '(?Knb?8-z?\dS`i+N3\I?J~06? D]ۭ?SkM`KYؿ9}7&{3%忧圭?׿zF%޿l3S?,.&?PK!;tisymw_db19_38_md_pywtCoeffs.npyNUMPYv{'descr': '4g@RbR?33 l-Pij-E? B!? &9wt?[p?4-?o$ؿi e޿% ?cĽ B?k|_BtU 6 ?'h_? ??@.C5пL$ӿPK!i9#ppd_db19_38_ma.npyNUMPYv{'descr': 'kN?9+ f׿{+?i3  P?wVi7E?|C!? &9h?h??XWJ?:il@xw%D}0Ȓ?/ F?>kN?9+ f׿{+?i3  P?wVi7E?|C!?PK!Tysp1_db19_38_ma.npyNUMPYv{'descr': 'I\rp uFQPK!Xsp1_db19_38_ma_pywtCoeffs.npyNUMPYv{'descr': ':I?T/G=ȾQ?s>rj~u>hEkZrpYuFcPK!5'@per_db19_38_ma.npyNUMPYv{'descr': '#yper_db19_38_md.npyNUMPYv{'descr': 'kN?9+PK!asym_db19_38_ma.npyNUMPYv{'descr': 'ٮ?{{?#SNHлy޿3WP5?[?*GC#_?#Vjn򿟍<ԃW?fEbYVc#b_b?fPn?'Ɨ;JPK!5˨asym_db19_38_ma_pywtCoeffs.npyNUMPYv{'descr': 'ٮ?w{?OSNHлjy޿1OP5?u_?-Ga$_?fjn򿾗<ԃt?nEbYVcq_b?Qn?֗;JPK!asymw_db19_38_ma.npyNUMPYv{'descr': '@jbIeX??Ԑ?pY3.ؿ'Wj?NHBnD:HM?kmniI E?LA C!?&9̖T?O^zѿpQG>Ϳn@wN_ҿ,?F5?M$?PK!s{<asymw_db19_38_ma_pywtCoeffs.npyNUMPYv{'descr': '@wbIX??0석Ԑ?N'?3.ؿY'Wj? "HBen vHM?zzniP E?oq C!? &9K▍T?uF^zѿG>Ϳn@N_ҿ?RF5?M$?PK!zpd_db19_39_ma.npyNUMPYv{'descr': 'sHn>O+qzžLq_>]ƅR#LC"?\|K?wX!Twҫ"?.[jLK3߻?ݒXkǿ|D?g~2ֿB7?.xmxT?McТ?D*Y۬8=n?๥8<oT A?ā0MV L?jOiwgF4>Wv`M^PK!uEzpd_db19_39_ma_pywtCoeffs.npyNUMPYv{'descr': 'sHn>*+qzžj/q_>܅R#ގC"?|K?:r!Twfҫ"?.[DzK3߻?Xkǿ|D?9~2ֿ&B7?%NxT?cТ?rY۬=n?o๥><r3~l<<\zāvGD_«?{~ e{(c?^K(|?C@~5ep?$ MrMAx> A?끻0KIV L?*Xi⾪gF4>`M^PK!=_sp0_db19_39_ma.npyNUMPYv{'descr': 'G?ugA?63oDa7m'0??J)?3,wz\?SץHԐ57a?ܾ i?:{i(]? kFEw(?ƞwNr>blj(edɞ0>!PK![1+sp0_db19_39_ma_pywtCoeffs.npyNUMPYv{'descr': 'G?gA?>3f^Da7%m'0?J)?wߏz\?DHԐ57a?K i?|iK(]?FHkFEw(?1ƞwaNr>Njey!0>}PK!&H<sym_db19_39_ma.npyNUMPYv{'descr': 'o?d5ȫ?$ؼ6_ 쟫`p )PK!.asym_db19_39_md.npyNUMPYv{'descr': 'o?Yȫ?Wؼ6࿷ B쟫㿥| )PK!YOsym_db19_39_md_pywtCoeffs.npyNUMPYv{'descr': '3f^Da7濄ks+?dDd,?[B ?f;\9Wi?@V*uwhs!Կԩ({?Pex4Z릿>G'KDE=\0?`d#?&Zs)@ٿPK!u?FC -?R`?J{?\.m?D*Y۬j=n?ⴥ@ws,GSCZò?p6?Xx):\oV$[={?&`i^ֿM?T/W?"?U#3:a(俊A >hˑ¿PK!kYsymw_db19_39_md.npyNUMPYv{'descr': '?2FC -?!`?dJ{?z.m?rY۬=n?ⴥFws,GSûZò?6?Kz)\oE$[={?&`ZY^ֿv?-U/W?D?cS|#3(俹N >);ˑ¿PK!.ǰsymw_db19_39_md_pywtCoeffs.npyNUMPYv{'descr': '6OTG?oA?>3 ';)LsVؿD.oᅭ<տۂ3?LmQ?\iP|+Y~ ?R+in$?w%V?c? Ć.?Xd}R?t \i)?qLPK!qppd_db19_39_ma.npyNUMPYv{'descr': '?T?PK!VORGppd_db19_39_md.npyNUMPYv{'descr': '?T?PK!ȵppd_db19_39_md_pywtCoeffs.npyNUMPYv{'descr': '3&F34俷wD忣+?W/;z? fc- x?+Ϡ a|Y?}S^꿪J%`N?X!VE+Bտk? i}t?U?2C4?Xnx" ?PK!ʰsp1_db19_39_ma.npyNUMPYv{'descr': 'r6? 3 S(?Og]n@2E?ԿrI'? pm?2J!s?b* -⿰@% տG pE~G?^A?63Fϔ3D~[8hBa{`W?>7]y?ԧ=0I?sgѕS!ґlI?V}t+{l?;\R5 bR0?)1BuFӰƾBR^>O7w/f2P:LePK!ܯsp1_db19_39_ma_pywtCoeffs.npyNUMPYv{'descr': '<]yXD[fq{Zz5t7 S+(?5g]n꿇@kE?Կ a'?opm?cJ!s?`* -vj% տbG wE~G?^A?>33v[8hI{`W?Uy?<=I? sˣѕS,lI?t}ȡ+{l?;\R?bR0?ae1Bu!ҰƾiR^>0wʔN:hJqҼPK!Svbn  per_db19_39_ma.npyNUMPYv{'descr': '3f^Da7 .AdȧͰ¿ˆ>pU?:pz|z|h|`A ?2s=n@PK!5asym_db19_39_ma.npyNUMPYv{'descr': 'n?=:c{GۍyS?F܏?˜MHi̡q:i`?TsᙑԿU4H? -?/?vhØݿ/t5$[ѿ3z??PK![asym_db19_39_md.npyNUMPYv{'descr': 'n?: k{GyS꿃?b܏?MH̡q:i`?ZTjᙑԿ^u4H?b-?Y/?hØݿ/IP5$[ѿz??PK!"asym_db19_39_md_pywtCoeffs.npyNUMPYv{'descr': 'hRտ ]q迹Ņ?tyz%@\I@nɢ}?ӿU?gGs?C@?lS/4oտ#lէG?fcmA?>3,,wAH3]+>yUDܿl-\xo*zRǔ@?E1ka.?ᓋVYg{l,m?h?ebY??ЙG#?`1?M D0¿J#MQr)@?PK!masymw_db19_39_ma.npyNUMPYv{'descr': '͐mٿbY?/ ?fR濮f_?O"3i⿆P4 ѿB5述WRt?/e)bL?PK!5asymw_db19_39_ma_pywtCoeffs.npyNUMPYv{'descr': '331SC忓 [7?}ћ?%?yk? PۿΤ^{ T%b?Æh @Ք1k$KjB:?2s*5l3i⿬EP4 ѿvS5WR$t?6/e)uL?PK!ozpd_db20_40_ma.npyNUMPYv{'descr': 'hBYӾK>>lX7OnU`?CWd}>eܒ? "`$wT?^u)a/eZ}8ԇ?QEF7d?,$Fſ8?oAk(6"?Y  S?r*#\eMT>c $PK!?ujzpd_db20_40_ma_pywtCoeffs.npyNUMPYv{'descr': 'uBYӾ.K>>!mX7WnU`??Xd}>eܒ?/"`_yT?(a/e 8ԇ?|9EoJ7d?VFſa?oAk)6"? Q?ppXˈwu(1?E?DA"ڿyVZkB?_IQ?bоV?W !\?ONn?cd1_?غГ=?gd{t"H5h}gʿabH?|~ y?PK!u2Pzpd_db20_40_md_pywtCoeffs.npyNUMPYv{'descr': '#~Q?FWP翧S[sOn?~5_)usPR?6=&z;0u2?z7Bnԩ?At2?ȡDNa/]G^H¦ ?kpW[9}OF?ZʗB7?%wc0a#nPs=?V2Pژt?v1S4&pA%2?!˶ %ȹ?%P:^ҾW{A%j>8#\eMT>Ƞ $PK!Tøsp0_db20_40_ma.npyNUMPYv{'descr': 'Q?PK!u_Osp0_db20_40_md.npyNUMPYv{'descr': '.dXA>fV0ՙ& Tb>jq>PK!ݸsp0_db20_40_ma_pywtCoeffs.npyNUMPYv{'descr': 'Q?PK!`sp0_db20_40_md_pywtCoeffs.npyNUMPYv{'descr': '+UA>nV0ՙ(& Tb>/9d>PK!J sym_db20_40_ma.npyNUMPYv{'descr': ' xoty?-H4?9f?{Yd?Yx0??1N Q?Y!#ͿcU??D?!m~Q[j ?fƝX⿁H]G4?xN(6"? &?v{~wquU 1?U?T8UڿۗQJo]k?L%?%? 5?HqR=?H O?f ˸?-Xit tMSfptؿ24ݻʿYa5MPK!symw_db20_40_md.npyNUMPYv{'descr': '? ?u~D}l׿7 ?5dXQ(6"?ki C?JH wӸz1?f2? ڿwTuB?Kt?̦u4?u޺?l? s>? ?u~D}l׿7 ?5dXQPK!R]ppd_db20_40_md.npyNUMPYv{'descr': 'ؿmYsB3ᵓ9Ճ?dS>_y鿔F?pKev >]M?~ _?d3?@)ҡ/"/6eIv^%¦ ?ٴlD69>ؿmYsB3ᵓ9Ճ?dS>_y鿔F?pKev >]M?~ _?d3?@)ҡ/"/6eIv^PK!Zppd_db20_40_ma_pywtCoeffs.npyNUMPYv{'descr': '?dY?~LQ_l׿: ?dXQ)6"?\ 迁VC?@| wpz1?3u2?ڿcuB?Lt?5x4?RFߺ??!F s>?dY?~LQ_l׿: ?dXQPK! Oppd_db20_40_md_pywtCoeffs.npyNUMPYv{'descr': 'ؿeYYɇB3n9Ճ?L>_y+{F?}eE]]M?F? 3?)ҡy"/fj^H¦ ?wٴ|mD6c9>ؿeYYɇB3n9Ճ?L>_y+{F?}eE]]M?F? 3?)ҡy"/fj^PK! Osp1_db20_40_ma.npyNUMPYv{'descr': ' ο, =yQ忭9*Ɩ|)? c%g`?j&'\oШ~4t?*[$ ?w],2?}{zD/u v^%¦ ?~K׫p 9?J5a)ڿȺ"?kǿm{?y$6??-HNx񉿿qp?@I&)>uեLC?%I"|&ld>% sfEӢ& mF?7+f q?q'?.-??B?}[~z,:  @:.[@PK!UDsp1_db20_40_md_pywtCoeffs.npyNUMPYv{'descr': '_LC?tB"|=e>sO:fEqM^$?Ml?w+ ?Ӊ$?bҀ?ɠ@?vH5cIɿE$(?ؿP?PK!<asym_db20_40_md.npyNUMPYv{'descr': 'k?svW@@9?N֎n3?~hd8T¿푆,?=CƩ}̫?)W)6"? ` *&?h}wY b1?9oG%?4Y0ڿu)(Mv-{?\^$?Ml?px+ ?fӉ$?S?`@?_v:/I5cHɿ-$(?ؿ P?PK!( asym_db20_40_md_pywtCoeffs.npyNUMPYv{'descr': '(ސ_=i>^z~3CЏ-?˪K}p}c^?,ϊ}Vv#з>pT?&%¿aX?WҿSOh?bBL%S?^n^I?-8?V"6~?(/fү?*{?éQ_?tHG" FuǿO?*lj` پBH?ٻ-7?W ؿ?/ĿI"٥0 1O DPK!43/zpd_db20_41_md.npyNUMPYv{'descr': '>}̬Ȏ<%'H>7w?y:=PK!zrzpd_db20_41_ma_pywtCoeffs.npyNUMPYv{'descr': 'mE)ސ_>X^zf3C4@-?L}d^?ϊPKv#>pT?^%¿;aX?Wҿh?L]S?%n^I?\-8?"6~?8v/fү?Kw*{?(⩪&_?G" Tuǿ O?ylA̲`"9BH?7$}7?Pؿ?0Ŀ"٥XD1O DPK! tzpd_db20_41_md_pywtCoeffs.npyNUMPYv{'descr': '̬ȎC&'H>?y:=PK!sp0_db20_41_ma.npyNUMPYv{'descr': '?"?v ?볬o=?!3د;,/єȿEkk ?2?jVrh?=k?3{/?>{{,?n ?vV1 %Oҿ?;e}a& ?UrH)? T=;C?:N7=0mPqn?cZ Ii^M?ƍp?kݒvdt?۷>[2 `eL/:YPK!jsp0_db20_41_ma_pywtCoeffs.npyNUMPYv{'descr': '?_?v ?٬o=? b3&;/єȿlEkk ?2?HVrh?S=k?{/?{,?2n ?pV9 % 5Oҿ?j}!`& ?>RrK)?DT=4 C?yO7=@AmPqn?'dZ I`M?Ǥp?!vS?۷> `e]&/:LPK!Fsym_db20_41_ma.npyNUMPYv{'descr': ' G? "e4a?pX3c?4 _w'UwP?%1? ј?JӖ? i c?4-'%?"7Yѿ51݊俪 |:?=K]S?^I?8?Y.I}?†ӯ?Ie7{?.3Ręd?{r,鿉<ǿΥK?L@Bh_F<Ňȧ}nkmw?S&ll*W?Z?+u~D?6)1?PK!˓ sym_db20_41_md_pywtCoeffs.npyNUMPYv{'descr': 'ɴXt?nء?d;8?ԏ|?=>*ir'h?]½7?hxg?Lj5T&[?CJ߽ȿ!A ?%KH?Ƙ}h?~Tj?I/?$x{,?n ?VV_= ,6T志pFȿlBH ׿c ?^my*?(/5?.hgG6%?_Qw?JG ?4j/?ᓕ/ W 1[?u-?Zϭ c?$Y?I10?VQb@PK!Hsymw_db20_41_ma_pywtCoeffs.npyNUMPYv{'descr': '鿻-ir'h?`½7?g?pj5D'[?`J߽ȿA ?N;H?Ƙ}h?Tj?+/?{,?2n ?l_Q 6T`rFȿIZCH ׿b ?Vmy*?/5?gG6%?Rw?G ?i/?/X 1e[?u-?`Tx c?$Y?I10?Qb@PK![ppd_db20_41_ma.npyNUMPYv{'descr': 'Կ{gjT"4fyYq%q?0IOܿARx~?"?}|ʿ`I?]l%S?c^I?}-8?L~?=*ӯ?(-!{?x|KO?r(H*#ǿn\??Dfum%BῊt3`?ڼn"~?,=??9o:̿u)0Ro8 ۿPK!X4vppd_db20_41_md.npyNUMPYv{'descr': 'ԿgjTjp3fp%q? Oܿgpx~?"?|ʿ/`I?^l]S?c^I?ķ-8?SL~?+ӯ?u-!{?O?(*#ǿx\?? gumuSBĶ`??ڼwn"~?z,=?Jo:̿0Rp ۿPK!죌pppd_db20_41_md_pywtCoeffs.npyNUMPYv{'descr': '@dZ<@E~#:@]ک8@'?6@zKxMy4@o&p2@FGf0@ ~,@;(@w)k8(}$@䩈< @7;x@H@@ *.?6??z%%S?﫮_I? W8?Kԗ|?Cٯ?͌ {?~??1h`/鿎ƿ#`P?z*F*U4nͦ?62ak?N]6?'FY1iy7Al "PK!c?sp1_db20_41_md.npyNUMPYv{'descr': '?Vhh?l?nXU/?B4z,?n ?u[M?T6nڝ+?mV{B5?S`0Zq?r}Υ5h?[gymvZ)@?Ds!?t:܋>-1R#(Њ%FG6`>Yk=$1PK!~sp1_db20_41_ma_pywtCoeffs.npyNUMPYv{'descr': '@EZ<@3~#:@ک8@'?6@mxMy4@o&p2@@Gf0@~,@o?<(@hk8(}$@ڈ< @u;x@@@ *.??? Uz%]S?u_I?W8?D6|?Bٯ?2 {???nh`/鿉#ƿH_P?z*i*~4?_uvw?O]6?"F$hy7l "PK! hsp1_db20_41_md_pywtCoeffs.npyNUMPYv{'descr': '?~hh?( l?|}YU/?M4z,?2n ?vCv[M_?h>n ϓ+?[ mV{ B5?^Ėb0Zq?Ôr}5h?ȳgymvZ)@?~Bs!?t:k&܋>|O2R܊ }BG6`> ˬk=pPK!H<((per_db20_41_ma.npyNUMPYv{'descr': ']sPY?iI jkyK²?F?Q{Xd;?^9ӿPK!<((per_db20_41_md.npyNUMPYv{'descr': '4Ϳ z5?dLLT4p?;EgZ?´?X_ 29`9ѿPK!5Qasym_db20_41_ma.npyNUMPYv{'descr': '?% XYٿQɤs:@E[?4}?8M%S?]I?W8?#? ѯ?ώ4{? k&%&?:Bȿ#[ɋ?[Ej A:߿vwx$?Q1ԏƿ@P;?!wRv]V4U gL?i:ٿmV!|?}/?4 }PK!Nasymw_db20_41_md.npyNUMPYv{'descr': '!.9t?0s?vȌt?)e)]S?u_I?dH8?oR{?Oٯ?\{?|}T}Üo?ь>1aՏƿ+P;?>"ᅭRvU4ȇ"gL?a)h:ٿpNj!|?Pר?eP &}PK!v`uasymw_db20_41_md_pywtCoeffs.npyNUMPYv{'descr': 'HX'nL>co:>Ƃ,>4W%?(ʆ>=G?.׌A?h}x6?_ X?pOԉ˿uƮ?*jܿL->? 2ڿN?a[&?M׉Ϳ*IdJ鿄JRe?vW_om1?X?I P?Q/@3f뿑#5Hp?q7Wȉ;Dܿ3eq _e¿޽j?7?-wp;z?PK!Ũ[zpd_db21_42_md.npyNUMPYv{'descr': '+>YÏc["RdD*g>PK!zpd_db21_42_ma_pywtCoeffs.npyNUMPYv{'descr': 'UW'n(L>:>Ɂ,>9R4W%?KF%ʆ> G?IZ׌A?2ͽ}d{6?l\X?KOԉ˿ uƮ?8*jܿ->?}2ڿB?p6[&?|Ϳl3dJ*7HRe?hF_ocm1?4?Z P?Q||/2fr"5o?k/7W%:Dܿp ad¿޽"?6?#[vp;z?PK! zpd_db21_42_md_pywtCoeffs.npyNUMPYv{'descr': 'Zc[@cD*>g>PK!nsp0_db21_42_ma.npyNUMPYv{'descr': '4_'}AZҿ$y̻h#,?cn?V?I'jN߿?tRܾҿ"#!?^ؿ3]R?(bc?I;w?,?Rh?e? u?m`+G?c1(? U3?j?ODdӭCۿyM« r?Jؿ>ŝ?|;)hVHy?W/]M8q!1wp?-sC(fZp=S?Dh 7?Xt-|hȃw\ > |RJ(d PK!8ҰKsp0_db21_42_ma_pywtCoeffs.npyNUMPYv{'descr': '#RJX1 PK!{9sym_db21_42_ma.npyNUMPYv{'descr': 'l e?r01?[૱? "PN?(()x`"M;뿼$]sW?-q{Ub<<_ۿ"fgϿR?-]?o~So.?* U?PK!4l2sym_db21_42_md.npyNUMPYv{'descr': 'Pؿ@ @\,-ۿR+ ? J?I҆+?Z."?̪j@?y?ǰ?us1~ѿwR]пR?+)ݩʿ+'ῦ^r?]/U ?PK!#symw_db21_42_ma_pywtCoeffs.npyNUMPYv{'descr': 'k?U_g?ա9U[_?~1-WۿxZXԿ4?^Nv[RO?Ce?)4?W}m?IM@?7?_d?3RG?(?ͰU3?/}m?"v#Wɂ*>Pؿ)2@ @OK*-ۿ/=+ ?rJ?\?҆KÍ?J/"?j@?y?ǰ?q1~ѿ:vR]п0CR?V%ݩʿu+'ῡo^r?/U ?PK!(ppd_db21_42_ma.npyNUMPYv{'descr': 'ӿ{A+4?<hvEڿP? h @|ki[T@PK!usp1_db21_42_md.npyNUMPYv{'descr': 'tIk>s|Phej>#&> ؽ#ӿ2A+m?D7vEڿUP?5Œh @i[T@PK! ڢsp1_db21_42_md_pywtCoeffs.npyNUMPYv{'descr': '2Ik>jrQhÈej>k&>`J3ƼPK!I((per_db21_42_ma.npyNUMPYv{'descr': ',&((per_db21_42_ma_pywtCoeffs.npyNUMPYv{'descr': 'n9տ+g]E?fy?BPuן?;PV"#&ѿ/]?zgۑC9?bPf? =~ #?H?Ȟk?6l[?Tqˑ?G?(?ͰU3?X? ɱe %t?)$JP?|6Qۿ E@xU2? Zr?@(?oú?sx?!Q?D:?J.*!bE?dpf{οm9hҿMoY;?4s$-?PK!7lnasymw_db21_42_ma.npyNUMPYv{'descr': 'klMʿMբ@Sn@l UX#?V`Gw(E?˰?ہҿo=_a4B?h?gt;R㿩?u. 5F?w=߿kkrr?a[&?g Ϳe^JOR e?Kvl߫2?<[b?R?-_ab꿼00(o!?G$"(p@EֿN{?Exc?(©\?=5 }@PK!~Casymw_db21_42_md.npyNUMPYv{'descr': '8< տڸ0|j%q?M ܿ0? ڿHq>{r⿆+r??q9 ۩?Cp,'?Hr"w/U PK!ƋFasymw_db21_42_ma_pywtCoeffs.npyNUMPYv{'descr': 'v;ޫ2?Ճb?vȂR?^*b2V0(n o!? Qo@Ei򚲲N{?9EQwc?a_\?!6 }@PK!Jasymw_db21_42_md_pywtCoeffs.npyNUMPYv{'descr': '? տ礰ڸ࿋|5&q? ܿ? ڿaH7s>7rߧ+r?g-?r9n ۩?Wp,'?Hr2/U PK!ëWzpd_db21_43_ma.npyNUMPYv{'descr': 'l4DUit;naF>b՛7? Z2] 7=?0b_>?-cBwٿ&{?v <˘?O>גſτ&?+s7տ=1?ѷտ&j4t=țl3??. o=ҿ1Κ? ' iy.?4^iJ+m?O[񿋯 h ?7XE뿸*]G; 6}Ke?Å{?N^9Dz$?(u??1=翍Y?øn!?:6v-V[{HB;PK!0$zpd_db21_43_md.npyNUMPYv{'descr': 'Xi Խ?4ja|?X{ п֏on}?.?W72@Y;3r?4[, i?n?+>{J?rɿ ?b c_?9џwe띈?; rjaпe|?=ڻ .c:?+igM@?(f$ SZA?ex;m^>+sG>,qyM>) u>|Yz$5أսPK!2zpd_db21_43_ma_pywtCoeffs.npyNUMPYv{'descr': ''4D(TitmaF>cbқ7?Z2Y 7=?b_>? cBwӿ&{?R h˘?#/>גſu%?r7տ<1?ܱտҿi4ț%l3?u- Њ=ҿ1Κ?' vx.?яiJ+m?m# h ?"6XE뿠\GI:5}Ke?lÅ{?8]9D$?Y'u??D1=翎YY?2!n!?Av-zHB;PK!0zpd_db21_43_md_pywtCoeffs.npyNUMPYv{'descr': 'q~py=) u>Yz$p:5أսPK!Qۏsp0_db21_43_ma.npyNUMPYv{'descr': '/!e5A]E3sÃ$'u!YYMUTq8>1Rd8 ܦ+l3?9 濮,Bҿ?דM O'L.?Cw$:nPl?H:?'o,뿰-OE#uL?sXe 4?P6?V'3鿝J?LM$#r73%PK!sp0_db21_43_md.npyNUMPYv{'descr': 'ۿO}?Qv~1G kwOPy=h?| ?߶gϿN3N~M hU{?#%(2῭m?ߺFi?"R?+>{J?Ohɿ|D?VNms/?ghq$g?SտmMW?'MOIi ?Cb䟿|er?k^8bG_>'?<q?o>4\͔>AG>fTT݉PK!Psp0_db21_43_ma_pywtCoeffs.npyNUMPYv{'descr': '1d8 ,+%l3?|G8 濬 ,BҿzA?X+M ~\&L.?C'9nPl?CH?$n,,O+'tL?OԉsXe/4?K4?z+W'3h?֩$Q#q73%PK!]tbsp0_db21_43_md_pywtCoeffs.npyNUMPYv{'descr': 'ۿ^|}?u~0G O{{x=h?ܚ ?gϿ3M~M H{?^%(2ῼm? ߺki?Q? ;{J?bhɿUC?ћNhs/?oq迭)$g?o=SտlMW?xMئi ?b䟿 dr?^8b}>'?"q?%o4u>.S2@AG>Z@!1>Siaӿ@4,k=忱_/?0dA]俍ީ]ؿ~w`?VùOa?kC??n󿽑@gHl3?9 濂xrFҿ#+|?9y 5%(?3 |){%k?Wf)1 ?bwjV]Bzg?N?>8WiQgg@[pm:IjT?`8⿫ 6?BJ4~Կ6ۿPK!%sym_db21_43_md.npyNUMPYv{'descr': 'U{Ys?%?7" ϿE ,f!?۳#2껫l?ܻ(ɺui?yM?+>{J?Ohɿj6?BI8gkh P @9j^w=?JZv3eRGC,Lq?6u;b;PdX2?%ޒ-9R2? A?Qaӿ4,k=/?dA] ]ؿXv`?^Oa?DC$?n?gH%l3?|G8 濂qFҿQ{? ($(?Q|)U%k?[f=A1 ?ubwjXH]Bg?=N?nVifg@x8pmJjT?`8g 6?4~Կ26ۿPK!'sym_db21_43_md_pywtCoeffs.npyNUMPYv{'descr': '+ƛ@,e1꿶I')?>O?Qla d0?D?Q " "PK!xdЫsymw_db21_43_md.npyNUMPYv{'descr': '{J?Cv]ɿ)"?ʧ$X|4?F6[?7ڴ?w3O{@xGڿ?ʱ$̿ ?Va?n 5 T!ÿOX%]?L骓d+)ZοDVXF\e/'6?]PK!symw_db21_43_ma_pywtCoeffs.npyNUMPYv{'descr': 'O?hka T0? ?j "e7 "PK!symw_db21_43_md_pywtCoeffs.npyNUMPYv{'descr': '%!h»kJWt#?렝ڕ?wCD짵W?tGd2P"뭫?PK!sIoppd_db21_43_md.npyNUMPYv{'descr': 'ȭWJI?ͽV?3"пZLw?b!2Ԃn?Mh(7i?d?+>{J?L8ɿ/OŕL?V5<+l?^jL=Y%٨?rQᅵ2?nƻS?A2Ŗ?/Vտk3Fnts#* 俊S?#r?/ Ʒ6^4=?YWGE:v ŏ?P[HTPK!ppd_db21_43_ma_pywtCoeffs.npyNUMPYv{'descr': '3?1{ \`i{J?[;t6ɿ%\B;?dTe,?"ۯ~,G?.Eۿ$Kչ?'W¿rxi1?Z+I^1a?}R?,YI,/?(ʥC#̈́> J> ٦iz}ߢ+PK!0sp1_db21_43_ma_pywtCoeffs.npyNUMPYv{'descr': '3?o{ oi<꿯ހ(]e?@Ҳ? 1 _ ?OCP#UBc^1PK!1sp1_db21_43_md_pywtCoeffs.npyNUMPYv{'descr': 'mJ> pئig~72L{J?Ohɿ;J?5HJ?gI3}?wZx1?ݿ}fP=?[~\0Qd0PK!500per_db21_43_ma_pywtCoeffs.npyNUMPYv{'descr': '?OoWQ7l3?m# (g4ҿ7}?B "A?kD@o?^  ?U: 1]b?t0x!\84jT?HYP|?K3x`J(?!|#q?,?PK!asym_db21_43_md.npyNUMPYv{'descr': '{J?@{/ɿ'U?1HN네? 6?wD?E!?'D"?r9qJ0L?`d?~ܠxK1z?i;:J +?O :ҿE;ݿCYIdzir?Q 1PK!Tsasym_db21_43_ma_pywtCoeffs.npyNUMPYv{'descr': '?ⵞ6P7%l3?" &ȣ4ҿ*}?ZB h"A? k@o?  ?PU: 1]b?$0x8M#jT?gXP|?wV(?قq?,?PK!"+asym_db21_43_md_pywtCoeffs.npyNUMPYv{'descr': '{/ɿU?[1HNXӯ네?^6?xD? ?ĬC"?*r9qKr,L?\d?(Z۠h1z?t::ć*?Pʔ :ҿT`E;ݿXDNv[s,GQU3 /77D-XS|hإ=rUnL֫dT:@4VNKP bG&ڤCPl3?|` 濨֡UҿCQ?t ӅU$?tB9(g?= )jiQ? rW{G?BUm+?Z{hwm}>B?e?5BOؿA0Mw?X9WeXW?PK!^asymw_db21_43_md.npyNUMPYv{'descr': '{J?[;t6ɿjq_?5BZ?F/? ?UcbS!s?&p4+cȿ-.˝?0?,[?l>\ O?f?;AdF@b5*'?ɼ迕]?PK!Dasymw_db21_43_ma_pywtCoeffs.npyNUMPYv{'descr': 'v[ʶ,Gϡ-3 /s7D-Xhإus=rTn=)d|T:UGJPG&tNBP%l3?T_ 濦7UҿiQ?: U$?QS(g?1V(;iQ?ri rd{gG? Tm+?][{hw Z{>B?5?M`Oؿ`Mw?X9XWPK!7<asymw_db21_43_md_pywtCoeffs.npyNUMPYv{'descr': 'wv:>o=>iNF;ㅃ9< -?Ϛ/7ЈQbk?CMl?}&'⩅ fN;*;)v ?b/74ڕH?d'%DԿPe?RPVų;ÿ'?ԭGϿnB?Y?;!+?Hc`7?A !?1>cjٿ}nbTU3#o?@/2+0R ?m_?S 5?h2~ڿ5H@G+1?׫?|a kDz NY^rPK!Ǜzpd_db22_44_md.npyNUMPYv{'descr': 'd?RSE${?δx>6拆Ӿ| >v€ׁ+&>@J"=PK!Wzpd_db22_44_ma_pywtCoeffs.npyNUMPYv{'descr': '26rv:>ET j=>pF;,߅9< -? [*7ЈQ|bk? M?K '⩅(;*@} ?4/4!H?V%DԿge?qPV;ÿ$?b GϿv)nB??@!+?.Cc`7?!?.m;cjٿkbT忄<,#o?/2,R ?_?=\ f[?S[e~ڿ<H@J }+1?r?Xa hDzjNY^rPK!)Izpd_db22_44_md_pywtCoeffs.npyNUMPYv{'descr': 'd?PNSEh{?贀x>⋆Ӿ >v€-Ӂ+&>H^D"=PK!Ts7sp0_db22_44_ma.npyNUMPYv{'descr': 'Pe=$?h}ῢp߭ۿOp! >۲^ľCp&Y? ! oXD}0J?L&@e?\ʨ?P/C)7?|; mvicQ?jS:* d>!gK>j$$A¾^! >t9;@I'nPK!@Fsp0_db22_44_ma_pywtCoeffs.npyNUMPYv{'descr': '\&yS"p?|`+%?c?%&ךC7e?:;ký޿Jc<DU?M$X?VNx濂w3،PK!T!@sp0_db22_44_md_pywtCoeffs.npyNUMPYv{'descr': 'm&UտϠm?,]:gdѿ4<ֿiQ1VL!ph7 ƫB?>Pe?$?}߭ۿ/O[# >۲|þCp&Y? oX,\0J?[#@e?K\go?/9)7?] m/acQ?Ů:*U: d>dK>0$A¾! >8*;B@遲I%nPK!asym_db22_44_ma.npyNUMPYv{'descr': 'ᅥ] ׿mQu?[7e׻?Þ2oQ3K?dؓ&m׿,Y"??;#ԫ?=T RPN?ԭGϿY5mB?e?Kŵ+?UY_7?cd?jٿ93S0GW?.(9E+?*PM?_[/ ?=Ի~𿑙\uTIwҿW^uP?P@m߽?E<%ta\\b?PK!*ksym_db22_44_md.npyNUMPYv{'descr': 'gL?H^7࿊v8D?faSe(%?t}ῢp߭ۿr P)Wj?4]{K?,?LSGf?JYؿV[?v%пti?=|D?^ ?Nc?Q/r?@?z wTP运z= IiV#NX߿\PK!֭lsym_db22_44_ma_pywtCoeffs.npyNUMPYv{'descr': 'IwҿXXuP?q2m߽?tSIZ\b?PK!hpsym_db22_44_md_pywtCoeffs.npyNUMPYv{'descr': 'SPK!Zsymw_db22_44_ma.npyNUMPYv{'descr': '~A,D[߿ ̐ש ϗʣѿN?R_̿AJZ ?!g&=/K¿źPex/L&_uпz?s?p'?=ÿhx?u'PK!symw_db22_44_ma_pywtCoeffs.npyNUMPYv{'descr': '?hٿnu3?<&U[@Ɯ^Ϳ#1LSϣ?\lh;?1?0O?ỖӚ\?+ ӿ$F) ?x~z!yѿf]:ֿ=&L̊67L`K_?) E\eI%?R)}߭ۿ PCT迳Ba~A㿟[߿9ש#ʣѿ. N?_̿Q:Z ?lH $=8P¿EMexܶH&uп?: s?'?H$!=ÿax?4'PK!.ppd_db22_44_ma.npyNUMPYv{'descr': '>HzDlTOyѿ}U9ֿBEiLῷy7OW?]Ye$T%?=c}߭ۿ"'翯?Ksu![?(zwV?;;/yf?1/i?FI?k?rmzL?`:-XӿQDŽ[?>>HzDlTOyѿ}U9ֿBEiLῷy7OW?]Ye$T%?=c}PK!Gs>sp1_db22_44_ma.npyNUMPYv{'descr': '@X,5@E/@bHa@?\w4VN?ԭGϿlmB?X?_´+?>_7? )?!ܱ}jٿ\3S,Fd?ɇ4uߪ%?Sc?%q%"c?xmHFa޿8߿Fe?ӽx~8?eYӸ>) 7υ'sPK!sp1_db22_44_md.npyNUMPYv{'descr': ']>.ې;<ΣQ>(dB->DYPK!*_bsp1_db22_44_ma_pywtCoeffs.npyNUMPYv{'descr': '@c/,5@BIzE/@ta@4?t4VN?b GϿmB?(?6Ŵ+?9_7?)?}jٿ0Sp?d?$4Pߪ%? Sc?m"c?/SmTj޿@߿|ce?$x~8?v^Ӹ* 7='sPK!.sp1_db22_44_md_pywtCoeffs.npyNUMPYv{'descr': '5Lo?]֝F?B9?Ч}u?xA?B=wտfU?ars77Iѿ-DֿdKij7࿘7-?F@ef.$?~߭ۿw4|P~3dm9m(e?37L'?\Y?)K0LWP?^eQEY>;+rΣQ>(C->r A@iW=C??^!?@p+S?nʤQuG@?S+?U$2&?z?4$~?{~DοPdyUgHȿT$;ѿTvep鿺7>@PK!+00per_db22_44_md.npyNUMPYv{'descr': '{]iFͿXx^IOu\'?+?.v?#ši?8kNX??PK!C asym_db22_44_ma_pywtCoeffs.npyNUMPYv{'descr': 'n%]? ??Ω7?R?R ?-aF6Կ#C? * k^@'kѿM<ֿLELWl77/]uV?`We[$?L~Z}߭ۿ12D(ed? 㣻?DYzS࿴xq:&y?%Ǽ?7b ԿE{oiFͿqx>LIuW'??y?Jši?@[NX?2?PK!8vasymw_db22_44_ma.npyNUMPYv{'descr': '1@&JY?=Z@?b GϿ>mB?XQ??;2+?&M_7? m?jٿ1R"U ?FD{S?{D :}?T0D?ׯ tZϻb߿ȃ۬޿{ $? L&?8{ÿץ\[&tPK![asymw_db22_44_md_pywtCoeffs.npyNUMPYv{'descr': '+'??2vK@$QC׿z3ʔ?.E yS'PѿhO?ֿ4zC#>_y1Y|^0 Q Iά??U24amC(cP|?szwb?8w9۷,C?2qǿD9w?K Aۿ p?t oVSYd?<6R!ȿn+J|G/?vV_?#|rmq^֠’ӿw"A?jFvQM?o1ދDt P'z?h?V+{΂"?vJ M H)uտ:5daX̔+f ضyz?dp[C?YzyFPK!A}zpd_db22_45_md.npyNUMPYv{'descr': 'Vr磃q>,c} ʐڽZ8+׸=PK!wzpd_db22_45_ma_pywtCoeffs.npyNUMPYv{'descr': 'dz\>#>u1ϕ{^0 hHά??8a"(cP|?;f zwb?xw9,C? 2qǿ"w?  Aۿ6p?J|IJG/?vV_?V|rq^ߞ’ӿA?jakQM?E2ދD>O'z?zm[? +{d~"? M 쿾D)uտ؊5dXH+f ض|z?ep[C?vUzyFPK!0zpd_db22_45_md_pywtCoeffs.npyNUMPYv{'descr': 'V ~n磃q>L]}|{ʐڽǹ+׸=PK!sp0_db22_45_ma.npyNUMPYv{'descr': 'RZ.ֿú {/rae 6ÿv!y пa;Nsǿl 5HjrE(4ۿJH%+,ӿ4E? =N*@2R?e=,]?D^Q?\[?k*B?'M̱>:l?tMۿou?q7RFp?T6t^/pfU?h9:E_\Ӯs?nˌSWGGfQ1?`{E侄H?;쾩0d>yE'OWr>vf2k}hsC,PK!usp0_db22_45_ma_pywtCoeffs.npyNUMPYv{'descr': 'J|jG/?*BvV_?|a}r(`o^{t’ӿ*w?7!Pi>LyM?Ya-D俰:x?b9?sFZ!|~?õ~  տS7B̙u%-oL1kD<@sݘg_`PK!ysp0_db22_45_md_pywtCoeffs.npyNUMPYv{'descr': 'V.ֿS ῝r a 6ÿy п^;+Nsǿ5H72E\4ۿ HG'+,ӿ\E?@N1d*e2R?=,ⷒ?PVQ?=\迮?٦)B?\J̱~3l?pMۿ}4u?Rj7XUFp?*6t^ zfU?,:Eܻ\Ӯs?{ˌSW{fQ1?%~E.pC?;쾬[,d>#EPWr>B]2kI򵕬8DN$?\?PK!)sym_db22_45_ma_pywtCoeffs.npyNUMPYv{'descr': 'J|jG/?2vV_?{}r7^//S뾒ӿ@y?Kf e.wM?XŜFL7h7?vp?MW[/^|? ySXhuCٿUX s$?m\?PK!cisymw_db22_45_ma.npyNUMPYv{'descr': '?_-R1v?B}cz&D?wF? R,AڈпvkX?BP?h?G+򿟄 bؿO ?)uU?i=.{w3?NBǿn+J|lG/?*vV_?5wr$l^TĒӿZLwŹ?"}%iR?TOLL?? 6DKI?A蕁ƿ|(,P9:ot&~i2?_.ZĿXb=5PK!$dsymw_db22_45_md.npyNUMPYv{'descr': 'B0Y+Mǿ 7`Ub޿zܿ£1E_fh:ÿHKE"2l ?TB*ۿkecҬӿĵ?&(:0la#/R?+񟎅?e}Q?\迣 c}?3?#>:%=?z\?: 1t}?YV?_61?cv|῏Y#'NSz@Jz2T)H;p࿕zqtwkKb/=pLws?PK!*bsymw_db22_45_ma_pywtCoeffs.npyNUMPYv{'descr': '?E(R1v?"c9EC?F?/ R,fوп{3pkX?SaP?ih?'*Z=bؿJO ?$!U?=\w3?!Bǿ>J|7G/?HvV_?60wrg^]ĒӿyCwŹ?^}?^R?OL俬?m?6, KI?UApPƿah(9:cʪt&ei2?m.ZĿX18_=5PK!1,symw_db22_45_md_pywtCoeffs.npyNUMPYv{'descr': 'v =?uz\?R1~!}?VV?61:?g ^v|Ὴ)'NSz@8Cz2~elu'O翑'FaZ'm ?ZY{ӿKu ?tFSY?14?$RäoݿęJ :2(eLB?:+pA?C%ȿn+J|G/?$xV_?nKdžrrxb^"9ӿ,H?c%O.G?4<俰\1_?A$\N?pAoq0?)kflsJ:޿rINn߿cjII Fɾ῁xǿl?KPK! ppd_db22_45_md.npyNUMPYv{'descr': 'lu#OϼF'm ?{ӿt ?qF{SY?-4%?0RиoݿęJ2㿆_L7?\:+򿛖v?C%ȿ>J|ӬG/?6 xV_?&†rb^_7ӿJ1#H?kل%O$G?<0L1_?:\N?/xA0?wktggsJ:޿DNn߿yeI FJ}ӡxǿN)l? KPK!B/Uppd_db22_45_md_pywtCoeffs.npyNUMPYv{'descr': '&maPK!U sp1_db22_45_md.npyNUMPYv{'descr': 'BB[ Uf1>Qz=LPK!@sp1_db22_45_ma_pywtCoeffs.npyNUMPYv{'descr': 'J|kG/?JwV_?r=P^%zTÒӿK?5&cb}aPK!J~Qsp1_db22_45_md_pywtCoeffs.npyNUMPYv{'descr': '& B*ܑU,1>ig9=8sV?@_rI޿uͿu?K rV1Ϳ*t?,RZ:llut=!Wj6GѫЄY ?2nӿӭF?W8|m,DRd7?+xPK!Jd|88per_db22_45_md.npyNUMPYv{'descr': 'E?!=?!jX?x"ۿTJ ?wK?տ$yT?>2?PK!388per_db22_45_ma_pywtCoeffs.npyNUMPYv{'descr': '$1\ܿPK!٥#asym_db22_45_ma_pywtCoeffs.npyNUMPYv{'descr': 'J|*G/? fvV_?6H|rc^[-ƒӿ?2X pPM?zBx7_?O9?Dq)杗? cD5ѿ\YmIKp'YFw̎LܷwajصJ?PK!M"Tasym_db22_45_md_pywtCoeffs.npyNUMPYv{'descr': 'cɢ?&>XA2V잆Jıfm8w?DؿN࿗O4?ѿѾcΙк_pڿW4jVUӿ3v?Ufn翮s% -R?nL+"&?6Q?=\?+2e*?GBtbC|?Tp"?UG֐?6%wƗF?i۱.#(fĥY˿|r0Só?[Ċ?ȁN ]Ŀ}u(IӾxcf?uٓ>$ῧ\ܿPK!asymw_db22_45_ma.npyNUMPYv{'descr': 'ϐv lA({I $DF|bS!J u˒xJ? " = S!a;g޿CgI rF.@_U?yʿn+J|ѿG/?QwV_?zIr@^O^UӿUzj?jU)H??DbZ<俐j\\?T?fE)iRˮ?)7E~R-lhv࿆'ܿ7X |7TfH:Ui࿵bV?#Զ\vD@PK!Qddasymw_db22_45_md.npyNUMPYv{'descr': '& |*@ӿ-?SVA翍ݎ DY6R?=A~,{▅?#X?Q?\5f"у?OxJ|kG/? MwV_?%r-ZO^ Uӿrtqj?+j䈜UH?DbZ<俴Z\\?T?)iǮ?)7E&lhvY-ܿ |7f}UibV? ԶK)YvD@PK!Masymw_db22_45_md_pywtCoeffs.npyNUMPYv{'descr': ';VhL6L>Xh 쳹*VDo}?!3&0TRSE?g~rYO+Q9x?+N|?>?pP93"?#1ѿZ?- 6ῼq5_?¢GZu?ezuJOi{pܩyY>941k*S>e*UPK!Fgzpd_db23_46_ma_pywtCoeffs.npyNUMPYv{'descr': 'zUh)6L>Sh 䱹*⾙Fo}?F/&0`RSE?nIrYO`+}9x?̺N>?7293"?31ѿo}Z?/ 6貤5_?¢ZGZu?0czIOj;{pjyY>/841R>)*FUPK!߅sp0_db23_46_ma.npyNUMPYv{'descr': '1[iKC5޿DF?%~?pv1O)?ڼ$?HA}?H?#`bMZR?6z俢AW,y[W?׈޿K??Rwƿ̃"A ?M=w广-x&I?J)X킦:j`#?DR̵a>g?zqnVATS-ݾkth?™Nʶ54>~mhFg7v>=PK!|Csp0_db23_46_ma_pywtCoeffs.npyNUMPYv{'descr': '2ZiKlC5޿%ZDF??Ev+O)?$?}?]H?`bB1MZR?xUU,쿬\W?~׈޿\I??{ƿrȽ"A ?@P=w广YL|&I?-aM킦j`#?.4ǵa>g?RQqnVAM"S-ݾf?:NԲ54>׳m>F0<v>ht%=PK![sym_db23_46_ma.npyNUMPYv{'descr': 'T?P{rj?P BX?T?p1'?⊿! <jo4߄zvo}1xf?5!X,v`?ezv.Ozpv=ٜ7*ݿPK!ୠsym_db23_46_md.npyNUMPYv{'descr': '?,‰޿}V(?\ԽcrU4tX+޿~cD?H,m/(`R?75Luڿ!ȉK࿼?Me>?)?´Ewѿ$?$"??n?PK!&#sym_db23_46_ma_pywtCoeffs.npyNUMPYv{'descr': 'T?M{rj? BX? T?E1'?bc! zjo4MMv$1f? X-v`?0cz-O񿋋zp v%mп'm~y?Jz?ٛ?3Ք3迲P?4GwP#So쿵 &RkMm?-<濧 PLIil㿸_ua?q@?ǟ>c0=D7*ݿPK!; sym_db23_46_md_pywtCoeffs.npyNUMPYv{'descr': '?e,/lj޿s?ݻ)?Ewѿ$?3$"?V2?P?PK!Ssymw_db23_46_ma.npyNUMPYv{'descr': 'B)?ccjV?4V ?^ I?o`bMZR?<2fusv꿛8e?6Xgu4'?ez5 AO[zp,6Xgu4'?PK!'ٍppd_db23_46_md.npyNUMPYv{'descr': 'O޿3B}A(v?cjfZ`s^ݿLG:M)3Ƥ?FI75eS4X޿NۯJ?fK?d0w)?`6R?c5?cF?|`bMZR? )fd٪kQ6N?48>O޿3B}A(v?cjfZ`s^ݿLG:M)3Ƥ?FI75eS4X޿NۯJ?fK?d0w)?`6R?c5?cF?|`bPK!4 vppd_db23_46_ma_pywtCoeffs.npyNUMPYv{'descr': 'O޿iB}A(_?dKf `s^ݿD*:MDƤ?LH750dSX޿NۯJ?K?30w)? R?<5? fF?H`bB1MZR? )feתk|6N?u41>O޿iB}A(_?dKf `s^ݿD*:MDƤ?LH750dSX޿NۯJ?K?30w)? R?<5? fF?H`bPK!Ѧnsp1_db23_46_ma.npyNUMPYv{'descr': 'K':yh5ĉ1(nHb":e30 L1eR!?ez"OW{pM84?%jr-S?) "%6&E?\9>7ԾNʭ>w爌b*,=F9PK!|Ssp1_db23_46_ma_pywtCoeffs.npyNUMPYv{'descr': 'mK':yh541b(CHb" L14eR!?0cz&!OU{p80?-?kg(X?aRQ=X{?pn.俥ku\ʿ6KؿzYX??0p?g&9ܮhs!PK!ssp1_db23_46_md_pywtCoeffs.npyNUMPYv{'descr': '9Ʒ??B?ҌA?]`bB1MZR?G\@ƸK?4Su7׿GU`(?Bab3ÿ 1?;ߧP泿#7Cʮ?y/:%>4?Vr]-S?ZI %2&r?\9>=#Ծ ʭ>(bE*C-=\6Xgu4'?ez5 AO[zp,O޿3B}A(v?cjfZ`s^ݿLG:M)3Ƥ?PK!688per_db23_46_ma_pywtCoeffs.npyNUMPYv{'descr': 'O޿iB}A(_?dKf `s^ݿD*:MDƤ?PK!SWRasym_db23_46_ma.npyNUMPYv{'descr': 'z4e,>Y\H޿vH?#?W!w])?Q?],j+?l&G?m`bMZR?suՁW?}f?X_}?Υk~ȿ##;c?" ;?eпRǫ ٿKj$ſ (ah? Hw5?<"? o?aQQ?wՉǚ<΀C?T|[]&w?KҿPK!-ډasymw_db23_46_ma_pywtCoeffs.npyNUMPYv{'descr': 'DWp%/Ͳ;[/'cY246;Z NS^jx޿r2]Pa A翇o _r)?0cz"O |p}teC, 쿫I?߭]\ﰿ~;YeF% }KڿYF;7ne,-\H޿_vH?#?R!wѴ])?*) ?j+?(G?<`bB1MZR?RuhW?}f?Oj_}?o~ȿU(#;c?;?e п}ǫ ٿ.h$ſ (ah?Oͳw5?%!?w#o?(bQQ?舀翡.<΀C?q٧w 'w? KҿPK!u.ezpd_db23_47_ma.npyNUMPYv{'descr': '_\t@2P$>Za>Oa??NɫT?sX?nxiknGv?eݱn`39ļq(?ט-@^{?gvkٿ<ڤ?ōJd9Rt?P+I{Ɉ?lR-krχ5uѿay,?r( ƿ/5(?^?J-?}3?J3@H ?o ˷H >?'CNt￷wkp*o?d}tl㿑`0{ ;?N&:k?#DS?Ƹn (?y=?PK! zpd_db23_47_md.npyNUMPYv{'descr': 'lB^> `>)7 lEEa%x>{@]M/>1G 7*X=4@Ǐ=PK!RSzpd_db23_47_ma_pywtCoeffs.npyNUMPYv{'descr': '>\t 1P$>[a>a ?(T?|X?aik`Gv?{nk.(?-bU{?Rvkٿڤ?9UǍJ9Rt?W{Ɉ?Rĵ,krY5uѿ8y!,?% ƿw6(??ӵ-?e}3? 3@H ?t ˷qH >?#&CCNtjp*o? tl㿣F`0{E# ;?q:k?DS?an (?P=?PK!,zpd_db23_47_md_pywtCoeffs.npyNUMPYv{'descr': '*?Tj&?jJnRyH?RRMO}CJ/?!%~PDYsSOa?d&"ֿ;SD?Md%U?yA sB?p0ț?Cv?Vts BU?)=(I-gDU|>#B^>b`>  lHDa%x>>]M/>1nG 7* X=}?Ǐ=PK!$hsp0_db23_47_ma.npyNUMPYv{'descr': 'aZ?I6`&ʱoe?''A𿭡?\|/j׿LM@֏?u6JU?T.5X^2?-jW "?X4JnA9?9IRMBJ/)? ܨ!b+G?鈿۪C?pR`ڿǍ)?04Mn5?NJQŵ۽dP|?oqF0\?Z7,b?#>~O_>u0>2KpTI>+ iAR>K=+;ؽlKr~_>K;0>2fSI>z iAR>K=#ڻؽ0 `MPK!Zsym_db23_47_ma.npyNUMPYv{'descr': '?R|sA俿 *<\?IlwFU4~ᅦZ{?Lo#2wR'$?f WE?)H |?sΗ?kXHQпPK!cH|sym_db23_47_md.npyNUMPYv{'descr': 'տOog7%@FM?7qk?f4?a?%׿e}ҭG?$`p Y YPŋ?Bj?0\59?T{oT`p`xV:PK!(>sym_db23_47_ma_pywtCoeffs.npyNUMPYv{'descr': '?wsA俿*<\?m~vF]S4~e~{?GLogR'$? WE?|?sΗ?]HQпPK!'sym_db23_47_md_pywtCoeffs.npyNUMPYv{'descr': 'տWOo_s7%@,M?]7qk쿗?1?Âa?>%׿RԭG? `Q Y N Pŋ?-Bj?Ĩ[59?+(|oTkxx!X:PK!Jsymw_db23_47_ma.npyNUMPYv{'descr': 'f ?p]|jj꜀?Vԇ9( ?ug?lRz-kr5uѿ,|˛,?aζƿ7vp?Q. :?Ah?[3? w@ڬ<?d ¿?t2'ivWvg?Y54<ݿapF6?$%X٦?jaG6?ֻ?򝵰`PK!~symw_db23_47_md.npyNUMPYv{'descr': '?Q+@Ml ?o8+?%F\?4Oy?\az??p]|`꜀?SՇ뿷 ?Ou?RV-krX5uѿfu,?hQζƿ p?, :?uc?93? w@D;?l ¿?tW$iqWvg?4<ݿapFp7?X٦?]@6?ǹ?ĵ`PK!#symw_db23_47_md_pywtCoeffs.npyNUMPYv{'descr': 'XɒֿP5)@̹?/,"?=y4?8Kh5Ҁ?49hwMnRџ?RMQFJ/?KLv?p??w6;Ĩ?_򼗦?A?VyC8L(u?c̿#j{dM*"gc2߿,|?(ZKKƚ@fk[?0Ʋ?%qOj7W ܈?F+?M?g&A&nPK!5Šppd_db23_47_ma.npyNUMPYv{'descr': '0?f{PK!y:ppd_db23_47_md.npyNUMPYv{'descr': '3Ԃؿr7K?mt&?ȴ擈;9o&?ͥ\P׿빜_@KM?P+?pbh5h?{4oA[€?PHn<8Y?]2RMT=J/)? *1n!ė n̅? @ܿi?b•}>ȿV)>s?j+O/?֞٪ɟ5m?Ff2W)^?X~" \r?Xu+TH/]Gr> VzpQU^0"#>yڼ=( ePK!sp1_db23_47_ma_pywtCoeffs.npyNUMPYv{'descr': 'J/?+K*!ėMm̅?z @ܿ(L?}>ȿsDs?*O8/?ģ٪!5m? f2<)^?h*U~"\r?mb,THlr>S VzQU_dM"#>$0= 6JȧPK![@@per_db23_47_ma.npyNUMPYv{'descr': 'J/)? ܨ!Ҧc^h? D߿K3¿9=}̿lgs?t!3p;B@?~j:&!x?KF׿PK!$% @@per_db23_47_ma_pywtCoeffs.npyNUMPYv{'descr': 'ƿ.B??'Ĭ?X?r5?i)@e#}3? t![u}""@?ٺOCgj?+`v7濒>' ^)?Z'?U?#WcpT?PK!Ok*asym_db23_47_md.npyNUMPYv{'descr': '5?md)@]|3?0%[u} @?׳+Cgj}?gv7W0' M)?+Z'?WU?WpT?PK!le{=asym_db23_47_md_pywtCoeffs.npyNUMPYv{'descr': 'RMDJ/?=\}hms?_0?&8?zOL ?G.?԰ ?5K_ܿA/*?$@tvfIϿ#\{V@?O.*˳ؿ8a?Z Z @M΋Ŀ@?Ajƿq59꿁F5oT?z?;:?PK!NGasymw_db23_47_ma.npyNUMPYv{'descr': 'J/?+K*o+jmqY?X :b?@:ɴD3?|f?)Dd Dƾ_#/W>*K?0erls(?dEцEW?oKR y)?(Dwÿݔ~qlP?"R_[ҿH@?=YɈ62?\?h[?zS??@e@AK?2?W-ݿb?3OWXu] J3 *?3x? ׆Kcٿ'mAnݿ{A"׷?9GaG6m?UĠrC_i?m%K~~v|Ue?3GG6,nyO"?1&H^;x>]>+x&wAٽPK!Uzpd_db24_48_ma_pywtCoeffs.npyNUMPYv{'descr': '#Y Dƾ"*/W>4_K?-l)i(?KEцUW?JRB)?jwÿcqlP?7u[ҿd@?nCYG҈62?4?rh?V;S?E@e@KK?AW-ݿ1nb?tOH%uR3)*?f?XKcٿMmAnݿLkۿTΨ?˖Ϳ&oS?pfrHIk?܅?.UӪ.w?6gk M?W؏[?*q?PK!v~yzpd_db24_48_md_pywtCoeffs.npyNUMPYv{'descr': 'p?)L?1+]1?vwA?/ʤЃȿ@y\TAdNYPr򿙊P?)`⿿'DE?6BŕiϹ AAuh^;>]>3xLAٽPK!WOsp0_db24_48_ma.npyNUMPYv{'descr': 'I?;?zS?B@e@pyK?Jsq-ݿ8b|c?7W)C82&,\(?e??/ٿ'dݿy>ܿZ9D.`?"[*8ȿ6W?J+_9l?쌷?{ʿn?3X?ʪϚ݇?PK!Qsp0_db24_48_md.npyNUMPYv{'descr': '!8?*ؔ*0ᚗ,>CCfc|j%E(#Ū>-S`=PK!sp0_db24_48_ma_pywtCoeffs.npyNUMPYv{'descr': 'I??V;S?I@e@6K?Y5q-ݿKo|c?%\V48#:&ͦ1\(?\e?G/ٿ6dݿ >ܿD.cq?fp8ȿÌW?S_l?& ?*Z{ʿn?^?BϚ݇?PK!vx?sp0_db24_48_md_pywtCoeffs.npyNUMPYv{'descr': ' !@8?6*,>ьBfcy%E[*Ū>Sh`=PK!ڿsym_db24_48_ma.npyNUMPYv{'descr': 'pd\mֿjcNcK}̿CڂJ?5}m׿˓첃}?.gԾ߿=h' u1?!S ?cA5?ܿ;?$ ^o?@y?o@Lճ?\?zS?q C@e@pHK?~-ݿ{c?E ic)Rb6ovЃuF4&? A?hQٿ `ݿK9)gܿZvĪnZ~-?ҿ6R?Af?٧I?Жbe?|#=?mKL2;?PK!}))sym_db24_48_md.npyNUMPYv{'descr': 'Ub=￀Pǿ4翚?U?r?|d\mֿXncN濑U}̿dC彈J?t}m׿,ಃ}?zԾ߿B' 1?.! ?_5?K;?6^o?bCy?g @Uճ?җ\?V;S?&XI@e@}RK?!~-ݿ5 Ŏc?3JncC/6Β~Ѓ)rF4&?gH?hQٿM{nݿNJ)gܿxĪ ܫ~-?aҿgR?rH0f?ոI?be?{q#=?&>L;?PK!AEsym_db24_48_md_pywtCoeffs.npyNUMPYv{'descr': 'YQs=?|Pǿ;Dz?t/U???PK!8rsymw_db24_48_ma.npyNUMPYv{'descr': ' K{ȿJùүx~`T'IYxrpP?0)`;DE?6BŕiQ1Sr5㿊mNSHsmH?vtԿ[Bt?M"Y?_n d쿳!!?%nr, Vb&z -Bج,?tҿΐ?|L?\f?p5W?_bpw9eDPK!yppd_db24_48_ma.npyNUMPYv{'descr': 'UM?:)E2 ? ?"j.H?F\?;:?ےQ<ȿt&`T?JYD#Kr򿏃GP?R)`DE?I(ŕiofh.$? X &]6lsh`,>UM?:)E2 ? ?"j.H?F\?;:?ےQ<ȿt&`T?JYD#Kr򿏃GP?R)`DE?PK!C@^ppd_db24_48_ma_pywtCoeffs.npyNUMPYv{'descr': '(M?2I?D qZC_c,@)t?1?V;S?HI@e@#=K?)цq-ݿxc?V(gєPmK 8(?V?Hٿiܿҿ,ݿ 6S˱<(M?2I?D qZC_c,@)t?1?PK!=F\ppd_db24_48_md_pywtCoeffs.npyNUMPYv{'descr': 'ґ?_ȿ&\TLLYޭ,+rkFP?W)`DE?I(ŕi6y X?^@< y?SeCڿ,}Ec?q}~םп,1?# R?_J*<x?X@N󾂡gᾓK,>>?rF "tEg>͊|7񹾒wO뗾&:6v>1s}215փr XmPK!Esp1_db24_48_ma_pywtCoeffs.npyNUMPYv{'descr': 'd?> xFgV%M'qo(?Mf!?P-Pٿ}ܿf9 ݿ΅hQ9.}?h/DD*?N@e9K?bE_(?Ҹ@\Cf*@PK!=psp1_db24_48_md_pywtCoeffs.npyNUMPYv{'descr': '>?`F "hg>[m7eR뗾6v>ok}2i/0΃4`PK!&1@@per_db24_48_ma.npyNUMPYv{'descr': '>K#{?ۺ9.f$w] ǿPK!$v7@@per_db24_48_md.npyNUMPYv{'descr': '$R:^)>?b>Fm?L5ʧN?$k'}?EW?]zk7F6?\`0d$п@V?ИAW?׏o#V?!tvO%|JFe?M o/^X;6?Ү{`?ҷ?zS?!<@e@:K?1-ݿ~Ep@b?^_<\NaK疄->&/?Y?8C.uٿBݿG7?ۿꑤ92"b8?hf4ƿ?)|Kf㿋(糿SI8?H|kSO`?4t?.Tl3PK!D€masym_db24_48_md.npyNUMPYv{'descr': 'o$ȿ8|-?>$*0^)>?o>Fm?ͧN?}-k'}?EW?Z PKF6?JV0d$пV?ܘAW?\ݏo5oV?h1"O%MFe?Fo/^C6?ú{`??V;S?HmB@e@DK?Y1-ݿ-}@b?d? Ĩ&?N?ȿ bIjdT죧OY -rP?)`iDE?6Bŕi-xe-Jſ'Qqd=?FPA 3?z9R?%ؗ[? haa$?ڗW,3 +c࿍VwIe ?8ؓM?^kQc?t?Ѵ:?mh?pF ԿpFij޿PK!asymw_db24_48_ma.npyNUMPYv{'descr': 'P?PK! .asymw_db24_48_ma_pywtCoeffs.npyNUMPYv{'descr': '}nۯ@F~@a^!r@y@6}@ @6? lH?V;S?6M@e@K?1\-ݿUmd?)d*6nx w8%?"?\B ڿIË{ܿ&ݿ{i뿖Iz?`/'?;CCb㿕ǻh6͌c@?+!B󿵻_*.@j@|٥U@PK!wasymw_db24_48_md_pywtCoeffs.npyNUMPYv{'descr': '-`2zl%7>p97>5С]$A4?ΪtSQk?u?}ca?)4de*򉿯b1??ĚjǿGt?P[ Ί?Q?K⿥7f ˿>?3QQZ"?iYY?S֌Y*?\rqο>-?i]X,|,<Mt?rڼ* sQ?d?q6?qֻ1@UBC?kw;?E?}qK̿9m/ޖ;0#?TpYE?U;ܿʠLFp<4PK!2Mzpd_db24_49_md.npyNUMPYv{'descr': '#˯h?\Dzǿ1:qSCF]v?"ʇT?r?ܧ/S{?4eA?-kG$mzF?&:-8&*2p1?6+7ԿZ?L SG?e৿&^:?t5+LqDh_o@P`? |bv`9s?qWmax-eG?69P&Cl>m2>c`Wa>?&V$I{ly=!=edxU=PK!-wzpd_db24_49_ma_pywtCoeffs.npyNUMPYv{'descr': 'n2%7>X?7>ܘ] A4?tS`Nk?.?})?5߉)4^@71??ªjǿmGt??d bEQ?]P! ` ˿V>?giZ"?wYY?3YN+\rqοD-??jX,M><SIt?A#r@* ^ s/d?ޙi6?1@-wBC?;? ?KyK̿7ޖ;0#?YuYE?t^;ܿ "ʠ0-LFp#<4PK!#zpd_db24_49_md_pywtCoeffs.npyNUMPYv{'descr': '1?O+7Կ\Z?SG?=@0৿n^:?w$i+XkCh[nk@P`?)|n-v`9s?eWma{-eG?'9P&$[Cl>+y2>R, `,aa>N,&V8O{ly=1=〪dxU=PK!rIsp0_db24_49_ma.npyNUMPYv{'descr': '+t?ur:'{j?Z;?re@ǻڅG?X ?І?עV̿wOz/1?bmlcq?shۿC˜4ƿBL]h oPK!h> sp0_db24_49_md.npyNUMPYv{'descr': '1?? W;ZA~v̳nj*~ɿ7,oC0?Zۦj z9d?֊;yAMOǿ*:MYpq?k8s`{9߳JF?!B~71&opl#w>*N yuZ)ר?>ԈTSv|=ҵ=T951??;=`A~̳+|*~ɿ=,oaJ0? jz9d?[֊;MOǿJ:MYF`S?a#?X[(r? 翖,/?^4e򂂇?0_9kG濰vzF?B[-ؘvS?_GT3ӿD|?/ۚ?@ڠ=?(MlFVbV5|?f I{ j>pq?vU8s`+1߳JF?I71&Cvl#w>k y󨾽)ר?>T%ֈT||=0ˊ=iD H$qxZ=?2M?y2%?MW?j*sj/w(3J9IϭD?A[>ycM]ֿ_py?/Ư򿁅+ ?7? ??x"=#=?퀈_mJc/οV2?giZ"?xYY?7`Y^Gwfrqο8?W;,뿊'CSt?ߣr WVta^_|B?^|9=?xɜ@/K&7?a| 8.?ڏ'?>Z-ۿEpFZ?W? Kg$P뿫6?]B?PK!,symw_db24_49_md_pywtCoeffs.npyNUMPYv{'descr': ' ?H,?[9?6w.m2?5\?)ÿ@Ir$טMPK!7,ppd_db24_49_ma.npyNUMPYv{'descr': '?Fq0Ͽ𪍘@?3QQZ"?iYY? YDZrqοt+?Lu,뿺:mt?)Krr -f#旻h?:?#,@fW?wydv?X~e? X?Ȟ":tkO?7>z;߿JF|a?IOi[/ഘ?H?PK!J ppd_db24_49_md.npyNUMPYv{'descr': '[cCq 2qQܿ5-3WpO(@)8;i?=FK@惓{ο  xMzEPK!hA\ppd_db24_49_ma_pywtCoeffs.npyNUMPYv{'descr': '?'M0Ͽ @?giZ"?wYY?jYfZrqο+?Xu,뿊:1t?1Kr{ #Dđh?<:?i?,@ذW?[dv?7e?h X?w%":~O?U;߿,M|a?ĹOiJ8ഘ?bܙ?PK!6ppd_db24_49_md_pywtCoeffs.npyNUMPYv{'descr': 'usp1_db24_49_md.npyNUMPYv{'descr': '˿?←Y2{|? ǿ;\`P{*?툷һ?@M]"r?+/E/@b44ZMp?Ȏ/kG$mzF?&705ᨛ LRIы/?76V ׿.rw?M'_ee~?NPmO?%$?ٵ_3ȓ@ƛ?][6!ntbt?X~]ǚ$>?o*KAk ׾UXb>qٜS(x>w|>eC[L?ptӼPK!sp1_db24_49_ma_pywtCoeffs.npyNUMPYv{'descr': '**}w?ඍ)@oM@?ZT}?4DF?[ʿ%p3BWOW?=xoY?{!=T?{HӇr@n[@PK!8sp1_db24_49_md_pywtCoeffs.npyNUMPYv{'descr': '˿ ƩY@:{|?<,cV?d D_7 ǿn?`P\db*?$1һ?c"r?H;J/j@:4u? :kG濰vzF?&05bZ L/?1V ׿(w?ˎ'e~?:mO?U3$?_3ȓ/yƛ?Q6!,+tbt?~]\ ǚ$>? KAqk ׾g~b>gٜSUZx>zS>b샞ABS}3+n겉zʿ ӟοByT?PK!l]P_HHper_db24_49_md.npyNUMPYv{'descr': 'm[@=t?@rcjl'#Qٖ}3?)ݬ?$u4@B؍?Y?.,m?+ptrƿO[뿙i>]?Hь?FFx?6?ƍPK!|asym_db24_49_md.npyNUMPYv{'descr': 'ut?[rl+_}3?~j!ݬ?4@_J؍? Y?m?CztrƿokW[뿇D]?3ь?FῸex?|6?UȍPK!W7basym_db24_49_md_pywtCoeffs.npyNUMPYv{'descr': 'J?>[?&]OcR?)%}Lǿ#"Zǽ%_rQf4?]&%?ONr?>8/&Q$@u(m3Qd?X0kG$mzF?&705:/Υ?sF?wk),:At-N}2~a?6iߊW?ldh@Es?;uy2?|#R8࿳&zj!??@҉9 .?ц42' \iaÿ?ťr$?ҘM@PK!i]`asymw_db24_49_ma_pywtCoeffs.npyNUMPYv{'descr': 's)ؿ-A߫ǿ?giZ"?5wYY?YbxSrqο"?u,b<7]"zt?g7urD!$20_D%6!1?9?"1./@NQ?fJe?DcB?s,l"-Zt@?D? '9&Ͽ]5?+"̻PK!$asymw_db24_49_md_pywtCoeffs.npyNUMPYv{'descr': 'J?~ Z!?oݶOcR?R }Lǿ\"ZǽK _ry4?5+%?Nr?r>/# $@&r3j?*;kG濰vzF?&05/^K?=soQ?[u),:7N}2翲܂a?m%sߊW?dh@??y2?c#R8࿟X!?Ï�.?@/9ߟ.? 42O\@ÿ?¥r$? טM@PK!;zpd_db25_50_ma.npyNUMPYv{'descr': '*[@U/؇$>eϾ㾱8?M W#"ЈX??UI8V-k?˾{S[?M{Ђ9~?eF>ܝꤿEU?C KkpiX@~GTS5Vk k?!'̿h7TBJH?}տy6*б? c?1ًCaf{?=UyۿM]q?!JUPK!9;rzpd_db25_50_md.npyNUMPYv{'descr': '!Hc%==x.`&?K̝!?gaZoj!-?+Fi俣C0?F)`տxn??AH쿄z?g垿;?HDa_P,liMdh\$>.Og.;>hhPK!9zpd_db25_50_ma_pywtCoeffs.npyNUMPYv{'descr': 'VND[@UTM؇K/$> mϾ8?5 W#t_ X??{8Ve-k?%˾{R[?U䳠=8~?!ݝꤿT? Ke]d[ i\$>SJOg`;> a,3hhPK!8sp0_db25_50_ma.npyNUMPYv{'descr': 'qN*=G?> nꬿl+p?9<F&ѿՋ Ζ?TW?>C'_߿q?UfD4߹]Wdɰ@*<1]n,j@X?/L0̿vK)d? VտKG?IM? I{>v8?a˜ܿg! zz>dPK!6sp0_db25_50_md.npyNUMPYv{'descr': 'y?1Kڿ9E!Hc%=}(!? :܎?jmut?C :?"4ѿDu+? RDݩ?={{͕EfH|?G >:Y#n>Eww$?D^JA(R>2վI >tpD^z..+>*:< ,1JNPK!Djsp0_db25_50_ma_pywtCoeffs.npyNUMPYv{'descr': 'G?^6M?JI{=1:v8?ҧ`˜ܿn!z迨>dPK!Isp0_db25_50_md_pywtCoeffs.npyNUMPYv{'descr': 'H'ww$? _amA(R>z$վ >$D^$..r>M 8>GNPK!Rmsym_db25_50_ma.npyNUMPYv{'descr': 'a;=1ݿo!?Ԫ9?ZV+sUٿyZ?.oogXDF?%p |[dzy?Ww1KڿCAMj?r-݋*IۿT}r?z6U@Ej?i.|?Yvw{ 8d?Rnk? m߿]G?"ig?yS?'x^!XhPK!MNsym_db25_50_ma_pywtCoeffs.npyNUMPYv{'descr': 'wnV_/?Ig3ڿPK!,ksym_db25_50_md_pywtCoeffs.npyNUMPYv{'descr': '|>1ݿ1[p!?YԪ9?$VU,sUٿ[}Z?`0ofDkҹ?? |Sdz#y?U1KڿN2Hc%"T󿒚-M!?#)I?i)в3?i_T1M?8?66>뿂Cj?rs *IۿJ!r?PXr[ťj?e~.|?L˥w{ 7O9d?Znk?Xdm߿me?nig?#b?1y^*XhPK!{3symw_db25_50_ma.npyNUMPYv{'descr': '/]ؿm< 7?% nꬿp?F&ѿL HG͖?ΆW? )_߿?B?d*aW@zl6IZ1翫D_?d=̿x*u%?[)hֿ.ϸ?l<?{L'9j>/]ؿm< 7?%PK!Kppd_db25_50_md.npyNUMPYv{'descr': '; 9#RٿQ?6DL*0?do:|t8{hzy?R1Kڿ"Hc%=wd$?)1?b~Y4}]Z?`YbSk@?A8s?GO? ezLLeDF޿?s +?b>; 9#RٿQ?6DL*0?do:|t8{hzy?R1Kڿ"Hc%PK!E^ppd_db25_50_ma_pywtCoeffs.npyNUMPYv{'descr': ',]ؿ+mw!7?`Dnꬿ q?W!F&ѿӽ) WH͖?5W?#+)_߿? KdrwW@JIZ1翽D_?nd=̿xo;Hu%?x!hֿ.{ϸ?XO?hL':l>,]ؿ+mw!7?`PK!ppd_db25_50_md_pywtCoeffs.npyNUMPYv{'descr': '̻ =\IyJzՌ`i1 5"fOJ.[o? nꬿp?cF&ѿ) c͖?.fW?fG(_߿UrV?CDE$`dUNJ@:yH.VFG]?,oT̿u&;DRH3?+yտsٴ?tؙ?1FTwwΨ?x0߿s翝\ٿ38q?PK!}sp1_db25_50_md.npyNUMPYv{'descr': '~m͆H%wݿ ̷'.?5.?/'E @lXٿbd?2svF!D ?*"f|(4fz\Yy? 1Kڿ'!Hc%=g"?$"?'WHxW?Rῆ@ܓfW?\ѿt"? (P?#TeQ2z?mRk'9)@m.?[~X_j/ip>zT'xӾ0Vx[>ʏҺQ>?: >95*= !.Q=4>1_Tm0m,/a?4.Wu-+,.C*wjZ(kq&uf$l"4&>̻ sizJ@`i:?1 S"DgSc.G?C\Dnꬿvs q?I$F&ѿm ͖?ZfW?kGG(_߿䡤V?1^P;`d'dJ@XyH.|FG]?FgT̿'_;DqH3?ryտ>ۆٴ?Nؙ?MDdFjtΨ?70߿rs^\ٿ28q?PK!Zpsp1_db25_50_md_pywtCoeffs.npyNUMPYv{'descr': '~!NHڔݿ7'.?hI.?dHE Xٿ= e?x|tv "DU٬? 4f| 3fzGy?1Kڿ23Hc%"TΨ"??{'W K}?fW?(hѿ_P"??NP?yr#TH1z?b_mR4'm.?~XGۊ/ip>2'xӾ]x[>>ҺQ>t >vA/*=m;P= v/]ؿm< 7?% nꬿp?F&ѿL HG͖?ΆW? )_߿?B?d*aW@zl6IZ1翫D_?PK!HHper_db25_50_md.npyNUMPYv{'descr': '; 9#RٿQ?6DL*0?do:|t8{hzy?R1Kڿ"Hc%=wd$?)1?b~Y4}]Z?`YbSk@?A8s?GO? ezLLeDF޿?PK! zKHHper_db25_50_ma_pywtCoeffs.npyNUMPYv{'descr': ',]ؿ+mw!7?`Dnꬿ q?W!F&ѿӽ) WH͖?5W?#+)_߿? KdrwW@JIZ1翽D_?PK!KT)HHper_db25_50_md_pywtCoeffs.npyNUMPYv{'descr': ':kb?rs ο='-t ?78w!yr?G= P?y%㡴?PK! asym_db25_50_md.npyNUMPYv{'descr': 'OjbQ̊?,.!}?jg6kxx^? (Xh?PK!qXuasymw_db25_50_ma.npyNUMPYv{'descr': 'I<)ApʧƿKEmm[ۿ ]dL?XzDnꬿm q?F&ѿ2 G͖?wgW?ۙ *_߿?@v hdeAƲ@M@翓8^#l}?nV̿E#`9(0!?ۿ oW?Ǹ?lL߿G8ߜ+?xQf&^w"PK!Zoasymw_db25_50_md_pywtCoeffs.npyNUMPYv{'descr': 'xLjq n6p>zbiGHĝ?isի$ ?"NI?T:ԞpSTWb=?|2ͅ꘿а? 99!A#=?XcWPBNu? ЯP,gXf̖?We?>k?NA:ԍ?7P]_I?GX1?I۱a?Op?4zMH?L{Y+?=/(ٿ\mQ@B__!=W ǏU?ktZοkYB(9` fT @}?>APMsUE?Ŀ}UK?=If?Lpc(*Ol[&1?=R] >}>cC ִC#j>fv2Æ!t=_x=mu7J)L(PK!bXzpd_db25_51_ma_pywtCoeffs.npyNUMPYv{'descr': 'lj q nj$(p>DcG¦Ν?,$0 ?2S]I?8Ġ;Ԟpza=?P΅꘿0а?9!p=?P@lkNu?8\P,gx}f̖?L_?>k?<ԍ?C`P]\m_I?X1?Jja?}:ap?{5H?wU+?C/(ٿ =}Q@L忠*!=WŢ'ǏU?tZο۪zB(E fT @Q?jMῨF?8XQ|m@I%q*?N\O趿o_?RrY?GWAD?O9*оPK!9{}vzpd_db25_51_md_pywtCoeffs.npyNUMPYv{'descr': 'Ŀ K?^f?J7(*O2cڦ&1?،] ^ >K}>,C eC#j>@~v2_!t=n_x=PJUJ)L(PK!OR_sp0_db25_51_ma.npyNUMPYv{'descr': 't ?}Jk&qkPK!Tsp0_db25_51_md.npyNUMPYv{'descr': '?{ u?:9ٿB][_©_?*迏SxY@?D?@ʁB84@u)}ןUڿ}v>=9'?ӟt@5'?Ew ?Nhb ׿+˶FR?m~ `o^ E?V- 49q?(?Ί8/?{/v߿۩:&z?7*ܿnnh?*(+Ŀy\s?J*yc aTyj6iR?R.>;\H-lej6n>Y [4)n}S=XR{N=ݛ\PK!"Asp0_db25_51_ma_pywtCoeffs.npyNUMPYv{'descr': '?X:;?Sq`lv@;&?pM=>s ?5 }JkqkPK!6sp0_db25_51_md_pywtCoeffs.npyNUMPYv{'descr': '?FQ u?[:9ٿ{B]Lݩ_?'N连Y@?'D?u^\ʁB]G@j;IUڿPҤ>=<]9'?*쟜t@,G'?+w ?gh.c ׿FR? `o&E?ޖ-9q? 7?9/?:v߿'M:&z?H*ܿi?`q(+Ŀ"Ǘ\s?)yc#TyiR? -‹.>u[uH-Oj6n>yZ4 TS=H3RN=Ӗ PK!$Jsym_db25_51_ma.npyNUMPYv{'descr': ']?-Á6_@PK!nhsym_db25_51_md.npyNUMPYv{'descr': '҈B?ib?TvwHF>{#j>]?$ÁuN_@PK!h]sym_db25_51_md_pywtCoeffs.npyNUMPYv{'descr': '#r?(54? rp˿Epr?X?Bpł\?7CKf~?7P]Ӆ_I?,QX1?Ea?9&p?bI?VAB}+?ˑ(ٿАD@¤I"NV濤蹓R?*զͿ#x @"yu?_(jYݿqJ/?Ju10ɛl8G?$U?cnb* AH8f?sXG^7_?h@PK!5lsymw_db25_51_md.npyNUMPYv{'descr': '}+?i(ٿm)D@ä忲Vc0R?զͿɬx俻 @u?RwjYݿDY/?HT0ɛd8G?H:ȏU?9ۡ* AO@f?nXGm_?Ԇh@PK![̋symw_db25_51_md_pywtCoeffs.npyNUMPYv{'descr': 'swGxF@FɶK,0V]Xڿcy7ǃ;%?d&%=t@xy ?n ?Y忕{6S@gH+:@x5@|F0@|G+)@8|KQh @p!]@ 0 ?+Ǽ?7P]_I?BۢX1?sa?_Hp?p H?4+?I>?(ٿ Z@V{y忻.;=)V"xT?}Wοsč"N @h^C?݃3DX?J?P$b=}Rͤ@Q}??Ɔc=&a?$ȸlO PK!"Msp1_db25_51_md.npyNUMPYv{'descr': 'a[@u,nڿt8=I`(?<>_t@4lq?W?phF ׿32R?o `oE?V-yr?u?jn`?" ۿySe?WYEؿh%?^0_?K,p5n?TEH<?\co`Wm_Vk?}YPTqL*?6龙5ݾ29>Y#q 6[`>[>05@ hP'PK!W'Rsp1_db25_51_ma_pywtCoeffs.npyNUMPYv{'descr': '@Wf+:@y5@m,F0@4f}G+)@aȎKQh @!]@ &0 ?Ǽ?C`P]hO_I?=X1?K{a?p? H??0+?q>?(ٿZ@`@02~C,nڿ;#8=(?,bV_t@|q?)t?t'h; ׿Vn2R?G `o(*-E?ޖ-eyr?:u?Ukn`?  ۿa0zSe?{<ؿS%?^._?M.p5n?9XHߋ?'\cowc_Vk?'R_P'qL*?O_`69%5ݾ 9>#+ q9{27[`>E1;ɧ[>_F)(OlefGPK!Y^PPper_db25_51_ma.npyNUMPYv{'descr': '\q)?bc^W?.RA?@w?hޖE+ \Aa?]?;AQP??,E?7P]㿁_I? X1?Ƕa?cp? \H?+?{b&(ٿ_OI@~I,wQXV}xV?ROCοQ:mGPK!5PPper_db25_51_md.npyNUMPYv{'descr': '@PK!vsPPper_db25_51_ma_pywtCoeffs.npyNUMPYv{'descr': '@PK!0e"asym_db25_51_ma.npyNUMPYv{'descr': '1T"Q?aoο7NK+>g_ @k}?rg̭'%n?e-)μ94<:@*[?L͘h? gW@.iPK!A jasym_db25_51_md_pywtCoeffs.npyNUMPYv{'descr': 'PnћAWt2:X?ҟοÉ㿿2 " @hf}P?L俦pX# ?5@L?%uf?'@N+?= ?1~?lJ?!7?C`P]hO_I?qX1?'щa?;xp?F'cH?-˺+?E[vN(ٿ(FQ_@*n&_wW濝IX?aHοI΁㿝R*" @.}P?Ӥw# ?cSe!)@Z$Ī?߇R޸婆OF[ \>hwI >v ξ _>$ ?p}z?*m-=mN]޿~k?*us?Wpy:O}k?S{?ץ_ +.[@d3ᅬ.(dѿ9ZoP`X8PK!zpd_db26_52_md.npyNUMPYv{'descr': 'a?gH?L E?-EQb?!҉0?pp9t?k5{-?U/?sտ?_ SR}׿6y?J㿴?׿kD>!?:]¿ ?dhbtp?w|zi?8W;lf;v_?E֐hHZ)?*7ɾ 6>rQ6HBQ,r>@>Af{WL=㨩=PK!Srzpd_db26_52_ma_pywtCoeffs.npyNUMPYv{'descr': 'n婆OT[ \>I >> ξ&cۘ _> $ ~ۖ ?x?a'=mN7~k?j~*Hᓨs?Օ`uRO}k?{?a_ RZQ6fBQ,r>8> f{YL==PK!4&sp0_db26_52_ma.npyNUMPYv{'descr': '?k`, 9O.?o+{PI?!F1dHEI,\?k'0H0N'.?)- 14->Ι脺>ccaJ1XdS[=>^#R=PK!sp0_db26_52_ma_pywtCoeffs.npyNUMPYv{'descr': 'M^sÂڿT!@ѿ#PcQпPK!sp0_db26_52_md_pywtCoeffs.npyNUMPYv{'descr': '脺>:caPp1YV 1(=R=PK!Pfxsym_db26_52_ma.npyNUMPYv{'descr': 'C'Txh|??ws%#?$ ?4*zٿjG?:|]ſwJڿc؃?Tck'L?PwE?fDb.)ׅk?=Ӗ?*1?rP3?S?B㿥l<ֿj?X_.v6 '?C]1c,ݿm .c|K ̾A3?PK!l]sym_db26_52_md.npyNUMPYv{'descr': '08?)Kr@?F r?Cν??:?[E??lLb?)a0?P 2:t?JO57-?2V/?sտL_̺P@׿b,؃?Aw9b$8n@j8{?ka *^7?TYE?bT-?y^Oö|տ;3<8T"$tT Īm)hR;?=C8Nտ@Ŏޙ g蟲?EkQ;!tӼG sPK!Xsym_db26_52_ma_pywtCoeffs.npyNUMPYv{'descr': 'b{?LQ'cnl؝z?.1 ?)?IC$QV8q?վ. ?d~?T1\|?O3?/W%<΅!?w8Z?hfkήU˝ D*mvW^+=ѿgvӿ; P#?T ?6zٿkjG?q}]ſKڿ ;؃?N'L?jwE?r |.)Uׅk?Hז?+1?P3?8J?"1ݩ<ֿf?5/X_q]6 '?x1x,ݿ*0.c|O+ ̾;i?PK!sym_db26_52_md_pywtCoeffs.npyNUMPYv{'descr': '8VRP;tӼ~sPK!Asymw_db26_52_ma.npyNUMPYv{'descr': ']ſ^ڿI(D؃?JZ%L??Q3?L"(5M?hFV??ٛu??5۵?(?>A$ۿAL]?NfQOW?9NTY>^켿,kDpп'jbXPK!Usymw_db26_52_md_pywtCoeffs.npyNUMPYv{'descr': ' `?Fh@[{?!Xpaۿ:\￾Xп@JoӿPf#?g ?{xٿdgfG?]ſclڿ8ԃ? =8L?ߩ՜?* (Z`ޘM?r#b?<,ɢ?@ Z?,r?]#@ӿ> `?Fh@[{?!Xpaۿ:\￾Xп@JoӿPK!ppd_db26_52_md.npyNUMPYv{'descr': ' =) /? ?ďn?.?ğį)?|,E?*E?WFb?Sd0? 9t?V5PE-?H[/?JtտvJ `Чzٿ84 ?dw˖?ڞ޿Ci?¢@T̒1\4'Ԫ?5Lq?`0> =) /? ?ďn?.?ğį)?|,E?*E?WFb?Sd0? 9t?V5PE-?H[/?PK!aʘsp1_db26_52_ma.npyNUMPYv{'descr': ' ;F@n9Y/83q4E6&U55=Xy3n{2[1$2J?//bNk,e_Ј)!&#5e ܞKT^hE= /ʎNRk3Կ1xކӿP#?! ?"{ٿ%'sG?rm]ſMڿ>׃?s$L?lsf?R ɒ***[h?d0v?;Vcd˛?>96?cVi?W_,ҿJg?B RĊɶ5m?Ԇyݿ@ i/jĿ ?9B{]@PK!^sp1_db26_52_md.npyNUMPYv{'descr': 'Aa>L#$>U&Ybqy>ZؽGS]D< ;o9fhi/8DE6oU5_NXy3R{2ç1IRRJ?/wNk, _Ј)ݵ!&\R#Ze aF=K҃T^I,hEB "/ʎ%3Կ붟xކӿ; P5#?TQ ?p$/{ٿǼ!sG?ͺn]ſڿ1h\׃?*_$L?jf? **US[h?Tv?zd˛?ۈ96?.i?2ݬ/ҿYf?q| R0ӳ5m?ryݿL? iG;8jĿ ?{]@PK!լsp1_db26_52_md_pywtCoeffs.npyNUMPYv{'descr': 'p??Yc?n]@D2:[3ٰ??B΀; b,%?" ?g?xp? ?B?* ?&~E?o(6b?Mv0?U:t?5-?`\/?JtտĕqR^QIֿμ?]篼tz p@v?.׿"A[s?ݯ$fXҲ?M3`r$!z?E?$U<[4LP?ߍRX81?92d7*>Aa>Hƀ#$>7#QbqI1ӝI{>A(Lؽ+;5E( qcsęmѿaK{@?(]ᰓ׿сq>)@Pv~f ib?JG`3?{, 0F2?@~\?q)6?tͿRA-MտgvJDNz?PK!+!PPper_db26_52_md.npyNUMPYv{'descr': '?3j ?1MƧݗ)ܿ?|^E*?PK!QPPper_db26_52_ma_pywtCoeffs.npyNUMPYv{'descr': 'Qx)Y9A?6=-!N-rwuf\?qNqcҙmѿu԰a#\T@? ׿k>)@Xt~f%b?V`3?-  a?e5\?mO?ͿKR-Mտ5H0z?PK!f1PPper_db26_52_md_pywtCoeffs.npyNUMPYv{'descr': '˯пW ?c~vi(HΧt^?Xn ?+?Kԛv ?/cnڿPK!2$=asym_db26_52_md.npyNUMPYv{'descr': '9t?5A{-?T/?sտS^xJSx׿Z|!~?' W0pl41$)>|i@nrR鿍02Y俀K},˿{ӊ?-Z/?9r???ElU?;?]1N?i4?^sX?q!柲GP?0@;?K6Ӽ?k s@PK! asym_db26_52_ma_pywtCoeffs.npyNUMPYv{'descr': 'j-ÿ~b1Eڿ>Z{ÿA'?c풤l??pxῦχ-10ܿI[?(?wu=пQx8:c?Gi[׿ YڿuW?de5g׿"Tk? b?c?j˴Mݿ}kƇʿ[ӿ; Po #?7O ?zٿKqG?$D]ſ=ڿwh ؃?@N%L???DmO)Չ ?hMt?FԊ?= ^n?%9 ?Iev ?˯пG^i ?e~i({t^?xBX#?m,?]cv ?InڿPK!eGasym_db26_52_md_pywtCoeffs.npyNUMPYv{'descr': ';? Ӽ?Gs@PK!]asymw_db26_52_ma.npyNUMPYv{'descr': ';#]g@! MNx`ppӿJ[ӿP!#?7& ?lB{ٿwpG?]ſnڿjp1փ?32L?8S?v (JB^K\?FJ"?g?rZjڵ?ANfO?Z灞ǿ 0}?Y;=hA9?U.Fm*\T}?j|bҿPAq^ٿPK!-XZasymw_db26_52_md.npyNUMPYv{'descr': '#]ag|6E a`ppӿEӿ; PO:#?lV ?*N{ٿ[rpG?K]ſ6ڿד1փ?P2L?Lm?(翅x^K\?#M"?g?,Szjڵ?6OfO?$nˁǿ޻}?ی;=P9?(j.q*Ӽ}? *bҿ'#q^ٿPK!"+asymw_db26_52_md_pywtCoeffs.npyNUMPYv{'descr': '-lGpQGUn>“׵>5 x[~r?2%X2)3> G?\;,aR]@B?sj?(&&r?l,vh4?i?@@ò*\9qlFsc?/4Dv r?!˭YҿH޶Op"7}5?+)#яU{Dؿ:J?l,+'?-O<࿺'>/Y52?Dd?=~UCz?{efb?7`B5ǿ0]J|Ὲ"?Ri?8~`RWCq? ڿ 1 71&PK!j  zpd_db26_53_md.npyNUMPYv{'descr': 'ye4? PlG?0H}ݳU"?@H¿'\W̕?b$:l_iMr?ћ4;!j)"?up"k?skX?> I?Oe\Vm [USOCy?_R)T?U?+KuvE_)e?^P A1?xP.nt:^߾t# O>+moym>>/46?˶iyP=9Νzp=PK!e_  zpd_db26_53_ma_pywtCoeffs.npyNUMPYv{'descr': '!{GpnGUn>Sߨ׵>o~1 xr?:m%X2S~> G?aR-j@B?/{j?Zr?Ј,2ӂh4?TN8i?tò*\lF䂁c?kWDbr?ʭYҿ%OaK7}5?Ms)gnՔ#`UDؿ!J?2;+'?g<j߶MY5 ?ad?=('Uʼnz?Yep[Z?t5ǿ˜]J|῀#?i?~jWCOա? ڿXlH 1&PK!Џ  zpd_db26_53_md_pywtCoeffs.npyNUMPYv{'descr': 'm2 [U,Uy?)U!T,?u#a)e?CPr}hA1?X>}.rEO:^߾R"O>OokS>щ46?$ci P=0EΝzp=PK!G  sp0_db26_53_ma.npyNUMPYv{'descr': '*rd?'rSBQc=?p(x"[q=??#׾z>=73>ʓ?cR. <2>E];RglkEBPK!Rq  sp0_db26_53_ma_pywtCoeffs.npyNUMPYv{'descr': ')z#U>^ؿ@I?@l'?kD࿊uq}5;v?(t?v;i5jbj?D9进W:?hrpNM fޏ ?;lD?e_f\@/)Tl-PK!gU  sp0_db26_53_md_pywtCoeffs.npyNUMPYv{'descr': 'K?7|3%8?xȸQiWn?HXX^ݳe*?Z¿)o̕??$쿶"ɸl-R.M俞Ɉ?uFk?jA~ ?RyVee!?=ꤿh7~?#$,s Ln}'.w?*rή$d?.&rSqc=?)x"q=?qE#׾t>D83>š?ci<2>uk9 Nk FΤMٿO˴qÿ==?D!)ܭ5N?4xs?nFY-~,ޯ??jOڿ"?p-|kRL?k??;A qs?(2? ,{{X-?1ҿ%OL7}5?E)俇<О#duUuؿpI?b~U'?Pu/࿤D񿝖4Y?WAy?Jj ~+ ϻ ?)꿊s3kq?qǿ񿭂 Cg6Bȶ??^]C濮 ?MCG۰?# A?Wmm?KF JJ2g7)ܿ\ @PK!ٓ;  symw_db26_53_md.npyNUMPYv{'descr': 'c?:EN:4F?#ˬPK!_Lo  symw_db26_53_ma_pywtCoeffs.npyNUMPYv{'descr': ')俧c#@xUεVؿJ?>X'?ߐ2S>Cg65??nh}[?ȰAxk^]CG ?^CG?!V# V7?jm?yN翜E^J2Md7)ܿ\ @PK!|  symw_db26_53_md_pywtCoeffs.npyNUMPYv{'descr': '%`4?묫AL?i)o_?Ji829URƙ?]ۅ[?({]Ckr>4KPnՠ?g4tPK!X  ppd_db26_53_md_pywtCoeffs.npyNUMPYv{'descr': '4:? c!IK?geHl1SvݳNj?qjr¿W͕?$:lR'俫*/?]cu*k?Hҿf۶?]8#tG[[,?|yβxJ?6 3|靿UF? 𣉿)&Cw?S_a>\ A?V/4ھ3)->"FqR>q>AEw=2ĥ4:?Ōzc!MEK?^eHcevݳʳl?IFr¿ ^r͕?W $쿶"ɸlo'd8/?cuR>k?Mҿ3۶?TtGnc,??y}<}J?Z/|靿 `WF?u 𣉿 KIw?-0*_aA A?P4ھ"X->H$N>q>}SP }f{(=O/?w=[W*APK!-4XXper_db26_53_ma.npyNUMPYv{'descr': '`.~Ԙ?kc.)?}w?)a\p|(G@¦kA+"?&x%{i?K?a+VdA|?1@4?l܆=L?:Mпr濦U+~ڑQ?xؔk?a(5PK!cY'XXper_db26_53_md.npyNUMPYv{'descr': 'Ԙ?=I)?H~w?!0a\5|^G@a*d+"?g4t*yi?g?V𿿕?|?\NkJ:@4?=L?:MпX7r濰n+~ڑWՎ?'k?␎(5PK!NXXper_db26_53_md_pywtCoeffs.npyNUMPYv{'descr': '@yZCa?s׿ink'@ɺ? gc)ʿ?jC[?1a kʿMͶ?.a_yN?'<`?E=g/?&Ŷɔ0/?-тHk.bݳ||?ڝ:¿,̕?3$:lrL俷8?^E~jQ ̝l4ܿۉkq weJ|r?2ynӿwoh?E@"׿ZeU?OC?z?07ۿ__k?]͘?bk"^ڿ4uJ.?>"Ł?f5?5e?lPwb,?PK!+:b  asym_db26_53_ma_pywtCoeffs.npyNUMPYv{'descr': '{"^ڿJ.?l1Ł?+f5? e?Pb,?PK!5v  asymw_db26_53_ma.npyNUMPYv{'descr': 'vU%Ot1mi.EF^2P?g=ҿH޶O4"7}5?w)m=#ҙUs&b\ؿxH?`(?-Vx%g4R3 ?8ߎ?Qd O5g忕%$S?GF迲?<5%#뱷D.俌)o?$uR?hqTf:=F%t'g] R\)PK!z  asymw_db26_53_md.npyNUMPYv{'descr': 'v\!JaJy+BEF2P?-"ҿ%O$ L7}5?=)# aUh\ؿuፆH?hf`(?b=FV$V%ˬ42 ?\ߎ?$Dd쿄hg#S?+FF3*?뱷-ܪo?R?jrhqBB:IF\t'g3R\)PK!@  asymw_db26_53_md_pywtCoeffs.npyNUMPYv{'descr': '@6YV>9O&>2~-uX}-Ʃ?<)~3MLvz]A?_F MQTI?/udU*q6p?o"b?]LnZ.m?1&3ȿw?W(fۿe?rL;?R!DȆ=ȹ6t? :iOx4PT濩7!@^Ŀc*nn.? P:@ο #F46?|6?]];qkT?(KV?_Tn^뿳s?*ֻ?`ϔQ;ݍ?I?ޔ@GZe$a᪼HPK!8+((zpd_db27_54_md.npyNUMPYv{'descr': '[`?J)S>?~IOBa2?W94)>=ZǾgOJ*x>q.k>U HL >h-{K 4PK!J((zpd_db27_54_ma_pywtCoeffs.npyNUMPYv{'descr': '$69PV>)2&>uXfƩ?~3yrz]A?M< F6TI?DudUWw^l6p?z`|oEb?5md#.m?;,3ȿJbw?MW(fۿ\M?rwL;?CwȆL6t??:i|Nx45TD!@]ĿjDmm.?T9@οw=46?*}6?@4;俗ET?2b(gV?F^uY?5bֻ?|mϔQ[ݍ?ee?7;?1NW߿c;1?ۛѿzLbI7K~yhDo8m1a?sgPv?1㨡M?@_߿e ?ŏwڱ X-`]᠒++z8.,.(ҿxayh3yX9+wb꿊d&? d?9n^ k?u0O?\P("޿880?~Qlпd7?-XP?\a% ~O@[`?<S>?̢NBF&>ǾJ*x>~.k>3 Hx >&`{K_4PK!#((sp0_db27_54_ma.npyNUMPYv{'descr': 'NfuJ?@my?Q+ ?U]U?4^ ?A2HPK!Ҏw((sp0_db27_54_md.npyNUMPYv{'descr': '&'"M}>m;_p>7V3]'߽+=F^UI=PK!^((sp0_db27_54_ma_pywtCoeffs.npyNUMPYv{'descr': '{IοuSX,?W8?*;/»Zzw,O(ҿxayh3yX9+wbB?aR?6v (@?R箺 ?UnSl'x?ֶٿ}q"??q[1ʿj؎?(tڮw]?KHv7Jm7-K_R?M}oEM`)Ư.?>, Fp >t*M}>xïc_p>"LL3߽=`@I=PK!g]`((sym_db27_54_ma.npyNUMPYv{'descr': '?@iccR?l?AG)q0ܿq@og'(NFMmj޿sݷd?:wL;?~C?XsȆ⿭WE6t?͉5rz4}T !@a3Ŀp|z??IοqS*#?6$=? /|MDs`6?j➼t? zpx2?GT %?EG[ ?;f|?PZF]3@0]oPK!v((sym_db27_54_md_pywtCoeffs.npyNUMPYv{'descr': 'W4c~ۿ s"?_&?@AĿE0?8jZתm7?g?;ۭ?agf80 ?g~\?aðؿUD?It?;'uڐ!x9пDNݳde?HVθL;?W"DjxȆ?76t?p[<$nv4宦Tc\i!@=@ĿM؅&? %ο}%H?0Mw$?pᶍX?זh?w<1Cq?N[7Y@rE/ovr/?%!&s%r۳@ڞ+?GPK!#M((symw_db27_54_md.npyNUMPYv{'descr': 'V/`x4}+h_Szٻ!,G@'ҿ/BayhTyX9YEwb2 8u+? 5W?杍S+߿$i??qǿz -PPC|5: Si꿪0ISGB N%q0V%aLۿVo(RٿHIfi?*xο?|^w?le?`KпDs@(B?!X ܿ~ī9ȿPK!{-((symw_db27_54_ma_pywtCoeffs.npyNUMPYv{'descr': '6Rm*~ۿ#s"?a&?OĿ=-0?JiZ؂m7?g?ۭ?oNGgOd80 ?۠s\?Y*ؿD?t? AڐMi9пI_N3de?[)θwL;?~C7wȆ6t?=<࿩ v4)zT濈ii!@Ŀ؅,&?$ο#~%H?۫ w$?㿇\ƶX?+h?5 V1C?JF7Y@XE/r/?I&\۳@Ұ+?GPK!((symw_db27_54_md_pywtCoeffs.npyNUMPYv{'descr': '~@dyĚٷxZ?Jܕ?~KL?[t^߿{U?YбNE/`(}+>?z!,I'ҿ%zayh 4yX9+wb꿚t+?;qW? S+߿7L$i?qǿ-O(?X`N]?WٿW~?/r?f? t82T?Ox?M2%z@ɐxJI鿂Yʜ?.^Rm? 8J?;^#[߿N^P?wxe3`boz+rkz$,7 C'ҿ;ayh"TyX9YEwbw>O(?X`N]?WٿW~?/r?f? t82T?Ox?M2%z@ɐxJI鿂Yʜ?.^Rm? 8J?;^#[߿N^P?wxe3`boz+rkz$,7 C'ҿ;ayh"TyXPK!'F((ppd_db27_54_ma_pywtCoeffs.npyNUMPYv{'descr': 'O(?DN]?6Wٿ+vW~?ؽ{r?Sf?g82OT?x'?V %zͶxnJI,Nʜ?kRm?J?N#[߿&P?$zwYU3`Bvz+vQkz3$,9f 'ҿyayhu+4yX9+wb꿒1>O(?DN]?6Wٿ+vW~?ؽ{r?Sf?g82OT?x'?V %zͶxnJI,Nʜ?kRm?J?N#[߿&P?$zwYU3`Bvz+vQkz3$,9f 'ҿyayhu+4yXPK!Xy((sp1_db27_54_ma.npyNUMPYv{'descr': '?`"a1f 4,[?8 KZ>Ѹ>\Eq'ߥQ<>2<=PŽ ϑ &k@zSPK!((sp1_db27_54_ma_pywtCoeffs.npyNUMPYv{'descr': '?@Rr,=@wcmj<@pY:@IT9@<1~17@1l?6@+Mu4@)3@001@'m0@Guc-@5-/*@O&@Iy}#@X+7s @mOI@y&J@V 1 @d@A?:t3?ΚwL;?֕CyotȆǭ6t?m/)O4T>uʏ!@ CĿG|DFӇ&~?Xοw5O ?oB?6/0oPW^`?&ƾZ.? :$v)K+)l?#me?gnz^g?_JToc? q"TͳKij8tPK!U((sp1_db27_54_md_pywtCoeffs.npyNUMPYv{'descr': '?/ӑ"a1u4,[?٘8|zZ>ก>`Md6qnCQ<>zDu=֜Ž]k@׼PK!ߎXXper_db27_54_ma.npyNUMPYv{'descr': 'O(?X`N]?WٿW~?/r?f? t82T?Ox?M2%z@ɐxJIPK!vfG%XXper_db27_54_ma_pywtCoeffs.npyNUMPYv{'descr': 'O(?DN]?6Wٿ+vW~?ؽ{r?Sf?g82OT?x'?V %zͶxnJIPK!}A((asym_db27_54_ma.npyNUMPYv{'descr': 'I'd?Xء0ؿil")?uCL;?#DRȆ⿝7t?h3?drsv4xTsgRA!@E)ĿdC20Ĭ?*οb =I? /?H`v2>r??uS;7?8 4?l=?D%D)P80?T-?I!^I?p>4 h?PK!1((asym_db27_54_md.npyNUMPYv{'descr': 'r?Au#B7? oW 4?=?%ᅣO80?)-?^I?+%4^h?PK!W((asym_db27_54_md_pywtCoeffs.npyNUMPYv{'descr': '^q(ake?epK@Vh ,TRPK!S((asymw_db27_54_md.npyNUMPYv{'descr': '7xܐ~C( >~0YH>wfy?"ټ.z8!TP?[8]4!+pܵ_?I(Q?N/P#l?2`ᮿߪ}Ҥ7?8zտ2?ã?;-uPϿ x^ YO,<@y@#?Vп4v?Q?Nx?FK[ A?ҿ>Q?<&ɿ\Ғ8?@I+?_c@򸚛5:̿I|^nѥPK!Pyg00zpd_db27_55_md.npyNUMPYv{'descr': 'z?sj$pX^?F!ܾGگ,K,?%0a+{W>NO8>(p3K죾ކV>N~Q&}zW>]Yl=I\\[{FO.2PK! 00zpd_db27_55_ma_pywtCoeffs.npyNUMPYv{'descr': '؁Mܐ~p( >dYH>fѤy?%.z8YTP?8]odܵ_?(Q??Pݑl?2`ᮿh|Ҥ7?zտ=g?)xi|c)R?0/2TV(`L?(R?gEZ?!h?#4?jTޞ<>?ۭ?q/uPϿ"V^Nq /ceO, /y@#?c4v? Nx?[KuA?ҿQ?$ ;&ɿz8?g ?kc< θX̿I\.|^nsPK!9 700zpd_db27_55_md_pywtCoeffs.npyNUMPYv{'descr': '?tŢ@p?1Cn2RZ>z?>j$p\]X^?7:ܾGK,K,?0m+{W>5>S3K죾<>J1N~QzW>=Yl=fC\[z,O.2PK!D_c00sp0_db27_55_ma.npyNUMPYv{'descr': 'aB}tbBSJ+fBQC@>StU^ٚB%*8 'N9}V)SVy"țdVPwWD>T}L?KS?uxEZ??(@4?9ͣA<>?\Ӌ?ҍPϿ )??*Q$?ʻѿI$@Z?NҦ!'PƿU7[?05h?~OdlĿB?ydԿF> ޿ /o&i߿E`>d߿PK!dV00sp0_db27_55_md.npyNUMPYv{'descr': '9fT%JQ?_U4nw ? {{[>4Uо2;>ږE-$ S>!s^>?>)E̶=FH@m=ؠɀ㏼PK!Q00sp0_db27_55_ma_pywtCoeffs.npyNUMPYv{'descr': 'aB{tbBIJ+fBC>@>]nU^]oٚ*8 Հ'%TI*y`țeR3VPw7>TL?O?%EEZ?0?)4?l <>?k1݋?9 PϿd߿PK!900sp0_db27_55_md_pywtCoeffs.npyNUMPYv{'descr': 'LؿuLz?Jֿs} ? e}nÿmh?SH*D VqO?^vހ?|d}TWw?9fs}IQ?U4 ?{[>4Uо g{;>,E-$J$S>Kq>#>̶=+K@m=aikc}L?KS?#lEZ??~4?V2$<>?t l?ScPϿ b\;B1N͘ ?Z!nkz?itMd?6|׆ IZ/U?mV+пcY? TP`l:ڼ?Ww?Vr'^߿%?\}=90C?J ]%tl?PK!k00sym_db27_55_md.npyNUMPYv{'descr': 'EC?TbsA{?ڢ2?J! A ѻ x?X&*CBYǿ%: ?n]d?@쭈?Twl?/Dӿ}X ? 3u'BR^? C?:eԿb?zqv?05CΗR?[6CRXod激?? /'tϿ 3Y7fؿ?Ͷg?:"bka ?ꨍ;&Z翼l?!C~̿]ۿ?Htk! c?QbkT?Ks*7?濃\a1iUt]?#)zWڿҋ5?| ۬3?lՑ4g7PK!Y00sym_db27_55_ma_pywtCoeffs.npyNUMPYv{'descr': '?+l?cPϿzŠb71Rר ?knkz?k)d?, 쿝}/U?̕V+пY?7NP`SkP:ڼ?Iw?$'^߿{?A'|= C?9J{tl?PK!?ڇ00sym_db27_55_md_pywtCoeffs.npyNUMPYv{'descr': '$8? ?z}$|?CeY?]Py^}mN삐?;ZI?9 Zп&'ērbۆ:ʼY%ͣ9}a?ʿ??%? h^e3?ۄ?=? ǻ3?SXA?,t*8o{f;:@}L?T?EZ?5^?GiL4?ByῬ±<>?cz@?PϿe^1\J&Z]㩗fq?a}?s?)<?RIT?:ӳѿ[MH?۲j̿> ?r[㜦O,?XPο X?ſ* ?M,g ;?PK!^>^B00symw_db27_55_md.npyNUMPYv{'descr': '?{@?-KPϿ^󿥳/J&2q?a}?2r?Sw+T?>@#ӳѿFMH?{۲j̿> ?amVZ㜦,?Jο3%X?ſex ?,;?PK!/00symw_db27_55_md_pywtCoeffs.npyNUMPYv{'descr': '*?`>gѿptX?_N {D?S4??}Sg?PK!e*o00ppd_db27_55_ma.npyNUMPYv{'descr': ']v?3֣P%*o}L?N?EZ?˔?Ẏ4?ܴ<>?X܀? $3BPϿ:>U|D{uEn15?'F?s+?OP뿁u?KLϿ:\?^w/¿k(Y?B?.iҿ^}?:ya*6>\ ^/ߣ?PK!Z@o'00ppd_db27_55_md.npyNUMPYv{'descr': '?s怶?2BPϿ3U|WDJEVE=5?w{F?VB+?V8MP?KLϿ\??/¿1y,\*6An\o/ߣ?PK!a`00ppd_db27_55_md_pywtCoeffs.npyNUMPYv{'descr': '@@f8<@2 ɢ9@7׍A7@wt4@*2@/UR 0@ݞ?@+@ ps&@<ә#"@_y@#]@Ӣ(@Tc&~?Yva-~)9D_yT?O ?æP^PϿߑfJ\px ?&z?w?%_mJWi?ѿ?DfĿ*Š?'e:?%eN2ʿ\woWͻ?oNҿuiO4pPK!""00sp1_db27_55_md.npyNUMPYv{'descr': '*iBe*t?1ar?n{vZzn?{]oEF?![(@&z?Yʾ*j!Ҹ ͏>a`%I>`_47=&vXiV>BV-8N)ʼPK!jeJ00sp1_db27_55_ma_pywtCoeffs.npyNUMPYv{'descr': '@7I8<@4r ɢ9@]׍A7@[t4@2@_UR 0@Vx?@+@ Qs&@z$ә#"@#]@ (@wU~?YVa-u 9Df[?Z ? \]PϿf10TZJpx ? z?`w?.@۾Wi?'kѿvds?$-`s|?oLӿ ά?0%zhF7^?Z?tR1iԿgWb?[/qv?5@R?46CR*܎od?A+ϿX;׿dN)?w3Ζrؿ7v?B;Ŀ%^r?kBYQ*t?*0 .ar?{v[zn?{]kҨEF?:[(%̦z?#ʾʺ ҸV ͏>dɮa_I>W7=uH ?X&8%-?CجBпfM|H]?LYȅ?"Ue? ]aG_Ͽ-]B?Ta`*Bka8(uݨ=s}L?KS?EZ?ݧ?Uit4?p]<>?B?ЭPϿ@pc;[8$Fj}'?lD|Ts?o|?PK!?*``per_db27_55_md.npyNUMPYv{'descr': '?M?a@PϿŒp7;[kdz8$j}'?0dTs?Ɓ|?PK!hĭG``per_db27_55_md_pywtCoeffs.npyNUMPYv{'descr': '?&?lDPϿ 6 Y deY%?q?;08 ?ow]?ȏZk\?A++?Jӿm16?4s@S]?`bx?b mԿKb? qv?5 R?E6CRXodh|y?KέMп arhC߿޴aG1?~0?f̟Aҿ&vsن糿,?xYфv࿇:г?&@h?ۂ%俥Rk/?%h-Qɗh?ѥ??K]P^?g?)?0?I!׆PϿ6YɵAte_Y%?q?D8 ?qo쿉lX\?iiտPw?ט'9Կ7?اGǿnTV?L!促ڙ*0?2=$J?ѐ2޿PK!00asym_db27_55_md_pywtCoeffs.npyNUMPYv{'descr': '?ȞMk\?!C.++?bJӿp5?esS]?Sx?mԿȢKb?}6qv?5࿚>R?6CR*܎od>{?|y?븭Mп{BhC߿CaG1?ѳ?ɟAҿZP\s{ن糿h,?݉Ąvd?L2h?iu%:k/?ZPh-Qvh?q??gnFP^?g?_4Ͽn3zW?5Yf3ƿՑ?%zg7?PK!n00asymw_db27_55_ma.npyNUMPYv{'descr': '?+׽?(PϿdڙe7` m?(󈾅#?=u?6?UcM쿛QI;?_8ҿ H?tg5m`TU?_?V}cGvۿG!4?ڑ(޿(v2A+ēѿdPdPK!400asymw_db27_55_md.npyNUMPYv{'descr': '>6=ӿ ?Zؓ2GH=^?~T[M?™MeԿb?qv?5࿻ٙR?Z-6CRXodʆ?-6sϿW7 <GCv(Z }F7 ~\_`=5h }gL?dN?EZ?<?4?c-s"<<>?5׽?AźPϿP\weq44?Cw#?9u??IM*"I;?eҿQ_?2h5=w`TU?1?_?HGvۿp/?+ݥ(޿+2k+ēѿPdPK!0Gc00asymw_db27_55_md_pywtCoeffs.npyNUMPYv{'descr': 'La7EXsئ]Q>meZT˔ ?Ҝxj#?LA;V'?pQd\!d6cy?܉>돿!(}?*HNs?mUI¿ΊR=?]^ѿQ7 ?Kyۿw?w5RY?|9??r9_?pžx?.J?,yh?R{W*)?!?]G?~Cݿ>uYQ?LN3KŚ?-0?EYw?Yu߿Ns?y +&_pwHBF@ǿSZ37?.PGn?ujMƿR#翈A_Hr:ҿ p?Z:?s:U1?PK!ҟ988zpd_db28_56_md.npyNUMPYv{'descr': '?:( ?oC?L,&.?:|*?P.e_v?{{?ȉGпf)gv^?? yۿu^"??S72YyYq?rB@'DHfſ5F^?+|<?dM&G%^$?8L?p1?Hŵ^ǿE$r߿p~?Y%l Yv?πeҿ =1? yіM[?M䛣C&_?戲?4­Qu?ɭ<8h\f?:3?i6?AyFI?u)`u.x=C>~^b7]>\T(D>B;"a =G )YPK!:K_88zpd_db28_56_ma_pywtCoeffs.npyNUMPYv{'descr': '! a7Eئ!0Q>e"ʔ ?uuȰ#?jW'?V/Ed\2A>cy?n6돿ID}?*NKNs?cJVlUI¿؞S=?l ^ѿ+c ?ンۿ|tA?H=Y?Xl9?+?+`9_? Jx?mMJ?FRh?C!W*`)?&?DUG?bBCݿ(YQ?3JŚ?4Y?YwZ.?[tYu߿?O%_p\iE@ǿ*UZ37?!Gn?EMƿf#\_ﴊr:ҿ p?%Y:?y:U1?PK!T{88zpd_db28_56_md_pywtCoeffs.npyNUMPYv{'descr': '?~?wC?^,&.?E|*?o{b[_v?3h{?45Gп)gNb?P7?c{fDyۿB"?RqCY,TYq?0B@/IfſlF^?`5|<?Q&#?QL?(p1?ŵ\+^ǿD\r߿ ~?5%\GYv?=΀eҿ51?m] yjY[?9+v䛣M_?q˜B4VݩQu?8h\03?˫6?2U(A1mFI?̫Au)oYw=C>{(7]>E`T(D>ϯB;"> =1G i')YPK!7>88sp0_db28_56_ma.npyNUMPYv{'descr': '(@!9@ٸ.@0@7j@o7k@!h@F`Ś@e}!@~@$y'Hl@j@]6K@@Bl@.^F@"z*; ?. @&ʙ?w+M?p m?r9_?Ȟx?&J?ɹh?n W*^U)?`L"?ó"G?2D{MݿօC3\>?3?4*?&n(w+ O?~ (C#?c YWmoAſ䞯?p@?4?Sg˿1.QPm>ej*տ0㐠?,M?;iW?PK!@88sp0_db28_56_md.npyNUMPYv{'descr': 'oۿIoЗ?hV$-c࿘&w?Ͽ;?m8X?kXZK )?^Zm[v:XZ^X?T J\$?]]d?%6?K=$VȾr ?K0UʷtTD>

    | r;M>$U^2p= #=PK!xn88sp0_db28_56_ma_pywtCoeffs.npyNUMPYv{'descr': '(@%9@ .@0@c;j@7k@@#]Ś@Mt!@F@'Hl@f>@a6K@l@l@F@/ *; ?0@%ʙ?a+M?y m?+`9_?>Jx?e˪J?6h?:V*x)?Z?ܮG?'Mݿc;CJ@q>?-3?i*?rOU(wfAN?n'࿠եB#?XIJnAſl ?J?4?kpf˿ '.Qp{j*տ ?-M?=iW?PK!j88sp0_db28_56_md_pywtCoeffs.npyNUMPYv{'descr': 'xqb?|$l?'':7@j?ӈ1?NȘӿ W޿ hƖ?f0,soۿ?) V$Ɋ;V`h)4q?H`MC@-fſof^? t&q<?qp>{0 rM>i!iZrU#p=zQ̅#=PK!"88sym_db28_56_ma.npyNUMPYv{'descr': '^{ؿ4hKٿ"9t}?* ?n? (#.s?aZ?PUu-?d?r9_??ɞx?zJ?࿡@.c?v߽o7὿?&?ֿčKGpt?_[A˿凃 ?8bPK!|tD88sym_db28_56_md.npyNUMPYv{'descr': ':b?@( (9#!C?eLUIJ?Nѣ&੹?QJRcٿPK!88sym_db28_56_ma_pywtCoeffs.npyNUMPYv{'descr': '?:FĘ?zj'i+& ,޿l$?xD?H`À-迼 *ʿCi返Y_?Vzj?DS(ӿ#^{ؿ)qKٿWUt}?9}?@]n?tY!?ѮZ?$u-?I?+`9_?Jx?;EJ?dh?@V*H)?Nk?&G?"Vݿ62ۚ? ?-H8?R OzAض?>١c?߽7W#὿^k7?p?cֿwḉڿgQ?.?C忱`tֿO߿*ȵ? ?sz5ҿ&: 'r;?m !?i?ҖRݵ?("Yv?`??k)I?qA?r9_?Xx?ȎJ?$źh?@W*b[)?ULr?W^IG?B+tBݿ_gq?Bd?1DP?01RA|Ml? 319}?Kb.J/Mʿ4 ?[՜?Bq8kbT￸1= 㿜;;Z?qk zÿPK!588symw_db28_56_md.npyNUMPYv{'descr': '&"۱ڿFQ?q.?T9忻 ؘ`tֿ&4߿wȵ?W??y5ҿ翶_|'r;? ?]bi?8nRݵ?>"Yv???g(I?B?+`9_?Jx?YJ?h?1sW*{%i)?Zr?>IG?Bݿl]_gE?c?\b~P?+A|Fߦl?@J!k}?MKbF/Mʿa ? [՜?z8kbۼcT%3=`u:Z?1k zÿPK! 88symw_db28_56_md_pywtCoeffs.npyNUMPYv{'descr': 'p?tFj?.5eqw?SċҿSfk7 `߿R5lQj7.?"7!Էۿp?tFj?.5eqw?SċҿSfk7 `߿R5lQj7.?"7!ԷۿU:ҳ?gɝTl?~`?0Q1?@i21S"?0b`?Bl͟ӿ0lݿD,9B?EØ4?[o3Lۿ$A?4+Wdv[a,ϛ/q? C@f6mHfſYnk_?T<?2&H$?;5L?Qp1?Hŵfƿ=E=B޿xQRp?Xf޿h?Q9ȿJ 4ח?_ 2?ٷB| 4R?긐>OM?FMͩSbyb"L?iwZUs= C'?|2d ~aŢ}>紧гtPx$j[sx>콂Pg>m}H_=J>գY2KUSH HD¼PK!^88sp1_db28_56_ma_pywtCoeffs.npyNUMPYv{'descr': 'Us=B'?;d Ţ}>xгRx,5Osx>^7PQi>|szP_=ԣtJHGهݼPK!``per_db28_56_ma.npyNUMPYv{'descr': 'Djڿa?ٯ +A8׿hh jbY"rG?cGC?2G,(tҿ M$1n+u;Y?XX՚?x n?$¿isX?w?ڹR?b(h+?GA?zo?pa9?n8gr+Sj0?s?nbhC@Pk: ?PK!4``per_db28_56_md.npyNUMPYv{'descr': '΋q?ͤVJ__?T߹H*?#q.Yن?2la?PK!7``per_db28_56_ma_pywtCoeffs.npyNUMPYv{'descr': 'X?$6?&R?)'E#+?pGA?& ?3k9?BIgrܾj0?΋Ywq?AV.:__?(eH*?^Xن?2yra?PK!~488asym_db28_56_ma.npyNUMPYv{'descr': 'O^s?,hڕ￀=( 6 }?zc렿,7A(e?PK!<o?88asym_db28_56_md.npyNUMPYv{'descr': '?yn"D?v|??MZ?\;?Uq9+ۿr?=#?;m#~vſQ:\x⿾Z?*;?=w,&ۿR^.'? RXE sgF1/q?'eB@VeſU]?8y<?o&/#$?PL?p1?Hŵ:UǿqQ:࿤Q7LR? Y返 ? ٌؙT^n?li2_?L;c?B>g?^g)?ٗ?~I~d?80u?YK5?yٿQڏ7uawyֿ%0)'b(^3&(?K Cѿ4zVIJEѣ?AοJRc?PK!788asym_db28_56_ma_pywtCoeffs.npyNUMPYv{'descr': '꿱 bas?e ?i :<^.?+`9_?dt$.?fLc߿yE6? F"'J1Ͽ,tS?̺?sGgs?Bڕ#=(O6濍: }?ac렿б@(e?PK!cZ88asym_db28_56_md_pywtCoeffs.npyNUMPYv{'descr': '@f2z@îa7@ 6K@r!$ @d ~@@ >@0@@|<@PXXc @NMH * @Kf&@PU @ @Yh@FV-Q?oT=?r9_?Ҟx?sJ?͸h?HV*[Op)?lL?1 ]G?*][Yݿc `?AS?$?q-?c߿4.? x4fVԯ6{U?R>/?}cۿMٿܭޢp-̰T?I~@t+?PK!88asymw_db28_56_md.npyNUMPYv{'descr': '@lAq?ǐ3s?yп4ui@v}?K6u@Dێ+]Ґ?ql׿~P뵷?PK!<88asymw_db28_56_ma_pywtCoeffs.npyNUMPYv{'descr': ';=@a]z @@Q@ם>@Zz@a7@Ǣ6K@$ @ ~@P_@v >@?@5<@hWc @_H * @Dpf&@JT @0s@0!h@[-Q?XT=?+`9_?Jx?=J?ZUh?U*u')?Z7?[G?@[YݿBZ _?48?p?`sq@lkAq?L3s?ٱfyп/i@|d?|]ǿ6u@eێ׳(֐?v0jk׿?2?PK!gC@@zpd_db28_57_ma.npyNUMPYv{'descr': 'HGёQZ}^x>㙓H*ТȳR>(>1?W81MUBc?&#u#ځ?ۉR#g?QZdv? Ő ?`o.ާm"]?=Ўj~5Կ6E?7@f?^u?' &_!1yluY?Y ?S~ ?9ml @M ]fb4sݢ,GֿZ"H$b9Obq?_K?ȓS 4jhfkC+ E? r?g?=ۿ ұD J{!?q"?4- ?!HN?TX?5?X2j?F{șe?Pv6>PK!D@@zpd_db28_57_md.npyNUMPYv{'descr': '?jM?0?7?~O?.[j?n?R=~?w3)@?0 3%UCUiC< ?e̎?ϐ?YqݿXfƎ?>#ԿȐY?Fo|׿ X mӿHwUU?}Ť?+g9?Ť?5̖?τFd/i+e,?nM?]ﰲS'_,?ӷ@6Qz?+^<?_eX~L HY?A>P 5A?cZ!.Y? *0PbGp>t;$aY}('Ie>e>N;u=T3͢=][8 ?PK!mh@@zpd_db28_57_ma_pywtCoeffs.npyNUMPYv{'descr': 'JёQ帽|^x>㙓 '0Т|dzR> 2EɎ1?Yo.M Fc?!7#uldbځ?4H#fg?Zdv?vu pǐ ?mo.Nq%]?h.ЎYd}5Կx6E?1]?f?Act?b%_rDluY?]` ?b=~ ?6k @|W. ]GO4s⿨a,GֿMw"Hb9_aq?ݧ1K?sS0Tjh*jCӥE?+R?ߣ<ۿj I[D,z!?_1"?)R- ?RHN? }W?.S?1j?+șe?6>PK!i3@@zpd_db28_57_md_pywtCoeffs.npyNUMPYv{'descr': '?U#ԿsY?~}W|׿0W mӿQ1wUU?.h?[f9?h?`1̖?>ꂳFLÞ'iW,?oxwL?\ﰲlb,?ۯTNQz?<;eXY HY?Og:Pnj5A?k&CZ!.6K?C#0+qaGp>U`X}eIe>i>N;ȅu=\3͢=r77?PK!8K@@sp0_db28_57_ma.npyNUMPYv{'descr': '^N?D8m~?}= {\ۿh=HzCfО5kC?ѶW /?GvAv??w?u{?޻8?`7o?0+v?!?PK!d@@sp0_db28_57_md.npyNUMPYv{'descr': '5gDyj1@q?`Ah-@Z?ZIEA )?lM=<H ŕ>v* >LL.Vln$}>RdyBo6. n=|p$3NaZamh!!=p\ 3=^PK!@@sp0_db28_57_ma_pywtCoeffs.npyNUMPYv{'descr': '( >mY*L.{#}>1@dyB, y. b`=F%4N41ZveSg !=b`7oPK!6X@@sym_db28_57_ma.npyNUMPYv{'descr': '?$)>?j ,?PK!;^@@sym_db28_57_md.npyNUMPYv{'descr': 'ok?̭8?>^@HqݿnÎ?JQ<#ԿjY?J}׿`W mӿwUU?'&Ť?+g9?P]m?5Y?ⲿoÿ`MfѿyAraGm+mr?Fh?6il|׿cିb8\,?,hR򿨊h#o? Ц,ٿ}5 +¿SWÔCŶ-69_?[@;&?g/,h?h?NL-MRMxƨ?\5?!<ٿlPK!~[X@@sym_db28_57_ma_pywtCoeffs.npyNUMPYv{'descr': 'l @) ]ҕ s⿈J-Gֿpw:-<Dq?bcNip?%񿘟$QcdU9)F?a?mFڿzd~(yaA?E9?+tb?';?Wh? \?b>?A'(>?  ,?PK!\/@@sym_db28_57_md_pywtCoeffs.npyNUMPYv{'descr': 'DCKذ?ٞSo$m~?=-@67ZW޿uWʿgKgX?Ej,sur?qL+?Y![n?,L?J۔?n\?=]_OZ?@?lHʼn)?j ?' &_㿅0yluY? ?\~ ?΀kl @6xD ]Zsn-GֿSB:R9q?^ė?``)XzcWB,glN?A"Aiƿ.$?>i+>1q?AMێP=?[1?[-g^%qݿba?#Կ,Y?ip׿5OW mӿ5wUU?1Ť?+g9??j=?#o 4X8yF?O#$?h}?Ms?s@Yi?̿Kc ?o,翏L?VgP?oUҿǃz?FOڿ]?xӾ?{@TRO¿xQZӋx@Aآؿymٿc Y\?Nz8/?ir?PK!RY@@symw_db28_57_ma_pywtCoeffs.npyNUMPYv{'descr': ';YW޿VWʿHX?Sj,H|vr?OL+?0^![n?RCHL?.ܔ?h?BO_/ OZ?4?lR)?L?b%_DluY?A ?yF~ ?}k @$ ];s9-GֿMB:_99ّdq?×?!`^xycuB񿏙Q?L]?d;ۿ!Xj3L𿴃5m?eڶ?-s?6⹯F?!?H?bwD?#"?Ц.e"?PK! _~@@symw_db28_57_md_pywtCoeffs.npyNUMPYv{'descr': '^??˵ێ⿀c?1?w3]%qݿ?#ԿגY?PX׿EW mӿDžwUU?h?[f9?T?B>=?2X%zF?dO#$?Lf+?c&s?ġY꿐/̿yc ?n,翁L? qP?mnUҿz?gNڿ}]?M9xӾ?SO¿u=Q:Px@Xcآؿ ymٿ3WY\?L:? ?oF9ٿek|*p!?*89&?h ?%Ʌ6?D+Q:?6t\I'E=BдR9P3 ޲ۙd˿]9?ga̼ѿB-гS꭪b?swW@L-CH?BHajq?J-8;?P^ pp\?AE࿍wu} пy;*?Q2iD:4?˂Oq?PK!i@@sp1_db28_57_ma.npyNUMPYv{'descr': '?H $?4\?#D?@N,+If+?lk|?J&\K¿Ӝ݈? rzdhID>_Y ? vϏÔ'ē?_!x?X>Wqݿ-Ǝ?C#Կavs Y? `}׿/E,X mӿ8CwUU?Ť?+g9?i*?aQ\?Hֲ)W>$6?D*绿 <2?: LP濜j?8g57i)(B3p?8anfXWإW?D*jhB/TY%?hq}۶> R>~J֘ d>[.A6>r !` w^==8lf}|$PUl |?f36?U?uŻ3?37t,?y#?2? ?PK!c@@sp1_db28_57_md_pywtCoeffs.npyNUMPYv{'descr': '`?p͇*绿;2? MƜj?Zgi 6B3p?r;Rnfj=aإW?tdB?TY%?sm±}۶>:uR>XvEJ֘n;d>[.A6>Sr !sy^=:C=ͦO}(&ZjF|xGPK!2thhper_db28_57_ma.npyNUMPYv{'descr': '(]?m@H-V`S6O9opC/PK!Uhhper_db28_57_md_pywtCoeffs.npyNUMPYv{'descr': 'Ɏ?WJA#ԿbBY?Ʊ{׿VgX mӿq:wUU?Ť?+g9?: ?3?[+0Av O׽?ɩ1y? ?|gG]?Ӗ{忛H܏rqŏF?j3n?jR3࿑g?&(<ҿ Sa? u?*v?P[.?[;_;` M%ֿIhdҿ8X@z( ƨN$N?6ܯ5sɎ?.A#Կk\Y?`{{׿y(X mӿzwUU?h?[f9?i ?L?`#AvO׽?P1y?@W ?1F]?`dҿAW@P3\ ƨn?|`5)0俤b>K'}Ƈy?f{?;7?`Pa UY?rSM7E`?w׍SJe!yӾ$’?-j?#5R?xXUTע?q=zm?)ׂY\Mz?7/irPK!"V@@asymw_db28_57_ma_pywtCoeffs.npyNUMPYv{'descr': 'H[?>nr9J?%!?^E?.3 @ 1?J;Iֿ55? IUܿsI?$l?/b`?9?r<7?ZKx?c-}?b%_㿰DluY?1 ?}dD~ ?l @I ]7"s⿘-Gֿޥ=,S<((Ur?2O?O9vk#2f࿞7q8:S?f?PڿKΜ Vsx?ØKex?]x?{ ?A/?֢`?05?`¿WCi9?PK!s@@asymw_db28_57_md_pywtCoeffs.npyNUMPYv{'descr': '(>wq1}Ƈy?aWf{?o;d?`a ⿝UY?5$M7濹&`?Sr#!yӾ@ T??5R?igxk֢?rym?lZY\:y?8/rPK!)HHzpd_db29_58_ma.npyNUMPYv{'descr': '%Fz&>O@4p\#u>A>vP濾;)DX>Hi M7v0i-?ôbEx?U??AgA^|6[Y?M$zJ=?עmr?6/k?NN!/w& yi˄>CժBkk7O@A>1k ~5C=Kb8Ax=5g}Ԓ9PK!ULHHzpd_db29_58_ma_pywtCoeffs.npyNUMPYv{'descr': 'a9{&>4p#u>hrxP濾hbX>00Hi;ƁK7von-?' yEJR?U?A^< [Y?`LRMF=?MkmH헂r? tT0k?D8!^ۘ?Jr%t xk;+?dqQ;i,W%}V濟\9տgmI]`0xpaW;h0?ݶw?i{?&?Z ?QOW?PrБ򿎶??F ?P;Iտ-?r?`ev?!ml~&?@q?*kV8}VX#g=>?o?P+ijK꥿`?<#b8P\A9;?P3n!a㜕?(~فվ-8[> q)zi˄>Ckk @A>*LBk HD=c8Ax=~Ԓ9PK!HHsp0_db29_58_ma.npyNUMPYv{'descr': 'KbJ)-cθ@=i(Iu6-lm U/C RAؿtT`F?!o]¿P?/5r%?Ls?x}ExZ?*Hm$.;?Zw:zJZ9?yd`'?##.OTA@`euqjnĒb?ѿO&?F?][UB1D ?&}H?L?N8f4FcrS~%?ۺU<Rp㿪>BW؃PHտ`cH]VwxaG;?b0?)_v?;0?R?#K ?"W?w:?ZsP?XthٿqDz?Tb?o,(*?6qʠNu?8HԖk?/ܳ| Lc]|?;'>Dzu9\~Ci?Z3W0B?eE67%}?Vƾ=9q >Jf0x5dF>Ox~KmhWCʽR7(=Px"=PK!gHHsp0_db29_58_ma_pywtCoeffs.npyNUMPYv{'descr': 'BwWlVSHտZqH]˘xrG;0?w?>?&?[Z ?QOW?4^1?MuP?ƄhٿDz?R? zd*?[ʠ+Q u?ڬŖk?߁|Yc,]|?faDzuD~Ci?;3Wdn]0B?lE:7%uR?>䠰Vƾك? >eg0x#F>ĝKds%TCʽ=\H4"=PK!;;HHsym_db29_58_ma.npyNUMPYv{'descr': '*@mv?n?1@`LpKyac$qٿ|m=F꿋W=zjB醿Qn)?:m0(?h:*ſ:xLok0?%?Ls?lw}xZ?&,H =$.;?4!wޮz"9?D'?瀛.pA@| 2?WhZKa&Y?^mlf?h񑎄g AR򿮬*ca?0NPxߓO5q&?VRTV~kB&B"s[տGKG]x%aR;/d0?kAv?%,?@S?*$K ?"W?:U9E[z$z?=5to?nUX%!ۿ$mBl?݄:@לAԿvE1乫/쿚? \/?R7 !?#4?OK?n/_?fOW?hG{J?EڿWV98?`*@?>A?R@^r9L!fJ{rٿ*>F꿶;>迯zVB醿?k1(?r~*ſ=L0?R%?s?MY}xZ?Q H_8%.;?Ճw寰z:yU9?2'?=.~pA@M!2?dsܮԋ𿳥&?࿿X6RSk&)(gu[տLEG]1Zx-S;*S0?Jw??v&?Z ?QOW?#9ε$z?vo?&UX3&!ۿUl?5:9 @B˞AԿˬ /s's?/0?^\8 !? 6?M?_?OW?tJ?6VEڿȯX8?Y?d?o?sEEyeui@PK!A¸HHsymw_db29_58_ma.npyNUMPYv{'descr': '?|wtAbv7G=ro,?HI-,mY)kea={*տpKK]p|Çx俅b;th0?[?v?3?p T?G0K ?"W?P@+yxh?\)V^?䎮f?˶ ߿P0nJ9G8?v?I7?ds?Z?)(}3X;5 ?FBaf=տ:!Do?RjD.r?H}? oڿY8όH?_<[?ѹM?O>fI8dPK! HHsymw_db29_58_ma_pywtCoeffs.npyNUMPYv{'descr': 'm!B?c?s Ey!0?[`B2s޿Tgg&?,^4}?Drr䳿aR ?b?@yy[@VZ>﫱%?L:xJտ:?DcؿQ6nV?YjP.5?;V?D?YJ?ִv)?s?sY}BxZ?˝H+#$.;?@wez+9? "'?%;ޕ/%dA@v/3?}i5k\eZ?mG_H?q.zz#y#: s?.D?zT?){?Z\ѿ*Wڿ??ٱ""?N5T?/PK!HHsymw_db29_58_md_pywtCoeffs.npyNUMPYv{'descr': '@ļdPK!OHHppd_db29_58_ma.npyNUMPYv{'descr': 'w`J(z$?הն_s?.ITH?3}&?Ls?v}SxZ?,H$Ğ$.;?ld>w`J(z$?הն_s?.ITH?3}&?PK!٨HHppd_db29_58_md.npyNUMPYv{'descr': 'dh5?E-,dR}?d?5)Z?οPa{{i,i0<3? ό 3k?hA X濎7/Oտ߼I]~2x俕Td;˵0?=mNv?H=?dS?&K ?"W?f5*? ky*,?Wx濘C?$>dh5?E-,dR}?d?5)Z?οPa{{i,i0<3? ό 3k?hA X濎7/Oտ߼I]~2x俕Td;˵0?=mNv?H=?dS?&K ?PK!祪HHppd_db29_58_ma_pywtCoeffs.npyNUMPYv{'descr': '?cOҔն[=^s?fSH?p3}&?s?Y}򿡂xZ?c Hɪ%.;? w[/z<9? '?A #c$.K[A@Ǘg3?0нdῢie?ε"5`?V0mymhSi(? '-eHT?=ml?kqM:>?cOҔն[=^s?fSH?p3}&?PK!>5HHppd_db29_58_md_pywtCoeffs.npyNUMPYv{'descr': '|*,?x濖0?ͪh5?F-7d[?d?kBZ?/}{,i3?iό|>khG_<62OտҀI]oxAe;vc0?Lw?$?$&?ZZ ?QOW?*5nf?>|*,?x濖0?ͪh5?F-7d[?d?kBZ?/}{,i3?iό|>khG_<62OտҀI]oxAe;vc0?Lw?$?$&?ZZ ?PK!?HHsp1_db29_58_ma.npyNUMPYv{'descr': 'C"> .<ɚ-yN:e8ۮ5.n3[ 1<s-.I()ps$ɧ)i +zJ )6 Ґg=Y?ʭ ?Ls?m}?xZ?3H/4&.;?ZDw!!zN9?0'?{+,-A@J]4?3vj4`?kh-t9?eP8]򿓣Ry?=Q5:xP?yaB?An|h f:?QB=wK6@6$PK!ʛ1HHsp1_db29_58_md.npyNUMPYv{'descr': 'uj?$I~?~X?38o?8+k^|.l ?7yDu-3?2\uf#Ùx#oDտGF]@x%;ݬ0?Gv?j?3 Q?K ?"W?ވ 8?̀?al{svZ],?q%;?_x&X @j(?:xbZR?gDlyσ ?1+@[^6s?HY[<C9?@^߷U; $)>)0{̾\W->/cx0 /9:1>#;Ƚ6ؒU|&_PK!MHHsp1_db29_58_ma_pywtCoeffs.npyNUMPYv{'descr': '.<.yN:8Ktۮ5n3a 1u>7s-!Z)J(:s$)iQ,zJ Kg3 X?| ?s?Y}򿍬xZ?gH_0'.;?w2(z=P9?P1'?!+8),KG-A@s.4?rwjЍI`?sg3lh-x:z9?]^F?1<7H;15b?^nB?knc8gD^q?׻ wK^@\=6$PK!>HHsp1_db29_58_md_pywtCoeffs.npyNUMPYv{'descr': '{̾)h"->IU#/cm0,u1>rbl:ȽX=:| )7gePK!1Ѓhhper_db29_58_ma.npyNUMPYv{'descr': '?הն_s?.ITH?3}&?Ls?v}SxZ?,H$Ğ$.;?ld>w`J(z$dh5?E-,dR}?d?5)Z?οPa{{i,iPK! hhper_db29_58_ma_pywtCoeffs.npyNUMPYv{'descr': '?cOҔն[=^s?fSH?p3}&?s?Y}򿡂xZ?c Hɪ%.;? w[/z<9? '?A #c$.K[A@Ǘg3?0нdῢie?ε"PK!Fhhper_db29_58_md_pywtCoeffs.npyNUMPYv{'descr': 'khG_<62OտҀI]oxAe;vc0?Lw?$?$&?ZZ ?QOW?*5nf?>|*,?x濖0?ͪh5?F-7d[?d?kBZ?/}{,iPK!GHHasym_db29_58_ma.npyNUMPYv{'descr': '~#-?p(93_?OuSe U?+HR>?iX Xkܠ?Aj]ڿ?V?PK!.|HHasym_db29_58_md.npyNUMPYv{'descr': '$-?.(9%9_?ي']eU?[R>?iX rJ8G?\l]ڿ ?t?PK!1$,HHasym_db29_58_md_pywtCoeffs.npyNUMPYv{'descr': ' 4Vh6{忓4/H,efX>$#?V18_[zѿr?vEE?>e??uiPK!,HHasymw_db29_58_ma.npyNUMPYv{'descr': 'YHB͠C2p4Z?*ypѯؿ%UIGRL e@?3yvGKlN68 -Q[ D2ehXRN){9(?qAt]ҿpDI?X[5{11fs-濉gnV)ms O6v޿A]K?!?Ls?rl} xZ?7H:&.;?!uwçŰzz49?'?&WWg,9CA@ ao3?6aS5 ?FW0>+ ?BAӎ+_F,-?0'{&F{[5뿒}69?FF?+e\ڮ[?,7ǿdTR迌'Ueu=PK!%HHasymw_db29_58_md.npyNUMPYv{'descr': 'GDZ}0-ϩ?Y9Z@jX?)8r[޹M,FO>?J8d?PK!ɌHHasymw_db29_58_ma_pywtCoeffs.npyNUMPYv{'descr': ',Z}yvЩ?$Z@By?Z \ M濩8;P>?ożd?PK!X'PPzpd_db29_59_ma.npyNUMPYv{'descr': ' v[~*lܫrB>Hl 7ӓ!ip1>^J$qÉ8?y cQukn8P d?nbS!sݰz~?JMzhL_)?: 8?V'+ \8R?@ ʿ6+ Q?yRR?vp翚Z4{Ph濦ٿJ:Xq#"?8PR;?OmWPr?蓺 [ⰺ?ǻa쿾@I?trs6˿8l ۿplju?{~$ Ӑޔ!쿐)Z!Y9cIkuI_쿈t??b?e6,?R 3T?PjyR?f fEg>PK! ~PPzpd_db29_59_md.npyNUMPYv{'descr': 'Mn4h{u: 帲i(8տ?.׿<(C}R,?5v A@HBg@.Zu0(ȧ-w.k/@?+e?~׿*L/L?ο f$?DDÝ翓gO@ݿܿ|#?04⿕s]XxrᛁH?^Q&?EW@֙oM?!`1Y?n/w?*B`οr@?4m.Kÿ(+ ? qݭ?42܇c?qBfP?&sXR3.Q?f(FAX6>+?xHݔ_>yƾ@>Qd>\źPZ+Q%>褍itZ''r!Gfh=x%V\~*lbnTtB>u} 7KisH3>6" É8?ȱ뉫cQj-P d?]u!s'z~?:1z_)?ԭR?+yb8R? Ӆ ʿ Q?ɆyzR ? rՅ-5{]BQh濛?ٿyJE qj "?mgV/R;?VPr?ɟsEⰺ?mRa8BI?hrsf˿l ۿku?b $ !!.:c࿩l ;`뿻9#:?ru??/*,?FW4T?ZzR?a#Fg>PK!pPPzpd_db29_59_md_pywtCoeffs.npyNUMPYv{'descr': 'Fo4h!帲lj(8տ5.׿uN)鿲+4 ^,?# A@Nh@.|puHbv_w/@? e?x~׿ a0L?T#ο%?f nYm@ݿUQܿji%?x W4Ct]At6I?jQ&?7ܕW@̇M?0`N Y?sMw?/@`οxD?^RKÿwƿ%+ ?Ujݭ?#܇ $Gc?fP?^sXW.Q?(FA"V6>+?eN:o(_>\yƾ>,%ͯQd>c ƺP.Q%>HR ''rEgh=(&C@Bl%w~y 8?c}T?SW׿(?aοhB?V翦iݿҭܿ'E? 4e7t].Lts6I?>lQ&?7ܕW@%UC?y&@ i?u{?<@vg̿l-?N׶?: 5n? q=6x|C?$X\?Là\[A΄P?d'$ c>Hj&?;r ?1~>;& D|>#X>3fr:BTS;>:ڽ.*~sv=؆N=4U+la%Mm5?(? s_W?gݿcP*/ǿy?rd?tEL}꿡żw8; Ύ:N?>bhQ|шè?]%ʿun? P?=}7gdR [ӿn{"4;PK!l%PPsym_db29_59_ma_pywtCoeffs.npyNUMPYv{'descr': '?a󤂿RFǿ)`Y3*͇迼o?خGPĿ^:0z޿C?j<njm-]BQhi?ٿvJ꿩" q,U3"?GDῙ裵Q;?Qr?˔\S?f<@I?WR,+˿-]ڿ+`?G|~+$w(SZ4Kyb !迹cOى7?h-??#K͐Kg?`'mޠ?pȗD?PK!6noPPsym_db29_59_md_pywtCoeffs.npyNUMPYv{'descr': 'HN?*ߦ?]t?9hcPT? 59?q^῭Ra?>MMa.b"EF?ZBw'7<s?5wvŲPh濎ٿ8JsYqvP"?U"O;?=Pr?Cu~Y?{mLsI?tɠ,kN˿ۿ#Qt3?eq@c (ft^{ڿ|wr/WIHx7ҏ.:?~cF8*?.?ɜT\ƿi?~NU?]s0y?PK!䃙PPsymw_db29_59_md.npyNUMPYv{'descr': 'οɨݿ[ eEdR m?~^%D;@'^mtG-sPH-h?14?;\-׿%'"?IHο!ײ?54r翁;%ݿ+qܿf?84W r]2sƳH?e.^Q&?EW@ɾ}-:ޜ?o}]$;p?҃ٿ%e㿧r?@f?o[?|uпU4ÿ\ m??忮<)yտsӖDG虋|7?7s'?+|.ɨ?6܆aCԿ 6>(?0?濏`?; @ay7ѿ:l[ɿJв7?Zz?W͚PK!#/PPsymw_db29_59_ma_pywtCoeffs.npyNUMPYv{'descr': 'ٿUJ} q8̀"?my5>O;?Pr?o>Y?e9쿖ZNsI?:kj9˿p/ۿgd4? qc| (뿂tڿ|2rL[WI俑^0y7 /:?;v8*?8u.?7ًS\ƿkxj?gV?\1y?PK!o5XPPsymw_db29_59_md_pywtCoeffs.npyNUMPYv{'descr': 'r翀.,%ݿ׵ܿ)x?I4⿩As]u4t:I?߅Q&?7ܕW@~+8?Y^$P@҃ٿ^}e㿪yr?2L?03[?-wпY+߁44ÿI-@?If忍i&)yտ`DZ-|7? '?D>\.ɨ?TaCԿ*??濴a.`?a2)7ѿEm[ɿFs7?W{?͚PK!S̹PPppd_db29_59_ma.npyNUMPYv{'descr': 'tiЌowE濘k'/aQAJ˴J J?9*??4zk&wueDg?#~"~n Ph濊ٿJF=Yq "?5 ῸnR;?ЗPr?I{%(?A H0L(J?tg)˿voۿVr|m?6R쿪+r5B/vn}3D[n>S?ͧ1^?^rÿʟ}V? '? T=83'޿PK!}0PPppd_db29_59_md.npyNUMPYv{'descr': 'H(J?"ӗgWi˿=>xoۿJ|m?.I쿷қS̰S߂5B⿃/nud迆VBp>S?2X3^?R_rÿa~V?'?L T+'޿PK!*rPPppd_db29_59_md_pywtCoeffs.npyNUMPYv{'descr': '$ܛ@|`O??!P(j˿|{1ۿZ||?ڐ&뿃MEvL#g*^Gb$o8LIe9,ѻ?56QO? ?Q tC?2x9w wyXtPK!jPPsp1_db29_59_md.npyNUMPYv{'descr': 'oa?qDCĿ3?" @&J ?֍8)lX>Lum?zip4(^?ҿJv"4G2?q#}A->_II풾eh6ڻ{|hzV>L\QS>>=H܈F0.(0MK؉PK! PPsp1_db29_59_ma_pywtCoeffs.npyNUMPYv{'descr': 'fI풾 m=ڻr+zV>APSr>U@=ː,8\>tNּPK!ippper_db29_59_ma.npyNUMPYv{'descr': ' ƪr,˿dJ7ۿI'~?PK!̻ppper_db29_59_md.npyNUMPYv{'descr': 'j ?sӦ1^i ]BQhi?ٿkJa q1"?iYyR;?Pr?z8NӰ?z]hTI? 퍁N|.˿m9ۿ~?PK!;"Nppper_db29_59_md_pywtCoeffs.npyNUMPYv{'descr': '2ǐ?Ifgɿ#h!9QZ"?3?9{kj!(&L=꿏E?PK!ʷPPasym_db29_59_ma.npyNUMPYv{'descr': 'LķCh꿤CBK?ye&?טk׿. ?a}+οK7_? & ݿKܿJ?O4-=r]SrűH?^Q&?EW@3qQQ?d&YەiE?YL}-'9Կyʇ?<`w?v?L? q1ӏzv@_ҶnIz ?ap?$ѣNۿʐlȏ뿤qؠt?W;?%?7y Έ]Q?<¨is[&? nunG< Pi?67d?> [?r"4@o?PK!OKPPasym_db29_59_ma_pywtCoeffs.npyNUMPYv{'descr': 'BX Cȧ]BQh?ٿ|J3i q𿪍"?نh9wS;?UPr?Pn-?A ]쿈J?ҒrGⁿOg\˿Oz|2ۿVNPM?gRUX#{ ((k࿑[cIB Ԗ5 4(`k?o[Wm ?2܁Fe&_R?ivֿdrc^;PK!n3PPasym_db29_59_md_pywtCoeffs.npyNUMPYv{'descr': ' ŷh(XBK?&?k׿ˢC?T#+οՄ`?\񰍧D ݿE{KܿsL?yб4+$t] t4I?fQ&?7ܕW@<.KSQ?񚍕 }T9iE?}-'LŜԿ[̇?^w?vPlM?$ ӏz`ҶKa| ?Zp?klNۿmȏ"_~t?m;?`c&?Gy ]Q?냳¨g]&?Hun| P!Hmd?m9l[?@"4@i?PK!M9qPPasymw_db29_59_ma.npyNUMPYv{'descr': 'Og˿8ڿ0ɡb?Π^9{+0x V>俫{mO;$tjUɓ ?,?)Nѿ= ? W? sؿPK!5cPPasymw_db29_59_md.npyNUMPYv{'descr': '{/{fm>?ט?u%G?Q& ?u;SX?Lր9C?hH=T? sH;[wf"տ %ը!{NxC?H߿H]??T]`^@s7?4#ml[?в7yzW͚?PK!qFPPasymw_db29_59_ma_pywtCoeffs.npyNUMPYv{'descr': 'ɲmH%t WlUƤ ??Eѿ ?[ZyW?,uؿ 9PK!/PPasymw_db29_59_md_pywtCoeffs.npyNUMPYv{'descr': '?sbmؘ?$G?m ?܏<5: ?9C?.+>T?>8rH;#wf"տ\$ըHxC?}߿"o^??~aa`K_@7?.im[?`F7O{͚?PK!XXzpd_db30_60_ma.npyNUMPYv{'descr': '$o󚆾\2>2?]Vt?:b?"a?řjlg?̏T9㿩 F?('?gQz?$# {]ۿ8|?I?6x˃?S?Z Jn?ԋa?X6QSZ?> 2s\{N'gm?Ǵ]kц@:h %K`Ƈ Ϳ\9ge# ,PK! TXXzpd_db30_60_md.npyNUMPYv{'descr': 'Pߏ&пqat?_?`B?+i?7]"&!ҿ4=ƿ1;[? Vѿcd6? 2BJZſ?"}^mv? K\aW? GJR?S.SE?751,2?VJ,>=> Xt۬MCH>{6+GcG>zD),N=iv4)c= nj4=PK!dd XXzpd_db30_60_ma_pywtCoeffs.npyNUMPYv{'descr': '+@r󚆾4>0Q;r ⾏ў?x1G/~ E?gե;UӎW?UcQ?"ޞdS)㌙?n)fgk;?-pɿy^?`?&ֿuI?mw޿E%b?P8=%8ڵɯ*XƟ2?Ct?^b?/a?~ng?Z4TV92B F?b(?Uz? p' ]ۿ>|?SI?\ ˃??9n?ᲇ a?ITSZ?`j2s^{v)jm?mц@`~k翾.C'Kh Ϳk9g=e#,PK!/8EXXzpd_db30_60_md_pywtCoeffs.npyNUMPYv{'descr': 'C,eR_&ƿ/+?;? &rMG?$H7?~]*lQuF@? E?;2S?27)?jS5%?..hTm?"9@`G;z?,KY࿸ ?U!#?S 4$rD+?'xNa[?E5t濹qKHj%ٽ?[Ŗ&п /at?|*?MC?YB/i?)!ҿBƿԯ<[?iVѿ d6?cJZſ?Y'^5?DJ߸K _W?X&JR??.S՝E?gD1m ?!/Q/: @>lRXMCH>.GcG>=zD)?N=[B)c=6qj4=PK!\VXXsp0_db30_60_ma.npyNUMPYv{'descr': '2?uVt?Tb?5:a?qYNlg?.GT8 9㿛')E?O?  v?SQ h-/ۿF? Q K?R4? X4?BԼH?R:>?{?Y1q ?<ÿKo ہy? ]h2@$ vF/Bglпͳ㿆AqCPK!XXsp0_db30_60_md.npyNUMPYv{'descr': 'Mߏ&пqat?c)^?@<*1?H ?ۿ#{\#~.I?Ǿuѿ0 4o?A4ƿdఊŕ?hFDM?V y2^G<2k?!׹8@?cfl_"S?g<sq ?t|%%[>9oֿ> 9莾Պi>S7` t6]0=籴=v\3 u PK!FXXsp0_db30_60_ma_pywtCoeffs.npyNUMPYv{'descr': 'mg?ͼTW09u÷E?JP?&4v?L xۿع?oT K?tdU4?!4?ؼH?m C{?F ?H$<ÿ@Yہ迋̋)?uh2@駱v++/B пͳ9CPK!"XXsp0_db30_60_md_pywtCoeffs.npyNUMPYv{'descr': 'ƿŕ?M\qsM?&̦y|@`2^'1k?:Z@?cw9a_"S??ՙg<8n_tq ?sW0(%rz >C>&9莾ŵxՊi>a t6錕0=#=BﮕY PK!XXsym_db30_60_ma.npyNUMPYv{'descr': '}D?2?Vt?b? Ca?3Sflg?Tp8㿯sBfE?0F?/_{?𥷧 eJyۿ=?d_R?×|?_Ҟ?ȳ>4$&+? a[?8p_mJGbAjٽ?Mߏ&пqat?g?M\td?^i,?Tg.soG[,?+^0R2? =ӿ;qzl.l?ɝ\bbʲ66.??S4޿u? (ˮH?H "?lI`?+ۦ?.P?BҧN)?b.hj?`Ux#J7"t XƟ2?WCt?]b?S$a?8ng?*T8"hE?^-pG?{?  PyۿI|=?SR?-b.|?lCWT?Hw^ ?7Z 1Em.2?}Vt?Ob?}a?6lg?@fTf@9㿵JpG?$6?s?V Jۿ"*? l=?. ?-}'?]j?JKF&4?kc^?y(ا}Vv?-! uʿ|Mɓr?J?*]?F2?kun俕bϛ?Jj@'%X? KYy¸?|Г?I5$L+?Sv a[?#m>jGjٽ?Sߏ&пqat?gkm?۳ ?jA?arF?h)w?EШ??Qյ?HxԿzkR6?IR߿J̛Mֿ勎?P\۹ufݓm?0wӿh?i0?w?VJ?JL%kXƟ2??Ct?+`b?`a?nIng?1; TD9prG?=v?SHv?DD ~ۿ?/=?z ?a +?nj?dkNF$4? !oc^?pO(ا(]bV>d=m~?e$@)"XaῩUbQ_G?1PǍmkտXoKEu?PK!8wXXsymw_db30_60_md_pywtCoeffs.npyNUMPYv{'descr': '?!31) uʿ#Y/r? :J$˕?0 ]?T52?n俗\(қ?hw@nX?PYvXR??1r6$$+?1Va[?>lft.HJ]%ٽ?+Ŗ&п /at?g?w ?CE?_ɲI?OM+w?!VҨ?Eֵ?MxԿ&R6?R߿jVֿ!狎?e3v۹>j? z8%KY?,?O=W?xq?=(?NܿTcC*Q?[p?D2+T?hP`׿r5;?񺔾?~?*? uU?PK!30XXppd_db30_60_ma.npyNUMPYv{'descr': '2?]Vt?b?m2a?ôalg?TL 9&E?՟?9y?LR *I\_ۿdwJ?BLO?A6K|~?Ar}-?{Gџ?ܴ ao-:?4i? ?d"ʅ?6+2߃)?x,??I;տoA.:?ߦ3m$lV%wPK! XXppd_db30_60_md.npyNUMPYv{'descr': 'Vh2=+ϯ;n6-:8(74 P5)"4a2.b&<1BM?/F,$k3Y)e>L%jŒ#B2FKD| sDMB3{-Qw8z %>2?Vt?b?{a?kg?zT9㿁.E?9?1i?~ Լoxۿ*a)?nI?f?dW?v?CG&-?;p?gݸ&ͿHdzJM?H7@@9N#`vF5FW?OZFx&mHλ(PK!yXXsp1_db30_60_md.npyNUMPYv{'descr': 'L پA>EBbq^g88Z>J>Du-+1bо=ufUEKh=B5/PK! ;XXsp1_db30_60_ma_pywtCoeffs.npyNUMPYv{'descr': ''bh2=v}-ϯ;jG6-:^8Ъ(7P5"4!a2r2(<1M?/!NlI,d:o3Y)O@L%|aŌ#"6F9D.\D$31y8zXƟ2?ϦCt?]b?+a?ؠmg?2TD* 9IE?3;?Ci?x0 uxۿXC)?7nI?i?_W?5Џ?Vȇiث-?n!ep?&Ϳ8mEP?X W@ #F鿛 GW?N*FWmH»(PK!h5XXsp1_db30_60_md_pywtCoeffs.npyNUMPYv{'descr': 'ȃ پBч>vgFbqua78Z>EO>%Kb(<[^=h=-ο5տurt T43?"R?J?C?tD?K+sǧ̿D?|mE$?gJ|?YV`pؿskE?r(naO?fǣ?&CCU;.D?{NnYG`)oſ{ſZb,MnPK!b%, ppper_db30_60_ma_pywtCoeffs.npyNUMPYv{'descr': 'T$ѿwW'$Rz? ?Bp$+>οNlտcut%9TPS3?HHdR?lJ?̔?ₚG?7Jǧ̿cj ?=C$?aM|?%ڍp?EHVPMؿF?n*ŸCeO?Y?C6qB.D?/stG`d3$oſ|魯{ſU=MnPK!k~XXasym_db30_60_ma.npyNUMPYv{'descr': '2?%Vt?b?a?Wnlg?>%TxI/9㿡uׯF? ?Kfx?V Bۿƌ.?|A?WIX?|??':?z~%iS?0T?/M˿ѝ5i\r?@@8/SˇH7j? ~<k4v@aOs?PK!b@XXasym_db30_60_md.npyNUMPYv{'descr': 'mZrGjٽ?Rߏ&пqat?YcD?+?T3 ??m?DʧL?y?{?SezۺdY Op?Y6]20%A6?V(?0"Kc&ח?5A|?Hаb@ ?Ltnֿ2[i?*a?gͿK葓~?E^?3JХ?+n?IRԔ\?PK!VGXXasym_db30_60_ma_pywtCoeffs.npyNUMPYv{'descr': '2?eVt?b?a?Q|lg?x'T R8C??a)i?P Bۿl͓?l=X?C\m? ݒ?̌TJ*8ءC?,W? i?T gۿ?X?c,\m?b)t/h%|<>y>hhjN&v?S2$ 4A?5N@XGRk}?PQy]?cN#;}?\*kߨN=?!70ѿ:;Quv?S_ῲ He?#+O2? X ?X2?̝ pކ=1*:H?P"m׿@ws`5?mͿ/N+kч8PK!Q{``zpd_db30_61_md.npyNUMPYv{'descr': '?eڏ\[Tf&?@dr꯿*o^? sۋN?( mo6[vB?y 8?H"x8TU")? aQn1}>m^ľ%ֈa>ZXfΧw>/KdXX8H$(>Z*lue*oaOd{5p=-{F.t/8|<>| y>_|?cv5pwPE>v?ʻ2nA?-W鳏@*=GRgrƑ}?|]?;}?jXke4N=?^0ѿ/xxv?D S_>vHe?#+ܦL2?g ?˷2?Lp|<1~K?&׿1@u?tjпlwbbP{%ؿJ9?z뿼dI> ˿Ltr?6K_?ի$Geп*`Zosg^?оE? #|5Q濙4?n?pDĬӿt}J~BqD_?r>@+c5?͉Ϳž Ƭ/k5==;PK!e``zpd_db30_61_md_pywtCoeffs.npyNUMPYv{'descr': '4K!ݲ?>D?Hz(?V-?cʧiyrܿua(XN63ʹw,ǿ>%?7&?^߿'$Q迉};?,MZ*?>7g?a3-hM9?]ޔ{?Ћ%ɑ) Ps; ٿtT?w;9?0 ^mJo?~JFKۿR!kBqjK 1p?C@Ϳ??!Bʿ!rD?̂R[ܺa&?E@)Er꯿%^?H N?ao_\vB?46 8?X= x8= ")?˹b|p1}> mbľ|1(׈a>*`iΧw>gXoۉK$(>n`knueཀWaU}5p=p笭&QпevB?\ۿBxC8^ǿ(' ?g?\O߿Ug:s"\ ?كd/? м?9?P{?/ Oȑ3 q:@ٿKP?*7?o^jւo?@[KۿbҨ}!lwl;x濤?B?=/Ŀ~d6?5`Nb?2C;6&S?oӀR] ?*\v"3^?yQW\?adgB?|x%=?w6-??F$ڳ9>\]v >([Dӕ^[< q>T7]܈l=EFWΖF5˿s!|tLr?5NI`?>&EUпMuvٳ B?Tۿa/xy,8 ǿd* ?Oi?T߿2 :D+\ ?T/??3Q]S9?]T{?RBF񾀐 9>c`v >v{Dӕ6> q>vn'7O$#p=!5Н FŪPK!7j``sym_db30_61_ma.npyNUMPYv{'descr': 'ſm ~?K!(?iۿRDOfɿ>3u`UHZT.?,?"?(4#ۿ>_ѿxo./5%{Wi?/ G+0!3?ō?#R)ѿÿ}j߿A~?cL?6*?5}ކ=1b:H?u`W=g]D?PO_?RĤ?EZ?N }wI?U_[Ϳ\)]<|TF^s?;_#/?n&>ſ~~?3&(?iۿ0?Ofɿ>{mu`kaT.?{ޱ,?ޙ/?G# #ۿ~3C_ѿxo2/[)¡ki?5Gb!1!3?ߐ?=%)ѿ#:ÿwl߿?3hL?-?P}|<1~K?׿)3@u?8jп9*_kw9}bP`*%ؿd/9?$뿶J˿O=Dr?C6 a?rSD&1܈п*vՌ?n/:?̆K濏&?6aHF?>*ѿ8!I|R_?xEls@\.5?g0拹K οi^}@5~R?PK!``sym_db30_61_md_pywtCoeffs.npyNUMPYv{'descr': 'k>C:??]]ji ݿkX@cIIӐ?q? v;?)hɖ?PK!Yk``symw_db30_61_ma.npyNUMPYv{'descr': '?RE|n7)?|"H7d0?ʪBUg¥ln?{J?V_пmwBj2ӿ>r,տ1@ g? $ _"z`/(?Sl翧!]?)¿éц]?tNp}?c;]?4p?A{ކ=1:H?,2m׿y=u?ajп5hwhb翊U%ؿdx 7?̄뿗˿h_r?1܆`?%Nпpkt̪}?FJ?^濌?V7 T?ݽοD[H f"b8?@u/?KĚvfxe ?r@Ny?PK! -``symw_db30_61_md.npyNUMPYv{'descr': '? }˻N1 5W>ſ~UϿ)wt7?̔?="?Ip`Ipa?;ek}?K1Z??/1?v?oT 23wߨ?-_DLyCޙ?!H[ѿÄPAinW6 t"PK!v``symw_db30_61_ma_pywtCoeffs.npyNUMPYv{'descr': '??q7)?'"ῲUo0?Dtuj>zfln?NM?}5_пFj2ӿ,1տ=cg?$}(c3"zhCa/(?R亢l!]?覝¿}]?g_NH}?!c? }p?䨏{|<1~K?6׿]"@u?sjп^wlw?9bLwX%ؿzn7?8?D˿/l_r?w'`?:Ɓ%Nпkkt}?J?EfW?1 T?̮οLJ[=%b8? @G/?|5vf39i ?1n@˴Qy?PK!(``symw_db30_61_md_pywtCoeffs.npyNUMPYv{'descr': '+#7 qͻNV>ſYUϿ;y7?j ?&"?7@Iq`>@r_a?f+hk}?䙶1ZX?121?`/?F eߨ?z9CLy`..Gޙ?aI[ѿ{PA\Z Ĝht"PK!4``ppd_db30_61_ma.npyNUMPYv{'descr': 'ex|~J gȿ$?3fJ?:Mfs"߿6 |ۼ8?Bq"?@?rw$;&3~B,+u>ZY5UThc&>=l㽗Fv3pt==83D4#y?hi@ jw?O{ᅦ ⪬(5T"PK!=;``sp1_db30_61_md_pywtCoeffs.npyNUMPYv{'descr': 'r#1?A:gd?§Q\w JR R!g]?\sfV30eI?72_ ?l>]=>b1~| +u>oc|UT[Jc&>nن gta{t=p<>"V=WFO?9Q3Tؿ{|HQ٘:?wܛ?^%Qf.9?ZF?v?!?c٘NڿYL?(@_?5@?F21qϿWϦDxʿu8Ɍc*GshoX'?ퟴy#(8_@7ST?+) ?ٹmy?Ͽh~?PK!Mxxper_db30_61_ma_pywtCoeffs.npyNUMPYv{'descr': '?b:TؿsEH僘:?Sޛ?$%0g.9?9UF?-v?d&?Nڿ~[4L?&B_?@?8.f?3`?ɢ*ۿ1ya.dCٿS?Ϙ?ڗ֯?V ?@노޿^%?^ xǠ? <8)꿥F?Y BDr\ݕ׿9k9?cn?cEFކ=1:H?bgm׿(z=u?ZFjпhwb~n%ؿ::?|\$+_˿GHr?R^?"C^Aѿvh`h󿔠; ?ךǢP?UXNw?fi 3?偩̊>ֿF.c]HsG|-_?=v$@.V|f?YA?- N?ҿ;C ERPK!5}H``asym_db30_61_md.npyNUMPYv{'descr': ':?JZǒڒy꿌 :AڿB䒥{Lȭт OC]!kmfK?@e? ??܃K/%?sh1kd[򿼐WX qD-?O!=6h뿔sJ?k?m M:鿷j+}͋j?܏?dlX??xFӐn(qg;řdɖڿPK!2 ``asym_db30_61_ma_pywtCoeffs.npyNUMPYv{'descr': 'ֿ/Byc]ƨs1_?.M$@N)ԑf?FJA?AaV?c>>C NNRPK!z``asym_db30_61_md_pywtCoeffs.npyNUMPYv{'descr': 'ĥ.D:?J*{? ˑωx >b,;㿄wٿT?q9? 0 ^뿏o?~JFKۿX%"\ǒYH|:=AڿE{L+ ւ )U%kٷfK? @e俧???ze4%?^2Edu[樾X¥rG-?']oO|6h뿛J?ΐk?ĵM: |YkSD׋j?)?RX?YIӐEqU;IhɖڿPK!Ѽ``asymw_db30_61_ma.npyNUMPYv{'descr': 'V-?b @C+l?Y]@;?)94@Elu1?nAR @'3xg+@ .1?s?վpp@k@Y&i:&@$vv?Rg @9Kb @qA?$"@Q"Mk?BNP+?I(@?X?_vn0?6 G O?ކ=1:H?l׿1w=u?jпgwob翾|$ؿZi:4?7<§˿rx9r?`a?#&`пH[xdel?[ ƕ.?Zml(?pL8?1v?տ͗?`@ B?:U}At5 YF PK!'{(``asymw_db30_61_md.npyNUMPYv{'descr': 'eVyr?[֯4Y ?6ޒavm-[myGuѿe:rԷ?P?%߿l违9XP?9!+? rY?J\Ea9?Op\{?1uʑDy 5m:蓎ٿAP?-%7?o^9o?@[Kۿ!翄T~gG㿜S?yw2?G%w?rVitcIe?u?gTCjav俋2@8=kb?M?H3~s7ly݀`X?L8ud1s ٿ{[ ?-xJߨ-fLy?hFޙ G[?PA?y5nW?ُ? t"?PK!| ``asymw_db30_61_ma_pywtCoeffs.npyNUMPYv{'descr': 'wѸG]c u>D&R \[>mL>\LP9?q.11}B?LK-ezeTHJ|cƾWXֈj:YF>*[rjV?>8ھ PIJ%=BN1%PK!ehhzpd_db31_62_ma_pywtCoeffs.npyNUMPYv{'descr': ''ݠѸGe䠠 u>;n&$X[>+F>=\L&v|?@o.10B?F:AMK(dTKT??Jx?ip?ʲ!Zؿ|Ӝ ?{k?iٿ'*߿964^m,y?62̓\ ޚ ^1\ ~PK!Ehhzpd_db31_62_md_pywtCoeffs.npyNUMPYv{'descr': 'UM|cƾ4]ֈg9YF>Qqj[-V?>Nәv P}sY%=S#ANqPK!x^hhsp0_db31_62_ma.npyNUMPYv{'descr': 'Vÿ 3??H!ߖ?IXo?f&)\aeҿZ0u߿#oWS??}piN?_bٿiTI?4)ῨfֶB/UWl:ESKHwGo6Eˤ8ԥ&KU"P?!ifqcs?Vyr?A@ۿ"q࿢ %ߣ?8ڠQE?6fM?%O?#ǿQ-?{x $뢵?T$"?mI}0'EQ=i?eBVgfoA\?S:Ed KFW_4?~vs>U2J>C7žr5t_>OLgzv {<>[b4hC=$=~]G@׼PK!`jhhsp0_db31_62_ma_pywtCoeffs.npyNUMPYv{'descr': 'Vÿ?X?Kߖ?VlWo?F&促aeҿ ZlX߿R??%hN?侄ٿ7I?k',vnA/⿐ 9ESEw1fp6("Lv&x0P?Dhf s?qđq?N]@ۿsqU% ?@f8ܛQE?/>ZM?0؏F#ǿΣf?/y so뢵?T?"?8"la}~kz E\=i?oŖgf讃A\? hd K?gR4?Ȯ|sFQ2J>a7žjtZ>K-Lgʂ {<>١bVC=T/=2=Ga׼PK![yhhsym_db31_62_ma.npyNUMPYv{'descr': '?ܦ g׿[7#;?(1x(?, Qt?D?wv0K ]X?? ̿A?ѥ࿩5y?_Mxc!?;3G)E2`<_K~|?{r !!DB'L?S?4ÿe'm, ?Aw?\Pd+<1?v(ZV?bH]?Lӿqv#y?` SP?h߇?.ߚ?4=J׿u?d?Egk࿘ourцXCrWȗOֿy>ώ?r޿kh?hl?=¿PK!h ѧhhsym_db31_62_md.npyNUMPYv{'descr': 'Q*ٿa&PD?gI7W*=/~c?Ju g׿17#;?Mw(?h] ࿈#?=?bY0K@ZX??P̿?wb"m4y?MǮb!?j Ҍ)E`J~|?A a`MXL?3?4ÿ!q, ?w?Pd翴0?LaU?%O¯H]?d"ӿ&J%y?VT SP?ecI??-ߚ?"WJ׿-?%d?k࿨*3kQXC,W5NֿN?.))r޿:h?R~l? t=¿PK!hhsym_db31_62_md_pywtCoeffs.npyNUMPYv{'descr': 'dJi^ζ߿^O??+ٿwD?a}GῊ܃W5u=/>b3?P}B?r@c"ҿ+1?`vzпABy ?7yn#Jұ). 뿑&?t1?RNT?R?!"N?13ԿPK!:hhsymw_db31_62_ma.npyNUMPYv{'descr': 'e?l:߮?7F#?kA,?oyF|?2:T2#:@P1f, 6￱Oc?Jۿ~89?G"`߿j%W?So!İ B?g.2`_K~|?H 꿉EBL?q?E< 5ÿ., ?!P?`d翃~Yx?[n?vP_?VBӿW>8 ?!ZoF?cm?,Z+?PآؿT^0?+'?31! Կ7d'=_ҿ6N6E?S?~R?w?~(HPK!hhsymw_db31_62_md.npyNUMPYv{'descr': 'e?=?ٳ,F#?@,?ڟ|? T29¸:@ eY 6^c?G?ۿ4h;?|R"`߿ %W?Po迭G< B?NJNb.`俙J~|?mA FahZL?G_?35ÿSz-, ?kz?`ďd翴w?ln?y hhsymw_db31_62_md_pywtCoeffs.npyNUMPYv{'descr': 'uʵ>Bk"tJ2Y>> p2>p=ҽ({Ѝ=/a/T2==6a.Avȳ}_/2O[?tm_Ʊ}Nn?ZrR@1?9xTO?>c?jV!ӷqegѿC6ÿv@߿oy?,?g?ٿDۗ?acῄ.̬㿡ZTa.c;ZxTSGJwA6翷Ƽ&11P?C.Dhfs?q?NP]@ۿsqqP㿂^dS?p$[n%? #?.*ÿr(?,*yd?iU "Vא?ŦrF''xS'kz?Zgs4l&Ne?vP/wR8?hCTP D>UL|ʵ>]l" 1/Y>>O/ pZ2>E =i8ҽig΍=<=#4'7[\Cᅩ./?L^ϔF<?tȌ޿.(ӽt?J5,?˿a!z?ʉĿhs?.CRhE-?[`%2`<_K~|?b 꿙$DL?]?{4ÿp, ?]\C׍? sdKh??s?r^?${Mӿ7? tY?.uW?ݝ>?$wڿ$j?ozNax?ڍҿA#mVFUʳPӿʔy=C? p~?|AkĿ:y &?PK!oөhhasym_db31_62_md.npyNUMPYv{'descr': '?rwڿFj?XIsXax?ҿcUFUlRӿy=6?X,pI}?sڅkĿDG:y &?PK!Xhhasym_db31_62_md_pywtCoeffs.npyNUMPYv{'descr': '⿥pn^ZPwLQ;^Msq.~vߟC4N&߿"tj,!$nD19 ɾ-ރ|Xwsq +2?l ֿSjZ&z:3鿟Z$+Dٿ?l ]2`^K~|?ߊ XB{L?C͉?c)4ÿo+ ?5E?8d翅 돛?mU?.~\?ӿM.?a?}hWM?%݂|?L4jٿMv|?6ģ?U߿vC X6hVj=_7q+տU?ɚ6'?fߊؿeL޿zd?PK!]M`mhhasymw_db31_62_md.npyNUMPYv{'descr': '?mٿGT[Q?S²,/m/i=S8wT6wu0<&P?, ifyns?_r?A@ۿ"q࿖H㿢P|?2$[a1?-5?_I5?t7ذ?CF˱ +t? ـu?BI?mY ?J@\?>u;nED?U흢?~t_̊?}!?:ۯ ?t^. Р??Nrٿ-ql^!qbm?to6?6892?̝,Ŀ/NPK!xOhhasymw_db31_62_ma_pywtCoeffs.npyNUMPYv{'descr': 'ypnrZQw快u]Mst .~prC4߿&tOj,ͮy!$1v0p(ɾx|q G%2? ֿf(je=%z:ˬgT#cDٿ:~?]`俓J~|?IA ^ML? ?54ÿhit+ ?`D?Xwd?7돛??=F~\?Pӿ)TO.?^Oa?%WM?D{?n[Hjٿ ޏ|?c=@ɣ?5JS߿  X6qj>_/ r+տϙ? '?Jmsؿy8K޿d?PK!5hhasymw_db31_62_md_pywtCoeffs.npyNUMPYv{'descr': 'Σpjֿ>ϴ͹т9#}CW?c>s>?/nٿ[Q?t9ݢ,^5/ =Sbw/3U6ZSD)ߣ&qP?U_Mhfs?Ȫq?!P]@ۿsq㿰.P|?|}~2志BZa1?qݥ5? %?. ?G˱߳u?blu?BI?YsX ?;J@]n?!;4mED?'?NU`̊? !?H ? Р?>rٿPpy/bm?pi6Q>N?$82?glc,Ŀ=.NPK!hNppzpd_db31_63_ma.npyNUMPYv{'descr': '>` Mu7B>ʄоxC>) P$?&8 t d(0|Itp[?ox 8{?xO΢%Oڰ?WгqVO]&?%Ҁ0B Da+ !"S>2 |w(;i=1Ȅۦ0=MR'|m < PK!ppzpd_db31_63_ma_pywtCoeffs.npyNUMPYv{'descr': 'p>4 Mu= B>fȄоxE>D ) ,xE?bp8 (up[?0ەxq8{?#@Y Oڰ?(ճmO]&?4DͿ{c?ßۿ_Aq? ˗Hdh?7+?E@&Lc?Wo @ ?yH?)Q{CPտ}I?Z? "n?_NL"i |U%?VjQ?#܌u? dQ?tS?mw?E9c:V?s@Jo-ԝ?Je?wi$ɿfٵ@܂L?jF%X9?.vRmETo[ÿQ x)d:PK!Nppzpd_db31_63_md_pywtCoeffs.npyNUMPYv{'descr': 'O?cj?en$?P?Ʈ ࿴]|?dZ?vLTO͞? :ܿ/_v&?GGUR?zO?bkcտ g?\|^?-Ґ3?vum.D?K0]0dDa!S>d:|w(+h=sۦ0=-'|mҝ PK!Ippsp0_db31_63_ma.npyNUMPYv{'descr': '7?Yw5?/8?A5?h /?^CW? ?ћv?3u?[A?Zo?yC K*?- ?~?yt,?~*?F.Η?:r n;#Z??IWᅨZt@ ?XyH?[<)vDPտI?jn??%L" %?g_r*R?7b,Q_.7?ThM?[?72Uj?nZVl?x@S&5?$Q?Qy#m@Gc0?'Une3?}@ ondvm. X}"M>"PK!5Pppsp0_db31_63_md.npyNUMPYv{'descr': 'e9D`־#>kiTf>B![-6ΐ]1>H0Uk .!x==# =k1@PK!/Fwppsp0_db31_63_ma_pywtCoeffs.npyNUMPYv{'descr': '7?w5?&ՙ/8?d5?k /?ևW?hH ?u?32u?t9A?voZo?[ K*? ?Z~?9ˉ,?kό?[͗?p- u;F?WE @ ?yH?{)CPտ*OI?ϊl??,]#L  %?Wr*R?,G.7?,%gM?Ύ4 ?_FSj?Vo𿸯 ?@T&5?á#Q?n71ys@.?HvVnv1?o؝{dv. Y~"V>"PK!Vppsp0_db31_63_md_pywtCoeffs.npyNUMPYv{'descr': '88D`־W#>/liTf>HS![ ]1>&VTǜ4]"x=%M%| =`1?a6/BqʿXyZЯ?P 6ɿߍMп厲FC?/r?7A²_K??IWᅨZt@ ?XyH?.)jDPտ}I?Oq??gLUU!%?j.bR?1tAB?%XJ?~$?9{?4~ j?S@Ua?b W?2ΜU`5g@?j^?w~W$~?3%<û h 1y?0XOQESDPK!_jppsym_db31_63_md.npyNUMPYv{'descr': '3?-.D?/ /qAo? H,#]56m?8P=?[,y?d/S?7X??W@%4Rt5j?2)ir0X?#+}n0?ur(??tG`꿠e?8?5g@"^?x.WO?⿄;û  1y?8VOQ뿤QDPK!X ppsym_db31_63_md_pywtCoeffs.npyNUMPYv{'descr': '/ؿCMd0uT?,z6)?K9 sP6_`@Hʆ?R?-q?L$>AA?6?$INQ#?ݼmۿefQQ8w?3䵳#bdLJ1;?Ģ0K-ɞ?PÛX?PK!0Wppsymw_db31_63_ma_pywtCoeffs.npyNUMPYv{'descr': 'R1~꿇k+Ȏ?r/rĔ|0?ϰi?mtTd?8 ?a-](o<|A@BD,?T UE( ?^@,R?R Q @jv2/?uW Kn`Y?V*Uy??IWZt@ ?yH?)UDPտI?9S?>K?8L򿚖 ` N\%?{ Q*Q?k%nA?GV?3JJ?=;ct ?>>۰oQ?.*a@?S-Ч?:Ϳ@؋m?*|pvx/?x(.lN6?T3տe%Xc?ܘ?ȵ}^?3?`.D?GqAl? H,Hx]8UELl?um?5 Ŀ38-E:逢?T<ڿ+t?XC`?͕2^:Rgqٿҍ٫ջ?.Ѥ+?|?[Pg\E?@ 9?+D?ݡ?w0lдH3ο?uФ2?GhER'P꿻~`!D/MO@ Ɠ-PK!U-ppppd_db31_63_ma_pywtCoeffs.npyNUMPYv{'descr': ':pQ? B)a@d?[Ч? :ͿX@_m?v>dy/?z(K6?] 3տXWc?qPK!Fӏppppd_db31_63_md_pywtCoeffs.npyNUMPYv{'descr': 'M9Չ}|7>&@53=62)4}0YDT-n*&&m@#iޟaU[ OO$Bl@`tU_<חZ?2r]m }??IWᅦZt@ ?SyH?T3)DPտ:I?ko? ?.LVh$Y} %?\+k1R?B84&i?l|M?߼}?Ent?($ $S?P/)@9G-?S:YO?&̹`2,@ ?L@*Ef?Wji(^~wY@/yE+ '(ES PK!zppsp1_db31_63_md.npyNUMPYv{'descr': '?|^'3hp ?2?q5+b<.,G?(&qL?ZXI?`gq?,=[2.?dzZܿekxGuzGr2xs?rԦv R?{F?ƢwUcտ_8L迆?o|^?3?_.D?/!qAVn? H,Z*/ ]7#"̞?5mY?&?-Ŵۿ܏O_?BJ!9οv_?6Lƿ}*^D?~x/zX?3:6B*?ݷmpl_m?R+A e((?ݨ]gDk@O> DվWs4>wCVY>GW ZSV/>[YR畷뮒}ts=( P<@a㺜ռPK!$/ppsp1_db31_63_ma_pywtCoeffs.npyNUMPYv{'descr': '<|[;:0u_>9u}|7v@5_留3jp1=62蔵}0DT-B6*8&&ͪtm@#{V!a>ծ  2_N$B_`tK՗Z?Xdm7k?WC @ ?lyH?r)CPտmI?Nm?p?q`Lf#0 %?Vk1R?x74i?>|M?]z?b_lt?ڞ S?O@k G-?hYO?̹?F+@G?|"@M&Ef?`ji;tԕ2վ_>s4>_PVY>GWS>TV/>V Rխ{D7s=Dykr ?G,Q()Y?~AQ0?߄cտLb?Ԫ֋^?9O3?h\.D?eR*iqA￰m?5<,A#])ӁQ?\v4?ְ4?ڨ^J?|?3ʤgT?4w&K .7?ȫWQ?Q%VR?u?nѠܿPK!ٙ ppasym_db31_63_ma.npyNUMPYv{'descr': '7o @Q9?T-ݿ6n4?"^Պ: ?XNkƅ|?pX? ?Sj?2%OXSmA?UZJ&@j1d Lyx?>~pyؿt6o @ůQ9?F7ݿwl4?,j]ՊD ?jƅM?Zdgϳ?PK!pppasym_db31_63_md_pywtCoeffs.npyNUMPYv{'descr': 'kh ?cslGY W?I7?kcտ﯌+Cn?_^?(Ţ3?g.D?ghqA￝n?5<,濑]^ǻm?gGD@?=ڿCޱٿ&|Y&?< b8Mk?|ۂxMrR?B?{ ]?dz?YL(ɿj?Օ#!nп e b?2[޿nYFE坶NԿB#?GAj0owпy K?NƤ U?tw2??>wb࿎0{T?PK!ppasymw_db31_63_ma.npyNUMPYv{'descr': 'mW?1F@lMyV}?W g7ҿVУ@I3Q?䪥ܿWwѼr xH?=# `awt}3MxPK!ppasymw_db31_63_md.npyNUMPYv{'descr': '1F@O)MTS}?kl7ҿY{@cQ?*u'ܿ.s"Լr)H?LJ#Kgaq(44MDPK!@Uppasymw_db31_63_md_pywtCoeffs.npyNUMPYv{'descr': 'o:=>*uu_M1)C{>8 īfg^>XN ⊴>݂-g_?z1 8N?_!Fӫg?TKf+ьS9Wl]?9i=umfӿ?&USޠܴ?ڥN]k]?dzǾ?Eٿ{m?L ?[w(@#X?be5 wKMqBQ) Җ?.(ſg A?i5\?yu g?5ݿƒ; b?iM?IxWe?ZFhxo_ãRII)ʥ^?4?N6~?YrMf?09@K鿺$ =($ȿ!;2d?=J?ٮA-?ϙ~?+^?Η&u?p} ?PK!^m=xxzpd_db32_64_md.npyNUMPYv{'descr': 'Ĺھ{M6>){X}[B)I(7J8> lu=Ie|X= @/`Tl+qPK!f{xxzpd_db32_64_ma_pywtCoeffs.npyNUMPYv{'descr': 'H89:=2z>#y_MHy5)C{>284ǫ-lg^>⊴> ݂xI_? 81bN?"{D_ӫg?uLfPSS97]?8uӿ?T ܴ?ڵNVSk]?Ǿ?)xEٿ?1m?#?诓?n|b9 wBz 濸 ?ui.QſC?+ \?3c?ݿ,I b?I[?߀We?F4Cv_O-ZIIl#^?f6?L/;~?3Wf? vK55B+'ȿ͜6d?yH?`D-??b?!&u?#yt} ?PK!rxxzpd_db32_64_md_pywtCoeffs.npyNUMPYv{'descr': 'lpƹھ M6>J@X}r,I6d|M8> ,x=.X= cTu1o+qPK!-xxsp0_db32_64_ma.npyNUMPYv{'descr': 'yi?0s?PK!^mxxsp0_db32_64_md.npyNUMPYv{'descr': '"r7ml?uq8"γ??&pj?ܮK]ܿXsfW{?n?swG?hk?;Bӊ6?h/,~ު-?Z5翶VzDc?ycT7пA-W俏µ1 K-ij<@3qr?s&Sw 6?]='Ŀl;? ~368ٙC?L瑝?`?pXO?V, ѿ*r5?*M6ۿ曦}?:K¿ߕ>ݪ?6?7]0|?7BD8?vOViJ)n5?Ur4N n?lXS׃00?b]A>e-r-4E>1P5ؾ>T)3df=>4250>GCN9='a=%$bK᧎}DѼPK!(xxsp0_db32_64_ma_pywtCoeffs.npyNUMPYv{'descr': 'yi?0s?PK!:7xxsp0_db32_64_md_pywtCoeffs.npyNUMPYv{'descr': '!h7ml?$γ?+?zEpj?dQaܿ񇡬ЍW?n{?B?"s翠!?1?)36?0-1~꿄-?#.Dc?3mMCT7пWWnu1{>Òϯj<@Emr?~Wv)}6?lu3ĿAl;?968$C? ? f?XE*fO? ѿ8/r5?H3ۿ+}?K¿ Iݪ?p?FE@G?J Y8?m>VZ m5?dJzrC%Sl n?++R$YS']I00?L럙>]CrE>KE{7ؾ[ȟ>/u<,3vf=H80>RPCt#=}*Ha=jKXΑrѼPK!2xxsym_db32_64_ma.npyNUMPYv{'descr': ''c ?\ R?:X3?u k%?D1ݿ*W?!V V?t-Sd?I.WA?HZƭV?n) wpF\3ܿ^LM1rq @[*~dE@ӗe?x{*Ǥ3?aQ I?ڧ(?hj 8`dԿV^!ӿ R>?M%S LڲJĿƗbyQ?PK!שxxsym_db32_64_ma_pywtCoeffs.npyNUMPYv{'descr': '8'&#i6[ VϿ΋?$DŽ+?]>e ?(%אR?~,3?k%)@신f [K?Z } !>M֊ZPd?N]1eFfb)&?P]ŧ?ʵmxܙ4?n|b9 wB:z ]?Fh.fgſfC?'\?@7[]?{ݿda?6p8?ףץ`c?`; c ++tKp͒?b.N(?851?G??ߐ]z}@,WNzEL?wo%!ѿ2?%Pu?(6?iO,? >N?x?PK!mxxsym_db32_64_md_pywtCoeffs.npyNUMPYv{'descr': '?T-濮wJĿU#&{Q?PK!0`xxsymw_db32_64_ma.npyNUMPYv{'descr': ' Wɸi{?D*L?hE(?`?ᯪ`p?PK!fJxxsymw_db32_64_md.npyNUMPYv{'descr': '$?Z˶?Cf|qw\@-mN޿Hy!1?f!dE?1VY"C'^)?%Tij ;GpT?"CR_۲?n|b9 w͂Bz %?d.\:ſbA?Tm\? Q?uVݿӾza?L@)?$e?8)S4OQRʑpVPy08 {_ ?:?u7m?f?8|Bd^$v@[ ƿD$Aei{?GK?U?mf?nƯp?PK! $xxsymw_db32_64_md_pywtCoeffs.npyNUMPYv{'descr': 'GjWw?r%{ru?+P? كʿ]f-Z?DV? 3OQ?\68? 99ݿ>ak\?R~չﳾ dȿPK!بxxppd_db32_64_ma.npyNUMPYv{'descr': '?Y df?զN ,@YV6п,W` 6]_i<@~s?WU[6?dd'Ŀeʍl;?ym368+C?L瑝?*?M)l8?Ei8Ofjg? H ѾHпE:fQ(?:^D?X}翍x??Fi?eC\꿾h>?Y df?զN ,@YV6п,W` 6]_i<@~s?WU[6?dd'Ŀeʍl;?ym368+C?PK!Wxxppd_db32_64_ma_pywtCoeffs.npyNUMPYv{'descr': '+?tfXńc?n|b9 w΂Bz - ?f.cſ\??F\?w?7ݿ:lb?6V?^h?^4 aPPn"qTps=xfv?^\?'f?춥_?}NS41ޯ пiJ(Ea??f(? ]?,nK?>+?tfXńc?PK!Dxxppd_db32_64_md_pywtCoeffs.npyNUMPYv{'descr': '?f"2(hf?c ,俱V6пN]JW俹 $6쿚Sx i<@qs?pZ2͏6?s?f"2(hf?c ,俱V6пN]JW俹 $6쿚Sx i<@qs?pZ2͏6?sbhiao>\R6_q> SZ?=">;Ц&Ͻ䡢FQ^/Ħs=aL=7ݤPK!:xxsp1_db32_64_ma_pywtCoeffs.npyNUMPYv{'descr': '$H@IL0F@Ԕ7wTD@;o1,B@ ?@fJ;@7@# %-"2@lTZ,@>F$@_n@wݭn?0aSj8?n|b9 w#BJz w?m.ſJŞC?t_\?c:?nݿ]8b?fA?ƈ}e?LcEa$y򿿵MQpcu?3?qi??ѷc&3cek`ҿ1`o?^v\]x?+?N_L?\jyqH+G^PK!2r#xxsp1_db32_64_md_pywtCoeffs.npyNUMPYv{'descr': ' տE?}2uÿJO?,sȇ ?uv۩Xѡ?YPlJWz?Կ0qB?R?Vk&3+?X>d g>dhBe.o>^ _q>i^!STl9">s׾ϽCHQHSCXs=5L'=vܖPK!+ per_db32_64_ma.npyNUMPYv{'descr': 'XeqwݿGR?#?6?"¦A?v2wX:u?VȁX?ƻmޮL2򿤹fۀdF?PK!Q'per_db32_64_ma_pywtCoeffs.npyNUMPYv{'descr': 'r翈Wj?A |4,D4п/Xq .%Eȑi<@Ҁt?mY[o6?<'Ŀ8l;?tR368C?L瑝?T{?,ػ)?̇Qi+пo??c$D=tv?c?%?%;q|?W_(?0u?57u?a0"?$凟4?E?Xp*Uu?&Cu >g?gXﲚ? fpP?;F4Ŀi?׿L\)ؿ?hd?/Ǫp?q!?0R>c%?KڲJ?RbyQؿPK!ӛtxxasym_db32_64_ma_pywtCoeffs.npyNUMPYv{'descr': 'd?TZZa¿@`S?r?cӉĿ8J տd#rp?b 6?Vy ?s6.3?r?829?i9kJP?HAr翏8j?PO}4&D4пMX.:&ʑ3i<@s? ^6?3Ŀ??l;?j968䠰C? ?jf{?ܛe)?i+пڣCE?4>tv?L?w%?ǃ|?#b(?(<'u?3u?X]"?M#(?ȶ?#Uu?u h>g?D`?& vf쿕?7.P4ĿJkb?׿>D)ؿe?q?dv"?iP>-?t%J?#&{QؿPK!Fxxasymw_db32_64_ma.npyNUMPYv{'descr': ' @h?@t`UF@;5C@a-@؍#?W@m@(0@(g^)C @UPRE(?4N=}n??be5 wrMqB5 `?.`0ſB?(\?0-BW?kZԺ?K2B䳺h?di&PK!rxxasymw_db32_64_md.npyNUMPYv{'descr': 'MB @"P@:G?nIv@@Z@u@ЯI @aş?E @ɯ@LZF@*5C@@Xe-@mCW@d@׬@Rxa)C @RE(?m?^e?ù=i'2ej/9Ǿ]Z#S? MU?w?4c Ͽ?ը ȝlu mFtlɿi8E?~ݨA ?Xz?F;|Ժ?7Bh?ػt&PK!lwxxasymw_db32_64_md_pywtCoeffs.npyNUMPYv{'descr': 'qQu[^?@ V`ޱO.w?B._?? މ="Q&8̿D?ɱ?,ak\ԑ~չ? d?PK!"zpd_db32_65_ma.npyNUMPYv{'descr': 'uAL CO'|>-/dà15>E{qGLl{?fm*:E*R?cSe1o4t?DE;RLr݂?i{L°{fr?eF y˳?~7e*?tSVPK!]zpd_db32_65_md.npyNUMPYv{'descr': 'Dsa6dR>[~8øYgڽIMވ=v`ilA纇#8 PPK! zzpd_db32_65_ma_pywtCoeffs.npyNUMPYv{'descr': '{oEL,EO'|>hfà5>5{V0O{?~@*:o*R?I%Te\+4t? =dGRs݂?懟h{@K{f> 7s?#DiFߢy˳?8~ ?B,VPK!\wހzpd_db32_65_md_pywtCoeffs.npyNUMPYv{'descr': ')DCp9dR>N;øcڽxሟ=4wz`il#jPPK!pmsp0_db32_65_ma.npyNUMPYv{'descr': 'cg?R?Bd?PSޭ?r`?翊?DؑhB?e\\Ŀ;?zR?"(?ԳCwſjXU?Q` ?8 ?HR?b@X?ߞC-?s޿h4^}`r?BhO޿b?9o s^?b#,rQ?̇OP?s=m.h˿cDQ|u?s!пʳPR4?/W-BVG¥}Lj^R>fxGwBҽ6=I+dmhXb>eѺQPK!,jsp0_db32_65_ma_pywtCoeffs.npyNUMPYv{'descr': 'm?;6g?Vl)?"8uJo?Wo9c ?XڔS?;ꍻ?oOҿɣ9鿨?.8M ga`e?hP} ?IS?=5YOz?i7?1?6yv?-FoJ?Ci\5?PK!3Nsp0_db32_65_md_pywtCoeffs.npyNUMPYv{'descr': 'n g?{V?J{f?S5Uޭ?@r`?fŠ?a ؑhB?W ^\Ŀ{?R?6(?WkCwſf\U.?4c ?Gr: ? ׺ŠYaR?]uX?C-?b)+s޿}`tf?bhW ޿ c?ѱr^?g꿅 ,\x?hP?im=m-h˿DQu?/пGR4?2G<|¥};^R>x᩟^BҽO#=V5mL|+`USe{BJQκ?Sͩ0`? ?hLR? r@>]]\g@ G˿PK!sym_db32_65_md.npyNUMPYv{'descr': 'sR?C0?(Q-?C8 s޿D}`濷F?l.hy޿vb?b s^?o]#,rQ?̇OP??l8fɿ]wV_ؿӵz?>rxC??^~ѿ^.:?X.v?  ebY4?쿹zJ?~8,?;??kMa9ſ5kd"(? j)ƿiyh.?W? HFФ?LSQMٿ7@{p? ȕv&(a}q {?.鿄'?TSqE׿PK!!sym_db32_65_ma_pywtCoeffs.npyNUMPYv{'descr': '?fGz)2ݿR yǿ}3?ʂW?VrKE? ޭtgmv5?~WHh/]?~=@=.qQ2D?ЂnFؿLӱU"?$oR ;q^򿞲?ʿ04?67?:"C,?o?ta9ſ$(?p)ƿ߲\yE,?W?kxФ?LSMٿS@bp?5Cv8&a}T {?.''? TqE׿PK!`symw_db32_65_ma.npyNUMPYv{'descr': 'tŌ?XlQ G$^` }@G?O'޿Ԭ+?;`87hsRп<5'q?l_0w޿M]ӿU'Y]O ?T:Umb4?F՝Z?u ؿkPz?V.o ?g8t?1 "g?_)?BźS俨ڍ8p?UMZs?&iƸR?\?^{ҿ-CǛ?6g['?#EN+b΁v?y0n?Z(T9!i6?b*F?Ľ#@!F?;ל0Ť׻?PK!'$symw_db32_65_md.npyNUMPYv{'descr': 'ͿԴ <'?f#ZEӿ`?T?x"?dbAǿ(R1i~?ӧ7S?S:=?fbK*T?;bjh??\T-?*1s޿k$~`=YG? hi޿3ab?Fs^?݌#,rQ?ƹ?a֖xVxҿ2rOJӿ,y[, "9?U2PLҿMCѲww#1@?{ӿ]||oڿ_nm S?WԆ(´տҁ5?IB?%Yn㿯V^IܿP?dq?thwa&?'j;Z@F~]SA;˄V?.Mܿ塯#?PK!Pk3symw_db32_65_ma_pywtCoeffs.npyNUMPYv{'descr': ' 97Rп?5pI?cw޿Wfӿm U=T/Z ? Um4?Z?[ ؿ",o?PXp| ?u?nlg?))?L%gSu`o8p?PBM-s?R?ODح?=xn{ҿFILzd?'?aaP+z|?:nv?A8V=i6?xF?sǂ#@!?"V0:׻?PK!7 symw_db32_65_md_pywtCoeffs.npyNUMPYv{'descr': 'Ϳ='?7w;^EӿR)b?_OKV?O "?H*bAǿGy{?-v9S?'P??OT?k?-[T-?`>s޿~`RO? ) h뿢 ޿lBc?r^?+f ,\x??5ozx!xҿ,)uO�ӿ H[,ῢI9?SLҿZ:Ѳ῕^4@?^aAӿc^Q}oڿ[뿻:$S?v(r տO5?mJB?Xn$_Iܿ?dmu?1t&vq&?7 Z@v]TAm΄V?MܿR$?PK!/pppd_db32_65_ma.npyNUMPYv{'descr': 'u?Z`ީZW~?K^ ؿZgHŴV@-~? M;j?5+ :`\?]=w ǜfEs˿¶!{ZWON]?:LTp7w!8;?抳y?_}Oп>ҿFgl6ղ'YaO ?9Um4?֝Z?Z~ ؿy?^꿷H( ?uk|?|g?E5)?:#Lx|cRp?I}P?<[?;?xۃѿM꿞k V$?1;jO=?'Z9܇l{?Xp(¿#Aޚyb?R!h?jm?lg+Xܖȿ8nHPK!򰇢ppd_db32_65_md.npyNUMPYv{'descr': '@ѿWh`Yqu?+ۿ:|HҿդK=ſW% XX IEѿpZ#y!wKl@uڇ?P*!WS$"{?\]?Z4򿡒57mڿ!]Dlۿ;0s?oѿ.F2?kLJtl?H&ֿ7 VĿN?boVF ?PK!h\ppd_db32_65_ma_pywtCoeffs.npyNUMPYv{'descr': 'S?! [?KԊ?葁ۃѿdM%J{\$?Z1; =?)Z9D{? Ȅ(¿TNܖyb?.l??il1ȿasHPK!ѻppd_db32_65_md_pywtCoeffs.npyNUMPYv{'descr': 'пڔ&?1@ӿa&?אWQӿV#P?wXF?1{d;?Ŀ g?bt?<z? &dS?mC?Я?-?cr޿Iݿ~`濝?'?dhs ޿D.c?r^?. g- ,\x?Q?wQwa~@ѿ ^k`!ԈYqu?b+ۿ&'KҿkK=ſM% VIEѿB0O {!󿣇o@lڇ?K,!'S7b{?j]?Q6z7mڿOXlۿOF0s?еѿ܏?eF'Mtl?T`%ֿyz7 ࿡=UĿw"?F ?PK!C>sp1_db32_65_ma.npyNUMPYv{'descr': 'R ؿ.e?9I  ?3hxl?lNg?'c/n)?!d俺kFn?ozc$?zY?4V?;y4qҿ-鿫c,@D?d64ٿ?L oBоSi> HMW>2Yh3#]Խ>a;ؽ adg=ƥ$W==hz+44X@oW@?kV@̸|U@T@=ebS@f5@ R@NQ@XP@uO@6.RN@Ɩ; L@J@ YH@'(&F@K:0D@˶-7B@MF@@<@\唼8@a4@l0@h笂l)@ Õ?"@2@$~O?gN>~=пiN=T/Z ?x Um4?V#Z?5 ؿF<[?i؂,! ?n m?g?4n)?sCe俁Kn?ЮkK'?(\Y?/V?I`(U4qҿ5鿤4R=Y?qU˛ﳜ?p荾-%?$3?2?=.?Oڿ 0Vŷ;S%PK!~Vsp1_db32_65_md_pywtCoeffs.npyNUMPYv{'descr': 'hMMV>EO߼2Yɑ 3#*>q6@ؽtiXg=1W=&P<9!~ePK!*}per_db32_65_ma.npyNUMPYv{'descr': '?m\տۿd.1G(꺾ǿJui?-տwe 0Wb0s?X`ѿu?`Mtl?a>%ֿj7 M=UĿ'x"?F ?Vd:*=??E å?3ge8R,ҿ>?/\տF1ۿ{`xD1~Ǿǿ>Yi?"Z-տg~e :n@oBʛ F @^w?PK!ǂ2asym_db32_65_ma.npyNUMPYv{'descr': ' ͿsGyw:_zȿHGP뿲;5? Ll?44vor=?瞥ݸ?YE꿱T:ݿs@Vٿ2Vƙx?yF)v1Eb?2J?( <ΐUֿ%]ҤDPLS@!?khW ޿_ c?Qr^?f ,\x?Mþ?A"m> ͿRHy翮7_zȿ@ P뿎2?%Ll?{4xora?`iݸ?4| \n?]x? n"U?% ? +kҿ: \kmӫ?$8R٘?TL Tj?n(\?.KQ@h?Իt@OM)ZwV⿕r~?JʹֿPK!Masymw_db32_65_md.npyNUMPYv{'descr': 'fPPh?9ן?_az$ÿ_`'?#艿?2-?7fn,O?H? 1-? s޿kD}`濩9?|Fhҡ ޿sb?-%s^?c)#,rQ?Iڱ?I(akRdÿ?KſL6?pK?OJsȿ'I?#-m?+g0?? x3o?+`c?/ ?Cnٿ S@y5@?ye@ 94@xh}~@Iu@8[?.|@ 5G @鲭@ @e@tMB @8 G@]-?kпX=T/Z ?Lx Um4?.Z?S ؿ7[?܇E ?^N<`e? g?=#i)?/6޳u\n?śx2?PL*"U?&ܖ' ?7 1kҿ\^ӫ?){ 2ؘ?doP 5tj?T"W\? 4.h?gt@ v+nV^,~?azֿPK!jasymw_db32_65_md_pywtCoeffs.npyNUMPYv{'descr': '.BȷGw_>,bkTJԈߧJr>= Ⱦܥ>x_Ƥ>\?d^@+w!-?f/k9mI`g?myDÛ?LΖ8y??s;ſ9?KȿT%s?$W/пܽ>ϘY?=B?Ʌ\Կ:<ÎҌ6z{tf?{<?ZL%d뿍oAi?c0?4ق ?Evkw? g뿲w-n%ܿmi<?jSc_Ԥ%{?ҕ-+L?K'?iPPK!&zpd_db33_66_md.npyNUMPYv{'descr': 'kn*ES/"'(S?m7F`HAC MA7?i` W.E?Ҿx龩pIMܥ>@D@4b>!naҪ#5T.(==4bEY4L$=Z{Wzв.B=Gw_>dɡb9JԈcJr>p2> Ⱦܥ>N>\@GX`@LS!-? /*'=k9`xJ`g?Vֹy$I&hě?'>\*ZB?Kſ=9?*ڠ0ȿ@Nr?ZQW/п Y?~R?`@\Կ6ÎӈzVf?~){<r? "dn!i?w*0? ?9vw?g=fuv{n?tܿXR<?HSVEŤZ {?rn!+L?X(?U @2?aYٿvw9<_ҙФe!?\7ؓ?j?*(?j?֘>y?zR×U?(I>PK!\%zpd_db33_66_md_pywtCoeffs.npyNUMPYv{'descr': '?m!8?lۿv7g?}"ܿ#uE?R(ҿ GjE?X.S0¿i?Ml%n=?v4]immq?5ڈ|*m~kSD &(S?KRJ`HifLA7?0W )E?$'Ҿb龩3Mܥ>lqDV@4b>{kRҪ#x ֡bv(= 0k^2bE0%=$=onW'?'-?vcA?{?r?$?⩕ɲ? ?Rڽ?=?3B &;?pm??6=( ?f`K$?N>P?G??v4S?}Y?-?;(k?Կf5Ҍ6z{tf?B{<󿘲?ȢL%dAi?o0? ?޽v] [w?0gUEeFlsnGx_(ܿ?$S⿃3忸:T:}??I?!ڽ?8$?pKٿS!apI[FL?^Dτ޹?` ?1 B?~g?} ?6b?Yx?qPcF?+R,v?F(c?4q-;ܿqǟ?^]YI"Q?[/WoyB߿G1f`?n{.Ὶ !MH@vj %¿ѷ<??Ox@U?^q{ U#9tYU?,?"@(Z¿4z ڿ/h"&b?r]?]*?"?Jߺۿtk|G?@,ۿQ=?\AHӿ wS%?>rÿP-b\?T,?%67?"K2mYv?d,E˫KFkMZR?>lHIRh8?L&#u?@h6#q߾*.ňf>SR>%Fe>g2{G+N8=mێiݡo?B=#=! '?'-?:{cA?|?& u?%?8Lɲ?, ?YqTڽ??I''&;?%\m?|iz~?nH+( ?d!$?4}6P?޷!?I`4S?rY??0uv?b MԿi72ӈzVf? ){<r?c "dhm!i?x60?uL ?㌱vLBhw?(܅gV§L7ӕ`nܿ _?*B?Tg?e ?{b?Mik?qȔYAWi3F?Ov?-(c?Y;ܿ|ǟ?>"Q?0oᅬǠq߿?[1ݪT`?us_MHj%¿s%??lJx@?bF{FA9:~U?S=,?%Z¿ ڿh+0b?>?Qc"?Gںۿ8qG?",ۿ*=?R%AHӿ= ?[=ÿۅVc\?\,?<7?\QoXv?XaΫK/ }MR? mH-h8?( &#[?n,#q߾oX>?f>_*%98PoFe> '2n<8=dݡLB=c_o=rWLjgZz?2fe$3ؿƙ̷^Im=t﷕Bݏ?ȕ bJ?:~6?ݖ?E_/?O|g}?-O??(?PK!s_esym_db33_66_md.npyNUMPYv{'descr': '@?y*j,?-H?`dܿ>Ѡá?~(?< yM￳i.Ō\Q6Ye?m'`R I*$¿5A?J?r?x@:?s{4c$9pU?,?$(Z¿q ڿh"&b?r]?1_l?;!ۿ(#T?쿩~-ܿ_mhW?Xф%z4f9?,,2?N3ڿFbu󿦇\BnAL?GT?PW?e/*?j=x0?J#1ҺU/ÿ}鿫¹lտ4D ?i,*D?3GvO?થԿF)sRӈzVf?~){<r? "dRr!i? 0?c. ?v̶w?){g? 뿟&ònyOEܿ-0?0/wT/\R[ s?9lM^?[?gqez?J+$3ؿ,L^BŲc?bJ?'Axq6?gݖ?D_/?g}?p??;<?PK!Csym_db33_66_md_pywtCoeffs.npyNUMPYv{'descr': '?ۙ?^ۿD_4?SF~-ܿYhW?F3S.*z4㿒;$ {?,2?2q!ڿoGbtM0){H8??3ʃ?7$efտ;4X? G-?f}ˊ{&?B^M"]w5fM8?yˡ ?Uծ\<%;?$翜-K?-ZF(O?PK!/˯^symw_db33_66_ma.npyNUMPYv{'descr': 'G п["? ?,915ԿКҷҌ6z{tf?{<?N%dǖAi?m0?8?FvQw?xHf= \1n ^.ܿ>5?~ЩTR3ԿF1?e)S0)2?T*?e~ ISv?޸.=ܿ&Q\?,"ƿ{M!?e;ʿjdd?  ? WJ?9a ?eZ?;zwn¿PK!҈symw_db33_66_md.npyNUMPYv{'descr': '?4࿣b[ǩ?R$b?7c￀f3dBa? $H4TH*7&¿Z~F??:=x@G?W{%9'bU? ,?(Z¿:0 ڿ_h"&b?r]?m .Ѓ?r ۿ0#? !AڿI.?L>3?L ?0u?[IFտ}?8p)d8?(?łտu Dua?AA@R9?"'޿m䲈 ?ai>oA ?W{ؿN;/߀"pͿu(5?bf)˿nb ?^D{׿Q?=iPK!Ysymw_db33_66_ma_pywtCoeffs.npyNUMPYv{'descr': '-ܿRD5? KR( Կ応%?H &)2?D*?Ewh .?qx<ܿ߉ˈ\?uPR"ƿG!?KL'ʿQ?n? ;3?:Ӭ ??l/n¿PK!`݈symw_db33_66_md_pywtCoeffs.npyNUMPYv{'descr': '?2Nbߚǩ?[?-_W忿~O?HH&¿:F?? s-x@֫?c ?{^9῕4~U?)G,?ᚒZ¿Pڿ6h~+0b?>?cBЃ?Mۿ.?}Aڿ#?B?e ?yL^u?+`, IFտ'_}?vpod8?fn(?տf5u R?A@49?P޿? ?I=D( ?;y{ؿ~߀xKopͿ4?un[f)˿a ?=~D{׿ss?*iPK!7ppd_db33_66_ma.npyNUMPYv{'descr': '?SS?hTrۿHr~M?m!6ÿǭ j?wCNCտ8Nݤٿ ?q儑?e.? vٿNr9up?@˨?sƵ߿Gk(*<?Vc[bPJ⿰"¿ ?e ?[mx@?5y{z9]pU?',?^Z¿ڿ;hz+0b?PK!ETxsp1_db33_66_ma.npyNUMPYv{'descr': '?OxTO2PK!}؈sp1_db33_66_md.npyNUMPYv{'descr': ' ?$;D?u?"2 忄ůT?K0?vq>?D0XKݿ7(? 5 ?D9Pm\߿EVPF/?>/*ῧ[ H⿗,&¿J?} ]=?Ox@?m{ 8e9.U? ,?N(Z¿ۈ ڿخh"&b?r]?Uڃl?myHۿf;q?ݿU˥b?S?Ju0O8E1)?A/eQ>\ վ,XEpA>ڹƻ v>FnsRL>6},K=5`y2Z=5@y^,=ݞ=y<7}ݼPK!}Msp1_db33_66_ma_pywtCoeffs.npyNUMPYv{'descr': '?\D@Kݿ9Z(?̻4 ?faP￉ %[߿ejCF?ۅ*:iK H|&¿MJ?l)?; >x@l?"{Q9῝y~U?r,?3Z¿ڿh+0b?>?l?fBۿ~\a?3["ݿ;H?k<ӿwtID?oW4t7Ι ?c+#ށ@? Wqu?|?h-O8Q)?$Υvl1Q>#,վ899pA> v>qآn;V1RL>}FK@L="Z= yNs,=I?SS?hTrۿHr~M?m!6ÿǭ j?wCNCտ8Nݤٿ ?q儑?e.? vٿNr9up?@˨?sƵ߿GPK!zqasym_db33_66_ma.npyNUMPYv{'descr': '=~ҿݖR^ƿ8ۅc?wQo?,6?=@vw?$j_oῢߥBſX,?+Կҿ䎿Ҍ6z{tf?+{<?rL%dAi?πu0?  ?{كv]msw?QgcVn9@۳ܿ`~ۋ~?kRRF7t(? Ǖ :?Ovc?uy u(?*ٿP"?y]s? q?,K?JJs? {?ȓa5hxᅧB e.=~ҿ a^ƿ9Pc?u8Qo?)lɑ?o1]w?ԭ"Oo῾ABBſ]?ęԿJp䎿ӈzVf?~){<|r? "dp2j!i? <0?R ?wv8B w?gW߸Mn.~ʳܿ2t~?^yR-Fd '? f :?){c?xglu(?Gw3 +ٿ2/"?` xVv4?(Cb?JV],M?ڞ?#D?EN῞NI~PK!1,'pasym_db33_66_md_pywtCoeffs.npyNUMPYv{'descr': '?As?CtPۿ:?GOܿ]4?_c5*o_?#Nꖹ?Uӿѭudm?;R""?J*?. ÿ>N/|3ҿud@#?9io#ѿtƊ?Z Y^仇M?ͪ`f?I޿G aT?6!%;)t$?-K-ZF?(OڿPK!asymw_db33_66_ma.npyNUMPYv{'descr': '/(@Wn@Y ol? Z@J^'A_Co6*?hY7Ǡ?iL=?*wi?PMw?eT?]LjO?ˡ?Bw?|V?~͔ӿ8aҌ6z|tf?{C~?NrS>3$9忑at?U#Pa?SB? 1aDG?eqYeտR8Ff?*?ÿ[F?(bi? _=?JyYy1Ϳ< Z(i?PK!kx9asymw_db33_66_md.npyNUMPYv{'descr': '0C6濒e?6,Ǡ? <?_Ti?+3w?p?1ϳO?7?(w?p V?Oӿ\ӈzWf?~){<r?, "d뿬b!i?к80?` ?qvnՒ>ܿ+~?}rS⿤09z$yt?{Pa?<È?f\a.G?mYeտ`8ff?#T ÿnȠ[F?Yi?=?./y1Ϳ3ME?PK!x[Gasymw_db33_66_md_pywtCoeffs.npyNUMPYv{'descr': '??0t?k ~ۿ`}z?o^ۿc?v':;"<꿣H 0d?ʃ3k?Cr$dϿw0eeտQbky?֏z ?uP| EPvڿ E?WLǿu?,0D? - dXA{?t(߀?C]p?04[f)?a P~D{?rs*i?PK!dzIzpd_db33_67_ma.npyNUMPYv{'descr': 'r||I>2>Cĝ*愹?ߍKkQ24[7H?'ZW4n#_?3Vӏ-P(~:?RDLIB^?Wɿm ?RDž+ٿ4?# Ly ?bܿJsa?5BFerӿ^5w?#`>?:־ wK_?klwk?&g- :p҅?9e}?r;GֿK?Ns?I#@?M?߾g342W\?>D:<U˙1Pпu/4̿ғ/?1U̿NQz7?Xބ?Pf5?d=?, w?L u?)FhvKX?m~z?Rq*v?}J^U?S6D>PK!Ի$zpd_db33_67_md.npyNUMPYv{'descr': 'Փ?kemխi1Ty?l!ebe;{N?r 0œ)] ?~>_`}پOߵ-٨>خ$PTt>2!1Pg/ t<ˈ=NHZnsE2=-Qj*=RƻT4 C'= )J=89~|.si>9/^| .>R]Ԭ>xu&M?E(kQ2` L 7H?[uZW(K"m#_?j-n띴(~g:?DL$^?DHɿ ??w+ٿk?z῔Qy ?$cܿ ?p}u^XHrӿ':g?ŧ>?E,l_?:kk?b u҅?c}?L=;GֿЃ?3dgs?\@?mM?m=4\꿜|O?h:E~Uh1Pп4̿\/?+%̿Y_7IŬ?A?vL&?h:?ogw?]?.5aKX?gwh?HX}*v?g^U? 'D>PK!͐zpd_db33_67_md_pywtCoeffs.npyNUMPYv{'descr': 'j8?`wA? d$?NjXJ ]Փ?#Xm-Ty?N2ejZN?~|r 0jy] ?F@~>HX}پD٨>$PHt>1ۅ(g/ %_ˈ=A;Zn72=4j*=ET?8־ 係|K_?flwk?h- 4O҅?C}?v;ܬ;Gֿt?Xxs?of @?qC?_O 꿫Bp̏?wzh{zHnBпI4&Ϳ8V곍?_^LοsjT ˑz> ?d!lf?~?Fx?Cj7P:?Ϡ',?. 7?ߠ{^?ـ]?PK!sp0_db33_67_md.npyNUMPYv{'descr': '7i?:0%ҿgO!?[NUZR?u "d߿.?/CcLpEPbgܹ?K̽OeֿJ>T`?1h؞?", ?ʈпg8v]o?/E??H6w㿇?)C?TQ{Q翈Ϯz?|D?8?Q,ÿp?W~SkWH[`t3B?g/#>W/ѯ>KBþՕ g㋾ʛs< a>A sC&;ۑνN?=m=$+7 I:=Ø٘< Ԕ0,-˟?ŧ>?Eܱl_? kk? ҅?`}?Φ;Gֿ?-qjs?@?DC?9!i,/DT̏?'\zh&nBпQ&Ϳ@H볍? ο&cンy' ?.of?bʨ?Wx?7 tOR:?g-,?f7?{^?ـ]?PK!w)sp0_db33_67_md_pywtCoeffs.npyNUMPYv{'descr': 'p?Qn:WH[}w3B?#0>ƥ?0ѯ>3þеJi>nf㋾?/ a>H cC&fHۑνCHU=9;+#:=b"+G<#HLPK!uېsym_db33_67_ma.npyNUMPYv{'descr': '?j??ež"sݿO_5S>?,VB.#?fؿp3G?yY п} )Կx͟?#`>?8־ {K_?hclwk?g- ҅?Yj4}?;Gֿ"?ţs?9@?2ϕ@?D_>/EEBPƨ?K#'{%ǫ輖_пrwB̿O?!MϿĞXL?dkẋm,?gFX;?O@V?Z?F52?#Xs?9Um?u(Xb?$!tοPK!H=Zvsym_db33_67_md.npyNUMPYv{'descr': 'LInH?% ⿵;T뒡? h}z?9jF?U:忪tSTϿ\Cǿ.&Ņܼq?](I??y}?n?;V?֊tžů@oݿ(S>?eV?3eؿDG?D!9 ys пo p)Կ_T ͟?ŧ>?E$l_?kk?k }I҅?+`}?̘;Gֿ ty?ߕs?@?@?c?,>B᪨?Sou ǫj_п̿N?dϿ$/?tĞiDM?J]kbm,?R;?r s]V?Z?q F㿈Zz!?0Gs?D[Um?*>ƮXb?,htοPK!*sym_db33_67_md_pywtCoeffs.npyNUMPYv{'descr': 'h0[H? % ⿆l#Ts?,|g}Ig? KF?Ԟ0 3TϿC:FCǿDܼ;H?I?C*}?$?6־ JK_?clwk?B}h- <8҅?}?l«;Gֿ]I?Fs?@?˜L0?.L𝿂Ĥێ/e%6?@mg)b~m[.6Ͽ]XοI17Cr?ff9ѿJ7tլT?{a7?4?w?b+iz?SN.EX?>k? ".?`Hѧ?oٴrPK! symw_db33_67_md.npyNUMPYv{'descr': '?E俬l_?kk?:  ڣ҅?qA]}?V;Gֿ4Α?t.s?@?80?cMePێlh 6?߬ePu:}w6Ͽ\*yXοHr?f9ѿѧ"C U?'MT??e?ۋ$iz?nc>nJX?4? .?{Fѧ?srPK!6symw_db33_67_md_pywtCoeffs.npyNUMPYv{'descr': 'YDƿZڷ?qlz2f囍?A&D9;?+?RF?P?*/*?!(꿋`7 ?X1Y!y?|X翢{VU?Y׻ s?OW[y~?81Y+?@h? oo? /Ma?6kJe6?A.1-?7h?h.Lڿ45gӿ8 ?#`>?=־ *oK_?rlwk?8Rg- {w҅?yN}?^o;Gֿ|=?'s?lH@?:e?[NeXD?) ^Dž1䪿2lпT1ʿ? Y Cǿ%Q濅%X?'w+ ?x~?h}#B?`-?Qk &Dп,X?ߧ 7'Կ("9?y%S]w`]1?PK!~ppd_db33_67_md.npyNUMPYv{'descr': 'HC@?Xl_U?|t s?_p<[9sI~?{ $#@9F+?/X? oo?>.#Ma?Z}e6?g,?E!h?u<ڿ¸gӿG ?ŧ>?E俌l_?ekk?0 KQ҅? g}?z:;Gֿf-w?}?s?ys9@?e?y HD=D?R]e0䪿 klпq]ʿV? F! CǿW;yX?a̹ ?Ώ2j?O#B?r7@-?jk &DпJX?7'Կ"9?QL?w`]1?PK!=%ppd_db33_67_md_pywtCoeffs.npyNUMPYv{'descr': '?:־ 俲wK_?nlwk?g- V҅?8N}?4XaͿ"t俥sO?z+րH ΦVǾ?>$) =?Tq?pN?ܘػR?@_Y?+-,58@T p׎PK!Mqאsp1_db33_67_md.npyNUMPYv{'descr': 'V؞?C5* ?ʈпf8]o?D??H6w~?x8?B5헠$QP3Iϓo?tJ> P}yV?"=c p?Nx또?Й\ҡ?1I+^ @F?>qmras?ux]V@?!숤9)>jվ;h A>fuZ.J>8@ ">Jh )a={9|P'R+Fg6&0 aPK!~sp1_db33_67_ma_pywtCoeffs.npyNUMPYv{'descr': 'B%,?ŧ>?El_?lkk?u ӱv҅?QEc}?ZM;GֿJ?:ts?D^I@?xK?=% u&MDb?#;ݕ\S?пt\Ϳ P j?ƣWaͿ]i9!qO?e$׀HepǾ?Ĕ{ $s4}yV?$% վ,@>eA ">1@b=,Pr6wFOjvKVS޼PK!tNper_db33_67_ma.npyNUMPYv{'descr': '?8־ ~K_?llwk?Qh- F҅?9}?Pp^;GֿS?yd!s?ƛ@?`ݽD?bXW/I?Ηdg|tпPK!n*per_db33_67_md.npyNUMPYv{'descr': '&M9?=:VEbmB,;a`?[en-G?B DҿPK!Jΐper_db33_67_ma_pywtCoeffs.npyNUMPYv{'descr': '?Etl_?kkk? Ű҅?a}?l);Gֿؕ?}s?y@?h3D?Nc9P꿬7?7Gπ3SPt ёпPK!"}per_db33_67_md_pywtCoeffs.npyNUMPYv{'descr': '9?W:NjsE Qm; o8,FJ`?"4R`G??<־ sK_?ptlwk?g- t9҅?` }?mɻ;Gֿ ?:q֒s? @?GZ?9(9ow` a?z 䬿Ӯv<@пYw̿ld[?Eɿ- `Bޜk?LNտ?eɌ&z?v*?U5=ܿg#?2?|k.ҿu?2Ŀ+as_zLj5.t?PK!-z`Vasym_db33_67_md.npyNUMPYv{'descr': 'kx o?iiԿ})WFp6?$b࿑MiXD۵}޵m,C?DmyO<| ?/vҿ]=?0d .U?Yl*a߿?H f{ODq?fֿÌ|`?Ekm؞?mIe- ?vWʈп4i8 ]o?0F??H6w??R$o>`5?k?>/߄?`gG??!C4ǿf,ɯ?3j~?S4w[v{h?=f.?M?xl?8n׿k#_eUv?⿙mś?Doؿ?PG<ʎ?h?!?ST}(s῰t:U?< Tߣ0*pM$G :\ovPK!jasym_db33_67_ma_pywtCoeffs.npyNUMPYv{'descr': '࿚)XJ:?7KHV֚E?jv[?|Z;?RDF?p?G?D(@c/?voغE޲@?l;Pݿ킂m5go?VP?UzҿϮ=fxpl?-C)??~ǿ:?"H;Sۿ^?Oӿ?ŧ>?E4l_?kk?X f҅?qf}?;Gֿ,?^s?0@?Z?v)8Giw\E?zņ 䬿;d @пD4+̿gՂd[?gɿ"KB[?Ш x+?y?LrZ*?0@=ܿc?L通?^q!M.ҿx?2ĿRֽPzL`t?PK!i;asym_db33_67_md_pywtCoeffs.npyNUMPYv{'descr': 'pRʼ`5?T? {߄?-Z H??E64ǿB <ɯ?Lwj~?$ Gv4Kh?^f.?5`T?q?"m׿e _IvÓ?⿦?"oؿJ?ԯɎ? zE?x4sῺi9U?a?E򿫌Rp);~MyU :܅rvPK!4asymw_db33_67_ma.npyNUMPYv{'descr': '?:־ 俲uK_?ilwk?ƌg- *f҅?Y}?;Gֿn?.s?[$W@? DW? +Qc+ b?ֹ&'F?)Aп5tm^˿O$ ?ȿ`Zis?ݎ%gF?{??Gǿl|0?Kln4ο8R?UHAM$J?Q?$znp?PK!?asymw_db33_67_md.npyNUMPYv{'descr': '#ёMZ@!L>AMgZYaGMܓiѱC VT(ʈFJDcT@($տcLM?ŧ>?El_? kk? h҅?*c}?F;GֿYu#v?ns?}4 @?K^W?ThkPꃎb?vN FF'@п)˿ ?HİȿG6Y1{?F>?¿?^b? Gǿ0?N4οʒU?#a$J??Lٷnp?PK!Basymw_db33_67_md_pywtCoeffs.npyNUMPYv{'descr': 'ݿN7}? \WJ0 Ả)?> CNX6a%gT>5A$> +>z47?6QW+X̀xp?NG_6Ä͋?:0o ?:ށ?s#5!|nR?dgg%οA?#S??Ȫ;|?H&?U@?)Л{}֙^r?,??z?uR?A5_?:?9Z߽?lA-?9nm@ME?k3)od?a?T6?(!*PK!7zpd_db34_68_md.npyNUMPYv{'descr': 'F?6(?a?2 =S?7r?˶HR?YeY?#L? ENgj4?H0?#Œ?߲?H]RT/\?!e9JI1?gE_Կ!- ?kpir7393A֢?>]\l3?L9ꮑ>s;w?sBizBD#V&h`kT?mUT<J?s97k;#?7(?;[> 74 *Pr>BI]3eԫ5>% Y*Ľ" pK=R8O6T 9R>6=gT>ptXA$>׮h +>3O龋ZXyX?0 [#;`>jf.7?F+X txp?t^6z͋?>,8 ?R $ށ?~|!|S.ʰR?Yf%οb?:S?n$k8￉q>ȩ?Z?,@?eS޿Ad?$/;d?FK;f0?6(?]$ؿfo=?!mmUNc3[I?oK|߿vh65H?q(LĿ$ƿJ_\??4 ;|?,&? B@?1VY}G^r?e?EhR?`_?:?+߽?b˸-?zZ@+?WWd?4H?핶6? *PK!)zpd_db34_68_md_pywtCoeffs.npyNUMPYv{'descr': '*)< *x5r>k]3eUqcr5>v𽑒Ľ?ŇpK= 'x6T_9\Jտ-ɑտYфտ]gտ֤Hտտxqտ"Կ&%!տ܍Կuf2տ֕ԿB@ֿgoԿk}Կ~[aؿ!};`ȿ,񑮺S⿸p?)fHؠH?hfe6_?YS;s?[@?޿+d?S:aG;d?t&gWf0?f鶿(?zoOPؿ W?d'mMd!Nc"?>|߿ -2?DzfĿXʃƿ7l(N]A}?̓B~?9sGu?Pjd?Y}+g? _?q/^?!Y?zՌ?ژ?bT,?" 3t@\*_E?Ύ?D.XH+4πPK!qzzD>,Er.禃7>c#0>s{>YMνfsY箫= KwtlCcIG-4PK! asp0_db34_68_ma_pywtCoeffs.npyNUMPYv{'descr': 'T9???X?t@(Թ _E?$8\?µbH[4πPK!sp0_db34_68_md_pywtCoeffs.npyNUMPYv{'descr': 'S?( ?K~]aYQcV%N?Q?.v?s`9{5?$*vҖugw?bkj??Ŷޢ?׻駵?!8?!p \^??Ε,R?mNY?9?jxNa5?c#ց0?VGP`l?r߲?­g2`ЮKr꿵^6? " Կ &?hH,jU䐿qpt?(Sɜv¬@?o| YD{? 1ۂ[]̹kL̈́Z?*c~UaֿJ?G8Ei>eY"?Y},k>zD>'3rk'h7> qcW0>3>*CYMνgӸ=+m=.CmSnXEÝZRPK!.[sym_db34_68_ma.npyNUMPYv{'descr': '^?L{?i͊ӿO &?|Sߪi?}z<#Nkb.3RC:?w?T\s.?˫,?[,Ŀ^oᵵٿo~2?xԔ$ͤ9ʆ>?>[tiDr[fῪX\??0bc@!ZCg?sc?v B6]a!&ҿ?Q8?f_51?8¬q?l-?]'@?޿+d?!:aG;d?)gWf0?ض(?VPؿI.W?TmopNcѤӍ?p|߿l+[?Ŀ1}ƿ?:xmNyxy?^1|??Ҡ?%Hnhu1?&j9;?d,?1W_?uS?r.b?}?Iz"@f@h?b^b¿c? "?e?PK!MZsym_db34_68_md.npyNUMPYv{'descr': 'Χ翋=??S&忶1&J?D:Q?<@F]'z?9y?E\e?y%}c]l?\|.·aepu?td?8Iz؍?=&?7Eʧ?uy?ds +Q?7?}AR?&ggY?IL?NH4??0?#Œ?߲?:jcSixJt?׸?wI?ħ?'Tc'f?U;>~'w"Σ?mA{C!N*ſC*P?zͫ.?vLDW@[;*yܿ%kzéX Jp?1??mb濢KgP|?(Xzڜ<#ۿÐ6,zғHY0?PK! q͘sym_db34_68_ma_pywtCoeffs.npyNUMPYv{'descr': ':#3-3RW :?.v?Nqs.?n(,?$p+Ŀqٿ[~2?)_Ԕ ʆ/?xhDtV+B[f~۞?y?2Q@T(g?Nc?]Vҿ? }?0%1?jN8p B?I6p-?Y'@?eS޿d?;$/;d?RK;f0?6(?$ؿ=?'#m 6McE?|߿k`?-Ŀ|ƿ:kN+Uxy?4לr|?*?Ic?b2H[ku1?%G9;?p,?W_?HP?('b?N%t?^҇"@o 5yh?kzb¿4c?^"?\?ȶ^M%l\?X$s?n!(a?9Ǔq nz׿Sb?@>wژ}>$,l?,@#Tb j?N?IM?:?b [v?b 8k򿾼Y@V Å ?2_TпZG?h|?jg?p?Fs΢T?p K???0R?~JY?+9?qxN$)5?r#ց0?@G&`l?r߲?mv56!T⿚꿬&E?.3fut?{Va9\?y's?la?Ex￉nz׿ib?@ M^}l?|@`sF%%t?N?bM?~3?D?v?㣠b E>Uk5YX{ ?6X@п<,?X>c?9?xhg?ƌFNR?s;?\9|>?yN?*?e?.?j;?-=@(f_]?Y?k@?޿V+d?9aG;d?-gWf0?!׶(?[Pؿ7W?m3Ncb"?j* |߿@=`?$\?Ŀƿ7'r_(>?X>c?9?xhg?ƌFNR?s;?\9|>?yN?*?e?.?j;?-=@(f_]?Y?k@?PK!Pppd_db34_68_md.npyNUMPYv{'descr': 'x9N"s?<}[?S ?SI!TnQsУK$?K?Q?lEB?Gb~鿶q㿃U^#0k?:J؉?2g6?~|Eä?pQ@?Or(? /8F???>R?-4hY?kL? NT4?C0?#Œ?߲?|՚~?ynT>x9N"s?<}[?S ?SI!TnQsУK$?K?Q?lEB?Gb~鿶q㿃U^#0k?:J؉?2g6?~|Eä?pQ@?Or(? /8F???>R?-4hY?kL? NT4?C0?#Œ?PK! =Qppd_db34_68_ma_pywtCoeffs.npyNUMPYv{'descr': '?1>c??anog??<ɅFß&R?mp;?r>?tN?r?Ce?܎?3'sj;?=_ǖ@^f]?St?7؀@?eS޿d?#/;d? K;f0?6(?$ؿlգ=?%mNMc;?8|߿Us?:ěĿ+ƿ9-_{>?1>c??anog??<ɅFß&R?mp;?r>?tN?r?Ce?܎?3'sj;?=_ǖ@^f]?St?7؀@?PK!9Jppd_db34_68_md_pywtCoeffs.npyNUMPYv{'descr': 'md_p#U^dk?gHd؉?^&?#wHä?@@?w(?| >gE??"w$R?(3NY?V&M9?LpxN5?ff#ց0?G>`l?r߲?a ~_yn⿒aG9{لJ"s?r} aB ?pc0!)eIQ/9-$?\? SjyQ?Igg?>md_p#U^dk?gHd؉?^&?#wHä?@@?w(?| >gE??"w$R?(3NY?V&M9?LpxN5?ff#ց0?G>`l?PK!fƘsp1_db34_68_ma.npyNUMPYv{'descr': '^ ?=t1CC JlkiӪ%i"t$OP?&vXx)D?k-cdb?('??޿+d?9aG;d?84gWf0?e(?LPؿ)W?`CDmU0uNccU?t7|߿*E !?#Ŀƿ+odPlegv?NhɎ??3F?gf?j$B?B8T8=`?#%2s?%8f?CZKe?qa`?xͩ@[B ?ϻ?e|vyO9 PK!i/sp1_db34_68_md.npyNUMPYv{'descr': '?K{Xw>dP@C#uQH_ ̟t>guPMjǵO> iא9ҽbmLޯ@6=Kp2Jek?=Q5Ca0?^i.׎m,":()ypk'g|7%waU"o> N4ji%h:^fхPqqx&x w"(D?6=db?z휞'??eS޿d?#/;d?K;f0?Pb6(?y?@vtQa˟t>wPtO>&gT>9ҽ&QML+\4=9h`22ڮ:Y<\/l|?QX7?lK鿱{/?1;֖w=?xEg^4?V ?6[Ru?a]? i?:NMj??Rp!¿4b=ɬ?Y~/?4P-QI?n0ؿ2CɱV?PK!lYuper_db34_68_md.npyNUMPYv{'descr': '3?'e?PK!"1|per_db34_68_ma_pywtCoeffs.npyNUMPYv{'descr': '쿣M ve?tFf? ;Fq?8g?c?2?8ao?v6o@:V|? 6?.DK*Ύ?$Rk>֖ ?x uE ? e?:Ru? W]?zi?Mj?7ə¿`$n=ɬ?9x^C~/ys#4P࿒I?+J0ؿK& ɱr?PK!0per_db34_68_md_pywtCoeffs.npyNUMPYv{'descr': '^RL{ٹi͊?2>P &Hic=#?.(3?36/:xwҿDu.迃hqTR,oa?i˶?RkL2? ؔ?S-ʉ?l= d>@V?kD?lbM*1M IQ>濨 R?}#?ߜ*Ϣ?@zZlJ:?ip80?NA?޿V+d?:aG;d?gWf0? (?)FPؿIV?I+mE)Nc>25?ы|߿*AwQ?ԄNĿƿ[kqO_?%{?mf?X"j?- >F?2z?j9c?Qf?wL,ޟk?3!?6V*?B>@J?ՀR?65>3""ePK!`asym_db34_68_md.npyNUMPYv{'descr': '@?p D?^11V۹2Q,濎s꿍 S?#?)z?eaZ sr:?/?@A?eS޿d?$/;d?8K;f0?7(? $ؿD=?$Sm~ Ncp?|߿kt ?fNĿs!NƿI3jqdH?Ēi{?4/&f?!j?z33IF?U۞z?>b?Oyf?ZHk??tk*?"->@HހJ? 36?Ik5Cq2"\ ePK! -asym_db34_68_md_pywtCoeffs.npyNUMPYv{'descr': '?cV?4 |?vh@ǵT?%?ށu1tKHXPK!asymw_db34_68_md.npyNUMPYv{'descr': '?6N?]? m,h@{%T?#%?Q:tHH4fPK!; F~asymw_db34_68_md_pywtCoeffs.npyNUMPYv{'descr': 'ӊ*mۘKr?<m? ?[dF^.? OLfJtj>ds+ac?D諭&^>M K=-k.?|44 />?عuD"{%?^ a?s-6|?@!V#(?>D%?7]6t}ѿo4?c"hܿ B#/?] Lڿ m6>?\}F?ui_ ?ef̌☭?Θ}?{sTz?jϪ??0PF?g*6:(Z?4_d?/ lo?ܒۣXYC?Y&?rz:@ Yth?w埚Dh?ƦuEBֲ "gj?3 ſLז l-? A2d?Z_w>PK!Dz@zpd_db34_69_md.npyNUMPYv{'descr': '> *ɿʟ3KA;Q޽ 2|?yI!Z ?R?iDȄ?z?Np76@_)RM RԿiѦ?7M?N??ſL.|ɨ ^J? >¿0dQĚ?^diaJU\ 6?W``kb?P/푿]@!"?zӐ+da?\z-vZ~,b? VZHݺi&?AN\ԮeaHT>1@ g>/mb>3η.>J6'x":=k<96=K(꜋y_PK!bzpd_db34_69_ma_pywtCoeffs.npyNUMPYv{'descr': 'oOL(!.tj>.c *D諭d><-7.?Ұ:4 />?Bm!vD%?,a?fG;-G?,'?D^?Z !t}ѿe4?ahܿl#/?]Lڿd|8?>+?L_ ?HTZlR☭?)}?tTz? @?| QF?Wxo6g+ Z?y4[;wd?;lo?3فۣ|YC?@?D[:@BAh?Ӹ.r['i&}?b~z^ EBs} EUj?s ſd6 ilJPK!~ zpd_db34_69_md_pywtCoeffs.npyNUMPYv{'descr': ')ɿNJ:u3'*޽;&2|?KeZ ?*b?=g\>/mc$N>M.>:'x齒+:=[<96= ℮(@ky_PK!33sp0_db34_69_ma.npyNUMPYv{'descr': '5@O@v_@PK!n5_qsp0_db34_69_md.npyNUMPYv{'descr': '0k!ɿQà3忰{#޽2|?6Z ?uR?Ȅ?lz?Np76@R^݆vԿ,~ (u?:ÿOh[f?U R}? Ի;ɱ?܁`)?WPn?&!=F#d?:Z {M1 m? w0XXdKྉ\;,>}f/uP6sF>}:LFB>y܁p#Uɖ=TyNd ==ndVTW:6?|>-pz2=ʯ?C>ٱ+?)?D5[*?ak?@R5@P@v_@PK!k sp0_db34_69_md_pywtCoeffs.npyNUMPYv{'descr': '!ɿڇ3QOv޽f2|?ŦZ ?F*b?qDŽ?', Ld?ݑ6@hr"RVMvԿ)!j~ u(u?Q<ÿEf?fuRiWm?h4q\?J`WwV)?8dn?<"? {`t m?jU0XƔmGFA",> G5R/ucrF>LFB>Rԁp#53Ȗ=ud#ðeuUyv== _/ȿgNŽ@ENjƿ=?A7a?8䶭@/sm"?]%?Na6v A8zg1'?Ķ9M]IlοO5Mܿ``v?BS?W?!80z?zG En}0dO?ϣ?N '̌☭? Θ}?{sTz?Ϫ??h)3PF?O#6K*Z?`49id?gMreo?@ˣnZ(B?E̛9?V@!tWh? q>qT5OrurV?rp,⿄IJ{K޿]?Ke?T 84]ɫ㈷&2, J?ZS!?`7}ٿ̞G?k8@~02?0ҋ?VnF?PK!Bsym_db34_69_md.npyNUMPYv{'descr': '>P-ɿ3h޽H2|?$Z ?h#T?޴Ȅ?z?Np76@R ͕xwԿJ%(PItA?ѧ2ͿأEJ?q3?_p)Ͽq8lj8?ȿ<Ž'?8FNjƿ'?Ŋa?G˘@>Q/Ь"?lɫ%?{nE64TAƕX1'?\9M +5lοa}wMܿZu?PI?.2?ZC~z?H ~0tqO?/?PфZlR☭?}?3oTz? @?; QF?}o6+p Z?(R4odd?h 4eo?]=ˣ0s`B?!?vxe@Ƽ$h?cw{l>.'t9=c?L0,_Y j޿!=e?v5]nՈ"LI?M~?1}ٿ`"ѥG?$8@TQ/2?p?hUF?PK!zAݠsym_db34_69_md_pywtCoeffs.npyNUMPYv{'descr': '>j?K5RKSt?ʌNX?rgc?Mr Q?"?"uL˷?uQ~g?luqZ>"-ɿ-3yBKXm޽62|?gZ ?93,b?qDŽ?p, Ld?ݑ6@hr"R￶VxwԿFT('wA?&2ͿdmEJ?J3?E)ϿhvlX}8?jN? i߿zθA]R+?{QZQ ?;u?Ł?2Ӽ?Z??d H8?lg??άق俗ӳ@?8}Kwk⿭䙃,3[?Ccah/?p?ōlFM࿿}&PK!symw_db34_69_ma.npyNUMPYv{'descr': '@:#i?17%qX@3NБUt@?ڕ O62y@bqCi<¿6ၺ?48*?؃7[$ȿzM+z!6?jI ?q:?M̌☭?Θ}?,{sTz?gϪ??h2PF?o!6F)Z?k;4)Zzd?go?i9ѣLJWC?yu?kr2@c hg?Oe37duj(0S̹? 㿷RV&WŗwEO?'dzvc|? /?F6 ڿU@0I??NX?}3?PK!Gsymw_db34_69_md.npyNUMPYv{'descr': 'pv+2ɿ҂3U2z~޽52|?ʠZ ?9R?Ȅ?z?Np76@cژRᅱhԿ;ǭ'w?jY|W?,fƿߋg"qοտq :?8?WCNPv/u@}i?&7ޜ@zБ2#G'A?< Ohy c4sC.;¿rၺ?KFh*?7`$ȿrN-!6?r[6 ?IUT:?.xMZlR☭?!}?CqTz?n @? QF?{o6k Z?4KF4;'Iǫd?fgo?Q(ѣ￴{!C?V?RS2@T|gg?3/-\)Dv̹?Dd] ӘkV7΃p%qO?~Re vecr2?|/?^S6 ڿn@*?C$?*X? 1?PK! Ƞsymw_db34_69_md_pywtCoeffs.npyNUMPYv{'descr': 'ͭ?!̥V񿜦(@,?&ah?p9Ne?FZa?6kBonT?l?USA?h $?[Wa?Wuڛ'?K8?%QE(/xs%Tc1C`>F~2ɿGCX3sÛj޽cPշ2|?Z ?I*b?VqDŽ?a- Ld?ݑ6@|ИRᅡhԿ,&w?. uW?Seƿ6^pοYտcԜ:?.8?o:CRv/g;?{?YN? g?>iNt؄sߩa]9#kASmj%˿+)gO?r+ ? qН$9?ܭ~ɿ-?moe?40? z-~?wj?Zķ?PK!k,tppd_db34_69_ma.npyNUMPYv{'descr': '?%?#V̌☭?!Θ}?{sTz?bϪ??8Y/PF?6z(Z?4ild?po? YTwC?Dp??Ѐ@nk?Ⲯ#$7x?T5[Ӌ?,0;\?0Fva͂<,&P?=4jȿ$yiĮ,,!pw.]?vC'e?A˘VI?DbS"?js?}L?ͿeePK!A͖ppd_db34_69_md.npyNUMPYv{'descr': 'H+ 忁 ?DyCLD?Š&ڠ? ?|V 򿵽6N7?}?*MX?2P:?& ?ۦu$?`x'}?`_*I еp(7~џ>jZ-<ɿ<5ﬠ3Ut޽52|?Z ?cQ?9yȄ?z?Np76@~ъR↑AԿfb?X(w?ˢY?UJ$?l$s>?#U]?Sz&Z1M P? H pf?0rOkV0˿:<己y9nĿqh߅/f.+?s[M)?ux ?@AaP?~4+E͔??n? {n?בsՒTſJ8Ѕyӿv GJc?P閏@ ?LPK! נppd_db34_69_ma_pywtCoeffs.npyNUMPYv{'descr': ',?_ /Dοt?:E7Dkӿ[$?64n{`? S?K@:'?Oד^˿TR̀rK#鿍Q?'? _2}?1F|?8>?\?ŮDZlR☭?1}?wTz? @? QF?ruo6?VZ?SO4o|ITEd?ܱupo?DH￐wC?^e ?Nr@Q<k?cfk$XT5\n?,S<\?_Evp;'9?cjȿFVp|]?q'e?nVI?gVAS"?U]s?sL?`̀ͿHHPK!QL~Ҡppd_db34_69_md_pywtCoeffs.npyNUMPYv{'descr': '[m!Ÿ:FJ" 忤ԩ:?y^wD?{ڠ?Ƹ ?$G ; N7?%}?9?ɩ:?yn ?N@nu$?tgL'}?  ࿒i:ϵ$>_s;ɿ_3T +޽DPw2|?Z ?4)b? vqDŽ?`. Ld?ݑ6@RR*AԿۑb?w?Y?F,$?6s>?ں]?ݛ: ?j$?"Hz$?JL?B1_?5m?Ur?n}v??"2%-Z?ТT{% GNMyh@>2Z ɿwD3BjA[޽ 2|?.oZ ?yDQ?Ȅ?ؤz?Np76@pgR"]xeԿf !")? X.g̿ ?}U|ɿ6r=?3r26Zv^?OV )e7?7oɕ;^1"V?%Pb?nCm4dafǣ?Z?p)H#01?̛PVu7&>&=d> P՚A>vvt7W9>p>W1w ;~j=r7{OVݪ%32Y<N<9XlUտg R?V؀ZlR☭?}?mTz?^6 @? QF?7o6S Z?@4Ld?jdo?Fȣ43B?D?йhs@ Oi?zb Xq"?G⿡RR.o35޿5y?v!TRy8~І^'/"kg?{9?؋ӢjZJ?Z&@o@fH$@c<x"@PK!sp1_db34_69_md_pywtCoeffs.npyNUMPYv{'descr': '.yÓ%>;? ɿY}3忦 SK;޽)2|?Z ?JT)b?XqDŽ?* Ld?ݑ6@Vt]Rᅧ|eԿs4S+)?l5͹-g̿$~+?FRU|ɿ!d=?FrV~v^? +H# r:7?CD;:{V?O'b?\$Ϳ4d˺?Z?3 )H<^1?E&>Kk=d>"'cCA>o5tĸ1W9>3"y>޻-7sIk=IiVRӅᯚ2v4閏@ ?L>XEg̿ $7k?\ i?XmſF١?'? 7ƹ?}쮤?T|F?,֥*?jM?7j`#?se½?s.?cCKA#va[ z_?$"7ܿee]wdR0L?N?1xoZcES c.?u)xw?oL?a?{ax ?I{},?w-?5 a ?I?T3? ܐǏ☭?)Θ}?{sTz?W!Ϫ??p.PF?6'Z?|4SZrUd?6to?ѿxU8WXC?dT?=p\@M?Li?"70 <‚0`zd?@4f>ωq ;,:"?qfHԿ\ˤT  I?|uҿ  ?j?Ccic?d@ [XKmֿDбοpAjX?B?e#?0Evw?s ?ۯ+Eė?izG?{c?R557?8qq+W?G,࿫8Davcى>v&ɿ'r,3忶K!b ޽2|?]Z ?dP?ӛȄ?wz?Np76@OvR¬zQz,Կ {ۺ?5?7?{nc?ߋDLRֿM; 2?0II??괻|H!!?^@d? U\ۿ%?Ҁmw 3nԿJO2w9ڭ huo߿\ey?/sA?ٰ}?oUk?,3?H g/̿u5FM?&D4&?PK!9asym_db34_69_ma_pywtCoeffs.npyNUMPYv{'descr': '?9T½?K9.?s^K3μaWm,X_?34)"7ܿ9CGeL?y?nZԍb.? g xw?|L? >a?D^J㿿?G,?՜n?1迢 . ??*.3?(" IZlR☭?9}?zTz?nq @? QF?ro6Z?*4fq.d?Xd\so? uDmˀC?\S?šxQ\@ξ+_Li?3'$N <g0td? 4]q:5,yg"?Կ[tm< u>?5:ҿ= ?vxa?~4O?q> ݉FPK!߷asym_db34_69_md_pywtCoeffs.npyNUMPYv{'descr': ' x&ɿn3<=޽}2|?/Z ?5)b?КqDŽ?2- Ld?ݑ6@*⽧vR,i~,ԿJۺ?wT?|nc?;漣ORֿ 2?p;II?k8?x|,& ?&d?r\ۿϖx|?d~Xv/31#mmԿKy򿨭'Rka9 hdxC߿Dy?DA?ʤ}?kyk?,3?d+\/Tah/̿Qk俱lFM?}&?PK!x>asymw_db34_69_ma.npyNUMPYv{'descr': 'z ɿP3x޽ 2|?&^Z ? 5S?Ȅ?2z?Np76@pgR**Կs %?P9\-Nv>?9GJ?4a#[~_L!W,!? n ?(Y0CPqOu?`?qg?ʅS`?89k?GA\?Ud&?~?;#0,ɿ :$9(&~? OQ6ceK40ǿEjz?e`7'CMֿPK! jEasymw_db34_69_ma_pywtCoeffs.npyNUMPYv{'descr': 'C@PK!5asymw_db34_69_md_pywtCoeffs.npyNUMPYv{'descr': 'ǽ_ɿ?٠31*{h޽f*2|?Z ?D+b?ϳqDŽ?* Ld?ݑ6@Vt]R**Կ38 / %?'N\jmr>?J?v)[2!Wyy?n ?YO0PǮO< \ΰ?{?:?27`?<)v9k?L?׬0&?X?<,ɿ d׾ 񿙏o$9{iҢ~? .Krىe= 40ǿX z?t~Sj翛ZķֿPK!1T+zpd_db35_70_ma.npyNUMPYv{'descr': 'K9<|]%a>,qu{Q8k>0rJܾښ>; KY /?6WB˹R?"]Va~zym?"w+ Lـ?n2MYp?t&앿P?jRF˰Ru5?bN+ѿ@f?H%b?B`?bhJE]E?h(l:3h/;? |snοK.?Y m?i/X@Z R!K¢ʴ޿H@?91Ex%?qz?PtG4?$ယ2J? D?(W]s9!:5y|4;qh_({?>C4>$?b!Bb? 1z^':?VSH=LY@a? ߛ? ㈿=?yMm?N7? aˈ?1E&?PK!9.zpd_db35_70_md.npyNUMPYv{'descr': 'fZ.־:t>&G>+)pOEM>5:~.~=2XIƜ=4 Kyٗڢ0="4dQ<3o%a>UChu{@Hk>@$9Jܾ΃>$8 9/?B'VBf@4˹R?Z\VaD:qym?J"w|vLـ?z22?*앿k?\o˰ݰF5?j+ѿs]?,"ri?ۨj?1iJOmE?j[l}j4;?wuο `.?1m?@I*X@1߸Fj;KhSʴ޿b@?QYx%?%?N9t24?!e2J? D? sU:z8Wuy|qϟ3{?foG>$?yO`Bb?kľz^_)?QiH=uY@a?t?O8,㈿v?wam?I7?n!aˈ?N1E&?PK!kzpd_db35_70_md_pywtCoeffs.npyNUMPYv{'descr': 'NpO׿q?TJHSI9f?ῲ:\\?'pпwc2%a?fbIB̈́(? ͑0bʪm?;M?R36`\"{!U? SFe3?M>J`־>&&G>09px~M>٘.6=&nbƜ=Ky))0=Z<4u?0ַB|u?D]?VW?d.Z|?5Zqe׿nXિ\v?r5I(?Ivʳ&6:tq?y_i{i y;?%ld*?~`?SVd`MH?iJݿ ǯnĿPa[?̴׳q&vJ $2a]?j57࿊=gEs87MN?cfnyۿE¿ӿҧ?~EmٿBpȿyS1?-!ec?@C9ٿpe^E?G2ĿL|?n`!_f9{,Y>\-ydU'rd$>=O׽_]h[="$ruU3᭼PK!n|(`sp0_db35_70_ma_pywtCoeffs.npyNUMPYv{'descr': '?4 B|u?1D]?˜n?xj|?a%ZZ@z׿~qિxwPv?`(?f-k&Qto?v_Zj 1<?;5lٮ/z*?`?{SV>HMH?L ݿدnĿ0h?!Շᅵ^&]c $@=]?lE7࿿-,AK@\N?:y9yۿԛE¿pь ӿnt5?o3Sڮf9uY>h"[?ydurd$>Y(U=׽XTf=}>:RJ○5LDZ,Yӿn,%?5? ʠK( Z?^?Ire?:ƿ{((JD>G,f@O-?-Z5?z6?o Hg"?8w{￈{tir?N9@"l?D\56bQCF?h(l3h/;?Մsnοe.?m?oX@J %KJʴ޿ En@?Edw%?Շ?Qu|Ln?1OGH?_WI?/x.FUMpj󿜻{ ?![i? ?\≫~˿rk?Jlmɭ|B޸( @W_`ܚ/E?|wm?DVJ?1?Hvr/?ZPK!0߇sym_db35_70_md.npyNUMPYv{'descr': 'E}g7G?O?{쯿V࿺xVH?ďݿ1nĿ,0?2Eꇁwb&xc $]?ȨE76,HK@\N?:y9yۿ ?\¿%1ӿ*-?R"걓cx?{u???u7Z?`АU?d[OJ@?yd?/ ?ef/M.翟K\ͼ?S?ɇ]=?y$NVۿ"oݖ? ?ֿl?72EH?cAۖj9?Z?tHiZsW?, mÞ俶D:z?8n/="?m^n?PK!S3Esymw_db35_70_ma.npyNUMPYv{'descr': '3h/;?|snοJ.a?F5?oO?9?˨Ē#ۿ?p?]X" p?`} A ?-S|?M؄??hC !Of?i 3˿OrH쿾iȗ#?Ջ3k? pLC?S HʉտPK!2|}symw_db35_70_ma_pywtCoeffs.npyNUMPYv{'descr': 'ܰrE? dz?%ʗq? REe 0.]5{{j@ļf?A:0d@lj%A4g?FPziC3ݘƝ=o̿n# $T?R;Z?fxAF?j[l}j4;?wuο`.? )2m?H*X@俯B;KLBʴ޿44CA?'w%?󺁥?YPt￿h)4? QJ?2x?S3(MniiiLG:.P? ?(U?ڞj'?aC ?%v6y@H3Gwֵ)?PK!wsymw_db35_70_md_pywtCoeffs.npyNUMPYv{'descr': '/w?RwFf 'Q?Ȅ.>򖄟a?TnP?V&s?-mg#ۿ# +q?xfΙ 5Pp?_?J Ia ?X|?TM؄?}pt?anW rOf?k~83˿PHHz#? v^N;k?Y*`C?b_Iz(տPK!"ppd_db35_70_ma.npyNUMPYv{'descr': 'F￶9(aG $迩xe]?cl57~Nf{}8MN?`fnyۿ?lP¿\!Կ*8q䣸?ђ߿X8Ȫ?P?[Rˊ?Q˼vK`?k[?߮k|?\ {F￶9(aG $迩xe]?cl57~Nf{}8MN?`fPK!;Izppd_db35_70_ma_pywtCoeffs.npyNUMPYv{'descr': ',wKB\N?:y9yۿQ¿"ԿI?^߿"/ɪ?*? l̊?vK࿔? [?l|?] 뿨z2,wKB\N?:yPK!XJsp1_db35_70_ma.npyNUMPYv{'descr': '?y%?/>?uPq1?=LH?-?) -\xi5g+Z!W`r??!_ ? Ì+D"B?`tGьVc@x?Y,7?@иĀ1?Kԩܭ<@zG@^[*@҄ܟ2@PK!)Ϩsp1_db35_70_md.npyNUMPYv{'descr': '$94z>Mە>9xo?Ty7k>~uy0>mU`"y|=UZO4Zskcvݷ9=l{h .V)PK!i sp1_db35_70_ma_pywtCoeffs.npyNUMPYv{'descr': '?ӽy%?ɮgP?,!u 1?gpH??`?Eܭ| 󿔍jOQ*5r?̓ ?x?(G+,B?[HmbUc@S:* (?itd/?zw1?&Ʃ٩^ҕ@]@H<[*@GWܟ2@PK!ZQsp1_db35_70_md_pywtCoeffs.npyNUMPYv{'descr': ',z>“¥>}?|k>v^Φ`"i=XIn YrIƓ;=ܣgӼyC.ּPK!Zxper_db35_70_ma.npyNUMPYv{'descr': 'F￶9(aG $迩xe]?cl57~Nf{}8MN?`fnyۿ?lP¿\!Կ*8q䣸?ђ߿X8Ȫ?P?[Rˊ?Q˼vK`?k[?߮k|?\ {,wKB\N?:y9yۿQ¿"ԿI?^߿"/ɪ?*? l̊?vK࿔? [?l|?] 뿨z2S$ ͻɿR? b{ڿGK2(*@9`BG.ͿTX?9 K?/ͨN?`'iX?O7ۈF㿮ɢ?rC Nҿm* N?Kf?B@\W%mU!i*'%ܲz8l/?NL嫱Z ?,`?`.,5?bV?TޒUj]E?h(lZ3h/;?=ssnο1.? m?bdX@l# Kڧ`ʴ޿݆@?|&y%?(0?@P| tN?sAnK?(;/?"Aޅ;ş&*Vk/C?[+Z?"=?G'Z? :n?lRRοV@O%ȕ@hvZT?">bS4t?|PA̿ڴ-,?egti=m#?PK!Jasym_db35_70_md.npyNUMPYv{'descr': 's5?? ?2G3?w2;?WF7ug%Կ$vrYcى?+N&?ol8U?k 3#[S?(}Yq?t??&{!W࿓H?ؐ0ݿ9xXnĿ?S`D+%25R $kO>]??g57࿞"gnT8MN?mfnyۿk;¿0 Hտ1X}`%atoG迵[AA?1$W$?xmC\ '0Sl?Β,Lgƭu?+I?pU"/8Bҿ=H?ZTsտm?&JED?Ј㿆tЖ?KϹ9<׿Vp"H?AQWnl?1&Þ?#zOW%n?X_"տ"]PK!&\0asym_db35_70_ma_pywtCoeffs.npyNUMPYv{'descr': 'l/?BqLDd ?Wq?ɰ.ļ?}V?Ɣޒ3y]E?j[lj4;?uο`.?;^2m?uM*X@CH7KNʴ޿ RA?+:y%??i@t]$N?B!nK? ?S.dyRşm /fTP?kOZ?N=?]L?4(Nۃ?ț#Kο4ȕ@ ZT?0xbOt?y8̿!-,?6ʫ뿔i(#?PK!7wasym_db35_70_md_pywtCoeffs.npyNUMPYv{'descr': '9俻BKhʴ޿d>?x%? |C? |u?@zG?Y:h?ɤ&"BT#ѳ'PAE~?5?7(E~?P^ۃ¿(H?Wܠr @[{ڿSW2?vXSg?)NRb@zg_ @}@L@PK!Aasymw_db35_70_md_pywtCoeffs.npyNUMPYv{'descr': '.? c??Utr`Jҿ+u?B]w ?*$*Sΰ4cU.i?k\Ypτj )P(? LOs-??gޫV PkH?WXhݿzynĿ?,ȇᅡ&xUd $W]?mE73,HK@\N?:y9yۿȦ{¿PbIHӿF)?gy@[ӿ@ ?-1?+2 ?ũk?*w2ȿgY?@+vH?4志 cDҿU^F? @o?2'Mbȿ3$?3Qi 0N?4%}IdۄeA? Nf忀2?HH?jP#Tk?0J;kֿ*`CGa_I?u(?PK!Yjczpd_db35_71_ma.npyNUMPYv{'descr': 'M>>t&l?k>Y>LG>>Κx>Eyz:?2f0\!G?BjHZ3Yf?i3G9Miwp+h=!%?jx͝p?}Ŀpk?45ؿeg0?ho&俭'Ow?iZDə濱 >?Q?B?oLi?~xg@`ra?|F}yKɿta3g:Ķ'X[?\?}r[@c҇?tݿlm?[]? 8-?\!Wy^?B?ȎÿKT}Ws?x w? EjN?l늞VCH%%0M.)?$[q@@C?JdWgCV萼?]m{볹?tY[0Vj׿:nO H%RG@WоPK!'Yzpd_db35_71_md.npyNUMPYv{'descr': 'ΞA]?-a*{ʻ?Ü(PÿyR N?PAn#?UE7?6ظLĚԭ?*lAI?/@?7_fEDf? U\D~K?c4$1xʼ?ꮦZJ}>L/L>(W١"^+>n9TǔB2>SV=sADǽJߓ=:DGg`mx9ۆPK!ʔdrzpd_db35_71_ma_pywtCoeffs.npyNUMPYv{'descr': 'M>Sߎ&l?.k>kg>ZW6MG>:+f>qp= {:?*Ve09G? Z/Sf?l;Mip3q+ȵ"?Z#xp?r}Ŀj?)5ؿBg0?'o&Vw?[ə濩dX?x%ˮ?^B?hi?N"g@4wտuA?e)[?(K*?閩?DR`ހ?:|y/N3к?UL>o١1Dk+>X9TL2>?h=l%UDǽ]=5^G}i1amfmMۆPK! Fsp0_db35_71_ma.npyNUMPYv{'descr': '?Tr ?Xbަ?6?׊?8ʻ?3.WOeÿ&BN?2~"?=AP7?Z*!I[ϾJM>1,[ >[ͳMv]ŦQ>. ;EUbM=e'Ŵ=>DG񕆽5 o8=`Ӄ.?[r ?;bަ?u7?h׊?1_sjÿ]bN?G;?^&7?Է?ͧjx ًm󿼓Z8f#?KY@U}?jx7?^'?ʜ٫pe?^B|?ek弿6޶?×%`q? #?`1bv&jg@E?x.!!?#0q.?j/!>!X[Ͼ|!M>+UA[[ >cݳMv'ԦQ>*^/aM=°%Ŵ=^/U8=rCo}?dӿA3k긕? ]+x?sȥ:?ވS@?Tó ٿ.Aaʻ?XQ-$zÿ]N?*"?+S7?6@ 5|?b?ݿ=r]?FyF'?2,{@ ۸/u2=Gt?.lnyugNl *k@)[Lbz?ɪ~Y?Bc7G?Vf ?ͥI?w &g@ ޔ?sߎ@ry?\ovBJi?Ѝ_㿍$M۠ϿoǿAB: zGm3al?']k;?PK!IU6°sym_db35_71_md_pywtCoeffs.npyNUMPYv{'descr': 'O%e?7LeH"*36({ѿ#uuwu?mSVy0Y?*,?.??c0׿8M?45A?G7E2?:ڿhw@kƋef롼?Fiߡ?z\w?r,y?~k?"H ? F?9@..GX;?Йĝ?ߪx@:DG?i>o?RKG/lCY8LK _4sO2)?Q)׿~'O.q??G}t`ƿWzq SCzP?PK!j]symw_db35_71_md.npyNUMPYv{'descr': 'rjԿ !n9?\MS}s?rvVпB7 qdh?G"C&͠uʻ?ÿ?s#N?S"?WJ7?V@?Til M^,?Z= HZ@? V?[|{Y_/F-?G>r.jӿ3c6{f?(2K *c~ת$?~I?8x?)*[zKn翀xX?&?^C?L~¿R.Bь?-i|࿞!&OV޿Tٿe?8lX ^?] λۿ 㺘s?a ϡοwuj?PK!轷symw_db35_71_ma_pywtCoeffs.npyNUMPYv{'descr': ' ˬ'jԿw~9?\s?ĝ vVп? +zh?;Wuʻ?i?ÿx%N?<;?, 7?ط?+Tϧj? ֋m󿼓Z8dZ;??( ttZ@?Q5W?S~[|get \-?ͱu.jӿe>c%({f?[8J w$?JI?vx?Z2G-O濬o$n%`X?.篳?T?ɴ~¿qUBe[?S|࿟RO U&޿}qٿ۽?vvX?ۿ mʘs?6ϡο.?PK!ϰppd_db35_71_ma.npyNUMPYv{'descr': 'm?mqh_3@ qRӿh&G?f">Wp?Ym޿i}A 0ͿA R@ӆ?RUٿi2?nFy˪?-1 P$1%N]Hұ?Kf0J?WXH]g@`ra?|F}yKɿb3g:M'X[?\?Sf[@iJ?Ntݿp?x!?fP!?] ^?y|4 ?ÿ ds?||?},3W?ZfȋPđ_se =g?W @M'S?FZZ K~n?o E?c T.Ý)-m0bfՐm?ż}+?Jm?PK!]ppd_db35_71_md.npyNUMPYv{'descr': 'bqʿi?m y8ˉ?*Lx?oߎT5? |:58{⿑V%?MYӼѿKdom=)5ԿhC5?M7?%ytZпK ]5%ȇPI?1ޕ{kʻ?{ Γ/ÿAN?ί$?67?0,oҿY(afW?V$?2?Rh(G?.?Nm?fu_3@vOqRӿ4y?R/ZWp?(m޿n i׶0Ϳ"tR@CND?RRUٿc8 Έ2?|&lo˪?ͭ1no51Ab]<ұ?~0J?p]g@(m0_ΐm?瀟+?<2n?PK!>O ppd_db35_71_md_pywtCoeffs.npyNUMPYv{'descr': 't,i?+yO׉?r~Ix? 8R5? ::8^Ҙ%?7xӼѿdo4= :3#5Կ5?m7?wZп'l5eI?ꕖ9Ajkʻ? 3QÿC N?x>? 7?Է?Ƨj m󿼓Z8f??aDK } tX?4+?e`?{/`]{PݿܶO6Oz?YSb]2.?Ɂ%;6?06#ο_[r?DԵLV?g?<?./ $o쿋BKD?D;W-?s$w?tO?=U?60ݿUv0ڿ].ڿ̽AH|տrS>B@?Uk?/M>2Cа|0TX,*sL~,$ ~R"^Ѵ~7EKe̿2? t ?TOg@`ra?|F}yKɿ`3g:'X[?c\?)z[@#Y$?JgtݿD?-&?i+(5?n^?IN??4G3PEr??aF鯿q~?5?̃e?w*U]"ɾi0 HXX>IOhyɵψ]TR>nlW/=@.`:'= IP<.LyWg@3{؃?˼j薱?p:H B?ٝ?Sofb?3=eӿ3 ?TWtԿ+5???p2JXпY˂ŧDOWa?K濼Exʻ?.ޑÿTN?'?^3(r?YN-?? F鯿tBR~?-{ sH?$U]jh:I?[,` A30?2*m}6Ds3>g^ɾ HXX>x\Ohy[]TR>8lWxBt=CDZkp3'=\ΰ6oFL?L2迦2?E3q@%Í??,MId(+?6;ZGm ?FhAW>b٣vh>`?TdAJ?.Q5]g@`ra?|F}yKɿ3a3g:0'X[?C\?z[@ɀ?n69.tݿHє݆?ycɬ?:7?xq^?Q7?xiÿq?=$?M ^l?PK!+per_db35_71_md.npyNUMPYv{'descr': ' z"Tj?zHٴɻ?X 鿹c ?LOn/v33 }ܿK'vR2?*"NΣc?'*,K<3M(Dȿvz;տ&?ՙ*O@@z+?P뿱io7։2޿ ڿ_jR.?#U?vehg@`ra?|F}yKɿub3g:"'X[?S\?h[@8?Itݿ؉l??Ü8%?^?E6$/?+ÿ]s?  ?+=#%=dd?L= 4߫xJ Q?~S ;@V?1O?9ܴ ڡ ?,91ۜc?Z.%.]: ;"!}7?[\+tĿ7O?+OOu?T}Nb,?˙{ѿuZg i7Eu^zԿ7A 3?]I&O?)4F\п⿮bF?@啖Umʻ?XN!%r]Iÿ~N?_=? 7?Է?#ǧj ߋm󿼓Z8& dn?3 7qy?3mѿ}h޿F :пc'&NOl]6?.6s\?U =ֿy:?.(TĿS(?3**F7sOѝԿt^ %V?Lmƹ?̻y?]yvܿw"m?-|0?UJ)? Cc0?{8MܿI b5Aſ_=0E2:?;B+{?@3oPN?PK!G#asymw_db35_71_ma.npyNUMPYv{'descr': ' ?{/r忨/w?X^Bտ G޿9HۀtT8nԿXe,?Yv\d?*[п.n렭y9Jk?3;9Uіʻ?CDrJÿ N?{Ԩ"?*V7?7? ivlM^~7?ʿ] ?#aX??앸?`*?EØc?`)1Y*?CXٮ翧P92HOOݿ`BۿfnGҿZU>N? &??K?{-lh޿tTп) [0ɻӿ \?*-,VB? ʌԉ}?O?p%?u?ܿ;jlX?m_ܿλ? 㺘sa ϡ?wujPK!۵oasymw_db35_71_ma_pywtCoeffs.npyNUMPYv{'descr': ' @X ?.?sW`@+xq.?8F??A`?"l]? {Ճz?[S?xPͿJ@S؏4?CV?>nnƿEDZ(?V9?`'?/YYƌ @CP @wFam@KxuD@5KT?mѸJV?c88a?5 g@&ޮPK!Zasymw_db35_71_md_pywtCoeffs.npyNUMPYv{'descr': ' ?N&/rdw?BտƵ޿!ۀrHnԿ?e,?߆sd?K9[пdo⿗_k?`%Uʻ?Ŧ)ÿEN?#;?+7?Pzз?ʧj ۋm󿼓Z8 ? f\ 6]x ?X?4?[鯸?y0?Ϙ#ܩ?PY*?iaٮ?09s|POݿM!|Bۿ,Gҿ}`6N?TLH?Y#?ch޿cпG:Bɻӿ#?VB?Wkrg.$}?ޛO?J?*w?rƵ۽ܿ|X?GVܿ+?mʘs6ϡ?+PK!vmzpd_db36_72_ma.npyNUMPYv{'descr': '~1'Sh b>|>\iZrγv9 6>JesB ?' !eԥa1?݂&@ ƬM8L?w6W+] a?t Nc F=F?4Ow?`0ؒZc?i7z̜Vp?kέ?οxk?ߟѿ:+?')]z-Vs>/4.R]> yJJ{bNo&>#í `=[vJ{=F |Reyb M=MJ'S&C b>|>dtiγ;6>"(@p޺B ?  !>.+a1?6[&@8L?z Dt6W_2 a?(cڵ´=F?]Mw?$1u"c?V{NAo?b,@ο%k?YVѿq.??e/]Z5γ?|E>Q{οLym|]忢ݟh?54R̯È?9? ?#/ȿ\?fڛ? 'L?,M0M?=u?!Ʃ a?4}]bHduB-/!$G?k1 9?RZ޼?J?9aNp[n"?mHIiTkn?3?˿Wr8Dp/Q$C_PK!n0Ÿzpd_db36_72_md_pywtCoeffs.npyNUMPYv{'descr': 't43? ǃ̿%??!p- N)fݿ(M?AK9n?fOzɿZ ?FV[迭=Ƽױ^ϿL;/\{?ዌE?g?#1x T?P 'P@߿KAPN?G?>꠴iRXkH}:#S?TbCeV79"?* ?9gpBg ?/h>n2]%f-Vs>UR]>X&@J?{SNo&>t­v)1=uvJ{=\ |RښBM=j[jv?qʪ[Y G0h?$?/Y$Y8 7*PK!1Usp0_db36_72_md.npyNUMPYv{'descr': ''N?'?ߒ?Օ~?Q?4?PpBV?eо?!`?\jӿo)?V?G姖/?`>;}?jy=#@_q3v\?6v?V ċԿeDtA?eĿο޺?sQůIF>?SdDG<\?TaZinuw\?St|kH% 3?jɏlHGT@>M-V"0'J>$ ^Qs>C ICK^= *=#vJlC}&{=]"^i?'?*|~?d/?4?cV?m? t`?1i"jӿ^??cU`GeYz/?%5-}?S[=#@41+M?w]? 9V̿ ?E?CEt:kE῎L>N fݿ` S?8n?}NzɿU?Vp%<=$ӱ^ϿB8/\{?#ߋE?u?$1x T?P '?d1 K;\?Zlno\?ʊkH c\3?Vul @> tc*r~W"yl&J>xz%NQs> A=ICY]=Te>=`xCv"z=ƒ_Mb!d?Yc5P[.?: ?Jn3y'Gc28 ,^nJ(A|?zՎgy?:R8m׿| o?ݿDBt#^?\pkGyyr?OZB@7aۿRҿe33?`rX̿(a\5B_9?g5G鿫|?,MռοMn:?I]忆h?_4ZÈ??u?E8ᙓzȿyp?F`=|?;\?a|4aM? gc?n 9K?yoN1 gz=pRT B?eAq?%ED"޿ݝv?P Qᅡ6{ _^{B@ɮBKT%S濁.տ.Ҁ]?Fd/ u&4@?J?LPK!4\sym_db36_72_md.npyNUMPYv{'descr': '`!޿Jo?BP؛}mB@3T%t#+xտ},?` Q@?lu?Xv!PK!x9sym_db36_72_md_pywtCoeffs.npyNUMPYv{'descr': 'S~̿w?tY;? tF4f_FNdM gݿ{2Z?U-T8n?#`.Pzɿt+?V8X=#^Ͽ{?E?No??< T?s[~nЭ&*V^+?;??QZ@~?C?v?=e.P? H_ ?`C7@9)??m?5?We rXeM |" ?1:?DQ?dClB?m=h?"PI rſFNwԎӿ"bL?,ѿj Yo'4f꿭#2?i#MռοLn:I]h? 4"]È?঎?_v?UYjᙓT~m:ȿg&k?H?w98C?vcHM? ?Ւo?OOra# C(迀D3? =?V8 -:EM(f?IV q⿚R/!?w+ʌ7%RM~N?'zn>ѿj Yo'4f꿭#2?i#PK!;ϸppd_db36_72_md.npyNUMPYv{'descr': '8꿯q?]M}s?f#^?{&)O;h?E|Z|?QpH@+??rE̿sso?,?܎mwrrS  ENjG!gݿpa?E^k8n?}ш"PzɿH? V+:B=#^Ͽ+ʷ{?E?No??< T?s[~n}"*R {?'?9?/>8꿯q?]M}s?f#^?{&)O;h?E|Z|?QpH@+??rE̿sso?,?܎mwrrS  ENjG!gݿpa?E^k8n?}ш"PzɿH? V+:B=#^Ͽ+ʷ{?E?No??< T?PK!TfCppd_db36_72_ma_pywtCoeffs.npyNUMPYv{'descr': ' qw ? % %8m~N?e>ѿDoYf꿐2?) TQ{οMyw|]忤ݟh?a#54үÈ?_9?$?t,1ȿ? ?LUB?ÜHM?n5z?Go?|BavzC4!(79?`~^?H*q-:7(f?Òȧ> qw ? % %8m~N?e>ѿDoYf꿐2?) TPK!Yzpppd_db36_72_md_pywtCoeffs.npyNUMPYv{'descr': '8EXWx?jCMF7u?ofi!^?}V{)*h?i|?H@ ?A Y?"RWZE̿7p6?3w?Rx8OYS.߉Nb/x gݿ8Eb?.E8n?niNzɿOG?8Vۄ4=ִϱ^Ͽq/\{?׋E??&1x T?P '8EXWx?jCMF7u?ofi!^?}V{)*h?i|?H@ ?A Y?"RWZE̿7p6?3w?Rx8OYS.߉Nb/x gݿ8Eb?.E8n?niNzɿOG?8Vۄ4=ִϱ^Ͽq/\{?׋E??&1x T?PK!*Dsp1_db36_72_ma.npyNUMPYv{'descr': '2@Ғ˾@.;M}@ \bG@hz @@w@ȿw?@eq ?s?`N? ? pIӟ?ffVU\zG~#迌2?/PWMν-?V]G) ?B[]R:޿xpMM?y[4 S<N ?tR?oܗ A) 沯' 9?1PK!,6msp1_db36_72_md.npyNUMPYv{'descr': '?Zݸ?m1$P?n.K+6i?NP޿{@?e/0mпYU?D[q ƍDа?\wɡH;aW?yyrRzGSh`?А'5LiEl( ?~g$x֜4>#Xm޾OB;B>P:Q0 ?N*sC> co,=VEs* of4=8f=ߞ ~ow@!l @urI@&_@n?j7?ְ?lp?`ecg:迫%9?ĵ> Q{οPyK|]ݟh?O54FÈ?]%:?!?ί򙓿ȿ?캩? M^?PRN?4] ?ӟ?:QIVsU\B˒Gmڌ#z|5? ;V俐-?iTW!% ?w@]] ޿cͲM?fĤl9ހ Ndi?69R?/b 3^˜]Ͱ'ж%9?1PK!Tsp1_db36_72_md_pywtCoeffs.npyNUMPYv{'descr': '?g‚?1 P?ߞK++ld?$dP޿UP?/mп87Ҁ?] Aа?Xwɡ@ 3W?AcSzC h`?IF25-6gأ # ?IahT4>yPm޾̖A>^M:/ ?N"(sC>E] Q,=SśopUds-Wl-1=ppG<ˉ APK!;|Eper_db36_72_ma.npyNUMPYv{'descr': 't?;^g2?P*?KByq$uHٿ]$L?H߿,a ϿoFi27Ȕ?FNjFƿ+3dj g6?W:PzY<2YϡX*@Lt?|[?R޿W/t?O;?:?K?))6fL?9Y1/(RDID@PK!ojper_db36_72_md.npyNUMPYv{'descr': '2?7;׿ N@?̸8?Jnˤ?0U!ῥ/[=ݿ1{f ?1O?}zNs?q@YfH gacܿ_GA?pZ}r?`^QڄjFݿhg_V?+?M+]mj$VmGUJ¿L"ޫV'A/)?PK!s}per_db36_72_ma_pywtCoeffs.npyNUMPYv{'descr': 'b!d߿Os5?qa.1 ĩy?u2?\N@]~n?hA?CU%ҿX0up*?/֙m`m?Q *_?<~FY?Cg<@A>?*}?7 Ϳ9Q?Sඝ?抣؈؋ῤkPN-)nfݿ]B?h1:n?kQzɿ0M?-VY *`=p!#^Ͽ{?$E?No??< T?s[~n 0*!)?%?fO@ e?9c?kT"f}Zd?Lk @Fz}ؿd)?tb&K߿F#Bݮp̿{_(d? ??l?pt,F8?Qv񿁀PQYYj?7^+p? )G?'[-{?ߡ 9?iHN?/ӣ?R ?XE ?@ywӿ"52&>_ۣ[{Q]9?PK!<[>asym_db36_72_ma_pywtCoeffs.npyNUMPYv{'descr': 'jdQ'ܿ,C=x?pǫ Od&¿oui+ѿ"̂ ۿTdH:e4X`?{ka_/߿hA4^20۝?:hS0a?IMռοPn:I]9h?4LWÈ?? _r?59uߙBPȿϬ?Ѵ?mm?%p,N?V?._'ĕ?[9c tg74]9pf?ŏ?\Q?h,N?6,>k?-O?3{._tg@0,9:bCŏL ??<~?fH5?K%ZLaۿ*>?[xsjD?OD)a?I`wF7uo$rPK!ԏCasymw_db36_72_md_pywtCoeffs.npyNUMPYv{'descr': 'ٝ?Y+ҿK`(?ȸߺyſ~O8q|?i !ݢ?[(M]?[VA?Dc(?O.|O?[8@|8\Ћ?DJ?Scf̿^`=?y?E*2qjE1ῸۛN.fݿqplK?#| 9n?NzɿT|?%@VjG迓=ұ^Ͽ /\{?JዌE?o?#1x T?P ',#S>IJ8?Irv>Ca%Ӿ't+>4E}CV W#?sB:M ?X |4(FJ?@x`ZͩC5Xb?ƘYQh+h,5tJaGW?3ʝA*TLϧ?ř?c&ʿ4%"?gr1?iHQx-'<]/?!y mп8h?=5I2ۿyoW?|*Ѥ??VHC?HVտ#1|Z?Bʉz?R࿖~?i?E?ӱ'տ[ аH ?߻?|y?1 ?D_?Q:2$cf?Sr*?|4!?`+aL>a:GW?h>翣߼T,h?G)@k`xpu?Gu9?!(? ?nW?Őw>PK!Zgzpd_db36_73_md.npyNUMPYv{'descr': 'qcA!ɿ V^6Lil?B|8?$]{|?]Az?{ˋ?zΆ?3@)Av?✵{w?@HSh?f.$?5e?1j$=WP?q8ަ?O~arX?t?%LƑۿ+E< 224@[ePo&Y?h>{ B?cV}g;?沩@$9d|ƴ?%? ?+P]ʿ I cnU?QX˿蒻x?qKǿbO>D?9I?̞$7F?rP07TcIUFd?CYO I?سQ2mX$?%b|Z>g{>\ +Y>!::.<@z>JM7b >xkZP=E `}˃=1G` oM|PK!u zpd_db36_73_ma_pywtCoeffs.npyNUMPYv{'descr': ']}S>?ccv>Jg%ӾLV@.>8Kj7VtuSa?tLXM ? 0 4AFJ?]l`Zp_.Xb?`;Q`'5t+W?AGCΧ?`O/י?c&ʿ0K"?Pضr1?tz-쿀t"/?]6Cmп 3h?]1ۿABW?-?.?ҴGVտZ?}=|z?YqR࿈fB˧?9)?$qGZ?84տwG[o ?7~T?Yy?41 ?M١?Z"2$fo^?OQB-w?bI!?+΅ML>wH[Q:GƷ? n翜 oL?@2pu?ȿ=9?uV(?s0L?1nW?_w>PK!Bzpd_db36_73_md_pywtCoeffs.npyNUMPYv{'descr': '?m&?Nv?vH[{w?Ғl8qh?<#?rd?e( WP?I\> ަ?FRĠXt?d Ƒۿ# 忀4@i'PoY?{s'>? pZq0;?Y?dx?%?@`u?ʿ!gcÑћU?v˿vZ0$?_{PۛKǿ6>D??#F̞eV?.4jPg6TcǏ/Fd?f6|PYa) I? P2r$?'W|,*g{>|*Y>7:d<@z>*MCEb >!*P=BN D x}˃= F`|PK!Vsp0_db36_73_ma.npyNUMPYv{'descr': '{Ύ B?cV}g;?5Z/iSVp?TERc>q ?k{7I+?(%M5i?ld#hr)?]';qQ8$?Ȁ$˾SѾ?c Vm?G NR 8Y"E&E?{8'7N #?Yo? [-K>H V>+OS>K,͖rڸ>\9>8w>>3PȝV[=-(,zTƸ߇IR4+a=<-*PK!:Osp0_db36_73_ma_pywtCoeffs.npyNUMPYv{'descr': 'A?Ō] P@{&@Z1@b"1@PK!|tsp0_db36_73_md_pywtCoeffs.npyNUMPYv{'descr': '? pZq0;?=ҰݼN/iUh4p? Ey ?پM +?[$)5i?Ӱ?*]9n *7$?ؗʾR%o?b_$ RA\m?45 8E%E?cd*7& #?P cG>#V>(+@'S>5"̖r'[9>*>.PpV[=,zIِ`=C¯<{Ud/PK!Asym_db36_73_ma.npyNUMPYv{'descr': 'NbՆ&?c S?/)ت?v1?T[@zT덿$ѿ$zF<?VG?/ad"?.Kk Q?}2f%?xSS1iw:ѿ??}b ?Qg2>׿MJm?G}<8տ[8jпNg?=5I2ۿyoW?d*Ѥ??VH0RC?HVտ ~|Z?׉z?4R8?`{??s տiB^m'[??:ŝx?*P ?;?U?z "tN?_dҝ8?(?rrr R]J:Of꿋4X?* #υgF:a{rvzF09?H1@Pj!⿔|Tп놣׿PK!E_sym_db36_73_md.npyNUMPYv{'descr': '{ῆ B?cV}g;?5 z|L`i~%Kd?a0>vƿ/nQп/?N`3? ģ?q[ſ@2x ?]߶1Ua0x %ܷ?cjucJ4.C?$*/bpd|v+?Rj8>{9o пp#K#o?xr3?(Ӎ|*v^PDd?2^}?! ?7pZ?T+a8>6Ӵ?{?[|vbɿPK!(Mַsym_db36_73_ma_pywtCoeffs.npyNUMPYv{'descr': '֧Z&?t+u_uS?+?L\1?@~0Y덿سoѿ X]?G?2"?} p *aQ? +%?|ɣS&aw:ѿbtzH?a ?#'gֱ׿"ۊ? 7տJ:||f.пg.g?]1ۿABW??.?bGVտdZ?|z?u?{qR/ɧ?Z;?m^?pտ̀^v?VA?ds.Gx?R˯ ?@웃R?-g lN?m7dFB8?? ,HٴQ]L>eg4W?3#꿰\nb]Iԫ͈{,wzF ?41@Ĺj!fXпɆ׿PK!/Wsym_db36_73_md_pywtCoeffs.npyNUMPYv{'descr': '? pZq0;?=ҰK`i']Kd?pæ`0|9vƿz Qп׹?IA33?6/ģ?x}^[ſ ?1oKq0xk@ï?rsu QFUC?VU//ѭpv+?&o]ҿuk1!}?N:?߹*0OC#?ąwο\p mU@PêU?G>*ѿkf dUͰM3?u0x:?>-y?.Ҝ?EB?\m ?(Yp4/k?G ?FoF??*se߿])R?^iG?&W]?XпǵGh?=5I2ۿyoW?l*Ѥ??VH2C?HVտ!|Z?tӉz?džR[}?&v?B?'տ ^m??%ppx?) [ ?cxr?u; 迵K??[Vez?^`?7ݰn{򿦧p}9za[?Caf(otT.Ll<-#@腦`翤Pi\L@v*?+Lhc D!PK!;symw_db36_73_md.npyNUMPYv{'descr': '޿F7Ch;$SR p?8O boѿ.g< 忢14@PoN&Y?h>{ B?cV}g;?V66gąR?Mа?ݤw?¿X> ۟fX~? H⿣t͈ӿ%ꃨ?/翘{?(F?V{aʿ1&!?H$? ^|4ꄨ@Jw +?CֿF/7Ŀݡ ?o@8;?s/w kv1UݿZU)V?.I#D6?BR?xA8 )G?PK!symw_db36_73_ma_pywtCoeffs.npyNUMPYv{'descr': 'ҿ' }?r7:?0OބV#?osUvο-=U@)?tU?8oѿ͵0 d-:h?VJ:?ᅟ?AiG?W)g.?zпƇGh?]1ۿABW??.?GVտZ?|z?YqRP1Aʧ?!5?噹?տX']`}V?PC5M?Ux?p' ?.^r?jbڕ K?3VeH?`?|(eh{t#}1[?ksafגTT쿢J/.g`L L@_{}*?ljLV0}c )Q PK!dcrsymw_db36_73_md_pywtCoeffs.npyNUMPYv{'descr': '? pZq0;?7׊5gd?-vа?ɡtw?d¿/OEXI?P Hӿ5?3&-/>9?rOF?HoFaʿ2j㿹|_?U?7@N ?H24nֿ.7Ŀ| ?63@JTQ ?'+wc0Uݿ$f)?5RC6?i{>=oR8nG?PK!owEppd_db36_73_ma.npyNUMPYv{'descr': ' Q4@hPoiw&Y?zzh>{B?cV}g;?-?`1]z?J~?Wo@"?c?;?FI))Os?DÕ~?l+C?ٺg6AxBs}?i&P?xzdݿI鿲"!@O0}%?uJc6ʿJ6/H1>Bm#)hGʂ?g$IRE?Z=ፕֿh֋h?t 0 DĿJoqy?"?PK! !ppd_db36_73_ma_pywtCoeffs.npyNUMPYv{'descr': 'qŖ?%?lQ?<տᦜ[T\V_?z?zEy???tk:?:m(&?[L?(&$?̕xr 7{fP j?:v)B ޼ ?+:R"i"?4?UIhaz?uV׿S?PK!AVppd_db36_73_md_pywtCoeffs.npyNUMPYv{'descr': '? pZq0;?Z0Kަ`𿃀28z??~?0R"?gI?>?ZGIwr?|^~?4%C?@RSz}?+:P?dݿc!I%OLD?h_c6ʿʧ\C B ؉(4fΉGá?F{g*$eD?ۈ= ֿh?Z2x8BĿe>y?2?PK!q{Ssp1_db36_73_ma.npyNUMPYv{'descr': 'YeXO%Wε-V5Ul#l>TR*A+FSmGlDQNR?T{VQ S)^PNL eʼnJ8 Iu% G|%$E36(C#HAQA>uq:a6JT3#).ߚ3M&v<<z OԿ^#ѿ+f?=5I2ۿyoW?\*Ѥ??VHrDC?HVտt}|Z?#݉z? D0RP`$?h}?uM?[a:տYt_:2'?Uj䩪?*u;x? ?G֎me?,[D?WS<ֲ[?> d?j8F P#eP?@1HFes{ $Ⱦ웄ů󿂢 &^? Ÿ @~7@=<+@+R<d#@PK!>sp1_db36_73_md.npyNUMPYv{'descr': '{Ῥ B?cV}g;?g;nkg??}r(U L3?Я ?E3؄ *Ks?q8fV嘝?3q>I1?'M?N֜+؆~?bQxnj|pQ?#.-ØhP0`6?80/=.xH> FZþi7;F>`${jh^ !>ˣ?^~횯s={brfYUƔeXa6%Wg-VU5UBR>T~$'+FS+QNR{VQېk^P*NõL瑉J I@u GA=b%$E/_5(CHAm>YN{:6ϠT3as6&).L&t E<Y lHOԿqg ѿz޲f?]1ۿABW? ?.?6UGVտSZ?|z?NqRFɧ?%=?գU?տ"H_3&?GG}?1x?gD! ?j2ie?b0Ώ [D?>WS][?,c?d= D+HP`#뿗G4?Ip1`sP Ǿ4"¯6) [a?yx @{37@,@ d#@PK!sp1_db36_73_md_pywtCoeffs.npyNUMPYv{'descr': '? pZq0;?Cj)ukdo??"T w>Я`  ?KلnfkKs?¡Fɜݘ?aY>b\曦?(g'IN?(+)Z0~?P+jjrQ?"%.-yh0ͪt1?0= H>GJ4Zþw;F>CiIq${j;M$!>x8yg{z&s=boZ5-=G̽="@H ۼK~k) PK! per_db36_73_ma.npyNUMPYv{'descr': '.X)?g?W.}?ǿl[}[?v?rWķ?YURC:OB*nJ?`Bvlz?klpHݿw]n(PK!x=per_db36_73_ma_pywtCoeffs.npyNUMPYv{'descr': 'y?2?z=JX?S+C|?]Jֿ)Dp⿶MFWH?lRW)?t/?,}?`ǿsJd}[?Fv?l[ķ?]l B:ÁpBXJ?`mz?sRHݿm]K(PK!.#asym_db36_73_ma.npyNUMPYv{'descr': '?vr&q?jbF"SϿG3+,⸿t΃t0deY?=?RKN?:ϛ>!eq@O/ۊxB?\ 1c\MCIb?au`T?RZϿc\3)?alKcô¿XMU?;HܿT?Kп9#uh?=5I2ۿyoW?*Ѥ?M@VHZ1D?HVտ7܅|Z?Az?2R,? X?g?WտbsY96?έ?&Fqy?9}?~ ?+yJX!GԮ>[y:? Y㿮OwP9?M2?b? }_Y?Fb>J?߶ڱ?PK!9]asym_db36_73_md.npyNUMPYv{'descr': '{ῚB?cV}g;?歷KvΉ&^"zg!?ޤg?锩lu?@kĿ;Tj뿪ϛh,Gw޿ "C?E;9YFOT?5 4ƿT%t*¿;8?6ӴJ|Y|vb?PK!L5[asym_db36_73_ma_pywtCoeffs.npyNUMPYv{'descr': '?DF&&?SϿe.⸿Z0 V,~!?gKпUXh?]1ۿABW?E?.?JBGVտZ?Ԝ|z?=8qR3̧?T?0+?.[هտ?!Yl]?,kg?Npy?hq|?.?݋? pZq0;?.^𿓈;!?Hg?l>5u?!A?ĿQq>,fkw޿֩B?Us9YET?tF4ƿFv*¿o8?R Q?,*n߿^@Tő?=4&)? u8*y0??1ӟ?a^?np?ik~o%҃3˿жҍ@=%v^?]C?HVտ}|Z?bۉz?RhG?Gì}?`?Gwտ"2ܻ^y>?\? ^x?eb ?Z?!٘YX??zZ܎r? ulc?]R3lQ1za7@䒲4?l$5Y4/mH?Fe;`hX|?O'@d@4H{,@#)8e@PK!}2gyasymw_db36_73_md.npyNUMPYv{'descr': '{H B?cV}g;?g;.(kh!&k8? 5)^ ĿpjϿV? 8Sxg?J1q?[Ra?X Z0t?f ?|^W/dRVkC?z~?ns*볇Կ ?ܔ?r@{E?42 S?UV7?*sٿ۩;|JCw?څu1U?j`)?VI#D6NR??xA8?} )GӿPK!vasymw_db36_73_ma_pywtCoeffs.npyNUMPYv{'descr': '? pZq0;?Cj)(k𿖾k8?o] Ŀ',Ͽ zV?gxg?dtnq?Q$a?AF/t?mǰd+?mLoW쿢cRyXyD?#??* Կ6?n ?VoE?E6aB?VD7?J}ٿ`ER_ &7w?R0U?(r)?^C6o{>?AoR8?dGӿPK!Tٛzpd_db37_74_ma.npyNUMPYv{'descr': 'Rai>11ɛGwS>Jļݾɽ1>qbD/++:Q=PK! zpd_db37_74_md.npyNUMPYv{'descr': ')?SXw?Ʋ$ADf?EֻDŽ?&ph*c*;A?d }Šſ݃o?5I>ۀ?ޕHY ol7zo׿fZg?vJ?_ U3WQE) ?X?GvwF]o1E?0k?mC=ɿm Y?I?c=Կp$9p?bE9Ŀi$?CV|,j?! ?LI?W οbEѿVd??2ڿ6+E? :ѿ{95?Oÿ-w-? c{rN'?HQk3[?@0L[b)r{7wwL?l E;)T5?4 $㙔?nBA>5^b/w>(')~ ^`>:VQ5OrS ^=N<ѕ={'qhZte=hޭ EҼsbK80>컩Ki>)x1ɛ|wS>Xݾ1> H/D'FO=-޿l"̚?Pʴ?o:(Frֹp͘|)+t?='$3տ[ʖZ?R"bۿ-ci0}?ݾbB뿭FJ`ڿ;CX?XQ? 6?-gȿFh iB?gB⌿Fʈ8˱viο{mQ򦫃79ô>PK!qzpd_db37_74_md_pywtCoeffs.npyNUMPYv{'descr': '*z?$́?k̬?CRdW?-i?F<$Gw?o\)Df?|u;1ֻ =Ƅ?ndhaO;A?ydBd6ſ o?,>㿓ۀ?o<6m׿g?J?!doO3⿥j.( ?x1}X?Vs]o]BLE?++k?g{?ɿ0RM3@I?F1=Կ@'CIp3V3p?e9Ŀi$?e&cV|?/ ?1K?Z οHnѿg??"ڿ;.mE?O4ѿa#j95?z*ÿ:x-?_8V'?5kn9;[?9=C[bq#d{7L? E(5?!#H 횔?}AW>_/w>*)~df^`>oQ5.?X0?8iR?QUA|?ghRq?An?uZ?%?M ?,3r?78a?'f?)nE`F?3;P,@\*?ډ@rۤ6?>1@p0?Z (@:@q^ V??7x:Vsz5?R_ [?'ߴwۿ(Ñ'963H?=)be*64ڿ=6\?7%o?2`;٫?#l?_F\?8V\\?ݏ?kuQ&#]V?oERѦ? ɇr ڸÿE,?q߮⿻=c\2?I?4c=Կp῎9p? E9Ŀi$?CV|T?hy?SZ ?7q̿_ kпza?j?Α!ڿӿ?^ п+$?Wjuġÿe_'?!(uG?KgTЕB?H^AcUC^<P?M|`FxT8s6?3Q]G!<4J_?/J~̧>_^>?Ȣ&NꞬ_a>+f=}-fټdƴ3EPK!&sp0_db37_74_ma_pywtCoeffs.npyNUMPYv{'descr': '.?AX0?iR?'?|?}0p?Ym?NZ?G =w?l ?' Sr?f?)ů?ͼy_F?%,@w}̀*?ז,ډ@|w6?Ξ1@i]p0?1(@q:@wY V?EΙ3I?.: [3?.^-޿l]H̚?gʴ?!B(&~:͘S𿁏OŎ9?A33տQ[?ۿ1wÑ6{Q63򿷁'?4,)뿵\64ڿCg?,?@f+?.ǿB͈BuaNq?T&O1I'鿽mǿ(w/?zҹ?;^?PK!Oسsp0_db37_74_md_pywtCoeffs.npyNUMPYv{'descr': 'Mᜠ6\?XؕQ?&u*٫? l?Ф3?a4C\?!tݏ?kubK1V?YE~eYѦ?dܸÿkI,?t F߮\cf?F&k{3 ?t%X?#c`o㿕hWE?Όk?O|?ɿkQ~[3@I?up?1=Կ7CIpW1V3p?e9Ŀi$?e&cV|JM,?Zy?Xp' ?7p̿NYlkп[>j?Z.!ڿU?;b- пYP+$?qNġÿ}['?E60~u`䇍?'xJЕL)J?b4Aر^2ĝUCL<P?|waFh``V7s6?r]G!AJ_?݉Px/E@̧>)>b^>u溢&J_a>2V158vz=eac=|`H?>f=6 Xf͇lټjq^PK!!sym_db37_74_ma.npyNUMPYv{'descr': '獓J?*cu ޓ2?;7?$:Vsz5?R_Һ#?y=-޿r$?g̴?Du-?=.̘_𿋪k?"~g?տz Oj?Js&ܿAŸ2Kde`iޢ%? &R$XOzؿ+?(N?&?dVʿ<?-4 ǿI8ؿ@H):C'?*|]n?PK!ifsym_db37_74_md.npyNUMPYv{'descr': '-޿@?:̴? -FU ̘y :*ᅮʏ-?$Hh?տep?_o?PK!,sym_db37_74_md_pywtCoeffs.npyNUMPYv{'descr': 'ܿPK!symw_db37_74_md.npyNUMPYv{'descr': 'V?" О?%p@R>qKD(?EO?ag?ݢ2Cŏg9h 9K;[?ҭlܝOTͿc3&?N_P?*+9粨yֿVlFy?ǧ'Ӱ?Qe0忆h4k\ ?=W?$.YogWE?ɽUk?4=ɿ?쿻?I?Z?c=Կ{p9p?ӧE9Ŀi$?CV|+HI?#M?_C|`[y?̥@cCҿmg?m(? Loٿ[ \?in¿[?z\kٿQ@?o^>Vchu֣g.u?jT߿oI? D>?$X?HʁL$?>u@N&r?P&b/nD(ſl1?ԥk0߿rPhx`x?y,k7mgDMр+ݿ_8a濥1֬n&@PK!"Usymw_db37_74_ma_pywtCoeffs.npyNUMPYv{'descr': '-޿loΚ?5Iɴ?MfH]ҘU𿛈G?p?mNC:տu [?H(ۿW}痿Hr%)v $T?F4n5JnB8࿣Rs?bZ?=fг?q).㿤\?Lc#!?8]y?o>^GZ}fI?r=ܿPK!V8symw_db37_74_md_pywtCoeffs.npyNUMPYv{'descr': '?KX?&[翝xo)?w>u@Hq?00n*jſOW?oN0߿&`x?uh)k>,GDM} \+ݿdzaAլq}>@PK!ppd_db37_74_ma.npyNUMPYv{'descr': '\pӔ7R?>Z0P쿬 Bٿ'OF?'%?ș?;׿%;?ֿV+Z?c/@eN?RF}8KJ,?Vs:Vsz5?R_\pӔ7R?>Z0P쿬 Bٿ'OF?'%?ș?;׿%;?ֿV+Z?c/@eN?RF}8KJ,?Vs:PK!ippd_db37_74_md.npyNUMPYv{'descr': '\҃Ӕg]7R?B7PzBٿB#OF??;m9?Ǧ|׿oSi>ֿu6+Z?ϥ0տN?£g8KV?. : [3?.^\҃Ӕg]7R?B7PzBٿB#OF??;m9?Ǧ|׿oSi>ֿu6+Z?ϥ0տN?£g8KV?. :PK!+Sppd_db37_74_md_pywtCoeffs.npyNUMPYv{'descr': ' jkpiq?E⿓Dzn?7Ui>B$- ׿QƷ?sXz?R&M/?3{ ?nM|X?y]oXoE?٩k?@;?ɿ]R{3@I?H1=ԿCIpῳ3V3p?e9Ŀi$?e&cV| ZA?m)U(?YQ?p? ?ȋwb?,0g? U?Eh׿40=]?a=S?s4> jkpiq?E⿓Dzn?7Ui>B$- ׿QƷ?sXz?R&M/?3{ ?nM|X?y]oXoE?٩k?@;?ɿ]R{3@I?H1=ԿCIpῳ3V3p?e9Ŀi$?PK!sp1_db37_74_ma.npyNUMPYv{'descr': '+؋?s?lZ3 ؿw)P?b+يa?PX?bw$]?$Ժ?{; 5z>2c?C @[+&./@_."@PK!/sp1_db37_74_md.npyNUMPYv{'descr': 'y?}hula?a9{?yG۵J?Mtݵ?֨Q/?TR?e  ~?щSCƿcTF?ؒuF:|\C? ]cK׿P?+r?R9HoOb4׎ ?X?m goY1u~E?~©k?b0*=ɿefՅ?I?c=ԿiWp59p?wE9Ŀi$?CV|/?wu?K?YG䰿 \;˿M?ehҿ`G?Kȿ{}J?jS]h~}?lw'? iuEc[[(D??ϱ^?z,`v GW U?1D/?ГN{'>& 7Iy>ؿ"{/y>wv&哼jDrR软 fdi=:FqAtt`Vј- o|w[=CFa@w=%`@^_@jX]@MZ@ƈ}X@~ߒ'V@ӎS@>[oQ@O~2N@}?YI@* E@Y6`@@#@i:39@-M՜-@{7T@<1S vd}2?Ϟ8 [3?.^-޿lК?@˴?,忦Yʘ}nAG??W-տG0W?dtۿd1s6>i?XKe뿨ؿ/Z?Ka?_?X#6. Pݼoc?iÇԺ?N5P bc?6PC @ݱ//@Z/"@PK!7RHsp1_db37_74_md_pywtCoeffs.npyNUMPYv{'descr': 'y?_Xla?f*b?ZĵJ?]!Ƶ?Ú/?g"R?'!Űt? lS鿾'YEƿAF?|:|%?KU<^=׿!;?s?ƵY HBb4k ? -X?|9go(? ,E?.$k?p4b?ɿ)Q ɮ2@I?)1=ԿCIp+V3p?e9Ŀi$?e&cV|?OQ?@L?wݓG䰿"z<˿]?8Uiҿ鍹\F?!tȿ05J? U?9~}?m@~$?*Q&5i)D?ܶ^?ƪ,`- U?@HÕDVe/?XX'>&^>Iy>0M"׳>Pw=aD"Ry轊Խ:i=CyUɍx1q-N<) C sHkc%PK!V oper_db37_74_ma.npyNUMPYv{'descr': '\pӔ7R?>Z0P쿬 Bٿ'OF?'%?ș?;׿%;?ֿV+Z?c/@eN?RF}8KJ,?Vs:Vsz5?R_\҃Ӕg]7R?B7PzBٿB#OF??;m9?Ǧ|׿oSi>ֿu6+Z?ϥ0տN?£g8KV?. : [3?.^B$- ׿QƷ?sXz?R&M/?3{ ?nM|X?y]oXoE?٩k?@;?ɿ]R{3@I?H1=ԿCIpῳ3V3p?e9Ŀi$?e&cV| ZA?m)U(?YQ?p? ?ȋwb?,0g? U?Eh׿40=]?a=S?s4> jkpiq?E⿓Dzn?7UPK!zasym_db37_74_ma.npyNUMPYv{'descr': 'Z=?*D?몿*!?r9~iiҗ ?vO?Ï?y?_^qeӿ,@῱u@?U;d)3FpPdzxÇĶ??SԛB͈ah#Mb;߿!}?O ⿱3m ?k~?5r?y|+g?!/;Vsz5?R_@K?PeAۿ%qO13| ?(C꿶[$FFܿC:?H]?)Q ?4s ǿ\^ΉTVq?,hv?ָo%?ߛb{?\HJlDPK!yzasym_db37_74_md.npyNUMPYv{'descr': '-޿x9?g4ɴ?ZoY#FWΘ-DL￿]K?Ӎ)(տvX9@K?AۿEq6RX:|B?pWCYnFFܿ-?^\]?y ?Q ǿ=^dq?z!^v?BX'?@b{?C4?oEPK!w asym_db37_74_md_pywtCoeffs.npyNUMPYv{'descr': '?/v[~?c]&L?S࿱!?xs @)(@JTn@5H6 @O3 @@.R@W@z7 @ @Fj'\w@RA@yMG@nl?j@®s@@ DM@\@VK @?'y@V1̠@%@}9@,P @|@㸩p@#K @(7"c@ Y@Q_]@]_2¢r 2n??Ѿ8Vsz5?R_-޿rʚ?KuC̴?Xj 2a4%Ș.1 L @ᅩ*k??{-տ %Z?ۿ^3@?JqiDY?= nӿ i? -?^ke?^[? !Z2g(@A3_@濢E?:,k?5U=ɿX=>~?I?ύc=Կzp89p?mE9Ŀi$?CV|忎ç??GT=?V|ÿNr쿖;L-$ۿ`$+Ͱ?ؿ|P? 2 ë?i?i[Y?OXo@)t?!F(㹁??7 Wտ<kǿgǻ嗞Æ?+9ߖFu>o꿻Y0n?,T?ry a0?v`xÿ-P{,k?#agDM?nр+?7a?1֬?i&PK!:easymw_db37_74_ma_pywtCoeffs.npyNUMPYv{'descr': '@(@FTn@j H6 @ov @؟@$.R@zx@S @ @j$\w@fɳA@JG@w}Ij@”s@@2DM@O!@+J @w9Yy@2At@CU%@c@?Uΰ @a@.]p@BK @rb@A?@؉e]@h^2Eg;cm?yq98 [3?.^-޿l4L|ʚ?2̴?^E2DXȘ!}gC@FC? G-տ'dZ?a<ۿ-gF?$$}qE.Y?d$kӿ38??-?veje?hiZ?ϗ ! s(@Q<®?濃W?'N? wVJ?PK!ugMasymw_db37_74_md_pywtCoeffs.npyNUMPYv{'descr': '?d?ÿi Orn .l#$ۿ?-̰?ؿ_@OnK?µë??f3N=_Y?:ABo" t?{Z?0տͳkǿKv꿒Lp†?7PK!bwzpd_db37_75_ma.npyNUMPYv{'descr': '걳|EǾ!W}&>O*ewZFT>2&\]=ڔ'= >&啽9vVZ=iB!ӼA2ѼzӝQPK!sܱzpd_db37_75_ma_pywtCoeffs.npyNUMPYv{'descr': '4'P:\>3¾0{s:> Iǝ>7~Yr =C5r؋.?gugXD @U?9 bKkkB;h?[֢-a8/X`4XhN?* YW ?qZhƻ?ĂP?i\uV?Ubտ1v?j.{.'H5?7E0?2IP1iTGO??2r󿡔ڄr/llFҿե5? `?bv տؾKuS?w@F v?AKΟ7?l4lD߿u6?v R忯*xٱsƿ>rvhFܠ? !&?{Άd̿-flN1"L? ǿ*?mn?uM'36ǿ:{5ÿn,?{"̿7\Ŵ߿ſc<8PА2][=!!TiPK!Hzpd_db37_75_md_pywtCoeffs.npyNUMPYv{'descr': '5? QwonxM0QO\?{~ZRH7Q?HA `o,?\8z>ݎEǾ; jW}J`&>+lnTwdDFT>.2&aH]=b'={&啽amVZ=,B!ӼC2ѼyhӝQPK!֍wsp0_db37_75_ma.npyNUMPYv{'descr': 'Nd%տ``տ'տP}տ,׎տt`տ*տԭTSֿZ0hԿ|':hؿq6ѿj/ ̟ܿnJVɿ f4wA࿬15ĿzZL cZͿh߿db9x?i(xL.R $?0?1A'O?ikrHjr/ҿ>?[/?z? տmLuS??(v?,7?(iD߿r?)L)&7ƿL(忭یO?$zJ?8sN̿džA|#)*^?{m]@ǿ\ǒ?#%~?%S`ɿctF,7!ۣ?Mjm?xչ0`0=  PK!Ѣ4sp0_db37_75_md.npyNUMPYv{'descr': 'YR1K0>L[YH>Jm=16ܽ76 d='㻎UxL.BvK<}2<*)~PK!_7sp0_db37_75_ma_pywtCoeffs.npyNUMPYv{'descr': 'տ_SSֿyz0hԿ uVBhؿk6ѿrܿtVɿkOwAo=Ŀ;#% ࿛3ZͿVh߿+!x?ipG(xiA5?7E0?5IP1iTGO?2rL3ۄr/翬Fҿ*5?? h տtS?k߳v?lܵ7?"mhD߿?h=ˋb)9ƿ}tN?z@I?Ұ[ƿdXhx?Cwù޿R{?r|pΨ@,ZpI##(yk7Xu钑k3?t5?`oFC%@|_߿][d7oO)?.cпK{yqٿ`&l &?A=M ?AGh{dR1a50>OYXH>q7=BO5ܽm2d=}UG C.>f< M/4<Z,w"[٘ƍ?NwslWy򿅳T,W lJnQ߿ĭY*?z򄿥1,J?|k[h?E7j?ExQ0޿5+Dƿnk 9jS?˃ῗh车?gQ@D7#ǒx 0v濷vk3?z6?p%@4n߿͟7؏P)?"~cп4zqٿ-8ѝ X'&?4-=_; ?UKdh :v >Mo'yn?ncG?R?Lr||@,LhC?c?ѳM@?2 $?@b?jn_??^*qxbؿz@?T? ?/InD?KÉ?\?nl^@K?x?;?Z-?eSؿ rTRb?|.H,P㿘'¿V#tԿ^4?yqS⿅t?,ɿV ?yn*խѿֽJvw ?/(ٿzqʔ;S?%ܿU9ycؿ粿,s?nֿTE7O?]T`5?7E0?6IP1iTGO?2r7ۄr/翀Fҿv5?? 'g տp_tS?970v?G]7?pfwhD߿<?V{o)t֌RKƿpyy~?ZP ?Fc;Ϳy  D[`r&*ni?M ƿ-Ь ?tJ@DUӴ2;ഠLD Cӿ*'O?pIݞ_%y?\Կh]Z@fv?qjS_?PK!Aisym_db37_75_md_pywtCoeffs.npyNUMPYv{'descr': '1h?;x?2N0޿t򿝰(Dƿ""9俹yB? ҄АJ??(?&V;=濏z?C?V5Ŀm>?̯`i Lم6ֿXd俳7SM??d^? *?ƙp[濅(=?t)C?oĿ-??Ƭ;iHd6ֿH Xd信*WQ?=֩ѿ"T?ꄭ?]~ZAzP%}?#:EP^?zM? X;ڿ2sReڿ5p_?bъVɿQAQ? i+j5?7E0?3IP1iTGO?2rڄr/翌oFҿ5?ۂ?G5l տԄ[uS?~~v?}7? pD߿i0? ȴXb)pmƿTzF8?.Aea-?ꆵ˿;N|修."M7X?څt_' 55U׃@FW@f?Z֝_ۿ|?t:ܿUEZ7Sܿ61)iZ٩hva_?6PK!hKEsymw_db37_75_md_pywtCoeffs.npyNUMPYv{'descr': 'Pȿnt俨g?r'b?3ǷC@K{kP#0Cp ?<|zDl3?G6?4s%@m߿u7￧YP)?P~cпC)zqٿ7ѝW'&?4-=_; ?7iͳڢ?'Z+y?CTd?=bN?_8?QJ߿T5F%A?S@ˁ뿿ht?Cοм?;LN?ln.2?[ΫCa;\?~ݩğĿu?Q!wh"V?d:?|ϯQHY?eHjj盰?z\4 Hv?&/KUy1S3PK!ەZppd_db37_75_md_pywtCoeffs.npyNUMPYv{'descr': ' Vf?wῷ<?fB뿍G@9GO#迣Zpj{l3?p*5?-C%@߿7okO)?mXcпг{yqٿF%l򿧌&?A=M ?ykiHq p˱]? 'p1y?F Td?bN?8?J߿2%5F-DL?g\rˁ뿼q?Iοv?N?2sC2?dC⿤\?%Ŀ/i?wh #0? m$:?ˍA𿐸: ῑ,Y4V ?*V̜?Z?;y?MU? :a?2^-?PK!ssp1_db37_75_ma.npyNUMPYv{'descr': 'ߚၜCFtgnBXls[AF@SNl?&H;(>3xU#X<:;Ü8@q)*`6X%5":K3Ⱦɧn13z2k/)s +Lg_Q($@!9l۴A];MuqIC(zj+'[?q[W2 $?0?1U'O?-irHjr/ҿX$?{Y/?wr տ uS?W3v??7?LbD߿輻Z?C8 wRFx)5-vƿSɄM?apA?g =Ϳ! wa`߇?!Xȿ%?!?z_ )kϿTqT 4δWN ?Yo P nTc} O7N:~xkPK!zsp1_db37_75_md.npyNUMPYv{'descr': '*er?i+?,"?à?g޿Ag&iB%$m9ƿϺvo3?]{V?׌Es@76l #z my濱al3?Q5? Ⱥv%@r߿7gP)?,~cп^zqٿ!7ѝ6W'&?4-=_; ?!;gQhôvK)0 ?E (G;G}^?%R)ɿ;D~?++&¿vp>ѹ?/㯿u4l?vf'a?Y?Re<[?(eajãX?+IX T*4?N)L2‰>Z܆{G ߺ!7>"B!sf,>~&>w7 F w=iR:k=/)U]Ƃ22ecBO=C XHnBS[AGxF@Kll?uJ ;(>2#X9zGE$ 7>;|s",>I~&>C8 vP(=l u=Ƃ _@O=OIk_P<g~Ҽ9 -=PK!Ojper_db37_75_ma.npyNUMPYv{'descr': ':ca'0?\Z ȿ>}?sG?4?VP?'B?%Z޿lsMnſx}iv?/G7r5??ą@l] #7r濟k3?߆6?_{r%@~2r߿٢b7`P)? ~cпMzqٿ9ѝDX'&?4-=_; ?uk)*AlV&G X?2(Iy@oX8*'W^O1?F 3Rе?Y b:}㔽A$Ԕ#?Pz0|wIO!o??±Kf? T& ĿInD˗É/*\D]l?>K}G޸;)<-$}?.??Zt%[޿.}Oſۘ}|$A翦Q~#?H0VQ o?g?MzHf?Q)P>rszqf5@0ڲ5ʴ?v ? ֿLs S .鿽fi0+cqn?v[CZ#?hILN?uп?PK!;asymw_db37_75_ma.npyNUMPYv{'descr': 'ĩMW؟?h?Ũg Ϳ)s`+aؗd𿛅*;?}J#пg ?KB?~8y,dݿS/?r+EIJؿ{?J\-sVT =KPK!?;asymw_db37_75_md.npyNUMPYv{'descr': '|&@J]8#:n2tfwz6l3?` 6?[is%@dan߿ 7@\P)?~cп]#zqٿ6ѝrW'&?4-=_; ?!;gXqO뿯8dt? #?XiQya?uV?|$ͿS?C5?s?L? [~ ?*m)?Y&aǿyZ?1ϗZ1&8C! zl?N¿ b\@gIKAۙ燄Ee?:O?%տ&L+ֿ{5?R?qi?Ytտ'/?*4!j?bg_7?PK!i/asymw_db37_75_ma_pywtCoeffs.npyNUMPYv{'descr': ';LL_k2?ǣb,?nP}+?r8u?@k ޿h),zƿzVL?TIo?mt(&@\7#.It^8 z:l3?o+5?\KD%@߿7 nO)?Էcп{yqٿ+%l򿐌&?A=M ?gzN'̎pu3=?$?Q]ya?'V?M;|$ͿC@S?6?[s?oL?Z&} ?.})?;7qaǿZ?׮[ؗ;e&8-OzA4?M¿U[@ @OȓbEe?iR?տʻb*ֿe?hK??U5{tտ{E?f')4kj?1m$?PK!azpd_db38_76_ma.npyNUMPYv{'descr': '兀}=ƣD(Zlo_Y>V@Qk>Қ ,iL?-P-r?z?X'5?/=]HPv?,uӊHe?t\"2n%?eQj?`*ʿN\?cտaqB|?Rnῼ_?mDžݿзֿ7.%![|9wJ? ',R?/v~?|?gzy}?:肹?6e a-?]v]MM=SFX /gjQj+q#?;Ύ|(k?v3b29R+u]@Q&@{ܴ?ЦW?Gr?ɿn9Ͽ88_|o#?ɭhʤb?*C^@m{wſR5zeп^ Olj㫿2rIiֿR?h:???+EI ?A@)5[j?uqh\?PK!(Fzpd_db38_76_md.npyNUMPYv{'descr': 's>GnW~0H?>X$/5žaS,>4~vftK,0>=ȏ >M8D臦="YgG ^1IN)= ̣l&4PK!`4aizpd_db38_76_ma_pywtCoeffs.npyNUMPYv{'descr': '%N}=(ZօLY>ﺔTVȠm>ƃd,=i?!I-j˴?:<5?pS]7'Pv?ލuӊ #ke?9d73&?fR _j?^,.ʿ[?eLcտއ~?E῎ ?XʗhɅݿ9ֿpS![9ިJ?^TK,.R?^0/㿼%~?!|? _~??> aK%?4c\T>S/6ޔQ։,qPt?Z `nAl?l39翸]@D& Cݴ?HɱW?Hr?87ɿMW_9Ͽtp#?l#j#ͭN-c?%&mF;ybdCvd)Jby?5HPO?(@ ^im˿8hMk'?vlf?#? dX?t?>΄'7>Z?؏G,UE3qBٿ5T?\!p/¿jkؿQ|B? !=P?Z?@;!,aY!mz?aI˨Hw0.%?GvпMME(*7/a?9=(v?+~j^swZ?Gأ?Ju1??tT;Y-ֿѰ Ŀ/TyGȿ!eN>?}\߿&CK?P1ͿnR?^jY)M_?1#)N?XAŦǣ0Z{?W&a*{?S=gAӔa=P?&+`/ = >Γ>ST~:kJ?>>.5ž T,> vFpeL,0>=kVl >Kӈ=:khG1| )=>[y4PK!ursp0_db38_76_ma.npyNUMPYv{'descr': '肹?Fe Ir?Gzv=S  /wQ񿅴~+q⹇?u;WE?ivV9gP{P^@-g&85?BAb?B\t;?OAcȿec3+ipп^U1^?; Y?H_@}p⶿gѧIkqBTOԿe,?eX Yz]7?xLV?2j|?m`!?9M?PK!Wsp0_db38_76_md.npyNUMPYv{'descr': '~4rt_5He>dnKMi3#>8PS-GdcXJ4e_=R PR7>-<a"< Nz I%?لKU>SF/1wӔQl,q?zԆW?&f/9-^@3 & o?4Bb?6w+;?fȿ2sjpпM?aY?8,@l*e⶿W_ӧYFk8XOԿl?~Pu[51?Ъ V?qf|?SK!?9M?PK!.\sp0_db38_76_md_pywtCoeffs.npyNUMPYv{'descr': 'QD%?FpN Uw? ?aI,?A(?俛Se̿4ʚ|nԘ?ʺEV?"|?zy?lڇE¿lwȃ ؿ)Y?RP?źj>@ֹBYf?g0˨:.%?%vп8(*翬/a?L=(v?+~jTswZ?oأ?Ju1??R,ֿwF|ĿYW&?ų7h?$KHڿ`761?7ڿFQ-?/?п\`?ʥucĿ?]ײL:]!w?Dtlإy?{1znP`f?hA8` $O-?>""/?L*:>h~ bj<3"Ie>UoKY E3#>DQ/Y4ecM]+_=)RJ=+6?L?H-R98?G+S7Ы)fA近g->fi7 MNCG?4 ?ӿLۿtu?-w迋>CGm翴+BB' ӿbsOg?#x'W?ѿP| D?{ WpeY?YVΞɿCBG! FُIӿweaP9y1DnͿPK!dxsym_db38_76_ma_pywtCoeffs.npyNUMPYv{'descr': 'Sĥ/2ĔQ,qHU?ր῰{,^?J.&W9>]@~Wj[%pe?a$Mt?Ӝ?:Gǿ2 $ѿZ+7?anbw?ܨi@OZ⺿#"?IDΦ*>`տ/7? &[?ma?8?%ed;?PK!Ηhsym_db38_76_md_pywtCoeffs.npyNUMPYv{'descr': '˙? WӿAMۿ= u?B1iGHmX B ӿ{|ug?B/WѿD?L D?u\!]@O&[?=*FZ@YBfѿ;sSW0ܿ\[H?3׿Y1J?3-A/?"[@Eς?!yS? ڥNx濐_eɿc]? I?<>???˷?J ֧h?5 aDٿ?Z"?C] ¿Aؿ@4j?nHL+P?k8D;@"kY0?x˨~-/%?xRuпF71)翇0a?'(v?h}jf.&\?HN? +t1?_Ry?VcMo^-ֿ"Ŀ\Y ;\O}ܿU߳A? ]u,?\ ?ĨC?[ڜCԿUBĨϿr#S?]CAdyi7ѿ (?f5?kQʿFo(j?`=*?hf@Y-UG?zwP3?||}"C4?a΅~?_;2tE?T7տ0sU?\4kYh?z?[(?1?<\^xPK!.n_symw_db38_76_ma_pywtCoeffs.npyNUMPYv{'descr': '?X1n?W?Y??K?ߕf?B第/KfZp6yHKKa뿝y`|{PU?3)?^>mV?)eu@㍤!ſԫ߼?êTƿn+T P?nPY*5tQGi3?HgQ?^0/㿼%~?"|?+_~?}?> 8%?T>Sޡ/הQI,q@Hv?/5ῢRXX?Ҷ8<]@u~,&]N?`I&=Z?w?ʿ :nRο?~v'?OQ6@y?/0?wL1@5ѿԤeSQ΁ܿY,H?(ӓ׿q)s#0?/-#ǿH)r?eD?t̔ؿbdr#Ry濽 ɿO^??MCS?f_ ֧;֤?cT5뿔Pٿr"?=v¿Tؿ"hj?_o T,P? <@XpYnS?tVlW˨8.%?]vпf'* /a?=(v?+~jmRswZ?hأ?Ju1??T4/`-ֿyˆ$ĿA0[uY%<\_$}ܿLuTB? ~vF ?-Ƅ?ĆnC?(b:F CԿufϿ?tV? * Wj7ѿu?m ?w;lQʿ8r] k?_*?ء(g@EU B|G?[6Q3?ɘ|#4?x~?O29k)?0&LտΖ?(XZh?>l?,5.?k?_CxPK!RΉCppd_db38_76_ma.npyNUMPYv{'descr': '3*]?]'Ι ؿ+JL?? 1e¿D՝ؿ^&N?K P?[oC@#rYY5[?U˨v%5/%?UNuп#%1)翷^v0a?(v?ߛh}j.&\?N? +t1?_Ry?/-ֿ[$ſI<0w罹(ӿ<޿5_Wr#?: ^໷%?s7}ZYy?ŕM?؝xK?u?Z߿,>3*]?]'Ι ؿ+JL?? 1e¿D՝ؿ^&N?K P?[oC@#rYY5[?U˨v%5/%?UNuп#%1)翷^v0a?(v?ߛh}j.&\?N? +t1?PK!;͢ppd_db38_76_ma_pywtCoeffs.npyNUMPYv{'descr': ' &?^'VS>Sk/$Q &?^'VS>Sk/$QP?ONW5D@ewY&?$˨|F.%?t5vпwh(*9i/a?Yu=(v?ڔ+~jkswZ?!أ?Ju1?? R-ֿq $ſ3׳(ӿb =޿?~s#?Z ^|E#?"7鿵W{D?H;M?\ȩyK?DJ?*nZZ߿[1XAF_?L+YϙmjՐؿ3hި?f¿dPؿp'N?[A>P?ONW5D@ewY&?$˨|F.%?t5vпwh(*9i/a?Yu=(v?ڔ+~jkswZ?!أ?Ju1?PK!ssp1_db38_76_ma.npyNUMPYv{'descr': ':Fӿhe?v)Ģɿp?zޝabͅv?jNE2^,?+bT:8F?w9amK'p$D?N&>.?eG0?2gtW>8־\Lؑ>x>@ ahc]>9+/'UI==r.K=BsƯhEd=،7=^i|?_~?&?f= %? @}SI/ӔQ񿘮:,qv?v:< ?JI9ސ<^@R+px'?c?XL(?@kȿTFKп̩cC?+.Z?f,}@r.'I5%{Xۿ1ZM?l|y+޿ ҿRp@6&@OJq @JDr '@PK!r!sp1_db38_76_md_pywtCoeffs.npyNUMPYv{'descr': '?[;1 ?1^俗JrBw?K@ptٿ)PP?m¿-b ؿb%nׄ?t3࿲1mP?]>@$vxYBV?F\˨B.%?vп&(* /a?=(v?•+~jVswZ?hأ?Ju1??HF%,ֿ\v%Ŀrz? ?l#uտQ?$KFӿa ke?vɿs?)wNa9&~1x?_G ;,?Y|F?blЁaP)~YRk?r$D?g }>.?I0?+tf}W>O$־]GCMؑ>y> iZP]>/Se-0I=y>^K=.Ig,d=&a?=+wY 3K u 9?UCT?눛)WF#ҰKJȿ-ȿJgz?j=5FD(JupZ{ҿnߌ?jN߿d?ߢ?sKB{ ?/mc@}f?#?t߅*r$9H#K 64 N鿡cѿoS?$k_Y޿ t? B??xy2,?PK!#hper_db38_76_md.npyNUMPYv{'descr': '8?㿞4J濾I?ߓPqT <<ѿ:5?%.>}τӿL1%? ?0X]?=M.M?*K#uvGP=?LSf}<ҿ)856?H=uο2_U?<?0 'ݿ䳿tĈ?{Sȿd, ?~oXtlxտ%|p? yɿmW5?;*'? mrr]?g\.ٿPK!^װper_db38_76_ma_pywtCoeffs.npyNUMPYv{'descr': 'Ѥ?bFe} ?k@zg?Ja?N*ԏX%9Q#bO- |dѿ JS?#sZ޿UJu? %B??b2T?PK!{۰per_db38_76_md_pywtCoeffs.npyNUMPYv{'descr': '8RO?(K 㿏/8dK'pI?mr}VrT [0ѿ͒17?up>_HτӿH&?=#?KKY]?޽MWL'O?}uX>?RTfBG<ҿ#|8迧?xp66? W=uοi??Zw'ݿRI@䳿Jň?d\zSȿ ?_budzտP}pNp yɿ@X5?/*`?0*r]?Mq5].ٿPK!cTasym_db38_76_ma.npyNUMPYv{'descr': 'P࿙2vP?[9A@+ξY@aK?m˨:L/%? OuпyG1)u0a?ʍ(v?Xh}jB.&\?N? +t1?_Ry?ֶ -ֿ EſY#15?%Z'g6nO? *i>翅M[?DYC4?#bO?yP``ƥͯB؈ӿh[j?Ud6?ثc$?6"?Kؿor)?o\.Hi?@^B@?~,yhG~ =W??Xe D]V)p?1`Y=͢Ξ?B!?O F?I?ue?d?P9y?1Dn?PK!}asym_db38_76_ma_pywtCoeffs.npyNUMPYv{'descr': 'L &?)MS>Sx/*;Qh7,q9LZu?DM$G?~92 ^@ v(fC ?]l;?6 ?_~3W˿9nv[?̿'?r?Iq?vz@x~ͿO8Y׿7 ĻF?nٿGr2?,v("ѿa?8?9J?6Ջ6PK!qasym_db38_76_md_pywtCoeffs.npyNUMPYv{'descr': '٫¬?!K?Qt1ؿ}v "*?QIi?&kcB@g?gnnhz׭>W?=?R D]<7q?oG([S̞?kx&?D?v|I?G7+e?}vm? |y? `[Dn?PK!yVasymw_db38_76_ma.npyNUMPYv{'descr': 'N!w?aC4"B0⿟o !L!鿫3=\ԨO?#GlÌ= լ~0 ^@,\b).UΓ-!RdL:H/?S­Q?/v~?|?5wy}? C肹?ye ?zv.٠=S-' /ܓQ>,q*}?7ļ'<'?:5շP^@pw' ?Fj?Pi 5?Uuʦǿ*QѿֱbW?Y~['^*O?V?wGZ?1!a[X?jmn8Ŀ?  f?ld*F@<@(5h^ @Y@PK!Lasymw_db38_76_md.npyNUMPYv{'descr': 'q?W,ۿq/ݮ?XWZؿ j{??T]?<+vr^lў?6h6ww/?\>?9 ?I?bm߿"SeGR?ġ^'HSښlٿw?gc¿htqؿ_t?d࿌czlP?"@@K =YX z?˨J;.%?AMuпz1)50a?փ(v?h}j8.&\?WN? +t1?_Ry?(,ֿP ;fĿ ӯߞ?T{?ؿa(܇?2{G$6Fw\2k쿟)còf???TH?Yb?@޿&}?6_?l_Amܿl" BԹ-?]!(~n~АvJV?S.NH7<<3࿎*|?EF4ҿ@1~Կ2? (7?E~sUӿ3kYh-z[(,@\^x?PK!^asymw_db38_76_ma_pywtCoeffs.npyNUMPYv{'descr': 'xwT, 0⿷m F'B!L_p* O CєAr\c]-i8MDd:￸tYJ/?4ǯQ?^0/㿼%~??|?_~?Ӈ?F= %?U>S/EfϔQ*h,qpt?\PVZ?vϤ:翌GxQ^@'5[ ±?ɔ Gj?j3?Ѧǿ@y۞ѿ?;ytĮԟO?w? >Y?CvH W ?pZs83?x,Aa?%'N*F@5B@Rh^ @Y@PK!bxasymw_db38_76_md_pywtCoeffs.npyNUMPYv{'descr': 'q?ߡz,ۿҳ?WZؿ_L??^?[qvrO?Y x/?bТ?"?䵡?Etn߿ &>δHR?3x'쿫3lٿW ?/¿; ؿ0J%?;wmd) gP?@@Yy?TNP˨\i.%?+vп9(*翃/a?q=(v?+~j?WswZ?wأ?Ju1??RM!,ֿ!#%hĿg,?k{?rqؿ*݇?%6½\翗m0mp1Rf?"@? q I?,w?YFO޿|_N}?"f?Xkmܿa-?uczh(2>CKV?tt!NH濶<3࿔ܴ|?yG4ҿFwq~ԿC6I2?3'w-0L?_ӿ/XZh>l4.k_Cx?PK!:;zpd_db38_77_ma.npyNUMPYv{'descr': '6[BT!e,x>t .tI6>_;>>u ?8!׼W1hR D?לS3zaZ?x,DGsXp|Jh?DZ?V?Dڿӿ,H?KϮ࿓C6?p[翐+@1a#?>+']I?w3U€R?ԁ-;.ɐ@h#(? eB|h[Q1?={_|? ]x?ǘ>K y5u^f]m kE?ԈVQ?S4Lb +?ۿ2hx;?gv2$X?{g& 念@9?ĉؿ]`?hnͿ&bU?-?12ƣ/yܒ?}ok`a?N)˫.o5O&*?v`62,狆?p. +Q>2%xmb*bKG㖧R>`E(0PBTcg,x>aF [V"6> >J-o 7i? g?xi}~K|?A?M/W6?(3%/}*bdR>E(0-Q=%8mIքN#`=3/z+c*j<[Ug;PK!90sp0_db38_77_ma.npyNUMPYv{'descr': '9uBſ}Zſſezſ K޽ſ$yÿ/3ʿW:&wֶپ#WӿcZ椦?z` ݿfr?k(HxEnou??%?4Zp?jdFN?C݁-;.ɐ@h#(? eB|h[Q1?jG{_|?L]x? ǘ>׺x52K?G?5?<=?$暂a?y0&(,1??&xn߲?=nΊ?D~?'{ -?`=X?ܦ&WI⿸Nu?.7tXo̸ov?}D6Dt#*@qśV濎~5Vmce&?PX^?]w=5"\ P@?a>^f]m kE?ԈVQ?LB? [?H䵛ۿ8:濡 ; F~?yJv4n?36?U;LIa?O]ؿㅧ ?eqͿچQ*? G%=?ceuFVÅQ?S1H|OMU`?/'n^&B-s(?(8-9>?d⾆q (>`ёJҔxaql6P>ntȗ:L++E=$樭9$fB؃iV=,/{"4KMd2sYPK!sp0_db38_77_ma_pywtCoeffs.npyNUMPYv{'descr': '?߷?(?*,s˕?R?f?,pV~?p?/I?CA/뿫P? ]ٿ>La￐̾ƿdr$*A?#)cMF?y8?ݰ@q+򴿘.~G3Q\PK!hsp0_db38_77_md_pywtCoeffs.npyNUMPYv{'descr': 'rO?G?gE?{??Ka?kX7M},1? Jo?XΛ=3 ϊ?[Ta?'r{JE?xY?zI⿑lv? Π8YL9>p tpn.?iv K 7$A_7^?|pGv/P"AP?X*~^f E?"o?&gK῔[?ȐۿQ0R=4dgG~?"v[o?7@|@Ia? ^ؿ`貨 ?e8Ϳ7R*?2秕 ?}xݢd⾼(>*vKhxa_7P>Ì;L+Ċ=;稭8&C؃3V=%Ħ+&u1E* Qh[\PK!ǃsym_db38_77_ma.npyNUMPYv{'descr': 'ż̿Y%La[@:).mHݿJ-̝J?`H6t0ۿx? Dh"ԿI<ҿ@BN.Œ?YO-rz`OqH?,Rt-;.ɐ@h#(?eB|h[Q1?LM{_|?Ye]x?2>gy52(KWE?Ho?-M"?*-1?\ (1?dݵ&ۿW;ƿ,cCA?u=fD@S9,ChL5{?[I?VfH ?"PqPK!asym_db38_77_md.npyNUMPYv{'descr': '!?].w?A8 ?T%+"z?u?R6x螭?U}偊_+/s`? M]¸Q @*FK8V=5V9mc)?tN^?[f{0"\ Pb?a>^f]m kE?ԈVQ?L4zP?fXۿY"y %Dy?<]→Rւ?ߓb>h?מCܿ&Ѡc-?]U 쿧?h6/? dK(hڿp8諗?&f6s@ww?)Qr?cワ@qh$ه?ͻP@qv(eX?Yቬ?S?.T |k?xӻſJ_iY\d1?stT_?'%'?S ~?PK!k!wesym_db38_77_ma_pywtCoeffs.npyNUMPYv{'descr': 'ҿba ?GPK!fLsym_db38_77_md_pywtCoeffs.npyNUMPYv{'descr': 'Wqu5fIih&iſhXc)_djV ?r;?G/λ?5yʿ=[?jPfۻ?ד A^?0?(q$X :+7) |?g@15 5.4<.gVIbB5VmcѺ$?{^? I'"r\ P?a>^f^m kE?ԈVQ?túKw~?Z@ۿ6"!43?dnY{@͑?5?rɽܿ!>E?T!|2:eK8yIl $?!? u {?.A?vIl^7Jѿ˂42R%ucjAVndN/?\gޭoFjR?5u?;ـ翂A?aM?`ZT?(?ن+??ď{LS/{_?6PK! Ksymw_db38_77_ma_pywtCoeffs.npyNUMPYv{'descr': '?VP?z4?rb@?ݿA-?t}EI?:M+rTgܿ\ ?u?Y睒e@E J@e){?fLgӸC{>?s.m ?$מ:D&W8?/X?%?Ab?KY ̿=ĝ?mS+y{пXo% ?6Սaῥ%/o@ (?}hla|R1? }?JLqJy? ?'7%׻ڞVf6V?,ncY?rz^?k,ӗMx/P;P?X*~^f E?"o?GK/&?@@ۿ!𿿶|5 K?(:V 5Vmc]&?|_^?RTc5"v\ P,?a>^f]m kE?ԈVQ?=K(A- ?jFK%ܿWX ]#7h1?^Fy>@VrʙпNm?`̃?Xp/?q`PD!ZĿ`QuпQb"ɿ׿2$u2?6T|s?ez?nۿ;?ٍyп[d @AkC?9@ ?)2l?qy#:4@gc|?vhI ׿} k e?C[1g;?nH_@ ?M-ҖPK!pppd_db38_77_ma_pywtCoeffs.npyNUMPYv{'descr': '?KB%#k`K ׿.mHH.-!d?ΓgÔ"?2 ?,>ԖPK!zc+sp1_db38_77_ma.npyNUMPYv{'descr': 'lx5 BK^f\m kE?ԈVQ?UL"pB?LHۿG& >UA?gC[@peE'?J_!?e'ؿUf?E7NͿz>U?4Y0tѱ?nwRsUAV?=- HJ|iNt^?5՟}1%$)+?$%wҭ?#9E͹>NjFcw?\h<S>`B)-vH=z` )YxeK:TZ=m< bdY激\[?bi ?TR?fi%'`?!翹3B?j[^$F'??Z1dE?_v(ؿtEf?c9OLNͿ"W?i[(YT'ѱ?~jSs$*V?qAJ|kpj0^?TV1^")+?`*?pM͹>Kcw]@\h!pS>ޓ^D)-蝳= }]iA  Z=BUg'WӫK+Rnм/`WAI5Mڋ@NCX.Bl#?:9Ò?HR?\fk ? k\/" Zl?H1{"۝޿@<27?mZY?ϜB*?PK!5ӎ׸per_db38_77_md_pywtCoeffs.npyNUMPYv{'descr': 'ԖEqn?wkJU:iڿ`[Jn ?yf꿭g7 ڿO TR|?ұxn?"{Fr}?L֎"?cN.?2+8?sϮ{VԿkdGeƿ!׿{B?\$MPK!~pasym_db38_77_ma.npyNUMPYv{'descr': 'OWx56PKpĩV?R$>E?AzdR1˻3?w׿J$t1@￑JGǿ_Ϋ:T̀?.sp?װ?)?<s/ɗ8y ?PK!hasym_db38_77_md.npyNUMPYv{'descr': '^f]m kE?ԈVQ? M`L῎j&?֭Fۿ-;T9?2 xjx'8U?Hs?\A)?l5'>pjh? iYK9y7?֞}B)y7ȳ? }q?‹q[?p5l8;yYk'v꼝̔yzEB+o0YXп}K`?c~aT?kؿ?J_?;X\?c1t?^_п'%'⿴S ~ǿPK!2aasym_db38_77_ma_pywtCoeffs.npyNUMPYv{'descr': '?Dk}WS򿉥31?xaG?5]8?c [?Ɓῥ%/o@ (?}hb|R1?WA }?BrJy? ?͠<7&u=?ږ4t@e[ ?r6uշ[?vb'xᅩY:?KKq+L/?\);?-6 / ?4`ݺ?6;"!?^`x&(?c5V?l@E?aTZR鿓=b4?qrJ׿ @@sIǿ VϫS? 0p?g`A*?C~0<.z @?PK!=asym_db38_77_md_pywtCoeffs.npyNUMPYv{'descr': '&9U?9h&s?,-F*? (>忰2Mf? X+K 8?@e}B9؃-8ȳ?P=[~q?th޵\? #W|5@L^f\m kE?ԈVQ?UL 6?cn~ܿ: !E%A/?@N~&La?$%MsGe?VGj2/\#?`?,mֿ^`P?0,Pd«ܿi݅f,4??C2?ubR@M?EX?Sx @҂Vj@bng?:,0ڿ:/䕸?MpF@ Rgupp}?Ss(,iMпPaZT(ҿ8+?{LS/?~_ɿ6?PK!0oasymw_db38_77_ma_pywtCoeffs.npyNUMPYv{'descr': '?lhؿ]vJ޿w&"R^u? x}; O$=?h7;}?bUޜ Eۿ`sH2VAcDLJE\/ӿHn"?Q]H~z3j&4?I%}۴%?9kVN&?-#?[94?]2fH[|?VEYῥ%/o@ (?}hc|R1?7$ }?\qJy?; ?81=?=2t@MPL ?y[?KTxn‚?6@⿝験?ȩނ?c?58@?>zB? g-R#Uֲ?".??m\v?"_}"ٿ5OސW8?#?{+@D?oľ?eq!.ϗw1n?PK!^asymw_db38_77_md_pywtCoeffs.npyNUMPYv{'descr': 'Q؉:, 뒢'釻EV濄 6VdGncA?a|^?My-u/PNFP?X*~^f E?"o?Hˇ/L!n$?P9pܿJE=w:/?b~俯,?-!Nsr+ Д?0Q ?j#?2U?ݱֿK@P?ëܿF Kd6??t*32?O5cR@87n?>/9Y??y @sWj@7W?!-0ڿ8>`Vߕ?Q5F@MT忴u;՘?P7࿐8Qп`Tu ,ҿB`i@6z]S/?_u#ɿ%_6?PK!{,mzpd_sym2_4_ma.npyNUMPYv{'descr': '? |B?C?PK!:?zpd_sym3_6_md.npyNUMPYv{'descr': '? |B?C?PK!:?zpd_sym3_6_md_pywtCoeffs.npyNUMPYv{'descr': '1\uppd_sym3_6_ma.npyNUMPYv{'descr': '1\uppd_sym3_6_ma_pywtCoeffs.npyNUMPYv{'descr': '%??PK!_Uasym_sym3_6_md.npyNUMPYv{'descr': '%??PK!_Uasym_sym3_6_md_pywtCoeffs.npyNUMPYv{'descr': 'zpd_sym3_7_md.npyNUMPYv{'descr': 'zpd_sym3_7_md_pywtCoeffs.npyNUMPYv{'descr': 'bsym_sym3_7_ma.npyNUMPYv{'descr': 'bsym_sym3_7_ma_pywtCoeffs.npyNUMPYv{'descr': 'RY?aahע HEKG3?R(0?F߱PK!ZMppd_sym3_7_md.npyNUMPYv{'descr': 'RY?aahע HEKG3?R(0?F߱PK!ZMppd_sym3_7_md_pywtCoeffs.npyNUMPYv{'descr': 'K?#?%8Nld?m>PK!1„dppd_sym4_8_md.npyNUMPYv{'descr': 'K?#?%8Nld?m>PK!1„dppd_sym4_8_md_pywtCoeffs.npyNUMPYv{'descr': 'JHh? _?dm"%?PK!Xasymw_sym4_8_md.npyNUMPYv{'descr': 'JHh? _?dm"%?PK!Xasymw_sym4_8_md_pywtCoeffs.npyNUMPYv{'descr': '^/r?=Q忧X.?ZgX?+:0PK!Xzpd_sym5_10_md.npyNUMPYv{'descr': '^/r?=Q忧X.?ZgX?+:0PK!Xzpd_sym5_10_md_pywtCoeffs.npyNUMPYv{'descr': '9 '?c#KX⿚ZhDy+?}PK!7sp0_sym5_10_ma_pywtCoeffs.npyNUMPYv{'descr': '9 '?c#KX⿚ZhDy+?}PK!:K9sym_sym5_10_ma.npyNUMPYv{'descr': 'EW8l8G)J?=QJN$wB?d鈃?i?PK!sym_sym5_10_md.npyNUMPYv{'descr': 'EW8l8G)J?=QJN$wB?d鈃?i?PK!sym_sym5_10_md_pywtCoeffs.npyNUMPYv{'descr': '%O?=Q=wS@~(9u ?yͿh1?PK!{asym_sym5_10_md.npyNUMPYv{'descr': '%O?=Q=wS@~(9u ?yͿh1?PK!{asym_sym5_10_md_pywtCoeffs.npyNUMPYv{'descr': 'C()2?A "PK!Xasymw_sym5_10_ma_pywtCoeffs.npyNUMPYv{'descr': 'C()2?A "PK!zpd_sym5_11_ma.npyNUMPYv{'descr': 'ۿ@-.+;PK!usym_sym5_11_md.npyNUMPYv{'descr': 'ۿ@-.+;PK!usym_sym5_11_md_pywtCoeffs.npyNUMPYv{'descr': '?2]y82?,RqI@PK!AݡTasym_sym5_11_ma_pywtCoeffs.npyNUMPYv{'descr': '?2]y82?,RqI@PK!asymw_sym5_11_ma.npyNUMPYv{'descr': '/?d@&5?c^?u)q #&PK!f 2sp1_sym6_12_md.npyNUMPYv{'descr': 'K2?tHR=PK!;sp1_sym6_12_ma_pywtCoeffs.npyNUMPYv{'descr': '/?d@&5?c^?u)q #&PK!f 2sp1_sym6_12_md_pywtCoeffs.npyNUMPYv{'descr': 'K2?tHR=PK!\Nper_sym6_12_ma.npyNUMPYv{'descr': 'G9%W{^?8KPK!\Nper_sym6_12_ma_pywtCoeffs.npyNUMPYv{'descr': 'G9%W{^?8KPK!Gasym_sym6_12_ma.npyNUMPYv{'descr': '?ҿ}ϱ1+?LVԶ=1ߥտwJ?5״Tx#ܿ\̿v?6T mPK!zpd_sym6_13_ma_pywtCoeffs.npyNUMPYv{'descr': '?ҿ}ϱ1+?LVԶ=1ߥտwJ?5״Tx#ܿ\̿v?6T mPK! sp0_sym6_13_ma.npyNUMPYv{'descr': 'ԿPK!\sp0_sym6_13_md.npyNUMPYv{'descr': 'ԿPK!\sp0_sym6_13_md_pywtCoeffs.npyNUMPYv{'descr': 'ǼY?iQ~{W.޿ z?Jp:V?om6m?PK!s<ppd_sym6_13_ma_pywtCoeffs.npyNUMPYv{'descr': 'ǼY?iQ~{W.޿ z?Jp:V?om6m?PK!2sp1_sym6_13_ma.npyNUMPYv{'descr': 'P+Ŀ%x=PK!2sp1_sym6_13_ma_pywtCoeffs.npyNUMPYv{'descr': 'P+Ŀ%x=PK!JMper_sym6_13_ma.npyNUMPYv{'descr': 'ʻ_j!BJ7iпPK!Zsym_sym7_14_md.npyNUMPYv{'descr': '=x}0#?${Aӿ&-n~+?N3?+?߻.ӿPK!G sym_sym7_14_ma_pywtCoeffs.npyNUMPYv{'descr': 'ʻ_j!BJ7iпPK!Zsym_sym7_14_md_pywtCoeffs.npyNUMPYv{'descr': '=x}0#?${Aӿ&-n~+?N3?+?߻.ӿPK!j 5symw_sym7_14_ma.npyNUMPYv{'descr': 'X .@ӲV$@9 J@=ߡL?No)dpF쿎T?׉K?)PqU˿n]誯?Y7?$N@Q"@PK!isp1_sym7_14_md.npyNUMPYv{'descr': 'X .@ӲV$@9 J@=ߡL?No)dpF쿎T?׉K?)PqU˿n]誯?Y7?$N@Q"@PK!isp1_sym7_14_md_pywtCoeffs.npyNUMPYv{'descr': '+hr?H`7PPK!#0zpd_sym8_16_ma_pywtCoeffs.npyNUMPYv{'descr': '+hr?H`7PPK!i?sp0_sym8_16_ma.npyNUMPYv{'descr': '{'y?N{x'?5"MѿlW?T26X?PK!Asym_sym8_16_ma_pywtCoeffs.npyNUMPYv{'descr': '{'y?N{x'?5"MѿlW?T26X?PK!?symw_sym8_16_ma.npyNUMPYv{'descr': 'cBʿ(N|`PK!,asym_sym8_16_ma_pywtCoeffs.npyNUMPYv{'descr': 'cBʿ(N|`PK!Aasymw_sym8_16_ma.npyNUMPYv{'descr': 'ֿdkӜֿPK!Rsp0_sym8_17_md.npyNUMPYv{'descr': 'ֿdkӜֿPK!Rsp0_sym8_17_md_pywtCoeffs.npyNUMPYv{'descr': 'gl1% ?9nÿr p6?u2?Iiae*n?L#(jpZ?PK!-<ppd_sym8_17_md.npyNUMPYv{'descr': 'gl1% ?9nÿr p6?u2?Iiae*n?L#(jpZ?PK!-<ppd_sym8_17_md_pywtCoeffs.npyNUMPYv{'descr': ' C?qߧp_$v?C=PK!Ksp1_sym8_17_ma_pywtCoeffs.npyNUMPYv{'descr': ' C?qߧp_$v?C=PK!Ĺper_sym8_17_ma.npyNUMPYv{'descr': '*?̪胔abR@#7E?0b9m갿CΟ@e225-?ͫs0V?PK!Ĺper_sym8_17_ma_pywtCoeffs.npyNUMPYv{'descr': '*?̪胔abR@#7E?0b9m갿CΟ@e225-?ͫs0V?PK!/Uasym_sym8_17_ma.npyNUMPYv{'descr': 'lXT?DaI*7)?PK!Zzpd_sym9_18_md.npyNUMPYv{'descr': '$JTȒcn& w+[.KZz?!p;8H ܑ>PK!]Śsp0_sym9_18_ma_pywtCoeffs.npyNUMPYv{'descr': '$JUcnJ& w+[.KZz?Kq;8HPő>PK!osym_sym9_18_ma.npyNUMPYv{'descr': 'h4[Ï?WX?O0S&j{]?/ܿϷb*֑'(?QAfW2_/Frܩ|u{Iqþ?All`EQ|?ܶP??zYh?PK!:zGsym_sym9_18_ma_pywtCoeffs.npyNUMPYv{'descr': ' K?MU2D7=7˿*e?Rg-?~|dӴf0ol`?m/uKwܝrL濝?r ?esz'?G`?3_Z?na?iU7p?v|jpFPK!1sym_sym9_18_md_pywtCoeffs.npyNUMPYv{'descr': 'h=[Ï?WX?k0S&Cj{]?/ܿϷbd*֑'(?cAfW1_/F뿏rܩu{I)þ?ll`EQ|?P??AYh?PK!)symw_sym9_18_ma.npyNUMPYv{'descr': '@ɳT̿.*+-E*?֨显ο&q c?O "s?]/uK}#ًI| J?DX?pe?i?[,iY??aJտtAGjtPK!symw_sym9_18_md.npyNUMPYv{'descr': '@⿎ȳT̿ /*+.E*?֨显ο&q c?̈́ "s?m/uK}#ًI濍 J?X?xe?i?a,iY??0JտtALjtPK! 2Rsymw_sym9_18_md_pywtCoeffs.npyNUMPYv{'descr': '@E@g?QAfW]ԁ>%5> L[nῧ?ged=zD͜Ў࿴5?cAfWYԁ>%5>' L[nΈ?ge=zD͜Ў࿝5n>xǬ# 7m?]/uKNVO 2?".?c=?#?f\Zѿ]X?:fd@PK!j6Uasymw_sym9_18_md.npyNUMPYv{'descr': 'n xǬ# 8m?m/uK#NVO2?[".?c=?Շ#?z\Zѿ]X?:fd@PK!9lz=asymw_sym9_18_md_pywtCoeffs.npyNUMPYv{'descr': '80?ve忁B?ol|ֿ@H?LKaM%wO [# ؿ^B60u?u87`AL<|&_P?X錸ͦ`&?՗]R%fPK!nzpd_sym9_19_ma_pywtCoeffs.npyNUMPYv{'descr': '790?ve忠B?l|ֿ@H?JaM2wO [" ؿB60u?h87`MLֿh&vV?LKaM1"H{ѿ3ٿ\Vc?qu򿩫[e ??n?d1L?pPK!*sp0_sym9_19_ma_pywtCoeffs.npyNUMPYv{'descr': 'ֿ&vV?JaM>"H{ѿ3ٿVc?qu򿥫[鿇e ??n? d1L?PK!M|asym_sym9_19_ma.npyNUMPYv{'descr': '?C[? Xi?,MbH?PK!ksym_sym9_19_md.npyNUMPYv{'descr': '?PK!.sym_sym9_19_ma_pywtCoeffs.npyNUMPYv{'descr': '?C[? Xi?,MbH?PK!Lsym_sym9_19_md_pywtCoeffs.npyNUMPYv{'descr': '"H{ pٿt?:Xܷ,U]Tݿ\ÎD?U]"?ӾC>?PK!?symw_sym9_19_ma.npyNUMPYv{'descr': '?a0?7tq??XIF?R.:Կ:oZ6ҿfH?йH?Q"/+?if?#:Ͽ:b`M?0?So?քӿPK!3symw_sym9_19_md.npyNUMPYv{'descr': '?a0?T7tq?? YIF?R.:Կ:oZ6ҿfH?йH?E"/+?if? #:Ͽ:b`M?0?So?ׄӿPK!Usymw_sym9_19_md_pywtCoeffs.npyNUMPYv{'descr': '@?xп:%?oV?0ٿ}9?LKaMɆ,qӃX׿ķ D4?g嘷{v*UY:}?+jVOor?ČrPK!ppd_sym9_19_ma_pywtCoeffs.npyNUMPYv{'descr': '@xп]%?oV?0ٿ}9?JaMɆqӃX׿ D4?\嘷{v*U[:}?KjVVOor?ŌrPK!|nsp1_sym9_19_ma.npyNUMPYv{'descr': '[Oh?.s7e/B 8g:@n_:]EPK!q*Nsp1_sym9_19_md.npyNUMPYv{'descr': '"H{VdٿX:s?&59QlÿPK!4asym_sym9_19_ma.npyNUMPYv{'descr': 'gпPK!T|asym_sym9_19_md_pywtCoeffs.npyNUMPYv{'descr': 'M?X\?8p9Ͽ~rw?$=ն?_Q?05Կ:oZ6ҿO!`?!s-<|?ah<?Qw7? w,cnv֨.8bP|/LbPPK!ANasymw_sym9_19_md.npyNUMPYv{'descr': '⿘I ?{ $ՃҿWu*q?LKaMN^mq,ۿ )bz?.QI4%x?#}M?X\?5q9Ͽrw?R=ն?_Q?a5Կ:oZ6ҿQ!`? s-<|?`h<?w7?w, cnvШ.8bP|/LbPPK!3asymw_sym9_19_md_pywtCoeffs.npyNUMPYv{'descr': 'ΒI ?+{ $ՃҿWu+q?JaM[^me,ۿb)bz?.Qs4%x?}nF?p{e7b׿Qeȃj?iOL㿑?&ih3ʥ#?uڂ]?49PĿpP?ýbL͒?@6 ؾ@m2ĽRl_/ "?PK! zpd_sym10_20_ma_pywtCoeffs.npyNUMPYv{'descr': ';s3?8pzg?j ?lPaWۍ~ҿSUK?r[>?%F'׿Q9 ]?=@͖6K@\:@/@ @PK!gsp0_sym10_20_md.npyNUMPYv{'descr': '?+F'׿8 ]?=@Ȗ6K@\:@-@ @PK!xsp0_sym10_20_md_pywtCoeffs.npyNUMPYv{'descr': '?[bGڿwٶ?z@sV߿9U?:~qL?N MPK!Egsym_sym10_20_md.npyNUMPYv{'descr': '!?-BS޿5w<?` '?dġ}N! mgHu?_BC̿PK! /symw_sym10_20_md.npyNUMPYv{'descr': '!?BS޿5w<?` '? ġ}O! ?ngHu?ҍBC̿PK!j77Ksymw_sym10_20_md_pywtCoeffs.npyNUMPYv{'descr': 'T'S? xO"uaz`0?Ra)ӱ?kih3FbGO?"'?;yOƌ?R`sF?[ύv?)=?PK!FOppd_sym10_20_ma.npyNUMPYv{'descr': '?ub}#w3ZB&?{Q74% {PӿYswj?j1Wk?&ih3*[% ?D>?ub}#w3ZB&?{Q74% {PӿYswj?j1Wk?PK!ڧ#ppd_sym10_20_ma_pywtCoeffs.npyNUMPYv{'descr': '?b}# 4ZB&?>{Q74{Pӿswj?j1㿿k?kih3:[% ?>?b}# 4ZB&?>{Q74{Pӿswj?j1㿿k?PK!YZsp1_sym10_20_ma.npyNUMPYv{'descr': '˾ LA?9?BN@??w"洿aWۍ~ҿ?S)?ysI"?X4пR?L@3U "@4+@ =2@IgJ|6@PK!Nfsp1_sym10_20_md.npyNUMPYv{'descr': '*Yޯh ?vgkr^ձ?(FF?+.?9aT⿉vt?&ih3p^j̿?8?[_WڹG?Ϡs,ǿ_Qڮ?EL>i?*o\,OZ?޼PK!*sp1_sym10_20_ma_pywtCoeffs.npyNUMPYv{'descr': '˾ LA?Q9?BN@?@w"洿RaWۍ~ҿS)?ysI"?4п R?L@w3U "@z4+@ =2@;gJ|6@PK!!"sp1_sym10_20_md_pywtCoeffs.npyNUMPYv{'descr': '*Yh ?FgkrZ^ձ?j'FF?+.?:aTvt?kih3q^j̿?8?K[_WG?Ϡs,ǿaQڮ?PJ>iLo\,OZ?޼PK!Y per_sym10_20_ma.npyNUMPYv{'descr': 'L ?ʁf?w2YDޛNTdA5 ? ?PK!per_sym10_20_md_pywtCoeffs.npyNUMPYv{'descr': 'WT8%Vx?ÒC)?㽐?[kaWۍ~ҿv)~L? ?,7࿍Oͷu?+W-Q?lL׿|&LꆿH%*?PK!֟s\asym_sym10_20_md.npyNUMPYv{'descr': 'WT򿑍%Vx?4C)?0?N[kRaWۍ~ҿv)~L?L ?J,7Oͷu?lW񿉐-Q?lL׿{|&Lꆿ%*?PK!~yasym_sym10_20_md_pywtCoeffs.npyNUMPYv{'descr': ';?IQd?4[@3u=10?r?ut?ܯdaڿyѿPK!ϓҹ asymw_sym10_20_ma_pywtCoeffs.npyNUMPYv{'descr': '10?r?ut?`daڿѿPK!>b]  zpd_sym10_21_ma.npyNUMPYv{'descr': ' W:4t鿅U>?Vk?(5?fg& @8+%?7OQ-׿ rMۂ"'}0?'S?*ҋUw?atj:迴Sؿ7w?GҤΡ]b?QʾNPK!  zpd_sym10_21_ma_pywtCoeffs.npyNUMPYv{'descr': ' 5X:4tU>?k?*5?gg&; @8g+%?7OQ-׿@ r+Mۂ"'}0?8'S?'*ҋUw?atR:bSؿw?GҤ0ϡ]b?{RʾNPK!"*  sp0_sym10_21_ma.npyNUMPYv{'descr': 'eȿt~\\?:,?ӏg?fg&^GD%E+?8 h̿8lū"JZ jħ[dЪPK!1BU5  sp0_sym10_21_md.npyNUMPYv{'descr': 'sp濕 q3?|fW.@t`?r8;-Wʮ"n?PK!VUC  sym_sym10_21_ma_pywtCoeffs.npyNUMPYv{'descr': 'sp q3?fW.@t`?r8;-ʮ"n?PK!ڗ_  symw_sym10_21_ma.npyNUMPYv{'descr': 'GH??6=\?`'LECsk"ɨmo{>?SN٤6? +?fg&NՋ/o}ce?oLU[ʿ0.?vbe8<׿YɳŎE*R PK!=3  symw_sym10_21_md.npyNUMPYv{'descr': 'EH??=\?'LErk"ɨm뿭{>?N٤6?+?gg&N/q}ce?KU[ʿ 0.? be8<׿[ɳŎE*w PK!mG  symw_sym10_21_md_pywtCoeffs.npyNUMPYv{'descr': 'Y gK xп_oE>D?HCF???fg&ces?`%ȿM1VgFPjhCs m*"fhp5'8E,PK!Hp  sp1_sym10_21_md.npyNUMPYv{'descr': '0bn"?hU@Fm7_?TҝO BoUwj?7Ng?r3?!2 l ?b"TVHV\aF w?Z>wqh?2'H^Z(p g/ xпo>D?HCF?A?gg&뿓!s?`%ȿ1VgFPMhCs m*"fhp5'8E,PK!Zw  sp1_sym10_21_md_pywtCoeffs.npyNUMPYv{'descr': 'bn"?[kU@Fm7_?fҝO?Bowj?XNg?Y3?2 6l ?"TV8V\aF忄 w?Z>9wqh?2'H^Z˼PK!"@per_sym10_21_ma.npyNUMPYv{'descr': '6? _*x]dŅ 0k*N־Կ`'d?|cuPK![  asym_sym10_21_ma_pywtCoeffs.npyNUMPYv{'descr': '~6? _*x>duŅ 0*վԿ 'd?}cuPK!1]X  asymw_sym10_21_ma.npyNUMPYv{'descr': 'rev2?PK!n((zpd_sym11_22_md.npyNUMPYv{'descr': 'k?hjZ@񹬬?e?oK,z oпϗ!w<)S1l?>Ĥj8ˑ?/0VibX.?PK!4((zpd_sym11_22_ma_pywtCoeffs.npyNUMPYv{'descr': 'k?hjZ@H?e?K,zB oпϗQw<,S1l?DĤj,8ˑ?-0VbX.?PK!j}e((sp0_sym11_22_ma.npyNUMPYv{'descr': 'ͻj*D x.Fv2BH#A"S~nu\(?Tj? 6@f  ?L }yXHwA |?yC+@z({@?0x@ݪB@m1@3m)@@PK!-Ep((sp0_sym11_22_md.npyNUMPYv{'descr': 'ͻj+D x/Fv2BW#A"S~nu+\(?RTj?#6@{  ?Ь }yGwA{?࿑yCs@z({@?Qx@ݪB@m1@3m)@@PK!'2((sp0_sym11_22_md_pywtCoeffs.npyNUMPYv{'descr': 'g?)eڿPK!,6((symw_sym11_22_ma.npyNUMPYv{'descr': '@;n?L }ætwi8C4fk*O࿦ ؙG[ֱ'?àre~@c""@o_ <+@)E*2@._)Cձ6@PK!>((sp1_sym11_22_md.npyNUMPYv{'descr': '$?rRk?B`{G(̿VrOi?~;?e@񹬬?y?6c!봴ӿ[=? s^yGá?)ٝu^9ZB?tټPK!/<((sp1_sym11_22_ma_pywtCoeffs.npyNUMPYv{'descr': '@;n?Ь }twi8C4jk*Oy ؙG_ֱ'?Ġre~@c""@p_ <+@)E*2@9_)Cձ6@PK!qK((sp1_sym11_22_md_pywtCoeffs.npyNUMPYv{'descr': '$?(Rk?`{G(̿rOi?~;?e@H?%y?7c!봴ӿ=? stzGá?'ٝuaZB?PK!Gzper_sym11_22_ma.npyNUMPYv{'descr': '3 ?z}?^-ʰ?)4Z[?0ǥԿPK!LӖ((asym_sym11_22_md.npyNUMPYv{'descr': '3 ?z}?v^-ʰ?2)4Z[?ǥԿPK!((asym_sym11_22_md_pywtCoeffs.npyNUMPYv{'descr': 'R(?a.x'(j]O Z# 1࿀v{N??8x@H??8Lq$Ggӿzq9Q)>ʵ1)X̂6kcM7\;vɿl?PK!d((asymw_sym11_22_ma.npyNUMPYv{'descr': '?_'i.3??ܨ?CƂd?K؜{PK!4(( asymw_sym11_22_ma_pywtCoeffs.npyNUMPYv{'descr': '?_'i.3?@ܨ?DƂd?ڷK؜{PK!00zpd_sym11_23_ma.npyNUMPYv{'descr': ''scK+?eb<7ު }r? {yEȗ?0-͠|B{dZ?t|<6,:iA ?vd=/ ?̭ej52^,2?PK!)@00zpd_sym11_23_md_pywtCoeffs.npyNUMPYv{'descr': '00sp0_sym11_23_ma.npyNUMPYv{'descr': ';?PK!00sp0_sym11_23_md.npyNUMPYv{'descr': 'b?Ӻl]a?M򻔿qE6"A?y3bPK!Dr00sp0_sym11_23_ma_pywtCoeffs.npyNUMPYv{'descr': ';?PK!U00sp0_sym11_23_md_pywtCoeffs.npyNUMPYv{'descr': 'b?ҹl]a?O򻔿.A6"A?@v}3r?AsRLb㿕ʜ7N?5EZ# n?м^s8ֻPK!SYm00sym_sym11_23_md.npyNUMPYv{'descr': '?#AsRLbΜ7N?_EZj# n?;Ѽ^\8ֻPK!rd,00sym_sym11_23_md_pywtCoeffs.npyNUMPYv{'descr': 'U?tĔS?W{o[ I?9}?Wq!?w2K?+ZAȿu<-ֿU$rmkU\F?{n?aB??a:iF'?'Aп޺`BS?PK!Lx 00symw_sym11_23_ma_pywtCoeffs.npyNUMPYv{'descr': 'U?ĔS?fY{oZ I?9}?Wq!?2K?0,ZAȿv<-ֿ6%rmk>\F?{n?aB?'?a:iF'?$'Aп޺aBS?PK!Wd00ppd_sym11_23_ma.npyNUMPYv{'descr': '3?l߁|gު }r?;mfAHÓ?cfswQ\s?PoU??⧠@p+@ɋ=4@#YUt:@ @@PK!p00sp1_sym11_23_md.npyNUMPYv{'descr': '6#;?#`h7*6 ??gu?P-?5#;?%`h7*6 ??gu?޻P-?n=j K?0,ZAȿ<5ֿ{鿈݅P?ۏ x'@S?R''?]Pnp.?Md7|@pbM?!a=?N)?D8԰ۤNgު }r?aDῂ,'?C[?jw%?!JPK!per_sym11_23_md.npyNUMPYv{'descr': '+Zב2R?aFR2@]a0l?\ظPK!h00asym_sym11_23_ma.npyNUMPYv{'descr': 'Z=mRcM9ti&c?6yHnHyGNr,?ANJ?JY<$p%Ͽ^pfdAx?N?=Kfof?{I忝 `?Mf?@+(?}kܳl?Ez$' T?g˕PK!P88zpd_sym12_24_md.npyNUMPYv{'descr': 'tu\?' pqb?QڿgB?k7w߿ڻK()8пv!?w?Կ(]'?(3?e_㿟6ӿ{ K?R&_HKBj?z4Fe$?PK!9J88zpd_sym12_24_ma_pywtCoeffs.npyNUMPYv{'descr': '%mRcM9ti&c?֊yeHyHNr,?>NJ?JY<{p%Ͽefdx|?cL?=Kjgof?:IZ `?Lf?;)(?kܳm?Ez$' T?C˕PK!S88zpd_sym12_24_md_pywtCoeffs.npyNUMPYv{'descr': '?vbHl?)xÑ#T?cl?)>4)&? x׿uQѿ[\¿PK!r88sym_sym12_24_md.npyNUMPYv{'descr': '?bHl?wÑ#T?cl?=4)&?x׿ uQѿ}\¿PK!#88sym_sym12_24_md_pywtCoeffs.npyNUMPYv{'descr': 'ԿHW:?>7?Ҕ,C2/Ȃ?'z7 ٿ=?EfC߿݈QԿHW:?>7?Ҕ,C2/Ȃ?'z7 ٿ=?EfC߿݈Qi@iC.!@PK!u!88sp1_sym12_24_md_pywtCoeffs.npyNUMPYv{'descr': 'F?%/|C?R[?9^zf&%?4FgB?GU?PK!88asym_sym12_24_md.npyNUMPYv{'descr': 'B пv!?3)4?a};ԿK8?|m`?Rqx;&YտP4Q?Gx{?'['ֿ5?PK!׷>88asym_sym12_24_ma_pywtCoeffs.npyNUMPYv{'descr': 'F?.|C?[?_yfZ*%?-FgB?ϭGU?PK!Jy88asym_sym12_24_md_pywtCoeffs.npyNUMPYv{'descr': 'B пv!?P)4?q};Կ8?~m`?VRqx;{+YտYP4Q?>x{?*['ֿ6?PK!$Lo88asymw_sym12_24_ma.npyNUMPYv{'descr': ',?ߏ?tk@ڒ1Rw @]}ג@j@PK!݁88asymw_sym12_24_md.npyNUMPYv{'descr': ',?ߏ?8tk@1Rw @o}ג@j@PK!.r<88 asymw_sym12_24_md_pywtCoeffs.npyNUMPYv{'descr': 'Yde?UUnjh=?:Ŀ&\?aMzuT?'cp??2ɿLM*ݲ?Nz?띎"Z\+Z?>\௿24d ?G2m/ 4?C+Yde?ZnZÁjh=?e:Ŀ-&\?saM&uT?++cp?*?-ɿ=M,*ݲ?Ny?."Z[+Z?;\௿2d ?E2mR 4?`n?&hcܿ-?Ѽ?gobC?Qılo8(eѭ;?v}rP(?2!Q9zG?JH?]׃?PK!vA#@@sym_sym12_25_md.npyNUMPYv{'descr': '^?8?RJu5\?O ތy࿅$2?N,uϡg?@eS?PK!.@@symw_sym12_25_ma.npyNUMPYv{'descr': '_őޛuqE?t`iFhXь?Fv5\?-_$[zߣX?o5,hcܿKM?9_0?Eq`u(/;co?:$M@}nj6ݪY@C>7C]:? OPK!~1@@ppd_sym12_25_md.npyNUMPYv{'descr': '_aޛqE?`iJhXь?Cv5\?V_$[~ݣX?5, hcܿ8M?S\0?Gq`u(4?co?;<$M@CnjݪY@lC>7C]:? &PK!";}#@@ppd_sym12_25_md_pywtCoeffs.npyNUMPYv{'descr': 'h?9hcܿTK˼?ږA?ԘRCtDBM ?n3 hmB)K'GpUn>H-u 2". PK!6n@@sp1_sym12_25_md.npyNUMPYv{'descr': 'i.*rC?PnYyg~??YÏɿ'$?'|',x?+cUu?⎆?)cw?)l 4 T3?Th?"9 hcܿUK˼?ږA?"R:tDBL ?en3 +hmB) L'\pUn->I-u +2". PK!@@sp1_sym12_25_md_pywtCoeffs.npyNUMPYv{'descr': 'i)rC?PnYyg~?*?ɿl'$?|,,x? dUu?$?nbw?l4 T3?per_sym12_25_ma_pywtCoeffs.npyNUMPYv{'descr': '?Ram5zFIW?#tʿ+\I}{?#￳8B?Npr ω??-tɿl0kWX?"exv󿫄"+|?>;dX?Ȇp*EhD?u V ̿(g>⿊5YԿPK!\\@@asym_sym12_25_ma_pywtCoeffs.npyNUMPYv{'descr': '?D`m5z4I4W?Cyʿ\I}{?:#d8B?)Npr ω?*?tɿa0VX?"exv*"+|?;dX?op*[ChD?V ̿t(g>t7YԿPK!גcj@@asymw_sym12_25_ma.npyNUMPYv{'descr': 'ٜ^,PK!@@asymw_sym12_25_md.npyNUMPYv{'descr': '^,PK!d@@ asymw_sym12_25_md_pywtCoeffs.npyNUMPYv{'descr': 'HHzpd_sym13_26_md_pywtCoeffs.npyNUMPYv{'descr': '6 ٿ!TJ?Lz~ ?]?Ɏy.!?ec_`(?T ,?Էؼ+?PK!ݿXHHsp0_sym13_26_md.npyNUMPYv{'descr': '6 ٿ TJ?Kz~ ?H?Ɏy.!?gc_`(?T ,?ַؼ+?PK!xTآHHsp0_sym13_26_md_pywtCoeffs.npyNUMPYv{'descr': '?B}޿!S[[i?脩|?־0?́uh?#WO=N?9NK?vਖ਼?F: lL`տ zQj?eZ?>(?i+Z?`EL9 ?z+/ֿ*f/?3%?(k¿'xEa?#>-?EdVRPK!9HHsym_sym13_26_md.npyNUMPYv{'descr': '?B}޿R[[i?|?־0?@uh?!WO=N?;NK?Hwਖ਼?F:mL`տ zQj?켴Z?>(?+Z?>`E8 ?+/ֿ*f/?V%?%k¿xEa?h#1>-?+dVRPK!WHHsym_sym13_26_md_pywtCoeffs.npyNUMPYv{'descr': '4PEZPeѿcDFVV\)?`ܭP?**dտ`hg]?9].G?2@^?rہ)\RVbDȁ?M2[@m!?DߪV?8mqPK!B QHHsymw_sym13_26_ma_pywtCoeffs.npyNUMPYv{'descr': 'ƅ4P忞EYPeѿDFV\)?`ܭP?]*dտJjg]?].G?2@k^?iہ\RbDȁ?M2k@Ɋ!?ߪV?lqPK!gHHHppd_sym13_26_ma.npyNUMPYv{'descr': '?VՕ(տM?j}s?~a?ٜ9?NVտ7r#.j?eZ?j?iW?mQ D>?VՕ(տM?j}s?~a?ٜ9?NVտ7r#.j?PK!HHppd_sym13_26_md.npyNUMPYv{'descr': 'J?dՕ(տ#M?rj}s?~a?B9?[Vտ|q#.j?켴Z?uj?iW?mQ D>J?dՕ(տ#M?rj}s?~a?B9?[Vտ|q#.j?PK!VQ?]*dտ¢K\?|Ź?ʪ[#@d]?Ion`?B;oӿrʰ]-#fQ?>Q?PK!HHsp1_sym13_26_ma.npyNUMPYv{'descr': 'J1hL?|M̾ۿ$8w?]m?@lა@9I@FU@N@PK!&HHsp1_sym13_26_md_pywtCoeffs.npyNUMPYv{'descr': '?VՕ(տM?PK!ڀ~per_sym13_26_md.npyNUMPYv{'descr': 'J?dՕ(տ#M?PK! per_sym13_26_md_pywtCoeffs.npyNUMPYv{'descr': 'Q?]*dտ¢K\?|Ź?ʪ[#@d]?Ion`?PK!HHasym_sym13_26_ma.npyNUMPYv{'descr': '{ҿ6{ڗ?CO?**dտzH6]?j ?FflC@fP>2?2=c BoUBۿUW.ؿT;(z׿)8 ? 1z@^8g3G?MOR?PK!ՠHHasym_sym13_26_ma_pywtCoeffs.npyNUMPYv{'descr': '{ҿ6ڗ?XCO?]*dտfJ6]?l ?FflC@UP>2?a?OuR:?}[_г̉dտ!2~>j?eZ?wY?$"XhT?Xy#ʴ6?ڿ?ޅa@EI@-+$f@6fJ@DR@$>4 @PK!tu}HHasymw_sym13_26_md.npyNUMPYv{'descr': '?{PLR? տp-Ϫῧь?gDS2Q?**dտh \?2(?"@Aùz?f ,orb?U1ܿi.?s@y߿ ԩ?PK!!mHH asymw_sym13_26_ma_pywtCoeffs.npyNUMPYv{'descr': '?uR:?}[_г̉dտf1~>j?켴Z??Y?H"XhT?&Xy#46? ڿ?fa@DI@*$f@vfJ@DR@1>4 @PK!L\HH asymw_sym13_26_md_pywtCoeffs.npyNUMPYv{'descr': '?|PQL> տo-Ϫ)Ҍ?#DS2Q?]*dտT \?F4(?"@Ᾱz? ,rb?T1ܿi.?s@4߿ԩ?PK!^PPzpd_sym13_27_ma.npyNUMPYv{'descr': 'V Y?87һ)"PK!|%PPzpd_sym13_27_md.npyNUMPYv{'descr': 'q?\?4@%O?(thݟN{BD*:?cW8W,?Nݺc:]f<;@?XUkF?W\?8VrTpMBi?핁M?Kߣw$p?V)TN+9?1?C߿l ?4Y𗐿smgc?qrp'"PK!MPPzpd_sym13_27_ma_pywtCoeffs.npyNUMPYv{'descr': '}_ !?HmEM˿&F?bB+{>V Y?X6һ)"PK!m+?\?@%O?說(kݟN{sD*:?0W8W,?ݺcW:]f=;@?TkF?\?8VrT+qMBi?+M?ߣ $p?(TN9??C l ?.Y𗐿nmgc?qrp'"PK!(pPPsp0_sym13_27_ma.npyNUMPYv{'descr': '?,~[R(?m{Iʿ ?Կ(< j㿜燓VĿN+? !e̿Srk?&1 E.3|( &Թ&&6>i @?5AR#%g~aE4듿*?xQXc꿗&4,?\ÊdDmw?XUkF?{^OD?D<*Z7?I4k?1`~w嚊?0 nN㿔[I?iw?Te& ~1??}[R(?n{Iʿ~ ?Կ'< kl쇓VĿN+?!e̿rk?%1ԴE.3|( ҹ&&>i @?5AR#%g~bE4듿?wQXc%4,?#ÊDmw?TkF?)^OD?nD<*Z?)k?h1`w嚊?nNZI?jw?Te ~1? P3@S?km ?t_|,?ԌǯLʿ ?Կz X1[ntv,ÿPx?;ѿJp?Yr6ch ?a"5ȿ5<&?DZ*-PK!B1PPsymw_sym13_27_md.npyNUMPYv{'descr': '(+?O3@S?jm ?7_|,?ՆǯLʿ~ ?Կz p2[nJv,ÿw?;ѿJp?Dr6c ?,c"5ȿ5<&?DZ*->PK!PPsymw_sym13_27_md_pywtCoeffs.npyNUMPYv{'descr': ']?TkF?? DS,?ve?T?t#Y"?%)YI*?նL;T 27?Gbv\Xٿ5?PK!JPPppd_sym13_27_ma.npyNUMPYv{'descr': ' ?\6pʿb%? l v熚8'?M@տPK!3PPppd_sym13_27_md.npyNUMPYv{'descr': '?5S6{rVҐ@m :?l3?_?ưBea?ߥ`mp?XUkF?ٳ?AS?(^?s6up?ʶ (*`˫?,Šn E?Te1̂&?Cicŭ?&æ|[຅ֿPK!> ?A7pʿ^b%?, lv熚'?M@տPK!ZPPppd_sym13_27_md_pywtCoeffs.npyNUMPYv{'descr': '?S6{rVҐ@k :?l3?_?]ea?~ߥ^'p?TkF?Oس?S?(^?6up?V (* `˫?Xn E?e1̂4&?hcŭ?æ|`[຅ֿPK!PPsp1_sym13_27_ma.npyNUMPYv{'descr': 'PPsp1_sym13_27_md.npyNUMPYv{'descr': '15Az EPK!̊PPsp1_sym13_27_md_pywtCoeffs.npyNUMPYv{'descr': '6եq?|d??55PK!itPP asymw_sym13_27_ma_pywtCoeffs.npyNUMPYv{'descr': '7եq?ha??4PK!n3XXzpd_sym14_28_ma.npyNUMPYv{'descr': 'PK!rXXzpd_sym14_28_md.npyNUMPYv{'descr': 'PK!IӀXXzpd_sym14_28_md_pywtCoeffs.npyNUMPYv{'descr': 'P?zUc?(wn`?PK!<XXsp0_sym14_28_md.npyNUMPYv{'descr': 'Yoѿ;'R =߮9 Κ?/ >i($?x/ .9QMzu㿋2Կ6d?T?nwa6 ga?,ӕ:֧vf?PK!` @XXsp0_sym14_28_ma_pywtCoeffs.npyNUMPYv{'descr': 'P?xUc?%wn`?PK!=aXXsp0_sym14_28_md_pywtCoeffs.npyNUMPYv{'descr': 'HZoѿ8'X =߮X! Κ?% >ix($?" .9Q"{zu㿇2Կ$۩d?9?]wU6 ga?,ӕ:r>vf?PK!XXsym_sym14_28_ma.npyNUMPYv{'descr': 'y^H?C+H?,;S@oyZ-?+>.O?bjHQVœSѿ Pg9 Κ?q:~ijcw?NJ҃7@RQYOJzP[9 ؿ4Mf? LpK?/Կx݁?p5܂vVA?>-߿PK!%QXXsym_sym14_28_ma_pywtCoeffs.npyNUMPYv{'descr': '!u󿱧r?.wx?PK!mHXXsym_sym14_28_md_pywtCoeffs.npyNUMPYv{'descr': '%?jHQῚœcѿ VgX! Κ?g:~ipjcw?~҃7@ТSQY_GzP[⿁9 ؿ f?-LpK?\/Կ=n݁?[5܂UVA?-߿PK!Z0XXsymw_sym14_28_ma.npyNUMPYv{'descr': '?)p`&?դAf꿵W@U$PK!fL{XXsymw_sym14_28_md.npyNUMPYv{'descr': '?)p\`ƒ?~AfW@T$PK! IXXsymw_sym14_28_md_pywtCoeffs.npyNUMPYv{'descr': '?ʃn/?z$D[#?yF!7Pj"?"?=K'>@p 'ֿ>#駭#W~Ƃе=;!?YQ @2td;! @rQ&@^X-@X S2@!?5@PK!0XXsp1_sym14_28_md.npyNUMPYv{'descr': '?ztn/?r$DI6#?(iF!75j"?"?8K'>@ 'ֿq#駭G^¯е*=;!?YQ @xd;! @rQ&@^X-@Y S2@!?5@PK!bXXsp1_sym14_28_md_pywtCoeffs.npyNUMPYv{'descr': 'w?/_"? ν?< ɩc-Uw?kΥ6Pj"??]7<@ [ տo3a޳:#?<"Nӿ6i\?G_pv?qZD8C xPK!`XXasym_sym14_28_md.npyNUMPYv{'descr': 'w?7_"??4 #c-Uw?kΥ65j"??}X7<@[ տQ3޳࿷: ?"Nӿ˅i\?Zpvd?[D8 xPK!XXasym_sym14_28_md_pywtCoeffs.npyNUMPYv{'descr': 'Fi?#?lLXم&ĵR㿣WDa,ٿpydƀ{yN>#Щ#Z?ӗ&4i$(u?ȗ_qf: ?PK! 2XXasymw_sym14_28_ma.npyNUMPYv{'descr': 'ldD` K#M2?$4C?lu|?YBt?dC6Pj"?KVӔ?l%r=@`eLֿB:$yT|BuuMC?hq\ @C1 @˻s@aꘗ @#_]LϿb@PK!N\XXasymw_sym14_28_md.npyNUMPYv{'descr': '+̍4rZLD]?py!]?_<;=?~Cs.1翐*5PR`߿q>*,#t w;d? ٜ2?60ańf?^qD?wrgM2?;y0HkG(p?}M'̍4fZLD]?9py!]?t?<=?C$s4Y*5PN>`߿u>*%,#Dj wٴ;d?ٜ2?0a㭾ńf?`D?prgC2?;y0YeG(p?DM'_[ݿNtESՖпdE^ٿ#kޢ[BJi"?mΔQQ?L^%ȭ'Iqٿڏ*?,4?`5Y? ?k*S?(d?蘿LI?IS*sOb6?PK!vM``sp0_sym14_29_ma.npyNUMPYv{'descr': '*pa#-.uecB?'(5aB??2 kA-sN? u?]R2?( l5*?3?abϼ?y?~O?PK!ѣ``sp0_sym14_29_md.npyNUMPYv{'descr': '*࿿a#.u{TcB?5aB?& kA.-sN?u?$^R2? l5*?3?abϼ?y?yO?PK!43``sp0_sym14_29_md_pywtCoeffs.npyNUMPYv{'descr': '*pa#w7:uz}?:\ 2(?9fY?wq?TFER瞄v#?2v𑽬G?zTPK!V``sym_sym14_29_md.npyNUMPYv{'descr': '/ܿsYxBᅧ@~wpп8I?bٿ[[xgi"? yT(?;6ϳٿvm?mEĜ?\GAs?iRw`"!mܚ_.j8񿨢wސ?+3)ɊwPK!!A ``sym_sym14_29_ma_pywtCoeffs.npyNUMPYv{'descr': '#߿u>*࿿a#,:ui}?0\ &(?`[Y?xlq?WFpÅv#?j+vyG?zTPK!p``sym_sym14_29_md_pywtCoeffs.npyNUMPYv{'descr': '/ܿQLxB=~8xpпD?bٿﯱ[[BJi"?sT(?L7ϳٿvm?zEĜ?^GAs?<R`"ak_.j8Hwސ?A 3BĊwPK!LD``symw_sym14_29_ma.npyNUMPYv{'descr': '4姇J뿒.i.ogL#߿q>*bB姇J㲴.m.濸obL#߿u>*࿋z#Itve#?3 4 &?W/S%?%?ӊC$rYQ?k ?Bt?Cq!2FPK!+``symw_sym14_29_md_pywtCoeffs.npyNUMPYv{'descr': '*#]<{v )@?]rmd`rgS?5'}E?>?/QPV2#eN63Љ V+'PK!``ppd_sym14_29_md.npyNUMPYv{'descr': 'd!H?I5.J?xKF?~j>οJ>{?RIL|?PK!Fښ``ppd_sym14_29_ma_pywtCoeffs.npyNUMPYv{'descr': '*i# S<{v)@?SrmTrgS?$,'}E?>?/QUT2#eN6P V忾+'PK! 9"1``ppd_sym14_29_md_pywtCoeffs.npyNUMPYv{'descr': 'ο6{?IL|?PK!t7``sp1_sym14_29_ma.npyNUMPYv{'descr': ' {6y/jg]I!Ί߿q>*࿤G=#V@tll?+qa 0|?~6ui,0i]?!x@\=ǎ]@>x@Hsb@Sޜ"@!6&@{ L)@PK!R<``sp1_sym14_29_md.npyNUMPYv{'descr': 'Rٿ[xgi"?2 ?#[(9;xٿ)w.?3e8x?o?Køux?!ntmO? k:z-?gό {x/Hg]r!Ί߿u>*I=#@tll?6ga |?q6ui0i]?)x@xEǎ]@Hx@Lsb@Uޜ"@ !6&@ L)@PK!Rٿؘ[BJi"?U- ?l}[I:;xٿ"w.?ye8x?o?=øux?ޗ!ntmO?kyk:_-?Xyό߼PK!lkXper_sym14_29_ma.npyNUMPYv{'descr': '*<8[g#BrxZoJ? W0?4q.M$*࿋:[g#rxgIoJ? W0?q.6K$:޿ْ"M}nnп;{ZٿW&Oa[BJi"?1)z?lJ¥Qn/ٿ2GM?k "|? V*࿤G=#іt0T,a?S$n_?d/'?5o?nk?E9 *o@1G?qzE @=:8.@'4S4 @>`! @PK!e``asymw_sym14_29_md.npyNUMPYv{'descr': '^Oj=q?}v.=<#PK!ȣ;`` asymw_sym14_29_ma_pywtCoeffs.npyNUMPYv{'descr': '*I=#:ǖtC,a?U$on_?I/[5o?nk?6 *o@M?yE @'=:8.@)4S4 @`! @PK!p`` asymw_sym14_29_md_pywtCoeffs.npyNUMPYv{'descr': '^Q=q?Qv~p?<#PK!`mhhzpd_sym15_30_ma.npyNUMPYv{'descr': '¨/PK!h*hhzpd_sym15_30_md.npyNUMPYv{'descr': '?_Ko̎?Wݿ. 旚?IsRڿn!1V2ڦwܿ{?(Rݨ׉?ՓKs&N藯B?0u2lia)>PK!1hhzpd_sym15_30_ma_pywtCoeffs.npyNUMPYv{'descr': 'I¨//V[?xjhBy`CP?^=͝L?ѲE ?tCS_?]vV4Jڿv1?V;?Ի3?_Q˿U%ᅭ.@O ѿDA? ɘڿe =bοϮaFҌ{ DJ?'%տ?jA~?7Q q8;_?V2S%#yI>PK!ihhzpd_sym15_30_md_pywtCoeffs.npyNUMPYv{'descr': '?LIo̎?Wݿ. f旚?"@sRڿ1V2ewܿ l{?U/Rݨ׉?KsN藯B?&u2l2Pa)>PK!=Ohhsp0_sym15_30_ma.npyNUMPYv{'descr': '#hhsym_sym15_30_md.npyNUMPYv{'descr': 'BP?G M?[JLГ?_Ko̎?@9ݿ~S0(?N oڿK ᅰ!ɶZDV[:KmQ?F[+4?~Fۗe?㿪5eJ?3[?6rPK!m7$hhsym_sym15_30_ma_pywtCoeffs.npyNUMPYv{'descr': 'kfпl'Nu?}>O0q7]h꿣b\mİ ?2 ,П?[ɾ?PK!#Whhsymw_sym15_30_ma_pywtCoeffs.npyNUMPYv{'descr': 'kfп'Nu?9O0q俐Zh꿄;]m ?} ,6?ɾ?PK!LDDhhppd_sym15_30_ma.npyNUMPYv{'descr': '/ԡ:=5y6>72/ t+VORb#z98 FB}d ؕ?*Yi#ؿe>?NJ`?-ww?Q˿~ϩ%an9ѿD?JɝڿhtϿiX;l6T&).z}?PKc @Qƞ.p@["!@f|"@1 e&@JN*@PK!`hhsp1_sym15_30_md.npyNUMPYv{'descr': 'ԡ:y=5y6<72 t+QORb#q98XEB}ؕ?Yi#ؿe>?NJ`?ww?_Q˿xϩ%x]n9ѿ!?HɝڿѲtϿ_cX;l/&)?z}?Uc @)Vƞ.p@_"!@Rf|"@ e&@hJN*@PK!/hhsp1_sym15_30_md_pywtCoeffs.npyNUMPYv{'descr': '|Ƶ? ҿC 54ra?i ]ֿ$?R?H}4i?nNj j?܅L?2G?_Ko̎?%ǂݿ؋ā `~6F?>&ٿӎ@ @ (?&nTiֿ.?CWW]?GƢ?d_ Ŀffq)?:⿀2\PK! hh asymw_sym15_30_ma_pywtCoeffs.npyNUMPYv{'descr': '&ٿӎ@ (?)nTiֿ?TW]?^RGƢ?ח_ Ŀffq)?j--\PK!n)pppzpd_sym15_31_ma.npyNUMPYv{'descr': '?afX쿨qhYCqѿ.~uϿz|T*f6?Ηv?#1ڿw2(5A翰&R䒍tΊ9Kd?dBSL F?$^ux~G?[̖wةr>PK!V ppzpd_sym15_31_md.npyNUMPYv{'descr': '??N)߿|7?/05?:?;{?CM E.?L 'nݹ?6gS}L?jr9ݖAOw?kHSU~3$1?/-G>PK!@ܙppzpd_sym15_31_ma_pywtCoeffs.npyNUMPYv{'descr': '?fX쿇qhYTGqѿ`*~duϿpq|Tῧf6?v?:#1Tڿw&5A翾&ݒt4Kd?dBSL F? $^ux~G?xP̖hةr>PK!ǤWpppzpd_sym15_31_md_pywtCoeffs.npyNUMPYv{'descr': '?Ś?N)߿(v7?%+05?§:?`:{?yϜE.?U nݹ?gSvL?[r9ݖFw?kHSUz~3$1?D(G>PK![ppsp0_sym15_31_ma.npyNUMPYv{'descr': 'O^N_ѿ!!~uϿkRT1?@\?QDolbHID m nv@J Dq=!-iT0??2v~S?=er?3w?R j?tAk?PK!t -ppsp0_sym15_31_md.npyNUMPYv{'descr': 'q?$|w$?)J?ՋO)߿|7?ù&.?J8;?(뒏?qGd?7`?Kei?=:8% ?ݲ)#u?*wӕP`ֱ$?B T)_:ȼĈ?^?<<?PK!ppsym_sym15_31_md.npyNUMPYv{'descr': 'lƉ?o ]wܿ&?l(xO!t}ѿJ&~uϿv.f`ῗ`N?}RmA?9GtnrFtK5r忎n1ޙ k῰윹y}6en߿3mA!Λ #׿ g?H?$[=PK!iyppsymw_sym15_31_md.npyNUMPYv{'descr': 'iI?xUNO??(B?-z3пPK!?uppsymw_sym15_31_ma_pywtCoeffs.npyNUMPYv{'descr': 'lƉ?]wܿS&?l쿶&xO过t}ѿ&~duϿ`.f`g`N?۹RmA?tnFt쿡K5r心n1ῌ kG윹y}忰6en߿.mA" Λ #׿ g?=?%[=PK!{(`ppsymw_sym15_31_md_pywtCoeffs.npyNUMPYv{'descr': '?le=?Y??PK!ۍRppppd_sym15_31_ma_pywtCoeffs.npyNUMPYv{'descr': '?fe=?Y>??PK!Kppsp1_sym15_31_ma.npyNUMPYv{'descr': 'HҁPK!Hf2ppsp1_sym15_31_ma_pywtCoeffs.npyNUMPYv{'descr': '3w=WῇIpп*={SPK!i ppasym_sym15_31_md.npyNUMPYv{'descr': 'pп"=4SPK!6c(ppasym_sym15_31_md_pywtCoeffs.npyNUMPYv{'descr': '? C?d7)߿|7?G?v=?5-}?6p`I:C y?c ?^J(?5,Q?濎M}AP߿u8_QMxݿ䛖֘-z3?PK!fZpp asymw_sym15_31_ma_pywtCoeffs.npyNUMPYv{'descr': '0 ?#8CQ&l݉? C?Q7)߿(v7??v=?*4-}?óp`5C y?Rd ?2K(?,Q?lU}AP.߿ݳ8_IQMxݿ4㛖֘-z3?PK!Gxxxzpd_sym16_32_ma.npyNUMPYv{'descr': '?Ml]Ŀ1 L?uW"u|?{K&V}v(?=qaPK!Ɍxxzpd_sym16_32_md.npyNUMPYv{'descr': 'PK!z xxzpd_sym16_32_ma_pywtCoeffs.npyNUMPYv{'descr': '?XBl]ĿS L?r"ʗu|?;K&V>^v(?]=qaPK!6xxxzpd_sym16_32_md_pywtCoeffs.npyNUMPYv{'descr': 'PK!^ } Ҫ A7?K@QZmuZnr?Ji +sv?D[Ъ`?qƿƩ0 3-??[F? v?}j_U?"}[?|O濎ʈ?nciβ/5x?' }?cI?c@t"ƿ]ex╿ ?r섿-6l?!$TJ`?2޾PK!؂xxsp0_sym16_32_ma_pywtCoeffs.npyNUMPYv{'descr': ',x@Y'Qַ@PK!/|xxsp0_sym16_32_md_pywtCoeffs.npyNUMPYv{'descr': '? } A7?0QZ rZnr?i *sv?ZЪ`?nƿ0 3-??`[F?h v?j_U?[?ZOۏʈ?hci㿈/5x?}?!?׈@t"ƿQ]x╿om ?)+r섿26l?,!$TJT?$2޾PK!xxsym_sym16_32_ma.npyNUMPYv{'descr': '?Lv>/?)!U?k1ռ?|Oր1?+ ܢ.Q?)C%?UWU.#{?|~W:ؿ/i?"W8qA?~yh,?O]Fu*?>ÿѻ?PK! 2Uexxsym_sym16_32_ma_pywtCoeffs.npyNUMPYv{'descr': ' mRe?SOr?mO/oȿ1.lv*?Q8?gf>?Kv>/?!U?z1ռ?ZO;n1?K% ܢQ?C%?CU.{?BW:ؿ.xi?CW8쿩A?jh,?<]Fi*?>ÿSѻ?PK!1xxsymw_sym16_32_ma.npyNUMPYv{'descr': '> ߱?^B? VEwͿ_@u>>'/؋׿MR~?[{8?FJȿXw 8?W?65?IOXh?'ܪ翴s ]׿C)'J??J?{b?J*J?=?O?p?~dϿRD \FqjK?-E?PK!N$ ߱?B?V&wͿL_@u`3'/؋׿~MD~?}8?EJȿw 8?W?f?2OXh?Aܪ8X ]׿İ)'J??j?b?J?H?#O? p?~dϿD \ jjK?E?PK!rxxsymw_sym16_32_md_pywtCoeffs.npyNUMPYv{'descr': 'R?ZO?Kf<%~?5 8?Ty`GYR?R-ؿy3]{ђ?eXq?,?G ɾ? 1? uCS?>R?PK!xxxsp1_sym16_32_ma.npyNUMPYv{'descr': 'm? wUPK!&}per_sym16_32_ma.npyNUMPYv{'descr': '1̿P=%T|һ ? AD?W]Rȿ:yV7?W?6%L?62h?|IG׿X?y*U{?,?#,?ʧ}^!п3/Uy<>HNZ?|lOPK!ˀ^.xxasym_sym16_32_md.npyNUMPYv{'descr': '1̿A=%Tmһ ?AD?6]Rȿ4yV7?W?6$L?2h?2`IG׿ X?m>U{??{#,?2}2пUn<{ߏ ?E|?N=! mڿ<}?PK!QU-xx asymw_sym16_32_ma_pywtCoeffs.npyNUMPYv{'descr': ' mڿb <}?PK!AE؀zpd_sym16_33_ma.npyNUMPYv{'descr': '{vkI?7jI e?7s뚿Ьլdu?**%?NY0 Nz3+Oܿ=!ϭ?;f־PK!zpd_sym16_33_md.npyNUMPYv{'descr': '^wG#/p6S?6",xߡRsՕ?r?JD9ÿbvdaп;7"o?cd]->RI"(?datD>? O?6!em?oҘKE뿬Wf Z6#?ꨑ=?. F|?BT?: SocFߐa?<# P|\jqa2?eXXdAӍe>PK!zpd_sym16_33_ma_pywtCoeffs.npyNUMPYv{'descr': '~ƄuvkI?iy7j!e?es뚿Zլdu?Ä*%?CX0 z3迆+Oܿ$BO@Zʆ?[f7? LnGY͍G׿s;&&a?RcU?hD?BUp?A`?F&?TjC?qԅ?C?ipsݘ5X?_?E(>=$ϭ?ރf־PK!z7zpd_sym16_33_md_pywtCoeffs.npyNUMPYv{'descr': 'wG#@p6S?y3",xRsՕ?d? D9ÿbvdaп-7"Go?/d] >R㿇XI"(?\atDe1?O?em?!aҘ>E1Wf(?6#?Ѝ=?]IH|?Ȉ?a%:BSocWߐa?X(# Pejqa2?srXXdAe>PK!Ǩsp0_sym16_33_ma.npyNUMPYv{'descr': 'v?c-???NZ?b?a? ha?PK!tsp0_sym16_33_md.npyNUMPYv{'descr': 'W9-Z`G?>Kn 2\C?#&VLSѵ?J}^dԿczcx,̿x/ЂtWR?dP2TҌNȵ,?|?>?)IZ?+ ?gn]hڤm[:tvm 9X+?u ?~2ȿ.~?4ρ3P|?Zb>b=4W0A?Ʊ^]x>&v?hc-?Y?Ӧ?PZ?b?a?ha?PK!(sp0_sym16_33_md_pywtCoeffs.npyNUMPYv{'descr': 'l9-kY`G?:n 2\C?#&XLSѵ?q^dԿucx,̿k/ЂWR?1Q2&HҌN㿏ǵ,?t?e1?)IZ? ?n]cͤm[Ńv$9X+?(u ?3O2ȿyV.~?ρ3{P|?b>bW0A?^](>MmPK!vsym_sym16_33_ma.npyNUMPYv{'descr': 'Zh?v r7?~}?(ځ?:ڗEܿgi^O#ܿ?)IZ?&?y~h?u!Ws?3h?4=orcǿ;t>4? Rbo0Wuyy?jEF?ݧ@J&?B%wdfPK!yo sym_sym16_33_ma_pywtCoeffs.npyNUMPYv{'descr': '\Zh? rd4?fu?Ɂ?@ܗEܿYr*O#ܿ$am ?J"A?m0)? LnG濑4 ;׿8J4?sRbNWuyy?oEF?@J&?XB%jodfPK!*l܀symw_sym16_33_ma.npyNUMPYv{'descr': '?mZ,c?QT?x/ =e8뿼-P⿏.x#?h`F? ֋p18N?+?ĨCؿ2'"뿳Q yX?7`v?D?PK!ΞAsymw_sym16_33_ma_pywtCoeffs.npyNUMPYv{'descr': 'CY^4?1-A#sYVFm?A4?xqEn\Ͽ#v8ܺA{g;D?׾naiM!L۩?P?e1?Y,c?T?3j/ =e8s=P⿎x#?hxh`F?֋p1N?M? Cؿs"H y x?`v?PD?PK!ppd_sym16_33_ma.npyNUMPYv{'descr': 'ؓM2?'e Kk#?3n =>?O"Y?\?X ]X?IX箙?Ϡbm?K[-C U ?q Rb?j]?rCYl۬? `H̿,?8f_=kԿPK!BqXppd_sym16_33_ma_pywtCoeffs.npyNUMPYv{'descr': '[1?Ez-?[?ll?p\֐lP9bʹ?[A™fBHPyLC@ƗLIfPK!e ppd_sym16_33_md_pywtCoeffs.npyNUMPYv{'descr': '?) LnGCzME׿NX'..7?J"SN? [?`Q?׷s6??t,s?w^^;?KY\ h82Bs "%իoq <:c#k諘RPK!rqusp1_sym16_33_md.npyNUMPYv{'descr': '?eQ??=0wo?"1gbjMw?:ÔAp:_O?,=biȾx#=>tk?|ͼPK!Bmsp1_sym16_33_ma_pywtCoeffs.npyNUMPYv{'descr': '&>? LnG濅\ME׿EH'\ .7?sJ"SN? [?_Q?zs6??wb,s?];?\ hAC2Bs %"%ګoqEA:c#RPK!Itsp1_sym16_33_md_pywtCoeffs.npyNUMPYv{'descr': '}|$5U?. 7i&pT㿌=L?He1?/eQ?y?K0wo?f`"1!djMw?9h9ÔApߓO? :;b7iȾ*#=>Dsk?@K?Fck^?{b1(?= ??Gm]?B#ڛ2k&-y6IӉJDR(7ѹtf8Lǿ?!;D2l?PK!ZNasym_sym16_33_md.npyNUMPYv{'descr': ']dd?G)P8Ű5YV£?eL>? C? '?A&ßKj"X㿟4?N ?[?4ѷaj ?~+ҿ50U!U!0[)$?"?PK!Ibasym_sym16_33_ma_pywtCoeffs.npyNUMPYv{'descr': '{hݿ,$#Bt S?E? LnGT׿-}&忚`>K?ik^?e1(?r; ??/Gm]? B#俸ڛ2k3,y6ЉJDR7ѹ78Lǿ? ;DHl?PK!~kasym_sym16_33_md_pywtCoeffs.npyNUMPYv{'descr': ']dxd?rP8Ű5Y㿄£?weLe1?C?C '?R3&ӶK1X4?3 ?G?qWѷݹj ?Zh+ҿا5(U!#!A)$?"?PK!|-ŀasymw_sym16_33_ma.npyNUMPYv{'descr': '*˿D`d?zˌ- @ |?,K?J@ z-l ʍ?Q.Grl| Y$ܿhtUb?G+0?) LnGCzME׿l&nR b?dEY?ŀX-?O? ?>HƱ?{^k?N'>uY?Pܾ?@{?K9?TƤ??5Y?wr@PK!*asymw_sym16_33_md.npyNUMPYv{'descr': '?eQ?Mh?ȯ4 ZQ꿶"EINͷ?q߂?J??smoK/)?a?- @~H`Kv濇DPK!,5 asymw_sym16_33_ma_pywtCoeffs.npyNUMPYv{'descr': '*˿`d?ƌ- @ |?I,K?J@ zl ʍ?.Grq| ܿPtUb?9+0? LnG濅\ME׿c&応X b?jEY?"X-?rO??@Ʊ?:^k?G$>uY?3cܾ?nJ{?K9?Ƥ??1Y?*sr@PK!׋& asymw_sym16_33_md_pywtCoeffs.npyNUMPYv{'descr': '_>HxFA&yj?H\pH;ԫ?ZI[ ?RI?8yqdοBܪb~9톿 z#?( g”?K%?aR?{$?Uÿ';?˱^6d/? Rm?2MLտl?v6HĘ?(SQq6SQ0KofYM:?\>=FP|>PK!Uوzpd_sym17_34_md.npyNUMPYv{'descr': '?bS~iY?y2i~⿰4OHM?~q~3+Uڿ!UVu ?%0֪Z?Θ?1ʰPK!4zpd_sym17_34_ma_pywtCoeffs.npyNUMPYv{'descr': '_>j xFA@&yj?m\pH86;ԫ?_[$?NI??9yqdο'ܪr~톿*z#?X g”?.?R?PX$?tÿ 꿅1FP|>PK!3:9zpd_sym17_34_md_pywtCoeffs.npyNUMPYv{'descr': '?j~iY?k3i@~X5ON?{~<3+Uڿ9UVu ?7֪Z?t?װ%>PK!sB鸈sp0_sym17_34_ma.npyNUMPYv{'descr': '= qF#BzV? |;}yqX?r'Ry ſ>?*QÞ.w:俢}|w?BR?kT)/LVڿI ~ ?%0֪Z?yѰ?Gc?x+?ҒͶ>ڶ'Րr;#)?oسfl9;p?5gH~?4 <5pcV$${A? 5sn6>PK!΃psp0_sym17_34_ma_pywtCoeffs.npyNUMPYv{'descr': 'S@Ƅ{"?;<”?.?H?;Qw?uYǷÿer_*?lڅGo?r9m*;?٘ aujiy.c&꿦82RuV O 1W꿬dmVPK!sp0_sym17_34_md_pywtCoeffs.npyNUMPYv{'descr': 'q qF#BzV?e;qX?WC9\3I?d'Ry ſ>?(Q.w:俱_}|w?KKR?nT)LVڿa ~ ?7֪Z?Ѱ?Uc?y+? Ғ꿒>_'ߐr5)?oس8Cl9;p?_H~?<5pcΓ$${A?Q5vn6>PK!r52sym_sym17_34_ma.npyNUMPYv{'descr': '?ӳ ˿"®?H6T8A?vx߿6K@)¿n ??KL8?PK!i_ӈsym_sym17_34_md.npyNUMPYv{'descr': 'r~ÿ yػ꿓9M2Q? B$!uHm?/? /?ӳ ˿/"®?-6\A?%x߿K@)¿¥ ?PSL8?PK!pUsym_sym17_34_md_pywtCoeffs.npyNUMPYv{'descr': ')5?/Vχ WK?IlɿXFٷU? ,&[Xޢ?E'[I?P_zAïYڿZ ?%0֪Z?+ߩ??Kcb?RF?{w)5?CVχ "WK?VɿpFٷU?$ ,&ʓ[+[ޢ?`[I?M_zïYڿ+Y ?7֪Z?=+ߩ?o?Kcb?։F?cWѡ?X4i \Hk;{?4jqi?`SNf?q( 9~rgzWڿ ?%0֪Z?wl\?a?T?X;O>ܵ1pN>/g 50_ c?Т;ۿ~?j?-ks?&kqؿPR3쫴PK!Xs asymw_sym17_34_ma_pywtCoeffs.npyNUMPYv{'descr': 'i \忄;{?j޽i?֌Nf?n2 9~zWڿ ?7֪Z?l\?Ma?`?!oX;O뿎>ܵ_$pN>6gȴ5_ c?;ۿ0~?'j?.ks?nbqؿӤPR3'PK!G@rzpd_sym17_35_ma.npyNUMPYv{'descr': 'm >N~2L\?,*R5\?fr(Vp_(+?W_0fIo?*Q? 3%]*쿈C뺺?Ir?S:?`1pQ^?d| ?WI8%? #ˠͿ@E@NL?8{Z?o)I?Noh?PK!zpd_sym17_35_md.npyNUMPYv{'descr': 'PK! zpd_sym17_35_ma_pywtCoeffs.npyNUMPYv{'descr': 'n >7N~2f\?P+R5\?Ir(V5_(+?]0fIo?)Q?.F%]*Md뺺?/Ir?HShK?fm1p3Q^?NZ| ?l6%? #ˠͿ@E@RQL?8{Z?E I?Zh?6?!i.S ?y4hsp賦k?K^&GES"x+?vװYbLu>PK!Ozpd_sym17_35_md_pywtCoeffs.npyNUMPYv{'descr': 'PK!fjsp0_sym17_35_ma.npyNUMPYv{'descr': '(E[ =I?SEqwˤ1?~9?EPLA(?N9ysӿ2RW?gMr񿣃?S<пB?>` ly "3=7?{9޿O9E,?an4(=I?<Eqˤ1?7~9?PrLA(?TO9sӿqW?ZM࿓rJ?4 <пB?/` vy a:3=7?9޿DT9E,?àY?͔2ٽ] ?6Ծ@R'?PK!yanSsym_sym17_35_md.npyNUMPYv{'descr': '` 8j [$@?1kO޿ٺJ/}?Q)?^hX]?.+?ԜU { t?12[?hh ?̣?PK!0 sym_sym17_35_ma_pywtCoeffs.npyNUMPYv{'descr': 'Ί!?Q6q?PK!symw_sym17_35_md.npyNUMPYv{'descr': '?L?=u?eHѿ>?:bY࿤* tl?]пB?% ." e]WCzj?o޿ tV'N?w{?~p:բZ翢 Ͽ?3v?&IпC8?h}´~hmG?PK!ԖMXsymw_sym17_35_ma_pywtCoeffs.npyNUMPYv{'descr': 'Ή!?\6q?PK!CeZsymw_sym17_35_md_pywtCoeffs.npyNUMPYv{'descr': '?3?£u?+eHѿ4>?c-bY`@ th{?^пB?o ." }e]Dzj?޿tV'N?{?8~pEբZM Ͽ?3v?'IпR?!h}خ~:mG?PK!ppd_sym17_35_ma.npyNUMPYv{'descr': '-3b*?]7{1`߿y`2Nۿौ2?37ÿ\aZ3k)5?ZGFm3?Ax*PK!Ippd_sym17_35_ma_pywtCoeffs.npyNUMPYv{'descr': '7aC?3?3_F?'cd࿅.7Q ?f?ַ}&?ϞѴL^+<<Կͷ?sz࿚lѿr|?۪пB?| T  R=Tȝ\`??q޿ :?M3b*?T]7{8`߿`2Nۿ*2?77ÿ1Z3;5?WG翞m3?z*PK!sp1_sym17_35_ma.npyNUMPYv{'descr': '*n!?rYk{׿8/V?Ӧm࿪v=ӝn$? ȪпB?IT Wc'!݂l\ذ"D?v yP'ݿIlz?gB?2t뿺J?tÿィ?B2:Y}Ș8ds?poNYH!?`DdT&@2μPK!r)93per_sym17_35_ma.npyNUMPYv{'descr': '` 9 `_𰿛3\=? ?:޿<֎f? V6?@4/Z?PK!per_sym17_35_ma_pywtCoeffs.npyNUMPYv{'descr': 'V%6c+?i?T)PK!S!asym_sym17_35_md.npyNUMPYv{'descr': 'N3ؿ?_c˿: '=,x̣PK!δasym_sym17_35_ma_pywtCoeffs.npyNUMPYv{'descr': 'V%6c+?4i?{)PK! ѐasym_sym17_35_md_pywtCoeffs.npyNUMPYv{'descr': 'N3ؿJ?lc˿Pó: .x̣PK!ԣasymw_sym17_35_ma.npyNUMPYv{'descr': '=? 0? .PK!asymw_sym17_35_md.npyNUMPYv{'descr': '=?0?.PK!ER? asymw_sym17_35_md_pywtCoeffs.npyNUMPYv{'descr': 'fɗ3ZI?/jsqN_?84aMba r_?;;MڿX6W?8? 0н?WDTۭ*>,?L]-Tt ~v??l5Ͽs'T.ے?81? UA[˿ j{ 4i7=&TKƿƐ[?MP?)=|ֈw e?Ҝ7y[LFݘ=\'?f h =0«>PK!DĘzpd_sym18_36_md.npyNUMPYv{'descr': 'ڒ*#y@?cgOB ?V yZ?:`辿_?uh w7W?rKJP%Z}5͝(ſ}tR?7= M?i]N? TIh?-% 5y%n'q1.? 濌A?r, 7пj"(ϭ R?°?zٝ?dݔLugKV?$]T12>.'2,PK!uҘzpd_sym18_36_ma_pywtCoeffs.npyNUMPYv{'descr': 'ΗAZI?ܭjs%N_?2dMgr_?/Mڿ!6W?7S?0н?޳DT.>,?6-&zU ~v?n$?8/ϿT.lwْ?I81?` UQ^˿w 8=&NhUƿQx[?O& P?L=|w e?|5y[L=\'? h2:0«>PK!eǘzpd_sym18_36_md_pywtCoeffs.npyNUMPYv{'descr': 'H*# @?g8B ?d yZٵ?DO:`辿;_?Sh w::W?QP4%Z}뿑\Ɲ(ſE(yR?R= M?Ԩg]N?PIh?@ wX)nq1> 'A? Q; 7пݬ"(D "R?°?}ٝ? ݔLu fKV?#]T1g 2>iO2,PK!O-sp0_sym18_36_ma.npyNUMPYv{'descr': '?ǝ[?bde?'u?V7%?악?Qm ?%5Y?Re?t?w3릿4$?uNN'}?(?l5ϿEJ6Oupq? ?9iɿ`5 7iKHi1Oᅴ:AiXq￴[/|<΀@O*7!D"T|PK!sp0_sym18_36_md.npyNUMPYv{'descr': 'UJ1"'PK!!sp0_sym18_36_ma_pywtCoeffs.npyNUMPYv{'descr': '?fɝ[?Yde?BJu?#7%?j?] ?%5Y?qRe?dt?C]3릿#4$?tNNe}??8/ϿkOu,$pq?b?ѷiɿG2 翋c7LHiћO!:Aiq[/|><΀?O*7!D"T|PK!򵔘sp0_sym18_36_md_pywtCoeffs.npyNUMPYv{'descr': '$> `1 'PK!`sym_sym18_36_ma.npyNUMPYv{'descr': 'L1пPK!sym_sym18_36_md.npyNUMPYv{'descr': '|l4뫲6 _^?4(?l5Ͽ7ˀ:+=s,?L@?OH!N n/ƿ"nw꿷C Ld.%6VH=ѿZ^SmGϗRE6??m2[;(пPK!Nsymw_sym18_36_md.npyNUMPYv{'descr': '|lr뫲_^?yp(?8/ϿˀlIsl8?j)@?!!N )/ƿw꿟C dX2RH=ѿeUm￲RE6??ce2[y]7(пPK!Qsymw_sym18_36_md_pywtCoeffs.npyNUMPYv{'descr': 'M?32^N? TIh?tg|!6*ȷ!wTn#濴O/o?k=Bҿ!F@п(?Dpj ? |yN;Ŀx&P?Eo>M?32^N?PK!_Mppd_sym18_36_ma_pywtCoeffs.npyNUMPYv{'descr': 'M?v"^N?PIh?a{x|:*忲9!Tn#5Q/o?=Bҿh/!+v@пg(?EpjOF?9yiNP3Ŀ#&P?]o>M?v"^N?PK!w1sp1_sym18_36_ma.npyNUMPYv{'descr': '>dA }yq}XmIh8`8m 5Ӎ{+'?VQ>P=5򚢾0PK!D sp1_sym18_36_ma_pywtCoeffs.npyNUMPYv{'descr': 'SOmKd?D(-D??z@?@vJ @)/h@PK!vsp1_sym18_36_md_pywtCoeffs.npyNUMPYv{'descr': '>@ }y{JͿq}XKޚ8`8( 5 m+'?p P>~l5򚢾xw?y"iɿ?:A:%x2?T?Jm+? fп6ؿҢ7Lo?cN?8ޠb߿0;Tgk(@?g\GF6PK! per_sym18_36_md.npyNUMPYv{'descr': 'w?(c"iɿ=A:%2??LLm+?'җfп4 6ؿ 7LQָo?N?b߿.=Tg:@?XbHF6PK!@per_sym18_36_md_pywtCoeffs.npyNUMPYv{'descr': '? ̅ȿʿL&u?L1?PK!3asym_sym18_36_md.npyNUMPYv{'descr': 'DW9Jn'fĿ}\L?B̹rM?#(hN?PIh?h ݞ.PV寖1_} P?©֬пHk. [Bƿye*?Ԛ, ?G*aJY5?TR?d.$K00kÀҿPK!/asymw_sym18_36_ma.npyNUMPYv{'descr': '/ސ~e0[jSE 濮7D?{Ϥ\пvTHJĿrG3@ ?X@(D_$?rc*Fq nK|6?B܍T13գm?R~B| I ?_=G_?g\鏜??1?5ba&?gƿ JJ| ޿\lDz?,7Iyۿ%6QXz…B?y@?_ i?nm[?Bmջ@ս?ǕPӕn?gw?bbAbjnYB?2W%s>py% N>t9 ~q>PK!>zpd_sym18_37_md.npyNUMPYv{'descr': 'nA%[+?J Cn%s\?Ff.5瘆٫L\?x\?O!#ڿ1؟L‹໒v>?cvd2#?׹R?:?HP ҿsP$9d?-<(6a?HR?g聫5⿦r|R7Gr`?&-EX\Dd%?Q ~ͨ2>Wپj>q0>gw}PK!I$zpd_sym18_37_ma_pywtCoeffs.npyNUMPYv{'descr': '^ԕ .6?CT9գm?x]~B|I ?@WbG_?*揜?;?1? 5ba&?'gƿTW| ޿olDz?ԩ6Iyۿ:%6ZXB?qy@?i?gn[?wBco׻@zfս?UPӕAgw?5+Abj~9YB?T,2VC%s>^yG N>%9 9#q>PK!czpd_sym18_37_md_pywtCoeffs.npyNUMPYv{'descr': ']B6[+?i C*!%s\?FfE.5tø瘆'GL\?&?/+#ڿ?z؟L?.vd2뿼3 ?U]R?28?ݭX ҿ Q쿞n?U.<(y6a?WGR?E}5|In`?(EX d%?r~ͨ2>`Wپ]>q0>"Ygw}PK!Ssp0_sym18_37_ma.npyNUMPYv{'descr': 'qw ӈ4?Q!As-P;f?N[r&jgaET@?+\_ז?cE;ڿ.Ƿ{aʄ'??y%=?2WUd?׹R? ?^ҿwT7]?ь2i7.?@(L?ޓ9dg9E?vUk6l#|MT?tȂKlf_yg3?,f@M[`X>y`GaPK!O\sp0_sym18_37_ma_pywtCoeffs.npyNUMPYv{'descr': '&Yxz3Ո4?"As-Pz;f?N[rigSvVW@?^ז?ųO;ڿRƷ{`'??D =?2뿋h\d?U]R?.?Èҿxg?UN.?@(L?⿉/dBb9E?9k6lT |MT?ȂK l_yg3?ab6f@zU[`X>3G0[Bz?Gyۿ%6[X$vB?A@? ̫?%pX?dw@VJ#zN.?i<Cy[?ImfPCĿ"{=gxe})?]G?x?!C"ڿ)LPK!l?Osym_sym18_37_md.npyNUMPYv{'descr': 'z?)Gyۿ:%6F^X+sB?:@?̫?,qX?bw@arVJ忪N.?pj<1}[?,]PCĿP{=阆e}η)?H?魇?ڙڿsLPK!!{Lsym_sym18_37_md_pywtCoeffs.npyNUMPYv{'descr': 'νk+5 G?/9Y[{7g"? ?㿉~%ޤ??D?(9w|?bIS PK!Vsymw_sym18_37_md.npyNUMPYv{'descr': '2"?cm:I?zQPN|˿TUw?PK!Q*psymw_sym18_37_ma_pywtCoeffs.npyNUMPYv{'descr': '翑νk忣G?9Y[g"?y?~?D?|D?Bw|?V`ISh PK!DS=Ƞsymw_sym18_37_md_pywtCoeffs.npyNUMPYv{'descr': '"?U]R?k?l7ҿ'i`J>?62DR-?{/?kRs*'JGK!ȿ̆Nۿ,/`;y?42"?NJdmI?`qmOKp]L2l??>3?y??Aݱ&?ڱƿ}-x ޿i fHz?1Jyۿ%66߷~XkB?2}@?M#?Ņ/K8?*U&- m]ry/?һ~^?Oڿo \}n:9ݲA?#'@2뿭?׹R?-著?#7ҿnm쿈r?b$G\Q6?ڵ5?2Je$&ǿX@F$翦.?G?`W?5? .2u?!n M ޿PK!iSppd_sym18_37_ma_pywtCoeffs.npyNUMPYv{'descr': '?5~^?3Oڿը \}俬9:A? @2L̥?U]R?;N著?%7ҿ om쿀kr?bv1\Q6?ڵ5?Le&Y ǿ3@F$h.?G?Q?_a5?q2u?V2M ޿PK!}sp1_sym18_37_ma.npyNUMPYv{'descr': '>? 0?Zy4ʗ?|.Q v}s忓h?2?eޘ'鴵\῀p'{ ~'sn1mit8ZqsXM FPK! sp1_sym18_37_md.npyNUMPYv{'descr': 'Cgw?F$y~>y^?ʉupA,>Z m?շѠV) p?B+?ݧڿ6a俅X{CJ?12뿮?׹R?9c?Lnҿ'/4?@&va2g(?u ^I?l= ʂnFZs? b,Sָ{?~f7K?W1%$^}>ܻ0n%@寤PK!sp1_sym18_37_ma_pywtCoeffs.npyNUMPYv{'descr': '>?0?7r5ʗ? 7.bNx}s ?2?ݲ'鴵\Foy ~B's:1mi7]7ZLrXM j<PK!.sp1_sym18_37_md_pywtCoeffs.npyNUMPYv{'descr': '5w?P$y~>y^?&upu">Z m? շZ) p?"+?ݧڿa俉z J?ӣ12L?U]R?Za?Nӣҿ>04?A&JIg(? ^I?;@?mB Zs?:'SW{?k~f<07K?1%4^}> Jn%t:i5j|Aaqտ-^2?p;?dk2\?M@xj^^햺hc?=xPK!Eʙ>per_sym18_37_md.npyNUMPYv{'descr': ' o?G?yMc|?Th)w֖Ŀ |2!ߍ?L-o?PK!Šasym_sym18_37_md.npyNUMPYv{'descr': ' o?굖G?mc|?*7g)|֖ĿS~2Vߍ?o?PK!̠asym_sym18_37_md_pywtCoeffs.npyNUMPYv{'descr': '?v9?]7?(8 f=9Z@j?zDzп:g[?t|?*$̿\C {ry׿F  ⌽l?{9?PK! asymw_sym18_37_md.npyNUMPYv{'descr': '?ŴcK$Up3?|?JK)?"r/ޔzEQ}8ֿnl1m?dRu?MDfٿI٣俑WȽ9yV/? v1r?׹R?9c?Z[ҿ' $=?e.w3qY?|h?>U ȐMz??tD?2d; ==п睏Bp?푇Ϳzd?] }p?SUwPK!5ˠ asymw_sym18_37_ma_pywtCoeffs.npyNUMPYv{'descr': '?=w9?ѡ7?(8翨yh=M:j?fyDt}п$d[?s|?x$̿\Cqy׿n  ⿡ɻl?a:?PK!W] asymw_sym18_37_md_pywtCoeffs.npyNUMPYv{'descr': '@\kx,k?נErI8.8Va?0\?sWcb-?s4;鿴A?=ʒr z?_CڿX4sU?61.?Tb?.hdz?RY?GTF?H@LjyD?a宻ȿ0m_arʿ (9qr?-+oK?60cxE?fOBOr?i,p)$kD?>˄3F>PK!';Ȩzpd_sym19_38_md.npyNUMPYv{'descr': '-Sұ*nzGS?@{'}~b ?&L{`Ŀ#?a:5l^F^?.Hx?n iBa/Ya6e!?,z v?7t)f?yL_?ܸ?_.>?h?x$yvxJ׺?2|?^L}Ì &eJ@ZI3ο؝A?)?pĿ[u_?h9*u?TV(W)&\Jb1?^9yZBr>PK![zpd_sym19_38_ma_pywtCoeffs.npyNUMPYv{'descr': 'Vk辈k?PK! zpd_sym19_38_md_pywtCoeffs.npyNUMPYv{'descr': 'ұ*~GS?{'}~ ?j {`Ŀ?i95l^ۻF^?.HQ?ikMb/Y󿡣a6_ !?2b v?&)f?SK_?y?_.>?/h?+siy$yOJ׺?0J|? 6{Ì &eJ@gI3οS&؝A?S)?pĿ}\v_?{;!*u?(TV(Wv'\Jb1?ŗ9yaBr>PK!'ĝsp0_sym19_38_ma.npyNUMPYv{'descr': '?(;ˑ?y'w1?`d/C?6+{ȗIlf)@Y8ӳP?'1ÿmƕ?AˉiǯaUq?PK!.qsp0_sym19_38_ma_pywtCoeffs.npyNUMPYv{'descr': ' u;%Ǩ+ 3XG ? ey?|f?SK_?-?'ş7>?;@;ˑ?_w8ʬ?h,C?"yȗw}lf)@Jӳ(?E'1ÿ?oƕ?BˉXaUq?vS-w2ݵ+?rՂx5>PK!3Hsym_sym19_38_ma.npyNUMPYv{'descr': '?"M{?b i٬7?rٟ0?4O>$z@L,^DTb9{\?! P2V?0Cc޿rv泿0͛Mb?9ANPK!Dsym_sym19_38_ma_pywtCoeffs.npyNUMPYv{'descr': '=?KOvmo v@5kO[!?hxw?q[f?SK_?~?¦>?Y{?W iwڈ7?G֟0?GO̹$z@ؼM,^?[Se{\?" P֟V?Cc޿(l泿͛&b?ANPK!msymw_sym19_38_ma.npyNUMPYv{'descr': 'Z7bcw`:? "5Xn ?yƼ?V+ʴ ?u 㿼P6H'i;w<#?Bs?86f?yL_??!8=?z4ﱟ?Rσ??mjD?-/k?\le7@CvX1?Nʏ?3xv?AȽV_?u?+dy`;?(F-6?w$d?PK!)*ysymw_sym19_38_ma_pywtCoeffs.npyNUMPYv{'descr': 'k?Թe7@mX1?dyʏ?v܌xv?ȽV^a?\u?q`;?E06?d?PK!~7ppd_sym19_38_ma.npyNUMPYv{'descr': '?&?z!!Rt\7x??538@ַe$j?>72R$?C6+‡:PS<^S#?2r?@f?yL_?z5ǩ?$%a>?&?z!!Rt\7x??538@ַe$j?>72R$?C6+‡:PS<^S#?2r?@f?PK!kXppd_sym19_38_ma_pywtCoeffs.npyNUMPYv{'descr': 'Hc?-Q@1?? kYPdz?FY?f ?1.@}E?KhȿPt2̿OeC&NM?dSLʒ?L+?C k:ۿWrg2?݉Yٿ>Hc?-Q@1?? kYPdz?PK!-kppd_sym19_38_md_pywtCoeffs.npyNUMPYv{'descr': '??+ĉ!Rt7x?,נ?cü3ݪ@ɦf$j?-92ߊ?I7+‡8PS??+ĉ!Rt7x?,נ?cü3ݪ@ɦf$j?-92ߊ?I7+‡8PSJ$^sJ?Q$Kv}s]@?P^sJ?!Kv}sI]@?!_S;?d5ͬ`㿜l]?rw.JPw?w.bJI`WM-/FS?ꨥ}?f?SK_?m6G?ӟմ=?)Z?Tey?qm?hԞ S[p@a^ֿK5(?7n3ĿGD? pk?lCdoHY0?/3SھPK!Xcper_sym19_38_ma.npyNUMPYv{'descr': '72R$?C6+‡:PS<^S#?2r?@f?yL_?z5ǩ?$%a>?&?z!!Rt\7x??538@ַe$PK!aEi+per_sym19_38_ma_pywtCoeffs.npyNUMPYv{'descr': 'Hc?-Q@1?? kYPdz?FY?f ?1.@}E?KhȿPt2̿OeC&NM?dPK!kUper_sym19_38_md_pywtCoeffs.npyNUMPYv{'descr': '??+ĉ!Rt7x?,נ?cü3ݪ@ɦf$PK!4֦ۨasym_sym19_38_ma.npyNUMPYv{'descr': '-/?Y<%y?2+dz?FY?b?l-v @G&B?3ȿt `LΆ72ɿ@GQ̵4@g?4tP׿xRdݿZg ?QnhŶ?EUBd6mPK!7hasym_sym19_38_md_pywtCoeffs.npyNUMPYv{'descr': 'l?.@SG?*)ɿȺ6"`X$οK dkՏ?ÏOkb߿r;&?RX/u?\}R鿦/}n@g\=?tM-@w95X?"̮I^PK!9ZEasymw_sym19_38_md.npyNUMPYv{'descr': '?YbQS|ݿ}l \?/]鿩rbc?uῧf+V+R?23l~? f?yL_?1r?x>?q?pL/F?gs,?8!ԴFS @/tF/1?~B-N/Կ3yO4or$ǧ?)~}6g sVq`ʿC~7߿2T?ܿPK!֪j asymw_sym19_38_ma_pywtCoeffs.npyNUMPYv{'descr': '5X?(@I;^PK!ۢR asymw_sym19_38_md_pywtCoeffs.npyNUMPYv{'descr': '?Yb𿯢S|ݿl \?b]鿸abc?cP u῕q]t+Z+R?8l~?B" f?SK_? pr?ٽx>?Qq?YUL5u?&ds,?ѴF# @t1?8N/ԿK4leh$ǧ?Z~}6dP"sq`ʿF~7߿ |:ܿPK!jСzpd_sym19_39_ma.npyNUMPYv{'descr': '_6@^r#?8r SH-inJe?r*Y"ȋ?{(V,|rAڷsaV?"F?hdtJ-?1a$ 㿬)xY+?"?M4CtsIPM?-yr?.ƿECH4o?AW?0G~!ɿ+?,St?y(Z tӿ>e?P*òp6?6͸zlzoV?e!`,p~>}PK!! Vzpd_sym19_39_md.npyNUMPYv{'descr': '@yAEPK!̩zpd_sym19_39_ma_pywtCoeffs.npyNUMPYv{'descr': 'B6@ꯕr#? SHXnJe?Y"ȋ?'V-|rKڷd`V?퉯F?gtJUK-?$ M )uY+?&?r)1C{sMM?^~r?e.ƿ FC̙4o?MW?g ~!ɿ(?#]t? %[ tӿ@e??*òo6?zJAjzoV?|!`,~>_i{PK!ưzpd_sym19_39_md_pywtCoeffs.npyNUMPYv{'descr': 'DEPK!>sp0_sym19_39_ma.npyNUMPYv{'descr': '?2>(Rb7? innO# a+?|۰?M4CQsbQ{A`?8N?B]ƿAi U)g_$?CiQh?JhŽ3ſQ, ?#zdn?_s,:뿓fJUdf0ЕB ~ / pנ"~bxPK!m[sp0_sym19_39_md.npyNUMPYv{'descr': 'A!? ʝqҿ[+h3[?x3r?! Y濢τ?5vTп^,?hEERC#cBݝtܿQ?ؿ$͐\Ϯ?ҩٖ?p[[?d^ f?K п괷cN 3Ǵ?2YW^Ώ?-]ז$싿 & f?>oBAp!?CN\`S6>DPK!ڰsp0_sym19_39_ma_pywtCoeffs.npyNUMPYv{'descr': '?;>jb7?tܶi㿷]#aa+?۰?r)1C$8QshxA`?&8N?]ƿ@Hig_$?}iQh?kŽ3ſW+ ?,dn?H_s:#EJUo0Е* /pנ"~bxPK! QDsp0_sym19_39_md_pywtCoeffs.npyNUMPYv{'descr': '|PK!lsym_sym19_39_ma.npyNUMPYv{'descr': '-+?XC?M4CQse^?@Vg?ڐ Oƿ?Ř| *ǖ ?~}?ӹ?&!Q0R$P?LV׿ K"߿O?gLZ~?C=, 9_?1CLn?E濭h?cп2f[?Wr{BݝtܿQ?ؿ Iˮ濛%?K%r?.\??*?Vk3ĿkIc V!?Aә?ie?g5A絿g#diѿⶨ?%W? Ƙ?rNR?PK!wEsym_sym19_39_ma_pywtCoeffs.npyNUMPYv{'descr': '-+?uG?r)1C$8QslQ^?9EVg?Oƿ?Ř&n ǖ ?E&~}?VIȿ0&?ݩa0|ֿp*V?Y>'2sɿ[n?`r,!?:h0!#wdy?c?PK!Asym_sym19_39_md_pywtCoeffs.npyNUMPYv{'descr': 'ӹ?6 Q%P?SV׿E&߿[Q?Z~?&$+ _?BLn?x@?Pcп򿫩:?@sqVt?6>?kEpd?i!꿣 ]h8?USϹs9m+?u?M4CCjsz8?ݦ8;=?y0ƿU/=뿨xY,? &΢?Zxο#Ł]5?F>?d9p?i՞?Xſ[n?HiٿlēX%=c?)?j3WÆPK!djsymw_sym19_39_md.npyNUMPYv{'descr': '9?rVt?%>?Fpd?Pl!꿻>]h8?S:Ȯs+?z?r)1CJ^js8?2=;=?{y0ƿ/=f3xY,?2΢?xο3mÁ]5?-I>?9p?Br՞?cYſx[n?cBiٿvƓX'{=c?? Z2WÆPK!symw_sym19_39_md_pywtCoeffs.npyNUMPYv{'descr': '@E?dو[& ?owÿ;u ͤ>¬?[ۃ?iNf(7?@@ ^vy9ؿ~- Kտ@{N\?xE"@ z?PK!|3Jppd_sym19_39_ma_pywtCoeffs.npyNUMPYv{'descr': ':)mƿ@)ޕ?pyʾ{b)ݿaxi?[ԿM"?m,?un1ؿmq8چ?uC?Ԥ 2'(?Jl'㿷hn={b[B+?0?r)1Cp+spرX?`?<ƿeSh?K(? \Wɿ?yYhb?fY?~)SCu8?8q;?\,׿;?hg?zPPL0 ʿPK!_Fppd_sym19_39_md_pywtCoeffs.npyNUMPYv{'descr': '?ۃ?m2Nf,7?|@ ^%5y9ؿN. KտCL{N\? E"@z?PK!D1ذsp1_sym19_39_ma.npyNUMPYv{'descr': 'TDhA\;CPK!w%jsp1_sym19_39_md.npyNUMPYv{'descr': 'B|:C}uE?ėJQo#L?wSDKK?xtN )?247Q?(mڐ~<忣Xʒ?*Β<п%1M?s:MoDBݝtܿ]ﯧؿW(Hߔ?Gy?^n93? 9-?Vڿv ؿF!Ѯ?gQ?s)Z?&nwL9]?؃1bIΓM?dIɎ)yl>\J-ٶPcPK!#tsp1_sym19_39_ma_pywtCoeffs.npyNUMPYv{'descr': 'WDhAV;CPK!isp1_sym19_39_md_pywtCoeffs.npyNUMPYv{'descr': 'q6{:C},MuE? JQoqW L?="S3KK?gN )?j4m"Q?)nڐyr<忎Xʒ?oВ<пT#1M?:DB*xtܿﯧؿǽ(Ƙ攐?iǕy?gm93?;k-?GN#VڿSؿ'I!Ѯ?ɤQ?,%Z?wL9]?;1bkNΓM?KɎ)`l>;+ٶWPK!%#  per_sym19_39_ma.npyNUMPYv{'descr': 'q?ǎo ƿT-s7pp?:j? %\&¿ ?_TK3 ?PK!R*  per_sym19_39_md_pywtCoeffs.npyNUMPYv{'descr': 'V?S 3͖њ鿵\RPK!7ðasym_sym19_39_ma_pywtCoeffs.npyNUMPYv{'descr': 'TogſDRphRLAf?b Cſ%}ʿf :?KZV?v 34wњ\RPK!3Xasymw_sym19_39_ma.npyNUMPYv{'descr': 'Z>:[՝3./!PK!bQasymw_sym19_39_md.npyNUMPYv{'descr': 'E?cdc$?Q0F ?z,ܿ Py[ֿe??[PMͿ{?կmf˿Km#?gzڿPR0?lo'?}ŕ?X 2&?PK!lװ asymw_sym19_39_ma_pywtCoeffs.npyNUMPYv{'descr': ':5՝3%#0!PK!k+ asymw_sym19_39_md_pywtCoeffs.npyNUMPYv{'descr': '5Ըzpd_sym20_40_ma.npyNUMPYv{'descr': '0![yܩ+?~PcL-h?23K?էu 9A?5ly?C*Fӊ+~}Ms@L߇#V}Iᅳ*p?um?"L3?h'MrzZ<ٿ5?ל oz?dJ\`n?q_?u0j`ļ?o@Ƅ@?RXXw8l?®<@x<X?#92?X) ?pIˋ>PK!yzpd_sym20_40_md.npyNUMPYv{'descr': '~e L5?uxXVN t?U돿%?([48?V}?#e)Bm?L]? Ї?7{i{?N1Ŀ'xt?x`k?{)} T1?Ǥ)M?cL?^t̸k?&(hVd)\b?򍀶O? GſM՝?D s+C+p?B OKՊ`'?e-{, > jCu}PK!GZzpd_sym20_40_ma_pywtCoeffs.npyNUMPYv{'descr': ',![D֩+?xJcL-h?!nK? /u9A?mjcy?StCӊ$}}zJs@)ڇ#V}I@o?br?4pL3?$Mrz2=-mٿ>ל ᅢPK!(0zpd_sym20_40_md_pywtCoeffs.npyNUMPYv{'descr': ' L5?snxXoJ t?O돿%?[}8?WR?a) i?L]?ijЇ?Cf{?/ĿKڒt?俷`!?W'} CS?;)M?cL?,<^tk?Z˯&f'hb)+rb?SщO?D@ſ՝?s=C+p?uB OK>`'?l_-懕, >(Cu}PK!DD:sp0_sym20_40_ma.npyNUMPYv{'descr': 'džٿ[ڼ^ XS0b=q?%;a? ,@;aIf?!`Uuj`=2׃:/t W x?бt|GZTPK!zոsp0_sym20_40_md.npyNUMPYv{'descr': ')kB? .7@dw `/?{[{rT ?cZ1K?Ӧ?3&lDžOu?^LB?dPK!kf_sp0_sym20_40_ma_pywtCoeffs.npyNUMPYv{'descr': '㵪kCYB?13@d`/?7{[Q ?M1!?i܀Ӧ?&E"lNOu?xC?iPK!?p6sym_sym20_40_ma.npyNUMPYv{'descr': '" ?*{s .?dnӺ?yU?.0J#3?h'MrP3929ٿ}Q N"lTۇ??CՍ+?3BF?;\Zo?;?8[l0㿷BJ?:uFgڀ ῅ PK!Mcsym_sym20_40_md.npyNUMPYv{'descr': 'm? _@ƿCݮc 8@AT*IfD:>6[?ٴ?f3?h'Mr 꿃{!ٿ{} ￀g">?mQ,?6 [%L =R?qn!*"?T4ӿc'G뿜45v?JYkR>?glƖ俌5L*xkPK!xpsymw_sym20_40_md.npyNUMPYv{'descr': '?mo?g?[ d)(?Ŀ֐?俸a`Bv?{)} U? 2|M?3bFfM?  L|?s-q8ttÙ_!&? BiW|~fcg쿴9Le?xl:ȿ_"??'?fdڇPK!2nsymw_sym20_40_ma_pywtCoeffs.npyNUMPYv{'descr': 'm?9 _@ƿڮ !8@ٴ%IDЃ6[?ٴ? 3?$Mr 꿥{!ٿ} ^g}x>?,?I [ǨL |R?l*"?K4ӿ>c'GH-5v?cgR>?!glYɖ俀L*x῏cPK!=5 symw_sym20_40_md_pywtCoeffs.npyNUMPYv{'descr': '? ?g?[dv?{)} T?rb0M?;E:WL?V^T/:?.| *꿬FQN1?FDci?'x[K?\akEaa?$o?A?W ĿJ;@俚=`>v?PK!Uppd_sym20_40_ma_pywtCoeffs.npyNUMPYv{'descr': '?H ĿI;@俒=`?W'} D?u`0M? 7WL?sR^J:?뀤|{(꿎QZ1?HBci?BTK?$]kF[aa?uF?Ӂ>?H ĿI;@俒=`?PK!AR\sp1_sym20_40_ma.npyNUMPYv{'descr': '}[Fz?-ǡ?6Ζ3?h'Mrjt9Ztٿ H5 ￑O?ۢ?{%Z澐?;]K|?9ݸEܢgZГR$'IY0A35fb:9?q鯑>4g-A3xDjU fFPK!Ofsp1_sym20_40_md.npyNUMPYv{'descr': ';'J꾤/!?t'xt a(!wh?{)} |K ?oHWM?37 J?Յ3r?.Ӊ#[2%˿@?;??-7T栉Ǩ$3}|?k[Chm HL?B#b&H1>;VڲU(PK!_tpsp1_sym20_40_ma_pywtCoeffs.npyNUMPYv{'descr': '=|"Fz?]1ǡ?ʖ3?$MrBty3tٿjQ5 !EO?>?.{Z澐?DWK|?^EgړR$'IY0kA35e:9q鯑>g-Ah5xDlU fFPK!h¸sp1_sym20_40_md_pywtCoeffs.npyNUMPYv{'descr': '

    ۙ'J꾘J/!?'t aBbwh?W'} O ?nGWM? J?>х󿊉n?.ӉC[ @%˿??;?܍ ?,T栉3}|?hXCh:GL?C#b&%ʺH1>fSVڲ='HPK!(b  per_sym20_40_ma.npyNUMPYv{'descr': 'S7 ?޲]Ab7fxI G ?t?!sg&?%aPK!&asym_sym20_40_ma.npyNUMPYv{'descr': '7 jǔ?Ne;?0??Y5ڿ~InDIvI @.Quܿ1?2?%~&3w?\~?$_ ?G??PK!CI5asym_sym20_40_md.npyNUMPYv{'descr': '?5f?A+X?,Kƿjd :Qu?%B|?{?!B 340]?%`?c7?TĿp6L?\f`n?{)} ʵ\u?[!2M?Z:_L?`)5KLԥ? ӗ1[do݃=??ʾAr@::Pt8Ef?>*<c]̿sr?}jf?FԿPK!H`asym_sym20_40_ma_pywtCoeffs.npyNUMPYv{'descr': '?>7 `iǔ?xe;?J.?e#5ڿBjDIUqI @Quܿ,[{?p?I~-LE0w?}?ڣ_ ?q??PK!hxasym_sym20_40_md_pywtCoeffs.npyNUMPYv{'descr': '?c?X?*ƿ͔jdǝ6Qu?B&B|?<{?B 3-]?T]`?0c7?ѭĿL?Q`"ڊ?W'} `u?ڕ2M?X:_L?0KBԥ?ӗxk݃V@?Ar@K::Mt8)Cf?^7@/'2V@*U@. $?"g%6Z?'Zwb/Og@C ;IKWxެ?~FG?B-ό3?h'MrywшFnٿ? .Yd">@?$-?R!v2fj?t<z?zX>%Ѱ`y$.A2줍5/5Ͽ@#sxUE?IoPK!` asymw_sym20_40_md.npyNUMPYv{'descr': '@u/@0V@T*U@w$?%6Z?oX_/Og@FF? ;I2>?ެ? FG?(ό3?$Mrmy꿷Fnٿh”? ￯Y>@?"-?W'v^fj?<z?mXM#Ѱ`y?.ԍ55o~@#m_x˗?IoPK!-e asymw_sym20_40_md_pywtCoeffs.npyNUMPYv{'descr': '4־RXT2Z?4I9A8a?IsXu*gʉ?*s~y ÿץ?pP$@mO3?F!9?_?JaY6z˺`ɿ%#(n%OO?yN? ~g0bվ?J$4x?.n a9}呰}PK!&>vzpd_sym20_41_md.npyNUMPYv{'descr': '>%$⾳ j.?UFLkI?[k?վ񆿒y*Sm?P,u3qU"?L_?+꿼;yc?U@N?0ܖn޿IT]TMN}c?˒6g%0J\L?q_Y^{:?9bn?4]?ҿE)Y f ՛Ͽ;Ϗ?2T?Pſ1Q5?ɘxJ?*t.oRS?VC3#>W ?-ԾI3O>PK![zpd_sym20_41_ma_pywtCoeffs.npyNUMPYv{'descr': '_}PK!zpd_sym20_41_md_pywtCoeffs.npyNUMPYv{'descr': '0%$⾚⯎j.?ҿ^'YZ @՛ϿS<Ϗ?T?"cPſp26?ɘguJ?\k.oҀS?C3(:W ?*Ծ jI>PK!Ʋ,sp0_sym20_41_ma.npyNUMPYv{'descr': 'M&\L uQm2? NS.p?_ 쵌Y?Vlt^zlʗۃ?-s忨0qKZPk^>v(?f)1޿qVRf?n}N(0J\L?",^῭$ J?5W?'/iҿ;µ!ɄD#v ~ҿ,D?G?qCɿ!R?? g2,`_r?|ON䈭'?)q>[Հ>yMcs;9\L Km2?GNSp?ۨ ÉY?et^zuۃ?v-s θKZIP U>v(?)1޿VGf?_}\0YL?Dm^ῃ J??&/iҿ!Ὺ̈́Dӧs ~ҿ{,D?HG?\~iCɿʭR??c2[2]_r?lON壁'?q8[Հ>{Mcs\, ?p8@t?QjM?/=`vΥ\?Ӝ5|?'4gɿɌ(ki׿,N?NH*?'?Hp&F?ӊԿPK!뷏sym_sym20_41_md.npyNUMPYv{'descr': '8L?.r9_ݝ$ٿݻY4@fVƿT3ؚX"F>꿁g ?8@Ut?ΦSjM?5-=`\?`М5x|7m34gɿ `Ɍ(4HO?lM?QD)H+?m y? t ~z(A|&?8Nѿ>V?|: @'3俽х?7J޷?(O@@>i׿OHN?`*? %Ѧ?D&F?ԿPK!3sym_sym20_41_md_pywtCoeffs.npyNUMPYv{'descr': 'IA?¤3qF? ^PB{?6j~%Z?s`:޿"05Vf?y?0YL?Dm^30;O@?LN@z?^<7mҿ>ῲU[ -ҿ=xK?s丵O?]?1?-5࿄$:f[/? sSmPK!uX symw_sym20_41_ma.npyNUMPYv{'descr': 'zPK!<(Msymw_sym20_41_md.npyNUMPYv{'descr': '48 :^cɿSʚ(T~KO?lM?Pt5?L;Ɩix?$WSKl"`?Sӿ)nEJ9~?PH~@x_*/ֿ\?!? ʿ[j?r-G߁޵+4|?A"o 8Z?l>zPK!/\symw_sym20_41_md_pywtCoeffs.npyNUMPYv{'descr': ')?t?l?"})Ҭ?H~$ԕ?osF3kT ?_y޿ɖS+ a?9^հD0J\L? ^Ύ >TG?˔?Dҿˁp'uoʯO[ڿR?'iIV?7ZyLх7?.^k?TUO.?{kn?IK>?7Eg?`A?, b?PK!ˌppd_sym20_41_ma_pywtCoeffs.npyNUMPYv{'descr': ')?,?/l?2ψ})5Ҭ?BH~$b?oi*kT ?_y޿fSa?tN9^BD0YL?M^y G?.?ZDҿoɁpOoʯW[ڿR??eIV?VR~Zy4iх7?7[^k?RO.?@tPS?^>?Utg? ^A?b?PK!<sp1_sym20_41_ma.npyNUMPYv{'descr': '@R"S@+B@D@WGG@!=iJ@PK!qsp1_sym20_41_md.npyNUMPYv{'descr': 'h0Ҿ!l, ?Qe@T"S@+B@D@YGG@!=iJ@PK!?sp1_sym20_41_md_pywtCoeffs.npyNUMPYv{'descr': 'W0Ҿc, ?:/W/β:U?dwvu}Gs?~%o^9i?}F俧:%ύFCVSb?X޿dBWwg?U;҅h7B0YL?di^UsgA? 9?Z)-ҿ1kESQjt@ֿa7M?pF?M.6kBb`?s6E)Xr?.ǤT4xQ.? cr>s?͑+gҿm3?X@Tn`~迍E? :࿤+Μ%ݕ?vL\lg:H-@aub 6ԩD?PK!asym_sym20_41_md.npyNUMPYv{'descr': 'Ӷ?40G?^+޿RD Ty[a?i&VIŷ0J\L?*&F_Wř##Ę?Ua?FXLҿk oῴ;N*$hʿN?7ݔJ?z?pM<.?V+gҿ 3?RPW@h`~迗E?a :࿺̜%Vݕ?#I\lr':1CF-@a񿐊` 6 D?PK!Xasym_sym20_41_md_pywtCoeffs.npyNUMPYv{'descr': 'Ӷ? ,0G?Id+޿RIy[a?.Bi&VU20YL?NH&F_5 Ę?za?bEXLҿʘoN hʿN?ݓJ?H=?bpM8nԿ]ZqE™?N\Dњ?tt'x?é ɷ.'m?PK!Pasymw_sym20_41_ma.npyNUMPYv{'descr': 'v@R@ު? ] ?ү @PK!&Easymw_sym20_41_md.npyNUMPYv{'descr': '1Tܿ1zG?x';?5PK!$y$ asymw_sym20_41_ma_pywtCoeffs.npyNUMPYv{'descr': 'v@?@Ӻ?s] ?ү @PK! , asymw_sym20_41_md_pywtCoeffs.npyNUMPYv{'descr': '_kPK!YLzpd_coif1_6_md.npyNUMPYv{'descr': ',?PK!Hasymw_coif1_6_ma_pywtCoeffs.npyNUMPYv{'descr': ',?PK!dUzpd_coif1_7_ma.npyNUMPYv{'descr': 'C?VЁB?60?w/?>ަQPK!zpd_coif1_7_md.npyNUMPYv{'descr': 'C?[~VpԁB?P0?]`/?yQPK!`zpd_coif1_7_md_pywtCoeffs.npyNUMPYv{'descr': '>?~n8?s*>>PK!b߰ppd_coif1_7_ma_pywtCoeffs.npyNUMPYv{'descr': '?Lxppd_coif1_7_md_pywtCoeffs.npyNUMPYv{'descr': '>?n8?9>>PK! %sp1_coif1_7_ma.npyNUMPYv{'descr': 'k鿡ЁB?ا? _?PK! per_coif1_7_md.npyNUMPYv{'descr': 'kpԁB?ا?K _?PK!h%per_coif1_7_md_pywtCoeffs.npyNUMPYv{'descr': ']b ]z?VCۿZÃ1?7?6SѿPK!8asymw_coif1_7_ma.npyNUMPYv{'descr': 'ЁB? FV?Ew?T@PK!lasymw_coif1_7_md.npyNUMPYv{'descr': 'pԁB?1FV? Fw?dT@PK! asymw_coif1_7_md_pywtCoeffs.npyNUMPYv{'descr': '-k?]v೿,?YQN޿B&羻͝Et?>1 ?RP_?}?PK! \sym_coif2_12_md.npyNUMPYv{'descr': '-k?_v೿,?TN޿^羻`Ft?L>1 ?RP_?}?PK!:ysym_coif2_12_md_pywtCoeffs.npyNUMPYv{'descr': 'UA4HKyP?PK!WOsymw_coif2_12_ma_pywtCoeffs.npyNUMPYv{'descr': '!symw_coif2_12_md_pywtCoeffs.npyNUMPYv{'descr': 'A4KyP?PK!neppd_coif2_12_ma.npyNUMPYv{'descr': 'm?p+2KKc PdH%;>m?PK!AMsp1_coif2_12_ma.npyNUMPYv{'descr': 'm?Njٿ[ão@6*@PK!L~sp1_coif2_12_md.npyNUMPYv{'descr': '{4dÿO۞H:Hiu?=PK!0>sp1_coif2_12_ma_pywtCoeffs.npyNUMPYv{'descr': 'm?]lٿ6ģo@6*@PK!M6sp1_coif2_12_md_pywtCoeffs.npyNUMPYv{'descr': '˜4dÿ.۞(Ciu?PK!E#per_coif2_12_ma.npyNUMPYv{'descr': 'kRĈ@ġ?PK!zTper_coif2_12_ma_pywtCoeffs.npyNUMPYv{'descr': 'yS?]5&꿁I޵&|J?HôR?YQN޿-*῟K OT?܌?cI ?8%PK!#asym_coif2_12_md.npyNUMPYv{'descr': '?OP+ݭп>@E#. E@PK!=Tasymw_coif2_12_md.npyNUMPYv{'descr': '?Q+ݭп?>@},. E@PK!( asymw_coif2_12_md_pywtCoeffs.npyNUMPYv{'descr': '؅_'ͪ?NB.|^ ԿyY?)%{쿺)o?lq;?^*򙨛PK!`mzpd_coif2_13_md_pywtCoeffs.npyNUMPYv{'descr': 'ҿ`u;ʙC9-zԿyδq?d"}vC?ޑʼnӿV?PK!aSsym_coif2_13_md.npyNUMPYv{'descr': 'ѿ\:y?X%ڿ'mׅMпyxEi?Y6m쿏~?]FXϵ#}5_ؿPK!8ßppd_coif2_13_md.npyNUMPYv{'descr': 'ѿ5[:y?F%ڿqՅMпy翩BFi?6m쿱?/ /FX翯#}5_ؿPK!rIppd_coif2_13_md_pywtCoeffs.npyNUMPYv{'descr': 'per_coif2_13_md_pywtCoeffs.npyNUMPYv{'descr': 'vJ߿nG[)\$mh?N?+?¢ȟB`ϿP N(p)Vv?<}xԙ&Hx`?PK!AZ~zpd_coif3_18_md.npyNUMPYv{'descr': 'PK!zpd_coif3_18_ma_pywtCoeffs.npyNUMPYv{'descr': 'vJ߿@G)\$Dkh?0?+M+?CǟB`Ͽ N(p)v?Aoxԙ͟Ux`?PK!uzpd_coif3_18_md_pywtCoeffs.npyNUMPYv{'descr': 'PK!SXsp0_coif3_18_ma.npyNUMPYv{'descr': 'A -#o>PK!v/Ȋsp0_coif3_18_ma_pywtCoeffs.npyNUMPYv{'descr': 'PK!sym_coif3_18_ma.npyNUMPYv{'descr': 'RX*LRaztczs;#>V[)\$}?d6?2;?N 3пRr\?ܿg?opt?PK!;sym_coif3_18_md.npyNUMPYv{'descr': 'V)\$b?d6?#2;? 3п:(]?ܿg?`t?PK!O-sym_coif3_18_md_pywtCoeffs.npyNUMPYv{'descr': 'E]&?QV0 @~@PK!_ߙ6sp1_coif3_18_md.npyNUMPYv{'descr': '] ??YG4^?Nz)|YοKoIp'X~?#@rPK!/F.asym_coif3_18_md.npyNUMPYv{'descr': 'oտ Ch5⿏)Y`㿦b׌[)\$bo?+?r;9tn?CwF=ȿ{6?cLMmgPK!asymw_coif3_18_md.npyNUMPYv{'descr': 'oտCh5R)Y`c׌)\$d?F?99tn?CwF=ȿ26?FMmgPK!6ٹ asymw_coif3_18_md_pywtCoeffs.npyNUMPYv{'descr': 'x/k0n1RX?i?GD9R{aEkr+="fl??h @9hk~̅JʿߋҿX~0g/&ҀPK!Kzpd_coif3_19_ma_pywtCoeffs.npyNUMPYv{'descr': '^/k01RX?yi?GDhR{JEkU+ᅰel??h @9 h~̅;Mʿ5ҿTm0Y2Ҁ9tf?PK!-zpd_coif3_19_md_pywtCoeffs.npyNUMPYv{'descr': 'PK!sp0_coif3_19_ma.npyNUMPYv{'descr': '-/ᅰel?8Kv/?=ɀ;*trZ[h[ƿc࿑U<+򿹤K%PK!}Fsp0_coif3_19_md_pywtCoeffs.npyNUMPYv{'descr': '^(ɿC߿3R@K,/62.j/:> ?53x3y2?r4e+X~^z$?H ԼPK!0per_coif3_19_ma.npyNUMPYv{'descr': 'PK!88zpd_coif4_24_ma_pywtCoeffs.npyNUMPYv{'descr': '@k&>C F?E6f'2_Fq? _X?Gֻ?> SN񿜘Mh쿜_V¢׿x t?6?F?] - 꿽?￷aA\࿯L͚!Ln?-Jt?F-nCPK!j88zpd_coif4_24_md_pywtCoeffs.npyNUMPYv{'descr': '0{?%W)?q' (?pe>ֿBC׿~2? ?7w͑ @6e9l6'?mh<{ %`.DӿԒBְ?ظipzlx?s1Sc0)?_&=[H>PK!S88sp0_coif4_24_ma.npyNUMPYv{'descr': '?^RȄ>.s?[KhDh0G#?|c-+D,>PK!06$788sp0_coif4_24_ma_pywtCoeffs.npyNUMPYv{'descr': '?lDŽdc_s?UbZKl[e.G#?6p+>H,>PK!f88sym_coif4_24_ma.npyNUMPYv{'descr': 'Xʿ|L?0?JKJֿĬ[׿Hg?D?Z ?oyE @6e9l˟?U&Re'ǿF?Ax?;?]Ͽ~?!J?SpPK!j+88symw_coif4_24_ma.npyNUMPYv{'descr': '&?Qֿ@l +׿0(?oA?_ ?l& @$?ۗQw<22?, 2ݿ#N>!?vqQ`D?ȐuvNW)?D?PK!*88symw_coif4_24_ma_pywtCoeffs.npyNUMPYv{'descr': '#s׿x ?iS? 0?r0/꿉IY e7g ܿJ-;=߿.WM߿&QK\l]PK!l88symw_coif4_24_md_pywtCoeffs.npyNUMPYv{'descr': '!? q`@;WD?`IV?쿅X)??PK!88ppd_coif4_24_ma.npyNUMPYv{'descr': '~l4 }? Vյrmy׿x zY?[i+?%?Cx0‡k۝`C>~l4 }? Vյrmy׿PK!L88ppd_coif4_24_md_pywtCoeffs.npyNUMPYv{'descr': 'LBmֿ5>LbPK!}J88sp1_coif4_24_ma_pywtCoeffs.npyNUMPYv{'descr': 'tTGmjl1>VP?J7ƿdlU\cs?q u+/?n؝?!C%ʿې PK![Bf88asym_coif4_24_ma.npyNUMPYv{'descr': '?ݿ`?թ?!Gn?Z6׿pv,׿\Z4?lxY=?C:Nz ?lNwz2?M7-HY;v?Dt(#ڿcQ ?F.kcI;;J W?JÿD1!s?PK!w:G88asym_coif4_24_ma_pywtCoeffs.npyNUMPYv{'descr': '4 ?ag?t"%꿹￙7]jῴ߿Qpp?Ƚ푋?i[?q#?PK!7h'88asym_coif4_24_md_pywtCoeffs.npyNUMPYv{'descr': '??C?$Gn?؀j0׿k(,׿Lx4? '=?$HU @6e9l؝r2?&1-;v?6(ڿ罍 ?/ke³;PV?IiM=ÿoyDy&!s?PK!S88asymw_coif4_24_ma.npyNUMPYv{'descr': 'Ƈa/?jԠۻ;9?g@R?C7+?Lcq%?0=?+w>,'0@ G3!׿x H'?6X ??^j}>^޿XbgKk{/?dE&2?N?CB?PK!'088asymw_coif4_24_md.npyNUMPYv{'descr': ']a/?Rӡۻ?9?@R?k0+?p*?:0=?2wq>,FhG뿩}v !׿x ??S??"1j yS  1޿]egK俤GD|/?]|A2?=mN?>IF?PK!ۼ88 asymw_coif4_24_md_pywtCoeffs.npyNUMPYv{'descr': '0G?0(?t_Gy1B\5^7÷A?PK!l $Y@@zpd_coif4_25_md.npyNUMPYv{'descr': 'k}*PK!@@zpd_coif4_25_ma_pywtCoeffs.npyNUMPYv{'descr': '-|F?tC?ן8٩K;|9>wo*PK!W1@@sp0_coif4_25_ma.npyNUMPYv{'descr': ' fX?p Y?KU?0Vc?ƤJ?pd?V?O迗E'ſ5*?# |L?6j?)G?G?-١O8L ́PB? 31D? ?\>?/}?s?PK! @@sp0_coif4_25_md.npyNUMPYv{'descr': ' fX? Y?$KU?{Vc?BuK?@K)d?Q9?CS'ſ^*?,C|ȕL?.?-?ѭ?+w)O϶4-B?ӥ1D??3;?n?s?PK!⪱@@sp0_coif4_25_md_pywtCoeffs.npyNUMPYv{'descr': '>et~mau?UWGOg)i1?t)=ھGPK!IZ@@sym_coif4_25_ma.npyNUMPYv{'descr': 'c?~ ?waFr}T?}& Il?d P`XS,?PK!C@@symw_coif4_25_md.npyNUMPYv{'descr': '?q5?d rsêi 읮5W?/al??/Tp0 Ŀ "?# |D?h?)4 ё?2#?T+'zƵ?8 ?nޏ?adSҚ̇?>mѿPK!Jy@@ppd_coif4_25_md.npyNUMPYv{'descr': '?:Z5-PK!tw 5@@ppd_coif4_25_ma_pywtCoeffs.npyNUMPYv{'descr': '?e*?uxr2v-N'"ܫ5W?"~yl?SsTg~: Ŀ1R@#?,C|D?_?UБ?B:B#?H"Ni'nƵ? ?aޏ?cd}Τ̇?q*ѿPK!L@@ppd_coif4_25_md_pywtCoeffs.npyNUMPYv{'descr': '}ْ?xK-?83\#$cW?ݗ;\G?%G}@f @gN{(@V0@PK!8@@sp1_coif4_25_md.npyNUMPYv{'descr': 'mѿ?"0?ZZ>?;?McL*t(KXvPK!Uper_coif4_25_md.npyNUMPYv{'descr': '?>I?uF*t$tkh[PK!_(per_coif4_25_md_pywtCoeffs.npyNUMPYv{'descr': 'ȿGK?b0 ?J _CP?Ub\1qfȿYZ?# |~7 _?tyB?Y(Z?b6?,D3 <ޠ/ ^g?T?F?7Ks;BS?ЗV?.1?PK!l@@asym_coif4_25_md.npyNUMPYv{'descr': 'ȿH4K?F0 _n9 ?bĊ P?j:b\;ȿY?,C|7:_? $[?+<Ǝ?46?{ PITEΠ/ $M?F?XA2⿖,-BS?pV?>?PK!"|Y@@asym_coif4_25_md_pywtCoeffs.npyNUMPYv{'descr': '0'reMނ2?D-PK!ZHhhzpd_coif5_30_ma_pywtCoeffs.npyNUMPYv{'descr': 'W  ő2? y흈YAx? U&&1?O?B C?~ֱ{ ?ڲq¿!q/?<Mm80?MŠ㿏+)?p *gQؔ *@q00,?ʐȿvM翂r^$l?¢Ggb2?NBQIGPK!1hhzpd_coif5_30_md_pywtCoeffs.npyNUMPYv{'descr': 'rnPK!*\khhsp0_coif5_30_ma.npyNUMPYv{'descr': 'r?PK!hhsp0_coif5_30_ma_pywtCoeffs.npyNUMPYv{'descr': 'R?Pf|?J1࿿$t?Ŭ׬ڿmQ'?rV~?^?":?X*?| ݿ$c[-?|m!?nD۳?[/,>?#tɮϝ4?-_\-@U>3wPK!c`hhsym_coif5_30_ma.npyNUMPYv{'descr': 'u]?Scwտ3?8տPK!Vhhsym_coif5_30_md.npyNUMPYv{'descr': '?;Oڿ*c&?Ny?)??]A*?|Hݿ4Ka1?a? ߔƲ?X `}?{#?v[8b]9Կ q.*8*?'m&ۙW鿃| ܿ,$mJBxRſPK!whhsym_coif5_30_ma_pywtCoeffs.npyNUMPYv{'descr': 'Wj?:ˑHȿ)gbO˿B ?,)h@eWt?g$FvPK!҅hhsymw_coif5_30_md.npyNUMPYv{'descr': 'S[9?a]Ė&HȿR7l˿_ ?&7濋rb??İPvPK!ahhsymw_coif5_30_md_pywtCoeffs.npyNUMPYv{'descr': '?PK!麃hhppd_coif5_30_ma.npyNUMPYv{'descr': ' x?(Ẃ?PKiz'ϳrU2@Mq8V?PK!-hhsp1_coif5_30_md.npyNUMPYv{'descr': ' 7p ?>PK!Dhhsp1_coif5_30_ma_pywtCoeffs.npyNUMPYv{'descr': ',@Ԕ) @?Ƣx?NFZQش?ٝCm80? 㿡3mI[-?e8JiA? tKӃ~?@ls?mDǀ7I?:ۿC^/`?;-Yٿ1`h?+Ɖ??1z?L_1*?| ݿf.9?[5^[?a ?į?ZW@ h2?X?*K?߰Za@'݈N\￾E>*`?g ?U?y-??PK!qhhasymw_coif5_30_ma.npyNUMPYv{'descr': '~@b@F侗 @j?%9C?k[_ٴ&K? 0Oxۢ]-ٶR0?n !נՌbX,?h>-X?aT*`dZ\?P㿣p ?I?8d>ro#J5`PK!_F"hhasymw_coif5_30_md.npyNUMPYv{'descr': '4@ 8 @5zؽ@Ѐh>Y@O-@`{̊\@k +~@+Ob@P# @?B?>ش|ˑ?'-iڢm80?}mà㿩G]jd*K7-?ay_V*Q\?o㿇,$ ?k:oE?5`'ޠr-܏QVPK!KGhh asymw_coif5_30_md_pywtCoeffs.npyNUMPYv{'descr': '|%{V''?1ܳT3]y@?gUW9#?Scп_"?vf!^qUK?rTa ؍܄?"mpGMĹ?$DU泿*o2mw?4k.-E1?hK#D*^? >45󿍃n?6$hy?fz#\UiH q2?PK!Nppzpd_coif5_31_md.npyNUMPYv{'descr': 'eYOF?zwֿ^ ?ai(cUx7-+6??hI6$?6,IB1zQ'.x?Y[ct ?+'TAq$P?װy+[x>@~Ǿydr>PK!_Vppzpd_coif5_31_ma_pywtCoeffs.npyNUMPYv{'descr': 'Gʝ> ;䙨g:-Gt'?y?`8Ui@v2?PK!%ZLppzpd_coif5_31_md_pywtCoeffs.npyNUMPYv{'descr': 'q$P?$_+Rx>uǾF%X>PK!Įgppsp0_coif5_31_ma.npyNUMPYv{'descr': 'G*1Ծbc+>p_@f#[|&>PK!Bppsp0_coif5_31_ma_pywtCoeffs.npyNUMPYv{'descr': ' ?o?{y?5wU?PiX2V?ej 8*ňk?ĭ~Nקk?)9p2@?1‰볿;_+x?p=ͪόCïx|`?Ԕ?huiMlۚhߕc({:e%G^RePK!ppsp0_coif5_31_md_pywtCoeffs.npyNUMPYv{'descr': 'M{@Ծ;>KŲaMPK!=+ppsym_coif5_31_ma.npyNUMPYv{'descr': 'goW?PK!G>ppsym_coif5_31_md.npyNUMPYv{'descr': '?͏Bdun迣aj?@wR??QuV ?)eM?ɧa:F܄? lNfwϹ?|볿oIby?2A$oÄ=w?CS=`? CYeث}?nk?RnZeckp!PK!Mppsymw_coif5_31_md.npyNUMPYv{'descr': 'F ˒ ?w[pN>nICN?\iֿa\!?I,G񕨿#I8??]*?O|>?azƿVǿJ12$?^< ?_?^SjQJJL Xv[?k^,ٿr^^?PK!nfppppd_coif5_31_ma.npyNUMPYv{'descr': '0-?qc>PK!Pppppd_coif5_31_md_pywtCoeffs.npyNUMPYv{'descr': '@z :@O76@Ăo1@bV=?DCE5.ٝE? bfֿ( ?4Nfh(cU ~V h*"ۜ >>3x]‡s>> $J51>PK!؇ppsp1_coif5_31_ma_pywtCoeffs.npyNUMPYv{'descr': '@k1j:@76@s&Qp1@U+@"@:u_/@xHML?ck$G?7^s+4w?о] ~NקY=?->$O??sٵ쳿{B x?xgnF?*D?--+(,(&c$:P*HLO\<0PK!ݣppsp1_coif5_31_md_pywtCoeffs.npyNUMPYv{'descr': '?fҟsHE?GFֿ+nm@?E ,G񕨿"FAN?:s>??x4O?61pZyU>p?$iyͥAU3$L)Ap>7ݚ)7f&wt>|Iw%H8~Nקk?81M?O*𳿹# z? j(G]ls&(?PK!W@per_coif5_31_md_pywtCoeffs.npyNUMPYv{'descr': '۬?}ӿPK!fhppasym_coif5_31_ma_pywtCoeffs.npyNUMPYv{'descr': '|?/3س;>t?)t,Fot_F?(4?j1>Ȃ?bK~d7 shh]/@n߿qPK!=ppasym_coif5_31_md_pywtCoeffs.npyNUMPYv{'descr': '?B#]*U?{|L ?8-~?daz?Kn<5Q? %ƺVJ?ֿ%?j9,G񕨿HO? ~'?I{ ?`5j|&?P5ws?ז4c x?lE۝ ڿ67ο~Z܆ǿ01?#' 0ӿPK!A]ppasymw_coif5_31_ma.npyNUMPYv{'descr': 'h$?:'x?$Ќ@쭧翇u?Ϟ?售{͌U[N{3%h.J/\ PK!gZ頾y>)H ~$6?}?%\v?PK!Tzpd_coif6_36_md.npyNUMPYv{'descr': ':kM?e!뿠7?z-鿭Sp? :GIJ=ȿv|OܿO?=¿-F:.ۿƁ™hw02d?[<`uA?f]QG?\@KE?D ]G?OX85?'/v^q?RMR>91?nJ4} w4NO>_gbT65&z>%L1PK!zpd_coif6_36_ma_pywtCoeffs.npyNUMPYv{'descr': 'Z頾y>)H ~$6?}?%\v?PK!Tzpd_coif6_36_md_pywtCoeffs.npyNUMPYv{'descr': ':kM?e!뿠7?z-鿭Sp? :GIJ=ȿv|OܿO?=¿-F:.ۿƁ™hw02d?[<`uA?f]QG?\@KE?D ]G?OX85?'/v^q?RMR>91?nJ4} w4NO>_gbT65&z>%L1PK!$Tsp0_coif6_36_ma.npyNUMPYv{'descr': 'HV\¿q¨|ՌtPK!#sp0_coif6_36_md.npyNUMPYv{'descr': 'Je?kDxwxYȿ_9ܿMp?=¿r/B.ۿ/|]m™7h.2d?[A? 5^/i!?R~/U@S ɦf?嶄?y۔+tW1? ;?bOp?\2wPEhK.? q>$xx>nR0PK!$Tsp0_coif6_36_ma_pywtCoeffs.npyNUMPYv{'descr': 'HV\¿q¨|ՌtPK!#sp0_coif6_36_md_pywtCoeffs.npyNUMPYv{'descr': 'Je?kDxwxYȿ_9ܿMp?=¿r/B.ۿ/|]m™7h.2d?[A? 5^/i!?R~/U@S ɦf?嶄?y۔+tW1? ;?bOp?\2wPEhK.? q>$xx>nR0PK!N3sym_coif6_36_ma.npyNUMPYv{'descr': 'ʻlݿhz _?A[#nbS,@B+ֿfhy?PK!N3sym_coif6_36_ma_pywtCoeffs.npyNUMPYv{'descr': 'ʻlݿhz _?A[#nbS,@B+ֿfhy?PK!1%symw_coif6_36_ma.npyNUMPYv{'descr': '?CE(}?Υt-?-?'ZSҜ?w??/q-?WƺtIȿ%2y?ت7?Umݿ'e?s?0n\ Yj?QL,?j8 ~?c/?\>?CE(}?Υt-?-?'ZSҜ?w??PK!nppd_coif6_36_md.npyNUMPYv{'descr': '?CE(}?Υt-?-?'ZSҜ?w??/q-?WƺtIȿ%2y?ت7?Umݿ'e?s?0n\ Yj?QL,?j8 ~?c/?\>?CE(}?Υt-?-?'ZSҜ?w??PK!nppd_coif6_36_md_pywtCoeffs.npyNUMPYv{'descr': 'sp1_coif6_36_ma.npyNUMPYv{'descr': 'g0?IBApc}?zz,r_?2V$P?f 5ȿ椉ܿ\?g=¿E@.ۿ s™G/2d?[^ѢB?8Jdt+?qof@fJެ?:aokJt?1LgZ%5?R?Nle_# >I3ո>:`jjsp1_coif6_36_ma_pywtCoeffs.npyNUMPYv{'descr': 'g0?IBApc}?zz,r_?2V$P?f 5ȿ椉ܿ\?g=¿E@.ۿ s™G/2d?[^ѢB?8Jdt+?qof@fJެ?:aokJt?1LgZ%5?R?Nle_# >I3ո>:`jj迥Yoe Xmf?BifO|t?gh˿UU v3?@-ڿ%Y3? :ID? 迥Yoe Xmf?BifO|t?gh˿UU v3?@-ڿ%Y3? :ID? ¿iz*.ۿ™KvQ32d?[ 'rA?K107^7W|?v,k]6@ɶ?9?Ssڨ*?` ޫ@+rK?ML{濢uF&?eɿd,v{,?V.οPK!-asym_coif6_36_ma_pywtCoeffs.npyNUMPYv{'descr': '¿iz*.ۿ™KvQ32d?[ 'rA?K107^7W|?v,k]6@ɶ?9?Ssڨ*?` ޫ@+rK?ML{濢uF&?eɿd,v{,?V.οPK!_asymw_coif6_36_ma.npyNUMPYv{'descr': '&h`K9ڜȽMLa&Waqg\Y#&P~&IL kOݰ?֓濕|_3??{ ?/q-?QtIȿ/y?E7?PJmݿTC?eH'|H]Ϧ?n?+w??ޭ&_?}솩ӛp忐L޿T$2_BB?PK!R[asymw_coif6_36_md.npyNUMPYv{'descr': '&h`K9ڜȽMLa&Waqg\Y#&P~&IL kOݰ?֓濕|_3??{ ?/q-?QtIȿ/y?E7?PJmݿTC?eH'|H]Ϧ?n?+w??ޭ&_?}솩ӛp忐L޿T$2_BB?PK!R[ asymw_coif6_36_md_pywtCoeffs.npyNUMPYv{'descr': 'La վ^r?n 0 AXR?HLJqE?C"Gi7?޼n\?=?m*4hͿ,T4nKm忍}e?$G'7:,xpؿ^P:_Uyrğv?%5?/d@58X&,: ? &,q?˔MsA?g W?)0]O~gJ?P,ި'TY>PK!$Q%Ԡzpd_coif6_37_md.npyNUMPYv{'descr': '6ؿYaT*?_/b:Bѹ?M*n^EHnR=3Կj?9iך?I\mFt>aJ3៾zf>U.PK!bzpd_coif6_37_ma_pywtCoeffs.npyNUMPYv{'descr': 'La վ^r?n 0 AXR?HLJqE?C"Gi7?޼n\?=?m*4hͿ,T4nKm忍}e?$G'7:,xpؿ^P:_Uyrğv?%5?/d@58X&,: ? &,q?˔MsA?g W?)0]O~gJ?P,ި'TY>PK!$Q%Ԡzpd_coif6_37_md_pywtCoeffs.npyNUMPYv{'descr': '6ؿYaT*?_/b:Bѹ?M*n^EHnR=3Կj?9iך?I\mFt>aJ3៾zf>U.PK!Z|Ơsp0_coif6_37_ma.npyNUMPYv{'descr': 'm?F!yן?b0*[m?o¹tSAR5?23e1>ˬ{>}ѭF0н~PK!Z|Ơsp0_coif6_37_ma_pywtCoeffs.npyNUMPYv{'descr': 'm?F!yן?b0*[m?o¹tSAR5?23e1>ˬ{>}ѭF0н~PK!sym_coif6_37_ma.npyNUMPYv{'descr': 'T? cԿpTh?'6J?,@6.ؿYaT*?,Clb~ [5?4cŀfىUUX#\ӿ J#E?T,68 Q??^m?ޕ#S?HF0ӿ ?8rntx֫ῇL̲c7? .?PK!sym_coif6_37_ma_pywtCoeffs.npyNUMPYv{'descr': 'T? cԿpTh?'6J?,@6.ؿYaT*?,Clb~ [5?4cŀfىUUX#\ӿ J#E?T,68 Q??^m?ޕ#S?HF0ӿ ?8rntx֫ῇL̲c7? .?PK!dsymw_coif6_37_ma.npyNUMPYv{'descr': 'E޿ a|(^&TWa?=4/俒#R9ˠ ʿ-&?TQ=?S۟;&?}e$˿Ďģ]W忲\I?$G3U:pؿb;N2|"Mt3>w+E޿ a|(^&TWa?=4/俒#R9ˠ ʿ-&?TQ=?S۟;&?}e$˿Ďģ]W忲\I?$G3U:pؿb;N2|"Mt3>w+d\忝af)?$Go V:῜)Tsؿ@Lq6P7eFkvʷq? (?7i@^>OV0-?_#?@TO?#?|ع@;<\ @?P@Qm@PK!@sp1_coif6_37_md.npyNUMPYv{'descr': '2iظ<~>kH2\3d\忝af)?$Go V:῜)Tsؿ@Lq6P7eFkvʷq? (?7i@^>OV0-?_#?@TO?#?|ع@;<\ @?P@Qm@PK!@sp1_coif6_37_md_pywtCoeffs.npyNUMPYv{'descr': '2iظ<~>kH2\3/ؿYaT*?E bF?lNk9Y$)5r,yjտ.a?I[l[u0?? /ؿYaT*?E bF?lNk9Y$)5r,yjտ.a?I[l[u0?? &vګqa>)bN%?~$RG%g?:HQ܂HL?m1ޭxBZ2?k8UYȿ8U@l?ܢ\>P[?Uf3ۘ?kNҿG&ϝ?wg?imJ$$Կa7?^F忄 ? W??ʛx迤{Э?ϴM='?OHj̿XR߷?!PqQ t?# tQq$? wPK!O>}zpd_coif7_42_md.npyNUMPYv{'descr': '2u,ʿlk?S ?%M\KEHK?PLB3M,?G~?4b׿Jx?CZ'K}1/bs[? 9?~ 7 ?jޠ-?KöA?eAM Th?ai7Ie LH?Z(Hma?%(޾I.ñ>Xfa~A>:ԻpPK!13+zpd_coif7_42_ma_pywtCoeffs.npyNUMPYv{'descr': '&vګqa>)bN%?~$RG%g?:HQ܂HL?m1ޭxBZ2?k8UYȿ8U@l?ܢ\>P[?Uf3ۘ?kNҿG&ϝ?wg?imJ$$Կa7?^F忄 ? W??ʛx迤{Э?ϴM='?OHj̿XR߷?!PqQ t?# tQq$? wPK!O>}zpd_coif7_42_md_pywtCoeffs.npyNUMPYv{'descr': '2u,ʿlk?S ?%M\KEHK?PLB3M,?G~?4b׿Jx?CZ'K}1/bs[? 9?~ 7 ?jޠ-?KöA?eAM Th?ai7Ie LH?Z(Hma?%(޾I.ñ>Xfa~A>:ԻpPK!ZAsp0_coif7_42_ma.npyNUMPYv{'descr': 'P_:O?=Rgywb?"p(Bʴ?tt`?*3ԱYwɿzR+žEX?"A?L2e𿴜?PdhB)/-?C#:?9 Rb׿Jx?93Kh-2x;I0|I?.$?Ha?1cD?6;bQi?k6KQrXmx?]qwi5@?s ,_P̑>Ϯ΃վ,_ߩ>}oDVvbtPK!ZAsp0_coif7_42_ma_pywtCoeffs.npyNUMPYv{'descr': 'P_:O?=Rgywb?"p(Bʴ?tt`?*3ԱYwɿzR+žEX?"A?L2e𿴜?PdhB)/-?C#:?9 Rb׿Jx?93Kh-2x;I0|I?.$?Ha?1cD?6;bQi?k6KQrXmx?]qwi5@?s ,_P̑>Ϯ΃վ,_ߩ>}oDVvbtPK!_sym_coif7_42_ma.npyNUMPYv{'descr': 'AT?.@+GZVVҭ2y?%E0(?kNҿӝ?>6h?BBnd$Կר?Lt?y82?ofp1?xUm9~?IV?2B\n>?(w濰Bo?vbR??-?OI ?PK!+sym_coif7_42_md.npyNUMPYv{'descr': '@`\Һ?ʓRcrſ#trf.D?O[~?g}?m] ?9 * ?kTMk ?B hu"?ub(vMek<R?~PK!_sym_coif7_42_ma_pywtCoeffs.npyNUMPYv{'descr': 'AT?.@+GZVVҭ2y?%E0(?kNҿӝ?>6h?BBnd$Կר?Lt?y82?ofp1?xUm9~?IV?2B\n>?(w濰Bo?vbR??-?OI ?PK!+sym_coif7_42_md_pywtCoeffs.npyNUMPYv{'descr': '@`\Һ?ʓRcrſ#trf.D?O[~?g}?m] ?9 * ?kTMk ?B hu"?ub(vMek<R?~PK!YCsymw_coif7_42_ma.npyNUMPYv{'descr': 'T?`?O闍 ?wC9}ɿXbd ِ.Hjc1^T?`?O闍 ?wC9}ɿXbd ِ.Hjc1^1C?o&?6@O῀%٢? @LBk{U,?,1?wb׿Jx?.PK 3]lmdMнl?A*@tu02?-a?8˅G0qxӡ̿eu>1C?o&?6@O῀%٢? @LBk{U,?,1?wb׿PK!ܐ ppd_coif7_42_ma_pywtCoeffs.npyNUMPYv{'descr': '1C?o&?6@O῀%٢? @LBk{U,?,1?wb׿Jx?.PK 3]lmdMнl?A*@tu02?-a?8˅G0qxӡ̿eu>1C?o&?6@O῀%٢? @LBk{U,?,1?wb׿PK!vaTsp1_coif7_42_ma.npyNUMPYv{'descr': '*??X'?q?(@?=*?˛ ?΃K?_N[p!%\Nk?bOX/?kNҿ?kPVk?BGq#Կ'?2忢sD?ǯ=Q?̬ h?J2W?v>o?aI 4CU"bL;:M#܍['Dh+PK!)sp1_coif7_42_md.npyNUMPYv{'descr': ''ʾ >9xt4tO:>,&U\*??X'?q?(@?=*?˛ ?΃K?_N[p!%\Nk?bOX/?kNҿ?kPVk?BGq#Կ'?2忢sD?ǯ=Q?̬ h?J2W?v>o?aI 4CU"bL;:M#܍['Dh+PK!)sp1_coif7_42_md_pywtCoeffs.npyNUMPYv{'descr': ''ʾ >9xt4tO:>,&U\1C?o&?6@O῀%٢? @LBk{U,?,1?wb׿Jx?.PK 3]lmdMнl?A*@tu02?-a?8˅G0qxӡ̿PK!;((per_coif7_42_ma_pywtCoeffs.npyNUMPYv{'descr': '1C?o&?6@O῀%٢? @LBk{U,?,1?wb׿Jx?.PK 3]lmdMнl?A*@tu02?-a?8˅G0qxӡ̿PK!vasym_coif7_42_ma.npyNUMPYv{'descr': 'Ә?kNҿcʝ?])gg?\:mwO18$Կ[?Jv]?=wG?UK(?x鿏CWI?& {o?:?Hpʯt?mNح m]_F(ڿCS8E PK!sasym_coif7_42_md.npyNUMPYv{'descr': '˿Оos-/;?5 d%G2y }οC@.?N[?A2}?G*l?d'TVCwP*8տU=a?Z+k#[{?oRk?VNR-u~?PK!vasym_coif7_42_ma_pywtCoeffs.npyNUMPYv{'descr': 'Ә?kNҿcʝ?])gg?\:mwO18$Կ[?Jv]?=wG?UK(?x鿏CWI?& {o?:?Hpʯt?mNح m]_F(ڿCS8E PK!sasym_coif7_42_md_pywtCoeffs.npyNUMPYv{'descr': '˿Оos-/;?5 d%G2y }οC@.?N[?A2}?G*l?d'TVCwP*8տU=a?Z+k#[{?oRk?VNR-u~?PK!Aasymw_coif7_42_ma.npyNUMPYv{'descr': '&(?+Qs?k-"?`'? %Y&y&q{6?&^?@FL?L\OJ [^?4Dٿ,d{ٽ׿Rx?enǿb]?PK!A asymw_coif7_42_ma_pywtCoeffs.npyNUMPYv{'descr': '&(?+Qs?k-"?`'? %Y&y&q{6?&^?@FL?L\OJ [^?4Dٿ,d{ٽ׿Rx?enǿb]?PK!@nzpd_coif7_43_ma.npyNUMPYv{'descr': 'C >Sh'rE̳"q"?G^vDjc?g PV}-?N-AΠ7nf?0%-ioMe?څO?Ԑڿ">Sn a(th鿶Nrb a?Bs ɺ?ΝTwS?5-A?h?YE'nyUci ;>A,&VPK!@nzpd_coif7_43_ma_pywtCoeffs.npyNUMPYv{'descr': 'C >Sh'rE̳"q"?G^vDjc?g PV}-?N-AΠ7nf?0%-ioMe?څO?Ԑڿ">Sn a(th鿶Nrb a?Bs ɺ?ΝTwS?5-A?h?YE'nyUci ;>A,&VPK!#ެ`sp0_coif7_43_ma.npyNUMPYv{'descr': '{@qY>{@),>{@?={@lC{@Q#{@>m{@5T->y@uf@B3n@[7@9C@?>%@+?L(R?AhϲүڿQ5jv{ H(th鿏Vb a?: ɺ?9|S?AbUA?0?P57b ?i?Pved*?;i?śF+Y?la?r*p"?3A?sU?k_8?PK!o|sp0_coif7_43_md.npyNUMPYv{'descr': '#Л>kvD\y=|EPK!#ެ`sp0_coif7_43_ma_pywtCoeffs.npyNUMPYv{'descr': '{@qY>{@),>{@?={@lC{@Q#{@>m{@5T->y@uf@B3n@[7@9C@?>%@+?L(R?AhϲүڿQ5jv{ H(th鿏Vb a?: ɺ?9|S?AbUA?0?P57b ?i?Pved*?;i?śF+Y?la?r*p"?3A?sU?k_8?PK!o|sp0_coif7_43_md_pywtCoeffs.npyNUMPYv{'descr': '#Л>kvD\y=|EPK! sym_coif7_43_ma.npyNUMPYv{'descr': ' 3{ew@(th鿏Vb a? ɺ?И oS?PA?C??X۵? 3{ew@(th鿏Vb a? ɺ?И oS?PA?C??X۵??z̈́fc3?j T?a񆣥CU`1 ○&6:޿v]C? {Q?=C,OlٿiҒ翻}vM?;g(th鿭*Fb a?{Ә ɺ?: ;濐QxS?ϔA?&?С(;?&˽:)2^ӿR /c?i{Fd󿏦ɑA? Ǜ`?ZS8?/ 3t?k ) ?./o:X?dQп]VL"?PK!',symw_coif7_43_md.npyNUMPYv{'descr': 'vG?1vc62 ('T,?ڦjQ??`u!?Ⱦb? kؚ04}&݉@ĹN?xĎh1?ȼo?hb(~?Ehᨄ?Oހ{KGҿtY7 ?¯\뿥r ŝ4? $,%￀BV߿Lh߿ԚiKݒP?;ĿtV$:3?.(td<ѿlh_CA?|=S?X6Z?߿?PK!_9)symw_coif7_43_ma_pywtCoeffs.npyNUMPYv{'descr': '?z̈́fc3?j T?a񆣥CU`1 ○&6:޿v]C? {Q?=C,OlٿiҒ翻}vM?;g(th鿭*Fb a?{Ә ɺ?: ;濐QxS?ϔA?&?С(;?&˽:)2^ӿR /c?i{Fd󿏦ɑA? Ǜ`?ZS8?/ 3t?k ) ?./o:X?dQп]VL"?PK!',symw_coif7_43_md_pywtCoeffs.npyNUMPYv{'descr': 'vG?1vc62 ('T,?ڦjQ??`u!?Ⱦb? kؚ04}&݉@ĹN?xĎh1?ȼo?hb(~?Ehᨄ?Oހ{KGҿtY7 ?¯\뿥r ŝ4? $,%￀BV߿Lh߿ԚiKݒP?;ĿtV$:3?.(td<ѿlh_CA?|=S?X6Z?߿?PK!͙oppd_coif7_43_ma.npyNUMPYv{'descr': '.L?z3||Orڿ\?gl~?8$$g?)?W?r?ì7NŻ?vKy~^AVÿ 0g@.I?PK!͙oppd_coif7_43_ma_pywtCoeffs.npyNUMPYv{'descr': '.L?z3||Orڿ\?gl~?8$$g?)?W?r?ì7NŻ?vKy~^AVÿ 0g@.I?PK!sp1_coif7_43_ma.npyNUMPYv{'descr': 'IĎ'>nF/DH4.Wj= NTIĎ'>nF/DH4.Wj= NTk0(%Z< 4L`YD~?~9X?np?vs3~?l?hDZ{{{KGҿi2 ?iPߢQD\滿x.IE?Hzy^_ oXH?j~?=B4?PK!c00per_coif7_43_ma_pywtCoeffs.npyNUMPYv{'descr': 'k0(%Z< 4L`YD~?~9X?np?vs3~?l?hDZ{{{KGҿi2 ?iPߢQD\滿x.IE?Hzy^_ oXH?j~?=B4?PK!Msasym_coif7_43_ma.npyNUMPYv{'descr': 'l9׀ӿؒ5?jFT6Q?n@u?!=?M{EŲ4(|?EP?C?3jyGzUo?ha /鴿PK! $xasym_coif7_43_md.npyNUMPYv{'descr': 'l9׀ӿؒ5?jFT6Q?n@u?!=?M{EŲ4(|?EP?C?3jyGzUo?ha /鴿PK! $xasym_coif7_43_md_pywtCoeffs.npyNUMPYv{'descr': '@Ce+@?$@D@jK]@ 8 @]|@"@Z@kC6@*|@ϓd@־&?c4r@0cۿ翯VYvC((thqgb a?{ ɺ?8nRhS?i޸A?4ʹp?Z٠t@ot?-y˳?LM1&bӺ⿧+ޢP ?.)ڵ?}aˈw?r~?jOH?!g{KGҿ,- ? FYnsPF?r[SFb6۾5?,U%?9r7|?qz?Wߍ?A n<;?x f'@-gf?ݣ@0w$SB=6Z߿PK! asymw_coif7_43_ma_pywtCoeffs.npyNUMPYv{'descr': '@Ce+@?$@D@jK]@ 8 @]|@"@Z@kC6@*|@ϓd@־&?c4r@0cۿ翯VYvC((thqgb a?{ ɺ?8nRhS?i޸A?4ʹp?Z٠t@ot?-y˳?LM1&bӺ⿧+ޢP ?.)ڵ?}aˈw?r~?jOH?!g{KGҿ,- ? FYnsPF?r[SFb6۾5?,U%?9r7|?qz?Wߍ?A n<;?x f'@-gf?ݣ@0w$SB=6Z߿PK!ɺzpd_coif8_48_ma.npyNUMPYv{'descr': 'k]1TFa>KXZueE4 >:9ܢ{+?=Lpsvh? GBdo6ӕ?0H$ 2]?"PR J3-2?ٹIM%1'?ve?,C ~?F⤑?$'?|zN?BT½d忸WyͿblmf81:Ve`#f\|LпTj^q41~?ӣ龧?U)e?hVT$?`<9پݏ7D"OQ?XL%Aq脓?ۧruDôQ?_,h!;pN>PK!\zpd_coif8_48_md.npyNUMPYv{'descr': 'R9ۿʥѮ/?a?GYWڿ =(u?ѐDM+BEL? v?HUiFnܿf]Pjn?fd.v U[p#+?ʐ1*?m%nO_(?W(r}??y󉁿ɦB,j??P'rA.2?&R$s[a<>M<1\CY>oLZrT >vyoȽPK!ɺzpd_coif8_48_ma_pywtCoeffs.npyNUMPYv{'descr': 'k]1TFa>KXZueE4 >:9ܢ{+?=Lpsvh? GBdo6ӕ?0H$ 2]?"PR J3-2?ٹIM%1'?ve?,C ~?F⤑?$'?|zN?BT½d忸WyͿblmf81:Ve`#f\|LпTj^q41~?ӣ龧?U)e?hVT$?`<9پݏ7D"OQ?XL%Aq脓?ۧruDôQ?_,h!;pN>PK!\zpd_coif8_48_md_pywtCoeffs.npyNUMPYv{'descr': 'R9ۿʥѮ/?a?GYWڿ =(u?ѐDM+BEL? v?HUiFnܿf]Pjn?fd.v U[p#+?ʐ1*?m%nO_(?W(r}??y󉁿ɦB,j??P'rA.2?&R$s[a<>M<1\CY>oLZrT >vyoȽPK!Msp0_coif8_48_ma.npyNUMPYv{'descr': 'տPK!@sym_coif8_48_ma_pywtCoeffs.npyNUMPYv{'descr': 'տPK!ɋsymw_coif8_48_ma.npyNUMPYv{'descr': 'D'?ak?T+FX?ocB3PK!symw_coif8_48_md.npyNUMPYv{'descr': 'caJ?W?1Wڿx`z<(𿿧?EǫDMT)BvL? v?@$=+EnܿxIGRXpj_"E޴?lL1I WD I?Lї\z??]NǘSJ?µt|bLi\EPݿo|``?6?IO:|ĿPʺ4Xt?A9zؿ;dz6?PK!ɋsymw_coif8_48_ma_pywtCoeffs.npyNUMPYv{'descr': 'D'?ak?T+FX?ocB3PK!symw_coif8_48_md_pywtCoeffs.npyNUMPYv{'descr': 'caJ?W?1Wڿx`z<(𿿧?EǫDMT)BvL? v?@$=+EnܿxIGRXpj_"E޴?lL1I WD I?Lї\z??]NǘSJ?µt|bLi\EPݿo|``?6?IO:|ĿPʺ4Xt?A9zؿ;dz6?PK!pA$ppd_coif8_48_ma.npyNUMPYv{'descr': ']ݐu?+?aWڿG@?(N?ԌDM> BGL? v?NAf{Qnܿ 뿥?ilFq8C? $Qgݿ\4?ӄ?t.o?J&?^BA?1ۿ>]ݐu?+?aWڿG@?(N?ԌDM> BGL?PK!pA$ppd_coif8_48_ma_pywtCoeffs.npyNUMPYv{'descr': ']ݐu?+?aWڿG@?(N?ԌDM> BGL? v?NAf{Qnܿ 뿥?ilFq8C? $Qgݿ\4?ӄ?t.o?J&?^BA?1ۿ>]ݐu?+?aWڿG@?(N?ԌDM> BGL?PK!19(sp1_coif8_48_ma.npyNUMPYv{'descr': '6?=B$U^EySEPK!WĻsp1_coif8_48_md.npyNUMPYv{'descr': '6{*0;V>m>E/<&=hv|`Sb6?=B$U^EySEPK!WĻsp1_coif8_48_md_pywtCoeffs.npyNUMPYv{'descr': '6{*0;V>m>E/<&=hv|`SbV7I?cI? "?w?P5ڿ.h| f>-A|[[Au Q? ;ħG:ڿ9tֿxC,?2Ed?$t@.nPK!O@@per_coif8_48_md.npyNUMPYv{'descr': 'ċ~dvuݿsHf?mֿ޲࿎vOE?O?pQ?N[FAܯ޿?H,%q?dhH:IxWTj?n*B?&W㷶?PK!+C@@per_coif8_48_ma_pywtCoeffs.npyNUMPYv{'descr': 'V7I?cI? "?w?P5ڿ.h| f>-A|[[Au Q? ;ħG:ڿ9tֿxC,?2Ed?$t@.nPK!O@@per_coif8_48_md_pywtCoeffs.npyNUMPYv{'descr': 'ċ~dvuݿsHf?mֿ޲࿎vOE?O?pQ?N[FAܯ޿?H,%q?dhH:IxWTj?n*B?&W㷶?PK!easym_coif8_48_ma.npyNUMPYv{'descr': ' ?I!xQW\6qY?DΡuBN& S]޿PK!1asym_coif8_48_md.npyNUMPYv{'descr': ':eG?6D?vOKֿ'ԩп2O?ho?={ ^?~\? ל|AI>?PK!easym_coif8_48_ma_pywtCoeffs.npyNUMPYv{'descr': ' ?I!xQW\6qY?DΡuBN& S]޿PK!1asym_coif8_48_md_pywtCoeffs.npyNUMPYv{'descr': ':eG?6D?vOKֿ'ԩп2O?ho?={ ^?~\? ל|AI>?PK!7z)~asymw_coif8_48_ma.npyNUMPYv{'descr': 'K['@i@UpnrG??oh?2Hk?p7?&lԏ?S?/N?BTsd<^ͿB81a#>(e%Ő$/пncE"t峿u,,?n[ y? /(?L1^&/?g)ɿa2Hzؿmd_795c)b[3 }jT`"Y ƩPK!"asymw_coif8_48_md.npyNUMPYv{'descr': '?~v [ҿtqܿҾ?O ?ik,?iҎz?ȳ6PK!7z)~ asymw_coif8_48_ma_pywtCoeffs.npyNUMPYv{'descr': 'K['@i@UpnrG??oh?2Hk?p7?&lԏ?S?/N?BTsd<^ͿB81a#>(e%Ő$/пncE"t峿u,,?n[ y? /(?L1^&/?g)ɿa2Hzؿmd_795c)b[3 }jT`"Y ƩPK!" asymw_coif8_48_md_pywtCoeffs.npyNUMPYv{'descr': '?~v [ҿtqܿҾ?O ?ik,?iҎz?ȳ6PK!#zpd_coif8_49_ma.npyNUMPYv{'descr': 'کA^1w>N|jɭ>:(QW?B57ֳa?JS?ѺYl±X[?C\Y@g ?qi9]L,$+`?J謹{u+¿_-r?1E@8@Q?(ls!?YMD?x¿GAǿ(,?Yw3iҿ+CB?G}hkj3?DF.ܿD{O?bu9׿'?/43|um?ux?ۿ[F?$'?zfԨ~?ô$3qK֌\?@ ?$?&e H龑acۦ>PK!c zpd_coif8_49_md.npyNUMPYv{'descr': 'U?Zɦ?Pr{?.?1;.?y@v?dT1?O?&}]?ѢF? e-濿#?`Z/y yC?]-F jH3VEcDV?wsEN>0?DY?Yb:>o پi8PY{>D/p][>8鵦$E=RPK!#zpd_coif8_49_ma_pywtCoeffs.npyNUMPYv{'descr': 'کA^1w>N|jɭ>:(QW?B57ֳa?JS?ѺYl±X[?C\Y@g ?qi9]L,$+`?J謹{u+¿_-r?1E@8@Q?(ls!?YMD?x¿GAǿ(,?Yw3iҿ+CB?G}hkj3?DF.ܿD{O?bu9׿'?/43|um?ux?ۿ[F?$'?zfԨ~?ô$3qK֌\?@ ?$?&e H龑acۦ>PK!c zpd_coif8_49_md_pywtCoeffs.npyNUMPYv{'descr': 'U?Zɦ?Pr{?.?1;.?y@v?dT1?O?&}]?ѢF? e-濿#?`Z/y yC?]-F jH3VEcDV?wsEN>0?DY?Yb:>o پi8PY{>D/p][>8鵦$E=RPK!\sp0_coif8_49_ma.npyNUMPYv{'descr': '?,"J5?]}.?DM?+^?HC=?z̭.JAp?CNf!E@Y'Q?INϘ!?wZJD?x¿IAǿ^,?ߋj5iҿItCB?KniTȸ4?.ܿ6^ ?/I׿p:Ê?3Q?^(w?{ۿl!.?Q?a%z?,?: ?He? ??%j?7D?PK! sp0_coif8_49_md.npyNUMPYv{'descr': 'U+3?[('ä1Z4X?>g#wAru?t/k?/.F:Z3  ?N?\,>W?<4I?΍?#kH?-.o濇A g?|FZ{??NA +p?@ McL1< *$?XCg]$+'>{fE>em$D[x>ŹPiU>V~ὶTx ǒ= ePK!\sp0_coif8_49_ma_pywtCoeffs.npyNUMPYv{'descr': '?,"J5?]}.?DM?+^?HC=?z̭.JAp?CNf!E@Y'Q?INϘ!?wZJD?x¿IAǿ^,?ߋj5iҿItCB?KniTȸ4?.ܿ6^ ?/I׿p:Ê?3Q?^(w?{ۿl!.?Q?a%z?,?: ?He? ??%j?7D?PK! sp0_coif8_49_md_pywtCoeffs.npyNUMPYv{'descr': 'U+3?[('ä1Z4X?>g#wAru?t/k?/.F:Z3  ?N?\,>W?<4I?΍?#kH?-.o濇A g?|FZ{??NA +p?@ McL1< *$?XCg]$+'>{fE>em$D[x>ŹPiU>V~ὶTx ǒ= ePK!~sym_coif8_49_ma.npyNUMPYv{'descr': '? O w? ׿r?d3u@N @𿨕 ?Ő&?\? O w? ׿r?d3u@N @𿨕 ?Ő&?\ M@y5K?X$?k%.KC?x¿eMAǿ7,?8iҿCB?1I޺B6?W^4/ܿ?լ׿ٜ?" M@y5K?X$?k%.KC?x¿eMAǿ7,?8iҿCB?1I޺B6?W^4/ܿ?լ׿ٜ?"7?ޯ?u:P#|V?PK!ppd_coif8_49_md.npyNUMPYv{'descr': '?GTJ?B߲?]bl˿RK?*L?VÚؿ$?\? Pr{?.?D?z?1?p?㾘o?G? a?MO/?濧1 ??"꽡?P,?b3"$ \56KݿŽxP?߶?~4ֿ;*0s?Eݟ7A7N{es"nۿPK!mppd_coif8_49_ma_pywtCoeffs.npyNUMPYv{'descr': '7?ޯ?u:P#|V?PK!ppd_coif8_49_md_pywtCoeffs.npyNUMPYv{'descr': '?GTJ?B߲?]bl˿RK?*L?VÚؿ$?\? Pr{?.?D?z?1?p?㾘o?G? a?MO/?濧1 ??"꽡?P,?b3"$ \56KݿŽxP?߶?~4ֿ;*0s?Eݟ7A7N{es"nۿPK!sp1_coif8_49_ma.npyNUMPYv{'descr': 'I&:J#kصԅ6\*?Uv)stsı?}x@€v xQ;m?xiF@p`Q?/"?+sMN@+u/X?Z|>N?Ѐk}<)C?nlT{JtB5F??S1[?oW0?gA6 5.l˿AOK?PYP?%ؿ?9?Qr{?.?%?/s?1?s+|?E{a0?IN?QQ濣ݏ?w@򰲿 ޜ?Ѓ}끿Ob? _3A$XM?36}gվ{Bھ. >D 췰l"si>_aYlb.><r{SG= 1I&:J#kصԅ6\*?Uv)stsı?}x@€v xQ;m?xiF@p`Q?/"?+sMN@+u/X?Z|>N?Ѐk}<)C?nlT{JtB5F??S1[?oW0?gA6 5.l˿AOK?PYP?%ؿ?9?Qr{?.?%?/s?1?s+|?E{a0?IN?QQ濣ݏ?w@򰲿 ޜ?Ѓ}끿Ob? _3A$XM?36}gվ{Bھ. >D 췰l"si>_aYlb.><r{SG= 15P#|V?YuB俕-?h5P#|V?YuB俕-?hBȲ?qEܾ7 ?(De| fмÿgT^2{?.E@b93MQ?8""?2D?x¿PrEAǿv,?2iҿCB?b˩3?{.ܿZ2? ׿i>h?x7T+5?N?/:.ۿ?:,?4;뿦V ݿJ~ &@ϤW1;? ߿gkſOPK! hlasym_coif8_49_md.npyNUMPYv{'descr': 'G?IWT9Y?S;l^GZg?jO?PK!O:asym_coif8_49_ma_pywtCoeffs.npyNUMPYv{'descr': 'BȲ?qEܾ7 ?(De| fмÿgT^2{?.E@b93MQ?8""?2D?x¿PrEAǿv,?2iҿCB?b˩3?{.ܿZ2? ׿i>h?x7T+5?N?/:.ۿ?:,?4;뿦V ݿJ~ &@ϤW1;? ߿gkſOPK! hlasym_coif8_49_md_pywtCoeffs.npyNUMPYv{'descr': 'G?IWT9Y?S;l^GZg?jO?PK!!Lasymw_coif8_49_ma.npyNUMPYv{'descr': '?\T?<ڡ4?`daZ8?s/ ]x!aſ5?IQ>@6EPW?Ev?xD?x¿LEAǿ’x,?;C2iҿwMCB?e$V?f2?.ܿм? ׿^[̋?;'8/9?=?W t+ڿrƛX:?y/#$?`ݿy78?y %)BZ`Zq;Yg$?|JϮrc?EbPK!,asymw_coif8_49_md.npyNUMPYv{'descr': '?B8*쿁(*3¬??<\a?v6?7ԃ?ăϕ=%zeRZEm˿=YK?V:B?;ؿ!?^?4Lr{?.?%?Fln?7j:2?p&?K@"?l۠??+>?'Ѕ(P?ڿ0L*ֿ)u\r.K٠?52:!ҩύ44Xٿ(WmGDD?w1;ƿ3 OaȞ)?PK!!L asymw_coif8_49_ma_pywtCoeffs.npyNUMPYv{'descr': '?\T?<ڡ4?`daZ8?s/ ]x!aſ5?IQ>@6EPW?Ev?xD?x¿LEAǿ’x,?;C2iҿwMCB?e$V?f2?.ܿм? ׿^[̋?;'8/9?=?W t+ڿrƛX:?y/#$?`ݿy78?y %)BZ`Zq;Yg$?|JϮrc?EbPK!, asymw_coif8_49_md_pywtCoeffs.npyNUMPYv{'descr': '?B8*쿁(*3¬??<\a?v6?7ԃ?ăϕ=%zeRZEm˿=YK?V:B?;ؿ!?^?4Lr{?.?%?Fln?7j:2?p&?K@"?l۠??+>?'Ѕ(P?ڿ0L*ֿ)u\r.K٠?52:!ҩύ44Xٿ(WmGDD?w1;ƿ3 OaȞ)?PK!8-y((zpd_coif9_54_ma.npyNUMPYv{'descr': 'CD=e"[ YV>.ΔMs>n6*?ҽm$vq;B?Q[^{Meu?6 N3`?g'QE?] sCPq?ߵ?'gˆ?CM1C?貣.俹ƆJUp!?8ῗn?ha?:J׿ȚI?X+Z@v?w T4Z1lVrS6?Xf )? Bfw?7$%dȿN*irάM@sYϼ? ]?2t?z:&c]i?VHdr?0jP%ܧ"$??}5[?4>PK!E[((zpd_coif9_54_md.npyNUMPYv{'descr': 'i-XO04?܃ ^[;?pa֚6M[ò?^fvȿ/?M@x?%[ ?_it<\<:俼Wr׺?u/%?hV~cմ?SkD,S[?H?/O?꿥 ˿8?TtDc?o(\u쿨&VR̿%?WėR?k0Ǘe|Jِ?9&y%LpFf?z?"?;ΜR?|< jZ?mIET }?"ks8R??g6? p48k> v6{y> ҸSF4L2 > 3ƽ&.r=PK!8-y((zpd_coif9_54_ma_pywtCoeffs.npyNUMPYv{'descr': 'CD=e"[ YV>.ΔMs>n6*?ҽm$vq;B?Q[^{Meu?6 N3`?g'QE?] sCPq?ߵ?'gˆ?CM1C?貣.俹ƆJUp!?8ῗn?ha?:J׿ȚI?X+Z@v?w T4Z1lVrS6?Xf )? Bfw?7$%dȿN*irάM@sYϼ? ]?2t?z:&c]i?VHdr?0jP%ܧ"$??}5[?4>PK!E[((zpd_coif9_54_md_pywtCoeffs.npyNUMPYv{'descr': 'i-XO04?܃ ^[;?pa֚6M[ò?^fvȿ/?M@x?%[ ?_it<\<:俼Wr׺?u/%?hV~cմ?SkD,S[?H?/O?꿥 ˿8?TtDc?o(\u쿨&VR̿%?WėR?k0Ǘe|Jِ?9&y%LpFf?z?"?;ΜR?|< jZ?mIET }?"ks8R??g6? p48k> v6{y> ҸSF4L2 > 3ƽ&.r=PK! S((sp0_coif9_54_ma.npyNUMPYv{'descr': '^@]W@F6q@ ,'@Y@+:r@+p@0:j@b@Rvk@M{@&`X@ o"Ӑ?5mv?:DԀ9Q"?uJl ?ha?㿢lK׿7I?Ш‹ 'Z>Cv?뛙E 4f{Vl c76?`e?zLo?'Lr>X3ɿv T T@n?,0L?Gi ?u[?x9>?ݒ2??| I%?"n?[?PK!Q((sp0_coif9_54_md.npyNUMPYv{'descr': 'sX$ ۙG?<&@`raLl?y%I,VQFD2>Uɯ?%o?՟J7?U&r\&~!MgQ?[;;? ~?c]y(m [? J?i7Cf$?=g˿@HCl q>CkR>>@fʾȵzih=PK! S((sp0_coif9_54_ma_pywtCoeffs.npyNUMPYv{'descr': '^@]W@F6q@ ,'@Y@+:r@+p@0:j@b@Rvk@M{@&`X@ o"Ӑ?5mv?:DԀ9Q"?uJl ?ha?㿢lK׿7I?Ш‹ 'Z>Cv?뛙E 4f{Vl c76?`e?zLo?'Lr>X3ɿv T T@n?,0L?Gi ?u[?x9>?ݒ2??| I%?"n?[?PK!Q((sp0_coif9_54_md_pywtCoeffs.npyNUMPYv{'descr': 'sX$ ۙG?<&@`raLl?y%I,VQFD2>Uɯ?%o?՟J7?U&r\&~!MgQ?[;;? ~?c]y(m [? J?i7Cf$?=g˿@HCl q>CkR>>@fʾȵzih=PK!:((sym_coif9_54_ma.npyNUMPYv{'descr': '"̶Uq>v?zl^4blUB7?͍?tW!įz?i$)F3^DȿHma\Orޥl@ꗢٳ?eם?5E?8%ڮ?:9zБ@eU>yǿEc1m?1{?ܒSک?PK!((symw_coif9_54_md.npyNUMPYv{'descr': 'Qۖ?쭕?0xtyF?Sogᅫ; ?D?ϿWd ~#vQ?4J1K*v>?-˿݈1g.M?UJn?PK!pvbv((symw_coif9_54_ma_pywtCoeffs.npyNUMPYv{'descr': '"̶Uq>v?zl^4blUB7?͍?tW!įz?i$)F3^DȿHma\Orޥl@ꗢٳ?eם?5E?8%ڮ?:9zБ@eU>yǿEc1m?1{?ܒSک?PK!((symw_coif9_54_md_pywtCoeffs.npyNUMPYv{'descr': 'Qۖ?쭕?0xtyF?Sogᅫ; ?D?ϿWd ~#vQ?4J1K*v>?-˿݈1g.M?UJn?PK!#((ppd_coif9_54_ma.npyNUMPYv{'descr': ''?FHM˿08?qDK*c?K(\u쿨&VR̿`L?^ ? b=U3m:3?=h+莋?}^ ?Q̨?% gh??F?|ZEUf?)x?6,jS!?Lam9 [?0?>'?FHM˿08?qDK*c?K(\uPK!#((ppd_coif9_54_ma_pywtCoeffs.npyNUMPYv{'descr': ''?FHM˿08?qDK*c?K(\u쿨&VR̿`L?^ ? b=U3m:3?=h+莋?}^ ?Q̨?% gh??F?|ZEUf?)x?6,jS!?Lam9 [?0?>'?FHM˿08?qDK*c?K(\uPK!j((sp1_coif9_54_ma.npyNUMPYv{'descr': '@1F?#p@ʢP( @}s&$@,=8!(@{祝,@> 0@H} 2@PK!Y3((sp1_coif9_54_md.npyNUMPYv{'descr': ' p_C?uM hP_ 8?aYXZdl?0LlÿX:?3,miI?IksN俀6&?#?l?T^l/?~[?ξi?1 ?꿌O˿T(8?Dc?fx(\u쿨&VR̿CJ!?NK?Of=n,nQ?>E-?gIKI?Ӏ@(?lN+L'g?'F\]j?CEDR|>8?4x.>ŷȯ׾7~;>SX_D6_R>ݼ2{w =Ⴝ@4u>`޼PK!j((sp1_coif9_54_ma_pywtCoeffs.npyNUMPYv{'descr': '@1F?#p@ʢP( @}s&$@,=8!(@{祝,@> 0@H} 2@PK!Y3((sp1_coif9_54_md_pywtCoeffs.npyNUMPYv{'descr': ' p_C?uM hP_ 8?aYXZdl?0LlÿX:?3,miI?IksN俀6&?#?l?T^l/?~[?ξi?1 ?꿌O˿T(8?Dc?fx(\u쿨&VR̿CJ!?NK?Of=n,nQ?>E-?gIKI?Ӏ@(?lN+L'g?'F\]j?CEDR|>8?4x.>ŷȯ׾7~;>SX_D6_R>ݼ2{w =Ⴝ@4u>`޼PK!-tXXper_coif9_54_ma.npyNUMPYv{'descr': ''?FHM˿08?qDK*c?K(\u쿨&VR̿`L?^ ? b=U3m:3?=h+莋?}^ ?Q̨?% gh??F?|ZEUPK!-tXXper_coif9_54_ma_pywtCoeffs.npyNUMPYv{'descr': ''?FHM˿08?qDK*c?K(\u쿨&VR̿`L?^ ? b=U3m:3?=h+莋?}^ ?Q̨?% gh??F?|ZEUPK!FW((asym_coif9_54_ma.npyNUMPYv{'descr': 't*w麿RLb?LBy?ha?㿦J׿9I?fOPW-"Go ZT=v?͊n4l'7?JD ?"?R5D3*@ǿńZa@PFFG?U|? @weο\?Rv㥪 6ZS4?C?\>$?}HԾPK!]c((asym_coif9_54_md.npyNUMPYv{'descr': '?a#X #nPk?POy6?jms?ʟ3gPcZ?w?L?\#< ˿+x8?:[ EApc?B(\u쿨&VR̿9(;?}v??p;ADuaO?KpE.EѿorA?4.)ch?]!A"Ư?89Mm? '?f[oZGU#ɿ:>?g? O6?W-dY?m_ѽk&ҿY(5y?k0Lg?UA?PK!FW((asym_coif9_54_ma_pywtCoeffs.npyNUMPYv{'descr': 't*w麿RLb?LBy?ha?㿦J׿9I?fOPW-"Go ZT=v?͊n4l'7?JD ?"?R5D3*@ǿńZa@PFFG?U|? @weο\?Rv㥪 6ZS4?C?\>$?}HԾPK!]c((asym_coif9_54_md_pywtCoeffs.npyNUMPYv{'descr': '?a#X #nPk?POy6?jms?ʟ3gPcZ?w?L?\#< ˿+x8?:[ EApc?B(\u쿨&VR̿9(;?}v??p;ADuaO?KpE.EѿorA?4.)ch?]!A"Ư?89Mm? '?f[oZGU#ɿ:>?g? O6?W-dY?m_ѽk&ҿY(5y?k0Lg?UA?PK!((asymw_coif9_54_ma.npyNUMPYv{'descr': 'Ƥ@o@$ˆ=@WIc@T@Oߛ֖⦥?$?Í41^oz?PK!Ap((asymw_coif9_54_md.npyNUMPYv{'descr': '^콅?` ?&Q%,J*?m>Eis?j 1?6MoUJn޿PK!(( asymw_coif9_54_ma_pywtCoeffs.npyNUMPYv{'descr': 'Ƥ@o@$ˆ=@WIc@T@Oߛ֖⦥?$?Í41^oz?PK!Ap(( asymw_coif9_54_md_pywtCoeffs.npyNUMPYv{'descr': '^콅?` ?&Q%,J*?m>Eis?j 1?6MoUJn޿PK!I,Θ00zpd_coif9_55_ma.npyNUMPYv{'descr': '=&DdaЋ>oxGy>iV  ,6.+?fIukBc?fqz.fS?jeaG1m8?`Xjv?< J翽v??N&Wuɲ:̆޿pCI?oPe󿤀F]J¯?+A?CS`.^ 𒙿Nѿ ~ Cx>?UQ>2Sp 3WJ?+::g:[`? w?[K@?J,nQŰi_5i` eծ#*muԿ6l?DX@Ɵ%׆? kį.t J?"-e"4 >z9J>PK!Dx00zpd_coif9_55_md.npyNUMPYv{'descr': '\!e׾@ƙS?fH=Z$l=c?2=cks.?-oX线V)sX?h"QX?v2ކԿmb*?޳Z^p?C?Ңe?q&>??E?Dfݿc @Pop`? ۿF@KrGxD|D=Ve俦o~?/d迠vц?{Ë_ʿAM?C-?`XU?._?dd?ކ ?Y쪿.o~V?sCh1”G?dԅUuvX%:b?>JI3yB0?(x>Uf̾D4̣>Tv^E>a5 b)#="Z|M>H7=PK!I,Θ00zpd_coif9_55_ma_pywtCoeffs.npyNUMPYv{'descr': '=&DdaЋ>oxGy>iV  ,6.+?fIukBc?fqz.fS?jeaG1m8?`Xjv?< J翽v??N&Wuɲ:̆޿pCI?oPe󿤀F]J¯?+A?CS`.^ 𒙿Nѿ ~ Cx>?UQ>2Sp 3WJ?+::g:[`? w?[K@?J,nQŰi_5i` eծ#*muԿ6l?DX@Ɵ%׆? kį.t J?"-e"4 >z9J>PK!Dx00zpd_coif9_55_md_pywtCoeffs.npyNUMPYv{'descr': '\!e׾@ƙS?fH=Z$l=c?2=cks.?-oX线V)sX?h"QX?v2ކԿmb*?޳Z^p?C?Ңe?q&>??E?Dfݿc @Pop`? ۿF@KrGxD|D=Ve俦o~?/d迠vц?{Ë_ʿAM?C-?`XU?._?dd?ކ ?Y쪿.o~V?sCh1”G?dԅUuvX%:b?>JI3yB0?(x>Uf̾D4̣>Tv^E>a5 b)#="Z|M>H7=PK!o<00sp0_coif9_55_ma.npyNUMPYv{'descr': '?i72S|r,VJ? _?es ; q?=p@?ʓ,忼ߏPhNέ 4} I`.տ?L]*JjJ[~N#3D׍RR "PK!ixy00sp0_coif9_55_md.npyNUMPYv{'descr': 'iY*>$ZɜFG:?H+ N z?U?ul3hS੫? 7?WԿ!.?h'C?;?s(?YpwM?5ԛ?JaݿPXa @7J0`?%ۿvQ@񹿉rr(D|;=Ve俦o~?_ؙdHSՆ? `ʿ`hĊ?P?9w8U?Ľ6?)zYb?xO?\vZo5񣉟?A@:ϓ#<? =IubJ۷a?u)Hx1.?,$A<>ʒ'֮$ʾ%{$>Ot!dX\B>A,  ]=.x ?q@眬3PK!o<00sp0_coif9_55_ma_pywtCoeffs.npyNUMPYv{'descr': '?i72S|r,VJ? _?es ; q?=p@?ʓ,忼ߏPhNέ 4} I`.տ?L]*JjJ[~N#3D׍RR "PK!ixy00sp0_coif9_55_md_pywtCoeffs.npyNUMPYv{'descr': 'iY*>$ZɜFG:?H+ N z?U?ul3hS੫? 7?WԿ!.?h'C?;?s(?YpwM?5ԛ?JaݿPXa @7J0`?%ۿvQ@񹿉rr(D|;=Ve俦o~?_ؙdHSՆ? `ʿ`hĊ?P?9w8U?Ľ6?)zYb?xO?\vZo5񣉟?A@:ϓ#<? =IubJ۷a?u)Hx1.?,$A<>ʒ'֮$ʾ%{$>Ot!dX\B>A,  ]=.x ?q@眬3PK!c00sym_coif9_55_ma.npyNUMPYv{'descr': 'B?!W?iS{Wla?6I3?Q6W?4)F`? W4,? R?ȫ񋷿@޿˷?($f8D]J¯?A??S`` 𒙿+Mѿ} ">?t2SAcJ?N++?ʢ𿬀 aN?˜QY9?>c !\ߧY!^c⿨uԿo$~Q޿J!u 濏8es©ŏ?bi`?؊>E@ҚN?ųTD?PK![mv00sym_coif9_55_md.npyNUMPYv{'descr': 'B?!W?iS{Wla?6I3?Q6W?4)F`? W4,? R?ȫ񋷿@޿˷?($f8D]J¯?A??S`` 𒙿+Mѿ} ">?t2SAcJ?N++?ʢ𿬀 aN?˜QY9?>c !\ߧY!^c⿨uԿo$~Q޿J!u 濏8es©ŏ?bi`?؊>E@ҚN?ųTD?PK![mv00sym_coif9_55_md_pywtCoeffs.npyNUMPYv{'descr': '?_$8RO4\`??6HXzF͢`d%ޢ?e99Ⱥ?濧[ ?r]忿Y?w?︿&޿4 ?8?eY]F]J¯?A?;tW`_𒙿Tѿcq>?Z^0S`S 5J?_pQ]7P?~, #kq?4K?tbhwg*vQfq#ݿ]Zݿ5\7&BNCEQ!f?{n?vk? #PPK!Xrj00symw_coif9_55_md.npyNUMPYv{'descr': '?CC?uU?׆̹Ŀϭ ?"Ck?^ ? 4;vB?>ǿU|ֿIS-?Onо3 @PK!QO00symw_coif9_55_ma_pywtCoeffs.npyNUMPYv{'descr': '?_$8RO4\`??6HXzF͢`d%ޢ?e99Ⱥ?濧[ ?r]忿Y?w?︿&޿4 ?8?eY]F]J¯?A?;tW`_𒙿Tѿcq>?Z^0S`S 5J?_pQ]7P?~, #kq?4K?tbhwg*vQfq#ݿ]Zݿ5\7&BNCEQ!f?{n?vk? #PPK!Xrj00symw_coif9_55_md_pywtCoeffs.npyNUMPYv{'descr': '?CC?uU?׆̹Ŀϭ ?"Ck?^ ? 4;vB?>ǿU|ֿIS-?Onо3 @PK!T00ppd_coif9_55_ma.npyNUMPYv{'descr': 'qd?ǓZq*L?пqZ?:V ӿܿ[?pht?){w:А?K`?LLPGr++آPv~2)⿀/[d?W{p翷 !?9%⤸\? ЕXiۍ޿'@cw?GTie#YE]J¯?1A?`P`IW𒙿KKHѿgu<>?;&4S>aJ?=NU @?u ?ID.'?a[qƮ忒)о$忔 U%^_?P´+B /?G#?Rq ?M? U)?ڽb{?nlg@ݿ._ @w_ɭ`?2ۿ7vS_@񹿀ppXD|)=Ve俦o~?SdP:?«\ʿ!…?J?Fw*?fm?8&df7u??C)LAX5D3"G?f.T-ҿԡnkIp#{(ʿЧ1AoZz@?]%ֆxeqq?0>5uǎ΃?l?;z?y)?1PK!T00ppd_coif9_55_ma_pywtCoeffs.npyNUMPYv{'descr': 'qd?ǓZq*L?пqZ?:V ӿܿ[?pht?){w:А?K`?LLPGr++آPv~2)⿀/[d?W{p翷 !?9%⤸\? ЕXiۍ޿'@cw?GTie#YE]J¯?1A?`P`IW𒙿KKHѿgu<>?;&4S>aJ?=NU @?u ?ID.'?a[qƮ忒)о$忔 U%^_?P´+B /?G#?Rq ?M? U)?ڽb{?nlg@ݿ._ @w_ɭ`?2ۿ7vS_@񹿀ppXD|)=Ve俦o~?SdP:?«\ʿ!…?J?Fw*?fm?8&df7u??C)LAX5D3"G?f.T-ҿԡnkIp#{(ʿЧ1AoZz@?]%ֆxeqq?0>5uǎ΃?l?;z?y)?1PK!z00sp1_coif9_55_ma.npyNUMPYv{'descr': 'D@/C@`A@9D'@@0<@*9@]-6@2TpJ3@Pz0@iv*@ss$@V@Du@4h+u?K 6*/0?' b ?'Q8>4𸿫޿(0?HkeW8G]J¯?kA?uP`;𒙿נQKѿ?Fp2S^vUJ?=eVP3?w63J&[ ?c~G?354LSƿy|@jH@`.\@q2]!@5a%@^O)@'"-@.p@1@(.L.C3@PK!600sp1_coif9_55_md.npyNUMPYv{'descr': 'g TA{6?3X&Xp?qx4z>imO՘C?gp?L]T鮿п҉???p?;r?"O?ָ?ݿ"c @?ϐui a?VD(ۿ>@`sOD|P=Ve俦o~?fvdZPc?TB^ʿ3#8q??J`?Usde?#\_?jV%{K!J^1?9wZYzF*>_5EоW7>j {N_VH>ߪC=w]6dxOżPK!z00sp1_coif9_55_ma_pywtCoeffs.npyNUMPYv{'descr': 'D@/C@`A@9D'@@0<@*9@]-6@2TpJ3@Pz0@iv*@ss$@V@Du@4h+u?K 6*/0?' b ?'Q8>4𸿫޿(0?HkeW8G]J¯?kA?uP`;𒙿נQKѿ?Fp2S^vUJ?=eVP3?w63J&[ ?c~G?354LSƿy|@jH@`.\@q2]!@5a%@^O)@'"-@.p@1@(.L.C3@PK!600sp1_coif9_55_md_pywtCoeffs.npyNUMPYv{'descr': 'g TA{6?3X&Xp?qx4z>imO՘C?gp?L]T鮿п҉???p?;r?"O?ָ?ݿ"c @?ϐui a?VD(ۿ>@`sOD|P=Ve俦o~?fvdZPc?TB^ʿ3#8q??J`?Usde?#\_?jV%{K!J^1?9wZYzF*>_5EоW7>j {N_VH>ߪC=w]6dxOżPK!h``per_coif9_55_ma.npyNUMPYv{'descr': '?-1S󿠯NJ?vq9(?+JW?g hK?ImbPK! bL``per_coif9_55_md.npyNUMPYv{'descr': '?-1S󿠯NJ?vq9(?+JW?g hK?ImbPK! bL``per_coif9_55_md_pywtCoeffs.npyNUMPYv{'descr': '?-1S?-1SO?^m@nJx?_k@ز?A8.?  &@Kh?[%?G@`@@&hQ?EoI*@d[!?h8??@$@6?j4v Am[z?4kn?Fɀ\:޿I"?<@eG4F]J¯?kA?GO`𒙿HѿۚQ͑>?e4S<nxJ?ߡ?<][zx?v6?R ~Hpx8濶AKzEL(|tDZC?~+?&YY?UI ?w.]??!Pr>#({]?PK!v00asymw_coif9_55_md.npyNUMPYv{'descr': 'ޝѿl~<ڀ^?ui?R]-ѿ&'?D1?8?{?.Oߘ ?mI?xZr ݿ;V_ @W_ۓ`?ۿ.PqT@񹿹qQD|!9=Ve俦o~?fvd ۲4?VEl]ʿK?8?1B?nQ;?ƍhô?}|?3]S-1On?о3 PK!y00 asymw_coif9_55_ma_pywtCoeffs.npyNUMPYv{'descr': 'O?^m@nJx?_k@ز?A8.?  &@Kh?[%?G@`@@&hQ?EoI*@d[!?h8??@$@6?j4v Am[z?4kn?Fɀ\:޿I"?<@eG4F]J¯?kA?GO`𒙿HѿۚQ͑>?e4S<nxJ?ߡ?<][zx?v6?R ~Hpx8濶AKzEL(|tDZC?~+?&YY?UI ?w.]??!Pr>#({]?PK!v00 asymw_coif9_55_md_pywtCoeffs.npyNUMPYv{'descr': 'ޝѿl~<ڀ^?ui?R]-ѿ&'?D1?8?{?.Oߘ ?mI?xZr ݿ;V_ @W_ۓ`?ۿ.PqT@񹿹qQD|!9=Ve俦o~?fvd ۲4?VEl]ʿK?8?1B?nQ;?ƍhô?}|?3]S-1On?о3 PK!XXzpd_coif10_60_ma.npyNUMPYv{'descr': '=I{І߫=h/4DWM> @}>wNWϾryϠ>)!K0?p,K?2 %pc?0݃4zo+&?7,(v"?¿}K]?OQE=fDh?7|P?WLU8?اN-KL?G 9×?f ̫@*KCK?餺D?,S6=0ԿVL?$EL? 7Vgu 0# ǿ&7D/?^M?]}?Ğx~?oh q3=?)yW?{}Z?$*H?Sʞ?µ~? Kݿ3dY?^g0S{?b[G}r^\?f#8'6) ? 6 ҾW|D>PK!"XXzpd_coif10_60_md.npyNUMPYv{'descr': '6QW޾J#R?+Ң@Kt d?GxXR^nK?q+<豿nB^?5+ֿ7(Z?66?$IP&?uK?bmҟISտ_ ?<{?\Q`?Bwĩse]ɃX_?~~ѿӢ?IPLNiIu?('},qΩ?ƱbOֿˍrj?HT{ P̿Eݳ#?p?xO ?$!s?PӔ@h"|+O?Tߖ(ӿXx2?vOQ?A:cy?#9papʂ G?Wa +  ?Y-Epb >oOZa]$r>ŕahB$G >})нjc5G=Y!<2PK!XXzpd_coif10_60_ma_pywtCoeffs.npyNUMPYv{'descr': '=I{І߫=h/4DWM> @}>wNWϾryϠ>)!K0?p,K?2 %pc?0݃4zo+&?7,(v"?¿}K]?OQE=fDh?7|P?WLU8?اN-KL?G 9×?f ̫@*KCK?餺D?,S6=0ԿVL?$EL? 7Vgu 0# ǿ&7D/?^M?]}?Ğx~?oh q3=?)yW?{}Z?$*H?Sʞ?µ~? Kݿ3dY?^g0S{?b[G}r^\?f#8'6) ? 6 ҾW|D>PK!"XXzpd_coif10_60_md_pywtCoeffs.npyNUMPYv{'descr': '6QW޾J#R?+Ң@Kt d?GxXR^nK?q+<豿nB^?5+ֿ7(Z?66?$IP&?uK?bmҟISտ_ ?<{?\Q`?Bwĩse]ɃX_?~~ѿӢ?IPLNiIu?('},qΩ?ƱbOֿˍrj?HT{ P̿Eݳ#?p?xO ?$!s?PӔ@h"|+O?Tߖ(ӿXx2?vOQ?A:cy?#9papʂ G?Wa +  ?Y-Epb >oOZa]$r>ŕahB$G >})нjc5G=Y!<2PK!nXXsp0_coif10_60_ma.npyNUMPYv{'descr': '00־cAr?3L:}L`?R2&bL`?f7 RX?D%ATiпE6?{P@?i ?b=O9?)pxJMտ1N޻? H4?C`?P=DwH=RɃV _?~ѿM?uPLNi,u?('},qΩ?aOֿxc?<{̿G'?5q?v9?{}Z@=B쿘P*?Կ|?: xIja1?xWMQ:Rv?;!`_>.RC?{Cq'AGo?V7oD>GF0*-Fp>cڿ -@QMM>I̽0$ >Ņ=IKr90PK!nXXsp0_coif10_60_ma_pywtCoeffs.npyNUMPYv{'descr': '00־cAr?3L:}L`?R2&bL`?f7 RX?D%ATiпE6?{P@?i ?b=O9?)pxJMտ1N޻? H4?C`?P=DwH=RɃV _?~ѿM?uPLNi,u?('},qΩ?aOֿxc?<{̿G'?5q?v9?{}Z@=B쿘P*?Կ|?: xIja1?xWMQ:Rv?;!`_>.RC?{Cq'AGo?V7oD>GF0*-Fp>cڿ -@QMM>I̽0$ >Ņ=IKr90PK!hXXsym_coif10_60_ma.npyNUMPYv{'descr': '?Ϸh !XտWTp?׏?6a?ej i8w㿹JL鿷iNȃ[_?~ѿ?bNLNi8fu?c('},qΩ?rYbOֿy_xj?WZ{I̿~Ȼ$?X/=?$*?sg(f@;Wu뿌Őh?/.;ۿ_X$ɿ ?ZٞMX(M?KzJxkɿ-,Lwr޿]To8>;?2ȗBp?\fF??Ϸh !XտWTp?׏?6a?ej i8w㿹JL鿷iNȃ[_?~ѿ?bNLNi8fu?c('},qΩ?rYbOֿy_xj?WZ{I̿~Ȼ$?X/=?$*?sg(f@;Wu뿌Őh?/.;ۿ_X$ɿ ?ZٞMX(M?KzJxkɿ-,Lwr޿]To8>;?2ȗBp?\fF??ިk@п($j0?LTƔ@&KoF Vm? EwrTҿO2$?t#oc翵_PK!3 XX symw_coif10_60_ma_pywtCoeffs.npyNUMPYv{'descr': '?ިk@п($j0?LTƔ@&KoF Vm? EwrTҿO2$?t#oc翵_PK!)XXppd_coif10_60_ma.npyNUMPYv{'descr': '9L?&` 濍,u 0 p !ǿ%l0?tڄM?T]?JK'G9?7"_"F?WI? ?_(?Mu@u_K?餺D?S6=0ԿOJ?>9L?&` 濍,u 0 p !ǿ%l0?tڄM?T]?JK'G9?7"_"F?WI? ?_(?Mu@u_K?PK!"`XXppd_coif10_60_md.npyNUMPYv{'descr': 'X?e _(Կ&%??˾?)m\?ū>]w<]VɃd_?Ҳ>~ѿL?k`RLNiu?('},qΩ?.aOֿaF[?y{{)K̿id .?? 埌?RR@Ǭf=0R:?bpY/?n?_ǿB >X?e _(Կ&%??˾?)m\?ū>]w<]VɃd_?Ҳ>~ѿL?k`RLNiu?('}PK!)XXppd_coif10_60_ma_pywtCoeffs.npyNUMPYv{'descr': '9L?&` 濍,u 0 p !ǿ%l0?tڄM?T]?JK'G9?7"_"F?WI? ?_(?Mu@u_K?餺D?S6=0ԿOJ?>9L?&` 濍,u 0 p !ǿ%l0?tڄM?T]?JK'G9?7"_"F?WI? ?_(?Mu@u_K?PK!"`XXppd_coif10_60_md_pywtCoeffs.npyNUMPYv{'descr': 'X?e _(Կ&%??˾?)m\?ū>]w<]VɃd_?Ҳ>~ѿL?k`RLNiu?('},qΩ?.aOֿaF[?y{{)K̿id .?? 埌?RR@Ǭf=0R:?bpY/?n?_ǿB >X?e _(Կ&%??˾?)m\?ū>]w<]VɃd_?Ҳ>~ѿL?k`RLNiu?('}PK!QXXsp1_coif10_60_ma.npyNUMPYv{'descr': 'R@#\^ @~lID꿗a:?s~?`L/ ?KCfQpJ?SoM?H=@A@K?餺D?|S6=0ԿdG?YSL? 5fu (Ƃ!ǿZ$0?=M?;,g?^V:~w?sjvw*u?ӟ2?c~}?߬?'u? z1?$6?,&r|}M%,9* 8=v30k` 3ӱM-5ں8*@;PK!}XXsp1_coif10_60_md.npyNUMPYv{'descr': 'i;5ҾZO>|Q>&mN>2#$wj]=̵mTz<= RR@#\^ @~lID꿗a:?s~?`L/ ?KCfQpJ?SoM?H=@A@K?餺D?|S6=0ԿdG?YSL? 5fu (Ƃ!ǿZ$0?=M?;,g?^V:~w?sjvw*u?ӟ2?c~}?߬?'u? z1?$6?,&r|}M%,9* 8=v30k` 3ӱM-5ں8*@;PK!}XXsp1_coif10_60_md_pywtCoeffs.npyNUMPYv{'descr': 'i;5ҾZO>|Q>&mN>2#$wj]=̵mTz<= RT}7p8Gm[VLJy?\n?,?)k迒~{lPK!lU$XX asym_coif10_60_ma_pywtCoeffs.npyNUMPYv{'descr': 'T}7p8Gm[VLJy?\n?,?)k迒~{lPK!TW{XXasymw_coif10_60_ma.npyNUMPYv{'descr': 'A5?*MS?kg0^z??U)OlտU?g0 ?uf?jowA Sshȃ_?5~ѿl#?<[JLNiu?#('},qΩ?#`OֿP?I$D{L:̿!&sq4?pEUm?4S[?T '@H俐25? 3H?-_NHUD_d쿀; 7$/4e?hి؛4c?옦/-Um?K??)RnF@$`!0mп6grT?PΫ$<=n?vc?_?PK!TW{XX!asymw_coif10_60_ma_pywtCoeffs.npyNUMPYv{'descr': 'A5?*MS?kg0^z??U)OlտU?g0 ?uf?jowA Sshȃ_?5~ѿl#?<[JLNiu?#('},qΩ?#`OֿP?I$D{L:̿!&sq4?pEUm?4S[?T '@H俐25? 3H?-_NHUD_d쿀; 7$/4e?hి؛4c?옦/-Um?K??)RnF@$`!0mп6grT?PΫ$<=n?vc?_?PK!wB``zpd_coif10_61_ma.npyNUMPYv{'descr': '$>G:\Ll>\hF0Yu>S<&j?lÌ&8UX*C?C|Bl\JVs?+AƆ/񓴗?BG?0#?y# *?*Xl\'9.ƿ[)?,1?92 ?D2!/ F&ڿ3C XV?V࿡0͡yƿ&^.{4Âp?i9?+U^u5{?(PL <0hؿg?4ǒ c?)Qaop,п>M-?5?23ֿNҿ̃Ֆ?TT?okL¿vxmfvbgƔyQ uq݌?( yϪ_f?Cj1`N oa-?=V~>Gx_PK!GhY``zpd_coif10_61_md.npyNUMPYv{'descr': 'hW gC[1?nWb|x?ǔNߤ{߬?46¿9V?joe ?KST?q'Ǜ?cm0 =_ǿ+Jyn @h ,Ϳ7+XLh77?(?Tjִ /1-+?'K){?EZ($i_J,S5ٿ u?x3B?rΦU5 ӎ? ~ZZ(?ϖ>k?yS?"?mn?&rzqB#ڿZ0F?xpaY}ރ?+w,7Qc?OC}Qf<>?P;)3w/k?@2Sz>Xdi>>|jqk*<>9|3{+=c%.+|ò1=PK!wB``zpd_coif10_61_ma_pywtCoeffs.npyNUMPYv{'descr': '$>G:\Ll>\hF0Yu>S<&j?lÌ&8UX*C?C|Bl\JVs?+AƆ/񓴗?BG?0#?y# *?*Xl\'9.ƿ[)?,1?92 ?D2!/ F&ڿ3C XV?V࿡0͡yƿ&^.{4Âp?i9?+U^u5{?(PL <0hؿg?4ǒ c?)Qaop,п>M-?5?23ֿNҿ̃Ֆ?TT?okL¿vxmfvbgƔyQ uq݌?( yϪ_f?Cj1`N oa-?=V~>Gx_PK!GhY``zpd_coif10_61_md_pywtCoeffs.npyNUMPYv{'descr': 'hW gC[1?nWb|x?ǔNߤ{߬?46¿9V?joe ?KST?q'Ǜ?cm0 =_ǿ+Jyn @h ,Ϳ7+XLh77?(?Tjִ /1-+?'K){?EZ($i_J,S5ٿ u?x3B?rΦU5 ӎ? ~ZZ(?ϖ>k?yS?"?mn?&rzqB#ڿZ0F?xpaY}ރ?+w,7Qc?OC}Qf<>?P;)3w/k?@2Sz>Xdi>>|jqk*<>9|3{+=c%.+|ò1=PK!|{%``sp0_coif10_61_ma.npyNUMPYv{'descr': ' ?9_  ?'i ??5Y?Ҷl?}]51?03?|"!z?O @$?ޤC??ut2SJ'Ŀ?OX??я?d"})ڿ½yV?V࿧0͡yƿR^.{Âp?v9?E S^uIV{?yPLu7ؿ%f[k?oc?q &եп!{oʾ{`> c&UY>Jx}S?E)z|l>?,ڱ!ںL?1F٤4?ucDz4?M{?NF⿲ǿl @ƧdͿ@ h ?^?pr~-쿢?5){?XTZN0aJ'S5ٿ u?3B?rP]gv\ yby?g4࿪Zd*?763?S)G-? ?K?@s✻~ z?BNؠ],q􃨛?:Aទ&$?tp .°Y?@/ Aԑ #?B)YS4>l` >ULڥChQ~C6>, tUj=s_wy{ = 4}PK!|{%``sp0_coif10_61_ma_pywtCoeffs.npyNUMPYv{'descr': ' ?9_  ?'i ??5Y?Ҷl?}]51?03?|"!z?O @$?ޤC??ut2SJ'Ŀ?OX??я?d"})ڿ½yV?V࿧0͡yƿR^.{Âp?v9?E S^uIV{?yPLu7ؿ%f[k?oc?q &եп!{oʾ{`> c&UY>Jx}S?E)z|l>?,ڱ!ںL?1F٤4?ucDz4?M{?NF⿲ǿl @ƧdͿ@ h ?^?pr~-쿢?5){?XTZN0aJ'S5ٿ u?3B?rP]gv\ yby?g4࿪Zd*?763?S)G-? ?K?@s✻~ z?BNؠ],q􃨛?:Aទ&$?tp .°Y?@/ Aԑ #?B)YS4>l` >ULڥChQ~C6>, tUj=s_wy{ = 4}PK!A9``sym_coif10_61_ma.npyNUMPYv{'descr': '޿JῩB,;?ToĎܿw6N]3wE}ܛ<P?-{e? ;i?Vߊq{4տ {L?L^-9WMyѧ?/Z?"? #i6ڿ `PV?V࿧0͡yƿU^.{ѥÂp?9?!R^u{?;hPLUWؿMo?ac?N$0+пD,?rVj?*ֿPӿm@3?_S+-?y?S?u=' bxۿ_ |?Ȍ z3?O2tX.?=п߫S&_ؿwF?Nr?}>ÃsVzU?PK!Ϯ``sym_coif10_61_md.npyNUMPYv{'descr': '࿞2X_핿 ?ZP?%I\?"H$⿜Fnbƿig @G^.Ϳ g˯/j6:?1?M5$ґ-쿎4?]m){?Z0gJzuS5ٿZ u?4B?rP]gv鿽t =~e? (ǎp3Y,?`u?SR?H2?m|Y?۔m鿭ڷ?ѿx3-w*޿Mh8q=oYֿ2(c޿JῩB,;?ToĎܿw6N]3wE}ܛ<P?-{e? ;i?Vߊq{4տ {L?L^-9WMyѧ?/Z?"? #i6ڿ `PV?V࿧0͡yƿU^.{ѥÂp?9?!R^u{?;hPLUWؿMo?ac?N$0+пD,?rVj?*ֿPӿm@3?_S+-?y?S?u=' bxۿ_ |?Ȍ z3?O2tX.?=п߫S&_ؿwF?Nr?}>ÃsVzU?PK!Ϯ``sym_coif10_61_md_pywtCoeffs.npyNUMPYv{'descr': '࿞2X_핿 ?ZP?%I\?"H$⿜Fnbƿig @G^.Ϳ g˯/j6:?1?M5$ґ-쿎4?]m){?Z0gJzuS5ٿZ u?4B?rP]gv鿽t =~e? (ǎp3Y,?`u?SR?H2?m|Y?۔m鿭ڷ?ѿx3-w*޿Mh8q=oYֿ2(c;UܺŃ¿$5a?o܆;L?w?U̿D-߿{c:̿إ?b d?![5gѿhV۸׿!բ?*2?~ϴ˿Yw[>?PK! $``symw_coif10_61_md.npyNUMPYv{'descr': '؎bSܿ6?VǴG]?}?%?2M֜ρO?PK!'`` symw_coif10_61_ma_pywtCoeffs.npyNUMPYv{'descr': ';UܺŃ¿$5a?o܆;L?w?U̿D-߿{c:̿إ?b d?![5gѿhV۸׿!բ?*2?~ϴ˿Yw[>?PK! $`` symw_coif10_61_md_pywtCoeffs.npyNUMPYv{'descr': '؎bSܿ6?VǴG]?}?%?2M֜ρO?PK!ǔ``ppd_coif10_61_ma.npyNUMPYv{'descr': '0< ?!I͠+?סnR?wJ$\m῱v6qOȿEHC?4x @-J,οeĻKXr?\ ?YҵN)ұ-쿜R?<*{?j"Z jUJ5lտނua՝ ??zf6QS?+r?m&z)Iοa*I(?}P?gV9T?sl?]?a⿚ ?p3>K0< ?!I͠+?סnR?wJ$\m῱v6qOȿEHC?4x @-J,οeĻKXr?\ ?YҵN)ұ-쿜R?<*{?j"Z jUJ5lտނua՝ ??zf6QS?+r?m&z)Iοa*I(?}P?gV9T?sl?]?a⿚ ?p3>K~%bd?H8E?[ؕzX:Cr|?q3j+g@?7}?)Z7K? }r?_=t⿿ vhǿQK`m @!Ϳ[{hu[?P??0δDŽ-v?~){?T AZ}]J 0S5ٿa u?3B?r~W; ?wb࿚p *?"7W_?G?i? 5&?|߿C`?ʄ,WF3Vת? D&t@pK?;#zs*n\?rRC'p'?`t WZS>Oݖž*>sҭsIpC>#- "="'pexJ3=@ny~%bd?H8E?[ؕzX:Cr|?q3j+g@?7}?)Z7K? }r?_=t⿿ vhǿQK`m @!Ϳ[{hu[?P??0δDŽ-v?~){?T AZ}]J 0S5ٿa u?3B?r~W; ?wb࿚p *?"7W_?G?i? 5&?|߿C`?ʄ,WF3Vת? D&t@pK?;#zs*n\?rRC'p'?`t WZS>Oݖž*>sҭsIpC>#- "="'pexJ3=@nyKW^7Ϡk>ᴫ[]￸WVп4фQ$?p 2b;̿^]jRU E?:Xd?PK!xxper_coif10_61_ma_pywtCoeffs.npyNUMPYv{'descr': 'KW^7Ϡk>ᴫ[]￸WVп4фQ$?p 2b;̿^]jRU E?:Xd?PK!TLX``asym_coif10_61_ma.npyNUMPYv{'descr': 'O?VW?V࿙%0͡yƿ=].{Âp?_.9?Y^us{?'PLw Hؿ _?R*c?~2-пVީ? k ?>ֿKxJִѿ jl? }{?j O$ӿV7 ſY?fп4`LͿUZ4DU ?A"'@?ko-}uk ԃ?/ xUPK!C<``asym_coif10_61_md.npyNUMPYv{'descr': '!Z WJ>S5ٿD u?2B?rLCF鿭e DB?}^ S#? ? `v?cz?%_ŃK?5WŪ: &ztظ?\ ?Z6?#Pc?!2?U2?VQ-׿P;G? w:tAܿut2JݿP2@h&AYfwR?_'E@ۿ],?**rտPK!TLX`` asym_coif10_61_ma_pywtCoeffs.npyNUMPYv{'descr': 'O?VW?V࿙%0͡yƿ=].{Âp?_.9?Y^us{?'PLw Hؿ _?R*c?~2-пVީ? k ?>ֿKxJִѿ jl? }{?j O$ӿV7 ſY?fп4`LͿUZ4DU ?A"'@?ko-}uk ԃ?/ xUPK!C<`` asym_coif10_61_md_pywtCoeffs.npyNUMPYv{'descr': '!Z WJ>S5ٿD u?2B?rLCF鿭e DB?}^ S#? ? `v?cz?%_ŃK?5WŪ: &ztظ?\ ?Z6?#Pc?!2?U2?VQ-׿P;G? w:tAܿut2JݿP2@h&AYfwR?_'E@ۿ],?**rտPK!-``asymw_coif10_61_ma.npyNUMPYv{'descr': ',2?]4:ſK?meu2?0?Yb+Aڿ9TjV?V࿣ 0͡yƿ-^.{߲Âp?"9?'O^u{?#.[UPL˥ؿB?q?c?CL;%Bпdot?m)g?'^KPֿ "Qӿhv?U`?>/&O?lMlU} q&DfᓚإD:')"! @H^-ge3y+ðPK!>!}``asymw_coif10_61_md.npyNUMPYv{'descr': ',2?]4:ſK?meu2?0?Yb+Aڿ9TjV?V࿣ 0͡yƿ-^.{߲Âp?"9?'O^u{?#.[UPL˥ؿB?q?c?CL;%Bпdot?m)g?'^KPֿ "Qӿhv?U`?>/&O?lMlU} q&DfᓚإD:')"! @H^-ge3y+ðPK!>!}``!asymw_coif10_61_md_pywtCoeffs.npyNUMPYv{'descr': '"P4P62Y" _>A%vI'>(ɡ;%^c/>| U*."?wgsA9IyQ?9,g_ A?#SDc?9>bH`?a+޿#շS\%-?x19?r?n(? ̍? 778-qvC[?ca?S Wۿ^qg{?IDп9HC?3#5ǿ!ŗvڭ?o@x6l8@1ti?rJv Иn?Z?D.I _?5?S@ ? 1?vϿJ'TK?|?  ߿uؿ#X0пN̹P?Y?j!^6R 1?:b ־q}$qᾦ>:x# MgK>PK!ֈzpd_coif11_66_md.npyNUMPYv{'descr': 'dHР侐=?~T#x5sT?N"ojG?Ą$q鈁X?Sm?wA?|38yb?9^o@WaۿdIӉRY俥d@S!ح1.m9n5T޿D2^Xr?"]ӿx鞿=?]5S?;Z -ٿ-zee?hݬ5['f?P kŶ\|?^H?]L?@6")Z(?4NO=gKHە?9ӷBDw\S?tPtKwBVd? WNn 6b3?*;D.>gtξZl> &Ӽhz3&dҲo(>DG #s=AOϠTX]o=t( ߵo3"P4P62Y" _>A%vI'>(ɡ;%^c/>| U*."?wgsA9IyQ?9,g_ A?#SDc?9>bH`?a+޿#շS\%-?x19?r?n(? ̍? 778-qvC[?ca?S Wۿ^qg{?IDп9HC?3#5ǿ!ŗvڭ?o@x6l8@1ti?rJv Иn?Z?D.I _?5?S@ ? 1?vϿJ'TK?|?  ߿uؿ#X0пN̹P?Y?j!^6R 1?:b ־q}$qᾦ>:x# MgK>PK!ֈzpd_coif11_66_md_pywtCoeffs.npyNUMPYv{'descr': 'dHР侐=?~T#x5sT?N"ojG?Ą$q鈁X?Sm?wA?|38yb?9^o@WaۿdIӉRY俥d@S!ح1.m9n5T޿D2^Xr?"]ӿx鞿=?]5S?;Z -ٿ-zee?hݬ5['f?P kŶ\|?^H?]L?@6")Z(?4NO=gKHە?9ӷBDw\S?tPtKwBVd? WNn 6b3?*;D.>gtξZl> &Ӽhz3&dҲo(>DG #s=AOϠTX]o=t( ߵo3? q?{?5,N? 6-_[?w֒a?S Wۿkqg{? IDп 9HC?#5ǿ$vŗڭ?5̔@8|&@(j?WCw0n?ek?2~#7`?سNl?g[%?a\zϿFL&]q?dH F1?RRt࿵}bֿoYcFh@fܿO&߿N%㦋߿jS߿4=߿'F @߿ǽKQ߿zxݔO߿PK!H΋sp0_coif11_66_md.npyNUMPYv{'descr': ')&p!?6@]E3fkd?K~R4Ù?Y6?M;?{O7&Q?JL?}IڬkR"AMJ?Fr@"?w{ۿ&S 俕.\@u0!{34T޿J=vi>gU0&?]ӿ 鞿M?]5S?;Z{I-翛skٿ C4d?h4+b?"rȭqX ?LM?9ȋ@-Ѓ#&)|ܚkLS75?^z ,a-A?6rY]?t+DD'?nʀK̬K>0d'\Č6 >\ omc#@A>Ȥ)z=Aa ,-x=2Ϩ1? q?{?5,N? 6-_[?w֒a?S Wۿkqg{? IDп 9HC?#5ǿ$vŗڭ?5̔@8|&@(j?WCw0n?ek?2~#7`?سNl?g[%?a\zϿFL&]q?dH F1?RRt࿵}bֿoYcFh@fܿO&߿N%㦋߿jS߿4=߿'F @߿ǽKQ߿zxݔO߿PK!H΋sp0_coif11_66_md_pywtCoeffs.npyNUMPYv{'descr': ')&p!?6@]E3fkd?K~R4Ù?Y6?M;?{O7&Q?JL?}IڬkR"AMJ?Fr@"?w{ۿ&S 俕.\@u0!{34T޿J=vi>gU0&?]ӿ 鞿M?]5S?;Z{I-翛skٿ C4d?h4+b?"rȭqX ?LM?9ȋ@-Ѓ#&)|ܚkLS75?^z ,a-A?6rY]?t+DD'?nʀK̬K>0d'\Č6 >\ omc#@A>Ȥ)z=Aa ,-x=2Ϩ1?Qwv翟 D]?^UCox߿D]?IB7@ʍs ucۿFX WYmJ2@UϾ τBpp-T޿mĕ܇U5K??gaLݜ]ӿ?鞿=?]5S?;Z;-sQCٿκ}d?694心DU^?`e#!yau?>?=!zJ_@π|U(Ͽg?HǶrX廐"&J?)BCѿ"?p`z?]E:ѿK˪=?*!@?HeĿR9l?Q0gɿꊁ0?2ljӿ/a俭E?(3D{?o??PK!^usym_coif11_66_ma_pywtCoeffs.npyNUMPYv{'descr': '?Qwv翟 D]?^UCox߿D]?IB7@ʍs ucۿFX WYmJ2@UϾ τBpp-T޿mĕ܇U5K??gaLݜ]ӿ?鞿=?]5S?;Z;-sQCٿκ}d?694心DU^?`e#!yau?>?=!zJ_@π|U(Ͽg?HǶrX廐"&J?)BCѿ"?p`z?]E:ѿK˪=?*!@?HeĿR9l?Q0gɿꊁ0?2ljӿ/a俭E?(3D{?o??PK!pisymw_coif11_66_ma.npyNUMPYv{'descr': '7?V0?m{Asca?S Wۿjqg{?IDпͰ9HC?O5#5ǿTzŗ½ڭ?@1*@+sj?+tfMwcn?.eiJ?Lq `??9u{?'"Ͽ!Jg% ` ?u3P?C Uw6ܿ-5?0-޿ݿFiW?3a?w2 nةVٱ ӿrcE?VO?s>u?]Kڟ?&=Br?PK!;5symw_coif11_66_md.npyNUMPYv{'descr': 'Ǻ@_}!鿦n]yf@T޿3Ք񿕉^*?A]ӿ4鞿+?]5S?;Z⿃P-翵ٿ%0d?47x4忯ʪвc?c⿝ql?9Jq?"4C@&1Xm|ƿLeg@Qt@KO?A.?VA?ml?0$7?HQ׿(k鿔4`࿀BU%?V6 ?:Nugu۴Wֿs_s;b?j+YgpU߿zMjPK!pi symw_coif11_66_ma_pywtCoeffs.npyNUMPYv{'descr': '7?V0?m{Asca?S Wۿjqg{?IDпͰ9HC?O5#5ǿTzŗ½ڭ?@1*@+sj?+tfMwcn?.eiJ?Lq `??9u{?'"Ͽ!Jg% ` ?u3P?C Uw6ܿ-5?0-޿ݿFiW?3a?w2 nةVٱ ӿrcE?VO?s>u?]Kڟ?&=Br?PK!;5 symw_coif11_66_md_pywtCoeffs.npyNUMPYv{'descr': 'Ǻ@_}!鿦n]yf@T޿3Ք񿕉^*?A]ӿ4鞿+?]5S?;Z⿃P-翵ٿ%0d?47x4忯ʪвc?c⿝ql?9Jq?"4C@&1Xm|ƿLeg@Qt@KO?A.?VA?ml?0$7?HQ׿(k鿔4`࿀BU%?V6 ?:Nugu۴Wֿs_s;b?j+YgpU߿zMjPK!+`xppd_coif11_66_ma.npyNUMPYv{'descr': 'V`0@ ?kc@ĶeۿBKPLXPn@I#!v/0樟5T޿Y_pkW迿?꿆3œ]ӿ 鞿?]5S?;Z⿡[- Uٿ=d?fz4URta?j)87? "?Bk@ol/?x?V`0@ ?kc@ĶeۿBKPLXPn@I#!v/0樟5T޿Y_pkW迿?꿆3œ]ӿ 鞿?]5S?PK!+`xppd_coif11_66_ma_pywtCoeffs.npyNUMPYv{'descr': 'V`0@ ?kc@ĶeۿBKPLXPn@I#!v/0樟5T޿Y_pkW迿?꿆3œ]ӿ 鞿?]5S?;Z⿡[- Uٿ=d?fz4URta?j)87? "?Bk@ol/?x?V`0@ ?kc@ĶeۿBKPLXPn@I#!v/0樟5T޿Y_pkW迿?꿆3œ]ӿ 鞿?]5S?PK!#UIsp1_coif11_66_ma.npyNUMPYv{'descr': '@вi?cv9gn?z?\_??Í?wTϿx*$x5G? ^ͯ?=vga߿UÊٿ 71Ƶ9?bT6@ M@3I@eƋ*@t8(@28U!@.ݺ#@r/P8&@=T(@PK!J;dsp1_coif11_66_md.npyNUMPYv{'descr': 'xNѦS\#?}QDKcIh?pO4C@?E?[-W"õ0?A(Ubؿ;DE!?wV9q?oA.e@f:(NH!ۿtR俰~[保{Anl@V(!鿝f-f֫7T޿B=񿍬e ?ӱJbα]ӿ鞿 ?]5S?;Z­-dٿ)e?@=15;qg?Ñ᥶}E?T+ka?I97#@ :x迴Ȇk?[w#)a8?r|+l9?}}K{ޫh?\NtR-37?&zx. E>%]Y۾\Ч>@5Famc>l~=4͐>NĽsނ=5$9@вi?cv9gn?z?\_??Í?wTϿx*$x5G? ^ͯ?=vga߿UÊٿ 71Ƶ9?bT6@ M@3I@eƋ*@t8(@28U!@.ݺ#@r/P8&@=T(@PK!J;dsp1_coif11_66_md_pywtCoeffs.npyNUMPYv{'descr': 'xNѦS\#?}QDKcIh?pO4C@?E?[-W"õ0?A(Ubؿ;DE!?wV9q?oA.e@f:(NH!ۿtR俰~[保{Anl@V(!鿝f-f֫7T޿B=񿍬e ?ӱJbα]ӿ鞿 ?]5S?;Z­-dٿ)e?@=15;qg?Ñ᥶}E?T+ka?I97#@ :x迴Ȇk?[w#)a8?r|+l9?}}K{ޫh?\NtR-37?&zx. E>%]Y۾\Ч>@5Famc>l~=4͐>NĽsނ=5$9V`0@ ?kc@PK!4وper_coif11_66_ma_pywtCoeffs.npyNUMPYv{'descr': 'V`0@ ?kc@PK!^Ԉasym_coif11_66_ma.npyNUMPYv{'descr': ' @kX!5Z!ic$=T޿EU^ |#p?D꿁Š]ӿY0鞿=?]5S?;ZU)-cٿM;Mf?K-53 &o?>EKQi~M?*~ۚl? [@Sx=쿭*^?wNQVI6u?N! @GU .)?e8S] ? &^ǿ(p߿ ?mw=B?_ܿ4Q e?za9?`Կ Ts?YA0 ȉ?6?OأE63D{^o?ٿPK!^Ԉ asym_coif11_66_ma_pywtCoeffs.npyNUMPYv{'descr': ' @kX!5Z!ic$=T޿EU^ |#p?D꿁Š]ӿY0鞿=?]5S?;ZU)-cٿM;Mf?K-53 &o?>EKQi~M?*~ۚl? [@Sx=쿭*^?wNQVI6u?N! @GU .)?e8S] ? &^ǿ(p߿ ?mw=B?_ܿ4Q e?za9?`Կ Ts?YA0 ȉ?6?OأE63D{^o?ٿPK!Iasymw_coif11_66_ma.npyNUMPYv{'descr': '&N??<:i-wmX?nՙa?S Wۿlqg{?}!IDпs9HC?[#5ǿqŗ|lڭ?5@?8h"@Q.k?.x^uln?;6?``?Q-?鲐;0?Mݤ пkZ2 ׾?pl? ȿH}ۿ*&{wٰS?n IN IŰJ?[(<|PK!oAasymw_coif11_66_md.npyNUMPYv{'descr': '6?K?5xy:տ!?, =?͕Mr ڭ?`@>38qݿ9l?kT@qj)bua1ۿra俲(^&쯢#@iB ?QN+(T޿FP#p-?/+]ӿ鞿p?]5S?;Zs~-翁Bٿ]7d?VjY4忧.na?.xAD,?I)?݋@n\ ˬ?=7?wz ʬkǁؿ(]?Ɠiy'1޿!?53|^{P?.{ ?y]?:V%.F pAbgu?}CW?LR_?;b<?Y?x^pU?zMj?PK!I!asymw_coif11_66_ma_pywtCoeffs.npyNUMPYv{'descr': '&N??<:i-wmX?nՙa?S Wۿlqg{?}!IDпs9HC?[#5ǿqŗ|lڭ?5@?8h"@Q.k?.x^uln?;6?``?Q-?鲐;0?Mݤ пkZ2 ׾?pl? ȿH}ۿ*&{wٰS?n IN IŰJ?[(<|PK!oA!asymw_coif11_66_md_pywtCoeffs.npyNUMPYv{'descr': '6?K?5xy:տ!?, =?͕Mr ڭ?`@>38qݿ9l?kT@qj)bua1ۿra俲(^&쯢#@iB ?QN+(T޿FP#p-?/+]ӿ鞿p?]5S?;Zs~-翁Bٿ]7d?VjY4忧.na?.xAD,?I)?݋@n\ ˬ?=7?wz ʬkǁؿ(]?Ɠiy'1޿!?53|^{P?.{ ?y]?:V%.F pAbgu?}CW?LR_?;b<?Y?x^pU?zMj?PK!Fzpd_coif11_67_ma.npyNUMPYv{'descr': 'R~pti#H>T@1D>xǏݾ>,ɨ#>qJ)0#19O?FC Fm֊~?{ÈF?HO?W: {Z˿Q~ #C?T$s閆)G{Fݿ("Y?Xz*?Y}6أU%W]뿉zn? 浤?/B?q?n~w(K,u/YT?rF??(cît?0fҿ_:],  ؿx_TUg῵ˤ-q d%?FXAj?K$?qGQI{2ĿTy?)Ŀd~׋?f)XRMdx?occ Q?9>ʦH?[A}P>Eu:+|z^>PK!w^jzpd_coif11_67_md.npyNUMPYv{'descr': 'd:Ӿx}!>P(BhX1m4?w;^Ew? eDvEX%~!Ji8}P&п/1?*9,v>?t(ȿF~L7|Sn_?D4d?98Q DPϿ"?xYu? }c?MTbDmxUaÿ3{g?{kz?MQa|YK+?}?fʄƿy͛Tp_K+?袌SƩMϿYp?uHaLEIn᪒?AP)U8V?0Ys^3X`?z$FGL̔*?"c qw>j2C/eAa;Ʉpڂ> g7A]8E> 4m=Ĉ;üWw4\]=o:A)zD>R~pti#H>T@1D>xǏݾ>,ɨ#>qJ)0#19O?FC Fm֊~?{ÈF?HO?W: {Z˿Q~ #C?T$s閆)G{Fݿ("Y?Xz*?Y}6أU%W]뿉zn? 浤?/B?q?n~w(K,u/YT?rF??(cît?0fҿ_:],  ؿx_TUg῵ˤ-q d%?FXAj?K$?qGQI{2ĿTy?)Ŀd~׋?f)XRMdx?occ Q?9>ʦH?[A}P>Eu:+|z^>PK!w^jzpd_coif11_67_md_pywtCoeffs.npyNUMPYv{'descr': 'd:Ӿx}!>P(BhX1m4?w;^Ew? eDvEX%~!Ji8}P&п/1?*9,v>?t(ȿF~L7|Sn_?D4d?98Q DPϿ"?xYu? }c?MTbDmxUaÿ3{g?{kz?MQa|YK+?}?fʄƿy͛Tp_K+?袌SƩMϿYp?uHaLEIn᪒?AP)U8V?0Ys^3X`?z$FGL̔*?"c qw>j2C/eAa;Ʉpڂ> g7A]8E> 4m=Ĉ;üWw4\]=o:A)zD>O.>5*jPSt}Dz9?ztYWۊu?d$V?tUֵⅮvo?^f쿶^DUzBZϿl`4(?KߠBM5?7q!ȿrƿ]̠ l7G?])d?$ƆchN:DYcϿ׮"?u? }c?KLTjDmUaÿ3{g?{kz?ݟ+?ڷ}?8ƃƿcOr`w&;U ?Lq3!7bϿ?'JVJ ?t)Az D?GA⢿ q?7Ġ33urvp?RQJX)09@?f)Ȼ$lO*?gQ+N) qw>Ÿ0z1u>(G z>} y߽_נˠ=f\WN<"TtfO.>5*jPSt}Dz9?ztYWۊu?d$V?tUֵⅮvo?^f쿶^DUzBZϿl`4(?KߠBM5?7q!ȿrƿ]̠ l7G?])d?$ƆchN:DYcϿ׮"?u? }c?KLTjDmUaÿ3{g?{kz?ݟ+?ڷ}?8ƃƿcOr`w&;U ?Lq3!7bϿ?'JVJ ?t)Az D?GA⢿ q?7Ġ33urvp?RQJX)09@?f)Ȼ$lO*?gQ+N) qw>Ÿ0z1u>(G z>} y߽_נˠ=f\WN<"Ttf7aƿ0T[翀?e,9@)ȿh.ma J3 >1~_%@5˿3Z[yԿe&?$#Xi/*NݿZV?j*?2YA@U'xU{뿉zn?浤?ہ/B?q?w@7,@-YT? ΀??Ny?^"t?iҿvDpؿf}V\Owu-@e2?@y"'y?-P?-1ȿ4Úȿ:M_?ٿyx5?`aV?Ups٘|o%?$'=dRVsp)aPK!d9sym_coif11_67_md.npyNUMPYv{'descr': '?pD&?%Q? wJx?}q?iP4?t`b$ۿFM#!?!ʸN;Fd8#I6꿨%8x?$ n;zfĿ&?a@:k?}i#)'S>d 廓p.!?K*W?PK!Zsym_coif11_67_ma_pywtCoeffs.npyNUMPYv{'descr': '7aƿ0T[翀?e,9@)ȿh.ma J3 >1~_%@5˿3Z[yԿe&?$#Xi/*NݿZV?j*?2YA@U'xU{뿉zn?浤?ہ/B?q?w@7,@-YT? ΀??Ny?^"t?iҿvDpؿf}V\Owu-@e2?@y"'y?-P?-1ȿ4Úȿ:M_?ٿyx5?`aV?Ups٘|o%?$'=dRVsp)aPK!d9sym_coif11_67_md_pywtCoeffs.npyNUMPYv{'descr': '?pD&?%Q? wJx?}q?iP4?t`b$ۿFM#!?!ʸN;Fd8#I6꿨%8x?$ n;zfĿ&?a@:k?}i#)'S>d 廓p.!?K*W?PK!Vsymw_coif11_67_ma.npyNUMPYv{'descr': '.?fPK;CZ@ZNbY?Yu? ?[?*z?TVo9bDA!/?hEtȍ?׾@-|88{hΨ?XnTb"?tHZ^ܹVX?kmɁ51>޿yvJ`^?U*H)?֭jY꿧=_UL-뿉zn?嵤?u/B?q?pwI,b2YT???2t?yՇҿ9y#4Hؿ;=YeK#xX㿦V9] ?8}rК?+?hg允.ؿ7eb?0ٿb^,z?GD?;@S=_6ȷ?nq_qOZ5ؿ#PK!+symw_coif11_67_md.npyNUMPYv{'descr': 'ʿ^2?2@.?fPK;CZ@ZNbY?Yu? ?[?*z?TVo9bDA!/?hEtȍ?׾@-|88{hΨ?XnTb"?tHZ^ܹVX?kmɁ51>޿yvJ`^?U*H)?֭jY꿧=_UL-뿉zn?嵤?u/B?q?pwI,b2YT???2t?yՇҿ9y#4Hؿ;=YeK#xX㿦V9] ?8}rК?+?hg允.ؿ7eb?0ٿb^,z?GD?;@S=_6ȷ?nq_qOZ5ؿ#PK!+ symw_coif11_67_md_pywtCoeffs.npyNUMPYv{'descr': 'ʿ^2?2@zȃc?{dE?9}2?u 4hW? )W4|aYЪmYHc4ED%u.?e(-*JpT?>;R?V\%Yۿn]?ѤbT&߿M(noo:?H6hGNF]C%ݿ5 S?Ѳ9+?^H@YuEU􏊳뿉zn?浤? /B?q?lw`-C,c&.YT?tnȀ? ?it? ҿ&TNؿɌh/Wbo依?vs ?m]VQ?.VQjF/)ÿ0- ;+XmQɿY H 'wd뿏Xzȃc?{dE?9}2?u 4hW? )W4|aYЪmYHc4ED%u.?e(-*JpT?>;R?V\%Yۿn]?ѤbT&߿M(noo:?H6hGNF]C%ݿ5 S?Ѳ9+?^H@YuEU􏊳뿉zn?浤? /B?q?lw`-C,c&.YT?tnȀ? ?it? ҿ&TNؿɌh/Wbo依?vs ?m]VQ?.VQjF/)ÿ0- ;+XmQɿY H 'wd뿏XTE{VD%%BU@ BG>Zۑ;8V5mA2϶A]/c?%)=f~n$z1ztWsoN5cu1;??k__!H Rݿ\-jY?54l*?OjYb jUbS뿉zn?-浤? z/B?Qfq?wJg,ǵ,YT?3π?= ?L ^t?ҿ&fӈўؿƉcey\ῡHHzu<?F,1\?B?rxl1 ߿=7C߂Q%h3yg/ 4s3Ǣy9gN؉_>6]=AFDb6XFLdtHHVkMsKPK!sp1_coif11_67_md.npyNUMPYv{'descr': 'YKH ZbN8?@`']/`|?B+'?yۣ $9N?{10aFAl-.(п*,'5? i9?#Ͷȿ|࣠ $~?xI?d?ܨe,A#ϿtU"?u? }c?NT`XDm Uaÿ3{g?{kz?z1N--?Gg|? ƿ/xŜ`fd?W/:ؑ:ԭqIT˿O|?YY QuC?GƿZD?/2⚹?N$H?+&VOHr?5 Y[nl#B?mV(k ? &S`(*>d*a&|>b&P\Mgb>Χ_o(טw\=JY a@ާJ=T+ƼPK!H<sp1_coif11_67_ma_pywtCoeffs.npyNUMPYv{'descr': 'TE{VD%%BU@ BG>Zۑ;8V5mA2϶A]/c?%)=f~n$z1ztWsoN5cu1;??k__!H Rݿ\-jY?54l*?OjYb jUbS뿉zn?-浤? z/B?Qfq?wJg,ǵ,YT?3π?= ?L ^t?ҿ&fӈўؿƉcey\ῡHHzu<?F,1\?B?rxl1 ߿=7C߂Q%h3yg/ 4s3Ǣy9gN؉_>6]=AFDb6XFLdtHHVkMsKPK!sp1_coif11_67_md_pywtCoeffs.npyNUMPYv{'descr': 'YKH ZbN8?@`']/`|?B+'?yۣ $9N?{10aFAl-.(п*,'5? i9?#Ͷȿ|࣠ $~?xI?d?ܨe,A#ϿtU"?u? }c?NT`XDm Uaÿ3{g?{kz?z1N--?Gg|? ƿ/xŜ`fd?W/:ؑ:ԭqIT˿O|?YY QuC?GƿZD?/2⚹?N$H?+&VOHr?5 Y[nl#B?mV(k ? &S`(*>d*a&|>b&P\Mgb>Χ_o(טw\=JY a@ާJ=T+ƼPK!7Kper_coif11_67_ma.npyNUMPYv{'descr': '=r^Ͽ/"?u?b }c?TPLTmDmUaÿ3{g?{kz?ݟ0 +?;}?6lƿ/QDab]Yq ?&~{i8lп>8?:Vg\\3?/-?EᆘڼtcͿ3?PK!7Kper_coif11_67_ma_pywtCoeffs.npyNUMPYv{'descr': '=r^Ͽ/"?u?b }c?TPLTmDmUaÿ3{g?{kz?ݟ0 +?;}?6lƿ/QDab]Yq ?&~{i8lп>8?:Vg\\3?/-?EᆘڼtcͿ3?PK!C@asym_coif11_67_ma.npyNUMPYv{'descr': '`%?{ ?63בп?W&?lۿ;/?('׿!Xq[,P֢?dV-˸?b޴!c?TU#?E(?z0?PK!>asym_coif11_67_md.npyNUMPYv{'descr': '.kEδ?r)d?|ݬ)LQϿ'"?s'u?Q }c?QT >DmUaÿ[3{g?{kz?A6*?4L}?b΋%ƿ\3d ?Fp?I!Ͽ#*WPK!C@ asym_coif11_67_ma_pywtCoeffs.npyNUMPYv{'descr': '`%?{ ?63בп?W&?lۿ;/?('׿!Xq[,P֢?dV-˸?b޴!c?TU#?E(?z0?PK!> asym_coif11_67_md_pywtCoeffs.npyNUMPYv{'descr': '.kEδ?r)d?|ݬ)LQϿ'"?s'u?Q }c?QT >DmUaÿ[3{g?{kz?A6*?4L}?b΋%ƿ\3d ?Fp?I!Ͽ#*WPK!E>asymw_coif11_67_ma.npyNUMPYv{'descr': 'O6Q(l??[㭫?W3?PK!E>!asymw_coif11_67_ma_pywtCoeffs.npyNUMPYv{'descr': 'O6Q(l??[㭫?W3?PK!#YZzpd_coif12_72_ma.npyNUMPYv{'descr': '#iI^& >پ?OqC>Y0J{0?3G'_?NStlsKva?]\nE&ɣ?nS#?[~E ¿"|xk?ڞO?=Q ?| J#B5xq`k?`BK's? u?]i?WSIV Q_忋74#ҿ_S^?4\z?Q ?R*\ؿF_>&鿫}47**TP?91ci?DbP ÿ'@OOG?ۄi]j?Kdk-?"ۿq\տX}O?j;??Nll/U?wտq5?募 a$?)|&p`?@d?9cgtc>A@4>PK!Pfzpd_coif12_72_md.npyNUMPYv{'descr': 'c Ᾱym?Uɷ7dX?o(Yu|?)P!T3?Gɚʿ9b?L^? A*őN?VxB?LK?(?vԿxq{-0)v,K&ٙ"-a4Rbῠ_3ױֿgѿLJK!/A@?Aj8mf93%n:ǜnҥ?{}?@oݿEn^CҬxItݿix&?!MK?ho@?7I%1?!@g.?"TL?3 G>?g^1O#=B?xG%X"om;,?s Q߈֝mw?՚,'dJ8,O?@p5 \[?_l9[ >D>'wf:P>f"{Z$=CyоDm=\TA##iI^& >پ?OqC>Y0J{0?3G'_?NStlsKva?]\nE&ɣ?nS#?[~E ¿"|xk?ڞO?=Q ?| J#B5xq`k?`BK's? u?]i?WSIV Q_忋74#ҿ_S^?4\z?Q ?R*\ؿF_>&鿫}47**TP?91ci?DbP ÿ'@OOG?ۄi]j?Kdk-?"ۿq\տX}O?j;??Nll/U?wտq5?募 a$?)|&p`?@d?9cgtc>A@4>PK!Pfzpd_coif12_72_md_pywtCoeffs.npyNUMPYv{'descr': 'c Ᾱym?Uɷ7dX?o(Yu|?)P!T3?Gɚʿ9b?L^? A*őN?VxB?LK?(?vԿxq{-0)v,K&ٙ"-a4Rbῠ_3ױֿgѿLJK!/A@?Aj8mf93%n:ǜnҥ?{}?@oݿEn^CҬxItݿix&?!MK?ho@?7I%1?!@g.?"TL?3 G>?g^1O#=B?xG%X"om;,?s Q߈֝mw?՚,'dJ8,O?@p5 \[?_l9[ >D>'wf:P>f"{Z$=CyоDm=\TA#S޿n1mῂCy7?eN⿧_Um[Ͼ[_}[⿰[(PN[PK!S&sp0_coif12_72_md.npyNUMPYv{'descr': 'hf~ˈ>fPz[W~?oJ.`*@?gvWtp8Щ% n``?jä>ĭ߾??,N.?O?Ut-W?- ?տC FF )sI1 Z(E`qtqoϱֿ7ZX\eA.@?}8mf=$n:Prnҥ?}?@oݿEn^%+0FuݿЕz&?y=?eɭ?u3n+Yu8K!C3 >HHwr!N#H>C\=;~#J'{=$`q79?S޿n1mῂCy7?eN⿧_Um[Ͼ[_}[⿰[(PN[PK!S&sp0_coif12_72_md_pywtCoeffs.npyNUMPYv{'descr': 'hf~ˈ>fPz[W~?oJ.`*@?gvWtp8Щ% n``?jä>ĭ߾??,N.?O?Ut-W?- ?տC FF )sI1 Z(E`qtqoϱֿ7ZX\eA.@?}8mf=$n:Prnҥ?}?@oݿEn^%+0FuݿЕz&?y=?eɭ?u3n+Yu8K!C3 >HHwr!N#H>C\=;~#J'{=$`q79?ݨdF:>)8?w7Qk?S:1u?V&W?.RI` Q_忉74#ҿBS^?1)z?[ ?4S*\ؿ#F&鿳++7*Up^,?,Y"mi?jXÿ'@M?f[?y%@?ۿYĩԿu !?뛆l?NUI?&^ ?Q1!_[)}6?'hE6? 7| ?lbY?9Z鿓Aυc?i@ш?M`_l?K^e?N|@)UPK!!sym_coif12_72_md.npyNUMPYv{'descr': 'i?Z ?#/IS]5?_Z?p{^O?P7p=-C]e?7,pʿ&2M\ %|˿l ro?pe ?8?vςݨdF:>)8?w7Qk?S:1u?V&W?.RI` Q_忉74#ҿBS^?1)z?[ ?4S*\ؿ#F&鿳++7*Up^,?,Y"mi?jXÿ'@M?f[?y%@?ۿYĩԿu !?뛆l?NUI?&^ ?Q1!_[)}6?'hE6? 7| ?lbY?9Z鿓Aυc?i@ш?M`_l?K^e?N|@)UPK!!sym_coif12_72_md_pywtCoeffs.npyNUMPYv{'descr': 'i?Z ?#/IS]5?_Z?p{^O?P7p=-C]e?7,pʿ&2M\ %|˿l ro?pe ?8?vς؄-?蚎 X?e).ؿmC"9׿fb?O\?j`܀?ؿƆ@ſ "a'PK!D˸symw_coif12_72_md.npyNUMPYv{'descr': '? ?SUC?,Hф?Gy^?~* ?ȡH?h:?Vע?'_F?2GxԿ V]}K0c/JYbOaЋjCfӱֿhEl³3D A-̎@?ir8mf"D%n:nҥ??}?@oݿEn^_ί|--sݿeOt&?A3M|(?I—?XL\#?Ԍ@UP? %?b&z?/2F~ʍ.?*?L `@M&6H?o71li>?I981?o @u8?ԶݿLާ DMcDl\ݿK*?%_$![?͢>J ?ր?k迫˖M*ٿPK!( symw_coif12_72_ma_pywtCoeffs.npyNUMPYv{'descr': '؄-?蚎 X?e).ؿmC"9׿fb?O\?j`܀?ؿƆ@ſ "a'PK!D˸ symw_coif12_72_md_pywtCoeffs.npyNUMPYv{'descr': '? ?SUC?,Hф?Gy^?~* ?ȡH?h:?Vע?'_F?2GxԿ V]}K0c/JYbOaЋjCfӱֿhEl³3D A-̎@?ir8mf"D%n:nҥ??}?@oݿEn^_ί|--sݿeOt&?A3M|(?I—?XL\#?Ԍ@UP? %?b&z?/2F~ʍ.?*?L `@M&6H?o71li>?I981?o @u8?ԶݿLާ DMcDl\ݿK*?%_$![?͢>J ?ր?k迫˖M*ٿPK!6Mppd_coif12_72_ma.npyNUMPYv{'descr': '?O{?#lԿY1JKAH~:wNDbC⿊Opam;Pz&ֿAھ翭kyT2%A\@?W8mf޷&n:nҥ?*}?@oݿEn^㚴MqݿbIo&?:D?SDΖ?0\0Km r?i۞@^ 4?0?f'*Ks?j4g?*_gfu?#kj?Fr>?O{?#lԿY1JKAH~:wNDbC⿊Opam;Pz&ֿAھ翭kyT2%A\@?W8mf޷&n:nҥ?*}?@oݿPK!6Mppd_coif12_72_ma_pywtCoeffs.npyNUMPYv{'descr': '?O{?#lԿY1JKAH~:wNDbC⿊Opam;Pz&ֿAھ翭kyT2%A\@?W8mf޷&n:nҥ?*}?@oݿEn^㚴MqݿbIo&?:D?SDΖ?0\0Km r?i۞@^ 4?0?f'*Ks?j4g?*_gfu?#kj?Fr>?O{?#lԿY1JKAH~:wNDbC⿊Opam;Pz&ֿAھ翭kyT2%A\@?W8mf޷&n:nҥ?*}?@oݿPK!N&Zsp1_coif12_72_ma.npyNUMPYv{'descr': '@?l:@J;˾7@g<4@1+ۻ1@~;M-@C('@s @"mf!@F̭@q'i4`? (?: "DYtɁO&:5>A#j?L1T4puyA#ne{`I;.8p mޭ"0EN$^&PK!"ssp1_coif12_72_md.npyNUMPYv{'descr': '= &Ecc>CI⾓Caɿ?m(/P2dŹl[P?qԌf7;Cwf%x?5{{?$$',?y?\)X?Zͺ?+w?Pw-Կ;ь ^I#⿧ ah>Fk7Pӱֿ=0M1A:&Aa;@?0l8mf+%n: nҥ?]}?@oݿEn^!(UvݿK}&?.P?"2 ?;, ?2wD?-)I@ Tz?tMM?/$!Q?`^faq8?6M(?1h`o?-n7hYB?Lx)6U^,?LL/$ p>M찾qLJ~>|NcANQX7>pnς=D[]SV:PZ=TՑ:~+~˼JԼPK!N&Zsp1_coif12_72_ma_pywtCoeffs.npyNUMPYv{'descr': '@?l:@J;˾7@g<4@1+ۻ1@~;M-@C('@s @"mf!@F̭@q'i4`? (?: "DYtɁO&:5>A#j?L1T4puyA#ne{`I;.8p mޭ"0EN$^&PK!"ssp1_coif12_72_md_pywtCoeffs.npyNUMPYv{'descr': '= &Ecc>CI⾓Caɿ?m(/P2dŹl[P?qԌf7;Cwf%x?5{{?$$',?y?\)X?Zͺ?+w?Pw-Կ;ь ^I#⿧ ah>Fk7Pӱֿ=0M1A:&Aa;@?0l8mf+%n: nҥ?]}?@oݿEn^!(UvݿK}&?.P?"2 ?;, ?2wD?-)I@ Tz?tMM?/$!Q?`^faq8?6M(?1h`o?-n7hYB?Lx)6U^,?LL/$ p>M찾qLJ~>|NcANQX7>pnς=D[]SV:PZ=TՑ:~+~˼JԼPK!per_coif12_72_ma.npyNUMPYv{'descr': 'l9Y迗/+}?>Qҷ&? }f|I׿65V?aL׿(ho㶿׿Y\>3 /b"?嬈,MRY9vf@QgD?-UX?SfE?&vG?PK!\JFper_coif12_72_md.npyNUMPYv{'descr': 'l9Y迗/+}?>Qҷ&? }f|I׿65V?aL׿(ho㶿׿Y\>3 /b"?嬈,MRY9vf@QgD?-UX?SfE?&vG?PK!\JFper_coif12_72_md_pywtCoeffs.npyNUMPYv{'descr': '/ֿ4Q翑A@?78mfh|X(n:*oҥ?CΠ}?@oݿEn^鐮8sݿu&?e?_?us?=O@f4?u?R2? _sܿJv2 ~Կd?y?`F@FU6%-?1UJ?,f?PT?\Y8 r96/ׂ?"tWpjus?fN%(]?hiQ+M뿧2 Q??ӷ+ .=ſ"L*PK!Si4 asym_coif12_72_ma_pywtCoeffs.npyNUMPYv{'descr': '/ֿ4Q翑A@?78mfh|X(n:*oҥ?CΠ}?@oݿEn^鐮8sݿu&?e?_?us?=O@f4?u?R2? _sܿJv2 ~Կd?y?`F@FU6%-?1UJ?,f?PT?\Y8 r96/ׂ?"tWpjus?fN%(]?hiQ+M뿧2 Q??ӷ+ .=ſ"L*PK!ԯ+asymw_coif12_72_ma.npyNUMPYv{'descr': 'f?puyi?Eo쿙jCÿ?sy'@ ?Q?BtxK?GܿtvԿM?zi#"?u?VK^?D9m9M3'֤ 8܋݁迚9鿴_A2ng&TLrE@οPK!Atasymw_coif12_72_md.npyNUMPYv{'descr': 'J1)j$cH a=U4`;WyῪa`˱ֿm翱D,AA0d@?=8mf $n:Wnҥ?Է?KE:?^\? *ȿqί#_?>TT͢?,ZJ? տ1πk?˖M??PK!ԯ+!asymw_coif12_72_ma_pywtCoeffs.npyNUMPYv{'descr': 'f?puyi?Eo쿙jCÿ?sy'@ ?Q?BtxK?GܿtvԿM?zi#"?u?VK^?D9m9M3'֤ 8܋݁迚9鿴_A2ng&TLrE@οPK!At!asymw_coif12_72_md_pywtCoeffs.npyNUMPYv{'descr': 'J1)j$cH a=U4`;WyῪa`˱ֿm翱D,AA0d@?=8mf $n:Wnҥ?Է?KE:?^\? *ȿqί#_?>TT͢?,ZJ? տ1πk?˖M??PK!Zzpd_coif12_73_ma.npyNUMPYv{'descr': '`Y>QGL|*G>TFVlξ`ܵ6>͑5|<\5t4?u+9GPx_e? ^xI|Hs?!T,9>bwv3?El7̿x~H ?&9.@8d%;?Z*, @?}lu?KWTp f?D&?q!pb;'?Œ()`?%23m?6Utƃ @A?\6:1V?3~n)(P?d%8˿a_E1~心s_?ΣZPs5U??rlN ؿC?F+DJEf(&?-?v%? |$!ֿgQJ?Emx?ؿ64?X籿VY ?Q,.HNf?ZT;1ZFm!?R5)3XQK8>PK!zpd_coif12_73_md.npyNUMPYv{'descr': 'R<þp!>a(nt?t=.Q?m/Yw?Ъ.?AL(~?1&0`U?9CfR憡 Ϳ9z3a?2}?zd?ii=п4yb?ϻq?忴ϵ?b~Ͽ ƽ?nrmZc׿ S?9w?Asl?g?7CwD۽c7?Xu|kx?8˯l?:ti:7?4G<?{̧҇?F[u?]]RX?`yVKm?tJȿY?ﲿZߺG?|2Zpjg?6gmD0U?S8Y>Q`b#?1d>,qQǾ1fX{>I'mtJU>+s_(vkN)=ƠP½ J_=k?EB8TD`Y>QGL|*G>TFVlξ`ܵ6>͑5|<\5t4?u+9GPx_e? ^xI|Hs?!T,9>bwv3?El7̿x~H ?&9.@8d%;?Z*, @?}lu?KWTp f?D&?q!pb;'?Œ()`?%23m?6Utƃ @A?\6:1V?3~n)(P?d%8˿a_E1~心s_?ΣZPs5U??rlN ؿC?F+DJEf(&?-?v%? |$!ֿgQJ?Emx?ؿ64?X籿VY ?Q,.HNf?ZT;1ZFm!?R5)3XQK8>PK!zpd_coif12_73_md_pywtCoeffs.npyNUMPYv{'descr': 'R<þp!>a(nt?t=.Q?m/Yw?Ъ.?AL(~?1&0`U?9CfR憡 Ϳ9z3a?2}?zd?ii=п4yb?ϻq?忴ϵ?b~Ͽ ƽ?nrmZc׿ S?9w?Asl?g?7CwD۽c7?Xu|kx?8˯l?:ti:7?4G<?{̧҇?F[u?]]RX?`yVKm?tJȿY?ﲿZߺG?|2Zpjg?6gmD0U?S8Y>Q`b#?1d>,qQǾ1fX{>I'mtJU>+s_(vkN)=ƠP½ J_=k?EB8TD1d)zwc?! {663hS?cҟBjjwx?Aǥw¶¦]$o+?Vпë/U I@#? %tZ9]̿fj?k+i??ˋxjп{Q8oI?U$ @2ƕ?"8ϿRiKYRD?  c׿b S?8w?cl?g?=CwD۽迻J߫?忱?Ε u?nB;俖8?&Q)߿?Cr?Bkˀu?>kg࿿Z?sV>_l?!4upP2V?4pphM?]񩏿2z{?z8HfEUA4P?vV5,{>p?T>b: k:>u/enހLy0B>8A/]|%=q%K%d=[N6g[h<.w1d)zwc?! {663hS?cҟBjjwx?Aǥw¶¦]$o+?Vпë/U I@#? %tZ9]̿fj?k+i??ˋxjп{Q8oI?U$ @2ƕ?"8ϿRiKYRD?  c׿b S?8w?cl?g?=CwD۽迻J߫?忱?Ε u?nB;俖8?&Q)߿?Cr?Bkˀu?>kg࿿Z?sV>_l?!4upP2V?4pphM?]񩏿2z{?z8HfEUA4P?vV5,{>p?T>b: k:>u/enހLy0B>8A/]|%=q%K%d=[N6g[h<.w?A?"WBIK?4}{wh㿞5?(kؿt\?U!?K-zۿBxX?Y?FSl?U {ǟ9?3|E?نf?aB9sG$6W֖E?5}?[̿FpRͿ??PK!}Gsym_coif12_73_md.npyNUMPYv{'descr': 'L'Ai? <Ͽ~:?-ܿBX\1?EE1?1 ࿕ {b῭+"ֿXĘRDtj?񋴌 ?E?ٻj?iK?DWjQ?PK!4sym_coif12_73_ma_pywtCoeffs.npyNUMPYv{'descr': '?A?"WBIK?4}{wh㿞5?(kؿt\?U!?K-zۿBxX?Y?FSl?U {ǟ9?3|E?نf?aB9sG$6W֖E?5}?[̿FpRͿ??PK!}Gsym_coif12_73_md_pywtCoeffs.npyNUMPYv{'descr': 'L'Ai? <Ͽ~:?-ܿBX\1?EE1?1 ࿕ {b῭+"ֿXĘRDtj?񋴌 ?E?ٻj?iK?DWjQ?PK!.gysymw_coif12_73_ma.npyNUMPYv{'descr': 'd˿hH?~p?\"FPZ?!â- T ?W?°п6K2p?:N?>{?mK~Ͽҭ򿆩Vk?"o(c׿Ǖ S?w?l?g? CwD۽迣?&N?R?_k#$=h|A??+QMS?g? "ݿY?T-"tWd|Y ?F:ܿ |?,+[?X?T5?nῢfBg?ŮX?2Q:V翩q ?&,F2|ζw5iC?f&`?S?r?;kQ2ڿ:=Yt?fS=g*Č<ӿpzXPK!.gy symw_coif12_73_ma_pywtCoeffs.npyNUMPYv{'descr': 'd˿hH?~p?\"FPZ?!â- T ?W?°п6K2p?:N?>{?mK~Ͽҭ򿆩Vk?"o(c׿Ǖ S?w?l?g? CwD۽迣?&N?R?_k#$=h|A??+QMS?g? "ݿY?T-"tWd|Y ?F:ܿ |?,+[?X?T5?nῢfBg?ŮX?2Q:V翩q ?&,F2|ζw5iC?f&`?S?r?;kQ2ڿ:=Yt?fS=g*Č<ӿpzXPK!`Έppd_coif12_73_ma.npyNUMPYv{'descr': 'ţB?)hW_ ?Ai1?7T+5?nyqA?]|U??x+@ժrZ?[YYֿBߎ(?CWD ?jտ2}?ާs5ῇ^0??aOEPK!?qppd_coif12_73_md.npyNUMPYv{'descr': 'LܢI?kC@\m?\|OSϿ>͓?c׿| S?ԯw?=l?g?NCwD۽迫A?*"AZFk?JF*,?GH?e=P?>^?Q?yFJ?ۥ\K@(zd'q?y`\?zo˿N翁6~3K?M%;տ·BPmnܿ/(?qouu?Ka篹?ީo=?NZڦ ?vu΁?"AY}뿷 ֿ Dmw]GΧf?PK!`Έppd_coif12_73_ma_pywtCoeffs.npyNUMPYv{'descr': 'ţB?)hW_ ?Ai1?7T+5?nyqA?]|U??x+@ժrZ?[YYֿBߎ(?CWD ?jտ2}?ާs5ῇ^0??aOEPK!?qppd_coif12_73_md_pywtCoeffs.npyNUMPYv{'descr': 'LܢI?kC@\m?\|OSϿ>͓?c׿| S?ԯw?=l?g?NCwD۽迫A?*"AZFk?JF*,?GH?e=P?>^?Q?yFJ?ۥ\K@(zd'q?y`\?zo˿N翁6~3K?M%;տ·BPmnܿ/(?qouu?Ka篹?ީo=?NZڦ ?vu΁?"AY}뿷 ֿ Dmw]GΧf?PK!}<sp1_coif12_73_ma.npyNUMPYv{'descr': 'h@oоTn,?oy2V?tHܗm?ՔwA}k-?7v翿Bj?5!Upc?bCSпz)+?\?Lb[$?܅^9hпĩ5`I??6 p?zp.SϿ߁筊,멁?ޒ&}c׿) S?Ww?l?׺g?CwD۽~?VAt?M2h?;wT:ЏD9?P~r? I?ݙ RK?\{|޿#?Xg[?%c[̿7,?Ge j?Rf-~?;7hX Q?[ES'(38Qe?$:ndv>1y۵@|>LYsVH>cҡ1=ꭽ`=m=!v Z<`.PK!}<sp1_coif12_73_ma_pywtCoeffs.npyNUMPYv{'descr': 'h@oоTn,?oy2V?tHܗm?ՔwA}k-?7v翿Bj?5!Upc?bCSпz)+?\?Lb[$?܅^9hпĩ5`I??6 p?zp.SϿ߁筊,멁?ޒ&}c׿) S?Ww?l?׺g?CwD۽~?VAt?M2h?;wT:ЏD9?P~r? I?ݙ RK?\{|޿#?Xg[?%c[̿7,?Ge j?Rf-~?;7hX Q?[ES'(38Qe?$:ndv>1y۵@|>LYsVH>cҡ1=ꭽ`=m=!v Z<`.PK!Doper_coif12_73_ma.npyNUMPYv{'descr': '.nܿZ0?zSu?hjI鯹?Jg=?Z`ۦ ?>΁? |Y}￿+쿷 ֿ DmweGΧf?no??/$ٿ'1?ŽY1WH? N8TFp zge^M3I?h]1+kft?IW@+{s˿slz $^?MпT IPK!Doper_coif12_73_ma_pywtCoeffs.npyNUMPYv{'descr': '.nܿZ0?zSu?hjI鯹?Jg=?Z`ۦ ?>΁? |Y}￿+쿷 ֿ DmweGΧf?no??/$ٿ'1?ŽY1WH? N8TFp zge^M3I?h]1+kft?IW@+{s˿slz $^?MпT IPK!v9basym_coif12_73_ma.npyNUMPYv{'descr': '⿤,+ A@#"y=ȼB?~C}nQK鿮)*?5n?2=&ZEῦoSZ? ~|翯:R?6?"‰uS̵BT˝?@ q Ǎ?x|l?nYῤ=[?)?6q,x,? ()`?-23m?KUtƃN! @A?f6:l1V?Fڨ)XNP?xt˿P wa_^vȕQ2~a9 RĔ?mJrU?t ؿKn%4?Q7񿵏M?)? }9?B пKe?ʗ?k^anix?eMEۣ[4oƿJLt?#DJ?;)Aֿ{B)nʦΒ?P? SݿPK!Dasym_coif12_73_md.npyNUMPYv{'descr': 'b?oR鿩xϿf {fct?\l}c׿cY9 S?w?l?g?BwD۽ $+?$e*/?Լ|l?cR';!9?1º?[4)HD?@qJ2?)Lܿd?xF[ܿfHu+7?kݿw2?K֣A?̈9,h?ޕo?3(5zE9N@ ":B%⿤,+ A@#"y=ȼB?~C}nQK鿮)*?5n?2=&ZEῦoSZ? ~|翯:R?6?"‰uS̵BT˝?@ q Ǎ?x|l?nYῤ=[?)?6q,x,? ()`?-23m?KUtƃN! @A?f6:l1V?Fڨ)XNP?xt˿P wa_^vȕQ2~a9 RĔ?mJrU?t ؿKn%4?Q7񿵏M?)? }9?B пKe?ʗ?k^anix?eMEۣ[4oƿJLt?#DJ?;)Aֿ{B)nʦΒ?P? SݿPK!D asym_coif12_73_md_pywtCoeffs.npyNUMPYv{'descr': 'b?oR鿩xϿf {fct?\l}c׿cY9 S?w?l?g?BwD۽ $+?$e*/?Լ|l?cR';!9?1º?[4)HD?@qJ2?)Lܿd?xF[ܿfHu+7?kݿw2?K֣A?̈9,h?ޕo?3(5zE9N@ ":B%<)|cEyD>pUy䭾?% >b׾A9$?͆._#)5;?F}R2f?R,sybG ?mJ0'B%{?o sgz5?ZY`/g̿'o"K5F?iڴS F" 3 :!M>?>3PK!zpd_coif13_78_md.npyNUMPYv{'descr': '<[ WFr7 J>. $+ ?xa'D: +c?EU~>e?Lc.槿(R?T?!$6ʿ56{?¿*Xb4?j9dЅӿB?os?!w?9D0ÿcB?pP7?,l}-1?6`'!ܒ3C!⩏?~T ]Nd?$S?wV(ظ?Tۿ-gJ{?K?p%zpȿa\?K8?TNb.B̪$ ??s ޔ>,P "`$㑚@¿0ACD?s0@h+?>+JqnR_+4?O m?:Kka8?E'M?` nR؎h? i[v{uH?y.Yh31?o1b]rr>8eľ (8>XI t5Z>>wm5kFԽ0ul=?UfEW&=[鹘\`R<`#B2m(PK!Wzpd_coif13_78_ma_pywtCoeffs.npyNUMPYv{'descr': '<)|cEyD>pUy䭾?% >b׾A9$?͆._#)5;?F}R2f?R,sybG ?mJ0'B%{?o sgz5?ZY`/g̿'o"K5F?iڴS F" 3 :!M>?>3PK!zpd_coif13_78_md_pywtCoeffs.npyNUMPYv{'descr': '<[ WFr7 J>. $+ ?xa'D: +c?EU~>e?Lc.槿(R?T?!$6ʿ56{?¿*Xb4?j9dЅӿB?os?!w?9D0ÿcB?pP7?,l}-1?6`'!ܒ3C!⩏?~T ]Nd?$S?wV(ظ?Tۿ-gJ{?K?p%zpȿa\?K8?TNb.B̪$ ??s ޔ>,P "`$㑚@¿0ACD?s0@h+?>+JqnR_+4?O m?:Kka8?E'M?` nR؎h? i[v{uH?y.Yh31?o1b]rr>8eľ (8>XI t5Z>>wm5kFԽ0ul=?UfEW&=[鹘\`R<`#B2m(PK!ÖUsp0_coif13_78_ma.npyNUMPYv{'descr': 'Am?*?BR?\].Y?po?YhQ2?6U?;h?:ΉƿTGa6Ps?Db'|o޿$k \f˿kQ0?{,?ˍ?;|4?JTƿN5eU.|忯.Ig @L3Y>>?1YȢ]$`w?go펿U|Gp?si?oBoc?*!οpw?ӿjnWAK-?J/_?NP9mÿJ?m?*0>-3.?Wo^8xEP˖? #ssSNd?kS?ָ?"Tۿ^-g濷3K{?úK?o%zpȿa\?K8?TN_G ̪9 ?៺Ӣ!D+KO"CB̹¿NOS'Z?y:A`@ݼj^i?-5翚 iͿ.KXm?TFaHb2?RSvQDT*vH>O!I?']=f"O\(?`|k8+>b?8$־*3Ll> gfpV|i>DI>.~;>> ts,*R>=Wp,q=yMsSg=>ʳt0M><#{rXH jPK!ÖUsp0_coif13_78_ma_pywtCoeffs.npyNUMPYv{'descr': 'Am?*?BR?\].Y?po?YhQ2?6U?;h?:ΉƿTGa6Ps?Db'|o޿$k \f˿kQ0?{,?ˍ?;|4?JTƿN5eU.|忯.Ig @L3Y>>?1YȢ]$`w?go펿U|Gp?si?oBoc?*!οpw?ӿjnWAK-?J/_?NP9mÿJ?m?*0>-3.?Wo^8xEP˖? #ssSNd?kS?ָ?"Tۿ^-g濷3K{?úK?o%zpȿa\?K8?TN_G ̪9 ?៺Ӣ!D+KO"CB̹¿NOS'Z?y:A`@ݼj^i?-5翚 iͿ.KXm?TFaHb2?RSvQDT*vH>O!I?']=f"O\(?`|k8+>b?8$־*3Ll> gfpV|i>DI>.~;>> ts,*R>=Wp,q=yMsSg=>ʳt0M><#{rXH jPK!sym_coif13_78_ma.npyNUMPYv{'descr': 'x:?.#P?=Pÿ&R?yM{?8"/.ms?.pCC9doRA? /cMNd?wξS? %ָ?Tۿ;=-g"K{?l|K?n%zpȿa\?K8?TNy!̪R ?MQL@*S\9?ɬ濳>¿f )L?}+@n\ɰ?T1DO׿΋%Q?#:?ƃ\8)Cȿ>Y'?ǘT?79}??*?{?uY?P#I?Jx,@4X쿈w G$wӿ:K?=P8?wS?U/?kH[(( C٩gs//?PK!sym_coif13_78_ma_pywtCoeffs.npyNUMPYv{'descr': 'x:?.#P?=Pÿ&R?yM{?8"/.ms?.pCC9doRA? /cMNd?wξS? %ָ?Tۿ;=-g"K{?l|K?n%zpȿa\?K8?TNy!̪R ?MQL@*S\9?ɬ濳>¿f )L?}+@n\ɰ?T1DO׿΋%Q?#:?ƃ\8)Cȿ>Y'?ǘT?79}??*?{?uY?P#I?Jx,@4X쿈w G$wӿ:K?=P8?wS?U/?kH[(( C٩gs//?PK!H>symw_coif13_78_ma.npyNUMPYv{'descr': '? [X󿭌,4m? \{fmg?]j);e忞e8ᅢtɿ꓉|$?Tg?>A?S?wkɿCI я?/Gݿ |пA3@1$tοSJ'޿ HRr?[eiEJ߿ HEI˿6=)?_4At,??+?xTƿW5eU.|忯.Ig @忾bc ܿ;o:dR ֺ?0@?TҀ?Ͽb0T6 R6*y!ɬVWﲿlinmT,?Q5IXemUu?]J?2?d$ƿ L?q"gV?KHGm .׿ݿ?{r?$ل 4?:hp>?PK!H> symw_coif13_78_ma_pywtCoeffs.npyNUMPYv{'descr': '? [X󿭌,4m? \{fmg?]j);e忞e8ᅢtɿ꓉|$?Tg?>A?S?wkɿCI я?/Gݿ |пA3@1$tοSJ'޿ HRr?[eiEJ߿ HEI˿6=)?_4At,??+?xTƿW5eU.|忯.Ig @忾bc ܿ;o:dR ֺ?0@?TҀ?Ͽb0T6 R6*y!ɬVWﲿlinmT,?Q5IXemUu?]J?2?d$ƿ L?q"gV?KHGm .׿ݿ?{r?$ل 4?:hp>?PK!/ ppd_coif13_78_ma.npyNUMPYv{'descr': 'YտfQ?gJB?BL⿩V ?Jh׿Z 39iB$fp?jgX?L>Ns? eGTvӿjn>ђ?;9M6?0>}'?5 Mgt?+<<'޿~ڃ˿p.h7?cۯx+??1ǖ?`i?YsqSƿuO5eU.|忯.Ig @YտfQ?gJB?BL⿩V ?Jh׿Z 39iB$fp?jgX?L>Ns? eGTvӿjn>ђ?;9M6?0>}'?5 Mgt?+<<'޿~ڃ˿p.h7?cۯx+??1ǖ?`i?YsqSƿuO5ePK!{uppd_coif13_78_md.npyNUMPYv{'descr': 'YտfQ?gJB?BL⿩V ?Jh׿Z 39iB$fp?jgX?L>Ns? eGTvӿjn>ђ?;9M6?0>}'?5 Mgt?+<<'޿~ڃ˿p.h7?cۯx+??1ǖ?`i?YsqSƿuO5eU.|忯.Ig @YտfQ?gJB?BL⿩V ?Jh׿Z 39iB$fp?jgX?L>Ns? eGTvӿjn>ђ?;9M6?0>}'?5 Mgt?+<<'޿~ڃ˿p.h7?cۯx+??1ǖ?`i?YsqSƿuO5ePK!{uppd_coif13_78_md_pywtCoeffs.npyNUMPYv{'descr': '@NBx=@8R<@"VN/,;@.%:@Ո3v>g]81F:?$JXSEɣur?O1%&$,?(e9}+C?ʼҿ '8l?'̛~ԿE 28"%?ed?cntÿ'W24?۞ ?6p-,?W> 4Ῐ圾:G͡?i 꿉VNd?RS?h׸?qLTۿ6-g@J{?K?rp%zpȿa\?K8?TN򿼀8 ̪϶ ? M-f+bYԐשS ¿uXy7W"? eX@"UtC?Fs7B'ſ>Q\?Y; j?'KCLb?Q,fH>D]?K!$Nzf9?5D͌#m ?:7"\ݤ>U&Aд>Vq>@T q wI>j&c  /:=0]PeH½sZg=P=2Q+@|=oͼ_0<E@NBx=@8R<@"VN/,;@.%:@Ո3v>g]81F:?$JXSEɣur?O1%&$,?(e9}+C?ʼҿ '8l?'̛~ԿE 28"%?ed?cntÿ'W24?۞ ?6p-,?W> 4Ῐ圾:G͡?i 꿉VNd?RS?h׸?qLTۿ6-g@J{?K?rp%zpȿa\?K8?TN򿼀8 ̪϶ ? M-f+bYԐשS ¿uXy7W"? eX@"UtC?Fs7B'ſ>Q\?Y; j?'KCLb?Q,fH>D]?K!$Nzf9?5D͌#m ?:7"\ݤ>U&Aд>Vq>@T q wI>j&c  /:=0]PeH½sZg=P=2Q+@|=oͼ_0<ENs? eGTvӿjn>ђ?;9M6?0>}'?5 Mgt?+<<'޿~ڃ˿p.h7?cۯx+??1ǖ?`i?YsqSƿuO5eU.|忯.Ig @YտfQ?gJB?BL⿩V ?Jh׿Z 39iB$fp?PK!lGjper_coif13_78_md.npyNUMPYv{'descr': 'Ns? eGTvӿjn>ђ?;9M6?0>}'?5 Mgt?+<<'޿~ڃ˿p.h7?cۯx+??1ǖ?`i?YsqSƿuO5eU.|忯.Ig @YտfQ?gJB?BL⿩V ?Jh׿Z 39iB$fp?PK!lGjper_coif13_78_md_pywtCoeffs.npyNUMPYv{'descr': '^ǭKp?W-2?2L`?>G./'Կ{pu=$翥g%k:ƒԓq?hrcy?08?Q&盬}ٿ*ŁC:7? YM.Poy)?VnIv.޿~<`˿::?HS +?HЖ?CӶ?ˊSƿb5eU.|忯.Ig @,G?Yտ}ODvQ?E?`~rA ?JNl ׿0}̮e9Wh/(?JP:n?`t?m7ӿ ewY?U1D69C?YP?pݿ"3t?ɿ`{?-zR?nmJ''???Ç"Hпs:?|?PK!#asym_coif13_78_md.npyNUMPYv{'descr': 'PR &r#?zmNd?zS?+ڸ?.Tۿb-gI{?HK?r%zpȿa\?K8?TNKك̪wv`?aBx-_MDX.oqmI¿Gg&sk' ?`J%@Q'N2?r͎bP9gb?EHA5޿Xf߿r u?Fڌp@#NL?bɿqCTw)/῿)E鿁9PjZvZ?&E?1@Yw?[PCKؿV,Q? )8׿,wS/ѿnH?[(?( C٩?gs//PK!H  asym_coif13_78_ma_pywtCoeffs.npyNUMPYv{'descr': '^ǭKp?W-2?2L`?>G./'Կ{pu=$翥g%k:ƒԓq?hrcy?08?Q&盬}ٿ*ŁC:7? YM.Poy)?VnIv.޿~<`˿::?HS +?HЖ?CӶ?ˊSƿb5eU.|忯.Ig @,G?Yտ}ODvQ?E?`~rA ?JNl ׿0}̮e9Wh/(?JP:n?`t?m7ӿ ewY?U1D69C?YP?pݿ"3t?ɿ`{?-zR?nmJ''???Ç"Hпs:?|?PK!# asym_coif13_78_md_pywtCoeffs.npyNUMPYv{'descr': 'PR &r#?zmNd?zS?+ڸ?.Tۿb-gI{?HK?r%zpȿa\?K8?TNKك̪wv`?aBx-_MDX.oqmI¿Gg&sk' ?`J%@Q'N2?r͎bP9gb?EHA5޿Xf߿r u?Fڌp@#NL?bɿqCTw)/῿)E鿁9PjZvZ?&E?1@Yw?[PCKؿV,Q? )8׿,wS/ѿnH?[(?( C٩?gs//PK!o5qasymw_coif13_78_ma.npyNUMPYv{'descr': 'ɿS \&y?3mSX|Ɛj ]]6]T! )v u ٙBNA}WAX )RWYN"ֹ(-C PK!.QKBasymw_coif13_78_md.npyNUMPYv{'descr': 'ͿPK!o5q!asymw_coif13_78_ma_pywtCoeffs.npyNUMPYv{'descr': 'ɿS \&y?3mSX|Ɛj ]]6]T! )v u ٙBNA}WAX )RWYN"ֹ(-C PK!.QKB!asymw_coif13_78_md_pywtCoeffs.npyNUMPYv{'descr': 'ͿPK!Ї)zpd_coif13_79_ma.npyNUMPYv{'descr': 'N癎4>nPY>8BO|B#Kl> i+>Yۘe1ׯMU>U4?(v-# &4 Ǭa?84 ?^ Ʈ-d5q?}%ѿF?S MkԿ>Zm֧ۿ9@ مK-?2,-NԿzBy?kehJ?ugLHZo-@uҿ!r{  |ҖϿ,'?uBY?@(QտYrn?u_?-X!hȎP?5|{?~۰?s4?f"?6=5?R ?k?Q=?O?@[ſƆRyI0X:?'}?bo}ﭠqؙ>ㅡ?F1xO}۔b1&ƀh?I8~]6( "bI?F05r?ֵݗ2>풆UP#s6>PK!ϝzpd_coif13_79_md.npyNUMPYv{'descr': '0u.~]pr9>ȑj ɾT*sWA>~0?n-E' ;3T?9X҉6? M_?8v ?zf8ƿ/dLTbPaҎ?~&g_Iڿ<."KKlvc?"D !ԧ()⿲ @F\Zއ?j6GͿ̸س}1sbhIR_?xy?bW**@[(HZp?Փ ?،&X?Npv?%>Nؿc" =(׿Cb?i,c>yFп tVv?&Hts|w?XP"?&ϡҿ ӓ g&EE$??M;mjDk?hM{|a?Z=lMIжɪ 9?w,$m/a3"?f*}^"g?%;+hNn^$gz>w KXtBKf7>oCvN!R>Q=ѽH=]bZz"=T`.ּA{N癎4>nPY>8BO|B#Kl> i+>Yۘe1ׯMU>U4?(v-# &4 Ǭa?84 ?^ Ʈ-d5q?}%ѿF?S MkԿ>Zm֧ۿ9@ مK-?2,-NԿzBy?kehJ?ugLHZo-@uҿ!r{  |ҖϿ,'?uBY?@(QտYrn?u_?-X!hȎP?5|{?~۰?s4?f"?6=5?R ?k?Q=?O?@[ſƆRyI0X:?'}?bo}ﭠqؙ>ㅡ?F1xO}۔b1&ƀh?I8~]6( "bI?F05r?ֵݗ2>풆UP#s6>PK!ϝzpd_coif13_79_md_pywtCoeffs.npyNUMPYv{'descr': '0u.~]pr9>ȑj ɾT*sWA>~0?n-E' ;3T?9X҉6? M_?8v ?zf8ƿ/dLTbPaҎ?~&g_Iڿ<."KKlvc?"D !ԧ()⿲ @F\Zއ?j6GͿ̸س}1sbhIR_?xy?bW**@[(HZp?Փ ?،&X?Npv?%>Nؿc" =(׿Cb?i,c>yFп tVv?&Hts|w?XP"?&ϡҿ ӓ g&EE$??M;mjDk?hM{|a?Z=lMIжɪ 9?w,$m/a3"?f*}^"g?%;+hNn^$gz>w KXtBKf7>oCvN!R>Q=ѽH=]bZz"=T`.ּA{??ݹ?Bi??pS n?I?5[?Xi8?eIW?N?>$ dfN?p&'???'n?@iOD\QPq?@J>~O)ԿZU\ۿÚ&.s@#/?peNԿkwbHvy?ţ/iJ?v@NHM^-@uҿ!r{ |^ҖϿ6,'?#: BY?VձPտ zZr6?D:?%Ph8?t+ {?VҰ?f5?O^<"?2U,6?[?# =?r?{{kDZſ3fFMjt$:?q`?'}i' $IZ*~{"5A.&NdRXuJ7‘"RN4B6P2`!.PoZxPCPZ"P^S#PPK!`Ssp0_coif13_79_md.npyNUMPYv{'descr': 'ﮄ>$T!>w'D][I?mU{E5kS_?{70{Mr?~?8- 59ǿGS?(`77ڿ[.k#d%?d}G#:k{n )A@CI?6GͿ]? ⿓s;"bh[_?xy?mbW**@^(HZp?Փ ?،&X?Npv?NؿT"俐_-C(׿4/іyrfb?%}ESWOп_% ?#dC㿿z?I0?)څտ"vHmm?9/&:A _l-z?Ӛ"}P#i?+7h&F?^*v}nuZX?64B"Kf)?o>ެpnӾ>IJ]) h>_B@ &>s"u|ԑhB=o+>r8L;0=tb?leNŔE$aPK!P`]sp0_coif13_79_ma_pywtCoeffs.npyNUMPYv{'descr': '??ݹ?Bi??pS n?I?5[?Xi8?eIW?N?>$ dfN?p&'???'n?@iOD\QPq?@J>~O)ԿZU\ۿÚ&.s@#/?peNԿkwbHvy?ţ/iJ?v@NHM^-@uҿ!r{ |^ҖϿ6,'?#: BY?VձPտ zZr6?D:?%Ph8?t+ {?VҰ?f5?O^<"?2U,6?[?# =?r?{{kDZſ3fFMjt$:?q`?'}i' $IZ*~{"5A.&NdRXuJ7‘"RN4B6P2`!.PoZxPCPZ"P^S#PPK!`Ssp0_coif13_79_md_pywtCoeffs.npyNUMPYv{'descr': 'ﮄ>$T!>w'D][I?mU{E5kS_?{70{Mr?~?8- 59ǿGS?(`77ڿ[.k#d%?d}G#:k{n )A@CI?6GͿ]? ⿓s;"bh[_?xy?mbW**@^(HZp?Փ ?،&X?Npv?NؿT"俐_-C(׿4/іyrfb?%}ESWOп_% ?#dC㿿z?I0?)څտ"vHmm?9/&:A _l-z?Ӛ"}P#i?+7h&F?^*v}nuZX?64B"Kf)?o>ެpnӾ>IJ]) h>_B@ &>s"u|ԑhB=o+>r8L;0=tb?leNŔE$aPK!Fsym_coif13_79_ma.npyNUMPYv{'descr': '.b?$[? Ib4?&Th @9n(kD=[Y@RN[?$Etn?{sM==F:*'!?ɚzڿd yeGx?V oXw((c@ ?XR#;GͿ쿦 Ns#Kbhz_?wy?$UbW**@c(HZp?Փ ?،&X?Npv?NؿG2"俅MD(׿3Ǒ}>b?7`'_пd]O0?1? l-?ؗ¿^}ԊʿG#Nқ?9wI^?WxL׿Aw?H(]1ۿg;Ӥ?#e3=n#k?R}?3 ?/KH?]u}z?L?ڄ$7AOI5VhBXxAdÿj ΌTH5?#{"@OȦ_?UZh?WCH?PK!Fsym_coif13_79_ma_pywtCoeffs.npyNUMPYv{'descr': '.b?$[? Ib4?&Th @9n(kD=[Y@RN[?$Etn?{sM==F:*'!?ɚzڿd yeGx?V oXw((c@ ?XR#;GͿ쿦 Ns#Kbhz_?wy?$UbW**@c(HZp?Փ ?،&X?Npv?NؿG2"俅MD(׿3Ǒ}>b?7`'_пd]O0?1? l-?ؗ¿^}ԊʿG#Nқ?9wI^?WxL׿Aw?H(]1ۿg;Ӥ?#e3=n#k?R}?3 ?/KH?]u}z?L?ڄ$7AOI5VhBXxAdÿj ΌTH5?#{"@OȦ_?UZh?WCH?PK!Csymw_coif13_79_ma.npyNUMPYv{'descr': '?-#H?,44CW?j`?04\?gp?@&3?FH?:j?N.Q=L!?n+# ?Ws ?vg= ׿R"֌"kT?rŤ?aoF̿t"$⛯3?&#^+=sѿv鸎:ݿS$@I) ?L`AԿ8.FX}?v[.,J?]OسGN=3@uҿ!r{  |xҖϿB,'?BY?H:QտۛYrO?9i?ޏˆhSRԽ?Ij>y{?y|a1?NL{4?A"?t-4?p??9? ?cJsƿ:~XUtpV?Al?z+t{uA.|FEU$Dy& @@t%iӿ(>+5eAK0ea s?;[n%FPK!Gy4ppd_coif13_79_md.npyNUMPYv{'descr': 'B0G=O?b? bS?P "?׽;@a5?mr῁-%ſ"~;뿐+iPH2ׯpy5a…=PK!jhppd_coif13_79_ma_pywtCoeffs.npyNUMPYv{'descr': '?-#H?,44CW?j`?04\?gp?@&3?FH?:j?N.Q=L!?n+# ?Ws ?vg= ׿R"֌"kT?rŤ?aoF̿t"$⛯3?&#^+=sѿv鸎:ݿS$@I) ?L`AԿ8.FX}?v[.,J?]OسGN=3@uҿ!r{  |xҖϿB,'?BY?H:QտۛYrO?9i?ޏˆhSRԽ?Ij>y{?y|a1?NL{4?A"?t-4?p??9? ?cJsƿ:~XUtpV?Al?z+t{uA.|FEU$Dy& @@t%iӿ(>+5eAK0ea s?;[n%FPK!Gy4ppd_coif13_79_md_pywtCoeffs.npyNUMPYv{'descr': 'B0G=O?b? bS?P "?׽;@a5?mr῁-%ſ"~;뿐+iPH2ׯpy5a…=PK!ٓsp1_coif13_79_ma.npyNUMPYv{'descr': '?s $Lf*Y7-yĸ@@x?Em>EdJO|7 RW}Uu!%WjbqPZ}9Y\3/_`PK! \sp1_coif13_79_md.npyNUMPYv{'descr': '̪Y٤:.>?!]^oR ?50)'Y?qtwxwa?L`7ɔ{ƿ8)H(,b? ݗbڿGD\bokܭv?>.>:R_)gK"@Bt?e6GͿM ⿈g s%bh___?vxy?X5bW**@a(HZp?ԓ ?،&X?Npv?(NؿL"&3J(׿ŌOKHb?TGA9\Hпj?WwNSQR*?AiUN?.MSb s޳M?αҿڱ??4;Emj?’҈MYG?rr]?~jpFޤ)/?5ܧN(>"9۾Khĺ>诘osTrPr>$b@H0Hi>FPk7A[=}H5QqD3=F{p"l{9J PK!ٓsp1_coif13_79_ma_pywtCoeffs.npyNUMPYv{'descr': '?s $Lf*Y7-yĸ@@x?Em>EdJO|7 RW}Uu!%WjbqPZ}9Y\3/_`PK! \sp1_coif13_79_md_pywtCoeffs.npyNUMPYv{'descr': '̪Y٤:.>?!]^oR ?50)'Y?qtwxwa?L`7ɔ{ƿ8)H(,b? ݗbڿGD\bokܭv?>.>:R_)gK"@Bt?e6GͿM ⿈g s%bh___?vxy?X5bW**@a(HZp?ԓ ?،&X?Npv?(NؿL"&3J(׿ŌOKHb?TGA9\Hпj?WwNSQR*?AiUN?.MSb s޳M?αҿڱ??4;Emj?’҈MYG?rr]?~jpFޤ)/?5ܧN(>"9۾Khĺ>诘osTrPr>$b@H0Hi>FPk7A[=}H5QqD3=F{p"l{9J PK!Nsper_coif13_79_ma.npyNUMPYv{'descr': '!|ῸҖϿ+'?#.BY?rQտ9ϔXrKA??:6hPƳ?1|i{? ?k?I3?4l#?ή]0?T&'?'4ی.?N\z*?q<ǿmT1뿋+Kw?]_Ȅ?EgÊ¿& _?x[}L#c(J?"XM?mxoܿu;(Q3n /1F0}-pZ b5'KPK!Kasym_coif13_79_md.npyNUMPYv{'descr': '4M?.r݃ y?7|n\Lv5?͈,7V￰hM^c0?WU~ʿ0'nwyV?3v1:7gpS?ۿs?SՔrY]Fю?oM o)O3@,=|?K0GͿ$jN ]:wۉs6ahB!_?zy?dbGX**@S(HZp?Փ ?،&X?Npv?/\NؿA#,7q5(׿[vqb?8𿋨U-пy]VQ?KUfxTx?OS*?j ?%rMH5̿{"/Ǧ_mZhWCHPK!-G asym_coif13_79_ma_pywtCoeffs.npyNUMPYv{'descr': '!|ῸҖϿ+'?#.BY?rQտ9ϔXrKA??:6hPƳ?1|i{? ?k?I3?4l#?ή]0?T&'?'4ی.?N\z*?q<ǿmT1뿋+Kw?]_Ȅ?EgÊ¿& _?x[}L#c(J?"XM?mxoܿu;(Q3n /1F0}-pZ b5'KPK!K asym_coif13_79_md_pywtCoeffs.npyNUMPYv{'descr': '4M?.r݃ y?7|n\Lv5?͈,7V￰hM^c0?WU~ʿ0'nwyV?3v1:7gpS?ۿs?SՔrY]Fю?oM o)O3@,=|?K0GͿ$jN ]:wۉs6ahB!_?zy?dbGX**@S(HZp?Փ ?،&X?Npv?/\NؿA#,7q5(׿[vqb?8𿋨U-пy]VQ?KUfxTx?OS*?j ?%rMH5̿{"/Ǧ_mZhWCHPK!Zasymw_coif13_79_ma.npyNUMPYv{'descr': 'bOӝ%ٖn̿~3?gte@%@f?DI*?#U̳?PK!Z!asymw_coif13_79_ma_pywtCoeffs.npyNUMPYv{'descr': 'bOӝ%ٖn̿~3?gte@%@f?DI*?#U̳?PK!NJzpd_coif14_84_ma.npyNUMPYv{'descr': ']<$b=2xPb>Mv#9ۅ(ל>Fž#ah>oX~/?)16F?i5i[o&7n?.a}u5 ?TS\Ø? [[V@Vw?HS+߿~5? 7޿c2t?2jth(7R?ŃQ +?m]XLY?Ml s2?Ο DD?u"࿥,Ifw ?arZfO?.]@ʥh?]?D;ϻ? {'?fH`͖D?q)[t (t]?#LcjB[4"?J@e}D>[hڡ 'd>yBaPK!zpd_coif14_84_md.npyNUMPYv{'descr': 'y~0Nι >Eً+WYCX>zU{= K3?'>"QBAn <n}R@?ɬk?".AfsCάÿ%!Dx?Ykpkj?mĿS&?w;kP ¿)4?v?Œ?wgٜ3忚9vs?7*#;^ w-?EdPe[?IhҰ]b>j.m?KQF?ӕV?ZK?f=]?;95s?u+?A=Ef4u,t(e|?A ʛ? "aP]?Hl?}k 3o?n~#^ܖJ?3} 6 Y ?LQ?>'8Ӿsq'k>U7\bs>Ʈ!"4P;l'>ĝ%"g]z =C^0Z4Qe=T)b4Os<%቙b]<]<$b=2xPb>Mv#9ۅ(ל>Fž#ah>oX~/?)16F?i5i[o&7n?.a}u5 ?TS\Ø? [[V@Vw?HS+߿~5? 7޿c2t?2jth(7R?ŃQ +?m]XLY?Ml s2?Ο DD?u"࿥,Ifw ?arZfO?.]@ʥh?]?D;ϻ? {'?fH`͖D?q)[t (t]?#LcjB[4"?J@e}D>[hڡ 'd>yBaPK!zpd_coif14_84_md_pywtCoeffs.npyNUMPYv{'descr': 'y~0Nι >Eً+WYCX>zU{= K3?'>"QBAn <n}R@?ɬk?".AfsCάÿ%!Dx?Ykpkj?mĿS&?w;kP ¿)4?v?Œ?wgٜ3忚9vs?7*#;^ w-?EdPe[?IhҰ]b>j.m?KQF?ӕV?ZK?f=]?;95s?u+?A=Ef4u,t(e|?A ʛ? "aP]?Hl?}k 3o?n~#^ܖJ?3} 6 Y ?LQ?>'8Ӿsq'k>U7\bs>Ʈ!"4P;l'>ĝ%"g]z =C^0Z4Qe=T)b4Os<%቙b]<ڿ*"?Bv?u=%?X?E?N90-?XkH?zaf 2h:b//S>k: _\>@菤G% _ ?68$xE8?gAB Ӑʏ)q?Є.˳'X?xAn¿>2b*ʿ(r?ň翔 T/_)?wL16gVm?E jmnmu~˸?2BJ?qEJAGLs𿴀ƬÿYx?kO֞j?}ߌmĿ?6'kP ¿Y$+4?v?EŒ?wgٜ3忚9vs?7*#;^ w-?CPda[?򝙱ڥil?lYG?yS?fϦ?ψ?U1V_+t[k?,fc!IZ?b _󿗵?6 dn?WP VP?zD΁d??vCp ɯ'^?KXL7p9?ł&~n?UhĈnp>"iȾ_hǍ>Xԍ7k>?aG3ٞ;!>lO"_wd=pPҩ񙖽sa=Yg$ [<_-5nPK!Ρ6sp0_coif14_84_ma_pywtCoeffs.npyNUMPYv{'descr': 'ڿ*"?Bv?u=%?X?E?N90-?XkH?zaf 2h:b//S>k: _\>@菤G% _ ?68$xE8?gAB Ӑʏ)q?Є.˳'X?xAn¿>2b*ʿ(r?ň翔 T/_)?wL16gVm?E jmnmu~˸?2BJ?qEJAGLs𿴀ƬÿYx?kO֞j?}ߌmĿ?6'kP ¿Y$+4?v?EŒ?wgٜ3忚9vs?7*#;^ w-?CPda[?򝙱ڥil?lYG?yS?fϦ?ψ?U1V_+t[k?,fc!IZ?b _󿗵?6 dn?WP VP?zD΁d??vCp ɯ'^?KXL7p9?ł&~n?UhĈnp>"iȾ_hǍ>Xԍ7k>?aG3ٞ;!>lO"_wd=pPҩ񙖽sa=Yg$ [<_-5nPK!߭sym_coif14_84_ma.npyNUMPYv{'descr': 'p@s`*ѿ/a?MK?Edt?"7904uK?z5jgu@Qcpt7?@>9Gmzk?u:kzQѿqr?.9_?sSWZ?57iL9lE^}<?pt ?,vJ?08뮿?yu`CǀkLܿA޵]B?{kq?и(ǿ p N|Xe?Q*?P^?_P?0abk?PK!>sym_coif14_84_md.npyNUMPYv{'descr': 'qF?wtq?κ,?vп3;o,gۿ3avO5lݿ…<$r?Jɚb)M?y3H?*_?]In;ڿFy-?<=G$#dҿU=C,?!eOl{2Ns׿Qz*ӿ ?wiXcc?PK!߭sym_coif14_84_ma_pywtCoeffs.npyNUMPYv{'descr': 'p@s`*ѿ/a?MK?Edt?"7904uK?z5jgu@Qcpt7?@>9Gmzk?u:kzQѿqr?.9_?sSWZ?57iL9lE^}<?pt ?,vJ?08뮿?yu`CǀkLܿA޵]B?{kq?и(ǿ p N|Xe?Q*?P^?_P?0abk?PK!>sym_coif14_84_md_pywtCoeffs.npyNUMPYv{'descr': 'qF?wtq?κ,?vп3;o,gۿ3avO5lݿ…<$r?Jɚb)M?y3H?*_?]In;ڿFy-?<=G$#dҿU=C,?!eOl{2Ns׿Qz*ӿ ?wiXcc?PK! symw_coif14_84_ma.npyNUMPYv{'descr': '+?;Jvb@+6?!Ƥ}Aj?b/d&⿬ r9?g,>fօ?PĀ#mH?) ?R'O? MGJ뜃?R޿h 2@}?|-qֿΌ!e?XQ޿kT|?7GA0S?{'?*JY?H'kQ@0?[)Cʧ? Ou"࿥,Ifw ?arZfO?,.]@h?]?!f:ϻ?^Nx?v񿬥j?̊KmĿi ?21kP ¿{n*4?/v?2Œ?wgٜ3忚9vs?7*#;^ w-?N/P 2[?BM!-j5m?JƯF?.V?:?ŋ3}w?<./sWO?f݄?<S"[@?W-.?)hWf8? mt;5?? !?&͞ĿARig?VRתh?TY?z"%"p2?WnWt俀2\g?Uy?D&'?-|5! kټZ˓?t/3ÿ~va6?]QC?PK!  symw_coif14_84_ma_pywtCoeffs.npyNUMPYv{'descr': '+?;Jvb@+6?!Ƥ}Aj?b/d&⿬ r9?g,>fօ?PĀ#mH?) ?R'O? MGJ뜃?R޿h 2@}?|-qֿΌ!e?XQ޿kT|?7GA0S?{'?*JY?H'kQ@0?[)Cʧ? Ou"࿥,Ifw ?arZfO?,.]@h?]?!f:ϻ?^Nx?v񿬥j?̊KmĿi ?21kP ¿{n*4?/v?2Œ?wgٜ3忚9vs?7*#;^ w-?N/P 2[?BM!-j5m?JƯF?.V?:?ŋ3}w?<./sWO?f݄?<S"[@?W-.?)hWf8? mt;5?? !?&͞ĿARig?VRתh?TY?z"%"p2?WnWt俀2\g?Uy?D&'?-|5! kټZ˓?t/3ÿ~va6?]QC?PK!5ippd_coif14_84_ma.npyNUMPYv{'descr': 'WῈԫ>H |?is46пev6ó?sכ?.?8ٽe?V?[ju?(L?s\i9s[}Vs?S?T86ra?Jݶ?YyZ?J{~Y?vD?9͝u"࿥,Ifw ?ar[fO?-]@2h?I(]?7<ϻ?mWῈԫ>H |?is46пev6ó?sכ?.?8ٽe?V?[ju?(L?s\i9s[}Vs?S?T86ra?Jݶ?YyZ?J{~Y?vD?9͝u"PK!P ppd_coif14_84_md.npyNUMPYv{'descr': '+Te?!$F2:K?ii$&vq;zR??D5B`s𿯾YÿӚy?-;4DBYj?aNmĿǹᆧ?(lP ¿! 4?v?sŒ?vgٜ3忙9vs?7*#;^ w-?"#P|[?&6#]j(Y,1cm?UMGF?ȓW?ꗖ+Te?!$F2:K?ii$&vq;zR??D5B`s𿯾YÿӚy?-;4DBYj?aNmĿǹᆧ?(lP ¿! 4?v?sŒ?vgٜ3忙9vs?7*#;PK!5ippd_coif14_84_ma_pywtCoeffs.npyNUMPYv{'descr': 'WῈԫ>H |?is46пev6ó?sכ?.?8ٽe?V?[ju?(L?s\i9s[}Vs?S?T86ra?Jݶ?YyZ?J{~Y?vD?9͝u"࿥,Ifw ?ar[fO?-]@2h?I(]?7<ϻ?mWῈԫ>H |?is46пev6ó?sכ?.?8ٽe?V?[ju?(L?s\i9s[}Vs?S?T86ra?Jݶ?YyZ?J{~Y?vD?9͝u"PK!P ppd_coif14_84_md_pywtCoeffs.npyNUMPYv{'descr': '+Te?!$F2:K?ii$&vq;zR??D5B`s𿯾YÿӚy?-;4DBYj?aNmĿǹᆧ?(lP ¿! 4?v?sŒ?vgٜ3忙9vs?7*#;^ w-?"#P|[?&6#]j(Y,1cm?UMGF?ȓW?ꗖ+Te?!$F2:K?ii$&vq;zR??D5B`s𿯾YÿӚy?-;4DBYj?aNmĿǹᆧ?(lP ¿! 4?v?sŒ?vgٜ3忙9vs?7*#;PK!q-sp1_coif14_84_ma.npyNUMPYv{'descr': ' T/ >/qז?}m+Og޿.fk?uEKjNAR? ?ޫhY?..,pB8?#DI?:u"࿥,Ifw ?ar迣ZfO?/]@5Th?9 9]?-ϻ?L5b( C6t0Z>0\$߾9Xk?!+2(*v ?Q{^z*K>C'se;c6>~h:싾0}Sg>E]A=~c->FWwűo=FMՄĈdL=ִ-; ʓ<u[=}Ew<5 T/ >/qז?}m+Og޿.fk?uEKjNAR? ?ޫhY?..,pB8?#DI?:u"࿥,Ifw ?ar迣ZfO?/]@5Th?9 9]?-ϻ?L5b( C6t0Z>0\$߾9Xk?!+2(*v ?Q{^z*K>C'se;c6>~h:싾0}Sg>E]A=~c->FWwűo=FMՄĈdL=ִ-; ʓ<u[=}Ew<5=?6m?{y{п4gB?Ϭɡ?eہ?Jle?4ῂJ?m˪D)] οPK!w`per_coif14_84_md.npyNUMPYv{'descr': '!zjӫhsܿ 1#ڿk7п\(_a?&?Cd?Man$?pXR?:gO [eٿ `͓F@?Ԗÿw. ]!bR?PK!per_coif14_84_ma_pywtCoeffs.npyNUMPYv{'descr': '=?6m?{y{п4gB?Ϭɡ?eہ?Jle?4ῂJ?m˪D)] οPK!w`per_coif14_84_md_pywtCoeffs.npyNUMPYv{'descr': '!zjӫhsܿ 1#ڿk7п\(_a?&?Cd?Man$?pXR?:gO [eٿ `͓F@?Ԗÿw. ]!bR?PK!R,asym_coif14_84_ma.npyNUMPYv{'descr': 'p`*??޿cGLatW0?uKW@iuc?7ϿkT֐>?'%}?AukU?;dr?~[I? f?at  ̄9?#j?%=@  @_ำ?3"Yg !w{2W? }RX࿼?Eu"࿥,Ifw ?ar[fO?-]@h?9V]?=ϻ?t{p`*??޿cGLatW0?uKW@iuc?7ϿkT֐>?'%}?AukU?;dr?~[I? f?at  ̄9?#j?%=@  @_ำ?3"Yg !w{2W? }RX࿼?Eu"࿥,Ifw ?ar[fO?-]@h?9V]?=ϻ?t{;J?Tr?7'X?{ydx)?#CnU?u"࿥,Ifw ?ar迿ZfO?$/]@mh?)]?1ϻ?tE?ޘ?Ɛ3u?9mf{F/65N?XIͿ:С?_ ?mAn1?$y,/?;1(U?޹ @tC @ @ @I@T]C|@,= @^]MV @(*A@iܬ@l@-^@ttFrU @B@PK!xڙasymw_coif14_84_md.npyNUMPYv{'descr': ';J?Tr?7'X?{ydx)?#CnU?u"࿥,Ifw ?ar迿ZfO?$/]@mh?)]?1ϻ?tE?ޘ?Ɛ3u?9mf{F/65N?XIͿ:С?_ ?mAn1?$y,/?;1(U?޹ @tC @ @ @I@T]C|@,= @^]MV @(*A@iܬ@l@-^@ttFrU @B@PK!xڙ!asymw_coif14_84_md_pywtCoeffs.npyNUMPYv{'descr': ' LNIr>%*M6sr""i!ɴ>=.-Ӿk,>NNH #!?-q 8BbM?Y9Ka$tds? e_r?`"ʻ?c$0OHDc:*?G0R?cq??Y jD'9ۿ]C H?0?Kl?`?A7߸?¼6Ũū{@Y-t?'3;ƿۿ,|@bܚ@7`ؾ#=I>?5ei>PK!-  zpd_coif14_85_md.npyNUMPYv{'descr': 'y?"Z<"D?>j.Ͼ#s0>{-)S!v^ȧA?:-^||WRv?싿Qr?gZXP?Baqܿ0W?7oXܿ(u?]J}sj\g?¬Ͽ|t&20俴7sB־?>h~[T{@=?$*Y??ܶ?eVпԸS? KɼZi\9@wW?^"zӁ.d@ɏ@%(]T@8ܿ P4."#z!{w[?3?<닿=_?[?ի?N?fL#QͿGSo:2{?\t?7?:>s72߿riڲ?y{z[뻑?)eˣ ΋;Њ?TTuA >?4L9 ' Cn?zdܟ2>w!>"0ټthXk>E&z~p#U>gvv?.Ww>቞[Խ<x=k_vvk[0x0=8x#f<6}APK!~=  zpd_coif14_85_ma_pywtCoeffs.npyNUMPYv{'descr': ' LNIr>%*M6sr""i!ɴ>=.-Ӿk,>NNH #!?-q 8BbM?Y9Ka$tds? e_r?`"ʻ?c$0OHDc:*?G0R?cq??Y jD'9ۿ]C H?0?Kl?`?A7߸?¼6Ũū{@Y-t?'3;ƿۿ,|@bܚ@7`ؾ#=I>?5ei>PK!-  zpd_coif14_85_md_pywtCoeffs.npyNUMPYv{'descr': 'y?"Z<"D?>j.Ͼ#s0>{-)S!v^ȧA?:-^||WRv?싿Qr?gZXP?Baqܿ0W?7oXܿ(u?]J}sj\g?¬Ͽ|t&20俴7sB־?>h~[T{@=?$*Y??ܶ?eVпԸS? KɼZi\9@wW?^"zӁ.d@ɏ@%(]T@8ܿ P4."#z!{w[?3?<닿=_?[?ի?N?fL#QͿGSo:2{?\t?7?:>s72߿riڲ?y{z[뻑?)eˣ ΋;Њ?TTuA >?4L9 ' Cn?zdܟ2>w!>"0ټthXk>E&z~p#U>gvv?.Ww>቞[Խ<x=k_vvk[0x0=8x#f<6}APK!\m  sp0_coif14_85_ma.npyNUMPYv{'descr': 'ttIt_trkzĔY ߅.4;U5E- !*1 4ѹ4^]xx4༿j; S¿ O^c[Ͽv?q7ۿG4 H?`h+0?q?<`?A7߸?¼6Ũū{@'-t?3;Tۿf|@ρܚ@ 8$-Wi@xs&,@s?S@܃&@S>@eC9@ I:@j:@:@%@ݚ:@PK!{|Շ  sp0_coif14_85_md.npyNUMPYv{'descr': 'PpcdkhP>vsؾ8ɬ?hf~&3u%F?4PCbVlƼy?aۣ䏏FH\,?n&˸?'>e6 ܿ\?:_DGܿ;yt?XrI?47Ͽ MCR־?FI [^ma{@ifg ?Y??ܶ?eVпMҩS?nEɼZZi\9@JwW? _"zՁ.d@ɏ@%(]T@8ܿnZ5E#zWI=s7d[?as_?昣 ?QI%F?]w\0?e?.R]Q̿^ B?6?'?0ǿW?9FCEڗ?HCK H&D?ix5!q!?rA>vv)Ӿbb/fF> a&s!w>@u3U̴l1>k ݴ=6~dFx8<=cG!RBM =պ Ԓ]Ǩ,<&[<.HcttIt_trkzĔY ߅.4;U5E- !*1 4ѹ4^]xx4༿j; S¿ O^c[Ͽv?q7ۿG4 H?`h+0?q?<`?A7߸?¼6Ũū{@'-t?3;Tۿf|@ρܚ@ 8$-Wi@xs&,@s?S@܃&@S>@eC9@ I:@j:@:@%@ݚ:@PK!{|Շ  sp0_coif14_85_md_pywtCoeffs.npyNUMPYv{'descr': 'PpcdkhP>vsؾ8ɬ?hf~&3u%F?4PCbVlƼy?aۣ䏏FH\,?n&˸?'>e6 ܿ\?:_DGܿ;yt?XrI?47Ͽ MCR־?FI [^ma{@ifg ?Y??ܶ?eVпMҩS?nEɼZZi\9@JwW? _"zՁ.d@ɏ@%(]T@8ܿnZ5E#zWI=s7d[?as_?昣 ?QI%F?]w\0?e?.R]Q̿^ B?6?'?0ǿW?9FCEڗ?HCK H&D?ix5!q!?rA>vv)Ӿbb/fF> a&s!w>@u3U̴l1>k ݴ=6~dFx8<=cG!RBM =պ Ԓ]Ǩ,<&[<.Hc ?c i?SV6׿ܷO%?xD ??uqq-?0?{qs?PK!+g  sym_coif14_85_md.npyNUMPYv{'descr': 'eѼfпҪ=P?<عA?0ݿܭ^ۿi1?~n?ϼI(?<%5?]BLkL~G?5f?ooҿR*?FR??9>8?kDڧ>^/WZf`@/qJ?{%dJ {Z.av#9?BA?PK!Չ  sym_coif14_85_ma_pywtCoeffs.npyNUMPYv{'descr': ' ?c i?SV6׿ܷO%?xD ??uqq-?0?{qs?PK!+g  sym_coif14_85_md_pywtCoeffs.npyNUMPYv{'descr': 'eѼfпҪ=P?<عA?0ݿܭ^ۿi1?~n?ϼI(?<%5?]BLkL~G?5f?ooҿR*?FR??9>8?kDڧ>^/WZf`@/qJ?{%dJ {Z.av#9?BA?PK!q  symw_coif14_85_ma.npyNUMPYv{'descr': 'Q??@%?wp?Ljў?̘>1eؿ-nvZ<,('Cn?PK!9  symw_coif14_85_md.npyNUMPYv{'descr': ';u?׆vtNX俲ofbYV̿@>@97?s"a?yܿJ?6 kĝֿR9ѿ,*H)?`?i(ؿU}Zj?;|*I,q?s#/*Ͽ).~D3vy%ž?~ĺZ.{@gY?SS??+<۶?leVп=Uxs?!ɼ[i\9@+wW?V"z濫.d@ɏ@%(]T@8ܿ7:4= $#zssԧv[?N)D_?m?ZGqH8?5|/?q637w\ϿMSi?]6Q?U?&"w?Eo}DpѿkF{}T?Ԁq?XFj?UM?lQEbޢ?>"cNRTb`/oA =ݿeaz{@~@}KL.}@/ڔ濟~[?# @{lJG /?| Q??@%?wp?Ljў?̘>1eؿ-nvZ<,('Cn?PK!9   symw_coif14_85_md_pywtCoeffs.npyNUMPYv{'descr': ';u?׆vtNX俲ofbYV̿@>@97?s"a?yܿJ?6 kĝֿR9ѿ,*H)?`?i(ؿU}Zj?;|*I,q?s#/*Ͽ).~D3vy%ž?~ĺZ.{@gY?SS??+<۶?leVп=Uxs?!ɼ[i\9@+wW?V"z濫.d@ɏ@%(]T@8ܿ7:4= $#zssԧv[?N)D_?m?ZGqH8?5|/?q637w\ϿMSi?]6Q?U?&"w?Eo}DpѿkF{}T?Ԁq?XFj?UM?lQEbޢ?>"cNRTb`/oA =ݿeaz{@~@}KL.}@/ڔ濟~[?# @{lJG /?| $t?OD{ ٿy2r_E?҈ ?% ^ ?)Z:?f$?Ec?" "?4ѿL)?m`?vE}J習ȩ@M^ٿucc?7I>a?9O:? I};?O?~t?D=?+2?m)?j2ۿ]H?nq/?g\?mt`?A7߸?¼6Ũū{@[-t?)3;*ۿ,|@fܚ@Oj7AX8?I"_?#C[•?\Rh"@Aտ"^$:r6?@ĿT E?k|~|?:'@M:EɽD_&Fߨ?0*?Q=˽?\?$+u?PK!eg  ppd_coif14_85_md.npyNUMPYv{'descr': '$t?OD{ ٿy2r_E?҈ ?% ^ ?)Z:?f$?Ec?" "?4ѿL)?m`?vE}J習ȩ@M^ٿucc?7I>a?9O:? I};?O?~t?D=?+2?m)?j2ۿ]H?nq/?g\?mt`?A7߸?¼6Ũū{@[-t?)3;*ۿ,|@fܚ@Oj7AX8?I"_?#C[•?\Rh"@Aտ"^$:r6?@ĿT E?k|~|?:'@M:EɽD_&Fߨ?0*?Q=˽?\?$+u?PK!eg  ppd_coif14_85_md_pywtCoeffs.npyNUMPYv{'descr': '?"mF_#TZ ^S U2G#E0,rTZG0N4n kAf2+b?A13c Υ,L^??<1R? 5}? ?g$dx;ۿΤK_ H?z0??#`?A7߸?¼6Ũū{@,t?Q3;ۿ|@UGܚ@*18@³gՀj>3Ͳ־P?5Lg&߶G?YlPc<0{?z ,> K?M3 ⪲K`?s,ۿ{J$Y?C^zܿĺg?}N3SO ?-ϿJq{:`n־? ղ[z3UP{@9?NʶY?Ē?Q^ܶ? eVп}S . ?XEUɼZi\9@wW?U^"zЁ.d@ɏ@%(]T@8ܿ5t #z;8:Tz[?V/_?R ? G?;f?rvV'ogQɿNb;ȿ&:JR?XI?x>5I?E!a*w2?g8fw?ej쾀p6>Ezkfg;6>nYsF%P>i=(Cus=6rѽtIj=p"WhG'Z%=f =Mή>=D"!=PK!;  sp1_coif14_85_ma_pywtCoeffs.npyNUMPYv{'descr': '?"mF_#TZ ^S U2G#E0,rTZG0N4n kAf2+b?A13c Υ,L^??<1R? 5}? ?g$dx;ۿΤK_ H?z0??#`?A7߸?¼6Ũū{@,t?Q3;ۿ|@UGܚ@*18@³gՀj>3Ͳ־P?5Lg&߶G?YlPc<0{?z ,> K?M3 ⪲K`?s,ۿ{J$Y?C^zܿĺg?}N3SO ?-ϿJq{:`n־? ղ[z3UP{@9?NʶY?Ē?Q^ܶ? eVп}S . ?XEUɼZi\9@wW?U^"zЁ.d@ɏ@%(]T@8ܿ5t #z;8:Tz[?V/_?R ? G?;f?rvV'ogQɿNb;ȿ&:JR?XI?x>5I?E!a*w2?g8fw?ej쾀p6>Ezkfg;6>nYsF%P>i=(Cus=6rѽtIj=p"WhG'Z%=f =Mή>=D"!=PK!b_Gper_coif14_85_ma.npyNUMPYv{'descr': 'ܿBtPK!b_Gper_coif14_85_ma_pywtCoeffs.npyNUMPYv{'descr': 'ܿBtPK!8}  asym_coif14_85_ma.npyNUMPYv{'descr': '"Q?@ b٤￘Sѿ;"s.{PМuͿ#T[+?Yb4?]iJv[hJvdܽ2PB4p?_ϟe鿞R?bdG? g t?v̞sP>S?f'h?ߟ-O?U:?HfeAÿmݰ3?o aP?B33|鿒v?.?|p69??0h!{ 鿌j@K54?HתsR܊ѿ[ɿ1j_ؿ]HN?arPK!а  asym_coif14_85_md.npyNUMPYv{'descr': '`zi/#hB?_:_E/enPܿ@Uա s?W!U?ʴݶ?BCſTSA*v"Q?@ b٤￘Sѿ;"s.{PМuͿ#T[+?Yb4?]iJv[hJvdܽ2PB4p?_ϟe鿞R?bdG? g t?v̞sP>S?f'h?ߟ-O?U:?HfeAÿmݰ3?o aP?B33|鿒v?.?|p69??0h!{ 鿌j@K54?HתsR܊ѿ[ɿ1j_ؿ]HN?arPK!а   asym_coif14_85_md_pywtCoeffs.npyNUMPYv{'descr': '`zi/#hB?_:_E/enPܿ@Uա s?W!U?ʴݶ?BCſTSA*vӸwc?#t?Ja?hIr?r?J9 F_ۿ>H?[^0?湓?Y<`?A7߸?¼6Ũū{@,t?<3;ۿ٤|@^ܚ@+7J8@PK!p`  asymw_coif14_85_md.npyNUMPYv{'descr': '?2Ӹwc?#t?Ja?hIr?r?J9 F_ۿ>H?[^0?湓?Y<`?A7߸?¼6Ũū{@,t?<3;ۿ٤|@^ܚ@+7J8@PK!p`  !asymw_coif14_85_md_pywtCoeffs.npyNUMPYv{'descr': '?2ƀIg6@>UqSSrZo>Gv`|? JV#0?P^ EZ?Q|+Bn]B ?PL|VD?kzlЧQ$]?8GѵhPU?p|]H[?: <<gn?1{Ƭjr 8hˈ?ՙ3?qbC9п`BoO JK#?kY-#n|ɼ0 Na?nny@V^)9?ʎZ-ZP~qH9տ6y( VdWJ?]ʜ'!;˿W_֔jA3) m?̥3hD?ߨ,oڿh?fK0?QٯO?>nz:tgըĭ rvܿSK$?dCõ?Ww/tei?h.|J~M<{l?vRnz S?\ K4Fk]?nNY>Q4z6uI>%;PK!X⭘HHzpd_coif15_90_md.npyNUMPYv{'descr': 'ca0[E>*?a ?:{-@WL?fH:B?)hy~3q?Rp+a ?d$ODGm?لp9??κJx:@8' ݿsn`?_W?<+6?8bAxH?֢]$㿥'y~?Vᅰttwa#?λK?seݏζܿ"Xc_?j h.ĵ? UFwP$4+kb?9'TʿC$˿j\p(Oe,8{>D#?$U?*a?A?4>濎>lM;AGM?3ILL?Gh2vUݿT8?aK,?鿇G 5?, u<Ӳ :u?+J \P?w>컩j;ң?U߳eLti ?[N҄kd +Aq?ǞIx_`4J?Mto94"R?{)Z^NƊU>+_{?оm),wͱ>&3ܑBiz0cNp>%4(JJ(#>xƀIg6@>UqSSrZo>Gv`|? JV#0?P^ EZ?Q|+Bn]B ?PL|VD?kzlЧQ$]?8GѵhPU?p|]H[?: <<gn?1{Ƭjr 8hˈ?ՙ3?qbC9п`BoO JK#?kY-#n|ɼ0 Na?nny@V^)9?ʎZ-ZP~qH9տ6y( VdWJ?]ʜ'!;˿W_֔jA3) m?̥3hD?ߨ,oڿh?fK0?QٯO?>nz:tgըĭ rvܿSK$?dCõ?Ww/tei?h.|J~M<{l?vRnz S?\ K4Fk]?nNY>Q4z6uI>%;PK!X⭘HHzpd_coif15_90_md_pywtCoeffs.npyNUMPYv{'descr': 'ca0[E>*?a ?:{-@WL?fH:B?)hy~3q?Rp+a ?d$ODGm?لp9??κJx:@8' ݿsn`?_W?<+6?8bAxH?֢]$㿥'y~?Vᅰttwa#?λK?seݏζܿ"Xc_?j h.ĵ? UFwP$4+kb?9'TʿC$˿j\p(Oe,8{>D#?$U?*a?A?4>濎>lM;AGM?3ILL?Gh2vUݿT8?aK,?鿇G 5?, u<Ӳ :u?+J \P?w>컩j;ң?U߳eLti ?[N҄kd +Aq?ǞIx_`4J?Mto94"R?{)Z^NƊU>+_{?оm),wͱ>&3ܑBiz0cNp>%4(JJ(#>xau3{f׏;&-%dFqxvΆcoqzOșPqh!pqijq$nOkqXF;kq/=kqPK!kHHsp0_coif15_90_md.npyNUMPYv{'descr': 'Lj4BH܃Ċ ,>B5 l(?dIG i:f?J-LY_J?s>.u?KMSпyw3?h?mӔfN(<Iݿjr?{>[?ܻ΅?YE?JI%#"N?C?+Z[m wq#?Ʃ!K?- seO ϶ܿ@wl_?v hص?!NEwE4+kb?TʿׯC$˿ j\p(Oe,8{>D#?$U?y~a?~1?c מ>+QJuOIީF0ӳ?rH?Ui=ݿ`;?J;ik?Xcrw% 0jK t?m`o?wۋǿv?d[FI٢?)un=0݄c?_Rv@e?,GoRɽ:@?Ŵ33*[(*X?tMDH}e>"ygGƾN˨>}rj8jLg>s&&iC^n>8aDWo{=q밣ؕEϓIb=t#_ )$au3{f׏;&-%dFqxvΆcoqzOșPqh!pqijq$nOkqXF;kq/=kqPK!kHHsp0_coif15_90_md_pywtCoeffs.npyNUMPYv{'descr': 'Lj4BH܃Ċ ,>B5 l(?dIG i:f?J-LY_J?s>.u?KMSпyw3?h?mӔfN(<Iݿjr?{>[?ܻ΅?YE?JI%#"N?C?+Z[m wq#?Ʃ!K?- seO ϶ܿ@wl_?v hص?!NEwE4+kb?TʿׯC$˿ j\p(Oe,8{>D#?$U?y~a?~1?c מ>+QJuOIީF0ӳ?rH?Ui=ݿ`;?J;ik?Xcrw% 0jK t?m`o?wۋǿv?d[FI٢?)un=0݄c?_Rv@e?,GoRɽ:@?Ŵ33*[(*X?tMDH}e>"ygGƾN˨>}rj8jLg>s&&iC^n>8aDWo{=q밣ؕEϓIb=t#_ )$L{@}m?B|}t쿤~vqO翸;1O7΀?.?ҿ8pcX¿ VrDDB?e 0?D&?I?ᅭoEWO忽c_?|(?e]3?W62bEpyпȲo$xO JK#?kY-#n|ɼ0Ma?Nony@E)9?ZZ-ZVe8տ$6* *qJ?5(!쿷O߉˿I&'@*]?-"o&%̾I?v-ڿPf?\?6=:Z?QW좿jP9,߭oä3ve"Z۸,S2E{½?57Y6?X+B??ɿ4.?4)0)ֿk?"> LOؿ ݣ?}fOPK!**HHsym_coif15_90_md.npyNUMPYv{'descr': 'X-==?hP'd?r pwM~D#?Ȍ~I?̩egt϶ܿOz_?\%h- ?}4KCw忐3+kb?TʿC$˿ j]p(Oe,8{>D#?$U?~a?!?a>sgKeDk?{̄I?7yBݿ N]?hN?疸4s꿧IgΊE;L0_?Qy?M?.[a8װ?v ?i+|?pd?WQjWZ?wQz?RSug{ ?P?n5 ?``P?R!݁տL@LpbB&ݿE܏B쿴㭊?^?#U O?Pt|пQ@0+?hPj֣?d0*20#Ok/?O%TҿL{@}m?B|}t쿤~vqO翸;1O7΀?.?ҿ8pcX¿ VrDDB?e 0?D&?I?ᅭoEWO忽c_?|(?e]3?W62bEpyпȲo$xO JK#?kY-#n|ɼ0Ma?Nony@E)9?ZZ-ZVe8տ$6* *qJ?5(!쿷O߉˿I&'@*]?-"o&%̾I?v-ڿPf?\?6=:Z?QW좿jP9,߭oä3ve"Z۸,S2E{½?57Y6?X+B??ɿ4.?4)0)ֿk?"> LOؿ ݣ?}fOPK!**HHsym_coif15_90_md_pywtCoeffs.npyNUMPYv{'descr': 'X-==?hP'd?r pwM~D#?Ȍ~I?̩egt϶ܿOz_?\%h- ?}4KCw忐3+kb?TʿC$˿ j]p(Oe,8{>D#?$U?~a?!?a>sgKeDk?{̄I?7yBݿ N]?hN?疸4s꿧IgΊE;L0_?Qy?M?.[a8װ?v ?i+|?pd?WQjWZ?wQz?RSug{ ?P?n5 ?``P?R!݁տL@LpbB&ݿE܏B쿴㭊?^?#U O?Pt|пQ@0+?hPj֣?d0*20#Ok/?O%Tҿ6AA"P8ԿunXm:Uq*x?~l?c@1)G?}yXP#>G:&?Tʓ3忦Puy58[م5Uп{:9*SOS? UUuCPK!EHHHsymw_coif15_90_md.npyNUMPYv{'descr': 'D#?$U?Oa?s?->M+Vz?`gL?ڀ5YL?-HaUݿN*9?1e?삧'{l)rUh={O跿)O?9d=j.KxOlhk+\a )?JgF?h?޿~T?TBG9?t ϔDqm({'-*?Y]$r?{ف?XY?;?&~p)/H{qϿ!ǿ]k?4?Nw+bDD;x&1?b#߶]e?̮_:ݿ?PK!_QHH symw_coif15_90_ma_pywtCoeffs.npyNUMPYv{'descr': '6AA"P8ԿunXm:Uq*x?~l?c@1)G?}yXP#>G:&?Tʓ3忦Puy58[م5Uп{:9*SOS? UUuCPK!EHHH symw_coif15_90_md_pywtCoeffs.npyNUMPYv{'descr': 'D#?$U?Oa?s?->M+Vz?`gL?ڀ5YL?-HaUݿN*9?1e?삧'{l)rUh={O跿)O?9d=j.KxOlhk+\a )?JgF?h?޿~T?TBG9?t ϔDqm({'-*?Y]$r?{ف?XY?;?&~p)/H{qϿ!ǿ]k?4?Nw+bDD;x&1?b#߶]e?̮_:ݿ?PK!"2@HHppd_coif15_90_ma.npyNUMPYv{'descr': '8L}< ?nmJ?oJGݿ(a ?=P?hJ/TYg e?Vmuc?7T??l?b0 ÿAU[5e޿˖?y0#O?H?Zqc8? +.?( whZ#? ګG?4(e@^жܿ_?KBhIc?1N?w93+kb?Tʿ4C$˿j^p(Oe,8{>D#?$U?~a?3?ZsC>8L}< ?nmJ?oJGݿ(a ?=P?hJ/TYg e?Vmuc?7T??l?b0 ÿAU[5e޿˖?y0#O?H?Zqc8? +.?( whZ#? ګG?4(e@^жܿ_?KBhIc?1N?w93+kb?Tʿ4C$˿j^p(Oe,8{>D#?PK!"2@HHppd_coif15_90_ma_pywtCoeffs.npyNUMPYv{'descr': '8L}< ?nmJ?oJGݿ(a ?=P?hJ/TYg e?Vmuc?7T??l?b0 ÿAU[5e޿˖?y0#O?H?Zqc8? +.?( whZ#? ګG?4(e@^жܿ_?KBhIc?1N?w93+kb?Tʿ4C$˿j^p(Oe,8{>D#?$U?~a?3?ZsC>8L}< ?nmJ?oJGݿ(a ?=P?hJ/TYg e?Vmuc?7T??l?b0 ÿAU[5e޿˖?y0#O?H?Zqc8? +.?( whZ#? ګG?4(e@^жܿ_?KBhIc?1N?w93+kb?Tʿ4C$˿j^p(Oe,8{>D#?PK!у[1HHsp1_coif15_90_ma.npyNUMPYv{'descr': '\=5@Xgb_ Cba#Rcg?}iZ@/?w;.mPM&G濃y??3?tBbv =п>oO JK#?kY-#nyɼ0Ma?pny@)9?ZZ-Zb{7տ, |8J?O(!W;N˿sMK:@7s݁(* ?(`GN?ڿϋI?(\?V60?aC\do=eϰe}O 1o~%W@fG04 5*M ;&"8@0B qE-J>MMH|J/죰M仭'1PHOKQGRNOɩ;TPK! HHsp1_coif15_90_md.npyNUMPYv{'descr': ' 6Zr>,~38?Ne%?_E2mTb?M7<{9@?@rݥ l?(|Å˿n}e%?5ۆ?!KPPe `$ݿt>k??'a?t F?ʼnVX#VN?Kzdᅫ0w `l#?7XZK?+{eζܿh_?4h̵?biqFw忬4+kb?$TʿC$˿j\p(Oe,8{>D#?$U?\~a?"sk?d>̶GlX^mG|1?~NE?|C)ݿ>ԹҾDC˳>'>N>`YtZ_ɐͲ<>^Yd& 4Y`=:j½ B@=y`c`Ǐ*=桖I^u<<\=5@Xgb_ Cba#Rcg?}iZ@/?w;.mPM&G濃y??3?tBbv =п>oO JK#?kY-#nyɼ0Ma?pny@)9?ZZ-Zb{7տ, |8J?O(!W;N˿sMK:@7s݁(* ?(`GN?ڿϋI?(\?V60?aC\do=eϰe}O 1o~%W@fG04 5*M ;&"8@0B qE-J>MMH|J/죰M仭'1PHOKQGRNOɩ;TPK! HHsp1_coif15_90_md_pywtCoeffs.npyNUMPYv{'descr': ' 6Zr>,~38?Ne%?_E2mTb?M7<{9@?@rݥ l?(|Å˿n}e%?5ۆ?!KPPe `$ݿt>k??'a?t F?ʼnVX#VN?Kzdᅫ0w `l#?7XZK?+{eζܿh_?4h̵?biqFw忬4+kb?$TʿC$˿j\p(Oe,8{>D#?$U?\~a?"sk?d>̶GlX^mG|1?~NE?|C)ݿ>ԹҾDC˳>'>N>`YtZ_ɐͲ<>^Yd& 4Y`=:j½ B@=y`c`Ǐ*=桖I^u<<D#?$U?~a?3?ZsC>8L}< ?nmJ?oJGݿ(a ?=P?hJ/TYg e?Vmuc?7T??l?b0 ÿAU[5e޿˖?y0#O?PK!B5per_coif15_90_ma_pywtCoeffs.npyNUMPYv{'descr': 'D#?$U?~a?3?ZsC>8L}< ?nmJ?oJGݿ(a ?=P?hJ/TYg e?Vmuc?7T??l?b0 ÿAU[5e޿˖?y0#O?PK!0T HHasym_coif15_90_ma.npyNUMPYv{'descr': 'nny@w)9?:G[-Z6z}s9տJ4' |}?9{MPS?^yH{+?oݿvފ L?X?ck[ģؿeO?PK!ŝHHasym_coif15_90_md.npyNUMPYv{'descr': 'D#?$U?,a?z?E:>濩pO+{d$?<N?UW)hݿr//s? .?SL"eEb:͝a,g ؿna@=L?k/؎1/(@ uٿOf9翀V+sR?Ue|Bտĉ-c?ڃm-{8(K?A,8L?(IK&?X⽾B?0塭x)A'DT Os|?KR0+ h?i8j֣R.*2?x#Ok?O%T?nny@w)9?:G[-Z6z}s9տJ4' |}?9{MPS?^yH{+?oݿvފ L?X?ck[ģؿeO?PK!ŝHH asym_coif15_90_md_pywtCoeffs.npyNUMPYv{'descr': 'D#?$U?,a?z?E:>濩pO+{d$?<N?UW)hݿr//s? .?SL"eEb:͝a,g ؿna@=L?k/؎1/(@ uٿOf9翀V+sR?Ue|Bտĉ-c?ڃm-{8(K?A,8L?(IK&?X⽾B?0塭x)A'DT Os|?KR0+ h?i8j֣R.*2?x#Ok?O%T?X>yC|ח鿧(8&ll?3?b&b8֬п!oiO JK#?kY-#nzɼ0Ma?ypny@)9?Z-Z 7տэ, +J?vtP(!g)˿ a~&@=ݜ-*L3?+5:O?㡘+ڿ魾? ?T =?p2(mQ~Eu㿈 \QOM?!8gi C` /( ٗ dC.qU3nb$O~/O3+|72 q6a3Q4%C<PK!HHasymw_coif15_90_md.npyNUMPYv{'descr': '?YU?mD#?$U?~a?棃\?;>#lHH}??HIci~E?c%ݿp&۪?b0??7='"O߿ Cu/ι?[.@DLHпxZ~?蠿[?YjM?pgu̿j!^ݿ8 ~?\<v ]ݘ?3U+j?_8?=+˿aRYM;Xg YNA19v?ǜO*H? y??j?4Mw+? ED;?&1yb#߶?de߿_:?VᑿPK!JHH!asymw_coif15_90_ma_pywtCoeffs.npyNUMPYv{'descr': 'X>yC|ח鿧(8&ll?3?b&b8֬п!oiO JK#?kY-#nzɼ0Ma?ypny@)9?Z-Z 7տэ, +J?vtP(!g)˿ a~&@=ݜ-*L3?+5:O?㡘+ڿ魾? ?T =?p2(mQ~Eu㿈 \QOM?!8gi C` /( ٗ dC.qU3nb$O~/O3+|72 q6a3Q4%C<PK!HH!asymw_coif15_90_md_pywtCoeffs.npyNUMPYv{'descr': '?YU?mD#?$U?~a?棃\?;>#lHH}??HIci~E?c%ݿp&۪?b0??7='"O߿ Cu/ι?[.@DLHпxZ~?蠿[?YjM?pgu̿j!^ݿ8 ~?\<v ]ݘ?3U+j?_8?=+˿aRYM;Xg YNA19v?ǜO*H? y??j?4Mw+? ED;?&1yb#߶?de߿_:?VᑿPK! 6PPzpd_coif15_91_ma.npyNUMPYv{'descr': '-8<)إ]-Ţ'9d2p W>b#{2֝>h]4?_R[>@h xC0-?Lh\(u-_CFU?mg xֿp |'cf ?d0.G35R?%ӿA'6#Z俟MVdK?|6;?_&ܿ*pP ? v?w71hDR?>`0p"׌C>;g iݐ#=PK!hPPzpd_coif15_91_md.npyNUMPYv{'descr': '^( 5<ݡfG>&r. ?z@]?\dw_oRBQ?~aYfGd?/KMyIʿ@_?B)T?r?z~}7Uº1?)+޿{ef?O/&h΢$ȿF`?[z?T1?#ey?W7}A¼ҿzoZKX?)X<3s"?_տx9l;ֿ( ??4y.uRN!?[$? @)e|?P<~? B? ݒ?݊vm??1pdB?_iv?(' :>?4e6*E4 캜?OA#4u?.$}Njeҧ;뙿Cf}?}^$ϚK2?/PH<&u?'dQ`Q?W;`"$?zme >qSrҾed_>{qB!An>G]D!Ad0>4`"_߽A)L hl%=PL8vM3 O=CY1 9iy:-8<)إ]-Ţ'9d2p W>b#{2֝>h]4?_R[>@h xC0-?Lh\(u-_CFU?mg xֿp |'cf ?d0.G35R?%ӿA'6#Z俟MVdK?|6;?_&ܿ*pP ? v?w71hDR?>`0p"׌C>;g iݐ#=PK!hPPzpd_coif15_91_md_pywtCoeffs.npyNUMPYv{'descr': '^( 5<ݡfG>&r. ?z@]?\dw_oRBQ?~aYfGd?/KMyIʿ@_?B)T?r?z~}7Uº1?)+޿{ef?O/&h΢$ȿF`?[z?T1?#ey?W7}A¼ҿzoZKX?)X<3s"?_տx9l;ֿ( ??4y.uRN!?[$? @)e|?P<~? B? ݒ?݊vm??1pdB?_iv?(' :>?4e6*E4 캜?OA#4u?.$}Njeҧ;뙿Cf}?}^$ϚK2?/PH<&u?'dQ`Q?W;`"$?zme >qSrҾed_>{qB!An>G]D!Ad0>4`"_߽A)L hl%=PL8vM3 O=CY1 9iy:z?? 0?o_?UX*?~?u2wߐq?X3<{$Э!q3'ޡ?:Lb??n#T?ia ? ƜIvZ[z-2thgZ?>捦?AE߿b 36o?]vG?DNm?C˹׻.FqFƿ_QP۪Ɋ?$u-na_G;Y?4(xֿ`|fX ?D-GL`3R? ӿ8`GDgK?nW?+cwܿVw ?h?\ᯅ웊Er/oШ4[7ʺ?|UnݿXr HƿRPӿoϿFf1ѿ4Gп|пLпrqпIԎ]"п 9пQ%U6п_.87пg37пJ37пPK!-PPsp0_coif15_91_md.npyNUMPYv{'descr': '[^E:F|4#>zmCK^׾#P>殯[ ,?3h2ȓE1m?l nҍ ?*T~?2&?{a?cI.m=(?5R޿^ʿ?n$ HȿP_? {u?^>1?[ey?|[bI}D8ҿ B"YUX?>3˙?$^տ^;ֿ3 ??z.uRN!?[$? @)e|?P<~? B? Um?vm?[?>eBX-Ǟ?_v?Q䆕GQݾÞ>XWcky+v>(Q/]KC7>IM u^WK=b2>={ %fQno5D=Ŕؼ%X?Cz?? 0?o_?UX*?~?u2wߐq?X3<{$Э!q3'ޡ?:Lb??n#T?ia ? ƜIvZ[z-2thgZ?>捦?AE߿b 36o?]vG?DNm?C˹׻.FqFƿ_QP۪Ɋ?$u-na_G;Y?4(xֿ`|fX ?D-GL`3R? ӿ8`GDgK?nW?+cwܿVw ?h?\ᯅ웊Er/oШ4[7ʺ?|UnݿXr HƿRPӿoϿFf1ѿ4Gп|пLпrqпIԎ]"п 9пQ%U6п_.87пg37пJ37пPK!-PPsp0_coif15_91_md_pywtCoeffs.npyNUMPYv{'descr': '[^E:F|4#>zmCK^׾#P>殯[ ,?3h2ȓE1m?l nҍ ?*T~?2&?{a?cI.m=(?5R޿^ʿ?n$ HȿP_? {u?^>1?[ey?|[bI}D8ҿ B"YUX?>3˙?$^տ^;ֿ3 ??z.uRN!?[$? @)e|?P<~? B? Um?vm?[?>eBX-Ǟ?_v?Q䆕GQݾÞ>XWcky+v>(Q/]KC7>IM u^WK=b2>={ %fQno5D=Ŕؼ%X?CQ7+?8qa>60-翍)u%ؿ 9?e?׵+9?l j%+2F+aabXr?u>f UZ?TjEj?ȿzY'>w`os/y ?rr{:? 6 ٹ?@?o>>[} 2N5eZ?[捦?AE߿b 36o?avG?/DN?&C˹ͻ.IqFƿHQnXɊ?9t-jL t?9xֿ4J{M ?!GX-4 R?}GӿtlźQ?̑l~?lܿIh|?켧?[)βs/k_rxZȄ3'? C?]+Z405Α?ݿ-y.B?!MԿGM*1^eG?-r? !ymK`?KD J?W3HT?PK!2PPsym_coif15_91_md.npyNUMPYv{'descr': '^?_v+?J50?se{?Xȳ}LҿQkJ ~X?yPH3Z?ݦտ;ֿa ?3?.uRNR"?[$? @)e|?P<~? B? 延?!vyvm??e~hB0}?7#v?Š`7A|2?#)j3Sf.?ShYG?<]׾W?b1K`0&ɆmտyZ?RۿoSJ??hqġܿ5F?HpZxҸK??1g_.n ׿tl3???a OhMԜ?Tx*"Jz'4KSj?[yt?]꿌q끓Q7+?8qa>60-翍)u%ؿ 9?e?׵+9?l j%+2F+aabXr?u>f UZ?TjEj?ȿzY'>w`os/y ?rr{:? 6 ٹ?@?o>>[} 2N5eZ?[捦?AE߿b 36o?avG?/DN?&C˹ͻ.IqFƿHQnXɊ?9t-jL t?9xֿ4J{M ?!GX-4 R?}GӿtlźQ?̑l~?lܿIh|?켧?[)βs/k_rxZȄ3'? C?]+Z405Α?ݿ-y.B?!MԿGM*1^eG?-r? !ymK`?KD J?W3HT?PK!2PPsym_coif15_91_md_pywtCoeffs.npyNUMPYv{'descr': '^?_v+?J50?se{?Xȳ}LҿQkJ ~X?yPH3Z?ݦտ;ֿa ?3?.uRNR"?[$? @)e|?P<~? B? 延?!vyvm??e~hB0}?7#v?Š`7A|2?#)j3Sf.?ShYG?<]׾W?b1K`0&ɆmտyZ?RۿoSJ??hqġܿ5F?HpZxҸK??1g_.n ׿tl3???a OhMԜ?Tx*"Jz'4KSj?[yt?]꿌q끓B <ΉәK?˰?j8s эx&awl'[UVo7Y?G-?fa?'a?mC&翜UBs'?תzGPSC?c9*+ܰ?_uԹ$  Zж?fA?dԸ?cD? 俓[6f?24hZ?"捦?AE߿b 36o?]vG??DN?2C˹.z;qFƿQVזɊ?6 x-3 ;6f'?Vxֿ]2|GZ$) ? c:G0]XR?|ӿ_ssٯłG?R?!?cwL\ܿoRX?#L^6?'pD;.x0ß3ֿ 0?"7IֿAC 4NXUMEC?83 ?mܿ?In?uБ?TO%AriֿsѶ+a?Us_?SrbPK!{ PPsymw_coif15_91_md.npyNUMPYv{'descr': ' kxI:"?M^͎޿J2l?TJo￴{9ȿsK-`?z?UL1?Խ.ây?,9}ҿ FEX?:3.?տbI~;ֿ ?~f?Sv.uRN>!?[$? @)e|?P<~? B?S Չs??yvm?$pNO? |[Br'F?ov?Θ$2?7~˷Qx^Pto?*a"D5?K[or( ?ekv+ph?%U)ߴ#ʘllQ?4Rs$iҞ?,[?ΐyPP?XG?^ɥ?ɇ5"󿿶X?7}w?#&!?'Xxo @B?Hœ?@ݒ yj?}~?ʗDֿ{KKXտޮA&?ܩ7ibTc#?OaPK!8oPP symw_coif15_91_ma_pywtCoeffs.npyNUMPYv{'descr': 'B <ΉәK?˰?j8s эx&awl'[UVo7Y?G-?fa?'a?mC&翜UBs'?תzGPSC?c9*+ܰ?_uԹ$  Zж?fA?dԸ?cD? 俓[6f?24hZ?"捦?AE߿b 36o?]vG??DN?2C˹.z;qFƿQVזɊ?6 x-3 ;6f'?Vxֿ]2|GZ$) ? c:G0]XR?|ӿ_ssٯłG?R?!?cwL\ܿoRX?#L^6?'pD;.x0ß3ֿ 0?"7IֿAC 4NXUMEC?83 ?mܿ?In?uБ?TO%AriֿsѶ+a?Us_?SrbPK!{ PP symw_coif15_91_md_pywtCoeffs.npyNUMPYv{'descr': ' kxI:"?M^͎޿J2l?TJo￴{9ȿsK-`?z?UL1?Խ.ây?,9}ҿ FEX?:3.?տbI~;ֿ ?~f?Sv.uRN>!?[$? @)e|?P<~? B?S Չs??yvm?$pNO? |[Br'F?ov?Θ$2?7~˷Qx^Pto?*a"D5?K[or( ?ekv+ph?%U)ߴ#ʘllQ?4Rs$iҞ?,[?ΐyPP?XG?^ɥ?ɇ5"󿿶X?7}w?#&!?'Xxo @B?Hœ?@ݒ yj?}~?ʗDֿ{KKXտޮA&?ܩ7ibTc#?OaPK!OExPPppd_coif15_91_ma.npyNUMPYv{'descr': 'P.+B1M qjb.?_?ۂ}'9?݂yr{,p쿮JUcjOT_?P71F? G?]̚Qz?A|B[蝙H2򿈥&iZ?Q捦?AE߿b 36o?]vG?DN}?FC˹G .B9qFƿaXQ Ɋ?$x-68"p?o7/xֿ@,Ԑ?|'. ?DSx?G5fR?mӣOӿ]mٵ俫KטE?K1r?ۡ"ܿCHݮt?I s#?k:MR JYiJտßÝ@? U^"Ъ] ϝ)?[o\p"g念zvWym,?/nj?V9?>.?P?kXm?((uHjh(?J? cݿQ.]$?H: JU￵;Fȿ8_b?3,?1?Ȑx?S|cOҿǭՂKĩ&X?t G434wv?ءѣտ-;ֿ7 ?_?s.uRN !?[$? @)e|?P<~? B? M"u?2vm?V.?jlYBh=?գv?Ùo3?U<QR`W($# W'?W3!俑M"?f,v޿;{U nuSfvݿ [f?VP.+B1M qjb.?_?ۂ}'9?݂yr{,p쿮JUcjOT_?P71F? G?]̚Qz?A|B[蝙H2򿈥&iZ?Q捦?AE߿b 36o?]vG?DN}?FC˹G .B9qFƿaXQ Ɋ?$x-68"p?o7/xֿ@,Ԑ?|'. ?DSx?G5fR?mӣOӿ]mٵ俫KטE?K1r?ۡ"ܿCHݮt?I s#?k:MR JYiJտßÝ@? U^"Ъ] ϝ)?[o\p"g念zvWym,?/nj?V9?>.?P?kXm?((uHjh(?J? cݿQ.]$?H: JU￵;Fȿ8_b?3,?1?Ȑx?S|cOҿǭՂKĩ&X?t G434wv?ءѣտ-;ֿ7 ?_?s.uRN !?[$? @)e|?P<~? B? M"u?2vm?V.?jlYBh=?գv?Ùo3?U<QR`W($# W'?W3!俑M"?f,v޿;{U nuSfvݿ [f?VTXJ!xLt&}?+ۣN0ti|3S:6I<8s12;#Fw>WuR@OA(FZCoDPK!uPPsp1_coif15_91_md.npyNUMPYv{'descr': 'Gq]SKƘ>܂ gʾՇDV>*:>4?NW  a?F{9_meyso?9QI?U9YK:ö٣?d^h?d[Jh?b!>g(J0}OҿĮ@X?j93~?΁տq;ֿ  ?;K?u.uRN-!?[$? @)e|?P<~? B? `?@Jnvm?Z\?EhhB翲ҥ? `v?bf ?mwӭʕG0 ̘MM?Lo GЏ?ۿx?CZd̕?TB{Qa?\q1~?Uىk2qP X?uUwZCY-?H8c؆$>|;iuC칲>?~7Xa>j) d\w_@>qt8=M6~J$:>=)j ]h}ϗ"=Kf ~)Lt9 jJqUR:vTXJ!xLt&}?+ۣN0ti|3S:6I<8s12;#Fw>WuR@OA(FZCoDPK!uPPsp1_coif15_91_md_pywtCoeffs.npyNUMPYv{'descr': 'Gq]SKƘ>܂ gʾՇDV>*:>4?NW  a?F{9_meyso?9QI?U9YK:ö٣?d^h?d[Jh?b!>g(J0}OҿĮ@X?j93~?΁տq;ֿ  ?;K?u.uRN-!?[$? @)e|?P<~? B? `?@Jnvm?Z\?EhhB翲ҥ? `v?bf ?mwӭʕG0 ̘MM?Lo GЏ?ۿx?CZd̕?TB{Qa?\q1~?Uىk2qP X?uUwZCY-?H8c؆$>|;iuC칲>?~7Xa>j) d\w_@>qt8=M6~J$:>=)j ]h}ϗ"=Kf ~)Lt9 jJqUR:v?_?9KVuh?MDp?W? 3 c?Z -f#:M3QX忓~?n.G?b?&?俸[ &Y2a\jZ?捦?AE߿b 36o?]vG?DN?PC˹쿉.AqFƿ։QX1Ɋ?DDw-J?还F6?xֿѬ*|K' ?:G#:\Y\R?S׿ӿuժ6E?,w0?x:ܿ 8?]/?~E<&beѿyjsS?#U B?Fcg x?Y1S@rBD?Y1"+1MB?*A3?{HD9nο?`)mxIؿW?kTPK!PPasym_coif15_91_md.npyNUMPYv{'descr': 'zH]~|ֿH-}Z?!ǿCH?. lZٕ?[tp?\?\ :?j?wS>zn?p##?hPݿXu6Ԭ?i+NᅵnRȿU!b?qʭ?XZ1?$w?1|o8ҿL@4X?603l?!Y3տ๡;ֿ ? d?o.uRN ?[$? @)e|?P<~? B?- 3n?ś@vm?f;?j+b`B!?:v?of= -?>`]F?R +m7wWR?pVE`ֿБq1TM?فϴ?юXIyp?r-YW?e%O?*Ք*?\p$Suѿ0]K_?±??_?9KVuh?MDp?W? 3 c?Z -f#:M3QX忓~?n.G?b?&?俸[ &Y2a\jZ?捦?AE߿b 36o?]vG?DN?PC˹쿉.AqFƿ։QX1Ɋ?DDw-J?还F6?xֿѬ*|K' ?:G#:\Y\R?S׿ӿuժ6E?,w0?x:ܿ 8?]/?~E<&beѿyjsS?#U B?Fcg x?Y1S@rBD?Y1"+1MB?*A3?{HD9nο?`)mxIؿW?kTPK!PP asym_coif15_91_md_pywtCoeffs.npyNUMPYv{'descr': 'zH]~|ֿH-}Z?!ǿCH?. lZٕ?[tp?\?\ :?j?wS>zn?p##?hPݿXu6Ԭ?i+NᅵnRȿU!b?qʭ?XZ1?$w?1|o8ҿL@4X?603l?!Y3տ๡;ֿ ? d?o.uRN ?[$? @)e|?P<~? B?- 3n?ś@vm?f;?j+b`B!?:v?of= -?>`]F?R +m7wWR?pVE`ֿБq1TM?فϴ?юXIyp?r-YW?e%O?*Ք*?\p$Suѿ0]K_?±?0X@QF@Fg @T$:@YC~?@X>G@@v @Ot~G @A1E @4,oL@?⿳U@O/?9f+C 6D2?Q^ 쿥<뿜P+3 ?t=?Li?mc5J?wbx[l2tfZ?/q捦?AE߿b 36o?avG?DN ?C˹-. RqFƿAQL߾Ɋ?s-!S还`|?xֿ}{ , ?%8 GhGR?'5ӿysKO?2?撋ܿY?ہs)?hq|(w,V?SX@ҿF#S+@t?: [|?x&X2?MYPeYobﳿDS7B0d#jA?afƿ0R>,|VG?g[@ᅭ@߿PK!IwPPasymw_coif15_91_md.npyNUMPYv{'descr': ';ֿ_ ??.uRN"?[$? @)e|?P<~? B? g?Vr_vm?rYi+?oB<3?u?*ǹ?Սh?ccor{ǺH&?u\]D>?-7A.3?goFb6ߵ/?Rҿ"N?͇?Ķ6#?BxFbϞ:9^?;\]QYKP忮.}Կ~9"?Z wWSC!o x ۭ=ݒ?jӿ~쿇͗D?{KKX?ޮA&ᩮ7ib?Tc#Ra?PK!CPP!asymw_coif15_91_ma_pywtCoeffs.npyNUMPYv{'descr': '0X@QF@Fg @T$:@YC~?@X>G@@v @Ot~G @A1E @4,oL@?⿳U@O/?9f+C 6D2?Q^ 쿥<뿜P+3 ?t=?Li?mc5J?wbx[l2tfZ?/q捦?AE߿b 36o?avG?DN ?C˹-. RqFƿAQL߾Ɋ?s-!S还`|?xֿ}{ , ?%8 GhGR?'5ӿysKO?2?撋ܿY?ہs)?hq|(w,V?SX@ҿF#S+@t?: [|?x&X2?MYPeYobﳿDS7B0d#jA?afƿ0R>,|VG?g[@ᅭ@߿PK!IwPP!asymw_coif15_91_md_pywtCoeffs.npyNUMPYv{'descr': ';ֿ_ ??.uRN"?[$? @)e|?P<~? B? g?Vr_vm?rYi+?oB<3?u?*ǹ?Սh?ccor{ǺH&?u\]D>?-7A.3?goFb6ߵ/?Rҿ"N?͇?Ķ6#?BxFbϞ:9^?;\]QYKP忮.}Կ~9"?Z wWSC!o x ۭ=ݒ?jӿ~쿇͗D?{KKX?ޮA&ᩮ7ib?Tc#Ra?PK!IWxxzpd_coif16_96_ma.npyNUMPYv{'descr': 'H?A3ӈ7V>0JJwp)>LCi>bNVV?/J#'18.?i A>1S?<be~v?pZ߅*ؒ”?iܢ؂uk??꼿W ?؆Ή;dq?Go/%B?4։4쿝/^Gk[?WPſy[E? 4-uٸ%{?њΖad_J?;.%%s ?Ͷb>~o<%_7V><'[=PK!=Qxxzpd_coif16_96_md.npyNUMPYv{'descr': '6YsW6uX>(PC ?,k ?h1OBM?]d-"y?C"qD?H( *tD?d`oTl@kU?Ȳ~?pd?8ާ?z`?Cx ?J"?R"?zϿ€rG?Rhyv6#&y?'Gr?|[?7GVC5TIѿ)?ֿ܇ݿ4vsT?^?{߿IT?٫?iDNͿ!#D?Hw?=RsĶֿs?Wclg))'9?DiiK?`+54?HCv?+'b>?-2 XV?L_\ H?̮?1(:(G"nSk鿡!&k?z~g7-?cϾ֯>aU;8dt>:+ qRL,A/>[NQz^=,rkd=caR-=⦇-WἸB*'H?A3ӈ7V>0JJwp)>LCi>bNVV?/J#'18.?i A>1S?<be~v?pZ߅*ؒ”?iܢ؂uk??꼿W ?؆Ή;dq?Go/%B?4։4쿝/^Gk[?WPſy[E? 4-uٸ%{?њΖad_J?;.%%s ?Ͷb>~o<%_7V><'[=PK!=Qxxzpd_coif16_96_md_pywtCoeffs.npyNUMPYv{'descr': '6YsW6uX>(PC ?,k ?h1OBM?]d-"y?C"qD?H( *tD?d`oTl@kU?Ȳ~?pd?8ާ?z`?Cx ?J"?R"?zϿ€rG?Rhyv6#&y?'Gr?|[?7GVC5TIѿ)?ֿ܇ݿ4vsT?^?{߿IT?٫?iDNͿ!#D?Hw?=RsĶֿs?Wclg))'9?DiiK?`+54?HCv?+'b>?-2 XV?L_\ H?̮?1(:(G"nSk鿡!&k?z~g7-?cϾ֯>aU;8dt>:+ qRL,A/>[NQz^=,rkd=caR-=⦇-WἸB*'Q??6?5?hI?sxn?#?dZ%?af¯?:1?NC s?F>?Na2?My?36M?.>m?ͣ~?SE?VP{%?cD ߿^jJ?bPx?$8@!G<(—O6H(7[k?7 OӎſK},eؿy? __ EG?=&1?(?\E?38rHQUHA $7@]Xӿ'#LzN(տx0Q̩8 S=~׿kޫ?WBZn?:Go@3b٘p&?95:?57%ߴ?K8G9'1&>Kt\Fo}?%~5Lt)FR?Ѥi݆?h*ûq? +eǡQ?[ǿL.!o@Ѭ{?) 듽?1=[?{?N-?) ?~;c ?U$?ʚ@Ͽbo?Y|9k1#[Ȧy?iO?G?u|BV| TIѿ?ֿ(M܇ݿ|sT?/P^?Y{߿IT?!?DNͿ!#D?Hw?=RsĶֿs?Wclg))'9?lniK?~w54?Ev?ֽ'b?JV???x?Ÿ'o;{t>\}H:?oKs>Qn\I-> .#T( _e+=[61qK_7=#9@$QK*|4="yM༴r7<7 c<~o<܎oQ??6?5?hI?sxn?#?dZ%?af¯?:1?NC s?F>?Na2?My?36M?.>m?ͣ~?SE?VP{%?cD ߿^jJ?bPx?$8@!G<(—O6H(7[k?7 OӎſK},eؿy? __ EG?=&1?(?\E?38rHQUHA $7@]Xӿ'#LzN(տx0Q̩8 S=~׿kޫ?WBZn?:Go@3b٘p&?95:?57%ߴ?K8G9'1&>Kt\Fo}?%~5Lt)FR?Ѥi݆?h*ûq? +eǡQ?[ǿL.!o@Ѭ{?) 듽?1=[?{?N-?) ?~;c ?U$?ʚ@Ͽbo?Y|9k1#[Ȧy?iO?G?u|BV| TIѿ?ֿ(M܇ݿ|sT?/P^?Y{߿IT?!?DNͿ!#D?Hw?=RsĶֿs?Wclg))'9?lniK?~w54?Ev?ֽ'b?JV???x?Ÿ'o;{t>\}H:?oKs>Qn\I-> .#T( _e+=[61qK_7=#9@$QK*|4="yM༴r7<7 c<~o<܎o>?*nDJ>`@;?X_,?!ſ>,:ؿE ?1R_: G?W1?2ȥ?xE?38rHQUHA $7@]Xӿ#zN(տx0A6Q̩ R=~׿ؓޫ?in?~f;Go⿗gB/#ܘ'V&?:?Yi8. ?1?p> Կ3(cT`?PK! xxsym_coif16_96_md.npyNUMPYv{'descr': '?c:gK2?+>S?k䬇ǿld<1?]Կ jIPWxiuj_&#`$' gM ^@:f &? Z?TwUA??4$??8T5? &+?ʬsu?W(D ?0 fϿk79 ?P+~#鿦Λy?9?bV׃?D¿V(OTIѿ ?ֿ䁹܇ݿ*sT?c^?|i{߿|hIT??INͿ!#D?Hw?=RsĶֿs?Wclg))'9?ndiK?N54?Av?zk'bv S?P1\XV?xU"? Ma?+T47ּXD#]?*79?:y俒3)D?Y6 ?o:S5#=?E?t_?cv.nǀu[g:??lB?,?q_"Jؿ||ZMJ,Z ߧab?^ ĿC 俫H~ҿ CU? 6z?魪"?cp?_s~?]?{H>+ .?T#?֖? _)@ ;ҸMNI0?z'S,ӿΨCk-~[?ρ>>?*nDJ>`@;?X_,?!ſ>,:ؿE ?1R_: G?W1?2ȥ?xE?38rHQUHA $7@]Xӿ#zN(տx0A6Q̩ R=~׿ؓޫ?in?~f;Go⿗gB/#ܘ'V&?:?Yi8. ?1?p> Կ3(cT`?PK! xxsym_coif16_96_md_pywtCoeffs.npyNUMPYv{'descr': '?c:gK2?+>S?k䬇ǿld<1?]Կ jIPWxiuj_&#`$' gM ^@:f &? Z?TwUA??4$??8T5? &+?ʬsu?W(D ?0 fϿk79 ?P+~#鿦Λy?9?bV׃?D¿V(OTIѿ ?ֿ䁹܇ݿ*sT?c^?|i{߿|hIT??INͿ!#D?Hw?=RsĶֿs?Wclg))'9?ndiK?N54?Av?zk'bv S?P1\XV?xU"? Ma?+T47ּXD#]?*79?:y俒3)D?Y6 ?o:S5#=?E?t_?cv.nǀu[g:??lB?,?q_"Jؿ||ZMJ,Z ߧab?^ ĿC 俫Fr/oӿ7@87QAk4;0XAU??t ?T?jӲ0B?lŔXY׿~֍ɿEM?&~ KgWd_;G{xH-.?ݦ?6C6gw[:?{]]?ܹ8&{t?:B?>q?+aF?Sg m?/y׿3W?l::?SOxϿ "TX?{?o'm޿vvG?49Hk?"XW!ܿmtQؿyvοEW PK!âxx symw_coif16_96_ma_pywtCoeffs.npyNUMPYv{'descr': 'Fr/oӿ7@87QAk4;0XAU??t ?T?jӲ0B?lŔXY׿~֍ɿEM?&~ KgWd_;G{xH-.?ݦ?6C6gw[:?{]]?ܹ8&{t?:B?>q?+aF?Sg m?/y׿3W?l::?SOxϿ "TX?{?o'm޿vvG?49Hk?"XW!ܿmtQؿyvοEW PK!>xxppd_coif16_96_ma.npyNUMPYv{'descr': '_9݂G?;է1? ̤?_E?38rHQUHA $7@]Xӿ#zN(տCx0iAQ̩.L*S=~׿ޫ?`jm?E1Go9X2[a&? :?ZI쿋#?f_9݂G?;է1? ̤?_E?PK!N\xxppd_coif16_96_md.npyNUMPYv{'descr': 'xxppd_coif16_96_ma_pywtCoeffs.npyNUMPYv{'descr': '_9݂G?;է1? ̤?_E?38rHQUHA $7@]Xӿ#zN(տCx0iAQ̩.L*S=~׿ޫ?`jm?E1Go9X2[a&? :?ZI쿋#?f_9݂G?;է1? ̤?_E?PK!N\xxppd_coif16_96_md_pywtCoeffs.npyNUMPYv{'descr': '4Zcƛ?ju?f!I.P*-*F6١n]S?b dſ ؿ#t$?t$!A_|G?1?'g?E?38rHQUHA #7@]Xӿ#8tzN(տ-gx09 Q̩j>S=~׿*ޫ?`l? -Go⿉cw*&?"S:?-J/Ru?1- Išme@yuASP}B(LDPK!qxxsp1_coif16_96_md.npyNUMPYv{'descr': 'sz#>W6;j0f?a07)|U?W[pzb? 7GȢʗo?Q24,]sG>gUu:>9[";7={Yg9b=c*,:ʾŘr<1=#=o,bnT=d=T-4Zcƛ?ju?f!I.P*-*F6١n]S?b dſ ؿ#t$?t$!A_|G?1?'g?E?38rHQUHA #7@]Xӿ#8tzN(տ-gx09 Q̩j>S=~׿*ޫ?`l? -Go⿉cw*&?"S:?-J/Ru?1- Išme@yuASP}B(LDPK!qxxsp1_coif16_96_md_pywtCoeffs.npyNUMPYv{'descr': 'sz#>W6;j0f?a07)|U?W[pzb? 7GȢʗo?Q24,]sG>gUu:>9[";7={Yg9b=c*,:ʾŘr<1=#=o,bnT=d=T-s,ZTo俒SϿ>i=??%?=uL''쿴 gː?:^Ȭa9\ԿB;!,X?=0kP?>i~?{u)%p?7l)?PK!,IPper_coif16_96_md.npyNUMPYv{'descr': 's,ZTo俒SϿ>i=??%?=uL''쿴 gː?:^Ȭa9\ԿB;!,X?=0kP?>i~?{u)%p?7l)?PK!,IPper_coif16_96_md_pywtCoeffs.npyNUMPYv{'descr': '9AC|So?:] F?D=0$sڜM.}Ĥ3^yj?-vJſCCqؿxe?F4_kDG?xԯ1?g}?^E?38rHQUHA $7@]Xӿ#zN(տx0aQ̩xS=~׿sޫ?n?}=Goמ"̻ZV&?:?pC '쿥}3?M2U>=?KŇ@t,?SUq?r7GvC9;4STejt𿹎?oR̿ҵWqk?Kσ?SXqٿ,y}|ڴ\?m?w}<=Y濋XaƸ?`eyw??^)hֿj/U,޿GҪT7*" Yxӿ0m? ?_XX?`PK!99Vxxasym_coif16_96_md.npyNUMPYv{'descr': 'Կ&2;tdIZ? 6 ο FR?px.y?y^?8ԭ5H?JJSF?K?F 0h@?p&Y@<?5 V?+p?}}?QU ?\=ė?m1?_???F" '? K?D?Ͽʚ?TO?H[#v 4z?ǒ ?*]3?*jVoSIѿ%-?ֿp܇ݿ/ sT?o^? {߿HJT??>NͿ!#D?Hw?=RsĶֿs?Wclg))'9?niK?D 54?k9AC|So?:] F?D=0$sڜM.}Ĥ3^yj?-vJſCCqؿxe?F4_kDG?xԯ1?g}?^E?38rHQUHA $7@]Xӿ#zN(տx0aQ̩xS=~׿sޫ?n?}=Goמ"̻ZV&?:?pC '쿥}3?M2U>=?KŇ@t,?SUq?r7GvC9;4STejt𿹎?oR̿ҵWqk?Kσ?SXqٿ,y}|ڴ\?m?w}<=Y濋XaƸ?`eyw??^)hֿj/U,޿GҪT7*" Yxӿ0m? ?_XX?`PK!99Vxx asym_coif16_96_md_pywtCoeffs.npyNUMPYv{'descr': 'Կ&2;tdIZ? 6 ο FR?px.y?y^?8ԭ5H?JJSF?K?F 0h@?p&Y@<?5 V?+p?}}?QU ?\=ė?m1?_???F" '? K?D?Ͽʚ?TO?H[#v 4z?ǒ ?*]3?*jVoSIѿ%-?ֿp܇ݿ/ sT?o^? {߿HJT??>NͿ!#D?Hw?=RsĶֿs?Wclg))'9?niK?D 54?k Ҋ7?=$,¿R}?⟇?97t?h"?5+2뿂$?ÿ4m^2P?=?vM%L{ſ׹ؿ.D$?Sػ_kG?p1?ȕ?E?38rHQUHA #7@]XӿJ# kzN(տ}x0邐Q̩ 1TS=~׿ ߫?Al?J&Go[a  1?&?:?s^t?G;?ќ@Vxٻ?dĹ ?h26\}30'𿙮{F?7ҿ?A:{Ϳ/b\ZGY?Ѯ ?C?ŗ2@BrXyJU 2vM8#|`&G5I?}KPK!0~xxasymw_coif16_96_md.npyNUMPYv{'descr': 'e3h [޿-MؿA|&s|=ֿ%܇ݿ5tT?H^? {߿HT??-QNͿ!#D?Hw?=RsĶֿs?Wclg))'9?fiK?~{54?c%Uv?\(b 2|?HnU?8˚8g\?xu ?ubcv 鿕KA]vL?3?+@MPʚ4?t9 ? 'a4~S'˿Ֆ{?o!_??'JIƿgˁ"a? uܛԿn,@;?17NZ2KVȶٿҐ=޿=3?C7`O|?T:ɿ`Ox?NdVXˬz޿M'm?vvG49Hk XW!?mtQ?yv?EW ?PK!]xx!asymw_coif16_96_ma_pywtCoeffs.npyNUMPYv{'descr': ' Ҋ7?=$,¿R}?⟇?97t?h"?5+2뿂$?ÿ4m^2P?=?vM%L{ſ׹ؿ.D$?Sػ_kG?p1?ȕ?E?38rHQUHA #7@]XӿJ# kzN(տ}x0邐Q̩ 1TS=~׿ ߫?Al?J&Go[a  1?&?:?s^t?G;?ќ@Vxٻ?dĹ ?h26\}30'𿙮{F?7ҿ?A:{Ϳ/b\ZGY?Ѯ ?C?ŗ2@BrXyJU 2vM8#|`&G5I?}KPK!0~xx!asymw_coif16_96_md_pywtCoeffs.npyNUMPYv{'descr': 'e3h [޿-MؿA|&s|=ֿ%܇ݿ5tT?H^? {߿HT??-QNͿ!#D?Hw?=RsĶֿs?Wclg))'9?fiK?~{54?c%Uv?\(b 2|?HnU?8˚8g\?xu ?ubcv 鿕KA]vL?3?+@MPʚ4?t9 ? 'a4~S'˿Ֆ{?o!_??'JIƿgˁ"a? uܛԿn,@;?17NZ2KVȶٿҐ=޿=3?C7`O|?T:ɿ`Ox?NdVXˬz޿M'm?vvG49Hk XW!?mtQ?yv?EW ?PK!&jzpd_coif16_97_ma.npyNUMPYv{'descr': 't㬼Wb͖hx>FSF%`X/8>'ҾE>a<%88n?n1O2v;EE?pWPf?ϴ:rNz?ңnx9J_d?:†~\-{?y0޿VRIr˿J?sׇ?¨? 5b?9NxOg? YqԿ A4X?{@<Ŀ:\qC?Y-*v?tĬwc-K?&|yJ?H3߿+K.3~^ӿZ?W#Li"(D?7'y?g?+?1(|>.E?PʹH5قUUM@f#m?Ͽ#iۿ5߇,ܿnb}ɿTF ?3wFX̿s5?Nf?ĸ [@oX?[_?|b7?]rFݿD.K4?}02HX)[?[j0T;?X)kclӒR?rf62#?\v5Le֤ɩ>Ap ` sd>j.`$6(=1ב>[PK!vDzpd_coif16_97_md.npyNUMPYv{'descr': 'hj+>x`Ǿh̹>Ҹ8.1?0WM`e?uo}Fө? d;:?^տB96Z:"?.KԒ~@?Ј1@?iN?pvӞ}?p-99\dҿoUk?i׽? ?ms?y?p_Hҿ?[o9ʿgM(?S?/;Td?X\P[?e>!@eK?WH:jÿv?K$p?ʠ18 _*] ZֿV'8޿Vw?/P()AURl̿Kh|?Үk9$Խ!{-BB~BԿ 1t?s⇛˿wީ?A[ɵNb?\M& ,D??BāR"6q?Ǡ_P 1NK?-RWf63_!?*b Xj>b}ӻU־*0>~{ֽ;3 ~>G u\P7>u.^36 Y=_ 0-=?^4T(=Bvh~:.t㬼Wb͖hx>FSF%`X/8>'ҾE>a<%88n?n1O2v;EE?pWPf?ϴ:rNz?ңnx9J_d?:†~\-{?y0޿VRIr˿J?sׇ?¨? 5b?9NxOg? YqԿ A4X?{@<Ŀ:\qC?Y-*v?tĬwc-K?&|yJ?H3߿+K.3~^ӿZ?W#Li"(D?7'y?g?+?1(|>.E?PʹH5قUUM@f#m?Ͽ#iۿ5߇,ܿnb}ɿTF ?3wFX̿s5?Nf?ĸ [@oX?[_?|b7?]rFݿD.K4?}02HX)[?[j0T;?X)kclӒR?rf62#?\v5Le֤ɩ>Ap ` sd>j.`$6(=1ב>[PK!vDzpd_coif16_97_md_pywtCoeffs.npyNUMPYv{'descr': 'hj+>x`Ǿh̹>Ҹ8.1?0WM`e?uo}Fө? d;:?^տB96Z:"?.KԒ~@?Ј1@?iN?pvӞ}?p-99\dҿoUk?i׽? ?ms?y?p_Hҿ?[o9ʿgM(?S?/;Td?X\P[?e>!@eK?WH:jÿv?K$p?ʠ18 _*] ZֿV'8޿Vw?/P()AURl̿Kh|?Үk9$Խ!{-BB~BԿ 1t?s⇛˿wީ?A[ɵNb?\M& ,D??BāR"6q?Ǡ_P 1NK?-RWf63_!?*b Xj>b}ӻU־*0>~{ֽ;3 ~>G u\P7>u.^36 Y=_ 0-=?^4T(=Bvh~:.eE?4H5迭bVM@iܧm?Ͽa-ۈۿ\c],ܿ.c}ɿ, ?Cc̿ŽR6?N,n^f?fZ[@|Cp?Ih\ψ?,1?TZVcPݿĜc0?0*ͺPհ?UgW.6dwR\n.OMOu*ύJ-TNٮ J+U'DMZM YVZPK!I8sp0_coif16_97_md.npyNUMPYv{'descr': '#mX C>ms >_c`?5d5kHBH?{l#}UeHY?fYn?b}>,?ۖbzjel߿I ?ٵF%zt?\(?b Hߢ ??q響 ?S;gR#[XŦҿZ^k?2'?}ΰϢ?is??.?SHҿ/?['9ʿp(?k?I ;Td?X Q[?=!@xK?dH:jÿv?K$p?ʠ18 _*B Zֿ`,'8޿'s?")}Pj̿O??j|k࿷mX5@t!FkZ~'jz,7'Կ z?iS˿A&v ?gv͠عY&˪?ĖIq-K)D1[$? n%ψ/q?2$>_ƿ K?Ŕ -6U.!?  Y>F0>>8hx־&zҮ>>u v7"y}>3uy[6gQ7>f:J=8@4ˀm =l&']Ŝ'=3qSpuqVޭeE?4H5迭bVM@iܧm?Ͽa-ۈۿ\c],ܿ.c}ɿ, ?Cc̿ŽR6?N,n^f?fZ[@|Cp?Ih\ψ?,1?TZVcPݿĜc0?0*ͺPհ?UgW.6dwR\n.OMOu*ύJ-TNٮ J+U'DMZM YVZPK!I8sp0_coif16_97_md_pywtCoeffs.npyNUMPYv{'descr': '#mX C>ms >_c`?5d5kHBH?{l#}UeHY?fYn?b}>,?ۖbzjel߿I ?ٵF%zt?\(?b Hߢ ??q響 ?S;gR#[XŦҿZ^k?2'?}ΰϢ?is??.?SHҿ/?['9ʿp(?k?I ;Td?X Q[?=!@xK?dH:jÿv?K$p?ʠ18 _*B Zֿ`,'8޿'s?")}Pj̿O??j|k࿷mX5@t!FkZ~'jz,7'Կ z?iS˿A&v ?gv͠عY&˪?ĖIq-K)D1[$? n%ψ/q?2$>_ƿ K?Ŕ -6U.!?  Y>F0>>8hx־&zҮ>>u v7"y}>3uy[6gQ7>f:J=8@4ˀm =l&']Ŝ'=3qSpuqVޭC?jdi?d_y?ҝ$o=3Ç)a?帨|?grY16~t? F 뷗14?ƒdtr?Y1㿮'4.?5!2?ێ?p?jܿ>vx&?{8Eп#- ?g}m ǹ2ֿe[J¼p?5@&TA?\ljfm;ƿYr~B? S9?4sHZ?Ǡʸ?u Sa'?IԿG ^W?$<Ŀ^<\qC?Y-*v?tĬwc-K?&|yJ?G3߿+K.࿛~^ӿPZ?mO#L"D?5'y?>g?.{+?GE >HE?ՋH5u²-M@c|! m?ۚϿDXۿ:,*ܿidɿ(?tAͿ@6?2,?y@*bt?vP?&zdN?<߿Ls '?.K?-m]?5@)K{??tٿ+;<ȥ??"m?pt0l!ҳ{x#뿣.?n9xE?p,p?/?<TD1?Cf}:?֡0;?Ffb4W$?|ͫh~0iVG⴪ҿ,*l;l?g'?+?P]s?Y[?IҿH?[Jz9ʿ$+?0?T7/;Td?_ZQ[?;;!@K?H:jÿv?K$p?ʠ18 _*B Zֿ@俳K'8޿.d?)$ IBj̿!? #ls6*&sׄP ^KQ))kؿ,`u?Dۿ 0"sϿ7rZj?t?6DTZy??4?,?t%3F3?=}տul%?@?mfA?nCШZ? m忠Կ@oY?k?x?$ڿ3ԟ?yNV߿a}@5h?RL5?5Q쿵DMÿ82? ?PK!dc׀sym_coif16_97_ma_pywtCoeffs.npyNUMPYv{'descr': 'C?jdi?d_y?ҝ$o=3Ç)a?帨|?grY16~t? F 뷗14?ƒdtr?Y1㿮'4.?5!2?ێ?p?jܿ>vx&?{8Eп#- ?g}m ǹ2ֿe[J¼p?5@&TA?\ljfm;ƿYr~B? S9?4sHZ?Ǡʸ?u Sa'?IԿG ^W?$<Ŀ^<\qC?Y-*v?tĬwc-K?&|yJ?G3߿+K.࿛~^ӿPZ?mO#L"D?5'y?>g?.{+?GE >HE?ՋH5u²-M@c|! m?ۚϿDXۿ:,*ܿidɿ(?tAͿ@6?2,?y@*bt?vP?&zdN?<߿Ls '?.K?-m]?5@)K{??tٿ+;<ȥ??"m?pt0l!ҳ{x#뿣.?n9xE?p,p?/?<TD1?Cf}:?֡0;?Ffb4W$?|ͫh~0iVG⴪ҿ,*l;l?g'?+?P]s?Y[?IҿH?[Jz9ʿ$+?0?T7/;Td?_ZQ[?;;!@K?H:jÿv?K$p?ʠ18 _*B Zֿ@俳K'8޿.d?)$ IBj̿!? #ls6*&sׄP ^KQ))kؿ,`u?Dۿ 0"sϿ7rZj?t?6DTZy??4?,?t%3F3?=}տul%?@?mfA?nCШZ? m忠Կ@oY?k?x?$ڿ3ԟ?yNV߿a}@5h?RL5?5Q쿵DMÿ82? ?PK!Obsymw_coif16_97_ma.npyNUMPYv{'descr': '-i*F?l҂J5M@%g=zm?:Ͽ&>$8ۿ@F4ܿ:[XɿW ?4zN̿wY?^GK?%qe@U?Nq)?8x|8?3ϴ|J1?IIz?C)?) @&+W=?|w~?QEʿE%M7X?f{!eſvbR޿G~z1 ٿ4͝xҿC5E? NBMY,@wBPK!*ORۀsymw_coif16_97_md.npyNUMPYv{'descr': '?i?cHQ?\'y?vM?_ѿtzxN?\.dL?Z}⿦ӮXRkM1?Pmuu?2Ц?H?zH@ě@t? ݕRz^bҿ@Ak?M:?QD+?Ss?D?Gҿs?[(;x9ʿ8'? ?:Td?eXyP[??!@FK?BH:jÿv?K$p?ʠ18 _*CZֿC俍g'8޿_/2?d~)㿤q١sDZ̿[f?jf6|kkb pƙl ?۪-pͿY2y?fI ?ͺ ǿM-zUT-;n>&U;"~q:tS$ ?2Ϳb_[G8K?xۿ栅6<= 1ҿ{ܿ$[?'Cy?m2¿)Ū*?*@w U?R~-q)?6~?I D?hLCy\ο>!5Ç.*ӿPK!Ob symw_coif16_97_ma_pywtCoeffs.npyNUMPYv{'descr': '-i*F?l҂J5M@%g=zm?:Ͽ&>$8ۿ@F4ܿ:[XɿW ?4zN̿wY?^GK?%qe@U?Nq)?8x|8?3ϴ|J1?IIz?C)?) @&+W=?|w~?QEʿE%M7X?f{!eſvbR޿G~z1 ٿ4͝xҿC5E? NBMY,@wBPK!*ORۀ symw_coif16_97_md_pywtCoeffs.npyNUMPYv{'descr': '?i?cHQ?\'y?vM?_ѿtzxN?\.dL?Z}⿦ӮXRkM1?Pmuu?2Ц?H?zH@ě@t? ݕRz^bҿ@Ak?M:?QD+?Ss?D?Gҿs?[(;x9ʿ8'? ?:Td?eXyP[??!@FK?BH:jÿv?K$p?ʠ18 _*CZֿC俍g'8޿_/2?d~)㿤q١sDZ̿[f?jf6|kkb pƙl ?۪-pͿY2y?fI ?ͺ ǿM-zUT-;n>&U;"~q:tS$ ?2Ϳb_[G8K?xۿ栅6<= 1ҿ{ܿ$[?'Cy?m2¿)Ū*?*@w U?R~-q)?6~?I D?hLCy\ο>!5Ç.*ӿPK!wTppd_coif16_97_ma.npyNUMPYv{'descr': 'N[?PW>?,?ߦh a ^?ͮ»迧{ɿf)v3?0?Νtۿ0؄Z?XFl,?k^@A^ku)?nW?H6c!hhƿQ/?}1H޿+6~˿_y?&Ec?̹u?/=?J$HU?&paԿ"^ cLX?y<Ŀ~\qC?Y-*v?tĬwc-K?&|yJ?13߿+K.~^ӿ‹Z?Њ#L|C?(y?=g?).?']> 0F?W+FJ5M@C!1XEm?T%~rIϿ""IۿX1f3ܿ]ɿ`/?:d̿;ʕ??@d{?C:?A?@g3k$UY^?fh:˿&VXѿK<*?&˷*{?2g=ѿ)?yۿ?xb?ʆ3??mHΛX'? u?PK!Eyppd_coif16_97_md.npyNUMPYv{'descr': ' ? bʿQ{5??>9uٿާ(G= ¿v%ra+m?6 ?<$?/ZzԿ<p+j˿kᅰCQ̻ ,x꿉m'?4ML=?_^E/Ŀnvukbybyz?ڊX?sۊHG)>p~/I?\C#߿lSC??LGxL?PK!wTppd_coif16_97_ma_pywtCoeffs.npyNUMPYv{'descr': 'N[?PW>?,?ߦh a ^?ͮ»迧{ɿf)v3?0?Νtۿ0؄Z?XFl,?k^@A^ku)?nW?H6c!hhƿQ/?}1H޿+6~˿_y?&Ec?̹u?/=?J$HU?&paԿ"^ cLX?y<Ŀ~\qC?Y-*v?tĬwc-K?&|yJ?13߿+K.~^ӿ‹Z?Њ#L|C?(y?=g?).?']> 0F?W+FJ5M@C!1XEm?T%~rIϿ""IۿX1f3ܿ]ɿ`/?:d̿;ʕ??@d{?C:?A?@g3k$UY^?fh:˿&VXѿK<*?&˷*{?2g=ѿ)?yۿ?xb?ʆ3??mHΛX'? u?PK!Eyppd_coif16_97_md_pywtCoeffs.npyNUMPYv{'descr': ' ? bʿQ{5??>9uٿާ(G= ¿v%ra+m?6 ?<$?/ZzԿ<p+j˿kᅰCQ̻ ,x꿉m'?4ML=?_^E/Ŀnvukbybyz?ڊX?sۊHG)>p~/I?\C#߿lSC??LGxL?PK!j}sp1_coif16_97_ma.npyNUMPYv{'descr': 'ʰXeLlҡW̡ڒV⃴U=tTA"eScLVRmjHQN| 9 Q*P26VN`YxL]~"JpݻH-*ۼFDvU1y!CtSNyCA27>#;;%P74c`3ZG/!M( 9*vta3vn?6~߿oRʿbH?MɆ?Fu?B2?t?J-[yU?fR_ԿS- )CUX?V\<Ŀ@e\qC?Y-*v?tĬwc-K?&|yJ?R3߿*K.~^ӿ#Z?y#LlAD?o'y?g?"o+? >2JE?8H5{WtM@q>y5|h,m?nYtϿDb% ۿi-ܿwɿ:[?; ̿P&?b4z?D!ST@v]?JmWP?\0?ův>׿sMy~?н&@x"4@j@LיQv@Уt @Pb%6#@m)u%@^(@-FB8t+@c!3.@'Ly0@jly1@B93@ 4@EG5@PK!hDsp1_coif16_97_md.npyNUMPYv{'descr': '!_ (`D>'f8!?sC>vV?.ln6#?VHQ?kw%w̮?O Կ$vMV?[t`!Q?HW@? q?DCWO*?86\9\hLyҿQȀk?>?Jn:?h6s?bg ?i"Hҿx(?[/Wy9ʿ'?w?:Td?8XP[??!@&K?,H:jÿv?K$p?ʠ18 _*wAZֿpV'8޿ڽ?ҥ)ΞSy;{s̿,Vr?QTk'21*O$[Sh fohIӿVQ?UѿIP?"ڰl'^:K?.H/R,N?Zg%ɂrur?iHc`+hL?dh7AܡE"?/je ;p\>K׾z!̼>X`:K d>b9^ tB:>v?pHD#D҃=ķ2!:|=>,a}|\)=C|'Eꠔ ?漞ZZм/h. ̰Ȋ! "ʰXeLlҡW̡ڒV⃴U=tTA"eScLVRmjHQN| 9 Q*P26VN`YxL]~"JpݻH-*ۼFDvU1y!CtSNyCA27>#;;%P74c`3ZG/!M( 9*vta3vn?6~߿oRʿbH?MɆ?Fu?B2?t?J-[yU?fR_ԿS- )CUX?V\<Ŀ@e\qC?Y-*v?tĬwc-K?&|yJ?R3߿*K.~^ӿ#Z?y#LlAD?o'y?g?"o+? >2JE?8H5{WtM@q>y5|h,m?nYtϿDb% ۿi-ܿwɿ:[?; ̿P&?b4z?D!ST@v]?JmWP?\0?ův>׿sMy~?н&@x"4@j@LיQv@Уt @Pb%6#@m)u%@^(@-FB8t+@c!3.@'Ly0@jly1@B93@ 4@EG5@PK!hDsp1_coif16_97_md_pywtCoeffs.npyNUMPYv{'descr': '!_ (`D>'f8!?sC>vV?.ln6#?VHQ?kw%w̮?O Կ$vMV?[t`!Q?HW@? q?DCWO*?86\9\hLyҿQȀk?>?Jn:?h6s?bg ?i"Hҿx(?[/Wy9ʿ'?w?:Td?8XP[??!@&K?,H:jÿv?K$p?ʠ18 _*wAZֿpV'8޿ڽ?ҥ)ΞSy;{s̿,Vr?QTk'21*O$[Sh fohIӿVQ?UѿIP?"ڰl'^:K?.H/R,N?Zg%ɂrur?iHc`+hL?dh7AܡE"?/je ;p\>K׾z!̼>X`:K d>b9^ tB:>v?pHD#D҃=ķ2!:|=>,a}|\)=C|'Eꠔ ?漞ZZм/h. ̰Ȋ! "per_coif16_97_ma.npyNUMPYv{'descr': 'B?I)?9,2?GLd߿*]? _1mԿ)?~r(?~t aп8?ǸƁۿkbh?]b?gΆ7?➎?[m῾mX'? u?f#yM@D䎷?<.l[X#?k?_0s[俖AS?[ڕ?7%\*?@Wh?p~D?~Ź]pөi㿶a6I[?P6V>?,D?"a𿆾eu?Uo}ɿ \gῌJ~?K`?PK! Fper_coif16_97_md.npyNUMPYv{'descr': 'p~/I?\C#߿lSC??LGxL?ݢn:@nJ$Vٺtq?5l J1,?ʄ$N?|KL?Dt"1ؿvE$?@R?s?^$o?NT8.O?S?;yC.?mOy ѿe!s=?n ڿEЄ]??Rm(׿` PO,3˗$9PK!g>per_coif16_97_ma_pywtCoeffs.npyNUMPYv{'descr': 'B?I)?9,2?GLd߿*]? _1mԿ)?~r(?~t aп8?ǸƁۿkbh?]b?gΆ7?➎?[m῾mX'? u?f#yM@D䎷?<.l[X#?k?_0s[俖AS?[ڕ?7%\*?@Wh?p~D?~Ź]pөi㿶a6I[?P6V>?,D?"a𿆾eu?Uo}ɿ \gῌJ~?K`?PK! Fper_coif16_97_md_pywtCoeffs.npyNUMPYv{'descr': 'p~/I?\C#߿lSC??LGxL?ݢn:@nJ$Vٺtq?5l J1,?ʄ$N?|KL?Dt"1ؿvE$?@R?s?^$o?NT8.O?S?;yC.?mOy ѿe!s=?n ڿEЄ]??Rm(׿` PO,3˗$9PK! asym_coif16_97_ma.npyNUMPYv{'descr': 'Cݿj?`Uiſ;d_yҝ?wg=3?zmaʿ+Ū|޿^?qsulnF ?C@64ۿirտ?-?|xڸ4ǿb?;,o{sf=wT?ʜHS쿭]Z?x'16翵8f??Dľ?.R9{#u?0jj?ddQMٿO+п;C?ag[֌?<;:k?t ?QU0 ;>ʪ?v$2Կ,`*# ϊX?f =Ŀvs\qC?Y-*v?tĬwc-K?&|yJ?I3߿ +K.~^ӿZ?_#L)p-D?9'y? g?Ц+? >8m^E?H5;C|M@9翬21m?(]Ͽ(úۿ>.ܿtpɿx ?W\̿eI?xf8?qj,>@3O8!?Jnm0?@ H;?%ۿQ@?wF׿Pu`_JNLND}=?oʰѿLz bj׿]k?t?? EG_!8x?:i,<ۿPK!uaasym_coif16_97_md.npyNUMPYv{'descr': 'Kk?.k??s? R ? *Fҿ8m?[`cT9ʿ&?8w*? :Td?+$W%P[?A!@ȝK?G:jÿv?K$p?ʠ18 _*y Zֿn#O'8޿'w?E+ I)㿴xao̿p{?)]ik࿍'+;չD$aυ#Y4M{Tv᳿NпCa?mYZ\?=V?܁lJDҿ +z뿞N|uΤV.뿴e3*R*U?KcAzѬ>rL?Bg`nm?( _տRiY &r-n"?:hӟʿ?V??@?g4hL5տ5Q?D?M?82 PK!  asym_coif16_97_ma_pywtCoeffs.npyNUMPYv{'descr': 'Cݿj?`Uiſ;d_yҝ?wg=3?zmaʿ+Ū|޿^?qsulnF ?C@64ۿirտ?-?|xڸ4ǿb?;,o{sf=wT?ʜHS쿭]Z?x'16翵8f??Dľ?.R9{#u?0jj?ddQMٿO+п;C?ag[֌?<;:k?t ?QU0 ;>ʪ?v$2Կ,`*# ϊX?f =Ŀvs\qC?Y-*v?tĬwc-K?&|yJ?I3߿ +K.~^ӿZ?_#L)p-D?9'y? g?Ц+? >8m^E?H5;C|M@9翬21m?(]Ͽ(úۿ>.ܿtpɿx ?W\̿eI?xf8?qj,>@3O8!?Jnm0?@ H;?%ۿQ@?wF׿Pu`_JNLND}=?oʰѿLz bj׿]k?t?? EG_!8x?:i,<ۿPK!ua asym_coif16_97_md_pywtCoeffs.npyNUMPYv{'descr': 'Kk?.k??s? R ? *Fҿ8m?[`cT9ʿ&?8w*? :Td?+$W%P[?A!@ȝK?G:jÿv?K$p?ʠ18 _*y Zֿn#O'8޿'w?E+ I)㿴xao̿p{?)]ik࿍'+;չD$aυ#Y4M{Tv᳿NпCa?mYZ\?=V?܁lJDҿ +z뿞N|uΤV.뿴e3*R*U?KcAzѬ>rL?Bg`nm?( _տRiY &r-n"?:hӟʿ?V??@?g4hL5տ5Q?D?M?82 PK! &asymw_coif16_97_ma.npyNUMPYv{'descr': ' anW6dq ~?w1Ὸتǿnl?e>?oSl?q6?ZX/.?9uԿQ@v . X?i<Ŀr\qC?Y-*v?tĬwc-K?&|yJ?]3߿*K.~^ӿZ?P' #L*D?#[|&y?g?O(?:>.E?F5A*őM@lzʨl?pW[Ͽd7إۿtp$ܿ {.Ƣɿ[M5?LͿL-?@? O@!?ꗺi?!Y W?N8W\?KǪ˵u(tޜ/ç &DX?tM8?#͍?'9 -?44D?7T;%׿r3R?sWh?7 ?PK!Qi1asymw_coif16_97_md.npyNUMPYv{'descr': '㿲lܿ3+QɁxۿ-İM!P?"^3?RALg?dgzu՗?G]P`[>b4!e?ܿ>能?"(ڿ?Z?jk?OCee&?3۫Q|6?j|^bW-ҿ.{l?`?XKt?z#s?-?AgGIҿ ?[x69ʿ7)??z;Td?ӉYVQ[?<!@K?H:jÿv?K$p?ʠ18 _*wAZֿT俓z'8޿B?)V0ǐH~̿8? qU濻}~oN꿘+,+H'o`?cl ۿ8$?>q!2-w{N?%%J>?D&RI?P3/?9Jv?u#t;?\0En _ԿY, ?PO O? H2>?Ninÿ6=?8 2?2A\1?CZ{@ݼR?c^[?Oƿ[yƿS23?*^*x UտsR~?€-q)6~~I D⿝hLCy\?>!5@@̧.*?PK! &!asymw_coif16_97_ma_pywtCoeffs.npyNUMPYv{'descr': ' anW6dq ~?w1Ὸتǿnl?e>?oSl?q6?ZX/.?9uԿQ@v . X?i<Ŀr\qC?Y-*v?tĬwc-K?&|yJ?]3߿*K.~^ӿZ?P' #L*D?#[|&y?g?O(?:>.E?F5A*őM@lzʨl?pW[Ͽd7إۿtp$ܿ {.Ƣɿ[M5?LͿL-?@? O@!?ꗺi?!Y W?N8W\?KǪ˵u(tޜ/ç &DX?tM8?#͍?'9 -?44D?7T;%׿r3R?sWh?7 ?PK!Qi1!asymw_coif16_97_md_pywtCoeffs.npyNUMPYv{'descr': '㿲lܿ3+QɁxۿ-İM!P?"^3?RALg?dgzu՗?G]P`[>b4!e?ܿ>能?"(ڿ?Z?jk?OCee&?3۫Q|6?j|^bW-ҿ.{l?`?XKt?z#s?-?AgGIҿ ?[x69ʿ7)??z;Td?ӉYVQ[?<!@K?H:jÿv?K$p?ʠ18 _*wAZֿT俓z'8޿B?)V0ǐH~̿8? qU濻}~oN꿘+,+H'o`?cl ۿ8$?>q!2-w{N?%%J>?D&RI?P3/?9Jv?u#t;?\0En _ԿY, ?PO O? H2>?Ninÿ6=?8 2?2A\1?CZ{@ݼR?c^[?Oƿ[yƿS23?*^*x UտsR~?€-q)6~~I D⿝hLCy\?>!5@@̧.*?PK!zݨzpd_coif17_102_ma.npyNUMPYv{'descr': '=IDs#X2/E>h،fz > JHI2>%zؾTb>.+ v?r3P2f{ ID?#$iZU̪ͧ\"e?:Esވe?*)p׀de S?҄b"rX*Y8?{￿𐥁/\#@.9:!.d -s(+-XwL ?f:?,)bx ? uPh4? Y_D?YFZa?>J?e?zf?c~1Cp;!!p9`>`&f^B,$>J'fnD=PK!.rTzpd_coif17_102_md.npyNUMPYv{'descr': '\;>@ 1tsy>IeоEt2> XDb<4?eIs"P?e?[cQzv®?BCL 2jr?'ζḑ5^?аHr?aC0ÿkтg }?|>tbo9e ?YWv ׿%/*YHV?;9? _uctU׿qNn?U`-=V!Px濖4Mn?iV?Yk&?G;Z*C|5*z?3#Zۿ׆?~,sԇV1"]6>I?nWz`￯7?HC A H /q,(?^謌!-U?vƕU?5g?!xрP?ON:e&?ҿ"_TQ 6?O?Xf~_)#?Dyx||?M^D(?$)9nRq?G'3E|*xvl?!n~s[:#I?OWz55$n3Z"?],]x N>I4Jྒ)43->?&Kuӣ+ؐ>@r7S> <h1 i >maJ=Rԧ*h=Ti8/pJ=QufrTͼNV'䌑<77gKP;][< cu$݇Q;PK!zݨ zpd_coif17_102_ma_pywtCoeffs.npyNUMPYv{'descr': '=IDs#X2/E>h،fz > JHI2>%zؾTb>.+ v?r3P2f{ ID?#$iZU̪ͧ\"e?:Esވe?*)p׀de S?҄b"rX*Y8?{￿𐥁/\#@.9:!.d -s(+-XwL ?f:?,)bx ? uPh4? Y_D?YFZa?>J?e?zf?c~1Cp;!!p9`>`&f^B,$>J'fnD=PK!.rT zpd_coif17_102_md_pywtCoeffs.npyNUMPYv{'descr': '\;>@ 1tsy>IeоEt2> XDb<4?eIs"P?e?[cQzv®?BCL 2jr?'ζḑ5^?аHr?aC0ÿkтg }?|>tbo9e ?YWv ׿%/*YHV?;9? _uctU׿qNn?U`-=V!Px濖4Mn?iV?Yk&?G;Z*C|5*z?3#Zۿ׆?~,sԇV1"]6>I?nWz`￯7?HC A H /q,(?^謌!-U?vƕU?5g?!xрP?ON:e&?ҿ"_TQ 6?O?Xf~_)#?Dyx||?M^D(?$)9nRq?G'3E|*xvl?!n~s[:#I?OWz55$n3Z"?],]x N>I4Jྒ)43->?&Kuӣ+ؐ>@r7S> <h1 i >maJ=Rԧ*h=Ti8/pJ=QufrTͼNV'䌑<77gKP;][< cu$݇Q;PK!,gsp0_coif17_102_ma.npyNUMPYv{'descr': 'J?e?zf?c~1 e]F}иנ?:?#pȏ7W?D_!,"qbH0пgZM߿D[]ؿ5ۿR 8ڿR|ۿf׮ڿq1>sڿU\ڿiڿK4ڿyڿڿ/ڿSڿg ڿ ڿPK!Psp0_coif17_102_md.npyNUMPYv{'descr': '@Z>G_?F#>w򾹨tKc?qf2=yK?w_bB+$t? <@EÐ?_vS7_?[!U ޺H~?Sqb\G6N迤WB?@׿m$R.W+]j,3W?2g?Y]8k{_})cy}׿Gm?~؂5yaen?oVV?k5B?;Zh|5*z?8#Zۿ׆?~,sԇV1"]6>I?nWz`[4?' A>K>Ւ yɣ<9>?,PvUV>4$n5v>2s余== /Rm=rwy+LmOwmLmPK!,g sp0_coif17_102_ma_pywtCoeffs.npyNUMPYv{'descr': 'J?e?zf?c~1 e]F}иנ?:?#pȏ7W?D_!,"qbH0пgZM߿D[]ؿ5ۿR 8ڿR|ۿf׮ڿq1>sڿU\ڿiڿK4ڿyڿڿ/ڿSڿg ڿ ڿPK!P sp0_coif17_102_md_pywtCoeffs.npyNUMPYv{'descr': '@Z>G_?F#>w򾹨tKc?qf2=yK?w_bB+$t? <@EÐ?_vS7_?[!U ޺H~?Sqb\G6N迤WB?@׿m$R.W+]j,3W?2g?Y]8k{_})cy}׿Gm?~؂5yaen?oVV?k5B?;Zh|5*z?8#Zۿ׆?~,sԇV1"]6>I?nWz`[4?' A>K>Ւ yɣ<9>?,PvUV>4$n5v>2s余== /Rm=rwy+LmOwmLmPK!sym_coif17_102_ma.npyNUMPYv{'descr': ' a}|?|`l,?+"Ͽ+?.\t~?b/տYZпTpп5fם?a9?jk,^K1kW?.?>÷u7&?UU?eޛ?"@͛r}ϻޞGlS}$wa ?j:?^koox ?+yQh4?4c_D+XFZa?>J?e?zf?c~1n@{h{?LYa?NHZ|t@Ul?!؈?n)?ƒNS;6lB9 ?ʎH2 Pm=?ͧ?dһc$c?!澸 A;տ5$TR`?'ƿN|y?k'ʿk?Kg"?ȞX@V迧`b2bUL )˿1k/g76znOǝx5e?3?7?PK!E `sym_coif17_102_md.npyNUMPYv{'descr': 'I?nWz`&2?䯕 A'RJ ,(?kj^p1U?"wU?5Gġ?^[ϞgY?q܁%?6dsTy>?Qx+Ӱ?P ೞD?jT5o+.8|ٿ.MkVT̬?!p@SOؿJ'h?z;?i0濏~U? 3Z?q_?H?5o꿁!?)3?P[ѿc? 7[@;Mcv?ﻩک?9 ĸҿ0_P.7T?Kҧٿ#:`?vsGy?Yտ>1h?-kQFa?PK! sym_coif17_102_ma_pywtCoeffs.npyNUMPYv{'descr': ' a}|?|`l,?+"Ͽ+?.\t~?b/տYZпTpп5fם?a9?jk,^K1kW?.?>÷u7&?UU?eޛ?"@͛r}ϻޞGlS}$wa ?j:?^koox ?+yQh4?4c_D+XFZa?>J?e?zf?c~1n@{h{?LYa?NHZ|t@Ul?!؈?n)?ƒNS;6lB9 ?ʎH2 Pm=?ͧ?dһc$c?!澸 A;տ5$TR`?'ƿN|y?k'ʿk?Kg"?ȞX@V迧`b2bUL )˿1k/g76znOǝx5e?3?7?PK!E ` sym_coif17_102_md_pywtCoeffs.npyNUMPYv{'descr': 'I?nWz`&2?䯕 A'RJ ,(?kj^p1U?"wU?5Gġ?^[ϞgY?q܁%?6dsTy>?Qx+Ӱ?P ೞD?jT5o+.8|ٿ.MkVT̬?!p@SOؿJ'h?z;?i0濏~U? 3Z?q_?H?5o꿁!?)3?P[ѿc? 7[@;Mcv?ﻩک?9 ĸҿ0_P.7T?Kҧٿ#:`?vsGy?Yտ>1h?-kQFa?PK!NsWHsymw_coif17_102_ma.npyNUMPYv{'descr': 'YlL`'@᠙ݠ?^lI)&?A<-x!3? 3?Z s?YDe@CYp򪿦1NK)A,5I| ?HM:?dh 忉x ?FRh4?v k_DBXFZa?>J?e?zf?c~1X g)yiE;E3I? Ds:蹿 /L?fDw?G=ţ^u. ?Ÿ0N3jM?^?=8G|?֒?K@PK!ߨsymw_coif17_102_md.npyNUMPYv{'descr': 'GI?KX)-Du>ӐſeJ5?? p@ƿ܀"-G$T?B^))(yeF?1brVE3׿̱;0++EWՈF$ QX?d ?':e_ fEcQ{r׿m?ϰD)Y4y{n?*#V?1~?C;Z܄|-6*z?L#Zۿ׆?~,sԇV1"]6>I?nWz`e+? A\L ;n-(?W"'_$:U? SU?~ѡ?R_E鴥?ئ\ ?0?("bVpb?n3&W?EuE?Utֿe?_?Ǭ#g?U.6<{m3'O&:?c)L?eyy/y_0? M T߂*u?~o?1俭)tW‘C {?:>)[nܿJj)?y|ws]N ?c~E[.J?{ ٌX?2V]R濈y1PK!NsWH!symw_coif17_102_ma_pywtCoeffs.npyNUMPYv{'descr': 'YlL`'@᠙ݠ?^lI)&?A<-x!3? 3?Z s?YDe@CYp򪿦1NK)A,5I| ?HM:?dh 忉x ?FRh4?v k_DBXFZa?>J?e?zf?c~1X g)yiE;E3I? Ds:蹿 /L?fDw?G=ţ^u. ?Ÿ0N3jM?^?=8G|?֒?K@PK!ߨ!symw_coif17_102_md_pywtCoeffs.npyNUMPYv{'descr': 'GI?KX)-Du>ӐſeJ5?? p@ƿ܀"-G$T?B^))(yeF?1brVE3׿̱;0++EWՈF$ QX?d ?':e_ fEcQ{r׿m?ϰD)Y4y{n?*#V?1~?C;Z܄|-6*z?L#Zۿ׆?~,sԇV1"]6>I?nWz`e+? A\L ;n-(?W"'_$:U? SU?~ѡ?R_E鴥?ئ\ ?0?("bVpb?n3&W?EuE?Utֿe?_?Ǭ#g?U.6<{m3'O&:?c)L?eyy/y_0? M T߂*u?~o?1俭)tW‘C {?:>)[nܿJj)?y|ws]N ?c~E[.J?{ ٌX?2V]R濈y1PK!-ppd_coif17_102_ma.npyNUMPYv{'descr': 'J?e?zf?c~1J?e?zf?c~1ҏ±q? DYwTecdL)%?OBb?fXwo?[ͮ?IY?I@ۃ6ʿGPF"@i?nZ?-C 3?xV(׿,avtϓ W?ؕs'?`o_>c>w׿>km?W؝l=Ώz~Nn?8V?bֿ?;ZФ|6*z?C#Zۿ׆?~,sԇV1"]6>I?nWz`ᅢ=?pAL&G mb+(?`]"$U?hU?5Vb*~?>ҏ±q? DYwTecdL)%?OBb?fXwo?[ͮ?IY?I@ۃ6ʿGPF"@i?nZ?-C 3?xV(׿,avtϓ W?ؕs'?`o_>c>w׿>km?W؝l=Ώz~Nn?8V?bֿ?;ZФ|6*z?C#Zۿ׆?~,sԇV1"]6>I?PK!- ppd_coif17_102_ma_pywtCoeffs.npyNUMPYv{'descr': 'J?e?zf?c~1J?e?zf?c~1ҏ±q? DYwTecdL)%?OBb?fXwo?[ͮ?IY?I@ۃ6ʿGPF"@i?nZ?-C 3?xV(׿,avtϓ W?ؕs'?`o_>c>w׿>km?W؝l=Ώz~Nn?8V?bֿ?;ZФ|6*z?C#Zۿ׆?~,sԇV1"]6>I?nWz`ᅢ=?pAL&G mb+(?`]"$U?hU?5Vb*~?>ҏ±q? DYwTecdL)%?OBb?fXwo?[ͮ?IY?I@ۃ6ʿGPF"@i?nZ?-C 3?xV(׿,avtϓ W?ؕs'?`o_>c>w׿>km?W؝l=Ώz~Nn?8V?bֿ?;ZФ|6*z?C#Zۿ׆?~,sԇV1"]6>I?PK!Msp1_coif17_102_ma.npyNUMPYv{'descr': '++@J?e?zf?c~1b_˧;>?_Đ&?W}(.TCE?Zdill?)#y)?4{>)a_>?7|'-h4(1" ?vR-d,3ȹ.v?[!?׿.OmtY;W?@׽?F(bk~_.TcaU׿Jn?&w e߷,_ xKUn?PdV?y?;Z,F|5*z?2#Zۿ׆?~,sԇV1"]6>I?nWz`X<?AGG #,(?]MZR*U?ijU?-jU?o[<XH?3(?r5aфS?Rp"?G?!gk¦?⥠ ["|k?+G1ptG?OS1tjҴd?xSvB?C!q.bNG?s=  ~y>7`ןԾ2 9;>Ng 6C>4Jc9jB>1$ sT[=x'ԽEQ3=ا1<g= P=w- yd++@J?e?zf?c~1b_˧;>?_Đ&?W}(.TCE?Zdill?)#y)?4{>)a_>?7|'-h4(1" ?vR-d,3ȹ.v?[!?׿.OmtY;W?@׽?F(bk~_.TcaU׿Jn?&w e߷,_ xKUn?PdV?y?;Z,F|5*z?2#Zۿ׆?~,sԇV1"]6>I?nWz`X<?AGG #,(?]MZR*U?ijU?-jU?o[<XH?3(?r5aфS?Rp"?G?!gk¦?⥠ ["|k?+G1ptG?OS1tjҴd?xSvB?C!q.bNG?s=  ~y>7`ןԾ2 9;>Ng 6C>4Jc9jB>1$ sT[=x'ԽEQ3=ا1<g= P=w- ydJ?e?zf?c~1c>w׿>km?W؝l=Ώz~Nn?8V?bֿ?;ZФ|6*z?C#Zۿ׆?~,sԇV1"]6>I?nWz`ᅢ=?pAL&G mb+(?`]"$U?hU?5Vb*~?>ҏ±q? DYwTecdL)%?OBb?fXwo?[ͮ?IY?I@ۃ6ʿGPF"@i?nZ?-C 3?xV(׿PK!0J7 per_coif17_102_ma_pywtCoeffs.npyNUMPYv{'descr': 'J?e?zf?c~1c>w׿>km?W؝l=Ώz~Nn?8V?bֿ?;ZФ|6*z?C#Zۿ׆?~,sԇV1"]6>I?nWz`ᅢ=?pAL&G mb+(?`]"$U?hU?5Vb*~?>ҏ±q? DYwTecdL)%?OBb?fXwo?[ͮ?IY?I@ۃ6ʿGPF"@i?nZ?-C 3?xV(׿PK!\&asym_coif17_102_ma.npyNUMPYv{'descr': '?? X,ޖ2[B=*?VKQ+ܠ?+M(?W0)8o?7"}A>,2?:dnlV? 1j6?Vs̥?0[i2J?SR??x%@zωCGF_'HIؙ3p6 ?6 :?4Ux ?9Oh4?pP_DYFZa?>J?e?zf?c~1꿓}Ež?h;"?_/?3+Ϳ1x]Iv?'&CkQ迗j?׿v/BumV? qI?Q,_bXc.EB׿n?X9+)R?;xwx&n?V?p?;Z8󃣳|5*z?&#Zۿ׆?~,sԇV1"]6>I?nWz`ᅲ=?ւAwG d+(?]X(U?׆U?%e?你ZQXi1h-kQFaPK!\&!asym_coif17_102_ma_pywtCoeffs.npyNUMPYv{'descr': '?? X,ޖ2[B=*?VKQ+ܠ?+M(?W0)8o?7"}A>,2?:dnlV? 1j6?Vs̥?0[i2J?SR??x%@zωCGF_'HIؙ3p6 ?6 :?4Ux ?9Oh4?pP_DYFZa?>J?e?zf?c~1꿓}Ež?h;"?_/?3+Ϳ1x]Iv?'&CkQ迗j?׿v/BumV? qI?Q,_bXc.EB׿n?X9+)R?;xwx&n?V?p?;Z8󃣳|5*z?&#Zۿ׆?~,sԇV1"]6>I?nWz`ᅲ=?ւAwG d+(?]X(U?׆U?%e?你ZQXi1h-kQFaPK!0asymw_coif17_102_ma.npyNUMPYv{'descr': '?#Nj?l{L@37K@Qg?%lgkH*?ؕ?vr&@gkNꙆ{] =ns6 ?N :?41ix ?;Oh4?JP_DYFZa?>J?e?zf?c~1I?nWz`ϰ=?қA{AG +(?Hx]|&U?bU?tf?tNl|(?x3?\>{q[k-? W?^We?3-S ٿl9ڿB2~J0~\rZ?5 ¸?XRxb+N-aIpN5@W??Qs/rjIPMʇ? b/пʑ^@?%z?9ƿž?w1oֿmb61?^?#Nj?l{L@37K@Qg?%lgkH*?ؕ?vr&@gkNꙆ{] =ns6 ?N :?41ix ?;Oh4?JP_DYFZa?>J?e?zf?c~1I?nWz`ϰ=?қA{AG +(?Hx]|&U?bU?tf?tNl|(?x3?\>{q[k-? W?^We?3-S ٿl9ڿB2~J0~\rZ?5 ¸?XRxb+N-aIpN5@W??Qs/rjIPMʇ? b/пʑ^@?%z?9ƿž?w1oֿmb61?^08Q䙑q>ܳ jؐSh„1>\KoǾ(C0~>N0Z43?nf^#YKB6?]N1H.H ׂ#X?̕PhrT/w? hB?8$kX7?_eS̀?,~7s]Q?s|9?< Z%?ٽ0ԿY06m|;ֿ0Xbp~##l*Ͽhe?:޼:윶?7>@TG1?H7ehHIL?d/O?!,׿Z׆?Ӂt-?Q7ÿa迒I9kZ?]c?ҁ??4¿8տ\ rH?-ys?Y ;U?WJ `5Œ?7ٿxj߿9?np?db“4@O:UHb̿ݼ|?%$?rt'ſ:1.,?Y:?=9ϿԭI/ @!$?z!;Ix?$x}q?]?+KD״d?Y1:u륰?2?bzZs?bc_b7AmoM?2(tC4磕?-p4>B DWISy> NB^[>ոftXPK!U3zpd_coif17_103_md.npyNUMPYv{'descr': 'w0K0$祺>X@iG\>@.3x6Q?!?4k->~|V?pw2K0mk+UT?wmVW?[Ǧ`aY`?x7ʿ=K?1jmֿ9ZFڿw84_?a&33hK?)$/ \?e @+X?c dT+&X?SOϘ?UR?߿Ĵd?T?`8@##=7?`d0ۿ=J?v gy3?ob?d??Hx?YP㿟 g齿SbO| bk?S+h?裐俥!ܣҿE8忩q;?aG5?\0ū?a$?""ʿ8É"}+?p~TuUE5?L1;͊(jdP{?Rk;1g\?IS$Lht5+uY־acI>j- %2o#>zؤ<g]WUG>[B=$p_> k ٽ|u=# DCҬS=՗hC!e=08Q䙑q>ܳ jؐSh„1>\KoǾ(C0~>N0Z43?nf^#YKB6?]N1H.H ׂ#X?̕PhrT/w? hB?8$kX7?_eS̀?,~7s]Q?s|9?< Z%?ٽ0ԿY06m|;ֿ0Xbp~##l*Ͽhe?:޼:윶?7>@TG1?H7ehHIL?d/O?!,׿Z׆?Ӂt-?Q7ÿa迒I9kZ?]c?ҁ??4¿8տ\ rH?-ys?Y ;U?WJ `5Œ?7ٿxj߿9?np?db“4@O:UHb̿ݼ|?%$?rt'ſ:1.,?Y:?=9ϿԭI/ @!$?z!;Ix?$x}q?]?+KD״d?Y1:u륰?2?bzZs?bc_b7AmoM?2(tC4磕?-p4>B DWISy> NB^[>ոftXPK!U3 zpd_coif17_103_md_pywtCoeffs.npyNUMPYv{'descr': 'w0K0$祺>X@iG\>@.3x6Q?!?4k->~|V?pw2K0mk+UT?wmVW?[Ǧ`aY`?x7ʿ=K?1jmֿ9ZFڿw84_?a&33hK?)$/ \?e @+X?c dT+&X?SOϘ?UR?߿Ĵd?T?`8@##=7?`d0ۿ=J?v gy3?ob?d??Hx?YP㿟 g齿SbO| bk?S+h?裐俥!ܣҿE8忩q;?aG5?\0ū?a$?""ʿ8É"}+?p~TuUE5?L1;͊(jdP{?Rk;1g\?IS$Lht5+uY־acI>j- %2o#>zؤ<g]WUG>[B=$p_> k ٽ|u=# DCҬS=՗hC!e=e?tꜶ?y>@'E1?CÌehHL?d/O?!,׿Z׆?Ӂt-?Q7ÿaN9kZ?h]c??? 5¿ 8տBhrH?8?jydRhPiU?p]`VeD?ٿ#i߿ݺ?_?J4@yO!Yb̿pӌ|?"V4%?Q6Tſt6?R^:?d-п1o@r]%?v2&?+e4/?]+ȋ?@)>z@:X@45O0@C HV@k͹G@I8@L@ oOK@FK@VBLK@wMK@ YK@K@NK@9K@DK@ IK@PK!UҘsp0_coif17_103_md.npyNUMPYv{'descr': '0 K3><~_?@f1ebTI??N:`=̓q?`ڝXVҔ?yT6zt6=-?zy]?Q׿#<ڿV?"|{qX8VP?8^4T?(\V?&]dl:V?KB+i՘?aCR?2f߿p2T?d8@_=7?`d0ۿ=J?#gy3?W?TΤ?>?[׮x?13 ]轿-3!{?30D^?Θ=俉uҿ DF?[,B?%$Q bGsP?QCn'?288pQ?9{?ylXNúh~?Pbms >e?t82hUs|iaC?D.0xC&?qO[2ݫ >­о6N>S5Cgv>&ΏnUI`2>ٗM՛ =>wf=i`B|-=2 }yO<`ڻe?tꜶ?y>@'E1?CÌehHL?d/O?!,׿Z׆?Ӂt-?Q7ÿaN9kZ?h]c??? 5¿ 8տBhrH?8?jydRhPiU?p]`VeD?ٿ#i߿ݺ?_?J4@yO!Yb̿pӌ|?"V4%?Q6Tſt6?R^:?d-п1o@r]%?v2&?+e4/?]+ȋ?@)>z@:X@45O0@C HV@k͹G@I8@L@ oOK@FK@VBLK@wMK@ YK@K@NK@9K@DK@ IK@PK!UҘ sp0_coif17_103_md_pywtCoeffs.npyNUMPYv{'descr': '0 K3><~_?@f1ebTI??N:`=̓q?`ڝXVҔ?yT6zt6=-?zy]?Q׿#<ڿV?"|{qX8VP?8^4T?(\V?&]dl:V?KB+i՘?aCR?2f߿p2T?d8@_=7?`d0ۿ=J?#gy3?W?TΤ?>?[׮x?13 ]轿-3!{?30D^?Θ=俉uҿ DF?[,B?%$Q bGsP?QCn'?288pQ?9{?ylXNúh~?Pbms >e?t82hUs|iaC?D.0xC&?qO[2ݫ >­о6N>S5Cgv>&ΏnUI`2>ٗM՛ =>wf=i`B|-=2 }yO<`ڻ'b?课61տY"kq`ֿG3Lni‰]O Ͽe??e:>@#S1?_ehfNL?d/O?!,׿Z׆?Ӂt-?Q7ÿaO9kZ?P]c?씚??+5¿ث 8տ0rH?KS?uU?(@~`!J?΅ٿE߿MC?/*2?-E4@QQj̿eH?E*?,=7ſ$?n?q4TѿʺV]@%f?|' Ρ?J?AۗӬ?J?Iw?pp?mH@Ekڮ?9Iè׿KA ?Y/q?ac㾿3Hٹ? X8翎쭷?#?m?-ޥ?OH?گSS^e+ ?PK!onRsym_coif17_103_md.npyNUMPYv{'descr': '=7?`d0ۿ=J?#gy3?/y?ɭ?$֖? ' x?IƧ㿏[N轿Zr8!?pB I?NQEFjPӿ:{忩.;?uX?g G4??#~ H?:K?͡ӿԈohA? Xg]? Pa?h?4Q]ڿ>ſdegпx?c῜<%Tnz׿MQgտ) O i'?43"gp-xL? 38? )5Y?9O08W?w;?(hycL@u-'b?课61տY"kq`ֿG3Lni‰]O Ͽe??e:>@#S1?_ehfNL?d/O?!,׿Z׆?Ӂt-?Q7ÿaO9kZ?P]c?씚??+5¿ث 8տ0rH?KS?uU?(@~`!J?΅ٿE߿MC?/*2?-E4@QQj̿eH?E*?,=7ſ$?n?q4TѿʺV]@%f?|' Ρ?J?AۗӬ?J?Iw?pp?mH@Ekڮ?9Iè׿KA ?Y/q?ac㾿3Hٹ? X8翎쭷?#?m?-ޥ?OH?گSS^e+ ?PK!onR sym_coif17_103_md_pywtCoeffs.npyNUMPYv{'descr': '=7?`d0ۿ=J?#gy3?/y?ɭ?$֖? ' x?IƧ㿏[N轿Zr8!?pB I?NQEFjPӿ:{忩.;?uX?g G4??#~ H?:K?͡ӿԈohA? Xg]? Pa?h?4Q]ڿ>ſdegпx?c῜<%Tnz׿MQgտ) O i'?43"gp-xL? 38? )5Y?9O08W?w;?(hycL@u-mƿH*I=QpA)ٿ-} z!k տc>&{?`Y[? ?PXwO /([@"?BF?s p?y1PԿJ0Q˗ˆֿ r.yB[mc!ϿHye?٠"ݜ?ř>@n11?"*heh D@L?d/O?!,׿Z׆?Ӂt-?Q7ÿa2J9kZ?]c?n??4¿ w8տ,rH?w?u |U?Qbp&`֒?)!ٿ3k@߿!m?{?׷-4@za̿r{?]&?1 0=ſg;?ض`w/?ECϿOkD@C ?S5?,@;?kt?a?UIS)?,WL?0&@$4οKJ?K_?0emǿc]k?)Y( ?SEȿk@{?J\W?-Ő޿Pڿk〘?PK!Esymw_coif17_103_md.npyNUMPYv{'descr': '?P(C 'M?/fVL?YI?3GqBp_?w=ܿ HԿp+?G;BW?1|npֿOQcۿ=Y?0Dῐ~?+?G񺩢n6F?ӕ`I?H+?PQ?"[߿T?D8@J]=7?`d0ۿ=J?,gy3?M?m?D?xUx?잘㿧 -0齿z(uۘbX?70k?x ?俽ҿ}ފ3 ?Q}'?4}?}NY?ɦF56Xel?= ?q忒ӿ2 (1?[h!7?9Y`NG:c` !? Q}[?1V`? ????)G%b?0viۿ ɖ2?!t'?bJKN$!E䃿cQpcV-",w?'4t,ӿ,Z9*?wqcnɟY?:mƿH*I=QpA)ٿ-} z!k տc>&{?`Y[? ?PXwO /([@"?BF?s p?y1PԿJ0Q˗ˆֿ r.yB[mc!ϿHye?٠"ݜ?ř>@n11?"*heh D@L?d/O?!,׿Z׆?Ӂt-?Q7ÿa2J9kZ?]c?n??4¿ w8տ,rH?w?u |U?Qbp&`֒?)!ٿ3k@߿!m?{?׷-4@za̿r{?]&?1 0=ſg;?ض`w/?ECϿOkD@C ?S5?,@;?kt?a?UIS)?,WL?0&@$4οKJ?K_?0emǿc]k?)Y( ?SEȿk@{?J\W?-Ő޿Pڿk〘?PK!E!symw_coif17_103_md_pywtCoeffs.npyNUMPYv{'descr': '?P(C 'M?/fVL?YI?3GqBp_?w=ܿ HԿp+?G;BW?1|npֿOQcۿ=Y?0Dῐ~?+?G񺩢n6F?ӕ`I?H+?PQ?"[߿T?D8@J]=7?`d0ۿ=J?,gy3?M?m?D?xUx?잘㿧 -0齿z(uۘbX?70k?x ?俽ҿ}ފ3 ?Q}'?4}?}NY?ɦF56Xel?= ?q忒ӿ2 (1?[h!7?9Y`NG:c` !? Q}[?1V`? ????)G%b?0viۿ ɖ2?!t'?bJKN$!E䃿cQpcV-",w?'4t,ӿ,Z9*?wqcnɟY?:NЉyĿK>Y=_ ?TCo?[ʬ?>Cdп+Ox=gɿh?rK˿Y8? d[hEMe10{] ?C.vM?"R}? Qz?NlQKD?c3翢iE+?-ి2??Y+zf%ۿPZ?&qH@i?(dEV3?ڷ?d?xuQ`ؿU(i?\?헰?|ӘSտ &H^ ֿ@NMc ϿBܵe?0?BN>@&]1?&ehN4RL?d/O?!,׿Z׆?Ӂt-?Q7ÿa2H9kZ?]c???74¿8տ}!rH?ot? R U?e~nĢ`s?ٿ&3߿_?RпJ4@Cއ?LMU?P ?Ҿ~?qU'J? ?$aD?/ ?e_01xjνaqo~_֯9~&ſ1 ~ۿ /D?Y+J?Fe?!J3?|PK!Jppd_coif17_103_md.npyNUMPYv{'descr': 'aӿ*)vڿ}uhPG?9RĿ/鬕ڿ^M+oL[?whgޡ?6?Q(R_bֿ4>!⿙.Y?571?_}W!(?Q[.ܿ-Q*L$ֿ$<?~G|^x?fʭ?@I$?m? Ni{A&i?#'?mR?Hn߿UZ˾T?i8@+ Q=n@Fw?1,?,];fT$?wӹw]ѿC?_{ٝz\C^h?z1^lXv i&?|n>=7?`d0ۿ=J?"gy3?z?<0S?g?n)2x?*㿟7齿MǾksO?}~BD\?KPU-/ӿg~忭7?DM?E,г JT??9?й,㿸N?_ cϷ]Y?J(ؿ#u?V)u?dпѷƭRh?[a?N^2 ?z.N%'=6v˿9/dD37RrY?92?]c6D?񻁅(5@,?n?~O|?Dp%xGE?Ay̕?rܞ)!.4`G?PK!9 ppd_coif17_103_ma_pywtCoeffs.npyNUMPYv{'descr': 'NЉyĿK>Y=_ ?TCo?[ʬ?>Cdп+Ox=gɿh?rK˿Y8? d[hEMe10{] ?C.vM?"R}? Qz?NlQKD?c3翢iE+?-ి2??Y+zf%ۿPZ?&qH@i?(dEV3?ڷ?d?xuQ`ؿU(i?\?헰?|ӘSտ &H^ ֿ@NMc ϿBܵe?0?BN>@&]1?&ehN4RL?d/O?!,׿Z׆?Ӂt-?Q7ÿa2H9kZ?]c???74¿8տ}!rH?ot? R U?e~nĢ`s?ٿ&3߿_?RпJ4@Cއ?LMU?P ?Ҿ~?qU'J? ?$aD?/ ?e_01xjνaqo~_֯9~&ſ1 ~ۿ /D?Y+J?Fe?!J3?|PK!J ppd_coif17_103_md_pywtCoeffs.npyNUMPYv{'descr': 'aӿ*)vڿ}uhPG?9RĿ/鬕ڿ^M+oL[?whgޡ?6?Q(R_bֿ4>!⿙.Y?571?_}W!(?Q[.ܿ-Q*L$ֿ$<?~G|^x?fʭ?@I$?m? Ni{A&i?#'?mR?Hn߿UZ˾T?i8@+ Q=n@Fw?1,?,];fT$?wӹw]ѿC?_{ٝz\C^h?z1^lXv i&?|n>=7?`d0ۿ=J?"gy3?z?<0S?g?n)2x?*㿟7齿MǾksO?}~BD\?KPU-/ӿg~忭7?DM?E,г JT??9?й,㿸N?_ cϷ]Y?J(ؿ#u?V)u?dпѷƭRh?[a?N^2 ?z.N%'=6v˿9/dD37RrY?92?]c6D?񻁅(5@,?n?~O|?Dp%xGE?Ay̕?rܞ)!.4`G?PK!T)_msp1_coif17_103_ma.npyNUMPYv{'descr': 'W@_[hV@OFeU@g2#T@1S@ S@p|\9R@_cQ@$5،P@ t-mO@4JM@V(%L@wE gJ@H@.G@bE@1C@qtY B@Ras\@@S_`=@F6 M:@$ON6@[4uR3@ G0@)6)@ "@J^Hp@e3 {@`DVs܌&b;GN?Ʃ? y?+:Կ7|:R-|ֿEze?xA圶?>@yX<1?eh'DL?d/O?!,׿Z׆?Ӂt-?Q7ÿaR9kZ?,]c?0?? 6¿D 8տb rH??BxR:P=$7sU>N Q|?N3rnP?Í}f‚yAK{?:jnq?M45R~?s MÿJG?ҿZU8ܿHٶ?nj̶ῧ-50`?%QZG?VP!&HS?X2c\QAT?Mbܘ?tL*R?L߿\M=T?*I8@xR=7?`d0ۿ=J?gy3?Ǟ|??Nʖ?x'x?[O轿@eO ȱ?=e?-Z[Ȑҿ{3 R)l?F_?[W:D?]澘}Ӽ?̾jJ?#C쓿`e^WP?${\J_k?JZ_:H?4:C ?I0| pc>J!ؾÿ>̪ݢKE†ք>3)OesiD>OIZ!3%R=_vӽT:2=q(|͚M=_ɗU*]W@_[hV@OFeU@g2#T@1S@ S@p|\9R@_cQ@$5،P@ t-mO@4JM@V(%L@wE gJ@H@.G@bE@1C@qtY B@Ras\@@S_`=@F6 M:@$ON6@[4uR3@ G0@)6)@ "@J^Hp@e3 {@`DVs܌&b;GN?Ʃ? y?+:Կ7|:R-|ֿEze?xA圶?>@yX<1?eh'DL?d/O?!,׿Z׆?Ӂt-?Q7ÿaR9kZ?,]c?0?? 6¿D 8տb rH??BxR:P=$7sU>N Q|?N3rnP?Í}f‚yAK{?:jnq?M45R~?s MÿJG?ҿZU8ܿHٶ?nj̶ῧ-50`?%QZG?VP!&HS?X2c\QAT?Mbܘ?tL*R?L߿\M=T?*I8@xR=7?`d0ۿ=J?gy3?Ǟ|??Nʖ?x'x?[O轿@eO ȱ?=e?-Z[Ȑҿ{3 R)l?F_?[W:D?]澘}Ӽ?̾jJ?#C쓿`e^WP?${\J_k?JZ_:H?4:C ?I0| pc>J!ؾÿ>̪ݢKE†ք>3)OesiD>OIZ!3%R=_vӽT:2=q(|͚M=_ɗU*]@u2L1?iehiKL?d/O?!,׿Z׆?Ӂt-?Q7ÿa迲P9kZ?:]c?\??/16¿غ 8տrH?_?qU?q`B^m`O* ?j!ٿyY߿UƁ? ?4@n̿[ϗ?0,?(ſPK!5  per_coif17_103_md.npyNUMPYv{'descr': '=7?`d0ۿ=J?#gy3? ? ?\ϖ?M1x?7?1BN罿M01J+@?uQbu:?f俽dӿGYy?xR_??.cl>ԭ6?ӭa)u? ӿ-ڿ_‡?~0#$ `Sq'?ID?˾&7PK!/j9   per_coif17_103_ma_pywtCoeffs.npyNUMPYv{'descr': '@u2L1?iehiKL?d/O?!,׿Z׆?Ӂt-?Q7ÿa迲P9kZ?:]c?\??/16¿غ 8տrH?_?qU?q`B^m`O* ?j!ٿyY߿UƁ? ?4@n̿[ϗ?0,?(ſPK!5   per_coif17_103_md_pywtCoeffs.npyNUMPYv{'descr': '=7?`d0ۿ=J?#gy3? ? ?\ϖ?M1x?7?1BN罿M01J+@?uQbu:?f俽dӿGYy?xR_??.cl>ԭ6?ӭa)u? ӿ-ڿ_‡?~0#$ `Sq'?ID?˾&7PK!wŰasym_coif17_103_ma.npyNUMPYv{'descr': '↑ sֿ}xtI\q9.1Ͽ9,e?خ㜶?2G>@:1?ehDL?d/O?!,׿Z׆?Ӂt-?Q7ÿaRC9kZ?\^c?n??3¿V8տ49rH??|R#KT?l4`?t3gٿUTC߿U`2?P1E?>[4@AL#Y̿bss?P /?O7wſ؁n?T{? ,5Ϳ@ ?[UN?" l?q8 ;?2g}>*=7?`d0ۿ=J?Xgy3?f?(W ?EI9?_x?G㿫Dr*뽿MMReڋ=?"?5&?+ csݐҿu5:D濫Ѵ`??",?R" y?r?L_Z%,!տ~ 8`?U=?Yw0|.>c BHX (?][@? Wt?W | ?hycLmy-<ܿh?PZtnkC*ӿ OVq忽ڄ?PK!wŰ!asym_coif17_103_ma_pywtCoeffs.npyNUMPYv{'descr': '↑ sֿ}xtI\q9.1Ͽ9,e?خ㜶?2G>@:1?ehDL?d/O?!,׿Z׆?Ӂt-?Q7ÿaRC9kZ?\^c?n??3¿V8տ49rH??|R#KT?l4`?t3gٿUTC߿U`2?P1E?>[4@AL#Y̿bss?P /?O7wſ؁n?T{? ,5Ϳ@ ?[UN?" l?q8 ;?2g}>*=7?`d0ۿ=J?Xgy3?f?(W ?EI9?_x?G㿫Dr*뽿MMReڋ=?"?5&?+ csݐҿu5:D濫Ѵ`??",?R" y?r?L_Z%,!տ~ 8`?U=?Yw0|.>c BHX (?][@? Wt?W | ?hycLmy-<ܿh?PZtnkC*ӿ OVq忽ڄ?PK!I_Űasymw_coif17_103_ma.npyNUMPYv{'descr': 'BNĿ fZOYdm>px((K'kDT?-L.0>\ z,q9m*"eL+rN gfl]qեކU -}:m?)>?^ ]?τsJֿ+Vwv\h񿔲0⿘ybʉПB {Q6?@'{)\ܿG(5翓LS+ޔM?3I.,?^1Dܨ?PjտIT￝R,ֿ7Խc d Ͽfe?Hx?ik>@$0'Y1?c\ehPL?d/O?!,׿Z׆?Ӂt-?Q7ÿarS9kZ?]c?Н??[m6¿D 8տZ#rH?p?:"S#U?`E?!,6ٿFh~߿9q?maB?\~g4@y7d̿|&t~?c, $? <)ſ1?F\F?-78Qп .@,M??E p?,-4@"@$ @B!@t?e-ZL@Z[@: @("^ @W3]g@B @T*@bE@ @:{@p-@2@$n/q@PK!{asymw_coif17_103_md.npyNUMPYv{'descr': '=7?`d0ۿ=J?gy3?/o??gb9?Xx?St?=轿 9zԎ?-.Q?;U&Cxӿ>DBNĿ fZOYdm>px((K'kDT?-L.0>\ z,q9m*"eL+rN gfl]qեކU -}:m?)>?^ ]?τsJֿ+Vwv\h񿔲0⿘ybʉПB {Q6?@'{)\ܿG(5翓LS+ޔM?3I.,?^1Dܨ?PjտIT￝R,ֿ7Խc d Ͽfe?Hx?ik>@$0'Y1?c\ehPL?d/O?!,׿Z׆?Ӂt-?Q7ÿarS9kZ?]c?Н??[m6¿D 8տZ#rH?p?:"S#U?`E?!,6ٿFh~߿9q?maB?\~g4@y7d̿|&t~?c, $? <)ſ1?F\F?-78Qп .@,M??E p?,-4@"@$ @B!@t?e-ZL@Z[@: @("^ @W3]g@B @T*@bE@ @:{@p-@2@$n/q@PK!{"asymw_coif17_103_md_pywtCoeffs.npyNUMPYv{'descr': '=7?`d0ۿ=J?gy3?/o??gb9?Xx?St?=轿 9zԎ?-.Q?;U&Cxӿ>D?PK!;3sp1_bior1.1_3_md.npyNUMPYv{'descr': '?PK!;3sp1_bior1.1_3_md_pywtCoeffs.npyNUMPYv{'descr': '?PK!;3asymw_bior1.1_3_md.npyNUMPYv{'descr': '?PK!;3!asymw_bior1.1_3_md_pywtCoeffs.npyNUMPYv{'descr': '^?{@io@PK!2|w4asymw_bior1.3_6_md.npyNUMPYv{'descr': '^?{@io@PK!2|w4!asymw_bior1.3_6_md_pywtCoeffs.npyNUMPYv{'descr': 'ppd_bior1.5_10_ma.npyNUMPYv{'descr': ' sp1_bior1.5_10_ma_pywtCoeffs.npyNUMPYv{'descr': ' -k{!PK!asymw_bior1.5_11_md.npyNUMPYv{'descr': ' -k{!PK!"asymw_bior1.5_11_md_pywtCoeffs.npyNUMPYv{'descr': 'hva/ PK!XGsp0_bior2.2_6_md.npyNUMPYv{'descr': 'hua/ PK!XGsp0_bior2.2_6_md_pywtCoeffs.npyNUMPYv{'descr': '[?h5APK!bgsym_bior2.2_6_md.npyNUMPYv{'descr': 'h5APK!bgsym_bior2.2_6_md_pywtCoeffs.npyNUMPYv{'descr': 'oٸPK!Lsym_bior2.2_7_ma_pywtCoeffs.npyNUMPYv{'descr': 'oٸPK!@symw_bior2.2_7_ma.npyNUMPYv{'descr': 'oٸ?PK!Q asym_bior2.2_7_ma_pywtCoeffs.npyNUMPYv{'descr': 'oٸ?PK!asymw_bior2.2_7_ma.npyNUMPYv{'descr': '= sp0_bior2.4_10_ma_pywtCoeffs.npyNUMPYv{'descr': 'vB?][:F/R<?U|L@;Iqf8'?{?=׿>f.G?;vYuPK!`lzpd_bior2.4_11_md.npyNUMPYv{'descr': 'vB?][:F/R<?U|L@;Iqf8'?{?=׿>f.G?:vYuPK!`l zpd_bior2.4_11_md_pywtCoeffs.npyNUMPYv{'descr': '!asym_bior2.4_11_ma_pywtCoeffs.npyNUMPYv{'descr': '?T̿D3>RZPK!؛Wasymw_bior2.4_11_md.npyNUMPYv{'descr': '?T̿D3>RZPK!؛W"asymw_bior2.4_11_md_pywtCoeffs.npyNUMPYv{'descr': ';쿪v`b?MbÀ?O]e?pؿF* fr~$^?>;쿪v`b?MbÀ?O]e?pؿF* frPK!]ppd_bior2.6_14_md.npyNUMPYv{'descr': ';쿪v`b?MbÀ?O]e?pؿF* fr~$^?>;쿪v`b?MbÀ?O]e?pؿF* frPK!] ppd_bior2.6_14_md_pywtCoeffs.npyNUMPYv{'descr': ';쿪v`b?MbÀ?PK!U/per_bior2.6_14_md.npyNUMPYv{'descr': ';쿪v`b?MbÀ?PK!U/ per_bior2.6_14_md_pywtCoeffs.npyNUMPYv{'descr': 'M?t&D'}~$^?EDsm\H>mJ ?E:(}? //?6T->I=?v?PK!Gpasym_bior2.6_14_md.npyNUMPYv{'descr': 'M?t&D'}~$^?EDsm\G>mJ ?B:(}? //?6T->I=?v?PK!Gp!asym_bior2.6_14_md_pywtCoeffs.npyNUMPYv{'descr': '¿4 zpd_bior2.6_15_ma_pywtCoeffs.npyNUMPYv{'descr': '¿4⿗ +PK!Lʳsp0_bior2.6_15_md.npyNUMPYv{'descr': '⿗ +PK!Lʳ sp0_bior2.6_15_md_pywtCoeffs.npyNUMPYv{'descr': 'Lsp1_bior2.6_15_ma.npyNUMPYv{'descr': 'ʨ ?1$ۋ?4z_xݿ/hd ?}̠/]m?PK!r% zpd_bior2.8_18_md.npyNUMPYv{'descr': 'ʨ ?0$ۋ?4z_xݿ-hd ?}̠/]m?PK!r%  zpd_bior2.8_18_md_pywtCoeffs.npyNUMPYv{'descr': 'sFkj?u?"ei[}{k*D^lo:q' PK!G_sp0_bior2.8_18_md.npyNUMPYv{'descr': 'sFkj?u?!ei[}{k*D^lo:q' PK!G_ sp0_bior2.8_18_md_pywtCoeffs.npyNUMPYv{'descr': '顙^?2zh?dQ$ 6΋>iћ@E8PK!|8sym_bior2.8_18_md.npyNUMPYv{'descr': '顙^?0zh?dQ% 6΋>iћ@E8PK!|8 sym_bior2.8_18_md_pywtCoeffs.npyNUMPYv{'descr': 'sp1_bior2.8_18_ma.npyNUMPYv{'descr': '?[|!5uaL$gzKl[ch@rPK! sp0_bior2.8_19_md.npyNUMPYv{'descr': '?[z!5u`L$ezKl[ch@rPK!  sp0_bior2.8_19_md_pywtCoeffs.npyNUMPYv{'descr': '8ҿI`W?vwtWPK!8 sym_bior2.8_19_ma_pywtCoeffs.npyNUMPYv{'descr': '8ҿI`W?vwtWPK!5>8ҿ A9;y?!T?7?ߡ*f?!HL?{0?:n#A?[VrYX?c{̋ĿLtB?7jDԿPK!Z; ppd_bior2.8_19_ma_pywtCoeffs.npyNUMPYv{'descr': '8ҿ A9;y?!T?7?ߡ*f?!HL?{0?:n#A?[VrYX?c{̋ĿLtB?7jDԿPK!:sp1_bior2.8_19_ma.npyNUMPYv{'descr': '?[O<`ݿV pɿcZ?b&?PK!sp1_bior2.8_19_md.npyNUMPYv{'descr': '?[O<`ݿS pɿcZ?b&?PK! sp1_bior2.8_19_md_pywtCoeffs.npyNUMPYv{'descr': '8?I`WvwtW?PK!IF!asym_bior2.8_19_ma_pywtCoeffs.npyNUMPYv{'descr': '8?I`WvwtW?PK!Y;=Vasymw_bior2.8_19_ma.npyNUMPYv{'descr': 'ŕWͿy{+d@sй9ؿrd´E?k\#$?ch@r al}^< #@?PK!N#zpd_bior3.1_5_md.npyNUMPYv{'descr': 'Aw"I #@׿PK!rYzpd_bior3.1_5_ma_pywtCoeffs.npyNUMPYv{'descr': '}]< #@?PK!iizpd_bior3.1_5_md_pywtCoeffs.npyNUMPYv{'descr': '} #@PK!TCUsp0_bior3.1_5_md.npyNUMPYv{'descr': '} #@PK![EǾsp0_bior3.1_5_md_pywtCoeffs.npyNUMPYv{'descr': '}PK!δsym_bior3.1_5_md.npyNUMPYv{'descr': '}PK!nΘsym_bior3.1_5_md_pywtCoeffs.npyNUMPYv{'descr': '0/?PK!Rsymw_bior3.1_5_ma.npyNUMPYv{'descr': '}*Q!P?PK!Wsymw_bior3.1_5_md.npyNUMPYv{'descr': '})Q!P?PK!mrϠ symw_bior3.1_5_md_pywtCoeffs.npyNUMPYv{'descr': '}! b2j?PK!xSxppd_bior3.1_5_md.npyNUMPYv{'descr': '} $b2j?PK! ppd_bior3.1_5_md_pywtCoeffs.npyNUMPYv{'descr': '}(>!TOSfgPK!4sp1_bior3.1_5_md.npyNUMPYv{'descr': '}&>!TOSfgPK!`sp1_bior3.1_5_md_pywtCoeffs.npyNUMPYv{'descr': '}@ @ @PK!1%rϠasym_bior3.1_5_md.npyNUMPYv{'descr': '}@ @ @PK!uN\ asym_bior3.1_5_md_pywtCoeffs.npyNUMPYv{'descr': '}(>!TfIpPK!p'~asymw_bior3.1_5_md.npyNUMPYv{'descr': '}&>!TdIpPK!xD!asymw_bior3.1_5_md_pywtCoeffs.npyNUMPYv{'descr': '.?Ny>E|1?kMV{ϿPK!W Pzpd_bior3.3_8_md.npyNUMPYv{'descr': '.?Ny>E|1?jMV{ϿPK!7c̸zpd_bior3.3_8_md_pywtCoeffs.npyNUMPYv{'descr': 'ůd?PK!Kasymw_bior3.3_8_md.npyNUMPYv{'descr': 'ůd?PK!zn!asymw_bior3.3_8_md_pywtCoeffs.npyNUMPYv{'descr': 'dper_bior3.3_9_ma.npyNUMPYv{'descr': '?Zp[CҿQ t?جvԿw|B ?PK!&czpd_bior3.5_12_md.npyNUMPYv{'descr': '?Zp[CҿQ t?جvԿw|B ?PK!4 zpd_bior3.5_12_md_pywtCoeffs.npyNUMPYv{'descr': 'r?, 3|e?PK!xsymw_bior3.5_12_md.npyNUMPYv{'descr': '޿<}C?TGU?"d?AyI?HŜ?"ѓLksa/W??PK!'Z!symw_bior3.5_12_ma_pywtCoeffs.npyNUMPYv{'descr': 'r?, 3|e?PK!ٗ!symw_bior3.5_12_md_pywtCoeffs.npyNUMPYv{'descr': '޿<}C?TGU?"d?AyG?HŜ?"ѓLkra/W??PK!Ըppd_bior3.5_12_ma.npyNUMPYv{'descr': '?sa/WӿM[+ ?PK!Wư per_bior3.5_12_ma_pywtCoeffs.npyNUMPYv{'descr': '?ra/WӿL[+ ?PK!J{asym_bior3.5_12_ma.npyNUMPYv{'descr': '?<}CοL῅"d?AyI?HŜ?"⿔A?ta/WӿPK!rEw"asymw_bior3.5_12_ma_pywtCoeffs.npyNUMPYv{'descr': '?<}CοLῄ"d?AyG?HŜ?"⿑A?ra/WӿPK!Czpd_bior3.5_13_ma.npyNUMPYv{'descr': '^.?#SxxPK! kzpd_bior3.5_13_md.npyNUMPYv{'descr': '^.?#SxxPK!B= zpd_bior3.5_13_md_pywtCoeffs.npyNUMPYv{'descr': ' sp0_bior3.5_13_md_pywtCoeffs.npyNUMPYv{'descr': 'ݿga@P>ݿ 郶L?7dۓƿ=A]?U}OY:E@OY:E@V}=A]?PK!8sym_bior3.5_13_md.npyNUMPYv{'descr': 'ݿga@P>ݿ 郶L?7dۓƿ=A]?U}OY:E@OY:E@U}=A]?PK! sym_bior3.5_13_md_pywtCoeffs.npyNUMPYv{'descr': 'k5$s[.NJ?׌GڿƢ=7i=F?⃣b:?Q |:迀:?) tA?PK!vN!symw_bior3.5_13_ma_pywtCoeffs.npyNUMPYv{'descr': 'k5$s[.NJ?׌GڿŢ=7i=F?b:?Q |::?' tA?PK!8ppd_bior3.5_13_ma.npyNUMPYv{'descr': 'k5$s?*u?PK!pj ppd_bior3.5_13_ma_pywtCoeffs.npyNUMPYv{'descr': 'k5$s?(u?PK!nsp1_bior3.5_13_ma.npyNUMPYv{'descr': 'k5$s?*u?' tAſ:|:?۱OX?PK!?Sh per_bior3.5_13_ma_pywtCoeffs.npyNUMPYv{'descr': 'k5$s?(u?) tAſ:|:?۱OX?PK!Kwasym_bior3.5_13_ma.npyNUMPYv{'descr': 'k5$s?J>?׌GڿƢ=7i=F?⃣b:?y~*㿇|:?:+ tAſPK!(*"asymw_bior3.5_13_ma_pywtCoeffs.npyNUMPYv{'descr': 'k5$s?J>?׌GڿŢ=7i=F?b:?w~*㿅|:?:' tAſPK!2zpd_bior3.7_16_ma.npyNUMPYv{'descr': 'ֿP8?efPK!lzpd_bior3.7_16_md.npyNUMPYv{'descr': 'ֿP8?efPK!ɣ zpd_bior3.7_16_md_pywtCoeffs.npyNUMPYv{'descr': '?_׿_?=p<3kPK!yC=asym_bior3.7_16_md.npyNUMPYv{'descr': '?_׿_?=p<3kPK!9!asym_bior3.7_16_md_pywtCoeffs.npyNUMPYv{'descr': '}7B?PK!fJ sp0_bior3.7_17_ma_pywtCoeffs.npyNUMPYv{'descr': '}7B??}7B念D}2꿜g-ۿPK!^Xl sym_bior3.7_17_ma_pywtCoeffs.npyNUMPYv{'descr': 'X<)A>?MȀ?Vbɻ?wYпg5?<4˻:X ?ytӠ?xtӠ꿻:X :4˻?g5ۿPK!#Nasym_bior3.7_17_md.npyNUMPYv{'descr': 'X<)A>?MȀ?Vbɻ?wYпg5?<4˻:X ?ytӠ?xtӠ꿻:X :4˻?g5ۿPK!"!asym_bior3.7_17_md_pywtCoeffs.npyNUMPYv{'descr': ':˶? ?&Ϳ=6* ?1֡?f?ydic`-vPM4?PK!%ISzpd_bior3.9_20_md.npyNUMPYv{'descr': '&5?a M˿{F$ПPK!.p{ zpd_bior3.9_20_ma_pywtCoeffs.npyNUMPYv{'descr': ':˶? ?&Ϳ>6* ?1֡?f?ydic`-vPM4?PK!hF zpd_bior3.9_20_md_pywtCoeffs.npyNUMPYv{'descr': '&5?_ M˿zF$ПPK! sp0_bior3.9_20_ma.npyNUMPYv{'descr': '&5?a M˿D?Z<PK!} sp0_bior3.9_20_ma_pywtCoeffs.npyNUMPYv{'descr': '&5?_ M˿D?Z<PK!U8sym_bior3.9_20_ma.npyNUMPYv{'descr': '&5?a M˿`&5hu `¿}?PK!Ǧ sym_bior3.9_20_ma_pywtCoeffs.npyNUMPYv{'descr': '&5?_ M˿`^ M?@>&5hu `¿}?PK!_:asymw_bior3.9_20_ma.npyNUMPYv{'descr': '350N6/??PK!,symw_bior3.9_20_md.npyNUMPYv{'descr': '&5?a M˿Eտfs?'?Z?VK0դPK! Z!symw_bior3.9_20_ma_pywtCoeffs.npyNUMPYv{'descr': '350N6/??PK!8!symw_bior3.9_20_md_pywtCoeffs.npyNUMPYv{'descr': '&5?_ M˿Eտfs?~'?pZ?TK0դPK!J<4.ppd_bior3.9_20_ma.npyNUMPYv{'descr': '&5?a M˿K:ǿ-T@!r?f.?\9yd4D}㿴hu `?A>&5?a M˿K:ǿ-T@!r?f.?\9yd4PK!\^ ppd_bior3.9_20_ma_pywtCoeffs.npyNUMPYv{'descr': '&5?_ M˿K:ǿ-T0!r?f.?Z9yd4C}㿴hu `??>&5?_ M˿K:ǿ-T0!r?f.?Z9yd4PK!%j\sp1_bior3.9_20_ma.npyNUMPYv{'descr': '&5?a M˿<<<<PK!/Ԝ sp1_bior3.9_20_ma_pywtCoeffs.npyNUMPYv{'descr': '&5?_ M˿`p<<PK!|per_bior3.9_20_ma.npyNUMPYv{'descr': ':Z濻:/5?@h_"M*p @[+PK!aper_bior3.9_20_md.npyNUMPYv{'descr': ':Z濻:/5?@h_"M*p @[+PK!h per_bior3.9_20_md_pywtCoeffs.npyNUMPYv{'descr': '&5?a M˿{F$ПĿa M˿B>&5?hu `?}PK!I!asym_bior3.9_20_ma_pywtCoeffs.npyNUMPYv{'descr': '&5?_ M˿zF$ПĿ^ M˿@>&5?hu `?}PK!)asymw_bior3.9_20_ma.npyNUMPYv{'descr': '&5?a M˿&GM?fs~'俐ZVK0դ?PK!"asymw_bior3.9_20_ma_pywtCoeffs.npyNUMPYv{'descr': '&5?_ M˿&GM?fs~'PZVK0դ?PK!y^  zpd_bior3.9_21_ma.npyNUMPYv{'descr': '&?W űE['? F1?a}CM?n&H#ʿOF?OqR#v;{?HzGPK!M  zpd_bior3.9_21_md.npyNUMPYv{'descr': '&?W űE['? F1?a}CM?n&H#ʿOF?NqR#v;{?HzGPK!y5   zpd_bior3.9_21_md_pywtCoeffs.npyNUMPYv{'descr': '@V[ H忪Na?T4I梔G?-r3UzȌN:?- %P?*V?fb?@?O?Wi?f+bF?PK! v  sp0_bior3.9_21_md.npyNUMPYv{'descr': '@V[ H忪Na?T4I梔G?-r3UzȌN:?- %P?*V?fb?@?O?Wi?f+bF?PK!~B   sp0_bior3.9_21_md_pywtCoeffs.npyNUMPYv{'descr': 'Kx<r3F+Kx<r3E+Kx?PK!ɩ   ppd_bior3.9_21_ma_pywtCoeffs.npyNUMPYv{'descr': 'Kx?PK!z#'  sp1_bior3.9_21_ma.npyNUMPYv{'descr': 'Kx?yIw ?t֏uS}D1-C̩?X?PK!KKi per_bior3.9_21_ma_pywtCoeffs.npyNUMPYv{'descr': 'Kx?xIw ?s֏tS}D*-C̩?X?PK!%5  asym_bior3.9_21_ma.npyNUMPYv{'descr': ')r?F>)r?jr? a&?: 3`O?7PK!٘/  !asym_bior3.9_21_ma_pywtCoeffs.npyNUMPYv{'descr': ')r?F>)r?jr? a&?: 3`O?7PK!  asymw_bior3.9_21_ma.npyNUMPYv{'descr': 'Kx?<r3@F@+Kx?<r3@E@+O/? um~PK!JPzpd_bior4.4_10_md.npyNUMPYv{'descr': 'O/? um~PK!JP zpd_bior4.4_10_md_pywtCoeffs.npyNUMPYv{'descr': ', Њ r?XZQa?jr?W|?`3<ӿn:8?PK!/p sp0_bior4.4_10_ma_pywtCoeffs.npyNUMPYv{'descr': ', Њ r?XZQa?jr?W|?`3<ӿn:8?PK!Nsym_bior4.4_10_ma.npyNUMPYv{'descr': '?A⎷':qR*S?4Jqn^," ? PK!ezpd_bior4.4_11_md.npyNUMPYv{'descr': 'ѿ▯9[!"Gf?MX?n_MP꿐|wu汿eM?PK!?A⎷':qR*S?4Jqn^," ? PK!e zpd_bior4.4_11_md_pywtCoeffs.npyNUMPYv{'descr': 'ѿ▯9[!"Gf?MX?n_MP꿐|wu汿eM?PK! sp0_bior4.4_11_ma.npyNUMPYv{'descr': 'vބ?@տPK!ݖesym_bior4.4_11_md.npyNUMPYv{'descr': 'vބ?@տPK!ݖe sym_bior4.4_11_md_pywtCoeffs.npyNUMPYv{'descr': ' ]?[Nk;0[Dz }~e?Oy?4'C'Fr?PK! zpd_bior5.5_12_ma_pywtCoeffs.npyNUMPYv{'descr': ' ]?[Nk;0[Dz }~e?Oy?4'C'Fr?PK!xasp0_bior5.5_12_ma.npyNUMPYv{'descr': '0d1{_ؿ&?2=1?7}t=g?di4?bQؿ-ƞ޿PK! ossp0_bior5.5_12_md.npyNUMPYv{'descr': '0d1{_ؿ&?2=1?7}t=g?di4?bQؿ-ƞ޿PK! os sp0_bior5.5_12_md_pywtCoeffs.npyNUMPYv{'descr': '@]#/0z\)3( ?gDG ='׳*΀?,g:S?p~PK! Z sym_bior5.5_13_ma_pywtCoeffs.npyNUMPYv{'descr': '@]#/0z\)3( ?gDG ='׳*΀?,g:S?p~PK!KKsymw_bior5.5_13_ma.npyNUMPYv{'descr': 'tݷ1rD?9 ?PK! ?MS/+?pBBU~b- @PK!a ppd_bior5.5_13_ma_pywtCoeffs.npyNUMPYv{'descr': 'tݷ1rD?9 ?PK! ?MS/+?pBBU~b- @PK!B#sp1_bior5.5_13_ma.npyNUMPYv{'descr': '?:rd; ?>)Gn? PK!B# sp1_bior5.5_13_ma_pywtCoeffs.npyNUMPYv{'descr': '?:rd; ?>)Gn? PK!Mper_bior5.5_13_ma.npyNUMPYv{'descr': '?޾V#x޾V#?->-0z?PK! "asymw_bior5.5_13_ma_pywtCoeffs.npyNUMPYv{'descr': '?޾V#x޾V#?->-0z?PK!scFzpd_bior6.8_18_ma.npyNUMPYv{'descr': 'Y?}3MW?)eͶh?PK!scF zpd_bior6.8_18_ma_pywtCoeffs.npyNUMPYv{'descr': 'Y?}3MW?)eͶh?PK!sp0_bior6.8_18_ma.npyNUMPYv{'descr': '?79t*_GP?&ϿPK!,0X sym_bior6.8_18_ma_pywtCoeffs.npyNUMPYv{'descr': '?79t*_GP?&ϿPK! symw_bior6.8_18_ma.npyNUMPYv{'descr': 'PK!f0sp1_bior6.8_18_md.npyNUMPYv{'descr': 'PK!f0 sp1_bior6.8_18_md_pywtCoeffs.npyNUMPYv{'descr': '@o8cւ@0 @y{D@#@6f{?"-4?&K(k޿q7{?kuȾyƿs`ʻ?8f?yLm̞Q=PK!N~asymw_bior6.8_18_md.npyNUMPYv{'descr': '[+?J PK!U"asymw_bior6.8_18_ma_pywtCoeffs.npyNUMPYv{'descr': '@o8cւ@0 @y{D@#@6f{?"-4?&K(k޿q7{?kuȾyƿs`ʻ?8f?yLm̞Q=PK!N~"asymw_bior6.8_18_md_pywtCoeffs.npyNUMPYv{'descr': '[+?J PK!Yzpd_bior6.8_19_ma.npyNUMPYv{'descr': '- q?KSf?p\\(E6g)U?"˜A忪b v?6t}T ?Ps PPPK!cIDzpd_bior6.8_19_md.npyNUMPYv{'descr': '_>͖{?-\U-6?\[Өj?ڏ?.?ςA?JpD9MoYn8?փ#п٠4n?&[|qPK!Y zpd_bior6.8_19_ma_pywtCoeffs.npyNUMPYv{'descr': '- q?KSf?p\\(E6g)U?"˜A忪b v?6t}T ?Ps PPPK!cID zpd_bior6.8_19_md_pywtCoeffs.npyNUMPYv{'descr': '_>͖{?-\U-6?\[Өj?ڏ?.?ςA?JpD9MoYn8?փ#п٠4n?&[|qPK![sp0_bior6.8_19_ma.npyNUMPYv{'descr': 'g@q/&.N_?===PK![ sp0_bior6.8_19_ma_pywtCoeffs.npyNUMPYv{'descr': 'g@q/&.N_?===PK!hisym_bior6.8_19_ma.npyNUMPYv{'descr': 'sym_bior6.8_19_md.npyNUMPYv{'descr': ' sym_bior6.8_19_md_pywtCoeffs.npyNUMPYv{'descr': 'ppd_bior6.8_19_md.npyNUMPYv{'descr': '?UVF+r?*+^{?ڏ?.?ςA?JpD9M}W>6?}rI[ CdIUK,R?iĿPK!o ppd_bior6.8_19_ma_pywtCoeffs.npyNUMPYv{'descr': ' ppd_bior6.8_19_md_pywtCoeffs.npyNUMPYv{'descr': '?UVF+r?*+^{?ڏ?.?ςA?JpD9M}W>6?}rI[ CdIUK,R?iĿPK!yOLsp1_bior6.8_19_ma.npyNUMPYv{'descr': '+?7xK?PK!FJzpd_rbio1.3_6_md.npyNUMPYv{'descr': '+?7xK?PK!FJzpd_rbio1.3_6_md_pywtCoeffs.npyNUMPYv{'descr': '+?7xK?5'J?PK!7(sp0_rbio1.3_6_md.npyNUMPYv{'descr': '+?7xK?5'J?PK!7(sp0_rbio1.3_6_md_pywtCoeffs.npyNUMPYv{'descr': '+?7xK?7xK?PK!R/|Asym_rbio1.3_6_md.npyNUMPYv{'descr': '+?7xK?7xK?PK!R/|Asym_rbio1.3_6_md_pywtCoeffs.npyNUMPYv{'descr': '+?7xK?؛ȭ?PK!ܛ<symw_rbio1.3_6_md.npyNUMPYv{'descr': '+?7xK?؛ȭ?PK!ܛ< symw_rbio1.3_6_md_pywtCoeffs.npyNUMPYv{'descr': '+?7xK?njD1PK!Rrppd_rbio1.3_6_md.npyNUMPYv{'descr': '+?7xK?njD1PK!Rrppd_rbio1.3_6_md_pywtCoeffs.npyNUMPYv{'descr': '+?7xK?Rf?PK!<sp1_rbio1.3_6_md.npyNUMPYv{'descr': '+?7xK?Rf?PK!<sp1_rbio1.3_6_md_pywtCoeffs.npyNUMPYv{'descr': '+?7xK?PK!?|)^per_rbio1.3_6_md.npyNUMPYv{'descr': '+?7xK?PK!?|)^per_rbio1.3_6_md_pywtCoeffs.npyNUMPYv{'descr': '+?7xK?7xKPK!#-asym_rbio1.3_6_md.npyNUMPYv{'descr': '+?7xK?7xKPK!#- asym_rbio1.3_6_md_pywtCoeffs.npyNUMPYv{'descr': '+?7xK?Jgd?PK!&asymw_rbio1.3_6_md.npyNUMPYv{'descr': '+?7xK?Jgd?PK!&!asymw_rbio1.3_6_md_pywtCoeffs.npyNUMPYv{'descr': 'U?|PK!)X sp1_rbio1.5_10_ma_pywtCoeffs.npyNUMPYv{'descr': '_S"?PK!W!symw_rbio1.5_11_ma_pywtCoeffs.npyNUMPYv{'descr': 'cS"?PK!ppd_rbio1.5_11_ma.npyNUMPYv{'descr': '5R1:d]$ҘPK! ppd_rbio1.5_11_ma_pywtCoeffs.npyNUMPYv{'descr': '5R1:d]$ҘPK!JΝsp1_rbio1.5_11_ma.npyNUMPYv{'descr': 'asym_rbio1.5_11_md.npyNUMPYv{'descr': 'symw_rbio2.2_7_md.npyNUMPYv{'descr': '>zp>z@!Isymw_rbio2.4_11_ma.npyNUMPYv{'descr': '!I!symw_rbio2.4_11_ma_pywtCoeffs.npyNUMPYv{'descr': ';:0PK!~ ppd_rbio2.4_11_ma_pywtCoeffs.npyNUMPYv{'descr': ';:0PK!i)Isp1_rbio2.4_11_ma.npyNUMPYv{'descr': '>=vRA`ݿeL[շҿ?Uo@?4?PK!Ցzpd_rbio2.6_14_md.npyNUMPYv{'descr': '>=vRA`ݿeL[շҿ?Uo@?4?PK!-| zpd_rbio2.6_14_md_pywtCoeffs.npyNUMPYv{'descr': '>=vRA`ݿeL[շҿ?Uo@?4?4?4?PK!sp0_rbio2.6_14_md.npyNUMPYv{'descr': '>=vRA`ݿeL[շҿ?Uo@?4?4?4?PK!&L sp0_rbio2.6_14_md_pywtCoeffs.npyNUMPYv{'descr': '>=vRA`ݿeL[շҿ?Uo@?Y?OT/"[!kPK!̗sym_rbio2.6_14_md.npyNUMPYv{'descr': '>=vRA`ݿeL[շҿ?Uo@?Y?OT/"[!kPK! h sym_rbio2.6_14_md_pywtCoeffs.npyNUMPYv{'descr': '>$y~\4?<2w$y~\4?YY>>=vRA`ݿeL[շҿ?Uo@?Uo@??eL[շҿPK!|"symw_rbio2.6_14_md.npyNUMPYv{'descr': '>$y~\4?<2w$y~\4?YY>>=vRA`ݿeL[շҿ?Uo@?Uo@??eL[շҿPK!P !symw_rbio2.6_14_md_pywtCoeffs.npyNUMPYv{'descr': '>=vRA`ݿeL[շҿ?Uo@?{U?$y~\4?YY>>PK!ppd_rbio2.6_14_md.npyNUMPYv{'descr': '>=vRA`ݿeL[շҿ?Uo@?{U?$y~\4?YY>>PK! ppd_rbio2.6_14_md_pywtCoeffs.npyNUMPYv{'descr': '>=vRA`ݿeL[շҿ?Uo@?{ 1P@fJn @mQI)@PK!˼sp1_rbio2.6_14_md.npyNUMPYv{'descr': '>=vRA`ݿeL[շҿ?Uo@?{ 1P@fJn @mQI)@PK!;ʢ sp1_rbio2.6_14_md_pywtCoeffs.npyNUMPYv{'descr': '>=vRA`ݿeL[շҿ?Uo@?PK!Uqper_rbio2.6_14_md.npyNUMPYv{'descr': '>=vRA`ݿeL[շҿ?Uo@?PK!Uq per_rbio2.6_14_md_pywtCoeffs.npyNUMPYv{'descr': '>=vRA`ݿeL[շҿ?Uo@?T2ͿOT/"?[!k?PK!B4Tasym_rbio2.6_14_md.npyNUMPYv{'descr': '>=vRA`ݿeL[շҿ?Uo@?T2ͿOT/"?[!k?PK!!asym_rbio2.6_14_md_pywtCoeffs.npyNUMPYv{'descr': '>=vRA`ݿeL[շҿ?Uo@?i3@-6@GRȋ @PK!86asymw_rbio2.6_14_md.npyNUMPYv{'descr': '>=vRA`ݿeL[շҿ?Uo@?i3@-6@GRȋ @PK!V& "asymw_rbio2.6_14_md_pywtCoeffs.npyNUMPYv{'descr': ' sp0_rbio2.6_15_md_pywtCoeffs.npyNUMPYv{'descr': 'V[ް?~kn*|LgsY-|?FO?%J5VP޿Er5[̿1z A&Vޫh̗-?tװ+࿄Sߎ橱GD@f|_6?PK!%69 sym_rbio2.6_15_ma_pywtCoeffs.npyNUMPYv{'descr': 'V[ް?~kn:|LgsY-|?FO?#J5VP޿Ir5[̿1z A&Vޫh̗-?tװ+࿄Sߎ橱GD@f|_6?PK!d_symw_rbio2.6_15_ma.npyNUMPYv{'descr': '( 翙D^+?ȴ7!ƹ$4z¿* ??V˶п?IPK!_ sp0_rbio2.8_18_ma_pywtCoeffs.npyNUMPYv{'descr': '( 翙D^+?ȴ7!ƹ$4z¿* ??S˶п?^PK!]psym_rbio2.8_18_ma.npyNUMPYv{'descr': '!?KMSrclt6(١?*Sƹ$+0ÿ JᅵZs?J>!?KMSrclt6(١?*SPK!  ppd_rbio2.8_18_ma_pywtCoeffs.npyNUMPYv{'descr': '!?KMSrclt6(١?*Sƹ$+0ÿ J￝Zs?J>!?KMSrclt6(١?*SPK!"Ysp1_rbio2.8_18_ma.npyNUMPYv{'descr': 'W .H?.2UmscF_U.?ezƹ$棓E3 Liތs ?QV D?MKqyq zk/r?PK!"Y sp1_rbio2.8_18_ma_pywtCoeffs.npyNUMPYv{'descr': '!?PK!dN^ per_rbio2.8_18_ma_pywtCoeffs.npyNUMPYv{'descr': '< per_rbio2.8_18_md_pywtCoeffs.npyNUMPYv{'descr': '!?PK!masym_rbio2.8_18_ma.npyNUMPYv{'descr': 'ʿ.$G,š?r/鿎(𿴋Ҫk`.zؿzng?rj蜢#2d?PK!(s zpd_rbio2.8_19_ma_pywtCoeffs.npyNUMPYv{'descr': 'ʿ.$G,?s/鿍(𿵋Ҫk`,zؿzng?rj蜢#2d?PK!trsp0_rbio2.8_19_ma.npyNUMPYv{'descr': '7?BQ?:N? x?z }ſci$@sdzš?&$8_psRmy㿳\p׿PmW?J٥2?0*:?/LZPK!m9 ppd_rbio2.8_19_ma_pywtCoeffs.npyNUMPYv{'descr': '7?BQ?:N? x?z }ſci$@sdz? &#8_qsRmy㿱\p׿PmW?D٥2?0*:?/LZPK!Vsp1_rbio2.8_19_ma.npyNUMPYv{'descr': 'ͿPK!ˠzpd_rbio3.1_5_md.npyNUMPYv{'descr': '?PK!kzpd_rbio3.1_5_ma_pywtCoeffs.npyNUMPYv{'descr': 'ͿPK!zpd_rbio3.1_5_md_pywtCoeffs.npyNUMPYv{'descr': '?PK!y>sp0_rbio3.1_5_ma.npyNUMPYv{'descr': 'PK!͠sp0_rbio3.1_5_md.npyNUMPYv{'descr': 'PK!ôLsp0_rbio3.1_5_md_pywtCoeffs.npyNUMPYv{'descr': '̿XK?PK!)x symw_rbio3.1_5_ma_pywtCoeffs.npyNUMPYv{'descr': '̿XK?PK!݌kppd_rbio3.1_5_ma.npyNUMPYv{'descr': ' @xzmt`J|x?obX?PK!] ppd_rbio3.1_5_ma_pywtCoeffs.npyNUMPYv{'descr': ' @xzmt`J|x?nbX?PK!4sp1_rbio3.1_5_ma.npyNUMPYv{'descr': '?PK!ųzpd_rbio3.3_8_md.npyNUMPYv{'descr': 'uĿ0?%ʱ?K? \?z_()3?PK!R 'zpd_rbio3.3_8_ma_pywtCoeffs.npyNUMPYv{'descr': '?PK!0zpd_rbio3.3_8_md_pywtCoeffs.npyNUMPYv{'descr': 'uĿ0?%ʱ?K? \?z_()3?PK!.sp0_rbio3.3_8_ma.npyNUMPYv{'descr': '@g}:1e?PK! LYsym_rbio3.3_8_md.npyNUMPYv{'descr': '@f}:1e?PK!aeEsym_rbio3.3_8_md_pywtCoeffs.npyNUMPYv{'descr': '#B+?X=q?K?ֿ>՘?ODyN?SoBa ?f PK!1 symw_rbio3.3_9_ma_pywtCoeffs.npyNUMPYv{'descr': 'ODyN?ToBa ?f PK!\_ppd_rbio3.3_9_ma.npyNUMPYv{'descr': '%asymw_rbio3.3_9_ma.npyNUMPYv{'descr': 'vne?qXӀeN׿,Ik?z2 ?ő% *?=}ڀPK!_t sp0_rbio3.5_12_ma_pywtCoeffs.npyNUMPYv{'descr': 'vne?qXӀeN׿,Ik?z2 ?ő% *?=}ڀPK!۵@sym_rbio3.5_12_ma.npyNUMPYv{'descr': ' $(c .?c<zgcl-qVȿ3yl +86,PK!Wnsp1_rbio3.5_12_md.npyNUMPYv{'descr': ' $(c .?c<zgcl-qVȿ2yl +86,PK!;z sp1_rbio3.5_12_md_pywtCoeffs.npyNUMPYv{'descr': 'шRPxfJ"8l?)!?S<UHb?\AԔV^@d lyϢ?J_T!w?PK!D zpd_rbio3.5_13_ma_pywtCoeffs.npyNUMPYv{'descr': 'шRPxfJ"8l?)!?Q<UHb?\AԔV^@d lyϢ?J_T!w?PK!Ssp0_rbio3.5_13_ma.npyNUMPYv{'descr': 'ǷyZHb?GOzl@̂*-n?&[ ?LN?ѿPK!!symw_rbio3.5_13_ma_pywtCoeffs.npyNUMPYv{'descr': '?Mi~ubHb?m\}R)}>N'r@⼉% C(*R߄+?@]V%/PK!1h ppd_rbio3.5_13_ma_pywtCoeffs.npyNUMPYv{'descr': '?Ki~ubHb?m\}R)}>N'r@⼉% C(*R߄+?@aV%/PK!֢@濽+?Œy֢@濽+?Œy?#>??wW?U}W]?PK!H[asym_rbio3.5_13_md.npyNUMPYv{'descr': 'V@FCFCu>V@ ʳ=PK!>,z!asym_rbio3.5_13_ma_pywtCoeffs.npyNUMPYv{'descr': '?#>??~wW?U}W]?PK!*!asym_rbio3.5_13_md_pywtCoeffs.npyNUMPYv{'descr': 'V@FCFCt>V@ʳ=PK! kasymw_rbio3.5_13_ma.npyNUMPYv{'descr': 'nzpd_rbio3.7_16_ma.npyNUMPYv{'descr': '/I!J:MB/I!W6VQe6H4I3rDSz DѿCUQ4b͡?CUSz DѿrDPK!gn( sym_rbio3.7_16_md_pywtCoeffs.npyNUMPYv{'descr': '/I!?pB/I!W6VQe6H4I3rDSz DѿCUPCU?Sz D?rD?PK!s!asym_rbio3.7_16_md_pywtCoeffs.npyNUMPYv{'descr': 'tMLgBT4ФD/I!G6VQf6H4I3sDQz DѿEU꿥5?% ,"MW?i:? o?PK!k><asymw_rbio3.7_16_md.npyNUMPYv{'descr': '?+2Ͽ0M,?,_?H^?a?8ΙP#???0@"?vXjd˿-p?|#y?͂,PK!+"asymw_rbio3.7_16_ma_pywtCoeffs.npyNUMPYv{'descr': 'tMLgAT4ФB/I!W6VQe6H4I3rDSz DѿCU꿥5?$ ,"MW?i:? o?PK!k><"asymw_rbio3.7_16_md_pywtCoeffs.npyNUMPYv{'descr': '?+2Ͽ0M,?,_?H^?a?8ΙP#???0@"?vXjd˿-p?|#y?͂,PK!E*zpd_rbio3.7_17_ma.npyNUMPYv{'descr': '¿jh ѩ?ߞb?cm,3GV.?qߗq ̖갿PK!g 1zpd_rbio3.7_17_md.npyNUMPYv{'descr': '¿jh ѩ?ݞb?cm,3GV.?pߗq ̖갿PK! zpd_rbio3.7_17_md_pywtCoeffs.npyNUMPYv{'descr': '¿jh ѩ?ߞb?cm,3GV.?߰ ̖ ̖ ̖ ̖PK!*sp0_rbio3.7_17_md.npyNUMPYv{'descr': '¿jh ѩ?ݞb?cm,3GV.?߰ ̖ ̖ ̖ ̖PK!) sp0_rbio3.7_17_md_pywtCoeffs.npyNUMPYv{'descr': '¿I-?"n=iy|"n=H-?x (L>¿jh ѩ?ߞb?cm,3GV.?߰߰,3GV.?cmޞb?PK!Tsym_rbio3.7_17_md.npyNUMPYv{'descr': '¿H-? n=hy| n=H-?x (L>¿jh ѩ?ݞb?cm,3GV.?߰߰,3GV.?cmޞb?PK!e sym_rbio3.7_17_md_pywtCoeffs.npyNUMPYv{'descr': '¿jh ѩ?ߞb?cm,3GV.? 0H3ӿ3QfrÌ?]||3?/?PK!B=bsymw_rbio3.7_17_md.npyNUMPYv{'descr': '#9c?jaih%hu,?*m$)բ?kS?N@-?3¨4r?=BPK!d!symw_rbio3.7_17_ma_pywtCoeffs.npyNUMPYv{'descr': '¿jh ѩ?ݞb?cm,3GV.? 0H3ӿ3QfrÌ?]||3?/?PK!T!symw_rbio3.7_17_md_pywtCoeffs.npyNUMPYv{'descr': '#9c?jaih%hu,?*m$)բ?kS?N@-?3¨4r?=BPK! &ppd_rbio3.7_17_ma.npyNUMPYv{'descr': '¿jh ѩ?ߞb?cm,3GV.?oc`Iӗ{$#w? ?^ͿPK!ppd_rbio3.7_17_md.npyNUMPYv{'descr': 'u,?*\uT&꿁c.?d&OX` ?s zP_?丫p?PK!!] ppd_rbio3.7_17_ma_pywtCoeffs.npyNUMPYv{'descr': '¿jh ѩ?ݞb?cm,3GV.?mc`Hӗ|{$#w? ?^ͿPK!! . ppd_rbio3.7_17_md_pywtCoeffs.npyNUMPYv{'descr': 'u,?*\uT&꿁c.?d&OX` ?s zP_?丫p?PK!sp1_rbio3.7_17_ma.npyNUMPYv{'descr': '¿jh ѩ?ߞb?cm,3GV.?٪@`E"y?Zqm*!?wu@waUv @PK!]fisp1_rbio3.7_17_md.npyNUMPYv{'descr': ' sp1_rbio3.7_17_ma_pywtCoeffs.npyNUMPYv{'descr': '¿jh ѩ?ݞb?cm,3GV.?٪@`C"y?Zqm*!?wu@waUv @PK!*e sp1_rbio3.7_17_md_pywtCoeffs.npyNUMPYv{'descr': 'Eper_rbio3.7_17_md.npyNUMPYv{'descr': 'E per_rbio3.7_17_md_pywtCoeffs.npyNUMPYv{'descr': '?I-"n=?<"n=H-?x (L>¿jh ѩ?ߞb?cm,3GV.?$vET$vET?,3GV.⿈cm?ޞbPK!~asym_rbio3.7_17_md.npyNUMPYv{'descr': '?H- n=?< n=H-?x (L>¿jh ѩ?ݞb?cm,3GV.?$vET$vET?,3GV.⿂cm?ޞbPK!~!asym_rbio3.7_17_md_pywtCoeffs.npyNUMPYv{'descr': '¿jh ѩ?ߞb?cm,3GV.?٪@`:kc;迧0ޱ2tj.PK!}asymw_rbio3.7_17_md.npyNUMPYv{'descr': 'hMYhu,?*=jH;gJ?؏.-`?[2[G뿥ɱ@߄ o=B?PK!Q"asymw_rbio3.7_17_ma_pywtCoeffs.npyNUMPYv{'descr': '¿jh ѩ?ݞb?cm,3GV.?٪@`9kc;迦0ޱ2tj.PK! "asymw_rbio3.7_17_md_pywtCoeffs.npyNUMPYv{'descr': '?g 2Cr@t&& u?5hkX?4Dϸ\|SNz@Ou &Wa@]i9vQ|?g 2Cr@t&& u?5hkX?4Dϸ\|SNz@Ou &Wa@]i9vQ|鿜9@x*пIj?|t Te#?xh, AqPK! sp0_rbio3.9_20_ma_pywtCoeffs.npyNUMPYv{'descr': '鿜9@x*пIj?|t Tc#?xh, AqPK!|sym_rbio3.9_20_ma.npyNUMPYv{'descr': '7h(PK!P Usp1_rbio3.9_20_md.npyNUMPYv{'descr': '7h(PK!~ sp1_rbio3.9_20_md_pywtCoeffs.npyNUMPYv{'descr': '?d ߿ $Y'?V/3m15꿞S=?w ~pze?q7a?IۆPK!Ym_per_rbio3.9_20_md.npyNUMPYv{'descr': '?d ߿ $Y'?V/3m15꿚S=?w ~pze?q7a?IۆPK!Ym_ per_rbio3.9_20_md_pywtCoeffs.npyNUMPYv{'descr': '޿ J Lo?G:9y?tXq? Y"?a8?mt}JݿJVDh'?PK!  zpd_rbio3.9_21_md.npyNUMPYv{'descr': '޿J Lo?F:9y?tXq? Y"?a8?mt}JݿJVDh'?PK!L?w   zpd_rbio3.9_21_md_pywtCoeffs.npyNUMPYv{'descr': '޿ J Lo?G:9y?tXq? Y"?a8?mt}Jݿ~dIVDh'?VDh'?VDh'?VDh'?VDh'?PK!Mp S  sp0_rbio3.9_21_md.npyNUMPYv{'descr': '޿J Lo?F:9y?tXq? Y"?a8?mt}Jݿ~dIUDh'?UDh'?UDh'?UDh'?UDh'?PK!7I   sp0_rbio3.9_21_md_pywtCoeffs.npyNUMPYv{'descr': '޿": Fп1n⃇?X{?1n⃇?": Fп׻{>޿ J Lo?G:9y?tXq? Y"?a8?mt}Jݿ~dI~dInt}Jݿa8? Y"?uXq?PK!  sym_rbio3.9_21_md.npyNUMPYv{'descr': '޿": Fп1n⃇?X{?1n⃇?": Fпӻ{>޿J Lo?F:9y?tXq? Y"?a8?mt}Jݿ~dI~dImt}Jݿa8? Y"?uXq?PK!YJ*V   sym_rbio3.9_21_md_pywtCoeffs.npyNUMPYv{'descr': '޿ J Lo?G:9y?tXq? Y"?a8?mt}Jݿ O[пHNh y9dп?J?grL?_-3?PK!ܪ*  symw_rbio3.9_21_md.npyNUMPYv{'descr': ' ?8U4mR?82chֲR?*&:?x@"0y:[?eCLƿ(9??PK!a  !symw_rbio3.9_21_ma_pywtCoeffs.npyNUMPYv{'descr': '޿J Lo?F:9y?tXq? Y"?a8?mt}Jݿ O[пHNh y9dп?J?grL?_-3?PK!.  !symw_rbio3.9_21_md_pywtCoeffs.npyNUMPYv{'descr': ' ?8U4mR?82chֲR?*&:?x@"0y:[?eCLƿ(9??PK!BV  ppd_rbio3.9_21_ma.npyNUMPYv{'descr': '޿ J Lo?G:9y?tXq? Y"?a8?mt}Jݿ]ңr y:-Y?歛 F#鑿ݪӿwm?PK!  ppd_rbio3.9_21_md.npyNUMPYv{'descr': '2L&@]a}&hzlu ??6?? M޿h3BՇ?sB ?Rpᅢqf(@H{UPK!   ppd_rbio3.9_21_ma_pywtCoeffs.npyNUMPYv{'descr': '޿J Lo?F:9y?tXq? Y"?a8?mt}Jݿ]ңr y:-Y?歛0F#鑿ݪӿwm?PK!   ppd_rbio3.9_21_md_pywtCoeffs.npyNUMPYv{'descr': '2L&@]a}&hzlu ??6?? M޿h3BՇ?sB ?Rpᅢqf(@H{UPK!4t  sp1_rbio3.9_21_ma.npyNUMPYv{'descr': '}  A!#LjT_ ߿1n⃇?": Fп׻{>޿ J Lo?G:9y?tXq? Y"?a8?mt}Jݿʩ?D[@ti @W (@(h 0@_r4@PK!g  sp1_rbio3.9_21_md.npyNUMPYv{'descr': 'E   sp1_rbio3.9_21_ma_pywtCoeffs.npyNUMPYv{'descr': '}  A!"Lj~T_ ߿1n⃇?": Fпӻ{>޿J Lo?F:9y?tXq? Y"?a8?mt}Jݿʩ?D[@~ti @V (@(h 0@_r4@PK!|   sp1_rbio3.9_21_md_pywtCoeffs.npyNUMPYv{'descr': '?": F?1n⃇1n⃇?": Fп׻{>޿ J Lo?G:9y?tXq? Y"?a8?mt}Jݿ0Ͽ0?nt}J?a8ṿ Y"uXqPK!V  asym_rbio3.9_21_md.npyNUMPYv{'descr': '?": F?1n⃇1n⃇?": Fпӻ{>޿J Lo?F:9y?tXq? Y"?a8?mt}Jݿ0Ͽ0?mt}J?a8ṿ Y"uXqPK!V  !asym_rbio3.9_21_md_pywtCoeffs.npyNUMPYv{'descr': '޿ J Lo?G:9y?tXq? Y"?a8?mt}Jݿʩ?^gg@x; @bibc?sH˜?hԊNW?PK!  asymw_rbio3.9_21_md.npyNUMPYv{'descr': '޿J Lo?F:9y?tXq? Y"?a8?mt}Jݿʩ?^gg@x; @aibc?sH˜?gԊNW?PK!$J  "asymw_rbio3.9_21_md_pywtCoeffs.npyNUMPYv{'descr': 'ppd_rbio4.4_10_ma.npyNUMPYv{'descr': 'ppd_rbio4.4_10_md.npyNUMPYv{'descr': ' ppd_rbio4.4_10_ma_pywtCoeffs.npyNUMPYv{'descr': ' ppd_rbio4.4_10_md_pywtCoeffs.npyNUMPYv{'descr': 'asym_rbio4.4_10_ma.npyNUMPYv{'descr': '!asym_rbio4.4_10_ma_pywtCoeffs.npyNUMPYv{'descr': '0ڹ- ??1N|ҿdQIi]ѿCtF?PK!nzpd_rbio4.4_11_md.npyNUMPYv{'descr': '0ڹ- ??1N|ҿdQIi]ѿCtF?PK!n zpd_rbio4.4_11_md_pywtCoeffs.npyNUMPYv{'descr': '"??1N|ҿdQIDiҿDD??u:?t"Ay?PK!ˢdsp0_rbio4.4_11_md.npyNUMPYv{'descr': '޿mh?K;x?"??1N|ҿdQIDiҿDD??u:?t"Ay?PK!ˢd sp0_rbio4.4_11_md_pywtCoeffs.npyNUMPYv{'descr': '޿mh?K;x?"??1N|ҿdQIDiҿ]Գ?ѿY})߿PK!sym_rbio4.4_11_md.npyNUMPYv{'descr': '޿eB?`K%{ѿu*ۈKeY.?PK!a:'! sym_rbio4.4_11_ma_pywtCoeffs.npyNUMPYv{'descr': '"??1N|ҿdQIDiҿ]Գ?ѿY})߿PK! sym_rbio4.4_11_md_pywtCoeffs.npyNUMPYv{'descr': '޿eB?`K%{ѿu*ۈKeY.?PK!xsymw_rbio4.4_11_ma.npyNUMPYv{'descr': 'per_rbio4.4_11_md.npyNUMPYv{'descr': '޿Nx?Ԗv4'?PK!IW! per_rbio4.4_11_ma_pywtCoeffs.npyNUMPYv{'descr': ' per_rbio4.4_11_md_pywtCoeffs.npyNUMPYv{'descr': '޿Nx?Ԗv4'?PK!bmhasym_rbio4.4_11_ma.npyNUMPYv{'descr': '6%?hcPK!<"asymw_rbio4.4_11_ma_pywtCoeffs.npyNUMPYv{'descr': '6%?hcPK!Dzpd_rbio5.5_12_ma.npyNUMPYv{'descr': 'U'?Kc?+4,?PK!!˯sp0_rbio5.5_13_md.npyNUMPYv{'descr': 'U'?Kc?+4,?PK!!˯ sp0_rbio5.5_13_md_pywtCoeffs.npyNUMPYv{'descr': 'x UͿ~c?>x UͿ8`fPK!+!symw_rbio5.5_13_ma_pywtCoeffs.npyNUMPYv{'descr': 'x UͿ~c?>x UͿ8`fPK!Lwppd_rbio5.5_13_ma.npyNUMPYv{'descr': '¿x?PK!Lw ppd_rbio5.5_13_ma_pywtCoeffs.npyNUMPYv{'descr': '¿x?PK!osp1_rbio5.5_13_ma.npyNUMPYv{'descr': '¿x?*n?S#?mJ8??PK!M per_rbio5.5_13_ma_pywtCoeffs.npyNUMPYv{'descr': '¿x?*n?S#?mJ8??PK!Ī%asym_rbio5.5_13_ma.npyNUMPYv{'descr': '0@v?ͺo?*3Xsk'?Q I|u%?x2`=bPK!Kw zpd_rbio6.8_18_ma_pywtCoeffs.npyNUMPYv{'descr': '0@v?ͺo?*3Xsk'?Q I|u%?x2`=bPK!sp0_rbio6.8_18_ma.npyNUMPYv{'descr': '࿴3c2ޘÒH$A0?5xr?c~S㿴p`̿5ra{2d>?I;?v⿑`Y?AGXiJV?vF+PK!1Y sym_rbio6.8_18_ma_pywtCoeffs.npyNUMPYv{'descr': '࿴3c2ޘÒH$A0?5xr?c~S㿴p`̿5ra{2d>?I;?v⿑`Y?AGXiJV?vF+PK!i.symw_rbio6.8_18_ma.npyNUMPYv{'descr': '8@J#[?aG,?&/??3o㿴p`̿b,W[d㿂2%*?ǘ'_? JʿdPG?7FvY%^dej-R2E`PK!|" sp1_rbio6.8_18_ma_pywtCoeffs.npyNUMPYv{'descr': '8@J#[?aG,?&/??3o㿴p`̿b,W[d㿂2%*?ǘ'_? JʿdPG?7FvY%^dej-R2E`PK!Hper_rbio6.8_18_ma.npyNUMPYv{'descr': '?uD `MI@?&_qh=PK!] sp0_rbio6.8_19_ma_pywtCoeffs.npyNUMPYv{'descr': '?uD `MI@?&_qh=PK!hsym_rbio6.8_19_ma.npyNUMPYv{'descr': 'sym_rbio6.8_19_md.npyNUMPYv{'descr': ' sym_rbio6.8_19_md_pywtCoeffs.npyNUMPYv{'descr': '?;tt?ȼ˧? ;l1PK!O8symw_rbio6.8_19_md.npyNUMPYv{'descr': '?;tt?ȼ˧? ;l1PK!O8!symw_rbio6.8_19_md_pywtCoeffs.npyNUMPYv{'descr': 'q*MdV34x &:PK!\usp1_rbio6.8_19_md.npyNUMPYv{'descr': 'q*MdV34x &:PK!\u sp1_rbio6.8_19_md_pywtCoeffs.npyNUMPYv{'descr': '.ZdS?`, eP?֡H俴;l1 ,?GTLS??=a# ?_{Ul~{c ?PK!2asym_rbio6.8_19_md.npyNUMPYv{'descr': 'uWg?/$Q?Pi9?+b[vwӐ`:)뿒)yi?KR? lKqPK!+g71!asym_rbio6.8_19_ma_pywtCoeffs.npyNUMPYv{'descr': '.ZdS?`, eP?֡H俴;l1 ,?GTLS??=a# ?_{Ul~{c ?PK!2!asym_rbio6.8_19_md_pywtCoeffs.npyNUMPYv{'descr': 'uWg?/$Q?Pi9?+b[vwӐ`:)뿒)yi?KR? lKqPK!쒀asymw_rbio6.8_19_ma.npyNUMPYv{'descr': '5|sp0_db1_3_ma.npyPK!$:sp0_db1_3_md.npyPK!e>5sp0_db1_3_ma_pywtCoeffs.npyPK!$sp0_db1_3_md_pywtCoeffs.npyPK!e>5 sym_db1_3_ma.npyPK!$H!sym_db1_3_md.npyPK!e>5"sym_db1_3_ma_pywtCoeffs.npyPK!$"sym_db1_3_md_pywtCoeffs.npyPK!p#symw_db1_3_ma.npyPK!@s>W$symw_db1_3_md.npyPK!p%symw_db1_3_ma_pywtCoeffs.npyPK!@s>%symw_db1_3_md_pywtCoeffs.npyPK!"[&ppd_db1_3_ma.npyPK!h'ppd_db1_3_md.npyPK!"[&(ppd_db1_3_ma_pywtCoeffs.npyPK!(ppd_db1_3_md_pywtCoeffs.npyPK!g)sp1_db1_3_ma.npyPK!v*sp1_db1_3_md.npyPK!g4+sp1_db1_3_ma_pywtCoeffs.npyPK!+sp1_db1_3_md_pywtCoeffs.npyPK!e>5,per_db1_3_ma.npyPK!$-per_db1_3_md.npyPK!e>5B.per_db1_3_ma_pywtCoeffs.npyPK!$ /per_db1_3_md_pywtCoeffs.npyPK! /asym_db1_3_ma.npyPK!X ߐ0asym_db1_3_md.npyPK! R1asym_db1_3_ma_pywtCoeffs.npyPK!X ߐ2asym_db1_3_md_pywtCoeffs.npyPK!g2asymw_db1_3_ma.npyPK!3asymw_db1_3_md.npyPK!gf4asymw_db1_3_ma_pywtCoeffs.npyPK!15asymw_db1_3_md_pywtCoeffs.npyPK!S;~5zpd_db2_4_ma.npyPK!p6zpd_db2_4_md.npyPK!27zpd_db2_4_ma_pywtCoeffs.npyPK!1Y8zpd_db2_4_md_pywtCoeffs.npyPK!bq*9sp0_db2_4_ma.npyPK!4֘9sp0_db2_4_md.npyPK!\:sp0_db2_4_ma_pywtCoeffs.npyPK!%/;sp0_db2_4_md_pywtCoeffs.npyPK! aX<sym_db2_4_ma.npyPK!3 =sym_db2_4_md.npyPK!D=sym_db2_4_ma_pywtCoeffs.npyPK!5 >sym_db2_4_md_pywtCoeffs.npyPK!BMI?symw_db2_4_ma.npyPK!(M@symw_db2_4_md.npyPK!Asymw_db2_4_ma_pywtCoeffs.npyPK!ZзAsymw_db2_4_md_pywtCoeffs.npyPK!ĴBppd_db2_4_ma.npyPK!% C~Cppd_db2_4_md.npyPK!"DDppd_db2_4_ma_pywtCoeffs.npyPK!s Eppd_db2_4_md_pywtCoeffs.npyPK!'Esp1_db2_4_ma.npyPK!VAZFsp1_db2_4_md.npyPK!qrGsp1_db2_4_ma_pywtCoeffs.npyPK!]0CHsp1_db2_4_md_pywtCoeffs.npyPK!E Iper_db2_4_ma.npyPK!Jm Iper_db2_4_md.npyPK!LlQJper_db2_4_ma_pywtCoeffs.npyPK! tҐYKper_db2_4_md_pywtCoeffs.npyPK!ډ2T"Lasym_db2_4_ma.npyPK!As'Lasym_db2_4_md.npyPK!~Masym_db2_4_ma_pywtCoeffs.npyPK!EhNasym_db2_4_md_pywtCoeffs.npyPK!4ϘTOasymw_db2_4_ma.npyPK!y5Pasymw_db2_4_md.npyPK! EPasymw_db2_4_ma_pywtCoeffs.npyPK!dQasymw_db2_4_md_pywtCoeffs.npyPK!mGЩRzpd_db2_5_ma.npyPK!0xXSzpd_db2_5_md.npyPK!ff&Tzpd_db2_5_ma_pywtCoeffs.npyPK!fs]Tzpd_db2_5_md_pywtCoeffs.npyPK!(鷠Usp0_db2_5_ma.npyPK!ZVsp0_db2_5_md.npyPK!eptWsp0_db2_5_ma_pywtCoeffs.npyPK!ד~AMXsp0_db2_5_md_pywtCoeffs.npyPK!&Ysym_db2_5_ma.npyPK!IMmYsym_db2_5_md.npyPK!ڧZsym_db2_5_ma_pywtCoeffs.npyPK!pӑ[sym_db2_5_md_pywtCoeffs.npyPK!wt\symw_db2_5_ma.npyPK!OC]symw_db2_5_md.npyPK! P^symw_db2_5_ma_pywtCoeffs.npyPK!Wo^symw_db2_5_md_pywtCoeffs.npyPK!4ϖ_ppd_db2_5_ma.npyPK!K `ppd_db2_5_md.npyPK!8bappd_db2_5_ma_pywtCoeffs.npyPK!t/;bppd_db2_5_md_pywtCoeffs.npyPK!-Icsp1_db2_5_ma.npyPK! {csp1_db2_5_md.npyPK!Ӡdsp1_db2_5_ma_pywtCoeffs.npyPK!aesp1_db2_5_md_pywtCoeffs.npyPK!]bfper_db2_5_ma.npyPK!N_(gper_db2_5_md.npyPK!;gper_db2_5_ma_pywtCoeffs.npyPK!Fhper_db2_5_md_pywtCoeffs.npyPK!8iasym_db2_5_ma.npyPK!]_jasym_db2_5_md.npyPK!\Ġ.kasym_db2_5_ma_pywtCoeffs.npyPK!Ǡlasym_db2_5_md_pywtCoeffs.npyPK!{9lasymw_db2_5_ma.npyPK!ymasymw_db2_5_md.npyPK!nasymw_db2_5_ma_pywtCoeffs.npyPK!&M]oasymw_db2_5_md_pywtCoeffs.npyPK!'Ҩ8pzpd_db3_6_ma.npyPK!kqzpd_db3_6_md.npyPK!s2qzpd_db3_6_ma_pywtCoeffs.npyPK!orrzpd_db3_6_md_pywtCoeffs.npyPK!߇Ussp0_db3_6_ma.npyPK!#|tsp0_db3_6_md.npyPK!aPͨRusp0_db3_6_ma_pywtCoeffs.npyPK!E 3vsp0_db3_6_md_pywtCoeffs.npyPK!(wsym_db3_6_ma.npyPK!Wcwsym_db3_6_md.npyPK!mxsym_db3_6_ma_pywtCoeffs.npyPK!7#ysym_db3_6_md_pywtCoeffs.npyPK!!zsymw_db3_6_ma.npyPK!0Y{symw_db3_6_md.npyPK!5Yu0|symw_db3_6_ma_pywtCoeffs.npyPK!#{}symw_db3_6_md_pywtCoeffs.npyPK!eG}ppd_db3_6_ma.npyPK!G̨~ppd_db3_6_md.npyPK!eppd_db3_6_ma_pywtCoeffs.npyPK!ͨppd_db3_6_md_pywtCoeffs.npyPK!6bsp1_db3_6_ma.npyPK!V48sp1_db3_6_md.npyPK!Csp1_db3_6_ma_pywtCoeffs.npyPK!~-sp1_db3_6_md_pywtCoeffs.npyPK! +Єper_db3_6_ma.npyPK!b>per_db3_6_md.npyPK!H1\per_db3_6_ma_pywtCoeffs.npyPK!O-per_db3_6_md_pywtCoeffs.npyPK!'2asym_db3_6_ma.npyPK!Ոasym_db3_6_md.npyPK!OAJyasym_db3_6_ma_pywtCoeffs.npyPK!fasym_db3_6_md_pywtCoeffs.npyPK!vEpasymw_db3_6_ma.npyPK!)Hasymw_db3_6_md.npyPK!Ĩ asymw_db3_6_ma_pywtCoeffs.npyPK!casymw_db3_6_md_pywtCoeffs.npyPK! UWzpd_db3_7_ma.npyPK!N԰ďzpd_db3_7_md.npyPK!޿Lzpd_db3_7_ma_pywtCoeffs.npyPK!Ӱzpd_db3_7_md_pywtCoeffs.npyPK!X/Stsp0_db3_7_ma.npyPK!{uRsp0_db3_7_md.npyPK!uC0sp0_db3_7_ma_pywtCoeffs.npyPK!^%sp0_db3_7_md_pywtCoeffs.npyPK!yװsym_db3_7_ma.npyPK!ǰsym_db3_7_md.npyPK!{2sym_db3_7_ma_pywtCoeffs.npyPK!Ssym_db3_7_md_pywtCoeffs.npyPK!kqsymw_db3_7_ma.npyPK!&osymw_db3_7_md.npyPK!dD2-Nsymw_db3_7_ma_pywtCoeffs.npyPK!(8symw_db3_7_md_pywtCoeffs.npyPK! U"ppd_db3_7_ma.npyPK! Pppd_db3_7_md.npyPK! *A7ޞppd_db3_7_ma_pywtCoeffs.npyPK!ǟppd_db3_7_md_pywtCoeffs.npyPK!]2sp1_db3_7_ma.npyPK!m'ssp1_db3_7_md.npyPK!zlsp1_db3_7_ma_pywtCoeffs.npyPK!5hUsp1_db3_7_md_pywtCoeffs.npyPK!rk>per_db3_7_ma.npyPK!8 } per_db3_7_md.npyPK!,h1ڥper_db3_7_ma_pywtCoeffs.npyPK!'$Rper_db3_7_md_pywtCoeffs.npyPK!I⮰asym_db3_7_ma.npyPK!zkasym_db3_7_md.npyPK!OȰJasym_db3_7_ma_pywtCoeffs.npyPK!^64asym_db3_7_md_pywtCoeffs.npyPK!f2asymw_db3_7_ma.npyPK!aasymw_db3_7_md.npyPK!]fiެasymw_db3_7_ma_pywtCoeffs.npyPK!!԰ɭasymw_db3_7_md_pywtCoeffs.npyPK!#zpd_db4_8_ma.npyPK!b4zpd_db4_8_md.npyPK!\;kzpd_db4_8_ma_pywtCoeffs.npyPK!eqzpd_db4_8_md_pywtCoeffs.npyPK!J`bsp0_db4_8_ma.npyPK!ԚKHsp0_db4_8_md.npyPK!=#D.sp0_db4_8_ma_pywtCoeffs.npyPK!0Ksp0_db4_8_md_pywtCoeffs.npyPK! gsym_db4_8_ma.npyPK!sym_db4_8_md.npyPK!D`ܷsym_db4_8_ma_pywtCoeffs.npyPK!v͸sym_db4_8_md_pywtCoeffs.npyPK!҂xsymw_db4_8_ma.npyPK!܇symw_db4_8_md.npyPK!7\"symw_db4_8_ma_pywtCoeffs.npyPK!&~symw_db4_8_md_pywtCoeffs.npyPK!Iĸpppd_db4_8_ma.npyPK!DVppd_db4_8_md.npyPK!;><ppd_db4_8_ma_pywtCoeffs.npyPK!6-ppd_db4_8_md_pywtCoeffs.npyPK!lkmsp1_db4_8_ma.npyPK!Bsp1_db4_8_md.npyPK!>,Ÿsp1_db4_8_ma_pywtCoeffs.npyPK!2sp1_db4_8_md_pywtCoeffs.npyPK!per_db4_8_ma.npyPK!vFSper_db4_8_md.npyPK!베hper_db4_8_ma_pywtCoeffs.npyPK!ƭAper_db4_8_md_pywtCoeffs.npyPK!m@asym_db4_8_ma.npyPK!Zwgasym_db4_8_md.npyPK!%asym_db4_8_ma_pywtCoeffs.npyPK!c̥masym_db4_8_md_pywtCoeffs.npyPK! vbasymw_db4_8_ma.npyPK!!8asymw_db4_8_md.npyPK!Ōasymw_db4_8_ma_pywtCoeffs.npyPK!æasymw_db4_8_md_pywtCoeffs.npyPK!zpd_db4_9_ma.npyPK!_ pzpd_db4_9_md.npyPK!,^zpd_db4_9_ma_pywtCoeffs.npyPK!ɹeWzpd_db4_9_md_pywtCoeffs.npyPK!91%Psp0_db4_9_ma.npyPK!qA>sp0_db4_9_md.npyPK!,sp0_db4_9_ma_pywtCoeffs.npyPK!J%sp0_db4_9_md_pywtCoeffs.npyPK!d/sym_db4_9_ma.npyPK!2DC sym_db4_9_md.npyPK!tsym_db4_9_ma_pywtCoeffs.npyPK!]sym_db4_9_md_pywtCoeffs.npyPK!6"symw_db4_9_ma.npyPK!ʲsymw_db4_9_md.npyPK!v;ҙsymw_db4_9_ma_pywtCoeffs.npyPK!zsymw_db4_9_md_pywtCoeffs.npyPK!Rppd_db4_9_ma.npyPK!Hppd_db4_9_md.npyPK!ݎOppd_db4_9_ma_pywtCoeffs.npyPK!t6Rppd_db4_9_md_pywtCoeffs.npyPK!7 nsp1_db4_9_ma.npyPK! tKzsp1_db4_9_md.npyPK!0%hsp1_db4_9_ma_pywtCoeffs.npyPK!0x<asp1_db4_9_md_pywtCoeffs.npyPK!HZper_db4_9_ma.npyPK!Ec!0per_db4_9_md.npyPK!Tper_db4_9_ma_pywtCoeffs.npyPK!csEper_db4_9_md_pywtCoeffs.npyPK!G+asym_db4_9_ma.npyPK!!طasym_db4_9_md.npyPK!zaasym_db4_9_ma_pywtCoeffs.npyPK!asym_db4_9_md_pywtCoeffs.npyPK!asymw_db4_9_ma.npyPK!-asymw_db4_9_md.npyPK!ˎzasymw_db4_9_ma_pywtCoeffs.npyPK!^<uasymw_db4_9_md_pywtCoeffs.npyPK!rpzpd_db5_10_ma.npyPK!Zgzpd_db5_10_md.npyPK!R^zpd_db5_10_ma_pywtCoeffs.npyPK!g}`zpd_db5_10_md_pywtCoeffs.npyPK!r$bsp0_db5_10_ma.npyPK!umYsp0_db5_10_md.npyPK!Psp0_db5_10_ma_pywtCoeffs.npyPK!)_Rsp0_db5_10_md_pywtCoeffs.npyPK! Tsym_db5_10_ma.npyPK!MKsym_db5_10_md.npyPK!,xBsym_db5_10_ma_pywtCoeffs.npyPK!.5PDsym_db5_10_md_pywtCoeffs.npyPK!I Fsymw_db5_10_ma.npyPK!>symw_db5_10_md.npyPK!_6symw_db5_10_ma_pywtCoeffs.npyPK!eg9symw_db5_10_md_pywtCoeffs.npyPK!P<ppd_db5_10_ma.npyPK!k"3ppd_db5_10_md.npyPK!Yx 5*ppd_db5_10_ma_pywtCoeffs.npyPK!V],ppd_db5_10_md_pywtCoeffs.npyPK!9].sp1_db5_10_ma.npyPK!ܳC%sp1_db5_10_md.npyPK!eisp1_db5_10_ma_pywtCoeffs.npyPK!ѿsp1_db5_10_md_pywtCoeffs.npyPK!t per_db5_10_ma.npyPK!tA per_db5_10_md.npyPK!2oƨ per_db5_10_ma_pywtCoeffs.npyPK!kԨ per_db5_10_md_pywtCoeffs.npyPK!w asym_db5_10_ma.npyPK!! asym_db5_10_md.npyPK!asym_db5_10_ma_pywtCoeffs.npyPK!;Tasym_db5_10_md_pywtCoeffs.npyPK!Fasymw_db5_10_ma.npyPK!`_asymw_db5_10_md.npyPK!} [zasymw_db5_10_ma_pywtCoeffs.npyPK!R~asymw_db5_10_md_pywtCoeffs.npyPK!+zpd_db5_11_ma.npyPK!)zpd_db5_11_md.npyPK!nzpd_db5_11_ma_pywtCoeffs.npyPK!Izpd_db5_11_md_pywtCoeffs.npyPK!V2sp0_db5_11_ma.npyPK!hsp0_db5_11_md.npyPK!kLsp0_db5_11_ma_pywtCoeffs.npyPK!\3sp0_db5_11_md_pywtCoeffs.npyPK!_xsym_db5_11_ma.npyPK!v(sym_db5_11_md.npyPK!$sym_db5_11_ma_pywtCoeffs.npyPK![ `Qsym_db5_11_md_pywtCoeffs.npyPK!) symw_db5_11_ma.npyPK!bH!symw_db5_11_md.npyPK!3m"symw_db5_11_ma_pywtCoeffs.npyPK!=#symw_db5_11_md_pywtCoeffs.npyPK!mIu$ppd_db5_11_ma.npyPK!R%ppd_db5_11_md.npyPK!9Z`&ppd_db5_11_ma_pywtCoeffs.npyPK! 'ppd_db5_11_md_pywtCoeffs.npyPK!wW(sp1_db5_11_ma.npyPK!q)sp1_db5_11_md.npyPK!h~D*sp1_db5_11_ma_pywtCoeffs.npyPK!ڑ=+sp1_db5_11_md_pywtCoeffs.npyPK!䆎%,per_db5_11_ma.npyPK!$ߏ-per_db5_11_md.npyPK!`u/.per_db5_11_ma_pywtCoeffs.npyPK!OQ/per_db5_11_md_pywtCoeffs.npyPK!CY$`0asym_db5_11_ma.npyPK!#!21asym_db5_11_md.npyPK!ga2asym_db5_11_ma_pywtCoeffs.npyPK!Ʌ3asym_db5_11_md_pywtCoeffs.npyPK!X?4asymw_db5_11_ma.npyPK!*5asymw_db5_11_md.npyPK!ˈI%6asymw_db5_11_ma_pywtCoeffs.npyPK!+i7asymw_db5_11_md_pywtCoeffs.npyPK!֣_8zpd_db6_12_ma.npyPK!,@9zpd_db6_12_md.npyPK!NV&:zpd_db6_12_ma_pywtCoeffs.npyPK!=;zpd_db6_12_md_pywtCoeffs.npyPK!0<sp0_db6_12_ma.npyPK!ݭE=sp0_db6_12_md.npyPK!rw>_>sp0_db6_12_ma_pywtCoeffs.npyPK!p@sp0_db6_12_md_pywtCoeffs.npyPK! WAsym_db6_12_ma.npyPK!*hBsym_db6_12_md.npyPK!t&Csym_db6_12_ma_pywtCoeffs.npyPK!.K8Dsym_db6_12_md_pywtCoeffs.npyPK!g+MJEsymw_db6_12_ma.npyPK!];RFsymw_db6_12_md.npyPK!YFZGsymw_db6_12_ma_pywtCoeffs.npyPK!4mHsymw_db6_12_md_pywtCoeffs.npyPK!ӒU_Ippd_db6_12_ma.npyPK!3*Jppd_db6_12_md.npyPK!-%Kppd_db6_12_ma_pywtCoeffs.npyPK!|TLppd_db6_12_md_pywtCoeffs.npyPK!Msp1_db6_12_ma.npyPK!icNsp1_db6_12_md.npyPK!FOsp1_db6_12_ma_pywtCoeffs.npyPK!S3Psp1_db6_12_md_pywtCoeffs.npyPK!0Qper_db6_12_ma.npyPK!ҀRper_db6_12_md.npyPK!ḛSper_db6_12_ma_pywtCoeffs.npyPK!`Tper_db6_12_md_pywtCoeffs.npyPK!X|GvUasym_db6_12_ma.npyPK!H)W~Vasym_db6_12_md.npyPK!5y}Wasym_db6_12_ma_pywtCoeffs.npyPK!Px[Xasym_db6_12_md_pywtCoeffs.npyPK!UYasymw_db6_12_ma.npyPK!p"ДZasymw_db6_12_md.npyPK!l[asymw_db6_12_ma_pywtCoeffs.npyPK!pկ\asymw_db6_12_md_pywtCoeffs.npyPK!F[0]zpd_db6_13_ma.npyPK!o^zpd_db6_13_md.npyPK!2*٘`zpd_db6_13_ma_pywtCoeffs.npyPK!gX^azpd_db6_13_md_pywtCoeffs.npyPK!8bsp0_db6_13_ma.npyPK!IHGcsp0_db6_13_md.npyPK!Ԏ9Vdsp0_db6_13_ma_pywtCoeffs.npyPK!!Phpesp0_db6_13_md_pywtCoeffs.npyPK!8fsym_db6_13_ma.npyPK!bgsym_db6_13_md.npyPK!hsym_db6_13_ma_pywtCoeffs.npyPK!2isym_db6_13_md_pywtCoeffs.npyPK!ݾjsymw_db6_13_ma.npyPK!^%Jksymw_db6_13_md.npyPK!Plsymw_db6_13_ma_pywtCoeffs.npyPK!nsymw_db6_13_md_pywtCoeffs.npyPK!r$}p2oppd_db6_13_ma.npyPK! 4LnApppd_db6_13_md.npyPK!єPqppd_db6_13_ma_pywtCoeffs.npyPK!Lfjrppd_db6_13_md_pywtCoeffs.npyPK!9ssp1_db6_13_ma.npyPK!Qtsp1_db6_13_md.npyPK! _usp1_db6_13_ma_pywtCoeffs.npyPK!+F57vsp1_db6_13_md_pywtCoeffs.npyPK!CEPwper_db6_13_ma.npyPK!g xper_db6_13_md.npyPK!9yper_db6_13_ma_pywtCoeffs.npyPK!:#L;zper_db6_13_md_pywtCoeffs.npyPK!U{asym_db6_13_ma.npyPK!,@|asym_db6_13_md.npyPK!E}asym_db6_13_ma_pywtCoeffs.npyPK!~asym_db6_13_md_pywtCoeffs.npyPK!vasymw_db6_13_ma.npyPK!h ^asymw_db6_13_md.npyPK!C-Kasymw_db6_13_ma_pywtCoeffs.npyPK!Wpasymw_db6_13_md_pywtCoeffs.npyPK!68zpd_db7_14_ma.npyPK!Ozpd_db7_14_md.npyPK!zϟafzpd_db7_14_ma_pywtCoeffs.npyPK!KWzpd_db7_14_md_pywtCoeffs.npyPK!{H?sp0_db7_14_ma.npyPK!MWsp0_db7_14_md.npyPK!_H؊sp0_db7_14_ma_pywtCoeffs.npyPK!'sp0_db7_14_md_pywtCoeffs.npyPK!vsym_db7_14_ma.npyPK!_3sym_db7_14_md.npyPK!Jsym_db7_14_ma_pywtCoeffs.npyPK!>hlsym_db7_14_md_pywtCoeffs.npyPK!Dysymw_db7_14_ma.npyPK!bx8symw_db7_14_md.npyPK!`symw_db7_14_ma_pywtCoeffs.npyPK!Kd4symw_db7_14_md_pywtCoeffs.npyPK!Sy{ppd_db7_14_ma.npyPK!U,VTppd_db7_14_md.npyPK!j2ppd_db7_14_ma_pywtCoeffs.npyPK!\5nTppd_db7_14_md_pywtCoeffs.npyPK!&^Qvsp1_db7_14_ma.npyPK!Csp1_db7_14_md.npyPK!2,rsp1_db7_14_ma_pywtCoeffs.npyPK!b Ɲsp1_db7_14_md_pywtCoeffs.npyPK!~sԙper_db7_14_ma.npyPK!۸ϟper_db7_14_md.npyPK!Jper_db7_14_ma_pywtCoeffs.npyPK! per_db7_14_md_pywtCoeffs.npyPK!\3asym_db7_14_ma.npyPK!֔asym_db7_14_md.npyPK!B^ʤasym_db7_14_ma_pywtCoeffs.npyPK!fq~asym_db7_14_md_pywtCoeffs.npyPK!Pasymw_db7_14_ma.npyPK!ޯ)asymw_db7_14_md.npyPK!IBasymw_db7_14_ma_pywtCoeffs.npyPK!`yܓfasymw_db7_14_md_pywtCoeffs.npyPK!^*azpd_db7_15_ma.npyPK!Nzpd_db7_15_md.npyPK!ȭzpd_db7_15_ma_pywtCoeffs.npyPK!/zpd_db7_15_md_pywtCoeffs.npyPK!'sp0_db7_15_ma.npyPK!!;sp0_db7_15_md.npyPK!2Zsp0_db7_15_ma_pywtCoeffs.npyPK!ϫosp0_db7_15_md_pywtCoeffs.npyPK!ysym_db7_15_ma.npyPK!͵sym_db7_15_md.npyPK!6sym_db7_15_ma_pywtCoeffs.npyPK![sym_db7_15_md_pywtCoeffs.npyPK!@symw_db7_15_ma.npyPK!S`symw_db7_15_md.npyPK!9symw_db7_15_ma_pywtCoeffs.npyPK!Xsymw_db7_15_md_pywtCoeffs.npyPK!vֽppd_db7_15_ma.npyPK!-ppd_db7_15_md.npyPK!gRppd_db7_15_ma_pywtCoeffs.npyPK!w>ppd_db7_15_md_pywtCoeffs.npyPK!ZF.hsp1_db7_15_ma.npyPK!e;sp1_db7_15_md.npyPK!>sp1_db7_15_ma_pywtCoeffs.npyPK!/sp1_db7_15_md_pywtCoeffs.npyPK!#per_db7_15_ma.npyPK!+݄per_db7_15_md.npyPK!\rIper_db7_15_ma_pywtCoeffs.npyPK!CIper_db7_15_md_pywtCoeffs.npyPK!asym_db7_15_ma.npyPK!ѭasym_db7_15_md.npyPK! asym_db7_15_ma_pywtCoeffs.npyPK!.7asym_db7_15_md_pywtCoeffs.npyPK!-Qenbasymw_db7_15_ma.npyPK!Wsasymw_db7_15_md.npyPK!aasymw_db7_15_ma_pywtCoeffs.npyPK!3uasymw_db7_15_md_pywtCoeffs.npyPK!lzpd_db8_16_ma.npyPK!171 #zpd_db8_16_md.npyPK! Jzpd_db8_16_ma_pywtCoeffs.npyPK!?|zpd_db8_16_md_pywtCoeffs.npyPK!_qsp0_db8_16_ma.npyPK!`l;(sp0_db8_16_md.npyPK!|sp0_db8_16_ma_pywtCoeffs.npyPK!B۩.sp0_db8_16_md_pywtCoeffs.npyPK!h`sym_db8_16_ma.npyPK!Nsym_db8_16_md.npyPK!ijGsym_db8_16_ma_pywtCoeffs.npyPK!"Jsym_db8_16_md_pywtCoeffs.npyPK!!.symw_db8_16_ma.npyPK!b{:symw_db8_16_md.npyPK!tcbsymw_db8_16_ma_pywtCoeffs.npyPK!osymw_db8_16_md_pywtCoeffs.npyPK!qDppd_db8_16_ma.npyPK!C~ppd_db8_16_md.npyPK!ppd_db8_16_ma_pywtCoeffs.npyPK!Hppd_db8_16_md_pywtCoeffs.npyPK!^zsp1_db8_16_ma.npyPK!3sp1_db8_16_md.npyPK!!sp1_db8_16_ma_pywtCoeffs.npyPK!oC1sp1_db8_16_md_pywtCoeffs.npyPK!!&,per_db8_16_ma.npyPK!uper_db8_16_md.npyPK!7޸ per_db8_16_ma_pywtCoeffs.npyPK!kper_db8_16_md_pywtCoeffs.npyPK!Պ25asym_db8_16_ma.npyPK!9$&asym_db8_16_md.npyPK!q9Nasym_db8_16_ma_pywtCoeffs.npyPK!5Kasym_db8_16_md_pywtCoeffs.npyPK!3 asymw_db8_16_ma.npyPK!(0asymw_db8_16_md.npyPK! V<asymw_db8_16_ma_pywtCoeffs.npyPK!FW:asymw_db8_16_md_pywtCoeffs.npyPK!Inzpd_db8_17_ma.npyPK!}!zpd_db8_17_md.npyPK!E`zpd_db8_17_ma_pywtCoeffs.npyPK!8>zpd_db8_17_md_pywtCoeffs.npyPK!O7@sp0_db8_17_ma.npyPK!7osp0_db8_17_md.npyPK!Adsp0_db8_17_ma_pywtCoeffs.npyPK!^sp0_db8_17_md_pywtCoeffs.npyPK!_wQsym_db8_17_ma.npyPK!gnAsym_db8_17_md.npyPK!Tp sym_db8_17_ma_pywtCoeffs.npyPK!&? sym_db8_17_md_pywtCoeffs.npyPK!Z symw_db8_17_ma.npyPK!  symw_db8_17_md.npyPK!OGDsymw_db8_17_ma_pywtCoeffs.npyPK!Isymw_db8_17_md_pywtCoeffs.npyPK!j$E5ppd_db8_17_ma.npyPK!_ppd_db8_17_md.npyPK!Qoppd_db8_17_ma_pywtCoeffs.npyPK!|9B'Rppd_db8_17_md_pywtCoeffs.npyPK! Nsp1_db8_17_ma.npyPK!հC9sp1_db8_17_md.npyPK!Ssp1_db8_17_ma_pywtCoeffs.npyPK!͂k$sp1_db8_17_md_pywtCoeffs.npyPK!M^per_db8_17_ma.npyPK!Uper_db8_17_md.npyPK!LLper_db8_17_ma_pywtCoeffs.npyPK!?ܴNper_db8_17_md_pywtCoeffs.npyPK!Pasym_db8_17_ma.npyPK!4asym_db8_17_md.npyPK!m asym_db8_17_ma_pywtCoeffs.npyPK!!asym_db8_17_md_pywtCoeffs.npyPK!÷&#asymw_db8_17_ma.npyPK!# W$asymw_db8_17_md.npyPK!7%asymw_db8_17_ma_pywtCoeffs.npyPK!&asymw_db8_17_md_pywtCoeffs.npyPK!E(zpd_db9_18_ma.npyPK!=%7)zpd_db9_18_md.npyPK!3=n*zpd_db9_18_ma_pywtCoeffs.npyPK!o+zpd_db9_18_md_pywtCoeffs.npyPK!,sp0_db9_18_ma.npyPK!}<<).sp0_db9_18_md.npyPK!vq6`/sp0_db9_18_ma_pywtCoeffs.npyPK!0sp0_db9_18_md_pywtCoeffs.npyPK!s21sym_db9_18_ma.npyPK!~b3sym_db9_18_md.npyPK!uR4sym_db9_18_ma_pywtCoeffs.npyPK!25sym_db9_18_md_pywtCoeffs.npyPK!yV6symw_db9_18_ma.npyPK!cE8symw_db9_18_md.npyPK!ƍF9symw_db9_18_ma_pywtCoeffs.npyPK!%-(:symw_db9_18_md_pywtCoeffs.npyPK!7F;ppd_db9_18_ma.npyPK!Q j=ppd_db9_18_md.npyPK!8:>ppd_db9_18_ma_pywtCoeffs.npyPK!WMU|?ppd_db9_18_md_pywtCoeffs.npyPK!Lg,@sp1_db9_18_ma.npyPK!?Asp1_db9_18_md.npyPK!,Csp1_db9_18_ma_pywtCoeffs.npyPK!ʽnDsp1_db9_18_md_pywtCoeffs.npyPK! NEper_db9_18_ma.npyPK!cwFper_db9_18_md.npyPK!R|Gper_db9_18_ma_pywtCoeffs.npyPK!mHper_db9_18_md_pywtCoeffs.npyPK!2Iasym_db9_18_ma.npyPK!PKJasym_db9_18_md.npyPK!2s:Lasym_db9_18_ma_pywtCoeffs.npyPK!#UUMasym_db9_18_md_pywtCoeffs.npyPK!/jNasymw_db9_18_ma.npyPK!ကOasymw_db9_18_md.npyPK!OyHG Qasymw_db9_18_ma_pywtCoeffs.npyPK!CNRasymw_db9_18_md_pywtCoeffs.npyPK!足 Szpd_db9_19_ma.npyPK! ЮTzpd_db9_19_md.npyPK!sOVzpd_db9_19_ma_pywtCoeffs.npyPK!@ZWzpd_db9_19_md_pywtCoeffs.npyPK!TXsp0_db9_19_ma.npyPK!^@Ysp0_db9_19_md.npyPK!;"[sp0_db9_19_ma_pywtCoeffs.npyPK!l\sp0_db9_19_md_pywtCoeffs.npyPK!L]sym_db9_19_ma.npyPK! S ^sym_db9_19_md.npyPK!h(4`sym_db9_19_ma_pywtCoeffs.npyPK!C~asym_db9_19_md_pywtCoeffs.npyPK!Z\bsymw_db9_19_ma.npyPK!Gˌdsymw_db9_19_md.npyPK!NVšHesymw_db9_19_ma_pywtCoeffs.npyPK!fsymw_db9_19_md_pywtCoeffs.npyPK!`#Rgppd_db9_19_ma.npyPK!X9ippd_db9_19_md.npyPK!\jppd_db9_19_ma_pywtCoeffs.npyPK!‘kppd_db9_19_md_pywtCoeffs.npyPK!0lsp1_db9_19_ma.npyPK!J_U/nsp1_db9_19_md.npyPK!Gnosp1_db9_19_ma_pywtCoeffs.npyPK!!_)psp1_db9_19_md_pywtCoeffs.npyPK!`Nrper_db9_19_ma.npyPK! -"nsper_db9_19_md.npyPK!ۺwtper_db9_19_ma_pywtCoeffs.npyPK!j6 uper_db9_19_md_pywtCoeffs.npyPK!"vasym_db9_19_ma.npyPK!Twasym_db9_19_md.npyPK!qxasym_db9_19_ma_pywtCoeffs.npyPK!Ohyasym_db9_19_md_pywtCoeffs.npyPK!6a*{asymw_db9_19_ma.npyPK!^CZk|asymw_db9_19_md.npyPK!0}asymw_db9_19_ma_pywtCoeffs.npyPK!~asymw_db9_19_md_pywtCoeffs.npyPK!<Dzpd_db10_20_ma.npyPK!;7zpd_db10_20_md.npyPK!z7/Ԃzpd_db10_20_ma_pywtCoeffs.npyPK!N'zpd_db10_20_md_pywtCoeffs.npyPK!zsp0_db10_20_ma.npyPK!†sp0_db10_20_md.npyPK! sp0_db10_20_ma_pywtCoeffs.npyPK!;p]sp0_db10_20_md_pywtCoeffs.npyPK!Ursym_db10_20_ma.npyPK!9sym_db10_20_md.npyPK!.w@sym_db10_20_ma_pywtCoeffs.npyPK!7 Usym_db10_20_md_pywtCoeffs.npyPK!w /symw_db10_20_ma.npyPK!O/symw_db10_20_md.npyPK!:Lxsymw_db10_20_ma_pywtCoeffs.npyPK!A̓symw_db10_20_md_pywtCoeffs.npyPK!Lxd ppd_db10_20_ma.npyPK!Ohppd_db10_20_md.npyPK!IYppd_db10_20_ma_pywtCoeffs.npyPK!ʶppd_db10_20_md_pywtCoeffs.npyPK!nIVsp1_db10_20_ma.npyPK!PzMsp1_db10_20_md.npyPK!U\sp1_db10_20_ma_pywtCoeffs.npyPK!K9sp1_db10_20_md_pywtCoeffs.npyPK!$per_db10_20_ma.npyPK!!per_db10_20_md.npyPK!`per_db10_20_ma_pywtCoeffs.npyPK!ljMmper_db10_20_md_pywtCoeffs.npyPK!CDasym_db10_20_ma.npyPK!b6asym_db10_20_md.npyPK!Ts4asym_db10_20_ma_pywtCoeffs.npyPK!Œ.asym_db10_20_md_pywtCoeffs.npyPK!h|ܨasymw_db10_20_ma.npyPK!&asymw_db10_20_md.npyPK!Fpasymw_db10_20_ma_pywtCoeffs.npyPK!BŬasymw_db10_20_md_pywtCoeffs.npyPK!  zpd_db10_21_ma.npyPK! ry  jzpd_db10_21_md.npyPK!qc  zpd_db10_21_ma_pywtCoeffs.npyPK!<  zpd_db10_21_md_pywtCoeffs.npyPK!*I  psp0_db10_21_ma.npyPK!"Y2  sp0_db10_21_md.npyPK!MC  sp0_db10_21_ma_pywtCoeffs.npyPK!7  ksp0_db10_21_md_pywtCoeffs.npyPK!7  Ƹsym_db10_21_ma.npyPK!é  sym_db10_21_md.npyPK!  fsym_db10_21_ma_pywtCoeffs.npyPK!%^  sym_db10_21_md_pywtCoeffs.npyPK!  symw_db10_21_ma.npyPK!Gf@  msymw_db10_21_md.npyPK!'`  symw_db10_21_ma_pywtCoeffs.npyPK! N  symw_db10_21_md_pywtCoeffs.npyPK!/Q  vppd_db10_21_ma.npyPK!G  ppd_db10_21_md.npyPK!#  ppd_db10_21_ma_pywtCoeffs.npyPK! r  qppd_db10_21_md_pywtCoeffs.npyPK!  sp1_db10_21_ma.npyPK!ۺ  sp1_db10_21_md.npyPK!e  lsp1_db10_21_ma_pywtCoeffs.npyPK!6"6G  sp1_db10_21_md_pywtCoeffs.npyPK!GZ"per_db10_21_ma.npyPK!9d*per_db10_21_md.npyPK!\|m2per_db10_21_ma_pywtCoeffs.npyPK!Eper_db10_21_md_pywtCoeffs.npyPK!_  Xasym_db10_21_ma.npyPK!{  asym_db10_21_md.npyPK!Ù  asym_db10_21_ma_pywtCoeffs.npyPK!N|  Vasym_db10_21_md_pywtCoeffs.npyPK!lx  asymw_db10_21_ma.npyPK!  asymw_db10_21_md.npyPK!`  Vasymw_db10_21_ma_pywtCoeffs.npyPK!a  asymw_db10_21_md_pywtCoeffs.npyPK!}D((zpd_db11_22_ma.npyPK!4.((hzpd_db11_22_md.npyPK!cq((zpd_db11_22_ma_pywtCoeffs.npyPK!?((#zpd_db11_22_md_pywtCoeffs.npyPK!f+((sp0_db11_22_ma.npyPK!JvR((sp0_db11_22_md.npyPK!P" ((6sp0_db11_22_ma_pywtCoeffs.npyPK!FRV((sp0_db11_22_md_pywtCoeffs.npyPK!((sym_db11_22_ma.npyPK!t-<((Tsym_db11_22_md.npyPK!Zo((sym_db11_22_ma_pywtCoeffs.npyPK! u((sym_db11_22_md_pywtCoeffs.npyPK!TX((rsymw_db11_22_ma.npyPK!((symw_db11_22_md.npyPK!(($symw_db11_22_ma_pywtCoeffs.npyPK!c%((symw_db11_22_md_pywtCoeffs.npyPK!yKM((ppd_db11_22_ma.npyPK!!G((Dppd_db11_22_md.npyPK!0ɶ((ppd_db11_22_ma_pywtCoeffs.npyPK!>((ppd_db11_22_md_pywtCoeffs.npyPK!"4((bsp1_db11_22_ma.npyPK!((sp1_db11_22_md.npyPK!wf((sp1_db11_22_ma_pywtCoeffs.npyPK!~cd((usp1_db11_22_md_pywtCoeffs.npyPK!R."sper_db11_22_ma.npyPK!2bper_db11_22_md.npyPK!@per_db11_22_ma_pywtCoeffs.npyPK!ٓ6per_db11_22_md_pywtCoeffs.npyPK!B((asym_db11_22_ma.npyPK!2((gasym_db11_22_md.npyPK!i((asym_db11_22_ma_pywtCoeffs.npyPK!,Be(($asym_db11_22_md_pywtCoeffs.npyPK![((asymw_db11_22_ma.npyPK!I((asymw_db11_22_md.npyPK!A((< asymw_db11_22_ma_pywtCoeffs.npyPK!v(( asymw_db11_22_md_pywtCoeffs.npyPK!00 zpd_db11_23_ma.npyPK! PY[00fzpd_db11_23_md.npyPK!s00zpd_db11_23_ma_pywtCoeffs.npyPK!̙3001zpd_db11_23_md_pywtCoeffs.npyPK!u@00sp0_db11_23_ma.npyPK!=R00sp0_db11_23_md.npyPK!Y:00\sp0_db11_23_ma_pywtCoeffs.npyPK!00sp0_db11_23_md_pywtCoeffs.npyPK!`002sym_db11_23_ma.npyPK!o00sym_db11_23_md.npyPK!00sym_db11_23_ma_pywtCoeffs.npyPK!h00]sym_db11_23_md_pywtCoeffs.npyPK!D300symw_db11_23_ma.npyPK!<00)symw_db11_23_md.npyPK!t~00 symw_db11_23_ma_pywtCoeffs.npyPK!4۝00!symw_db11_23_md_pywtCoeffs.npyPK!E>00b#ppd_db11_23_ma.npyPK!q.00$ppd_db11_23_md.npyPK!200"&ppd_db11_23_ma_pywtCoeffs.npyPK!+00'ppd_db11_23_md_pywtCoeffs.npyPK!wp00(sp1_db11_23_ma.npyPK!h w00X*sp1_db11_23_md.npyPK!100+sp1_db11_23_ma_pywtCoeffs.npyPK!}:00#-sp1_db11_23_md_pywtCoeffs.npyPK!+c.per_db11_23_ma.npyPK!DL/per_db11_23_md.npyPK!-*0per_db11_23_ma_pywtCoeffs.npyPK!-1per_db11_23_md_pywtCoeffs.npyPK!5qU002asym_db11_23_ma.npyPK!uL00E4asym_db11_23_md.npyPK!3T005asym_db11_23_ma_pywtCoeffs.npyPK!Q007asym_db11_23_md_pywtCoeffs.npyPK!Z=00~8asymw_db11_23_ma.npyPK!m@009asymw_db11_23_md.npyPK!I00B;asymw_db11_23_ma_pywtCoeffs.npyPK!00<asymw_db11_23_md_pywtCoeffs.npyPK!88>zpd_db12_24_ma.npyPK!Vo 88?zpd_db12_24_md.npyPK!vO88@zpd_db12_24_ma_pywtCoeffs.npyPK!mI88_Bzpd_db12_24_md_pywtCoeffs.npyPK! 88Csp0_db12_24_ma.npyPK!x88:Esp0_db12_24_md.npyPK!c~88Fsp0_db12_24_ma_pywtCoeffs.npyPK!88Hsp0_db12_24_md_pywtCoeffs.npyPK!UZ88Isym_db12_24_ma.npyPK!488Jsym_db12_24_md.npyPK!V88XLsym_db12_24_ma_pywtCoeffs.npyPK!o488Msym_db12_24_md_pywtCoeffs.npyPK!w88>Osymw_db12_24_ma.npyPK!88Psymw_db12_24_md.npyPK!:0n88Rsymw_db12_24_ma_pywtCoeffs.npyPK!hS88Ssymw_db12_24_md_pywtCoeffs.npyPK!0*88Tppd_db12_24_ma.npyPK!i88`Vppd_db12_24_md.npyPK!өG88Wppd_db12_24_ma_pywtCoeffs.npyPK!W88;Yppd_db12_24_md_pywtCoeffs.npyPK!YeR88Zsp1_db12_24_ma.npyPK!88\sp1_db12_24_md.npyPK!GKkx88~]sp1_db12_24_ma_pywtCoeffs.npyPK!R)88^sp1_db12_24_md_pywtCoeffs.npyPK!)d`per_db12_24_ma.npyPK!8taper_db12_24_md.npyPK!Rbper_db12_24_ma_pywtCoeffs.npyPK!Tcper_db12_24_md_pywtCoeffs.npyPK!s88dasym_db12_24_ma.npyPK![t88#fasym_db12_24_md.npyPK!*L188gasym_db12_24_ma_pywtCoeffs.npyPK!88iasym_db12_24_md_pywtCoeffs.npyPK!7;r88tjasymw_db12_24_ma.npyPK!Sq88kasymw_db12_24_md.npyPK!ZZ 88Hmasymw_db12_24_ma_pywtCoeffs.npyPK!^g88nasymw_db12_24_md_pywtCoeffs.npyPK!؝@@2pzpd_db12_25_ma.npyPK!' @@qzpd_db12_25_md.npyPK!~J@@szpd_db12_25_ma_pywtCoeffs.npyPK! \@@tzpd_db12_25_md_pywtCoeffs.npyPK!asymw_db14_28_md.npyPK!:XX @asymw_db14_28_ma_pywtCoeffs.npyPK!fXXAasymw_db14_28_md_pywtCoeffs.npyPK!b``JCzpd_db14_29_ma.npyPK!i``Dzpd_db14_29_md.npyPK!F``jFzpd_db14_29_ma_pywtCoeffs.npyPK!=``Hzpd_db14_29_md_pywtCoeffs.npyPK!ӥ``Isp0_db14_29_ma.npyPK!c``0Ksp0_db14_29_md.npyPK!׫N``Lsp0_db14_29_ma_pywtCoeffs.npyPK!܅'#``[Nsp0_db14_29_md_pywtCoeffs.npyPK!L``Osym_db14_29_ma.npyPK!2``Qsym_db14_29_md.npyPK!3``Ssym_db14_29_ma_pywtCoeffs.npyPK!A}a``Tsym_db14_29_md_pywtCoeffs.npyPK!``LVsymw_db14_29_ma.npyPK!M``Wsymw_db14_29_md.npyPK!rA``nYsymw_db14_29_ma_pywtCoeffs.npyPK!Ӊ`` [symw_db14_29_md_pywtCoeffs.npyPK!‡``\ppd_db14_29_ma.npyPK!j9m``6^ppd_db14_29_md.npyPK!ζ/ ``_ppd_db14_29_ma_pywtCoeffs.npyPK!y``aappd_db14_29_md_pywtCoeffs.npyPK!``bsp1_db14_29_ma.npyPK!B``dsp1_db14_29_md.npyPK!|``fsp1_db14_29_ma_pywtCoeffs.npyPK!``gsp1_db14_29_md_pywtCoeffs.npyPK!BIJRiper_db14_29_ma.npyPK!H+mzjper_db14_29_md.npyPK!skper_db14_29_ma_pywtCoeffs.npyPK!hlper_db14_29_md_pywtCoeffs.npyPK!n``nasym_db14_29_ma.npyPK!B``oasym_db14_29_md.npyPK!̼u``*qasym_db14_29_ma_pywtCoeffs.npyPK!6``rasym_db14_29_md_pywtCoeffs.npyPK!V``btasymw_db14_29_ma.npyPK! h``uasymw_db14_29_md.npyPK!|``wasymw_db14_29_ma_pywtCoeffs.npyPK!xMt``#yasymw_db14_29_md_pywtCoeffs.npyPK!$Thhzzpd_db15_30_ma.npyPK!{hhX|zpd_db15_30_md.npyPK!rhh}zpd_db15_30_ma_pywtCoeffs.npyPK!Wתhhzpd_db15_30_md_pywtCoeffs.npyPK! Ohh6sp0_db15_30_ma.npyPK!|՜hh΂sp0_db15_30_md.npyPK!؃ghhfsp0_db15_30_ma_pywtCoeffs.npyPK!hh sp0_db15_30_md_pywtCoeffs.npyPK! hhsym_db15_30_ma.npyPK!јhhDsym_db15_30_md.npyPK!gBhh܊sym_db15_30_ma_pywtCoeffs.npyPK!-ʥhhsym_db15_30_md_pywtCoeffs.npyPK!>ihh"symw_db15_30_ma.npyPK!bhhsymw_db15_30_md.npyPK!q؆hhTsymw_db15_30_ma_pywtCoeffs.npyPK!#asym_db15_30_ma.npyPK!hhקasym_db15_30_md.npyPK!3Whhpasym_db15_30_ma_pywtCoeffs.npyPK!+hhasym_db15_30_md_pywtCoeffs.npyPK!Ahhasymw_db15_30_ma.npyPK!fhhRasymw_db15_30_md.npyPK!hhasymw_db15_30_ma_pywtCoeffs.npyPK!e:hhasymw_db15_30_md_pywtCoeffs.npyPK!\[pp6zpd_db15_31_ma.npyPK!^,ppִzpd_db15_31_md.npyPK!ppvzpd_db15_31_ma_pywtCoeffs.npyPK!7c Tpp!zpd_db15_31_md_pywtCoeffs.npyPK!8܁pp̹sp0_db15_31_ma.npyPK!/#&pplsp0_db15_31_md.npyPK!adpp sp0_db15_31_ma_pywtCoeffs.npyPK!ңppsp0_db15_31_md_pywtCoeffs.npyPK!1 ppbsym_db15_31_ma.npyPK!.]ppsym_db15_31_md.npyPK!M ppsym_db15_31_ma_pywtCoeffs.npyPK!*ppMsym_db15_31_md_pywtCoeffs.npyPK!pAppsymw_db15_31_ma.npyPK!(ppsymw_db15_31_md.npyPK!)Qcpp:symw_db15_31_ma_pywtCoeffs.npyPK! bppsymw_db15_31_md_pywtCoeffs.npyPK!"jEppppd_db15_31_ma.npyPK!@pp2ppd_db15_31_md.npyPK!nppppd_db15_31_ma_pywtCoeffs.npyPK!"pp}ppd_db15_31_md_pywtCoeffs.npyPK!v Npp(sp1_db15_31_ma.npyPK!,ppsp1_db15_31_md.npyPK!!pphsp1_db15_31_ma_pywtCoeffs.npyPK!FWppsp1_db15_31_md_pywtCoeffs.npyPK!2per_db15_31_ma.npyPK!RWper_db15_31_md.npyPK!\per_db15_31_ma_pywtCoeffs.npyPK!Yper_db15_31_md_pywtCoeffs.npyPK!.Zppasym_db15_31_ma.npyPK!xApp5asym_db15_31_md.npyPK!V3ppasym_db15_31_ma_pywtCoeffs.npyPK!2ppasym_db15_31_md_pywtCoeffs.npyPK!{pp.asymw_db15_31_ma.npyPK!Kgppasymw_db15_31_md.npyPK!pprasymw_db15_31_ma_pywtCoeffs.npyPK!ea1ppasymw_db15_31_md_pywtCoeffs.npyPK!Exxzpd_db16_32_ma.npyPK!^"Gxxtzpd_db16_32_md.npyPK! xxzpd_db16_32_ma_pywtCoeffs.npyPK!9xxzpd_db16_32_md_pywtCoeffs.npyPK!xFxxsp0_db16_32_ma.npyPK!73xx*sp0_db16_32_md.npyPK!+nxxsp0_db16_32_ma_pywtCoeffs.npyPK!xxsp0_db16_32_md_pywtCoeffs.npyPK!`,xx8sym_db16_32_ma.npyPK!IZDxxsym_db16_32_md.npyPK!{џxxsym_db16_32_ma_pywtCoeffs.npyPK!Tيxx;sym_db16_32_md_pywtCoeffs.npyPK!R(xxsymw_db16_32_ma.npyPK!xxsymw_db16_32_md.npyPK!qVxx@symw_db16_32_ma_pywtCoeffs.npyPK!O_xxsymw_db16_32_md_pywtCoeffs.npyPK!=f4xxppd_db16_32_ma.npyPK!>lxxP ppd_db16_32_md.npyPK!cj4 xx ppd_db16_32_ma_pywtCoeffs.npyPK!dcxx ppd_db16_32_md_pywtCoeffs.npyPK!sxx^sp1_db16_32_ma.npyPK!8xxsp1_db16_32_md.npyPK!%2xxsp1_db16_32_ma_pywtCoeffs.npyPK!a-xxasp1_db16_32_md_pywtCoeffs.npyPK!7}per_db16_32_ma.npyPK!t-Dper_db16_32_md.npyPK!!Ltper_db16_32_ma_pywtCoeffs.npyPK!Yelper_db16_32_md_pywtCoeffs.npyPK!!1xxasym_db16_32_ma.npyPK!Hxxasym_db16_32_md.npyPK!hxx<asym_db16_32_ma_pywtCoeffs.npyPK!`xxasym_db16_32_md_pywtCoeffs.npyPK!>xx asymw_db16_32_ma.npyPK!oxxN"asymw_db16_32_md.npyPK!Txx#asymw_db16_32_ma_pywtCoeffs.npyPK!@xx%asymw_db16_32_md_pywtCoeffs.npyPK!ɷb'zpd_db16_33_ma.npyPK!Td)zpd_db16_33_md.npyPK!ʩ*zpd_db16_33_ma_pywtCoeffs.npyPK!W%},zpd_db16_33_md_pywtCoeffs.npyPK!^,8.sp0_db16_33_ma.npyPK!u51/sp0_db16_33_md.npyPK!q1sp0_db16_33_ma_pywtCoeffs.npyPK!"ɀS3sp0_db16_33_md_pywtCoeffs.npyPK!y g5sym_db16_33_ma.npyPK!y6sym_db16_33_md.npyPK!#0[n8sym_db16_33_ma_pywtCoeffs.npyPK!\*h):sym_db16_33_md_pywtCoeffs.npyPK!t;symw_db16_33_ma.npyPK! =symw_db16_33_md.npyPK!U,F?symw_db16_33_ma_pywtCoeffs.npyPK!~_Asymw_db16_33_md_pywtCoeffs.npyPK!߫Bppd_db16_33_ma.npyPK!`nDppd_db16_33_md.npyPK!ҋFppd_db16_33_ma_pywtCoeffs.npyPK!r_Gppd_db16_33_md_pywtCoeffs.npyPK!앳Isp1_db16_33_ma.npyPK!wSDKsp1_db16_33_md.npyPK!u|)Lsp1_db16_33_ma_pywtCoeffs.npyPK!pjNsp1_db16_33_md_pywtCoeffs.npyPK!wJjPper_db16_33_ma.npyPK!|Qper_db16_33_md.npyPK!rRper_db16_33_ma_pywtCoeffs.npyPK!ˆ@Tper_db16_33_md_pywtCoeffs.npyPK!P`Uasym_db16_33_ma.npyPK!%d局Wasym_db16_33_md.npyPK!IXasym_db16_33_ma_pywtCoeffs.npyPK!QV~Zasym_db16_33_md_pywtCoeffs.npyPK!b:\asymw_db16_33_ma.npyPK!Tbր]asymw_db16_33_md.npyPK!yL܀_asymw_db16_33_ma_pywtCoeffs.npyPK!I~<[aasymw_db16_33_md_pywtCoeffs.npyPK!U czpd_db17_34_ma.npyPK!)=dzpd_db17_34_md.npyPK!jMfzpd_db17_34_ma_pywtCoeffs.npyPK!YwKhzpd_db17_34_md_pywtCoeffs.npyPK!n0jsp0_db17_34_ma.npyPK!rksp0_db17_34_md.npyPK! jz~msp0_db17_34_ma_pywtCoeffs.npyPK!">zAosp0_db17_34_md_pywtCoeffs.npyPK!zqsym_db17_34_ma.npyPK!&k[Lrsym_db17_34_md.npyPK!*ttsym_db17_34_ma_pywtCoeffs.npyPK!7vsym_db17_34_md_pywtCoeffs.npyPK! wsymw_db17_34_ma.npyPK!hysymw_db17_34_md.npyPK!a'l{symw_db17_34_ma_pywtCoeffs.npyPK!!0}symw_db17_34_md_pywtCoeffs.npyPK!bwLM~ppd_db17_34_ma.npyPK!k2Ԉppd_db17_34_md.npyPK!dppd_db17_34_ma_pywtCoeffs.npyPK!ճ'ppd_db17_34_md_pywtCoeffs.npyPK!E͈sp1_db17_34_ma.npyPK!8Psp1_db17_34_md.npyPK!t{{Zsp1_db17_34_ma_pywtCoeffs.npyPK!q͈sp1_db17_34_md_pywtCoeffs.npyPK!per_db17_34_ma.npyPK!per_db17_34_md.npyPK!yPper_db17_34_ma_pywtCoeffs.npyPK!per_db17_34_md_pywtCoeffs.npyPK!d,r֑asym_db17_34_ma.npyPK!o8asym_db17_34_md.npyPK!Hasym_db17_34_ma_pywtCoeffs.npyPK!uLj asym_db17_34_md_pywtCoeffs.npyPK!ΖИasymw_db17_34_ma.npyPK!nوasymw_db17_34_md.npyPK!܃FDasymw_db17_34_ma_pywtCoeffs.npyPK!-z asymw_db17_34_md_pywtCoeffs.npyPK!%ZǐΟzpd_db17_35_ma.npyPK!$ygȐzpd_db17_35_md.npyPK!HENzpd_db17_35_ma_pywtCoeffs.npyPK!~Nꓐzpd_db17_35_md_pywtCoeffs.npyPK!]7Isp0_db17_35_ma.npyPK!Gsp0_db17_35_md.npyPK!ؐdsp0_db17_35_ma_pywtCoeffs.npyPK!Mq/sp0_db17_35_md_pywtCoeffs.npyPK!U&אsym_db17_35_ma.npyPK!9~sym_db17_35_md.npyPK!kzsym_db17_35_ma_pywtCoeffs.npyPK!QT̐Esym_db17_35_md_pywtCoeffs.npyPK!xxosymw_db17_35_ma.npyPK!KplѶsymw_db17_35_md.npyPK!ߐsymw_db17_35_ma_pywtCoeffs.npyPK!L/^symw_db17_35_md_pywtCoeffs.npyPK!ݶ*ppd_db17_35_ma.npyPK!{xppd_db17_35_md.npyPK!7|Dppd_db17_35_ma_pywtCoeffs.npyPK!柿͐uppd_db17_35_md_pywtCoeffs.npyPK!+W@sp1_db17_35_ma.npyPK!Vmsp1_db17_35_md.npyPK!<_Msp1_db17_35_ma_pywtCoeffs.npyPK!9Xisp1_db17_35_md_pywtCoeffs.npyPK!s!Vper_db17_35_ma.npyPK!-per_db17_35_md.npyPK!,per_db17_35_ma_pywtCoeffs.npyPK!1a4!per_db17_35_md_pywtCoeffs.npyPK!Glasym_db17_35_ma.npyPK!]H-asym_db17_35_md.npyPK!iasym_db17_35_ma_pywtCoeffs.npyPK!-asym_db17_35_md_pywtCoeffs.npyPK!6asymw_db17_35_ma.npyPK!$&Hasymw_db17_35_md.npyPK!Gh asymw_db17_35_ma_pywtCoeffs.npyPK! .Ⱥasymw_db17_35_md_pywtCoeffs.npyPK!Vczpd_db18_36_ma.npyPK!*c^lzpd_db18_36_md.npyPK!/^,4zpd_db18_36_ma_pywtCoeffs.npyPK!mN)zpd_db18_36_md_pywtCoeffs.npyPK!cӘsp0_db18_36_ma.npyPK!Rsp0_db18_36_md.npyPK!$qjsp0_db18_36_ma_pywtCoeffs.npyPK!F?*=sp0_db18_36_md_pywtCoeffs.npyPK!*sym_db18_36_ma.npyPK!,@ؘsym_db18_36_md.npyPK!Zsym_db18_36_ma_pywtCoeffs.npyPK!C%ssym_db18_36_md_pywtCoeffs.npyPK!ͻFsymw_db18_36_ma.npyPK!|T?Usymw_db18_36_md.npyPK!:rsymw_db18_36_ma_pywtCoeffs.npyPK!Bsymw_db18_36_md_pywtCoeffs.npyPK!,#ppd_db18_36_ma.npyPK!X(Hppd_db18_36_md.npyPK!4-ppd_db18_36_ma_pywtCoeffs.npyPK!0ppd_db18_36_md_pywtCoeffs.npyPK!)Bsp1_db18_36_ma.npyPK!ƹaИ~sp1_db18_36_md.npyPK!oWFsp1_db18_36_ma_pywtCoeffs.npyPK!Ӕ\sp1_db18_36_md_pywtCoeffs.npyPK!(Kper_db18_36_ma.npyPK!^b, per_db18_36_md.npyPK!9l per_db18_36_ma_pywtCoeffs.npyPK!eR per_db18_36_md_pywtCoeffs.npyPK!1+asym_db18_36_ma.npyPK!S+asym_db18_36_md.npyPK! sasym_db18_36_ma_pywtCoeffs.npyPK!M"hasym_db18_36_md_pywtCoeffs.npyPK!] <asymw_db18_36_ma.npyPK! 懘asymw_db18_36_md.npyPK!F-asymw_db18_36_ma_pywtCoeffs.npyPK!asymw_db18_36_md_pywtCoeffs.npyPK!M9zzpd_db18_37_ma.npyPK!#yper_db19_38_md.npyPK!ȋper_db19_38_ma_pywtCoeffs.npyPK!Jxper_db19_38_md_pywtCoeffs.npyPK!nasym_db19_38_ma.npyPK!?%Gasym_db19_38_md.npyPK!5˨ asym_db19_38_ma_pywtCoeffs.npyPK!m,6asym_db19_38_md_pywtCoeffs.npyPK!asymw_db19_38_ma.npyPK!Qè—asymw_db19_38_md.npyPK!s{<asymw_db19_38_ma_pywtCoeffs.npyPK!40asymw_db19_38_md_pywtCoeffs.npyPK!fzpd_db19_39_ma.npyPK!&\:Fzpd_db19_39_md.npyPK!uE&zpd_db19_39_ma_pywtCoeffs.npyPK!-Wٲzpd_db19_39_md_pywtCoeffs.npyPK!=_sp0_db19_39_ma.npyPK!l ரܦsp0_db19_39_md.npyPK![1+sp0_db19_39_ma_pywtCoeffs.npyPK!fsp0_db19_39_md_pywtCoeffs.npyPK!&H<sym_db19_39_ma.npyPK!.arsym_db19_39_md.npyPK!UgRsym_db19_39_ma_pywtCoeffs.npyPK!YO=sym_db19_39_md_pywtCoeffs.npyPK!uper_db19_39_md.npyPK! ~  per_db19_39_ma_pywtCoeffs.npyPK!J  per_db19_39_md_pywtCoeffs.npyPK!5Dasym_db19_39_ma.npyPK![%asym_db19_39_md.npyPK!xQasym_db19_39_ma_pywtCoeffs.npyPK!"asym_db19_39_md_pywtCoeffs.npyPK!masymw_db19_39_ma.npyPK!zZðasymw_db19_39_md.npyPK!5asymw_db19_39_ma_pywtCoeffs.npyPK!oasymw_db19_39_md_pywtCoeffs.npyPK!o|zpd_db20_40_ma.npyPK!9mdzpd_db20_40_md.npyPK!?ujLzpd_db20_40_ma_pywtCoeffs.npyPK!u2P?zpd_db20_40_md_pywtCoeffs.npyPK!Tø2sp0_db20_40_ma.npyPK!u_Osp0_db20_40_md.npyPK!ݸsp0_db20_40_ma_pywtCoeffs.npyPK!`sp0_db20_40_md_pywtCoeffs.npyPK!J sym_db20_40_ma.npyPK!zosym_db20_40_md.npyPK!M$ sym_db20_40_ma_pywtCoeffs.npyPK! (sym_db20_40_md_pywtCoeffs.npyPK!gɔMsymw_db20_40_ma.npyPK!symw_db20_40_md.npyPK!s3}bpsymw_db20_40_ma_pywtCoeffs.npyPK!L8Ødsymw_db20_40_md_pywtCoeffs.npyPK!B+Xppd_db20_40_ma.npyPK!R]@ppd_db20_40_md.npyPK!Z(ppd_db20_40_ma_pywtCoeffs.npyPK! Oppd_db20_40_md_pywtCoeffs.npyPK! Osp1_db20_40_ma.npyPK!) sp1_db20_40_md.npyPK!& sp1_db20_40_ma_pywtCoeffs.npyPK!UD sp1_db20_40_md_pywtCoeffs.npyPK!\   per_db20_40_ma.npyPK!#  per_db20_40_md.npyPK!Q  dper_db20_40_ma_pywtCoeffs.npyPK!1-  per_db20_40_md_pywtCoeffs.npyPK!8asym_db20_40_ma.npyPK!<asym_db20_40_md.npyPK!I1Ҹasym_db20_40_ma_pywtCoeffs.npyPK!( asym_db20_40_md_pywtCoeffs.npyPK!KVܸasymw_db20_40_ma.npyPK!?sasymw_db20_40_md.npyPK!.2lasymw_db20_40_ma_pywtCoeffs.npyPK!% asymw_db20_40_md_pywtCoeffs.npyPK!֛"zpd_db20_41_ma.npyPK!43/$zpd_db20_41_md.npyPK!zrr&zpd_db20_41_ma_pywtCoeffs.npyPK! tm(zpd_db20_41_md_pywtCoeffs.npyPK!h*sp0_db20_41_ma.npyPK!&gX,sp0_db20_41_md.npyPK!jH.sp0_db20_41_ma_pywtCoeffs.npyPK!@C0sp0_db20_41_md_pywtCoeffs.npyPK!F>2sym_db20_41_ma.npyPK!fh.4sym_db20_41_md.npyPK!y6sym_db20_41_ma_pywtCoeffs.npyPK!˓ 8sym_db20_41_md_pywtCoeffs.npyPK!hR:symw_db20_41_ma.npyPK!; g<symw_db20_41_md.npyPK!H=symw_db20_41_ma_pywtCoeffs.npyPK!L?symw_db20_41_md_pywtCoeffs.npyPK![Appd_db20_41_ma.npyPK!X4vCppd_db20_41_md.npyPK!Eppd_db20_41_ma_pywtCoeffs.npyPK!죌pGppd_db20_41_md_pywtCoeffs.npyPK!FuIsp1_db20_41_ma.npyPK!c?Ksp1_db20_41_md.npyPK!~Msp1_db20_41_ma_pywtCoeffs.npyPK! hOsp1_db20_41_md_pywtCoeffs.npyPK!H<((Qper_db20_41_ma.npyPK!<((Rper_db20_41_md.npyPK!"((JTper_db20_41_ma_pywtCoeffs.npyPK!3,((Uper_db20_41_md_pywtCoeffs.npyPK!5QWasym_db20_41_ma.npyPK!l6oYasym_db20_41_md.npyPK!hZasym_db20_41_ma_pywtCoeffs.npyPK! \asym_db20_41_md_pywtCoeffs.npyPK!QM^asymw_db20_41_ma.npyPK!N`asymw_db20_41_md.npyPK! basymw_db20_41_ma_pywtCoeffs.npyPK!v`udasymw_db20_41_md_pywtCoeffs.npyPK!Y%fzpd_db21_42_ma.npyPK!Ũ[hzpd_db21_42_md.npyPK!jzpd_db21_42_ma_pywtCoeffs.npyPK! lzpd_db21_42_md_pywtCoeffs.npyPK!nnsp0_db21_42_ma.npyPK![ppsp0_db21_42_md.npyPK!8ҰKrsp0_db21_42_ma_pywtCoeffs.npyPK!{ntsp0_db21_42_md_pywtCoeffs.npyPK!{9vsym_db21_42_ma.npyPK!4l2xsym_db21_42_md.npyPK!Amzsym_db21_42_ma_pywtCoeffs.npyPK!&|sym_db21_42_md_pywtCoeffs.npyPK!3~symw_db21_42_ma.npyPK!DRsymw_db21_42_md.npyPK!#symw_db21_42_ma_pywtCoeffs.npyPK!symw_db21_42_md_pywtCoeffs.npyPK!(ppd_db21_42_ma.npyPK! 8ppd_db21_42_md.npyPK!<3yppd_db21_42_ma_pywtCoeffs.npyPK!5`ppd_db21_42_md_pywtCoeffs.npyPK!%^/ sp1_db21_42_ma.npyPK!usp1_db21_42_md.npyPK!("sp1_db21_42_ma_pywtCoeffs.npyPK! ڢsp1_db21_42_md_pywtCoeffs.npyPK!I((per_db21_42_ma.npyPK!((per_db21_42_md.npyPK!">,&((@per_db21_42_ma_pywtCoeffs.npyPK! ((per_db21_42_md_pywtCoeffs.npyPK!=<asym_db21_42_ma.npyPK!ݦasym_db21_42_md.npyPK!A9asym_db21_42_ma_pywtCoeffs.npyPK!qasym_db21_42_md_pywtCoeffs.npyPK!7lnasymw_db21_42_ma.npyPK!~Casymw_db21_42_md.npyPK!ƋFasymw_db21_42_ma_pywtCoeffs.npyPK!Jasymw_db21_42_md_pywtCoeffs.npyPK!ëWzpd_db21_43_ma.npyPK!0$zpd_db21_43_md.npyPK!2zpd_db21_43_ma_pywtCoeffs.npyPK!0 zpd_db21_43_md_pywtCoeffs.npyPK!Qۏsp0_db21_43_ma.npyPK!sp0_db21_43_md.npyPK!Psp0_db21_43_ma_pywtCoeffs.npyPK!]tbsp0_db21_43_md_pywtCoeffs.npyPK!Oz*sym_db21_43_ma.npyPK!%*sym_db21_43_md.npyPK!l*sym_db21_43_ma_pywtCoeffs.npyPK!'5sym_db21_43_md_pywtCoeffs.npyPK! 6@symw_db21_43_ma.npyPK!xdЫAsymw_db21_43_md.npyPK!Bsymw_db21_43_ma_pywtCoeffs.npyPK!Nsymw_db21_43_md_pywtCoeffs.npyPK!gyܪZppd_db21_43_ma.npyPK!sIoZppd_db21_43_md.npyPK!Zppd_db21_43_ma_pywtCoeffs.npyPK!yeppd_db21_43_md_pywtCoeffs.npyPK!*rpsp1_db21_43_ma.npyPK!-psp1_db21_43_md.npyPK!0psp1_db21_43_ma_pywtCoeffs.npyPK!1{sp1_db21_43_md_pywtCoeffs.npyPK!V#V00per_db21_43_ma.npyPK!400per_db21_43_md.npyPK!500Fper_db21_43_ma_pywtCoeffs.npyPK!z00per_db21_43_md_pywtCoeffs.npyPK!)Casym_db21_43_ma.npyPK!asym_db21_43_md.npyPK!Tsasym_db21_43_ma_pywtCoeffs.npyPK!"+*asym_db21_43_md_pywtCoeffs.npyPK!%b#6asymw_db21_43_ma.npyPK!^8asymw_db21_43_md.npyPK!D:asymw_db21_43_ma_pywtCoeffs.npyPK!7<Gasymw_db21_43_md_pywtCoeffs.npyPK!7p=Tzpd_db22_44_ma.npyPK!Ǜ\zpd_db22_44_md.npyPK!Wdzpd_db22_44_ma_pywtCoeffs.npyPK!)Iwzpd_db22_44_md_pywtCoeffs.npyPK!Ts7sp0_db22_44_ma.npyPK!#osp0_db22_44_md.npyPK!@Fsp0_db22_44_ma_pywtCoeffs.npyPK!T!@sp0_db22_44_md_pywtCoeffs.npyPK!asym_db22_44_ma.npyPK!*ksym_db22_44_md.npyPK!֭lsym_db22_44_ma_pywtCoeffs.npyPK!hpsym_db22_44_md_pywtCoeffs.npyPK!Z symw_db22_44_ma.npyPK!A symw_db22_44_md.npyPK!symw_db22_44_ma_pywtCoeffs.npyPK!,`Csymw_db22_44_md_pywtCoeffs.npyPK!.0ppd_db22_44_ma.npyPK!s 8ppd_db22_44_md.npyPK!dWu@ppd_db22_44_ma_pywtCoeffs.npyPK!ǏSppd_db22_44_md_pywtCoeffs.npyPK!Gs>fsp1_db22_44_ma.npyPK!nsp1_db22_44_md.npyPK!*_bvsp1_db22_44_ma_pywtCoeffs.npyPK!.!sp1_db22_44_md_pywtCoeffs.npyPK!S00#per_db22_44_ma.npyPK!+00$per_db22_44_md.npyPK!]00\&per_db22_44_ma_pywtCoeffs.npyPK!Q00'per_db22_44_md_pywtCoeffs.npyPK!)I2)asym_db22_44_ma.npyPK!;+asym_db22_44_md.npyPK!C D-asym_db22_44_ma_pywtCoeffs.npyPK!IjX/asym_db22_44_md_pywtCoeffs.npyPK!8vl1asymw_db22_44_ma.npyPK!tv3asymw_db22_44_md.npyPK!I5asymw_db22_44_ma_pywtCoeffs.npyPK![7asymw_db22_44_md_pywtCoeffs.npyPK!<9zpd_db22_45_ma.npyPK!A};zpd_db22_45_md.npyPK!w=zpd_db22_45_ma_pywtCoeffs.npyPK!0?zpd_db22_45_md_pywtCoeffs.npyPK!Bsp0_db22_45_ma.npyPK!EDsp0_db22_45_md.npyPK!u Fsp0_db22_45_ma_pywtCoeffs.npyPK!y;Hsp0_db22_45_md_pywtCoeffs.npyPK!(fVJsym_db22_45_ma.npyPK!|fLsym_db22_45_md.npyPK!)vNsym_db22_45_ma_pywtCoeffs.npyPK!psPsym_db22_45_md_pywtCoeffs.npyPK!ciRsymw_db22_45_ma.npyPK!$dTsymw_db22_45_md.npyPK!*bVsymw_db22_45_ma_pywtCoeffs.npyPK!1,Xsymw_db22_45_md_pywtCoeffs.npyPK!Ǹ[ppd_db22_45_ma.npyPK! ]ppd_db22_45_md.npyPK!tRB&_ppd_db22_45_ma_pywtCoeffs.npyPK!B/UAappd_db22_45_md_pywtCoeffs.npyPK! R\csp1_db22_45_ma.npyPK!U lesp1_db22_45_md.npyPK!@|gsp1_db22_45_ma_pywtCoeffs.npyPK!J~Qisp1_db22_45_md_pywtCoeffs.npyPK! }}88kper_db22_45_ma.npyPK!Jd|88mper_db22_45_md.npyPK!388nper_db22_45_ma_pywtCoeffs.npyPK!kE88oper_db22_45_md_pywtCoeffs.npyPK!NGzhqasym_db22_45_ma.npyPK!ufsysasym_db22_45_md.npyPK!٥#uasym_db22_45_ma_pywtCoeffs.npyPK!M"Twasym_db22_45_md_pywtCoeffs.npyPK!yasymw_db22_45_ma.npyPK!Qdd{asymw_db22_45_md.npyPK!z}asymw_db22_45_ma_pywtCoeffs.npyPK!Masymw_db22_45_md_pywtCoeffs.npyPK! zpd_db23_46_ma.npyPK!N8zpd_db23_46_md.npyPK!FgPzpd_db23_46_ma_pywtCoeffs.npyPK!8kwszpd_db23_46_md_pywtCoeffs.npyPK!߅sp0_db23_46_ma.npyPK!5sp0_db23_46_md.npyPK!|CƎsp0_db23_46_ma_pywtCoeffs.npyPK!]Ysp0_db23_46_md_pywtCoeffs.npyPK![ sym_db23_46_ma.npyPK!ୠ$sym_db23_46_md.npyPK!&#<sym_db23_46_ma_pywtCoeffs.npyPK!; _sym_db23_46_md_pywtCoeffs.npyPK!Ssymw_db23_46_ma.npyPK!Rsymw_db23_46_md.npyPK!Wtsymw_db23_46_ma_pywtCoeffs.npyPK!stءsymw_db23_46_md_pywtCoeffs.npyPK!ppd_db23_46_ma.npyPK!'ٍppd_db23_46_md.npyPK!4 v,ppd_db23_46_ma_pywtCoeffs.npyPK!PsOppd_db23_46_md_pywtCoeffs.npyPK!Ѧnrsp1_db23_46_ma.npyPK!z̈sp1_db23_46_md.npyPK!|Ssp1_db23_46_ma_pywtCoeffs.npyPK!sŲsp1_db23_46_md_pywtCoeffs.npyPK!]z88per_db23_46_ma.npyPK!!88Pper_db23_46_md.npyPK!688per_db23_46_ma_pywtCoeffs.npyPK!88+per_db23_46_md_pywtCoeffs.npyPK!SWRasym_db23_46_ma.npyPK!sym_db23_47_ma_pywtCoeffs.npyPK!'-sym_db23_47_md_pywtCoeffs.npyPK!JXsymw_db23_47_ma.npyPK!~ysymw_db23_47_md.npyPK!z<symw_db23_47_ma_pywtCoeffs.npyPK!#symw_db23_47_md_pywtCoeffs.npyPK!5Šppd_db23_47_ma.npyPK!y:ppd_db23_47_md.npyPK!3 2ppd_db23_47_ma_pywtCoeffs.npyPK!7]ppd_db23_47_md_pywtCoeffs.npyPK!esp1_db23_47_ma.npyPK!Z}sp1_db23_47_md.npyPK!sp1_db23_47_ma_pywtCoeffs.npyPK!ծxsp1_db23_47_md_pywtCoeffs.npyPK![@@per_db23_47_ma.npyPK!}{@@ per_db23_47_md.npyPK!$% @@ per_db23_47_ma_pywtCoeffs.npyPK!M5@@y per_db23_47_md_pywtCoeffs.npyPK!mA asym_db23_47_ma.npyPK!Ok* asym_db23_47_md.npyPK!6 asym_db23_47_ma_pywtCoeffs.npyPK!le{=b asym_db23_47_md_pywtCoeffs.npyPK!NG asymw_db23_47_ma.npyPK!5vn asymw_db23_47_md.npyPK!m# asymw_db23_47_ma_pywtCoeffs.npyPK!n asymw_db23_47_md_pywtCoeffs.npyPK!A:, zpd_db24_48_ma.npyPK!̐ǧT zpd_db24_48_md.npyPK!U| zpd_db24_48_ma_pywtCoeffs.npyPK!v~y zpd_db24_48_md_pywtCoeffs.npyPK!WO sp0_db24_48_ma.npyPK!Q ! sp0_db24_48_md.npyPK!2# sp0_db24_48_ma_pywtCoeffs.npyPK!vx?e% sp0_db24_48_md_pywtCoeffs.npyPK!ڿ' sym_db24_48_ma.npyPK!}))) sym_db24_48_md.npyPK!0+ sym_db24_48_ma_pywtCoeffs.npyPK!AE. sym_db24_48_md_pywtCoeffs.npyPK!8rN0 symw_db24_48_ma.npyPK!WUDw2 symw_db24_48_md.npyPK!pO4 symw_db24_48_ma_pywtCoeffs.npyPK!]f'6 symw_db24_48_md_pywtCoeffs.npyPK!y9 ppd_db24_48_ma.npyPK!%ήe0; ppd_db24_48_md.npyPK!C@^X= ppd_db24_48_ma_pywtCoeffs.npyPK!=F\? ppd_db24_48_md_pywtCoeffs.npyPK!<A sp1_db24_48_ma.npyPK!C sp1_db24_48_md.npyPK!EF sp1_db24_48_ma_pywtCoeffs.npyPK!=pAH sp1_db24_48_md_pywtCoeffs.npyPK!&1@@tJ per_db24_48_ma.npyPK!$v7@@K per_db24_48_md.npyPK!${@@TM per_db24_48_ma_pywtCoeffs.npyPK!h@@N per_db24_48_md_pywtCoeffs.npyPK!xJP asym_db24_48_ma.npyPK!D€msR asym_db24_48_md.npyPK!TT asym_db24_48_ma_pywtCoeffs.npyPK!,V asym_db24_48_md_pywtCoeffs.npyPK!Y asymw_db24_48_ma.npyPK!J.[ asymw_db24_48_md.npyPK! .X] asymw_db24_48_ma_pywtCoeffs.npyPK!w_ asymw_db24_48_md_pywtCoeffs.npyPK!&ݿa zpd_db24_49_ma.npyPK!2Mc zpd_db24_49_md.npyPK!-w"f zpd_db24_49_ma_pywtCoeffs.npyPK!#]h zpd_db24_49_md_pywtCoeffs.npyPK!rIj sp0_db24_49_ma.npyPK!h> l sp0_db24_49_md.npyPK!&n sp0_db24_49_ma_pywtCoeffs.npyPK!V3q sp0_db24_49_md_pywtCoeffs.npyPK! tӁns sym_db24_49_ma.npyPK!&u sym_db24_49_md.npyPK!Gw sym_db24_49_ma_pywtCoeffs.npyPK!Rw z sym_db24_49_md_pywtCoeffs.npyPK!fȒ'D| symw_db24_49_ma.npyPK!)u~ symw_db24_49_md.npyPK!; symw_db24_49_ma_pywtCoeffs.npyPK!, symw_db24_49_md_pywtCoeffs.npyPK!7, ppd_db24_49_ma.npyPK!J N ppd_db24_49_md.npyPK!hA\~ ppd_db24_49_ma_pywtCoeffs.npyPK!6 ppd_db24_49_md_pywtCoeffs.npyPK!4 sp1_db24_49_ma.npyPK!(>u$ sp1_db24_49_md.npyPK!T sp1_db24_49_ma_pywtCoeffs.npyPK!8 sp1_db24_49_md_pywtCoeffs.npyPK!!HHʖ per_db24_49_ma.npyPK!l]P_HHB per_db24_49_md.npyPK!W7)xHH per_db24_49_ma_pywtCoeffs.npyPK!; rHH= per_db24_49_md_pywtCoeffs.npyPK!- asym_db24_49_ma.npyPK!| asym_db24_49_md.npyPK!y:" asym_db24_49_ma_pywtCoeffs.npyPK!W7b^ asym_db24_49_md_pywtCoeffs.npyPK! asymw_db24_49_ma.npyPK!gP̧ asymw_db24_49_md.npyPK!i]` asymw_db24_49_ma_pywtCoeffs.npyPK!$; asymw_db24_49_md_pywtCoeffs.npyPK!;x zpd_db25_50_ma.npyPK!9;r zpd_db25_50_md.npyPK!9 zpd_db25_50_ma_pywtCoeffs.npyPK!Ϙ+ zpd_db25_50_md_pywtCoeffs.npyPK!8n sp0_db25_50_ma.npyPK!6 sp0_db25_50_md.npyPK!Dj޻ sp0_db25_50_ma_pywtCoeffs.npyPK!I! sp0_db25_50_md_pywtCoeffs.npyPK!Rmd sym_db25_50_ma.npyPK!6$ sym_db25_50_md.npyPK!MN sym_db25_50_ma_pywtCoeffs.npyPK!,k sym_db25_50_md_pywtCoeffs.npyPK!{3Z symw_db25_50_ma.npyPK!H"8 symw_db25_50_md.npyPK!W5 symw_db25_50_ma_pywtCoeffs.npyPK!_ symw_db25_50_md_pywtCoeffs.npyPK!9T ppd_db25_50_ma.npyPK!K ppd_db25_50_md.npyPK!E^ ppd_db25_50_ma_pywtCoeffs.npyPK! ppd_db25_50_md_pywtCoeffs.npyPK!PJ sp1_db25_50_ma.npyPK!} sp1_db25_50_md.npyPK!%z` sp1_db25_50_ma_pywtCoeffs.npyPK!Zp sp1_db25_50_md_pywtCoeffs.npyPK!~!HH@ per_db25_50_ma.npyPK!HH per_db25_50_md.npyPK! zKHH0 per_db25_50_ma_pywtCoeffs.npyPK!KT)HH per_db25_50_md_pywtCoeffs.npyPK!*6 asym_db25_50_ma.npyPK! o asym_db25_50_md.npyPK!X asym_db25_50_ma_pywtCoeffs.npyPK!sٸ asym_db25_50_md_pywtCoeffs.npyPK!qXu0 asymw_db25_50_ma.npyPK!(hj asymw_db25_50_md.npyPK!0E asymw_db25_50_ma_pywtCoeffs.npyPK!Zo asymw_db25_50_md_pywtCoeffs.npyPK![H. zpd_db25_51_ma.npyPK!-n zpd_db25_51_md.npyPK!bX zpd_db25_51_ma_pywtCoeffs.npyPK!9{}v zpd_db25_51_md_pywtCoeffs.npyPK!OR_D sp0_db25_51_ma.npyPK!T sp0_db25_51_md.npyPK!"A sp0_db25_51_ma_pywtCoeffs.npyPK!6 sp0_db25_51_md_pywtCoeffs.npyPK!$JZ sym_db25_51_ma.npyPK!nh sym_db25_51_md.npyPK!X sym_db25_51_ma_pywtCoeffs.npyPK!h]% sym_db25_51_md_pywtCoeffs.npyPK!xp symw_db25_51_ma.npyPK!5l symw_db25_51_md.npyPK!;k symw_db25_51_ma_pywtCoeffs.npyPK![̋> symw_db25_51_md_pywtCoeffs.npyPK!~p ppd_db25_51_ma.npyPK!1" ppd_db25_51_md.npyPK!+' % ppd_db25_51_ma_pywtCoeffs.npyPK!"U' ppd_db25_51_md_pywtCoeffs.npyPK!Mm) sp1_db25_51_ma.npyPK!"M+ sp1_db25_51_md.npyPK!W'R . sp1_db25_51_ma_pywtCoeffs.npyPK!zk0 sp1_db25_51_md_pywtCoeffs.npyPK!Y^PP2 per_db25_51_ma.npyPK!5PP64 per_db25_51_md.npyPK!vsPP5 per_db25_51_ma_pywtCoeffs.npyPK!&'PPA7 per_db25_51_md_pywtCoeffs.npyPK!0e"8 asym_db25_51_ma.npyPK!E ; asym_db25_51_md.npyPK!ʆN= asym_db25_51_ma_pywtCoeffs.npyPK!A j? asym_db25_51_md_pywtCoeffs.npyPK!AF 9A asymw_db25_51_ma.npyPK!(D asymw_db25_51_md.npyPK!fjF asymw_db25_51_ma_pywtCoeffs.npyPK!wnH asymw_db25_51_md_pywtCoeffs.npyPK!*aK zpd_db26_52_ma.npyPK!LM zpd_db26_52_md.npyPK!SrO zpd_db26_52_ma_pywtCoeffs.npyPK!Q zpd_db26_52_md_pywtCoeffs.npyPK!4&:T sp0_db26_52_ma.npyPK!<V sp0_db26_52_md.npyPK!X sp0_db26_52_ma_pywtCoeffs.npyPK![ sp0_db26_52_md_pywtCoeffs.npyPK!Pfxp] sym_db26_52_ma.npyPK!l]_ sym_db26_52_md.npyPK!Xb sym_db26_52_ma_pywtCoeffs.npyPK!Sd sym_db26_52_md_pywtCoeffs.npyPK!Af symw_db26_52_ma.npyPK!M@h symw_db26_52_md.npyPK!k8k symw_db26_52_ma_pywtCoeffs.npyPK!Um symw_db26_52_md_pywtCoeffs.npyPK!㑎o ppd_db26_52_ma.npyPK!(r ppd_db26_52_md.npyPK!+̬pt ppd_db26_52_ma_pywtCoeffs.npyPK!v ppd_db26_52_md_pywtCoeffs.npyPK!aʘy sp1_db26_52_ma.npyPK!^^{ sp1_db26_52_md.npyPK!ֿ} sp1_db26_52_ma_pywtCoeffs.npyPK!լ sp1_db26_52_md_pywtCoeffs.npyPK!TjPPL per_db26_52_ma.npyPK!+!PP̃ per_db26_52_md.npyPK!QPPL per_db26_52_ma_pywtCoeffs.npyPK!f1PP׆ per_db26_52_md_pywtCoeffs.npyPK!@b asym_db26_52_ma.npyPK!2$= asym_db26_52_md.npyPK!  asym_db26_52_ma_pywtCoeffs.npyPK!eGH asym_db26_52_md_pywtCoeffs.npyPK!] asymw_db26_52_ma.npyPK!-XZ asymw_db26_52_md.npyPK!.<0 asymw_db26_52_ma_pywtCoeffs.npyPK!"+ asymw_db26_52_md_pywtCoeffs.npyPK!5  ښ zpd_db26_53_ma.npyPK!j  * zpd_db26_53_md.npyPK!e_  z zpd_db26_53_ma_pywtCoeffs.npyPK!Џ  ա zpd_db26_53_md_pywtCoeffs.npyPK!G  0 sp0_db26_53_ma.npyPK![,T   sp0_db26_53_md.npyPK!Rq  Ш sp0_db26_53_ma_pywtCoeffs.npyPK!gU  + sp0_db26_53_md_pywtCoeffs.npyPK!   sym_db26_53_ma.npyPK!  ֯ sym_db26_53_md.npyPK!A[  & sym_db26_53_ma_pywtCoeffs.npyPK!   sym_db26_53_md_pywtCoeffs.npyPK!{  ܶ symw_db26_53_ma.npyPK!ٓ;  - symw_db26_53_md.npyPK!_Lo  ~ symw_db26_53_ma_pywtCoeffs.npyPK!|  ڽ symw_db26_53_md_pywtCoeffs.npyPK!  6 ppd_db26_53_ma.npyPK!+o˗   ppd_db26_53_md.npyPK!\59   ppd_db26_53_ma_pywtCoeffs.npyPK!X  1 ppd_db26_53_md_pywtCoeffs.npyPK!?+   sp1_db26_53_ma.npyPK!d'   sp1_db26_53_md.npyPK!q  , sp1_db26_53_ma_pywtCoeffs.npyPK!m   sp1_db26_53_md_pywtCoeffs.npyPK!-4XX per_db26_53_ma.npyPK!cY'XXj per_db26_53_md.npyPK! -XX per_db26_53_ma_pywtCoeffs.npyPK!NXX per_db26_53_md_pywtCoeffs.npyPK![   asym_db26_53_ma.npyPK!K=  i asym_db26_53_md.npyPK!+:b   asym_db26_53_ma_pywtCoeffs.npyPK!< _   asym_db26_53_md_pywtCoeffs.npyPK!5v  r asymw_db26_53_ma.npyPK!z   asymw_db26_53_md.npyPK!s   asymw_db26_53_ma_pywtCoeffs.npyPK!@  s asymw_db26_53_md_pywtCoeffs.npyPK!Fz(( zpd_db27_54_ma.npyPK!8+((( zpd_db27_54_md.npyPK!J(( zpd_db27_54_ma_pywtCoeffs.npyPK!(( zpd_db27_54_md_pywtCoeffs.npyPK!#((F sp0_db27_54_ma.npyPK!Ҏw(( sp0_db27_54_md.npyPK!^(( sp0_db27_54_ma_pywtCoeffs.npyPK!EK((Y sp0_db27_54_md_pywtCoeffs.npyPK!g]`(( sym_db27_54_ma.npyPK!C(( sym_db27_54_md.npyPK!̫_((l sym_db27_54_ma_pywtCoeffs.npyPK!v(( sym_db27_54_md_pywtCoeffs.npyPK!2((2 symw_db27_54_ma.npyPK!#M(( symw_db27_54_md.npyPK!{-(( symw_db27_54_ma_pywtCoeffs.npyPK!((H symw_db27_54_md_pywtCoeffs.npyPK!&(( ppd_db27_54_ma.npyPK!Zq(( ppd_db27_54_md.npyPK!'F((\ ppd_db27_54_ma_pywtCoeffs.npyPK!biy(( ppd_db27_54_md_pywtCoeffs.npyPK!Xy((" sp1_db27_54_ma.npyPK!R((z sp1_db27_54_md.npyPK!(( sp1_db27_54_ma_pywtCoeffs.npyPK!U((5" sp1_db27_54_md_pywtCoeffs.npyPK!ߎXX$ per_db27_54_ma.npyPK!kNMXX & per_db27_54_md.npyPK!vfG%XX' per_db27_54_ma_pywtCoeffs.npyPK!u]XX;) per_db27_54_md_pywtCoeffs.npyPK!}A((* asym_db27_54_ma.npyPK!1(('- asym_db27_54_md.npyPK!bL((/ asym_db27_54_ma_pywtCoeffs.npyPK!W((1 asym_db27_54_md_pywtCoeffs.npyPK!h((H4 asymw_db27_54_ma.npyPK!S((6 asymw_db27_54_md.npyPK!((8 asymw_db27_54_ma_pywtCoeffs.npyPK!HbV((a; asymw_db27_54_md_pywtCoeffs.npyPK!N00= zpd_db27_55_ma.npyPK!Pyg00&@ zpd_db27_55_md.npyPK! 00B zpd_db27_55_ma_pywtCoeffs.npyPK!9 700D zpd_db27_55_md_pywtCoeffs.npyPK!D_c00\G sp0_db27_55_ma.npyPK!dV00I sp0_db27_55_md.npyPK!Q00L sp0_db27_55_ma_pywtCoeffs.npyPK!900N sp0_db27_55_md_pywtCoeffs.npyPK!00P sym_db27_55_ma.npyPK!k00RS sym_db27_55_md.npyPK!Y00U sym_db27_55_ma_pywtCoeffs.npyPK!?ڇ00X sym_db27_55_md_pywtCoeffs.npyPK!;00Z symw_db27_55_ma.npyPK!^>^B00\ symw_db27_55_md.npyPK!n800J_ symw_db27_55_ma_pywtCoeffs.npyPK!/00a symw_db27_55_md_pywtCoeffs.npyPK!e*o00"d ppd_db27_55_ma.npyPK!Z@o'00f ppd_db27_55_md.npyPK! t00h ppd_db27_55_ma_pywtCoeffs.npyPK!a`00Mk ppd_db27_55_md_pywtCoeffs.npyPK!i&i00m sp1_db27_55_ma.npyPK!""00p sp1_db27_55_md.npyPK!jeJ00xr sp1_db27_55_ma_pywtCoeffs.npyPK!HN00t sp1_db27_55_md_pywtCoeffs.npyPK!``Nw per_db27_55_ma.npyPK!?*``x per_db27_55_md.npyPK!C``nz per_db27_55_ma_pywtCoeffs.npyPK!hĭG`` | per_db27_55_md_pywtCoeffs.npyPK!nܪ00} asym_db27_55_ma.npyPK!<00 asym_db27_55_md.npyPK!AtÇ00f asym_db27_55_ma_pywtCoeffs.npyPK!00҄ asym_db27_55_md_pywtCoeffs.npyPK!n00> asymw_db27_55_ma.npyPK!400 asymw_db27_55_md.npyPK!y00 asymw_db27_55_ma_pywtCoeffs.npyPK!0Gc00o asymw_db27_55_md_pywtCoeffs.npyPK!R88ܐ zpd_db28_56_ma.npyPK!ҟ988D zpd_db28_56_md.npyPK!:K_88 zpd_db28_56_ma_pywtCoeffs.npyPK!T{88 zpd_db28_56_md_pywtCoeffs.npyPK!7>88 sp0_db28_56_ma.npyPK!@88 sp0_db28_56_md.npyPK!xn88b sp0_db28_56_ma_pywtCoeffs.npyPK!j88ա sp0_db28_56_md_pywtCoeffs.npyPK!"88H sym_db28_56_ma.npyPK!|tD88 sym_db28_56_md.npyPK!88 sym_db28_56_ma_pywtCoeffs.npyPK!88 sym_db28_56_md_pywtCoeffs.npyPK!nF88 symw_db28_56_ma.npyPK!588g symw_db28_56_md.npyPK!!\88в symw_db28_56_ma_pywtCoeffs.npyPK! 88D symw_db28_56_md_pywtCoeffs.npyPK!ۄ88 ppd_db28_56_ma.npyPK!88 ppd_db28_56_md.npyPK!Ύ%88 ppd_db28_56_ma_pywtCoeffs.npyPK!G788 ppd_db28_56_md_pywtCoeffs.npyPK!k88n sp1_db28_56_ma.npyPK! ԕ88 sp1_db28_56_md.npyPK!^88> sp1_db28_56_ma_pywtCoeffs.npyPK!0v88 sp1_db28_56_md_pywtCoeffs.npyPK!``$ per_db28_56_ma.npyPK!4`` per_db28_56_md.npyPK!7``D per_db28_56_ma_pywtCoeffs.npyPK!a`` per_db28_56_md_pywtCoeffs.npyPK!~488z asym_db28_56_ma.npyPK!<o?88 asym_db28_56_md.npyPK!788L asym_db28_56_ma_pywtCoeffs.npyPK!cZ88 asym_db28_56_md_pywtCoeffs.npyPK!v J884 asymw_db28_56_ma.npyPK!88 asymw_db28_56_md.npyPK!<88 asymw_db28_56_ma_pywtCoeffs.npyPK!N綹88} asymw_db28_56_md_pywtCoeffs.npyPK!gC@@ zpd_db28_57_ma.npyPK!D@@b zpd_db28_57_md.npyPK!mh@@ zpd_db28_57_ma_pywtCoeffs.npyPK!i3@@M zpd_db28_57_md_pywtCoeffs.npyPK!8K@@ sp0_db28_57_ma.npyPK!d@@8 sp0_db28_57_md.npyPK!@@ sp0_db28_57_ma_pywtCoeffs.npyPK!i@@# sp0_db28_57_md_pywtCoeffs.npyPK!6X@@ sym_db28_57_ma.npyPK!;^@@ sym_db28_57_md.npyPK!~[X@@~ sym_db28_57_ma_pywtCoeffs.npyPK!\/@@ sym_db28_57_md_pywtCoeffs.npyPK!d@@t symw_db28_57_ma.npyPK!m@@ symw_db28_57_md.npyPK!RY@@V symw_db28_57_ma_pywtCoeffs.npyPK! _~@@ symw_db28_57_md_pywtCoeffs.npyPK!w@@N ppd_db28_57_ma.npyPK!,o\@@ ppd_db28_57_md.npyPK!ʴ%F@@. ppd_db28_57_ma_pywtCoeffs.npyPK!?@@ ppd_db28_57_md_pywtCoeffs.npyPK!i@@$ sp1_db28_57_ma.npyPK!`̕@@ sp1_db28_57_md.npyPK!wy(@@ sp1_db28_57_ma_pywtCoeffs.npyPK!c@@ sp1_db28_57_md_pywtCoeffs.npyPK!2thh per_db28_57_ma.npyPK!oenhh! per_db28_57_md.npyPK!PNhh*# per_db28_57_ma_pywtCoeffs.npyPK!Uhh$ per_db28_57_md_pywtCoeffs.npyPK!|@@p& asym_db28_57_ma.npyPK!i@@( asym_db28_57_md.npyPK!p@@R+ asym_db28_57_ma_pywtCoeffs.npyPK!zmW@@- asym_db28_57_md_pywtCoeffs.npyPK!~@@J0 asymw_db28_57_ma.npyPK!I/u@@2 asymw_db28_57_md.npyPK!"V@@.5 asymw_db28_57_ma_pywtCoeffs.npyPK!s@@7 asymw_db28_57_md_pywtCoeffs.npyPK!)HH(: zpd_db29_58_ma.npyPK!겱kHH< zpd_db29_58_md.npyPK!ULHH? zpd_db29_58_ma_pywtCoeffs.npyPK!uTHHA zpd_db29_58_md_pywtCoeffs.npyPK!HHD sp0_db29_58_ma.npyPK!cHHF sp0_db29_58_md.npyPK!gHHI sp0_db29_58_ma_pywtCoeffs.npyPK!zĜHHK sp0_db29_58_md_pywtCoeffs.npyPK!;;HHN sym_db29_58_ma.npyPK!tHHP sym_db29_58_md.npyPK!m_HHS sym_db29_58_ma_pywtCoeffs.npyPK!=|-HHU sym_db29_58_md_pywtCoeffs.npyPK!A¸HH X symw_db29_58_ma.npyPK!eHHZ symw_db29_58_md.npyPK! HH\ symw_db29_58_ma_pywtCoeffs.npyPK!HH_ symw_db29_58_md_pywtCoeffs.npyPK!OHHb ppd_db29_58_ma.npyPK!٨HH|d ppd_db29_58_md.npyPK!祪HHf ppd_db29_58_ma_pywtCoeffs.npyPK!>5HHwi ppd_db29_58_md_pywtCoeffs.npyPK!?HHk sp1_db29_58_ma.npyPK!ʛ1HHrn sp1_db29_58_md.npyPK!MHHp sp1_db29_58_ma_pywtCoeffs.npyPK!>HHms sp1_db29_58_md_pywtCoeffs.npyPK!1Ѓhhu per_db29_58_ma.npyPK!bPlhhw per_db29_58_md.npyPK! hh y per_db29_58_ma_pywtCoeffs.npyPK!Fhhz per_db29_58_md_pywtCoeffs.npyPK!GHHf| asym_db29_58_ma.npyPK!.|HH~ asym_db29_58_md.npyPK!CaګHHX asym_db29_58_ma_pywtCoeffs.npyPK!1$,HH܃ asym_db29_58_md_pywtCoeffs.npyPK!,HH` asymw_db29_58_ma.npyPK!%HHڈ asymw_db29_58_md.npyPK!ɌHHT asymw_db29_58_ma_pywtCoeffs.npyPK!jbHHٍ asymw_db29_58_md_pywtCoeffs.npyPK!X'PP^ zpd_db29_59_ma.npyPK! ~PPޒ zpd_db29_59_md.npyPK!߁BZPP^ zpd_db29_59_ma_pywtCoeffs.npyPK!pPP zpd_db29_59_md_pywtCoeffs.npyPK!5}GPPt sp0_db29_59_ma.npyPK![,PP sp0_db29_59_md.npyPK!PPt sp0_db29_59_ma_pywtCoeffs.npyPK!/~PP sp0_db29_59_md_pywtCoeffs.npyPK!pUPP sym_db29_59_ma.npyPK!PPP sym_db29_59_md.npyPK!l%PP sym_db29_59_ma_pywtCoeffs.npyPK!6noPP sym_db29_59_md_pywtCoeffs.npyPK!9PP symw_db29_59_ma.npyPK!䃙PP! symw_db29_59_md.npyPK!#/PP symw_db29_59_ma_pywtCoeffs.npyPK!o5XPP. symw_db29_59_md_pywtCoeffs.npyPK!S̹PP ppd_db29_59_ma.npyPK!}0PP: ppd_db29_59_md.npyPK!}PP ppd_db29_59_ma_pywtCoeffs.npyPK!*rPPE ppd_db29_59_md_pywtCoeffs.npyPK!PP sp1_db29_59_ma.npyPK!jPPP sp1_db29_59_md.npyPK! PP sp1_db29_59_ma_pywtCoeffs.npyPK!6PP[ sp1_db29_59_md_pywtCoeffs.npyPK!ipp per_db29_59_ma.npyPK!̻pp per_db29_59_md.npyPK!\mpp& per_db29_59_ma_pywtCoeffs.npyPK!;"Npp per_db29_59_md_pywtCoeffs.npyPK!ʷPP| asym_db29_59_ma.npyPK!*YPP asym_db29_59_md.npyPK!OKPP~ asym_db29_59_ma_pywtCoeffs.npyPK!n3PP asym_db29_59_md_pywtCoeffs.npyPK!M9qPP asymw_db29_59_ma.npyPK!5cPP asymw_db29_59_md.npyPK!qFPP asymw_db29_59_ma_pywtCoeffs.npyPK!/PP' asymw_db29_59_md_pywtCoeffs.npyPK!XX zpd_db30_60_ma.npyPK! TXX< zpd_db30_60_md.npyPK!dd XX zpd_db30_60_ma_pywtCoeffs.npyPK!/8EXXW zpd_db30_60_md_pywtCoeffs.npyPK!\VXX sp0_db30_60_ma.npyPK!XXr sp0_db30_60_md.npyPK!FXX sp0_db30_60_ma_pywtCoeffs.npyPK!"XX sp0_db30_60_md_pywtCoeffs.npyPK!XX sym_db30_60_ma.npyPK!vCuXX sym_db30_60_md.npyPK!@|8jXX0 sym_db30_60_ma_pywtCoeffs.npyPK!^IOXX sym_db30_60_md_pywtCoeffs.npyPK!)E}XXV symw_db30_60_ma.npyPK!HfXX symw_db30_60_md.npyPK!;XXh symw_db30_60_ma_pywtCoeffs.npyPK!8wXX symw_db30_60_md_pywtCoeffs.npyPK!30XX ppd_db30_60_ma.npyPK! XX ppd_db30_60_md.npyPK!XX ppd_db30_60_ma_pywtCoeffs.npyPK!]XX3 ppd_db30_60_md_pywtCoeffs.npyPK!=XX sp1_db30_60_ma.npyPK!yXXN sp1_db30_60_md.npyPK! ;XX sp1_db30_60_ma_pywtCoeffs.npyPK!h5XXi" sp1_db30_60_md_pywtCoeffs.npyPK!5pp$ per_db30_60_ma.npyPK!xpp& per_db30_60_md.npyPK!b%, pp<( per_db30_60_ma_pywtCoeffs.npyPK![b|pp) per_db30_60_md_pywtCoeffs.npyPK!k~XX+ asym_db30_60_ma.npyPK!b@XX. asym_db30_60_md.npyPK!VGXX0 asym_db30_60_ma_pywtCoeffs.npyPK!jXX83 asym_db30_60_md_pywtCoeffs.npyPK!0 /UXX5 asymw_db30_60_ma.npyPK!XXV8 asymw_db30_60_md.npyPK!XX: asymw_db30_60_ma_pywtCoeffs.npyPK!nWXXu= asymw_db30_60_md_pywtCoeffs.npyPK!%c5p`` @ zpd_db30_61_ma.npyPK!Q{``B zpd_db30_61_md.npyPK!``*E zpd_db30_61_ma_pywtCoeffs.npyPK!e``G zpd_db30_61_md_pywtCoeffs.npyPK!M```J sp0_db30_61_ma.npyPK!l1y``L sp0_db30_61_md.npyPK!= ``O sp0_db30_61_ma_pywtCoeffs.npyPK!Aj``R sp0_db30_61_md_pywtCoeffs.npyPK!7j``T sym_db30_61_ma.npyPK!``FW sym_db30_61_md.npyPK! JCp``Y sym_db30_61_ma_pywtCoeffs.npyPK!``q\ sym_db30_61_md_pywtCoeffs.npyPK!Yk`` _ symw_db30_61_ma.npyPK! -``a symw_db30_61_md.npyPK!v``.d symw_db30_61_ma_pywtCoeffs.npyPK!(``f symw_db30_61_md_pywtCoeffs.npyPK!4``fi ppd_db30_61_ma.npyPK!v``k ppd_db30_61_md.npyPK!LS``n ppd_db30_61_ma_pywtCoeffs.npyPK!``!q ppd_db30_61_md_pywtCoeffs.npyPK!_} P``s sp1_db30_61_ma.npyPK!tZ``Lv sp1_db30_61_md.npyPK!_΂8``x sp1_db30_61_ma_pywtCoeffs.npyPK!=;``w{ sp1_db30_61_md_pywtCoeffs.npyPK!xx~ per_db30_61_ma.npyPK!xx per_db30_61_md.npyPK!Mxxb per_db30_61_ma_pywtCoeffs.npyPK!Vxx per_db30_61_md_pywtCoeffs.npyPK!D$``Ȅ asym_db30_61_ma.npyPK!5}H``Y asym_db30_61_md.npyPK!2 `` asym_db30_61_ma_pywtCoeffs.npyPK!z`` asym_db30_61_md_pywtCoeffs.npyPK!Ѽ``" asymw_db30_61_ma.npyPK!'{(`` asymw_db30_61_md.npyPK!| ``F asymw_db30_61_ma_pywtCoeffs.npyPK!a[`` asymw_db30_61_md_pywtCoeffs.npyPK!|Shh zpd_db31_62_ma.npyPK!Ǿ?hh zpd_db31_62_md.npyPK!ehh zpd_db31_62_ma_pywtCoeffs.npyPK!EhhS zpd_db31_62_md_pywtCoeffs.npyPK!x^hh sp0_db31_62_ma.npyPK!್hh sp0_db31_62_md.npyPK!`jhh& sp0_db31_62_ma_pywtCoeffs.npyPK!hhɫ sp0_db31_62_md_pywtCoeffs.npyPK![yhhl sym_db31_62_ma.npyPK!h ѧhh sym_db31_62_md.npyPK!Tphh sym_db31_62_ma_pywtCoeffs.npyPK!hh? sym_db31_62_md_pywtCoeffs.npyPK!:hh symw_db31_62_ma.npyPK!hh{ symw_db31_62_md.npyPK!Jhh symw_db31_62_ma_pywtCoeffs.npyPK!D>hh symw_db31_62_md_pywtCoeffs.npyPK!t hh\ ppd_db31_62_ma.npyPK!a-|hh ppd_db31_62_md.npyPK!!{ihh ppd_db31_62_ma_pywtCoeffs.npyPK!ehh/ ppd_db31_62_md_pywtCoeffs.npyPK!꼋hh sp1_db31_62_ma.npyPK!Chhj sp1_db31_62_md.npyPK!hh sp1_db31_62_ma_pywtCoeffs.npyPK!SAhh sp1_db31_62_md_pywtCoeffs.npyPK!;5xxH per_db31_62_ma.npyPK!*Qxx per_db31_62_md.npyPK!'Ixx per_db31_62_ma_pywtCoeffs.npyPK!ŔxxK per_db31_62_md_pywtCoeffs.npyPK!ev)hh asym_db31_62_ma.npyPK!oөhh asym_db31_62_md.npyPK!ފhh0 asym_db31_62_ma_pywtCoeffs.npyPK!Xhh asym_db31_62_md_pywtCoeffs.npyPK!)/)hhx asymw_db31_62_ma.npyPK!]M`mhh asymw_db31_62_md.npyPK!xOhh asymw_db31_62_ma_pywtCoeffs.npyPK!5hhQ asymw_db31_62_md_pywtCoeffs.npyPK!hNpp zpd_db31_63_ma.npyPK!ť pp zpd_db31_63_md.npyPK!pp6 zpd_db31_63_ma_pywtCoeffs.npyPK!Npp zpd_db31_63_md_pywtCoeffs.npyPK!Ipp sp0_db31_63_ma.npyPK!5Ppp,sp0_db31_63_md.npyPK!/Fwppsp0_db31_63_ma_pywtCoeffs.npyPK!Vppwsp0_db31_63_md_pywtCoeffs.npyPK!Gpp" sym_db31_63_ma.npyPK!_jpp sym_db31_63_md.npyPK!Zppbsym_db31_63_ma_pywtCoeffs.npyPK!X pp sym_db31_63_md_pywtCoeffs.npyPK!*[<9ppsymw_db31_63_ma.npyPK!đppYsymw_db31_63_md.npyPK!0Wppsymw_db31_63_ma_pywtCoeffs.npyPK!UKppsymw_db31_63_md_pywtCoeffs.npyPK!awppRppd_db31_63_ma.npyPK!6!upp ppd_db31_63_md.npyPK!U-pp#ppd_db31_63_ma_pywtCoeffs.npyPK!Fӏpp=&ppd_db31_63_md_pywtCoeffs.npyPK!W:pp(sp1_db31_63_ma.npyPK!zpp+sp1_db31_63_md.npyPK!$/pp(.sp1_db31_63_ma_pywtCoeffs.npyPK!upp0sp1_db31_63_md_pywtCoeffs.npyPK!,XƯ~3per_db31_63_ma.npyPK!iǀ.5per_db31_63_md.npyPK!R]@6per_db31_63_ma_pywtCoeffs.npyPK!W8l8per_db31_63_md_pywtCoeffs.npyPK!ٙ ppT:asym_db31_63_ma.npyPK!Fpp<asym_db31_63_md.npyPK!3Xpp?asym_db31_63_ma_pywtCoeffs.npyPK!pppBBasym_db31_63_md_pywtCoeffs.npyPK!ppDasymw_db31_63_ma.npyPK!ppGasymw_db31_63_md.npyPK!]pp2Jasymw_db31_63_ma_pywtCoeffs.npyPK!@UppLasymw_db31_63_md_pywtCoeffs.npyPK! cAqxxOzpd_db32_64_ma.npyPK!^m=xx4Rzpd_db32_64_md.npyPK!f{xxTzpd_db32_64_ma_pywtCoeffs.npyPK!rxxWzpd_db32_64_md_pywtCoeffs.npyPK!-xxBZsp0_db32_64_ma.npyPK!^mxx\sp0_db32_64_md.npyPK!(xx_sp0_db32_64_ma_pywtCoeffs.npyPK!:7xxEbsp0_db32_64_md_pywtCoeffs.npyPK!2xxdsym_db32_64_ma.npyPK!xxgsym_db32_64_md.npyPK!שxxHjsym_db32_64_ma_pywtCoeffs.npyPK!mxxlsym_db32_64_md_pywtCoeffs.npyPK!0`xxosymw_db32_64_ma.npyPK!fJxxWrsymw_db32_64_md.npyPK!Lxxusymw_db32_64_ma_pywtCoeffs.npyPK! $xxwsymw_db32_64_md_pywtCoeffs.npyPK!بxxhzppd_db32_64_ma.npyPK!غkxx}ppd_db32_64_md.npyPK!Wxxppd_db32_64_ma_pywtCoeffs.npyPK!Dxxkppd_db32_64_md_pywtCoeffs.npyPK!xxsp1_db32_64_ma.npyPK!1xxƇsp1_db32_64_md.npyPK!:xxnsp1_db32_64_ma_pywtCoeffs.npyPK!2r#xx!sp1_db32_64_md_pywtCoeffs.npyPK!+ ԏper_db32_64_ma.npyPK!,geTper_db32_64_md.npyPK!Q'4per_db32_64_ma_pywtCoeffs.npyPK! per_db32_64_md_pywtCoeffs.npyPK!lxxasym_db32_64_ma.npyPK!xxSasym_db32_64_md.npyPK!ӛtxxasym_db32_64_ma_pywtCoeffs.npyPK!?Yxxasym_db32_64_md_pywtCoeffs.npyPK!Fxxdasymw_db32_64_ma.npyPK!rxxasymw_db32_64_md.npyPK!z Ixxasymw_db32_64_ma_pywtCoeffs.npyPK!lwxxmasymw_db32_64_md_pywtCoeffs.npyPK!""zpd_db32_65_ma.npyPK!]Үzpd_db32_65_md.npyPK! zzpd_db32_65_ma_pywtCoeffs.npyPK!\wހ=zpd_db32_65_md_pywtCoeffs.npyPK!pmsp0_db32_65_ma.npyPK! qsp0_db32_65_md.npyPK!,jXsp0_db32_65_ma_pywtCoeffs.npyPK!3Nsp0_db32_65_md_pywtCoeffs.npyPK!:sym_db32_65_ma.npyPK!~sym_db32_65_md.npyPK!!.sym_db32_65_ma_pywtCoeffs.npyPK!p=sym_db32_65_md_pywtCoeffs.npyPK!`symw_db32_65_ma.npyPK!'$Usymw_db32_65_md.npyPK!Pk3symw_db32_65_ma_pywtCoeffs.npyPK!7 symw_db32_65_md_pywtCoeffs.npyPK!/p~ppd_db32_65_ma.npyPK!򰇢.ppd_db32_65_md.npyPK!h\ppd_db32_65_ma_pywtCoeffs.npyPK!ѻppd_db32_65_md_pywtCoeffs.npyPK!C>Tsp1_db32_65_ma.npyPK!|€sp1_db32_65_md.npyPK!iô sp1_db32_65_ma_pywtCoeffs.npyPK!~Vosp1_db32_65_md_pywtCoeffs.npyPK!*}*per_db32_65_ma.npyPK!Cper_db32_65_md.npyPK!+XHqper_db32_65_ma_pywtCoeffs.npyPK!͈]per_db32_65_md_pywtCoeffs.npyPK!ǂ2 asym_db32_65_ma.npyPK!$asym_db32_65_md.npyPK!ˀasym_db32_65_ma_pywtCoeffs.npyPK!ܳ>asym_db32_65_md_pywtCoeffs.npyPK!;:Ѐasymw_db32_65_ma.npyPK!Masymw_db32_65_md.npyPK!^asymw_db32_65_ma_pywtCoeffs.npyPK!jasymw_db32_65_md_pywtCoeffs.npyPK!NA zpd_db33_66_ma.npyPK!& zpd_db33_66_md.npyPK!MeHzpd_db33_66_ma_pywtCoeffs.npyPK!\% zpd_db33_66_md_pywtCoeffs.npyPK! %sp0_db33_66_ma.npyPK!@sp0_db33_66_md.npyPK!f D>sp0_db33_66_ma_pywtCoeffs.npyPK!jsp0_db33_66_md_pywtCoeffs.npyPK!/sym_db33_66_ma.npyPK!s_e|"sym_db33_66_md.npyPK! |\4%sym_db33_66_ma_pywtCoeffs.npyPK!C'sym_db33_66_md_pywtCoeffs.npyPK!/˯^*symw_db33_66_ma.npyPK!҈s-symw_db33_66_md.npyPK!Y,0symw_db33_66_ma_pywtCoeffs.npyPK!`݈2symw_db33_66_md_pywtCoeffs.npyPK!75ppd_db33_66_ma.npyPK!+l8ppd_db33_66_md.npyPK!HȂ$;ppd_db33_66_ma_pywtCoeffs.npyPK!2M=ppd_db33_66_md_pywtCoeffs.npyPK!ETx@sp1_db33_66_ma.npyPK!}؈bCsp1_db33_66_md.npyPK!}MFsp1_db33_66_ma_pywtCoeffs.npyPK!b;Hsp1_db33_66_md_pywtCoeffs.npyPK!Q"-Kper_db33_66_ma.npyPK!0XMper_db33_66_md.npyPK!Oper_db33_66_ma_pywtCoeffs.npyPK!6Pper_db33_66_md_pywtCoeffs.npyPK!zqRasym_db33_66_ma.npyPK!8TOUasym_db33_66_md.npyPK![YXasym_db33_66_ma_pywtCoeffs.npyPK!1,'pZasym_db33_66_md_pywtCoeffs.npyPK!]asymw_db33_66_ma.npyPK!kx9J`asymw_db33_66_md.npyPK!{҈casymw_db33_66_ma_pywtCoeffs.npyPK!x[Geasymw_db33_66_md_pywtCoeffs.npyPK!dzIhzpd_db33_67_ma.npyPK!Ի$Nkzpd_db33_67_md.npyPK!="Hnzpd_db33_67_ma_pywtCoeffs.npyPK!͐pzpd_db33_67_md_pywtCoeffs.npyPK!UGssp0_db33_67_ma.npyPK!dvsp0_db33_67_md.npyPK!5v$ysp0_db33_67_ma_pywtCoeffs.npyPK!w){sp0_db33_67_md_pywtCoeffs.npyPK!uې~sym_db33_67_ma.npyPK!H=Zvzsym_db33_67_md.npyPK!Z+:sym_db33_67_ma_pywtCoeffs.npyPK!*sym_db33_67_md_pywtCoeffs.npyPK!SBЉsymw_db33_67_ma.npyPK! symw_db33_67_md.npyPK!2Rsymw_db33_67_ma_pywtCoeffs.npyPK!6symw_db33_67_md_pywtCoeffs.npyPK!Ueppd_db33_67_ma.npyPK!~ppd_db33_67_md.npyPK!{ѐjppd_db33_67_ma_pywtCoeffs.npyPK!=%5ppd_db33_67_md_pywtCoeffs.npyPK!sp1_db33_67_ma.npyPK!Mqאsp1_db33_67_md.npyPK!~sp1_db33_67_ma_pywtCoeffs.npyPK!Ksp1_db33_67_md_pywtCoeffs.npyPK!tNper_db33_67_ma.npyPK!n*֬per_db33_67_md.npyPK!Jΐper_db33_67_ma_pywtCoeffs.npyPK!"}aper_db33_67_md_pywtCoeffs.npyPK!|G,asym_db33_67_ma.npyPK!-z`Vasym_db33_67_md.npyPK!jasym_db33_67_ma_pywtCoeffs.npyPK!i;zasym_db33_67_md_pywtCoeffs.npyPK!4Fasymw_db33_67_ma.npyPK!?asymw_db33_67_md.npyPK!asymw_db33_67_ma_pywtCoeffs.npyPK!Basymw_db33_67_md_pywtCoeffs.npyPK!Hdzpd_db34_68_ma.npyPK!7,zpd_db34_68_md.npyPK!Y&zpd_db34_68_ma_pywtCoeffs.npyPK!)zpd_db34_68_md_pywtCoeffs.npyPK!eEsp0_db34_68_ma.npyPK!sp1_db34_68_md.npyPK!Msp1_db34_68_ma_pywtCoeffs.npyPK!x0sp1_db34_68_md_pywtCoeffs.npyPK!ߐ per_db34_68_ma.npyPK!lYul per_db34_68_md.npyPK!"1|,per_db34_68_ma_pywtCoeffs.npyPK!0per_db34_68_md_pywtCoeffs.npyPK!-G4asym_db34_68_ma.npyPK!`asym_db34_68_md.npyPK! LTasym_db34_68_ma_pywtCoeffs.npyPK! -(asym_db34_68_md_pywtCoeffs.npyPK!.asymw_db34_68_ma.npyPK! asymw_db34_68_md.npyPK!t#asymw_db34_68_ma_pywtCoeffs.npyPK!; F~e&asymw_db34_68_md_pywtCoeffs.npyPK!v:)zpd_db34_69_ma.npyPK!Dz@ ,zpd_db34_69_md.npyPK!b.zpd_db34_69_ma_pywtCoeffs.npyPK!~ 1zpd_db34_69_md_pywtCoeffs.npyPK!334sp0_db34_69_ma.npyPK!n5_q`7sp0_db34_69_md.npyPK!0:sp0_db34_69_ma_pywtCoeffs.npyPK!k  =sp0_db34_69_md_pywtCoeffs.npyPK!$o?sym_db34_69_ma.npyPK!BBsym_db34_69_md.npyPK!ς.Esym_db34_69_ma_pywtCoeffs.npyPK!zAݠaHsym_db34_69_md_pywtCoeffs.npyPK!asymw_db34_69_ma.npyPK!EVasymw_db34_69_md.npyPK! jEvasymw_db34_69_ma_pywtCoeffs.npyPK!5Sasymw_db34_69_md_pywtCoeffs.npyPK!1T+0zpd_db35_70_ma.npyPK!9.zpd_db35_70_md.npyPK!( Pzpd_db35_70_ma_pywtCoeffs.npyPK!kÓzpd_db35_70_md_pywtCoeffs.npyPK!J'sp0_db35_70_ma.npyPK!#~sp0_db35_70_md.npyPK!n|(`Vsp0_db35_70_ma_pywtCoeffs.npyPK!i9sp0_db35_70_md_pywtCoeffs.npyPK!A2Ǩsym_db35_70_ma.npyPK!0߇sym_db35_70_md.npyPK!9ģsym_db35_70_ma_pywtCoeffs.npyPK!fsym_db35_70_md_pywtCoeffs.npyPK!S3Esymw_db35_70_ma.npyPK!4<ksymw_db35_70_md.npyPK!2|}Dsymw_db35_70_ma_pywtCoeffs.npyPK!w(symw_db35_70_md_pywtCoeffs.npyPK!" ppd_db35_70_ma.npyPK!;0Ԩppd_db35_70_md.npyPK!;Izppd_db35_70_ma_pywtCoeffs.npyPK!Hڨppd_db35_70_md_pywtCoeffs.npyPK!XJsp1_db35_70_ma.npyPK!)ϨZsp1_db35_70_md.npyPK!i 2sp1_db35_70_ma_pywtCoeffs.npyPK!ZQsp1_db35_70_md_pywtCoeffs.npyPK!Zxper_db35_70_ma.npyPK!& eper_db35_70_md.npyPK!S=per_db35_70_ma_pywtCoeffs.npyPK!E_[per_db35_70_md_pywtCoeffs.npyPK! }.asym_db35_70_ma.npyPK!Jasym_db35_70_md.npyPK!&\0asym_db35_70_ma_pywtCoeffs.npyPK!7wasym_db35_70_md_pywtCoeffs.npyPK!,asymw_db35_70_ma.npyPK!nasymw_db35_70_md.npyPK!}\asymw_db35_70_ma_pywtCoeffs.npyPK!AAasymw_db35_70_md_pywtCoeffs.npyPK!Yjc&zpd_db35_71_ma.npyPK!'Yzpd_db35_71_md.npyPK!ʔdrzpd_db35_71_ma_pywtCoeffs.npyPK!1Nzpd_db35_71_md_pywtCoeffs.npyPK! Fsp0_db35_71_ma.npyPK!vZpsp0_db35_71_md.npyPK!Ӹ,F|sp0_db35_71_ma_pywtCoeffs.npyPK![uKgsp0_db35_71_md_pywtCoeffs.npyPK!/Rsym_db35_71_ma.npyPK! ;{m2sym_db35_71_md.npyPK!а sym_db35_71_ma_pywtCoeffs.npyPK!IU6° sym_db35_71_md_pywtCoeffs.npyPK!5 Ysymw_db35_71_ma.npyPK!j]symw_db35_71_md.npyPK!轷symw_db35_71_ma_pywtCoeffs.npyPK!6nsymw_db35_71_md_pywtCoeffs.npyPK!ϰppd_db35_71_ma.npyPK!]bppd_db35_71_md.npyPK!x៰B"ppd_db35_71_ma_pywtCoeffs.npyPK!>O -%ppd_db35_71_md_pywtCoeffs.npyPK!(sp1_db35_71_ma.npyPK!*sp1_db35_71_md.npyPK! F-sp1_db35_71_ma_pywtCoeffs.npyPK!e˶0sp1_db35_71_md_pywtCoeffs.npyPK!clU3per_db35_71_ma.npyPK!+~5per_db35_71_md.npyPK!hw N7per_db35_71_ma_pywtCoeffs.npyPK!?Ӡ)9per_db35_71_md_pywtCoeffs.npyPK!}H;asym_db35_71_ma.npyPK! P=asym_db35_71_md.npyPK!JAǰ@asym_db35_71_ma_pywtCoeffs.npyPK!%ҞCasym_db35_71_md_pywtCoeffs.npyPK!G#Fasymw_db35_71_ma.npyPK!Iasymw_db35_71_md.npyPK!۵obLasymw_db35_71_ma_pywtCoeffs.npyPK!ZOOasymw_db35_71_md_pywtCoeffs.npyPK!vmasym_db36_72_ma_pywtCoeffs.npyPK! (asym_db36_72_md_pywtCoeffs.npyPK!a.asymw_db36_72_ma.npyPK!{и~asymw_db36_72_md.npyPK!Shasymw_db36_72_ma_pywtCoeffs.npyPK!ԏC]asymw_db36_72_md_pywtCoeffs.npyPK!<ަRzpd_db36_73_ma.npyPK!ZgBzpd_db36_73_md.npyPK!u 2zpd_db36_73_ma_pywtCoeffs.npyPK!B-zpd_db36_73_md_pywtCoeffs.npyPK!V(sp0_db36_73_ma.npyPK!=TBsp0_db36_73_md.npyPK!:Osp0_db36_73_ma_pywtCoeffs.npyPK!|tsp0_db36_73_md_pywtCoeffs.npyPK!Asym_db36_73_ma.npyPK!E_sym_db36_73_md.npyPK!(Mַsym_db36_73_ma_pywtCoeffs.npyPK!/Wsym_db36_73_md_pywtCoeffs.npyPK! =symw_db36_73_ma.npyPK!;symw_db36_73_md.npyPK!symw_db36_73_ma_pywtCoeffs.npyPK!dcrsymw_db36_73_md_pywtCoeffs.npyPK!owEppd_db36_73_ma.npyPK!]ZWppd_db36_73_md.npyPK! !ppd_db36_73_ma_pywtCoeffs.npyPK!AVppd_db36_73_md_pywtCoeffs.npyPK!q{Ssp1_db36_73_ma.npyPK!>tsp1_db36_73_md.npyPK!~ dsp1_db36_73_ma_pywtCoeffs.npyPK!_sp1_db36_73_md_pywtCoeffs.npyPK! Zper_db36_73_ma.npyPK!l["2per_db36_73_md.npyPK!x= per_db36_73_ma_pywtCoeffs.npyPK! {cper_db36_73_md_pywtCoeffs.npyPK!.#asym_db36_73_ma.npyPK!9]asym_db36_73_md.npyPK!L5[ asym_db36_73_ma_pywtCoeffs.npyPK![pasym_db36_73_md_pywtCoeffs.npyPK!dasymw_db36_73_ma.npyPK!}2gyasymw_db36_73_md.npyPK!vasymw_db36_73_ma_pywtCoeffs.npyPK!][Q"asymw_db36_73_md_pywtCoeffs.npyPK!Tٛzpd_db37_74_ma.npyPK!  zpd_db37_74_md.npyPK!1dx#zpd_db37_74_ma_pywtCoeffs.npyPK!q{&zpd_db37_74_md_pywtCoeffs.npyPK!oY~)sp0_db37_74_ma.npyPK!1v,sp0_db37_74_md.npyPK!&n/sp0_db37_74_ma_pywtCoeffs.npyPK!Oسq2sp0_db37_74_md_pywtCoeffs.npyPK!!t5sym_db37_74_ma.npyPK!ifl8sym_db37_74_md.npyPK!d;sym_db37_74_ma_pywtCoeffs.npyPK!,g>sym_db37_74_md_pywtCoeffs.npyPK!%jAsymw_db37_74_ma.npyPK!cDsymw_db37_74_md.npyPK!"U\Gsymw_db37_74_ma_pywtCoeffs.npyPK!V8`Jsymw_db37_74_md_pywtCoeffs.npyPK!dMppd_db37_74_ma.npyPK!i\Pppd_db37_74_md.npyPK!C7TSppd_db37_74_ma_pywtCoeffs.npyPK!+SWVppd_db37_74_md_pywtCoeffs.npyPK!ZYsp1_db37_74_ma.npyPK!/R\sp1_db37_74_md.npyPK! <J_sp1_db37_74_ma_pywtCoeffs.npyPK!7RHMbsp1_db37_74_md_pywtCoeffs.npyPK!V oPeper_db37_74_ma.npyPK!0 N(gper_db37_74_md.npyPK!miper_db37_74_ma_pywtCoeffs.npyPK!ujper_db37_74_md_pywtCoeffs.npyPK!zlasym_db37_74_ma.npyPK!yzoasym_db37_74_md.npyPK!*Frasym_db37_74_ma_pywtCoeffs.npyPK!w uasym_db37_74_md_pywtCoeffs.npyPK!uxasymw_db37_74_ma.npyPK!,4{asymw_db37_74_md.npyPK!:e~asymw_db37_74_ma_pywtCoeffs.npyPK!ugMasymw_db37_74_md_pywtCoeffs.npyPK!bwzpd_db37_75_ma.npyPK!dzpd_db37_75_md.npyPK!sܱzpd_db37_75_ma_pywtCoeffs.npyPK!Hɍzpd_db37_75_md_pywtCoeffs.npyPK!֍wԐsp0_db37_75_ma.npyPK!Ѣ4ԓsp0_db37_75_md.npyPK!_7Ԗsp0_db37_75_ma_pywtCoeffs.npyPK!z8ߙsp0_db37_75_md_pywtCoeffs.npyPK!A-sym_db37_75_ma.npyPK!F˶sym_db37_75_md.npyPK!nsym_db37_75_ma_pywtCoeffs.npyPK!Aisym_db37_75_md_pywtCoeffs.npyPK!(symw_db37_75_ma.npyPK!PGsymw_db37_75_md.npyPK! symw_db37_75_ma_pywtCoeffs.npyPK!hKEsymw_db37_75_md_pywtCoeffs.npyPK!]S|ppd_db37_75_ma.npyPK!\_ppd_db37_75_md.npyPK!ګSppd_db37_75_ma_pywtCoeffs.npyPK!ەZ%ppd_db37_75_md_pywtCoeffs.npyPK!s0sp1_db37_75_ma.npyPK!z0sp1_db37_75_md.npyPK!I90sp1_db37_75_ma_pywtCoeffs.npyPK!Ӽ^;sp1_db37_75_md_pywtCoeffs.npyPK!OjFper_db37_75_ma.npyPK!J&g&per_db37_75_md.npyPK!Rper_db37_75_ma_pywtCoeffs.npyPK!ذper_db37_75_md_pywtCoeffs.npyPK!^aOasym_db37_75_ma.npyPK!Yasym_db37_75_md.npyPK!'Zasym_db37_75_ma_pywtCoeffs.npyPK!$#'Easym_db37_75_md_pywtCoeffs.npyPK!;asymw_db37_75_ma.npyPK!?;asymw_db37_75_md.npyPK!i/asymw_db37_75_ma_pywtCoeffs.npyPK!gFasymw_db37_75_md_pywtCoeffs.npyPK!azpd_db38_76_ma.npyPK!(Fzpd_db38_76_md.npyPK!`4ai$zpd_db38_76_ma_pywtCoeffs.npyPK!At7zpd_db38_76_md_pywtCoeffs.npyPK!urJsp0_db38_76_ma.npyPK!WRsp0_db38_76_md.npyPK!x3Zsp0_db38_76_ma_pywtCoeffs.npyPK!.\msp0_db38_76_md_pywtCoeffs.npyPK!EZYsym_db38_76_ma.npyPK!|symw_sym2_4_md.npyPK!psymw_sym2_4_ma_pywtCoeffs.npyPK!Tksymw_sym2_4_md_pywtCoeffs.npyPK!J3ppd_sym2_4_ma.npyPK!^sppd_sym2_4_md.npyPK!J3:ppd_sym2_4_ma_pywtCoeffs.npyPK!^ ppd_sym2_4_md_pywtCoeffs.npyPK!fИsp1_sym2_4_ma.npyPK!\טsp1_sym2_4_md.npyPK!fИlsp1_sym2_4_ma_pywtCoeffs.npyPK!\ט>sp1_sym2_4_md_pywtCoeffs.npyPK!per_sym2_4_ma.npyPK!&per_sym2_4_md.npyPK!per_sym2_4_ma_pywtCoeffs.npyPK!&Xper_sym2_4_md_pywtCoeffs.npyPK!kܘ"asym_sym2_4_ma.npyPK!uasym_sym2_4_md.npyPK!kܘasym_sym2_4_ma_pywtCoeffs.npyPK!uasym_sym2_4_md_pywtCoeffs.npyPK!WXasymw_sym2_4_ma.npyPK!&Ft!asymw_sym2_4_md.npyPK!Wasymw_sym2_4_ma_pywtCoeffs.npyPK!&Ftasymw_sym2_4_md_pywtCoeffs.npyPK!zpd_sym2_5_ma.npyPK!|azpd_sym2_5_md.npyPK!0zpd_sym2_5_ma_pywtCoeffs.npyPK!| zpd_sym2_5_md_pywtCoeffs.npyPK!Dsp0_sym2_5_ma.npyPK!tlnsp0_sym2_5_md.npyPK!Dsp0_sym2_5_ma_pywtCoeffs.npyPK!tln\sp0_sym2_5_md_pywtCoeffs.npyPK!p^Ze6sym_sym2_5_ma.npyPK!ˆ<sym_sym2_5_md.npyPK!p^Zesym_sym2_5_ma_pywtCoeffs.npyPK!ˆ<sym_sym2_5_md_pywtCoeffs.npyPK!vʠsymw_sym2_5_ma.npyPK!?~Xsymw_sym2_5_md.npyPK!vʠ(symw_sym2_5_ma_pywtCoeffs.npyPK!?~symw_sym2_5_md_pywtCoeffs.npyPK!KMppd_sym2_5_ma.npyPK!+*e ppd_sym2_5_md.npyPK!KM|ppd_sym2_5_ma_pywtCoeffs.npyPK!+*e Vppd_sym2_5_md_pywtCoeffs.npyPK!j0sp1_sym2_5_ma.npyPK!4sp1_sym2_5_md.npyPK!jsp1_sym2_5_ma_pywtCoeffs.npyPK!4sp1_sym2_5_md_pywtCoeffs.npyPK! per_sym2_5_ma.npyPK!jSIper_sym2_5_md.npyPK! per_sym2_5_ma_pywtCoeffs.npyPK!jSper_sym2_5_md_pywtCoeffs.npyPK!~Kmasym_sym2_5_ma.npyPK!Masym_sym2_5_md.npyPK!~KmTasym_sym2_5_ma_pywtCoeffs.npyPK!M/asym_sym2_5_md_pywtCoeffs.npyPK!'۠ asymw_sym2_5_ma.npyPK!Ȋasymw_sym2_5_md.npyPK!'۠asymw_sym2_5_ma_pywtCoeffs.npyPK!Ȋasymw_sym2_5_md_pywtCoeffs.npyPK!dzpd_sym3_6_ma.npyPK!:?;zpd_sym3_6_md.npyPK!zpd_sym3_6_ma_pywtCoeffs.npyPK!:?zpd_sym3_6_md_pywtCoeffs.npyPK!(sp0_sym3_6_ma.npyPK!Fsp0_sym3_6_md.npyPK!(sp0_sym3_6_ma_pywtCoeffs.npyPK!Ffsp0_sym3_6_md_pywtCoeffs.npyPK!57Hsym_sym3_6_ma.npyPK!dȓsym_sym3_6_md.npyPK!57sym_sym3_6_ma_pywtCoeffs.npyPK!dȓsym_sym3_6_md_pywtCoeffs.npyPK!wGsymw_sym3_6_ma.npyPK! dsymw_sym3_6_md.npyPK!wGjsymw_sym3_6_ma_pywtCoeffs.npyPK! dMsymw_sym3_6_md_pywtCoeffs.npyPK!>1\u0 ppd_sym3_6_ma.npyPK!%Z ppd_sym3_6_md.npyPK!>1\u ppd_sym3_6_ma_pywtCoeffs.npyPK!%Z ppd_sym3_6_md_pywtCoeffs.npyPK!Ҩ sp1_sym3_6_ma.npyPK!t!y sp1_sym3_6_md.npyPK!ҨPsp1_sym3_6_ma_pywtCoeffs.npyPK!t!2sp1_sym3_6_md_pywtCoeffs.npyPK!oper_sym3_6_ma.npyPK!.per_sym3_6_md.npyPK!oper_sym3_6_ma_pywtCoeffs.npyPK!.tper_sym3_6_md_pywtCoeffs.npyPK!#2Fasym_sym3_6_ma.npyPK!_Uasym_sym3_6_md.npyPK!#2asym_sym3_6_ma_pywtCoeffs.npyPK!_Uasym_sym3_6_md_pywtCoeffs.npyPK!_֨asymw_sym3_6_ma.npyPK! Xasymw_sym3_6_md.npyPK!_֨nasymw_sym3_6_ma_pywtCoeffs.npyPK! XRasymw_sym3_6_md_pywtCoeffs.npyPK!3<6zpd_sym3_7_ma.npyPK! >zpd_sym3_7_md.npyPK!3<zpd_sym3_7_ma_pywtCoeffs.npyPK! >zpd_sym3_7_md_pywtCoeffs.npyPK!:P sp0_sym3_7_ma.npyPK!a)sp0_sym3_7_md.npyPK!:P sp0_sym3_7_ma_pywtCoeffs.npyPK!a)p sp0_sym3_7_md_pywtCoeffs.npyPK!>bZ!sym_sym3_7_ma.npyPK!t<9"sym_sym3_7_md.npyPK!>b#sym_sym3_7_ma_pywtCoeffs.npyPK!t<$sym_sym3_7_md_pywtCoeffs.npyPK!~$symw_sym3_7_ma.npyPK!Ubf%symw_sym3_7_md.npyPK!~&symw_sym3_7_ma_pywtCoeffs.npyPK!Ubf'symw_sym3_7_md_pywtCoeffs.npyPK!g(ppd_sym3_7_ma.npyPK!ZMa)ppd_sym3_7_md.npyPK!g@*ppd_sym3_7_ma_pywtCoeffs.npyPK!ZM*+ppd_sym3_7_md_pywtCoeffs.npyPK!GX,sp1_sym3_7_ma.npyPK!Òv,sp1_sym3_7_md.npyPK!GX-sp1_sym3_7_ma_pywtCoeffs.npyPK!Òv.sp1_sym3_7_md_pywtCoeffs.npyPK!VZ4/per_sym3_7_ma.npyPK!+Ѡu0per_sym3_7_md.npyPK!VZ4D1per_sym3_7_ma_pywtCoeffs.npyPK!+Ѡ2per_sym3_7_md_pywtCoeffs.npyPK!հ2asym_sym3_7_ma.npyPK!Ak3asym_sym3_7_md.npyPK!հ4asym_sym3_7_ma_pywtCoeffs.npyPK!Ak5asym_sym3_7_md_pywtCoeffs.npyPK!X16asymw_sym3_7_ma.npyPK!]֑o7asymw_sym3_7_md.npyPK!X1P8asymw_sym3_7_ma_pywtCoeffs.npyPK!]֑<9asymw_sym3_7_md_pywtCoeffs.npyPK!'(:zpd_sym4_8_ma.npyPK!r;zpd_sym4_8_md.npyPK!';zpd_sym4_8_ma_pywtCoeffs.npyPK!r<zpd_sym4_8_md_pywtCoeffs.npyPK!^. ͸=sp0_sym4_8_ma.npyPK!u+)ø>sp0_sym4_8_md.npyPK!^. ͸?sp0_sym4_8_ma_pywtCoeffs.npyPK!u+)ø@sp0_sym4_8_md_pywtCoeffs.npyPK!Ĭ3Asym_sym4_8_ma.npyPK!/-sBsym_sym4_8_md.npyPK!Ĭ3ZCsym_sym4_8_ma_pywtCoeffs.npyPK!/-LDsym_sym4_8_md_pywtCoeffs.npyPK!js>Esymw_sym4_8_ma.npyPK!7'ɂ&Fsymw_sym4_8_md.npyPK!jsGsymw_sym4_8_ma_pywtCoeffs.npyPK!7'ɂHsymw_sym4_8_md_pywtCoeffs.npyPK!$nHppd_sym4_8_ma.npyPK!1„dIppd_sym4_8_md.npyPK!$nJppd_sym4_8_ma_pywtCoeffs.npyPK!1„dKppd_sym4_8_md_pywtCoeffs.npyPK!1Lsp1_sym4_8_ma.npyPK!7Msp1_sym4_8_md.npyPK!1tNsp1_sym4_8_ma_pywtCoeffs.npyPK!7fOsp1_sym4_8_md_pywtCoeffs.npyPK!fXPper_sym4_8_ma.npyPK!PQ'Qper_sym4_8_md.npyPK!fQper_sym4_8_ma_pywtCoeffs.npyPK!PQRper_sym4_8_md_pywtCoeffs.npyPK!=5Sasym_sym4_8_ma.npyPK!$䫸Tasym_sym4_8_md.npyPK!=5zUasym_sym4_8_ma_pywtCoeffs.npyPK!$䫸mVasym_sym4_8_md_pywtCoeffs.npyPK!}`Wasymw_sym4_8_ma.npyPK!XIXasymw_sym4_8_md.npyPK!}2Yasymw_sym4_8_ma_pywtCoeffs.npyPK!X&Zasymw_sym4_8_md_pywtCoeffs.npyPK!/"[zpd_sym4_9_ma.npyPK!H \zpd_sym4_9_md.npyPK!/"\zpd_sym4_9_ma_pywtCoeffs.npyPK!H]zpd_sym4_9_md_pywtCoeffs.npyPK!:H}^sp0_sym4_9_ma.npyPK!ѫ_sp0_sym4_9_md.npyPK!:H}`sp0_sym4_9_ma_pywtCoeffs.npyPK!ѫasp0_sym4_9_md_pywtCoeffs.npyPK!9;bsym_sym4_9_ma.npyPK!n~csym_sym4_9_md.npyPK!9;dsym_sym4_9_ma_pywtCoeffs.npyPK!n~esym_sym4_9_md_pywtCoeffs.npyPK!|fsymw_sym4_9_ma.npyPK!owgsymw_sym4_9_md.npyPK!|phsymw_sym4_9_ma_pywtCoeffs.npyPK!owkisymw_sym4_9_md_pywtCoeffs.npyPK!f6fjppd_sym4_9_ma.npyPK!VyUkppd_sym4_9_md.npyPK!f6Dlppd_sym4_9_ma_pywtCoeffs.npyPK!Vy>mppd_sym4_9_md_pywtCoeffs.npyPK!2g18nsp1_sym4_9_ma.npyPK!Q:,'osp1_sym4_9_md.npyPK!2g1psp1_sym4_9_ma_pywtCoeffs.npyPK!Q:,qsp1_sym4_9_md_pywtCoeffs.npyPK!rߨ rper_sym4_9_ma.npyPK!WOrper_sym4_9_md.npyPK!rߨsper_sym4_9_ma_pywtCoeffs.npyPK!WOtper_sym4_9_md_pywtCoeffs.npyPK!Ռr|uasym_sym4_9_ma.npyPK!חlvasym_sym4_9_md.npyPK!Ռr\wasym_sym4_9_ma_pywtCoeffs.npyPK!חWxasym_sym4_9_md_pywtCoeffs.npyPK!,HRyasymw_sym4_9_ma.npyPK!Czasymw_sym4_9_md.npyPK!,H4{asymw_sym4_9_ma_pywtCoeffs.npyPK!0|asymw_sym4_9_md_pywtCoeffs.npyPK!^,}zpd_sym5_10_ma.npyPK!X$~zpd_sym5_10_md.npyPK!^zpd_sym5_10_ma_pywtCoeffs.npyPK!Xzpd_sym5_10_md_pywtCoeffs.npyPK!7"sp0_sym5_10_ma.npyPK!ssp0_sym5_10_md.npyPK!7sp0_sym5_10_ma_pywtCoeffs.npyPK!ssp0_sym5_10_md_pywtCoeffs.npyPK!:K9sym_sym5_10_ma.npyPK!sym_sym5_10_md.npyPK!:K9sym_sym5_10_ma_pywtCoeffs.npyPK! sym_sym5_10_md_pywtCoeffs.npyPK!iNHsymw_sym5_10_ma.npyPK!L{symw_sym5_10_md.npyPK!iNHsymw_sym5_10_ma_pywtCoeffs.npyPK!L{symw_sym5_10_md_pywtCoeffs.npyPK!O$Qppd_sym5_10_ma.npyPK!Zppd_sym5_10_md.npyPK!O$Qppd_sym5_10_ma_pywtCoeffs.npyPK!Zppd_sym5_10_md_pywtCoeffs.npyPK!sp1_sym5_10_ma.npyPK!Jusp1_sym5_10_md.npyPK!sp1_sym5_10_ma_pywtCoeffs.npyPK!Jusp1_sym5_10_md_pywtCoeffs.npyPK!)̨per_sym5_10_ma.npyPK![̕per_sym5_10_md.npyPK!)̨per_sym5_10_ma_pywtCoeffs.npyPK![per_sym5_10_md_pywtCoeffs.npyPK!X+jasym_sym5_10_ma.npyPK!{casym_sym5_10_md.npyPK!X+\asym_sym5_10_ma_pywtCoeffs.npyPK!{`asym_sym5_10_md_pywtCoeffs.npyPK!Xdasymw_sym5_10_ma.npyPK!v^asymw_sym5_10_md.npyPK!XXasymw_sym5_10_ma_pywtCoeffs.npyPK!v]asymw_sym5_10_md_pywtCoeffs.npyPK!bzpd_sym5_11_ma.npyPK!I̞bzpd_sym5_11_md.npyPK!bzpd_sym5_11_ma_pywtCoeffs.npyPK!I̞mzpd_sym5_11_md_pywtCoeffs.npyPK!txsp0_sym5_11_ma.npyPK!cxsp0_sym5_11_md.npyPK!txsp0_sym5_11_ma_pywtCoeffs.npyPK!csp0_sym5_11_md_pywtCoeffs.npyPK!psym_sym5_11_ma.npyPK!usym_sym5_11_md.npyPK!psym_sym5_11_ma_pywtCoeffs.npyPK!usym_sym5_11_md_pywtCoeffs.npyPK!fsymw_sym5_11_ma.npyPK!Ǟ.symw_sym5_11_md.npyPK!fsymw_sym5_11_ma_pywtCoeffs.npyPK!Ǟ.symw_sym5_11_md_pywtCoeffs.npyPK!f/ppd_sym5_11_ma.npyPK!c3}ppd_sym5_11_md.npyPK!f/ppd_sym5_11_ma_pywtCoeffs.npyPK!c3}ɳppd_sym5_11_md_pywtCoeffs.npyPK!JԴsp1_sym5_11_ma.npyPK!`Եsp1_sym5_11_md.npyPK!JԶsp1_sym5_11_ma_pywtCoeffs.npyPK!`߷sp1_sym5_11_md_pywtCoeffs.npyPK!_ Qper_sym5_11_ma.npyPK!UJ,ʹper_sym5_11_md.npyPK!_ Qper_sym5_11_ma_pywtCoeffs.npyPK!UJ,per_sym5_11_md_pywtCoeffs.npyPK!AݡTasym_sym5_11_ma.npyPK!r3asym_sym5_11_md.npyPK!AݡTasym_sym5_11_ma_pywtCoeffs.npyPK!r3asym_sym5_11_md_pywtCoeffs.npyPK!asymw_sym5_11_ma.npyPK!CRasymw_sym5_11_md.npyPK!asymw_sym5_11_ma_pywtCoeffs.npyPK!CRasymw_sym5_11_md_pywtCoeffs.npyPK!vRzpd_sym6_12_ma.npyPK!jzpd_sym6_12_md.npyPK!vRzpd_sym6_12_ma_pywtCoeffs.npyPK!jzpd_sym6_12_md_pywtCoeffs.npyPK!@5sp0_sym6_12_ma.npyPK!ˋ̀sp0_sym6_12_md.npyPK!@5sp0_sym6_12_ma_pywtCoeffs.npyPK!ˋ̀sp0_sym6_12_md_pywtCoeffs.npyPK!o&8$sym_sym6_12_ma.npyPK!,sym_sym6_12_md.npyPK!o&84sym_sym6_12_ma_pywtCoeffs.npyPK!Gsym_sym6_12_md_pywtCoeffs.npyPK!'iZsymw_sym6_12_ma.npyPK!6Bcsymw_sym6_12_md.npyPK!'ilsymw_sym6_12_ma_pywtCoeffs.npyPK!6Bsymw_sym6_12_md_pywtCoeffs.npyPK!Fhppd_sym6_12_ma.npyPK!WK#ppd_sym6_12_md.npyPK!Fhppd_sym6_12_ma_pywtCoeffs.npyPK!WK#ppd_sym6_12_md_pywtCoeffs.npyPK!;sp1_sym6_12_ma.npyPK!f 2sp1_sym6_12_md.npyPK!;sp1_sym6_12_ma_pywtCoeffs.npyPK!f 2sp1_sym6_12_md_pywtCoeffs.npyPK!\Nper_sym6_12_ma.npyPK!\Uper_sym6_12_md.npyPK!\Nper_sym6_12_ma_pywtCoeffs.npyPK!\Uper_sym6_12_md_pywtCoeffs.npyPK!Gasym_sym6_12_ma.npyPK!Xasym_sym6_12_md.npyPK!Gasym_sym6_12_ma_pywtCoeffs.npyPK!Xasym_sym6_12_md_pywtCoeffs.npyPK!+asymw_sym6_12_ma.npyPK!asymw_sym6_12_md.npyPK!+asymw_sym6_12_ma_pywtCoeffs.npyPK!asymw_sym6_12_md_pywtCoeffs.npyPK!zpd_sym6_13_ma.npyPK!zpd_sym6_13_md.npyPK!.zpd_sym6_13_ma_pywtCoeffs.npyPK!Izpd_sym6_13_md_pywtCoeffs.npyPK! dsp0_sym6_13_ma.npyPK!\tsp0_sym6_13_md.npyPK! sp0_sym6_13_ma_pywtCoeffs.npyPK!\sp0_sym6_13_md_pywtCoeffs.npyPK!?Psym_sym6_13_ma.npyPK!sym_sym6_13_md.npyPK!?Psym_sym6_13_ma_pywtCoeffs.npyPK!sym_sym6_13_md_pywtCoeffs.npyPK!@wsymw_sym6_13_ma.npyPK!FR!symw_sym6_13_md.npyPK!@w2symw_sym6_13_ma_pywtCoeffs.npyPK!FRNsymw_sym6_13_md_pywtCoeffs.npyPK!s<jppd_sym6_13_ma.npyPK!Izppd_sym6_13_md.npyPK!s<ppd_sym6_13_ma_pywtCoeffs.npyPK!Ippd_sym6_13_md_pywtCoeffs.npyPK!2sp1_sym6_13_ma.npyPK!ײsp1_sym6_13_md.npyPK!2sp1_sym6_13_ma_pywtCoeffs.npyPK!ײsp1_sym6_13_md_pywtCoeffs.npyPK!JMper_sym6_13_ma.npyPK!@cper_sym6_13_md.npyPK!JMper_sym6_13_ma_pywtCoeffs.npyPK!@cper_sym6_13_md_pywtCoeffs.npyPK!ٲasym_sym6_13_ma.npyPK!asym_sym6_13_md.npyPK!ٲ asym_sym6_13_ma_pywtCoeffs.npyPK! asym_sym6_13_md_pywtCoeffs.npyPK! ~& asymw_sym6_13_ma.npyPK!ω8 asymw_sym6_13_md.npyPK! ~Jasymw_sym6_13_ma_pywtCoeffs.npyPK!ωgasymw_sym6_13_md_pywtCoeffs.npyPK!Gzpd_sym7_14_ma.npyPK!@ʐzpd_sym7_14_md.npyPK!Gzpd_sym7_14_ma_pywtCoeffs.npyPK!@ʐzpd_sym7_14_md_pywtCoeffs.npyPK!sp0_sym7_14_ma.npyPK!L )sp0_sym7_14_md.npyPK!*sp0_sym7_14_ma_pywtCoeffs.npyPK!L )Msp0_sym7_14_md_pywtCoeffs.npyPK!G psym_sym7_14_ma.npyPK!Zsym_sym7_14_md.npyPK!G sym_sym7_14_ma_pywtCoeffs.npyPK!Zsym_sym7_14_md_pywtCoeffs.npyPK!j 5symw_sym7_14_ma.npyPK!Gsymw_sym7_14_md.npyPK!j 5 symw_sym7_14_ma_pywtCoeffs.npyPK!Gsp0_sym7_15_ma_pywtCoeffs.npyPK!JWLg?sp0_sym7_15_md_pywtCoeffs.npyPK!&Asym_sym7_15_ma.npyPK! FBsym_sym7_15_md.npyPK!fCsym_sym7_15_ma_pywtCoeffs.npyPK! Dsym_sym7_15_md_pywtCoeffs.npyPK!Esymw_sym7_15_ma.npyPK!?Fsymw_sym7_15_md.npyPK!Gsymw_sym7_15_ma_pywtCoeffs.npyPK!?*Isymw_sym7_15_md_pywtCoeffs.npyPK!8VJppd_sym7_15_ma.npyPK!ivKppd_sym7_15_md.npyPK!8Lppd_sym7_15_ma_pywtCoeffs.npyPK!iMppd_sym7_15_md_pywtCoeffs.npyPK! eNsp1_sym7_15_ma.npyPK!= Psp1_sym7_15_md.npyPK! e,Qsp1_sym7_15_ma_pywtCoeffs.npyPK!=WRsp1_sym7_15_md_pywtCoeffs.npyPK!K Sper_sym7_15_ma.npyPK!;6rTper_sym7_15_md.npyPK!K bUper_sym7_15_ma_pywtCoeffs.npyPK!;6]Vper_sym7_15_md_pywtCoeffs.npyPK!c%XWasym_sym7_15_ma.npyPK!+yXasym_sym7_15_md.npyPK!c%Yasym_sym7_15_ma_pywtCoeffs.npyPK!+Zasym_sym7_15_md_pywtCoeffs.npyPK!ТQ[asymw_sym7_15_ma.npyPK!Ao]asymw_sym7_15_md.npyPK!ТQ6^asymw_sym7_15_ma_pywtCoeffs.npyPK!Aoc_asymw_sym7_15_md_pywtCoeffs.npyPK!#0`zpd_sym8_16_ma.npyPK!tazpd_sym8_16_md.npyPK!#0bzpd_sym8_16_ma_pywtCoeffs.npyPK!tdzpd_sym8_16_md_pywtCoeffs.npyPK!i?Fesp0_sym8_16_ma.npyPK!Htnfsp0_sym8_16_md.npyPK!i?gsp0_sym8_16_ma_pywtCoeffs.npyPK!Hthsp0_sym8_16_md_pywtCoeffs.npyPK!Aisym_sym8_16_ma.npyPK! t$ksym_sym8_16_md.npyPK!ALlsym_sym8_16_ma_pywtCoeffs.npyPK! tmsym_sym8_16_md_pywtCoeffs.npyPK!?nsymw_sym8_16_ma.npyPK!8osymw_sym8_16_md.npyPK!?qsymw_sym8_16_ma_pywtCoeffs.npyPK!88rsymw_sym8_16_md_pywtCoeffs.npyPK!ʼb`lsppd_sym8_16_ma.npyPK!{Ȩtppd_sym8_16_md.npyPK!ʼb`uppd_sym8_16_ma_pywtCoeffs.npyPK!{Ȩvppd_sym8_16_md_pywtCoeffs.npyPK!5)"xsp1_sym8_16_ma.npyPK!Mxq Jysp1_sym8_16_md.npyPK!5)rzsp1_sym8_16_ma_pywtCoeffs.npyPK!Mxq {sp1_sym8_16_md_pywtCoeffs.npyPK!ifh|per_sym8_16_ma.npyPK!l}per_sym8_16_md.npyPK!ifh~per_sym8_16_ma_pywtCoeffs.npyPK!lper_sym8_16_md_pywtCoeffs.npyPK!,asym_sym8_16_ma.npyPK!Kdׁasym_sym8_16_md.npyPK!,asym_sym8_16_ma_pywtCoeffs.npyPK!Kd4asym_sym8_16_md_pywtCoeffs.npyPK!Ahasymw_sym8_16_ma.npyPK!{'0asymw_sym8_16_md.npyPK!Aasymw_sym8_16_ma_pywtCoeffs.npyPK!{'0asymw_sym8_16_md_pywtCoeffs.npyPK!)&zpd_sym8_17_ma.npyPK!+@Vzpd_sym8_17_md.npyPK!)zpd_sym8_17_ma_pywtCoeffs.npyPK!+@zpd_sym8_17_md_pywtCoeffs.npyPK!4sp0_sym8_17_ma.npyPK!R,sp0_sym8_17_md.npyPK!4\sp0_sym8_17_ma_pywtCoeffs.npyPK!Rsp0_sym8_17_md_pywtCoeffs.npyPK!eғsym_sym8_17_ma.npyPK!sym_sym8_17_md.npyPK!e2sym_sym8_17_ma_pywtCoeffs.npyPK!msym_sym8_17_md_pywtCoeffs.npyPK!dsymw_sym8_17_ma.npyPK!Rqeٙsymw_sym8_17_md.npyPK!d symw_sym8_17_ma_pywtCoeffs.npyPK!RqeFsymw_sym8_17_md_pywtCoeffs.npyPK!N+ppd_sym8_17_ma.npyPK!-<ppd_sym8_17_md.npyPK!N+ppd_sym8_17_ma_pywtCoeffs.npyPK!-<ppd_sym8_17_md_pywtCoeffs.npyPK!KXsp1_sym8_17_ma.npyPK!sp1_sym8_17_md.npyPK!Ksp1_sym8_17_ma_pywtCoeffs.npyPK!sp1_sym8_17_md_pywtCoeffs.npyPK!Ĺ.per_sym8_17_ma.npyPK!xV&per_sym8_17_md.npyPK!Ĺper_sym8_17_ma_pywtCoeffs.npyPK!xV!per_sym8_17_md_pywtCoeffs.npyPK!/U$asym_sym8_17_ma.npyPK! 1Uasym_sym8_17_md.npyPK!/Uasym_sym8_17_ma_pywtCoeffs.npyPK! 1®asym_sym8_17_md_pywtCoeffs.npyPK!5asymw_sym8_17_ma.npyPK!F0asymw_sym8_17_md.npyPK!5basymw_sym8_17_ma_pywtCoeffs.npyPK!Fasymw_sym8_17_md_pywtCoeffs.npyPK!Dܴzpd_sym9_18_ma.npyPK!Zzpd_sym9_18_md.npyPK!3Lzpd_sym9_18_ma_pywtCoeffs.npyPK!Uzpd_sym9_18_md_pywtCoeffs.npyPK!Lҹsp0_sym9_18_ma.npyPK!WV sp0_sym9_18_md.npyPK!]ŚBsp0_sym9_18_ma_pywtCoeffs.npyPK!39sp0_sym9_18_md_pywtCoeffs.npyPK!oȾsym_sym9_18_ma.npyPK!sym_sym9_18_md.npyPK!:zG8sym_sym9_18_ma_pywtCoeffs.npyPK!1{sym_sym9_18_md_pywtCoeffs.npyPK!)symw_sym9_18_ma.npyPK!symw_sym9_18_md.npyPK!Qi0symw_sym9_18_ma_pywtCoeffs.npyPK! 2Rtsymw_sym9_18_md_pywtCoeffs.npyPK!{ppd_sym9_18_ma.npyPK!7ppd_sym9_18_md.npyPK!F(ppd_sym9_18_ma_pywtCoeffs.npyPK!,kppd_sym9_18_md_pywtCoeffs.npyPK!"e7usp1_sym9_18_ma.npyPK!t}vsp1_sym9_18_md.npyPK!Ҹ/sp1_sym9_18_ma_pywtCoeffs.npyPK!asp1_sym9_18_md_pywtCoeffs.npyPK!%m 0per_sym9_18_ma.npyPK!25Rper_sym9_18_md.npyPK!per_sym9_18_ma_pywtCoeffs.npyPK!per_sym9_18_md_pywtCoeffs.npyPK!asym_sym9_18_ma.npyPK!asym_sym9_18_md.npyPK!Ǣ(W asym_sym9_18_ma_pywtCoeffs.npyPK!U~$Pasym_sym9_18_md_pywtCoeffs.npyPK!-6nasymw_sym9_18_ma.npyPK!j6Uasymw_sym9_18_md.npyPK!xasymw_sym9_18_ma_pywtCoeffs.npyPK!9lz=Masymw_sym9_18_md_pywtCoeffs.npyPK!jzpd_sym9_19_ma.npyPK!Fzpd_sym9_19_md.npyPK!nzpd_sym9_19_ma_pywtCoeffs.npyPK!#C]zpd_sym9_19_md_pywtCoeffs.npyPK!˽Rsp0_sym9_19_ma.npyPK!@p)sp0_sym9_19_md.npyPK!*(sp0_sym9_19_ma_pywtCoeffs.npyPK!ssp0_sym9_19_md_pywtCoeffs.npyPK!M|asym_sym9_19_ma.npyPK!ksym_sym9_19_md.npyPK!.>sym_sym9_19_ma_pywtCoeffs.npyPK!Lsym_sym9_19_md_pywtCoeffs.npyPK!?symw_sym9_19_ma.npyPK!3symw_sym9_19_md.npyPK!)͌YVsymw_sym9_19_ma_pywtCoeffs.npyPK!Usymw_sym9_19_md_pywtCoeffs.npyPK!%ppd_sym9_19_ma.npyPK!58.ppd_sym9_19_md.npyPK!nppd_sym9_19_ma_pywtCoeffs.npyPK!Vyppd_sym9_19_md_pywtCoeffs.npyPK!|nsp1_sym9_19_ma.npyPK!q*NDsp1_sym9_19_md.npyPK!g+sp1_sym9_19_ma_pywtCoeffs.npyPK!Msp1_sym9_19_md_pywtCoeffs.npyPK!per_sym9_19_ma.npyPK! Pgper_sym9_19_md.npyPK!cper_sym9_19_ma_pywtCoeffs.npyPK!p%per_sym9_19_md_pywtCoeffs.npyPK!40asym_sym9_19_ma.npyPK!qasym_sym9_19_md.npyPK!7 asym_sym9_19_ma_pywtCoeffs.npyPK!T|asym_sym9_19_md_pywtCoeffs.npyPK!Jasymw_sym9_19_ma.npyPK!AN asymw_sym9_19_md.npyPK!=I asymw_sym9_19_ma_pywtCoeffs.npyPK!3 asymw_sym9_19_md_pywtCoeffs.npyPK!@th zpd_sym10_20_ma.npyPK!;zpd_sym10_20_md.npyPK! zpd_sym10_20_ma_pywtCoeffs.npyPK!umNzpd_sym10_20_md_pywtCoeffs.npyPK!|Gsp0_sym10_20_ma.npyPK!gsp0_sym10_20_md.npyPK!_4sp0_sym10_20_ma_pywtCoeffs.npyPK!xsp0_sym10_20_md_pywtCoeffs.npyPK!sym_sym10_20_ma.npyPK!Eg%sym_sym10_20_md.npyPK!insym_sym10_20_ma_pywtCoeffs.npyPK!nsym_sym10_20_md_pywtCoeffs.npyPK!ߑsymw_sym10_20_ma.npyPK! /`symw_sym10_20_md.npyPK!/symw_sym10_20_ma_pywtCoeffs.npyPK!j77K symw_sym10_20_md_pywtCoeffs.npyPK!FOT"ppd_sym10_20_ma.npyPK!!0#ppd_sym10_20_md.npyPK!ڧ#$ppd_sym10_20_ma_pywtCoeffs.npyPK!u :&ppd_sym10_20_md_pywtCoeffs.npyPK!YZ'sp1_sym10_20_ma.npyPK!Nf(sp1_sym10_20_md.npyPK!* *sp1_sym10_20_ma_pywtCoeffs.npyPK!!"t+sp1_sym10_20_md_pywtCoeffs.npyPK!Y ,per_sym10_20_ma.npyPK!Cz-per_sym10_20_md.npyPK!6.per_sym10_20_ma_pywtCoeffs.npyPK!/per_sym10_20_md_pywtCoeffs.npyPK!yq0asym_sym10_20_ma.npyPK!֟s\,2asym_sym10_20_md.npyPK!+$hv3asym_sym10_20_ma_pywtCoeffs.npyPK!~y4asym_sym10_20_md_pywtCoeffs.npyPK!wY 6asymw_sym10_20_ma.npyPK!Eq=k7asymw_sym10_20_md.npyPK!ϓҹ 8asymw_sym10_20_ma_pywtCoeffs.npyPK!d  :asymw_sym10_20_md_pywtCoeffs.npyPK!>b]  b;zpd_sym10_21_ma.npyPK!_n  <zpd_sym10_21_md.npyPK!  >zpd_sym10_21_ma_pywtCoeffs.npyPK!O9&  `?zpd_sym10_21_md_pywtCoeffs.npyPK!"*  @sp0_sym10_21_ma.npyPK!1BU5   Bsp0_sym10_21_md.npyPK!7a}!  ^Csp0_sym10_21_ma_pywtCoeffs.npyPK!r  Dsp0_sym10_21_md_pywtCoeffs.npyPK!˯  Fsym_sym10_21_ma.npyPK!Ǯ  gGsym_sym10_21_md.npyPK!VUC  Hsym_sym10_21_ma_pywtCoeffs.npyPK!Cw'  Jsym_sym10_21_md_pywtCoeffs.npyPK!ڗ_  pKsymw_sym10_21_ma.npyPK!=3  Lsymw_sym10_21_md.npyPK!Y牆  Nsymw_sym10_21_ma_pywtCoeffs.npyPK!mG  qOsymw_sym10_21_md_pywtCoeffs.npyPK!  Pppd_sym10_21_ma.npyPK!9  Rppd_sym10_21_md.npyPK!p  pSppd_sym10_21_ma_pywtCoeffs.npyPK!.Q  Tppd_sym10_21_md_pywtCoeffs.npyPK!0  (Vsp1_sym10_21_ma.npyPK!Hp  yWsp1_sym10_21_md.npyPK!  Xsp1_sym10_21_ma_pywtCoeffs.npyPK!Zw  &Zsp1_sym10_21_md_pywtCoeffs.npyPK!"@[per_sym10_21_ma.npyPK!_G\per_sym10_21_md.npyPK!jk]per_sym10_21_ma_pywtCoeffs.npyPK!r^per_sym10_21_md_pywtCoeffs.npyPK!b/  _asym_sym10_21_ma.npyPK!g3  aasym_sym10_21_md.npyPK![  `basym_sym10_21_ma_pywtCoeffs.npyPK!$t  casym_sym10_21_md_pywtCoeffs.npyPK!1]X  easymw_sym10_21_ma.npyPK!  mfasymw_sym10_21_md.npyPK!    gasymw_sym10_21_ma_pywtCoeffs.npyPK!C9S   iasymw_sym10_21_md_pywtCoeffs.npyPK!o.-((|jzpd_sym11_22_ma.npyPK!n((kzpd_sym11_22_md.npyPK!4((.mzpd_sym11_22_ma_pywtCoeffs.npyPK!` ((nzpd_sym11_22_md_pywtCoeffs.npyPK!j}e((osp0_sym11_22_ma.npyPK!-Ep((Oqsp0_sym11_22_md.npyPK!((rsp0_sym11_22_ma_pywtCoeffs.npyPK!'2(( tsp0_sym11_22_md_pywtCoeffs.npyPK! }((pusym_sym11_22_ma.npyPK!F((vsym_sym11_22_md.npyPK!&u(("xsym_sym11_22_ma_pywtCoeffs.npyPK!(A((ysym_sym11_22_md_pywtCoeffs.npyPK!,6((zsymw_sym11_22_ma.npyPK!~^((D|symw_sym11_22_md.npyPK!-&((}symw_sym11_22_ma_pywtCoeffs.npyPK!T`ˏ((symw_sym11_22_md_pywtCoeffs.npyPK!8((hppd_sym11_22_ma.npyPK!z.c((ppd_sym11_22_md.npyPK!9((ppd_sym11_22_ma_pywtCoeffs.npyPK!op`((~ppd_sym11_22_md_pywtCoeffs.npyPK! Ah((sp1_sym11_22_ma.npyPK!>((;sp1_sym11_22_md.npyPK!/<((sp1_sym11_22_ma_pywtCoeffs.npyPK!qK((sp1_sym11_22_md_pywtCoeffs.npyPK!Gz\per_sym11_22_ma.npyPK!(Geper_sym11_22_md.npyPK!h@nper_sym11_22_ma_pywtCoeffs.npyPK!%Qper_sym11_22_md_pywtCoeffs.npyPK!~((asym_sym11_22_ma.npyPK!LӖ((asym_sym11_22_md.npyPK!D*q((Jasym_sym11_22_ma_pywtCoeffs.npyPK!((asym_sym11_22_md_pywtCoeffs.npyPK!d((asymw_sym11_22_ma.npyPK!M((oasymw_sym11_22_md.npyPK!4(( ʗasymw_sym11_22_ma_pywtCoeffs.npyPK!+K(( 0asymw_sym11_22_md_pywtCoeffs.npyPK!00zpd_sym11_23_ma.npyPK!0q00zpd_sym11_23_md.npyPK!5Λ00Xzpd_sym11_23_ma_pywtCoeffs.npyPK!)@00Ğzpd_sym11_23_md_pywtCoeffs.npyPK!>000sp0_sym11_23_ma.npyPK!00sp0_sym11_23_md.npyPK!Dr00sp0_sym11_23_ma_pywtCoeffs.npyPK!U00^sp0_sym11_23_md_pywtCoeffs.npyPK!;00ʥsym_sym11_23_ma.npyPK!SYm00+sym_sym11_23_md.npyPK!2?00sym_sym11_23_ma_pywtCoeffs.npyPK!rd,00sym_sym11_23_md_pywtCoeffs.npyPK!եY00dsymw_sym11_23_ma.npyPK!?=I00Ƭsymw_sym11_23_md.npyPK!Lx 00(symw_sym11_23_ma_pywtCoeffs.npyPK!8s00symw_sym11_23_md_pywtCoeffs.npyPK!Wd00ppd_sym11_23_ma.npyPK!+q00cppd_sym11_23_md.npyPK!TY00ijppd_sym11_23_ma_pywtCoeffs.npyPK!lD000ppd_sym11_23_md_pywtCoeffs.npyPK!C]"00sp1_sym11_23_ma.npyPK!p00sp1_sym11_23_md.npyPK!600^sp1_sym11_23_ma_pywtCoeffs.npyPK!qD@00ʺsp1_sym11_23_md_pywtCoeffs.npyPK!66per_sym11_23_ma.npyPK!Gper_sym11_23_md.npyPK!Xper_sym11_23_ma_pywtCoeffs.npyPK!ytper_sym11_23_md_pywtCoeffs.npyPK!h00asym_sym11_23_ma.npyPK!+Qo00asym_sym11_23_md.npyPK!:t00Tasym_sym11_23_ma_pywtCoeffs.npyPK!=00asym_sym11_23_md_pywtCoeffs.npyPK!텋#00.asymw_sym11_23_ma.npyPK!vp00asymw_sym11_23_md.npyPK!_ r00 asymw_sym11_23_ma_pywtCoeffs.npyPK!&00 basymw_sym11_23_md_pywtCoeffs.npyPK!"88zpd_sym12_24_ma.npyPK!P889zpd_sym12_24_md.npyPK!9J88zpd_sym12_24_ma_pywtCoeffs.npyPK!S88zpd_sym12_24_md_pywtCoeffs.npyPK!0D88sp0_sym12_24_ma.npyPK!˰88sp0_sym12_24_md.npyPK!pJ88\sp0_sym12_24_ma_pywtCoeffs.npyPK!(r88sp0_sym12_24_md_pywtCoeffs.npyPK!W $88Dsym_sym12_24_ma.npyPK!r88sym_sym12_24_md.npyPK! 88sym_sym12_24_ma_pywtCoeffs.npyPK!#88sym_sym12_24_md_pywtCoeffs.npyPK!\9d88symw_sym12_24_ma.npyPK!7788hsymw_sym12_24_md.npyPK!88symw_sym12_24_ma_pywtCoeffs.npyPK!88Gsymw_sym12_24_md_pywtCoeffs.npyPK! 88ppd_sym12_24_ma.npyPK!)s88%ppd_sym12_24_md.npyPK!mK88ppd_sym12_24_ma_pywtCoeffs.npyPK!488ppd_sym12_24_md_pywtCoeffs.npyPK!}88vsp1_sym12_24_ma.npyPK!찻?88sp1_sym12_24_md.npyPK! B88Hsp1_sym12_24_ma_pywtCoeffs.npyPK!u!88sp1_sym12_24_md_pywtCoeffs.npyPK!y}0per_sym12_24_ma.npyPK!zAper_sym12_24_md.npyPK!u]-Rper_sym12_24_ma_pywtCoeffs.npyPK!Fnper_sym12_24_md_pywtCoeffs.npyPK!߀88asym_sym12_24_ma.npyPK!88asym_sym12_24_md.npyPK!׷>88^asym_sym12_24_ma_pywtCoeffs.npyPK!Jy88asym_sym12_24_md_pywtCoeffs.npyPK!$Lo88Hasymw_sym12_24_ma.npyPK!݁88asymw_sym12_24_md.npyPK!88 asymw_sym12_24_ma_pywtCoeffs.npyPK!.r<88 asymw_sym12_24_md_pywtCoeffs.npyPK!wLjk@@ zpd_sym12_25_ma.npyPK!J @@{zpd_sym12_25_md.npyPK!"hd@@zpd_sym12_25_ma_pywtCoeffs.npyPK!Dǯ@@hzpd_sym12_25_md_pywtCoeffs.npyPK!ナ@@sp0_sym12_25_ma.npyPK![@@Usp0_sym12_25_md.npyPK!@@sp0_sym12_25_ma_pywtCoeffs.npyPK!&;@@Bsp0_sym12_25_md_pywtCoeffs.npyPK!p@@ sym_sym12_25_ma.npyPK!vA#@@/ sym_sym12_25_md.npyPK!Ou@@ sym_sym12_25_ma_pywtCoeffs.npyPK!vg@@sym_sym12_25_md_pywtCoeffs.npyPK!.@@symw_sym12_25_ma.npyPK!J|ͩ@@ symw_sym12_25_md.npyPK!{@@|symw_sym12_25_ma_pywtCoeffs.npyPK!P+@@symw_sym12_25_md_pywtCoeffs.npyPK!c@@vppd_sym12_25_ma.npyPK!~1@@ppd_sym12_25_md.npyPK!#;[@@Xppd_sym12_25_ma_pywtCoeffs.npyPK!";}#@@ppd_sym12_25_md_pywtCoeffs.npyPK!'%@@Psp1_sym12_25_ma.npyPK!6n@@sp1_sym12_25_md.npyPK!"gX@@2sp1_sym12_25_ma_pywtCoeffs.npyPK!@@sp1_sym12_25_md_pywtCoeffs.npyPK!z8 v*!per_sym12_25_ma.npyPK!C"per_sym12_25_md.npyPK!y>\#per_sym12_25_ma_pywtCoeffs.npyPK!= 6#$per_sym12_25_md_pywtCoeffs.npyPK!@@%asym_sym12_25_ma.npyPK!ފ@@'asym_sym12_25_md.npyPK!\\@@(asym_sym12_25_ma_pywtCoeffs.npyPK!]֋@@*asym_sym12_25_md_pywtCoeffs.npyPK!גcj@@+asymw_sym12_25_ma.npyPK!@@,asymw_sym12_25_md.npyPK!4H@@ h.asymw_sym12_25_ma_pywtCoeffs.npyPK!d@@ /asymw_sym12_25_md_pywtCoeffs.npyPK!̧HHd1zpd_sym13_26_ma.npyPK!MHH2zpd_sym13_26_md.npyPK!jHHV4zpd_sym13_26_ma_pywtCoeffs.npyPK!A>HH5zpd_sym13_26_md_pywtCoeffs.npyPK!qomHH^7sp0_sym13_26_ma.npyPK!ݿXHH8sp0_sym13_26_md.npyPK!EAHHP:sp0_sym13_26_ma_pywtCoeffs.npyPK!xTآHH;sp0_sym13_26_md_pywtCoeffs.npyPK!ȐHHX=sym_sym13_26_ma.npyPK!9HH>sym_sym13_26_md.npyPK!vHHJ@sym_sym13_26_ma_pywtCoeffs.npyPK!WHHAsym_sym13_26_md_pywtCoeffs.npyPK!ZT$HHRCsymw_sym13_26_ma.npyPK!;ΡKHHDsymw_sym13_26_md.npyPK!B QHHFFsymw_sym13_26_ma_pywtCoeffs.npyPK!l`HHGsymw_sym13_26_md_pywtCoeffs.npyPK!gHHHPIppd_sym13_26_ma.npyPK!HHJppd_sym13_26_md.npyPK!oHHBLppd_sym13_26_ma_pywtCoeffs.npyPK!VPPŅsp1_sym13_27_md.npyPK!`aPPFsp1_sym13_27_ma_pywtCoeffs.npyPK!̊PP҈sp1_sym13_27_md_pywtCoeffs.npyPK!Bu^per_sym13_27_ma.npyPK!Aper_sym13_27_md.npyPK!U8Gper_sym13_27_ma_pywtCoeffs.npyPK!\̍per_sym13_27_md_pywtCoeffs.npyPK!ePPasym_sym13_27_ma.npyPK!PPzasym_sym13_27_md.npyPK![gPPasym_sym13_27_ma_pywtCoeffs.npyPK!=hPPasym_sym13_27_md_pywtCoeffs.npyPK!VHPPasymw_sym13_27_ma.npyPK!:cPPasymw_sym13_27_md.npyPK!itPP asymw_sym13_27_ma_pywtCoeffs.npyPK!HLPP asymw_sym13_27_md_pywtCoeffs.npyPK!n3XX8zpd_sym14_28_ma.npyPK!rXXzpd_sym14_28_md.npyPK! XXJzpd_sym14_28_ma_pywtCoeffs.npyPK!IӀXXޟzpd_sym14_28_md_pywtCoeffs.npyPK!=XXrsp0_sym14_28_ma.npyPK!<XXsp0_sym14_28_md.npyPK!` @XXsp0_sym14_28_ma_pywtCoeffs.npyPK!=aXXsp0_sym14_28_md_pywtCoeffs.npyPK!XXsym_sym14_28_ma.npyPK!XX5sym_sym14_28_md.npyPK!%QXXsym_sym14_28_ma_pywtCoeffs.npyPK!mHXXRsym_sym14_28_md_pywtCoeffs.npyPK!Z0XXsymw_sym14_28_ma.npyPK!fL{XXpsymw_sym14_28_md.npyPK!=TXXsymw_sym14_28_ma_pywtCoeffs.npyPK! IXXsymw_sym14_28_md_pywtCoeffs.npyPK!nsXX$ppd_sym14_28_ma.npyPK!XXppd_sym14_28_md.npyPK!/XX6ppd_sym14_28_ma_pywtCoeffs.npyPK!DXXʸppd_sym14_28_md_pywtCoeffs.npyPK!JXX^sp1_sym14_28_ma.npyPK!0XXsp1_sym14_28_md.npyPK!CXXpsp1_sym14_28_ma_pywtCoeffs.npyPK!bXXsp1_sym14_28_md_pywtCoeffs.npyPK!KRper_sym14_28_ma.npyPK!"per_sym14_28_md.npyPK!xper_sym14_28_ma_pywtCoeffs.npyPK!zfB~per_sym14_28_md_pywtCoeffs.npyPK!XX2asym_sym14_28_ma.npyPK!`XXasym_sym14_28_md.npyPK!CXXFasym_sym14_28_ma_pywtCoeffs.npyPK!XXasym_sym14_28_md_pywtCoeffs.npyPK! 2XXpasymw_sym14_28_ma.npyPK!N\XXasymw_sym14_28_md.npyPK!%XX asymw_sym14_28_ma_pywtCoeffs.npyPK!HBXX asymw_sym14_28_md_pywtCoeffs.npyPK!7``zpd_sym14_29_ma.npyPK!"``Czpd_sym14_29_md.npyPK!AԘ``zpd_sym14_29_ma_pywtCoeffs.npyPK!``pzpd_sym14_29_md_pywtCoeffs.npyPK!vM`` sp0_sym14_29_ma.npyPK!ѣ``sp0_sym14_29_md.npyPK!,̺M``.sp0_sym14_29_ma_pywtCoeffs.npyPK!43``sp0_sym14_29_md_pywtCoeffs.npyPK!ȯX``fsym_sym14_29_ma.npyPK!V``sym_sym14_29_md.npyPK!!A ``sym_sym14_29_ma_pywtCoeffs.npyPK!p``$sym_sym14_29_md_pywtCoeffs.npyPK!LD``symw_sym14_29_ma.npyPK![ ``Rsymw_sym14_29_md.npyPK!@&ï``symw_sym14_29_ma_pywtCoeffs.npyPK!+``symw_sym14_29_md_pywtCoeffs.npyPK!ؤ'y``ppd_sym14_29_ma.npyPK!``ppd_sym14_29_md.npyPK!Fښ``@ppd_sym14_29_ma_pywtCoeffs.npyPK! 9"1``ppd_sym14_29_md_pywtCoeffs.npyPK!t7``xsp1_sym14_29_ma.npyPK!R<`` sp1_sym14_29_md.npyPK!)PB``sp1_sym14_29_ma_pywtCoeffs.npyPK!#hhsym_sym15_30_md.npyPK!m7$hhrsym_sym15_30_ma_pywtCoeffs.npyPK!{Bchhsym_sym15_30_md_pywtCoeffs.npyPK!Yhhsymw_sym15_30_ma.npyPK!|~hhTsymw_sym15_30_md.npyPK!#Whhsymw_sym15_30_ma_pywtCoeffs.npyPK!Βlhh!symw_sym15_30_md_pywtCoeffs.npyPK!LDDhh8#ppd_sym15_30_ma.npyPK!hhh$ppd_sym15_30_md.npyPK!hhj&ppd_sym15_30_ma_pywtCoeffs.npyPK!hGhh(ppd_sym15_30_md_pywtCoeffs.npyPK!)hh)sp1_sym15_30_ma.npyPK!`hhK+sp1_sym15_30_md.npyPK!Thh,sp1_sym15_30_ma_pywtCoeffs.npyPK!/hh.sp1_sym15_30_md_pywtCoeffs.npyPK!I,0per_sym15_30_ma.npyPK!٠U1per_sym15_30_md.npyPK!ўc~2per_sym15_30_ma_pywtCoeffs.npyPK!513per_sym15_30_md_pywtCoeffs.npyPK!Yhh4asym_sym15_30_ma.npyPK!16hh6asym_sym15_30_md.npyPK!mhh8asym_sym15_30_ma_pywtCoeffs.npyPK!G1hh9asym_sym15_30_md_pywtCoeffs.npyPK!mZhhd;asymw_sym15_30_ma.npyPK!;hh<asymw_sym15_30_md.npyPK! hh >asymw_sym15_30_ma_pywtCoeffs.npyPK!`}hh @@asymw_sym15_30_md_pywtCoeffs.npyPK!n)pppAzpd_sym15_31_ma.npyPK!V ppCzpd_sym15_31_md.npyPK!@ܙpp(Ezpd_sym15_31_ma_pywtCoeffs.npyPK!ǤWpppFzpd_sym15_31_md_pywtCoeffs.npyPK![ppHsp0_sym15_31_ma.npyPK!t -pp!Jsp0_sym15_31_md.npyPK!3FppKsp0_sym15_31_ma_pywtCoeffs.npyPK!ppnMsp0_sym15_31_md_pywtCoeffs.npyPK!MJSppOsym_sym15_31_ma.npyPK!ppPsym_sym15_31_md.npyPK!$pp\Rsym_sym15_31_ma_pywtCoeffs.npyPK!e^TXppTsym_sym15_31_md_pywtCoeffs.npyPK!dppUsymw_sym15_31_ma.npyPK!iyppVWsymw_sym15_31_md.npyPK!?uppXsymw_sym15_31_ma_pywtCoeffs.npyPK!{(`ppZsymw_sym15_31_md_pywtCoeffs.npyPK!-JppR\ppd_sym15_31_ma.npyPK!kCpp]ppd_sym15_31_md.npyPK!ۍRpp_ppd_sym15_31_ma_pywtCoeffs.npyPK!pp@appd_sym15_31_md_pywtCoeffs.npyPK!Kppbsp1_sym15_31_ma.npyPK! c ppdsp1_sym15_31_md.npyPK!Hf2pp.fsp1_sym15_31_ma_pywtCoeffs.npyPK!hppgsp1_sym15_31_md_pywtCoeffs.npyPK!_4iper_sym15_31_ma.npyPK!Uxdjper_sym15_31_md.npyPK!'kper_sym15_31_ma_pywtCoeffs.npyPK!r$mper_sym15_31_md_pywtCoeffs.npyPK!ͤ[pp`nasym_sym15_31_ma.npyPK!i pppasym_sym15_31_md.npyPK!ppqasym_sym15_31_ma_pywtCoeffs.npyPK!6c(ppQsasym_sym15_31_md_pywtCoeffs.npyPK![pptasymw_sym15_31_ma.npyPK!!jppvasymw_sym15_31_md.npyPK!fZpp Dxasymw_sym15_31_ma_pywtCoeffs.npyPK!w"app yasymw_sym15_31_md_pywtCoeffs.npyPK!Gxxx{zpd_sym16_32_ma.npyPK!ɌxxI}zpd_sym16_32_md.npyPK!z xx~zpd_sym16_32_ma_pywtCoeffs.npyPK!6xxxzpd_sym16_32_md_pywtCoeffs.npyPK!ӭzpd_sym18_37_md.npyPK!I$zpd_sym18_37_ma_pywtCoeffs.npyPK!czpd_sym18_37_md_pywtCoeffs.npyPK!S\sp0_sym18_37_ma.npyPK! nֱ-sp0_sym18_37_md.npyPK!O\sp0_sym18_37_ma_pywtCoeffs.npyPK!ڸsp0_sym18_37_md_pywtCoeffs.npyPK!h)sym_sym18_37_ma.npyPK!l?Osym_sym18_37_md.npyPK!7'&Xsym_sym18_37_ma_pywtCoeffs.npyPK!!{L4sym_sym18_37_md_pywtCoeffs.npyPK!ɠsymw_sym18_37_ma.npyPK!Vsymw_sym18_37_md.npyPK!Q*psymw_sym18_37_ma_pywtCoeffs.npyPK!DS=Ƞsymw_sym18_37_md_pywtCoeffs.npyPK!rȋnppd_sym18_37_ma.npyPK!Z1U?ppd_sym18_37_md.npyPK!iSppd_sym18_37_ma_pywtCoeffs.npyPK!zJppd_sym18_37_md_pywtCoeffs.npyPK!}sp1_sym18_37_ma.npyPK! sp1_sym18_37_md.npyPK!jsp1_sym18_37_ma_pywtCoeffs.npyPK!.Fsp1_sym18_37_md_pywtCoeffs.npyPK!Dn"per_sym18_37_ma.npyPK!Eʙ>kper_sym18_37_md.npyPK!mper_sym18_37_ma_pywtCoeffs.npyPK!zper_sym18_37_md_pywtCoeffs.npyPK!8,Р\asym_sym18_37_ma.npyPK!Š.asym_sym18_37_md.npyPK!rasym_sym18_37_ma_pywtCoeffs.npyPK!̠asym_sym18_37_md_pywtCoeffs.npyPK!asymw_sym18_37_ma.npyPK! asymw_sym18_37_md.npyPK!5ˠ `asymw_sym18_37_ma_pywtCoeffs.npyPK!W] >asymw_sym18_37_md_pywtCoeffs.npyPK!h1Bzpd_sym19_38_ma.npyPK!';Ȩzpd_sym19_38_md.npyPK![zpd_sym19_38_ma_pywtCoeffs.npyPK! zpd_sym19_38_md_pywtCoeffs.npyPK!'ĝsp0_sym19_38_ma.npyPK!Gosp0_sym19_38_md.npyPK!.qHsp0_sym19_38_ma_pywtCoeffs.npyPK!Jۨ,sp0_sym19_38_md_pywtCoeffs.npyPK!3Hsym_sym19_38_ma.npyPK!{Bpsym_sym19_38_md.npyPK!Dsym_sym19_38_ma_pywtCoeffs.npyPK!tVIsym_sym19_38_md_pywtCoeffs.npyPK!msymw_sym19_38_ma.npyPK!~y@ߨdsymw_sym19_38_md.npyPK!)*y>symw_sym19_38_ma_pywtCoeffs.npyPK!UJ#symw_sym19_38_md_pywtCoeffs.npyPK!~7 ppd_sym19_38_ma.npyPK! ppd_sym19_38_md.npyPK!kX ppd_sym19_38_ma_pywtCoeffs.npyPK!-kppd_sym19_38_md_pywtCoeffs.npyPK!~sp1_sym19_38_ma.npyPK!b[sp1_sym19_38_md.npyPK!XVR4sp1_sym19_38_ma_pywtCoeffs.npyPK!Wasp1_sym19_38_md_pywtCoeffs.npyPK!Xcper_sym19_38_ma.npyPK!4.Eper_sym19_38_md.npyPK!aEi+per_sym19_38_ma_pywtCoeffs.npyPK!kUper_sym19_38_md_pywtCoeffs.npyPK!4֦ۨ6asym_sym19_38_ma.npyPK!Xuը asym_sym19_38_md.npyPK! R~!asym_sym19_38_ma_pywtCoeffs.npyPK!7h#asym_sym19_38_md_pywtCoeffs.npyPK![W%asymw_sym19_38_ma.npyPK!9ZE'asymw_sym19_38_md.npyPK!֪j j)asymw_sym19_38_ma_pywtCoeffs.npyPK!ۢR P+asymw_sym19_38_md_pywtCoeffs.npyPK!jС6-zpd_sym19_39_ma.npyPK!! V/zpd_sym19_39_md.npyPK!̩0zpd_sym19_39_ma_pywtCoeffs.npyPK!ư2zpd_sym19_39_md_pywtCoeffs.npyPK!>4sp0_sym19_39_ma.npyPK!m[6sp0_sym19_39_md.npyPK!ڰ8sp0_sym19_39_ma_pywtCoeffs.npyPK! QD~:sp0_sym19_39_md_pywtCoeffs.npyPK!lj<sym_sym19_39_ma.npyPK!p.K>sym_sym19_39_md.npyPK!wE,@sym_sym19_39_ma_pywtCoeffs.npyPK!ABsym_sym19_39_md_pywtCoeffs.npyPK!jDsymw_sym19_39_ma.npyPK!djEsymw_sym19_39_md.npyPK!3g@Gsymw_sym19_39_ma_pywtCoeffs.npyPK!Isymw_sym19_39_md_pywtCoeffs.npyPK!8TKppd_sym19_39_ma.npyPK!ߛ]Mppd_sym19_39_md.npyPK!|3JdOppd_sym19_39_ma_pywtCoeffs.npyPK!_FPQppd_sym19_39_md_pywtCoeffs.npyPK!D1ذ5Ըpozpd_sym20_40_ma.npyPK!yYqzpd_sym20_40_md.npyPK!GZBszpd_sym20_40_ma_pywtCoeffs.npyPK!(06uzpd_sym20_40_md_pywtCoeffs.npyPK!DD:*wsp0_sym20_40_ma.npyPK!zոysp0_sym20_40_md.npyPK!kf_zsp0_sym20_40_ma_pywtCoeffs.npyPK!N|sp0_sym20_40_md_pywtCoeffs.npyPK!?p6~sym_sym20_40_ma.npyPK!Mc̀sym_sym20_40_md.npyPK!hsym_sym20_40_ma_pywtCoeffs.npyPK!bsym_sym20_40_md_pywtCoeffs.npyPK!ljWsymw_sym20_40_ma.npyPK!xpsymw_sym20_40_md.npyPK!2nrsymw_sym20_40_ma_pywtCoeffs.npyPK!=5 gsymw_sym20_40_md_pywtCoeffs.npyPK!(vzpd_sym20_41_md.npyPK![zpd_sym20_41_ma_pywtCoeffs.npyPK!zpd_sym20_41_md_pywtCoeffs.npyPK!Ʋ,sp0_sym20_41_ma.npyPK!usp0_sym20_41_md.npyPK!`Xfsp0_sym20_41_ma_pywtCoeffs.npyPK!:bsp0_sym20_41_md_pywtCoeffs.npyPK!3A^sym_sym20_41_ma.npyPK!뷏Osym_sym20_41_md.npyPK!{@sym_sym20_41_ma_pywtCoeffs.npyPK!3<sym_sym20_41_md_pywtCoeffs.npyPK!uX 8symw_sym20_41_ma.npyPK!<(M*symw_sym20_41_md.npyPK!Zpsymw_sym20_41_ma_pywtCoeffs.npyPK!/\symw_sym20_41_md_pywtCoeffs.npyPK!׻ppd_sym20_41_ma.npyPK!bJppd_sym20_41_md.npyPK!ˌppd_sym20_41_ma_pywtCoeffs.npyPK!rKppd_sym20_41_md_pywtCoeffs.npyPK!<sp1_sym20_41_ma.npyPK!qsp1_sym20_41_md.npyPK!knsp1_sym20_41_ma_pywtCoeffs.npyPK!?sp1_sym20_41_md_pywtCoeffs.npyPK!((per_sym20_41_ma.npyPK!Oڵ((#per_sym20_41_md.npyPK!;i1((|per_sym20_41_ma_pywtCoeffs.npyPK!_((per_sym20_41_md_pywtCoeffs.npyPK!7Dasym_sym20_41_ma.npyPK!6asym_sym20_41_md.npyPK!-a(asym_sym20_41_ma_pywtCoeffs.npyPK!X%asym_sym20_41_md_pywtCoeffs.npyPK!P"asymw_sym20_41_ma.npyPK!&Easymw_sym20_41_md.npyPK!$y$ asymw_sym20_41_ma_pywtCoeffs.npyPK! , asymw_sym20_41_md_pywtCoeffs.npyPK!Pzpd_coif1_6_ma.npyPK!YLzpd_coif1_6_md.npyPK!a$)Ũzpd_coif1_6_ma_pywtCoeffs.npyPK!;ɨzpd_coif1_6_md_pywtCoeffs.npyPK!7zsp0_coif1_6_ma.npyPK!Rsp0_coif1_6_md.npyPK!⇨*sp0_coif1_6_ma_pywtCoeffs.npyPK!d` sp0_coif1_6_md_pywtCoeffs.npyPK!**sym_coif1_6_ma.npyPK!sym_coif1_6_md.npyPK!Ƚsym_coif1_6_ma_pywtCoeffs.npyPK! sym_coif1_6_md_pywtCoeffs.npyPK![fsymw_coif1_6_ma.npyPK!Ά:?symw_coif1_6_md.npyPK!+Xsymw_coif1_6_ma_pywtCoeffs.npyPK!ٞ3symw_coif1_6_md_pywtCoeffs.npyPK!dqppd_coif1_6_ma.npyPK!ppd_coif1_6_md.npyPK!jppd_coif1_6_ma_pywtCoeffs.npyPK!j侼sppd_coif1_6_md_pywtCoeffs.npyPK!:Vsp1_coif1_6_ma.npyPK!z. sp1_coif1_6_md.npyPK! sp1_coif1_6_ma_pywtCoeffs.npyPK!I~ sp1_coif1_6_md_pywtCoeffs.npyPK!ԤГ per_coif1_6_ma.npyPK!9w per_coif1_6_md.npyPK!X^\ per_coif1_6_ma_pywtCoeffs.npyPK!G/per_coif1_6_md_pywtCoeffs.npyPK!Casym_coif1_6_ma.npyPK! 6asym_coif1_6_md.npyPK!$*asym_coif1_6_ma_pywtCoeffs.npyPK!asym_coif1_6_md_pywtCoeffs.npyPK!|asymw_coif1_6_ma.npyPK!VŘVasymw_coif1_6_md.npyPK!H0asymw_coif1_6_ma_pywtCoeffs.npyPK!V Qasymw_coif1_6_md_pywtCoeffs.npyPK!dUzpd_coif1_7_ma.npyPK!zpd_coif1_7_md.npyPK!-zpd_coif1_7_ma_pywtCoeffs.npyPK!`zpd_coif1_7_md_pywtCoeffs.npyPK!-sp0_coif1_7_ma.npyPK!OѰpsp0_coif1_7_md.npyPK!f诰Psp0_coif1_7_ma_pywtCoeffs.npyPK!g;sp0_coif1_7_md_pywtCoeffs.npyPK!Ւ&sym_coif1_7_ma.npyPK!Vjsym_coif1_7_md.npyPK!sym_coif1_7_ma_pywtCoeffs.npyPK!Isym_coif1_7_md_pywtCoeffs.npyPK!$\Ͱ symw_coif1_7_ma.npyPK!6!symw_coif1_7_md.npyPK!_~"symw_coif1_7_ma_pywtCoeffs.npyPK!Ij#symw_coif1_7_md_pywtCoeffs.npyPK!BV$ppd_coif1_7_ma.npyPK!*_g6%ppd_coif1_7_md.npyPK!b߰&ppd_coif1_7_ma_pywtCoeffs.npyPK!>?Lx'ppd_coif1_7_md_pywtCoeffs.npyPK! %'sp1_coif1_7_ma.npyPK!kG{(sp1_coif1_7_md.npyPK!y)sp1_coif1_7_ma_pywtCoeffs.npyPK!ȴڰ*sp1_coif1_7_md_pywtCoeffs.npyPK!|bŠ+per_coif1_7_ma.npyPK! R,per_coif1_7_md.npyPK!2T$"-per_coif1_7_ma_pywtCoeffs.npyPK!h%-per_coif1_7_md_pywtCoeffs.npyPK!z.asym_coif1_7_ma.npyPK!7#/asym_coif1_7_md.npyPK!0asym_coif1_7_ma_pywtCoeffs.npyPK!@]1asym_coif1_7_md_pywtCoeffs.npyPK!8r2asymw_coif1_7_ma.npyPK!lT3asymw_coif1_7_md.npyPK!jr64asymw_coif1_7_ma_pywtCoeffs.npyPK! #5asymw_coif1_7_md_pywtCoeffs.npyPK!P.6zpd_coif2_12_ma.npyPK!kÂR7zpd_coif2_12_md.npyPK!/"8zpd_coif2_12_ma_pywtCoeffs.npyPK!@69zpd_coif2_12_md_pywtCoeffs.npyPK!Y7TJ:sp0_coif2_12_ma.npyPK! S;sp0_coif2_12_md.npyPK!\<sp0_coif2_12_ma_pywtCoeffs.npyPK!Djxp=sp0_coif2_12_md_pywtCoeffs.npyPK!s)>sym_coif2_12_ma.npyPK! \?sym_coif2_12_md.npyPK!2.@sym_coif2_12_ma_pywtCoeffs.npyPK!:yAsym_coif2_12_md_pywtCoeffs.npyPK!Bsymw_coif2_12_ma.npyPK!(Csymw_coif2_12_md.npyPK!WODsymw_coif2_12_ma_pywtCoeffs.npyPK!>!Esymw_coif2_12_md_pywtCoeffs.npyPK!neFppd_coif2_12_ma.npyPK!ȖHppd_coif2_12_md.npyPK!sIppd_coif2_12_ma_pywtCoeffs.npyPK!eG"Jppd_coif2_12_md_pywtCoeffs.npyPK!AM6Ksp1_coif2_12_ma.npyPK!L~?Lsp1_coif2_12_md.npyPK!0>HMsp1_coif2_12_ma_pywtCoeffs.npyPK!M6\Nsp1_coif2_12_md_pywtCoeffs.npyPK!E#pOper_coif2_12_ma.npyPK!knQPper_coif2_12_md.npyPK!zT2Qper_coif2_12_ma_pywtCoeffs.npyPK! 4հRper_coif2_12_md_pywtCoeffs.npyPK!Z7 Sasym_coif2_12_ma.npyPK!#Tasym_coif2_12_md.npyPK!MUasym_coif2_12_ma_pywtCoeffs.npyPK!Z3Vasym_coif2_12_md_pywtCoeffs.npyPK!AWHWasymw_coif2_12_ma.npyPK!=TSXasymw_coif2_12_md.npyPK!n,d ^Yasymw_coif2_12_ma_pywtCoeffs.npyPK!( tZasymw_coif2_12_md_pywtCoeffs.npyPK!xC[zpd_coif2_13_ma.npyPK!D %\zpd_coif2_13_md.npyPK!',/]zpd_coif2_13_ma_pywtCoeffs.npyPK!`m^zpd_coif2_13_md_pywtCoeffs.npyPK!u_sp0_coif2_13_ma.npyPK!`.Y~`sp0_coif2_13_md.npyPK!'bsp0_coif2_13_ma_pywtCoeffs.npyPK!Iy"csp0_coif2_13_md_pywtCoeffs.npyPK!X>dsym_coif2_13_ma.npyPK!aSOesym_coif2_13_md.npyPK![ `fsym_coif2_13_ma_pywtCoeffs.npyPK!+Z|gsym_coif2_13_md_pywtCoeffs.npyPK!Lhsymw_coif2_13_ma.npyPK!5isymw_coif2_13_md.npyPK!jsymw_coif2_13_ma_pywtCoeffs.npyPK!TDksymw_coif2_13_md_pywtCoeffs.npyPK!W,Mlppd_coif2_13_ma.npyPK!8ßnppd_coif2_13_md.npyPK!aoppd_coif2_13_ma_pywtCoeffs.npyPK!rI4pppd_coif2_13_md_pywtCoeffs.npyPK!sKPqsp1_coif2_13_ma.npyPK!&çarsp1_coif2_13_md.npyPK!jArssp1_coif2_13_ma_pywtCoeffs.npyPK!y̯tsp1_coif2_13_md_pywtCoeffs.npyPK!!uper_coif2_13_ma.npyPK!zvper_coif2_13_md.npyPK!yϐo|wper_coif2_13_ma_pywtCoeffs.npyPK!Tk>pxper_coif2_13_md_pywtCoeffs.npyPK!Udyasym_coif2_13_ma.npyPK!<4(|vzasym_coif2_13_md.npyPK!YE{asym_coif2_13_ma_pywtCoeffs.npyPK!JQ|asym_coif2_13_md_pywtCoeffs.npyPK!U}asymw_coif2_13_ma.npyPK![~asymw_coif2_13_md.npyPK!W asymw_coif2_13_ma_pywtCoeffs.npyPK![N! asymw_coif2_13_md_pywtCoeffs.npyPK!*/s$zpd_coif3_18_ma.npyPK!AZ~]zpd_coif3_18_md.npyPK!zpd_coif3_18_ma_pywtCoeffs.npyPK!uڅzpd_coif3_18_md_pywtCoeffs.npyPK!SXsp0_coif3_18_ma.npyPK!%.Wsp0_coif3_18_md.npyPK!v/Ȋsp0_coif3_18_ma_pywtCoeffs.npyPK!I Ԋsp0_coif3_18_md_pywtCoeffs.npyPK!sym_coif3_18_ma.npyPK!;Qsym_coif3_18_md.npyPK!RI%?sym_coif3_18_ma_pywtCoeffs.npyPK!O-Ώsym_coif3_18_md_pywtCoeffs.npyPK! /symw_coif3_18_ma.npyPK!.Lsymw_coif3_18_md.npyPK!]G2$symw_coif3_18_ma_pywtCoeffs.npyPK!I%˔symw_coif3_18_md_pywtCoeffs.npyPK!Uppd_coif3_18_ma.npyPK!wIppd_coif3_18_md.npyPK!.ppd_coif3_18_ma_pywtCoeffs.npyPK!fƙppd_coif3_18_md_pywtCoeffs.npyPK!܀ sp1_coif3_18_ma.npyPK!_ߙ6Csp1_coif3_18_md.npyPK!lj.@|sp1_coif3_18_ma_pywtCoeffs.npyPK!T^Usp1_coif3_18_md_pywtCoeffs.npyPK! {per_coif3_18_ma.npyPK!ZLper_coif3_18_md.npyPK!`per_coif3_18_ma_pywtCoeffs.npyPK!v\per_coif3_18_md_pywtCoeffs.npyPK!i5asym_coif3_18_ma.npyPK!/F.8asym_coif3_18_md.npyPK!?Wrasym_coif3_18_ma_pywtCoeffs.npyPK!d"؊asym_coif3_18_md_pywtCoeffs.npyPK!ˬasymw_coif3_18_ma.npyPK!7asymw_coif3_18_md.npyPK!e  rasymw_coif3_18_ma_pywtCoeffs.npyPK!6ٹ asymw_coif3_18_md_pywtCoeffs.npyPK!Wzpd_coif3_19_ma.npyPK!?zpd_coif3_19_md.npyPK!Kzpd_coif3_19_ma_pywtCoeffs.npyPK!-̱zpd_coif3_19_md_pywtCoeffs.npyPK!sp0_coif3_19_ma.npyPK!Wq-Ysp0_coif3_19_md.npyPK!hsp0_coif3_19_ma_pywtCoeffs.npyPK!}Fsp0_coif3_19_md_pywtCoeffs.npyPK!LT2sym_coif3_19_ma.npyPK!ssym_coif3_19_md.npyPK!nsym_coif3_19_ma_pywtCoeffs.npyPK!l+Hsym_coif3_19_md_pywtCoeffs.npyPK!'Lsymw_coif3_19_ma.npyPK!Hsymw_coif3_19_md.npyPK!(2пsymw_coif3_19_ma_pywtCoeffs.npyPK!0symw_coif3_19_md_pywtCoeffs.npyPK!Djppd_coif3_19_ma.npyPK!x3Gdppd_coif3_19_md.npyPK!9ppd_coif3_19_ma_pywtCoeffs.npyPK!cV58ppd_coif3_19_md_pywtCoeffs.npyPK!4Bsp1_coif3_19_ma.npyPK!O"Vsp1_coif3_19_md.npyPK!M sp1_coif3_19_ma_pywtCoeffs.npyPK!Rsp1_coif3_19_md_pywtCoeffs.npyPK!0per_coif3_19_ma.npyPK!Vper_coif3_19_md.npyPK!per_coif3_19_ma_pywtCoeffs.npyPK!(per_coif3_19_md_pywtCoeffs.npyPK!Jasym_coif3_19_ma.npyPK!asym_coif3_19_md.npyPK!R<asym_coif3_19_ma_pywtCoeffs.npyPK!asym_coif3_19_md_pywtCoeffs.npyPK!Zasymw_coif3_19_ma.npyPK!asymw_coif3_19_md.npyPK!6MH \asymw_coif3_19_ma_pywtCoeffs.npyPK!}3 asymw_coif3_19_md_pywtCoeffs.npyPK!з&u88zpd_coif4_24_ma.npyPK!R88azpd_coif4_24_md.npyPK!88zpd_coif4_24_ma_pywtCoeffs.npyPK!j88>zpd_coif4_24_md_pywtCoeffs.npyPK!S88sp0_coif4_24_ma.npyPK!45388sp0_coif4_24_md.npyPK!06$788sp0_coif4_24_ma_pywtCoeffs.npyPK!988sp0_coif4_24_md_pywtCoeffs.npyPK!f88lsym_coif4_24_ma.npyPK!=88sym_coif4_24_md.npyPK!!88>sym_coif4_24_ma_pywtCoeffs.npyPK!/WB88sym_coif4_24_md_pywtCoeffs.npyPK!j+88&symw_coif4_24_ma.npyPK!_G88symw_coif4_24_md.npyPK!*88symw_coif4_24_ma_pywtCoeffs.npyPK!l88osymw_coif4_24_md_pywtCoeffs.npyPK!88ppd_coif4_24_ma.npyPK!88Mppd_coif4_24_md.npyPK!=UG88ppd_coif4_24_ma_pywtCoeffs.npyPK!L88*ppd_coif4_24_md_pywtCoeffs.npyPK!}Þw88sp1_coif4_24_ma.npyPK!y!88sp1_coif4_24_md.npyPK!}J88psp1_coif4_24_ma_pywtCoeffs.npyPK!J88sp1_coif4_24_md_pywtCoeffs.npyPK!RXper_coif4_24_ma.npyPK!A-ִiper_coif4_24_md.npyPK!(Ǜzper_coif4_24_ma_pywtCoeffs.npyPK!oizper_coif4_24_md_pywtCoeffs.npyPK![Bf88asym_coif4_24_ma.npyPK!|`M88asym_coif4_24_md.npyPK!w:G88asym_coif4_24_ma_pywtCoeffs.npyPK!7h'88asym_coif4_24_md_pywtCoeffs.npyPK!S88pasymw_coif4_24_ma.npyPK!'088asymw_coif4_24_md.npyPK!tB88 F asymw_coif4_24_ma_pywtCoeffs.npyPK!ۼ88  asymw_coif4_24_md_pywtCoeffs.npyPK!@@2 zpd_coif4_25_ma.npyPK!l $Y@@zpd_coif4_25_md.npyPK!@@zpd_coif4_25_ma_pywtCoeffs.npyPK!'@@zpd_coif4_25_md_pywtCoeffs.npyPK!W1@@ sp0_coif4_25_ma.npyPK! @@}sp0_coif4_25_md.npyPK!X@@sp0_coif4_25_ma_pywtCoeffs.npyPK!⪱@@jsp0_coif4_25_md_pywtCoeffs.npyPK!IZ@@sym_coif4_25_ma.npyPK!M@@Wsym_coif4_25_md.npyPK!瘷@@sym_coif4_25_ma_pywtCoeffs.npyPK!Y @@Dsym_coif4_25_md_pywtCoeffs.npyPK!o@@symw_coif4_25_ma.npyPK!C@@2 symw_coif4_25_md.npyPK!C@@!symw_coif4_25_ma_pywtCoeffs.npyPK!O|@@!#symw_coif4_25_md_pywtCoeffs.npyPK!7@@$ppd_coif4_25_ma.npyPK!Jy@@&ppd_coif4_25_md.npyPK!tw 5@@'ppd_coif4_25_ma_pywtCoeffs.npyPK!L@@(ppd_coif4_25_md_pywtCoeffs.npyPK!1@@x*sp1_coif4_25_ma.npyPK!8@@+sp1_coif4_25_md.npyPK! U'@@Z-sp1_coif4_25_ma_pywtCoeffs.npyPK!cF@@.sp1_coif4_25_md_pywtCoeffs.npyPK!R0per_coif4_25_ma.npyPK!Uk1per_coif4_25_md.npyPK!|;2per_coif4_25_ma_pywtCoeffs.npyPK!_(3per_coif4_25_md_pywtCoeffs.npyPK!@@4asym_coif4_25_ma.npyPK!l@@>6asym_coif4_25_md.npyPK!N =@@7asym_coif4_25_ma_pywtCoeffs.npyPK!"|Y@@-9asym_coif4_25_md_pywtCoeffs.npyPK!`p@@:asymw_coif4_25_ma.npyPK!@@<asymw_coif4_25_md.npyPK!'@@ =asymw_coif4_25_ma_pywtCoeffs.npyPK!@+Y@@ ?asymw_coif4_25_md_pywtCoeffs.npyPK!5@4hh@zpd_coif5_30_ma.npyPK!hh%Bzpd_coif5_30_md.npyPK!ZHhhCzpd_coif5_30_ma_pywtCoeffs.npyPK!1hhbEzpd_coif5_30_md_pywtCoeffs.npyPK!*\khhGsp0_coif5_30_ma.npyPK!Y hhHsp0_coif5_30_md.npyPK!hh8Jsp0_coif5_30_ma_pywtCoeffs.npyPK!gfhhKsp0_coif5_30_md_pywtCoeffs.npyPK!c`hhMsym_coif5_30_ma.npyPK!VhhOsym_coif5_30_md.npyPK!whhPsym_coif5_30_ma_pywtCoeffs.npyPK!PhhVRsym_coif5_30_md_pywtCoeffs.npyPK!aEhhSsymw_coif5_30_ma.npyPK!҅hhUsymw_coif5_30_md.npyPK!l;hh.Wsymw_coif5_30_ma_pywtCoeffs.npyPK!ahhXsymw_coif5_30_md_pywtCoeffs.npyPK!麃hhxZppd_coif5_30_ma.npyPK!N!hh\ppd_coif5_30_md.npyPK!hh]ppd_coif5_30_ma_pywtCoeffs.npyPK!&GDhhN_ppd_coif5_30_md_pywtCoeffs.npyPK!a!chh`sp1_coif5_30_ma.npyPK!-hhbsp1_coif5_30_md.npyPK!Dhh$dsp1_coif5_30_ma_pywtCoeffs.npyPK! Rhhesp1_coif5_30_md_pywtCoeffs.npyPK!lgper_coif5_30_ma.npyPK!*hper_coif5_30_md.npyPK!iper_coif5_30_ma_pywtCoeffs.npyPK!kjper_coif5_30_md_pywtCoeffs.npyPK!I2Fhh&lasym_coif5_30_ma.npyPK!hhhmasym_coif5_30_md.npyPK!2`yhhZoasym_coif5_30_ma_pywtCoeffs.npyPK!^hhpasym_coif5_30_md_pywtCoeffs.npyPK!qhhrasymw_coif5_30_ma.npyPK!_F"hh?tasymw_coif5_30_md.npyPK!aJhh uasymw_coif5_30_ma_pywtCoeffs.npyPK!KGhh wasymw_coif5_30_md_pywtCoeffs.npyPK!pp&yzpd_coif5_31_ma.npyPK!Nppzzpd_coif5_31_md.npyPK!_Vpph|zpd_coif5_31_ma_pywtCoeffs.npyPK!%ZLpp~zpd_coif5_31_md_pywtCoeffs.npyPK!Įgppsp0_coif5_31_ma.npyPK!eJppasp0_coif5_31_md.npyPK!Bppsp0_coif5_31_ma_pywtCoeffs.npyPK!ppsp0_coif5_31_md_pywtCoeffs.npyPK!=+ppZsym_coif5_31_ma.npyPK!G>ppsym_coif5_31_md.npyPK!ppsym_coif5_31_ma_pywtCoeffs.npyPK!|?4ppHsym_coif5_31_md_pywtCoeffs.npyPK!C'dppsymw_coif5_31_ma.npyPK!Mppsymw_coif5_31_md.npyPK!yExpp8symw_coif5_31_ma_pywtCoeffs.npyPK!׾ppsymw_coif5_31_md_pywtCoeffs.npyPK!nfppppd_coif5_31_ma.npyPK!pp3ppd_coif5_31_md.npyPK! yppԖppd_coif5_31_ma_pywtCoeffs.npyPK!Pppppd_coif5_31_md_pywtCoeffs.npyPK!Upp,sp1_coif5_31_ma.npyPK!@Ipp͛sp1_coif5_31_md.npyPK!؇ppnsp1_coif5_31_ma_pywtCoeffs.npyPK!ݣppsp1_coif5_31_md_pywtCoeffs.npyPK!w:Ơper_coif5_31_ma.npyPK!%§per_coif5_31_md.npyPK!H(per_coif5_31_ma_pywtCoeffs.npyPK!W@dper_coif5_31_md_pywtCoeffs.npyPK!_ppasym_coif5_31_ma.npyPK!HCppBasym_coif5_31_md.npyPK!fhppasym_coif5_31_ma_pywtCoeffs.npyPK!=ppasym_coif5_31_md_pywtCoeffs.npyPK!A]pp>asymw_coif5_31_ma.npyPK!gsp1_coif6_36_ma.npyPK!isp1_coif6_36_md.npyPK!8>sp1_coif6_36_ma_pywtCoeffs.npyPK!ilsp1_coif6_36_md_pywtCoeffs.npyPK! @per_coif6_36_ma.npyPK!csper_coif6_36_md.npyPK! per_coif6_36_ma_pywtCoeffs.npyPK!csper_coif6_36_md_pywtCoeffs.npyPK!-Zasym_coif6_36_ma.npyPK!}9$asym_coif6_36_md.npyPK!-asym_coif6_36_ma_pywtCoeffs.npyPK!}9asym_coif6_36_md_pywtCoeffs.npyPK!_asymw_coif6_36_ma.npyPK!R[casymw_coif6_36_md.npyPK!_ .asymw_coif6_36_ma_pywtCoeffs.npyPK!R[ asymw_coif6_36_md_pywtCoeffs.npyPK!bzpd_coif6_37_ma.npyPK!$Q%Ԡzpd_coif6_37_md.npyPK!b|zpd_coif6_37_ma_pywtCoeffs.npyPK!$Q%ԠXzpd_coif6_37_md_pywtCoeffs.npyPK!Z|Ơ4sp0_coif6_37_ma.npyPK!R|sp0_coif6_37_md.npyPK!Z|Ơsp0_coif6_37_ma_pywtCoeffs.npyPK!R|sp0_coif6_37_md_pywtCoeffs.npyPK!sym_coif6_37_ma.npyPK!-9_sym_coif6_37_md.npyPK!0sym_coif6_37_ma_pywtCoeffs.npyPK!-9 sym_coif6_37_md_pywtCoeffs.npyPK!dsymw_coif6_37_ma.npyPK!/Q  symw_coif6_37_md.npyPK!d symw_coif6_37_ma_pywtCoeffs.npyPK!/Q i symw_coif6_37_md_pywtCoeffs.npyPK!%Fppd_coif6_37_ma.npyPK!a!.ppd_coif6_37_md.npyPK!%ppd_coif6_37_ma_pywtCoeffs.npyPK!a!.ppd_coif6_37_md_pywtCoeffs.npyPK!EDƠsp1_coif6_37_ma.npyPK!@qsp1_coif6_37_md.npyPK!EDƠBsp1_coif6_37_ma_pywtCoeffs.npyPK!@sp1_coif6_37_md_pywtCoeffs.npyPK!ߋ[per_coif6_37_ma.npyPK!V<Cper_coif6_37_md.npyPK!ߋ[ per_coif6_37_ma_pywtCoeffs.npyPK!V<!per_coif6_37_md_pywtCoeffs.npyPK!;ՠ4#asym_coif6_37_ma.npyPK!48aj%asym_coif6_37_md.npyPK!;ՠ&asym_coif6_37_ma_pywtCoeffs.npyPK!48aj(asym_coif6_37_md_pywtCoeffs.npyPK!%}3zpd_coif7_42_md.npyPK!13+5zpd_coif7_42_ma_pywtCoeffs.npyPK!O>}7zpd_coif7_42_md_pywtCoeffs.npyPK!ZA9sp0_coif7_42_ma.npyPK!Ñ;sp0_coif7_42_md.npyPK!ZA=sp0_coif7_42_ma_pywtCoeffs.npyPK!Ñ?sp0_coif7_42_md_pywtCoeffs.npyPK!_Asym_coif7_42_ma.npyPK!+Csym_coif7_42_md.npyPK!_Esym_coif7_42_ma_pywtCoeffs.npyPK!+Gsym_coif7_42_md_pywtCoeffs.npyPK!YCIsymw_coif7_42_ma.npyPK!gvKsymw_coif7_42_md.npyPK!YCMsymw_coif7_42_ma_pywtCoeffs.npyPK!gvOsymw_coif7_42_md_pywtCoeffs.npyPK!ܐ Qppd_coif7_42_ma.npyPK!8/SSppd_coif7_42_md.npyPK!ܐ Uppd_coif7_42_ma_pywtCoeffs.npyPK!8/SWppd_coif7_42_md_pywtCoeffs.npyPK!vaTYsp1_coif7_42_ma.npyPK!)[sp1_coif7_42_md.npyPK!vaT]sp1_coif7_42_ma_pywtCoeffs.npyPK!)_sp1_coif7_42_md_pywtCoeffs.npyPK!;((aper_coif7_42_ma.npyPK!((-cper_coif7_42_md.npyPK!;((dper_coif7_42_ma_pywtCoeffs.npyPK!((eper_coif7_42_md_pywtCoeffs.npyPK!vNgasym_coif7_42_ma.npyPK!sHiasym_coif7_42_md.npyPK!vBkasym_coif7_42_ma_pywtCoeffs.npyPK!sGmasym_coif7_42_md_pywtCoeffs.npyPK!ALoasymw_coif7_42_ma.npyPK!BNGqasymw_coif7_42_md.npyPK!A Bsasymw_coif7_42_ma_pywtCoeffs.npyPK!BN Huasymw_coif7_42_md_pywtCoeffs.npyPK!@nNwzpd_coif7_43_ma.npyPK!&FOyzpd_coif7_43_md.npyPK!@nP{zpd_coif7_43_ma_pywtCoeffs.npyPK!&F\}zpd_coif7_43_md_pywtCoeffs.npyPK!#ެ`hsp0_coif7_43_ma.npyPK!o|isp0_coif7_43_md.npyPK!#ެ`jsp0_coif7_43_ma_pywtCoeffs.npyPK!o|vsp0_coif7_43_md_pywtCoeffs.npyPK! sym_coif7_43_ma.npyPK! sym_coif7_43_md.npyPK! sym_coif7_43_ma_pywtCoeffs.npyPK! sym_coif7_43_md_pywtCoeffs.npyPK!_9)symw_coif7_43_ma.npyPK!',symw_coif7_43_md.npyPK!_9)symw_coif7_43_ma_pywtCoeffs.npyPK!',symw_coif7_43_md_pywtCoeffs.npyPK!͙oppd_coif7_43_ma.npyPK!ppd_coif7_43_md.npyPK!͙oppd_coif7_43_ma_pywtCoeffs.npyPK!ȝppd_coif7_43_md_pywtCoeffs.npyPK!ԟsp1_coif7_43_ma.npyPK!m2աsp1_coif7_43_md.npyPK!֣sp1_coif7_43_ma_pywtCoeffs.npyPK!m2sp1_coif7_43_md_pywtCoeffs.npyPK!c00per_coif7_43_ma.npyPK!=l/00Oper_coif7_43_md.npyPK!c00per_coif7_43_ma_pywtCoeffs.npyPK!=l/00per_coif7_43_md_pywtCoeffs.npyPK!Msasym_coif7_43_ma.npyPK! $xasym_coif7_43_md.npyPK!Msasym_coif7_43_ma_pywtCoeffs.npyPK! $xasym_coif7_43_md_pywtCoeffs.npyPK!asymw_coif7_43_ma.npyPK!kasymw_coif7_43_md.npyPK! asymw_coif7_43_ma_pywtCoeffs.npyPK!k asymw_coif7_43_md_pywtCoeffs.npyPK!ɺȽzpd_coif8_48_ma.npyPK!\zpd_coif8_48_md.npyPK!ɺzpd_coif8_48_ma_pywtCoeffs.npyPK!\Nzpd_coif8_48_md_pywtCoeffs.npyPK!Msp0_coif8_48_ma.npyPK!L߀sp0_coif8_48_md.npyPK!Msp0_coif8_48_ma_pywtCoeffs.npyPK!L߀sp0_coif8_48_md_pywtCoeffs.npyPK!@<sym_coif8_48_ma.npyPK! D esym_coif8_48_md.npyPK!@sym_coif8_48_ma_pywtCoeffs.npyPK! D sym_coif8_48_md_pywtCoeffs.npyPK!ɋsymw_coif8_48_ma.npyPK! symw_coif8_48_md.npyPK!ɋJsymw_coif8_48_ma_pywtCoeffs.npyPK!symw_coif8_48_md_pywtCoeffs.npyPK!pA$ppd_coif8_48_ma.npyPK!ppd_coif8_48_md.npyPK!pA$ppd_coif8_48_ma_pywtCoeffs.npyPK!:ppd_coif8_48_md_pywtCoeffs.npyPK!19(nsp1_coif8_48_ma.npyPK!WĻsp1_coif8_48_md.npyPK!19(sp1_coif8_48_ma_pywtCoeffs.npyPK!WĻsp1_coif8_48_md_pywtCoeffs.npyPK!+C@@(per_coif8_48_ma.npyPK!O@@per_coif8_48_md.npyPK!+C@@ per_coif8_48_ma_pywtCoeffs.npyPK!O@@per_coif8_48_md_pywtCoeffs.npyPK!easym_coif8_48_ma.npyPK!1,asym_coif8_48_md.npyPK!eVasym_coif8_48_ma_pywtCoeffs.npyPK!1asym_coif8_48_md_pywtCoeffs.npyPK!7z)~asymw_coif8_48_ma.npyPK!"asymw_coif8_48_md.npyPK!7z)~ asymw_coif8_48_ma_pywtCoeffs.npyPK!" Lasymw_coif8_48_md_pywtCoeffs.npyPK!# zpd_coif8_49_ma.npyPK!c  zpd_coif8_49_md.npyPK!# zpd_coif8_49_ma_pywtCoeffs.npyPK!c  zpd_coif8_49_md_pywtCoeffs.npyPK!\\sp0_coif8_49_ma.npyPK! sp0_coif8_49_md.npyPK!\sp0_coif8_49_ma_pywtCoeffs.npyPK! sp0_coif8_49_md_pywtCoeffs.npyPK!~6sym_coif8_49_ma.npyPK! hgsym_coif8_49_md.npyPK!~sym_coif8_49_ma_pywtCoeffs.npyPK! h!sym_coif8_49_md_pywtCoeffs.npyPK!7;$symw_coif8_49_ma.npyPK!<}B&symw_coif8_49_md.npyPK!7;t(symw_coif8_49_ma_pywtCoeffs.npyPK!<}*symw_coif8_49_md_pywtCoeffs.npyPK!m,ppd_coif8_49_ma.npyPK!/ppd_coif8_49_md.npyPK!mP1ppd_coif8_49_ma_pywtCoeffs.npyPK!3ppd_coif8_49_md_pywtCoeffs.npyPK!5sp1_coif8_49_ma.npyPK!߽.7sp1_coif8_49_md.npyPK!*:sp1_coif8_49_ma_pywtCoeffs.npyPK!߽.f<sp1_coif8_49_md_pywtCoeffs.npyPK!'HH>per_coif8_49_ma.npyPK!:JHH@per_coif8_49_md.npyPK!'HHAper_coif8_49_ma_pywtCoeffs.npyPK!:JHHCper_coif8_49_md_pywtCoeffs.npyPK!O:Dasym_coif8_49_ma.npyPK! hlFasym_coif8_49_md.npyPK!O:Iasym_coif8_49_ma_pywtCoeffs.npyPK! hl=Kasym_coif8_49_md_pywtCoeffs.npyPK!!LzMasymw_coif8_49_ma.npyPK!,Oasymw_coif8_49_md.npyPK!!L Qasymw_coif8_49_ma_pywtCoeffs.npyPK!, Tasymw_coif8_49_md_pywtCoeffs.npyPK!8-y((\Vzpd_coif9_54_ma.npyPK!E[((Xzpd_coif9_54_md.npyPK!8-y(([zpd_coif9_54_ma_pywtCoeffs.npyPK!E[((r]zpd_coif9_54_md_pywtCoeffs.npyPK! S((_sp0_coif9_54_ma.npyPK!Q((/bsp0_coif9_54_md.npyPK! S((dsp0_coif9_54_ma_pywtCoeffs.npyPK!Q((fsp0_coif9_54_md_pywtCoeffs.npyPK!:((Pisym_coif9_54_ma.npyPK!((ksym_coif9_54_md.npyPK!:((nsym_coif9_54_ma_pywtCoeffs.npyPK!((fpsym_coif9_54_md_pywtCoeffs.npyPK!pvbv((rsymw_coif9_54_ma.npyPK!(($usymw_coif9_54_md.npyPK!pvbv((~wsymw_coif9_54_ma_pywtCoeffs.npyPK!((ysymw_coif9_54_md_pywtCoeffs.npyPK!#((H|ppd_coif9_54_ma.npyPK!es((~ppd_coif9_54_md.npyPK!#((ppd_coif9_54_ma_pywtCoeffs.npyPK!es((^ppd_coif9_54_md_pywtCoeffs.npyPK!j((…sp1_coif9_54_ma.npyPK!Y3((sp1_coif9_54_md.npyPK!j((tsp1_coif9_54_ma_pywtCoeffs.npyPK!Y3((،sp1_coif9_54_md_pywtCoeffs.npyPK!-tXX<per_coif9_54_ma.npyPK!l\XXŐper_coif9_54_md.npyPK!-tXXNper_coif9_54_ma_pywtCoeffs.npyPK!l\XXper_coif9_54_md_pywtCoeffs.npyPK!FW((vasym_coif9_54_ma.npyPK!]c((Зasym_coif9_54_md.npyPK!FW((*asym_coif9_54_ma_pywtCoeffs.npyPK!]c((asym_coif9_54_md_pywtCoeffs.npyPK!((asymw_coif9_54_ma.npyPK!Ap((Oasymw_coif9_54_md.npyPK!(( asymw_coif9_54_ma_pywtCoeffs.npyPK!Ap(( asymw_coif9_54_md_pywtCoeffs.npyPK!I,Θ00vzpd_coif9_55_ma.npyPK!Dx00תzpd_coif9_55_md.npyPK!I,Θ008zpd_coif9_55_ma_pywtCoeffs.npyPK!Dx00zpd_coif9_55_md_pywtCoeffs.npyPK!o<00sp0_coif9_55_ma.npyPK!ixy00qsp0_coif9_55_md.npyPK!o<00Ҷsp0_coif9_55_ma_pywtCoeffs.npyPK!ixy00>sp0_coif9_55_md_pywtCoeffs.npyPK!c00sym_coif9_55_ma.npyPK![mv00 sym_coif9_55_md.npyPK!c00lsym_coif9_55_ma_pywtCoeffs.npyPK![mv00sym_coif9_55_md_pywtCoeffs.npyPK!QO00Dsymw_coif9_55_ma.npyPK!Xrj00symw_coif9_55_md.npyPK!QO00symw_coif9_55_ma_pywtCoeffs.npyPK!Xrj00usymw_coif9_55_md_pywtCoeffs.npyPK!T00ppd_coif9_55_ma.npyPK!700Cppd_coif9_55_md.npyPK!T00ppd_coif9_55_ma_pywtCoeffs.npyPK!700ppd_coif9_55_md_pywtCoeffs.npyPK!z00|sp1_coif9_55_ma.npyPK!600sp1_coif9_55_md.npyPK!z00>sp1_coif9_55_ma_pywtCoeffs.npyPK!600sp1_coif9_55_md_pywtCoeffs.npyPK!h``per_coif9_55_ma.npyPK! bL``per_coif9_55_md.npyPK!h``8per_coif9_55_ma_pywtCoeffs.npyPK! bL``per_coif9_55_md_pywtCoeffs.npyPK!f[00pasym_coif9_55_ma.npyPK!g00asym_coif9_55_md.npyPK!f[004asym_coif9_55_ma_pywtCoeffs.npyPK!g00asym_coif9_55_md_pywtCoeffs.npyPK!y00asymw_coif9_55_ma.npyPK!v00qasymw_coif9_55_md.npyPK!y00 asymw_coif9_55_ma_pywtCoeffs.npyPK!v00 Basymw_coif9_55_md_pywtCoeffs.npyPK!XXzpd_coif10_60_ma.npyPK!"XX:zpd_coif10_60_md.npyPK!XXzpd_coif10_60_ma_pywtCoeffs.npyPK!"XXYzpd_coif10_60_md_pywtCoeffs.npyPK!nXXsp0_coif10_60_ma.npyPK!'r"wXXxsp0_coif10_60_md.npyPK!nXX sp0_coif10_60_ma_pywtCoeffs.npyPK!'r"wXX sp0_coif10_60_md_pywtCoeffs.npyPK!hXX,sym_coif10_60_ma.npyPK!C.XXsym_coif10_60_md.npyPK!hXX@sym_coif10_60_ma_pywtCoeffs.npyPK!C.XXsym_coif10_60_md_pywtCoeffs.npyPK!3 XXjsymw_coif10_60_ma.npyPK!ps+XXsymw_coif10_60_md.npyPK!3 XX symw_coif10_60_ma_pywtCoeffs.npyPK!ps+XX "symw_coif10_60_md_pywtCoeffs.npyPK!)XX$ppd_coif10_60_ma.npyPK!"`XX6'ppd_coif10_60_md.npyPK!)XX)ppd_coif10_60_ma_pywtCoeffs.npyPK!"`XXU,ppd_coif10_60_md_pywtCoeffs.npyPK!QXX.sp1_coif10_60_ma.npyPK!}XXt1sp1_coif10_60_md.npyPK!QXX3sp1_coif10_60_ma_pywtCoeffs.npyPK!}XX6sp1_coif10_60_md_pywtCoeffs.npyPK!\pp(9per_coif10_60_ma.npyPK!|pp:per_coif10_60_md.npyPK!\ppl<per_coif10_60_ma_pywtCoeffs.npyPK!|pp>per_coif10_60_md_pywtCoeffs.npyPK!lU$XX?asym_coif10_60_ma.npyPK!aʎXXQBasym_coif10_60_md.npyPK!lU$XX Dasym_coif10_60_ma_pywtCoeffs.npyPK!aʎXX rGasym_coif10_60_md_pywtCoeffs.npyPK!TW{XXJasymw_coif10_60_ma.npyPK!܆XXLasymw_coif10_60_md.npyPK!TW{XX! Oasymw_coif10_60_ma_pywtCoeffs.npyPK!܆XX!Qasymw_coif10_60_md_pywtCoeffs.npyPK!wB``NTzpd_coif10_61_ma.npyPK!GhY``Vzpd_coif10_61_md.npyPK!wB``rYzpd_coif10_61_ma_pywtCoeffs.npyPK!GhY``\zpd_coif10_61_md_pywtCoeffs.npyPK!|{%``^sp0_coif10_61_ma.npyPK!y``>asp0_coif10_61_md.npyPK!|{%``csp0_coif10_61_ma_pywtCoeffs.npyPK!y``mfsp0_coif10_61_md_pywtCoeffs.npyPK!A9`` isym_coif10_61_ma.npyPK!Ϯ``ksym_coif10_61_md.npyPK!A9``.nsym_coif10_61_ma_pywtCoeffs.npyPK!Ϯ``psym_coif10_61_md_pywtCoeffs.npyPK!'``hssymw_coif10_61_ma.npyPK! $``usymw_coif10_61_md.npyPK!'`` xsymw_coif10_61_ma_pywtCoeffs.npyPK! $`` ,{symw_coif10_61_md_pywtCoeffs.npyPK!ǔ``}ppd_coif10_61_ma.npyPK!b``\ppd_coif10_61_md.npyPK!ǔ``ppd_coif10_61_ma_pywtCoeffs.npyPK!b``ppd_coif10_61_md_pywtCoeffs.npyPK!?d``(sp1_coif10_61_ma.npyPK!܃Z|``sp1_coif10_61_md.npyPK!?d``Lsp1_coif10_61_ma_pywtCoeffs.npyPK!܃Z|``sp1_coif10_61_md_pywtCoeffs.npyPK!xxper_coif10_61_ma.npyPK!Anxx0per_coif10_61_md.npyPK!xxڕper_coif10_61_ma_pywtCoeffs.npyPK!Anxxper_coif10_61_md_pywtCoeffs.npyPK!TLX``Dasym_coif10_61_ma.npyPK!C<``כasym_coif10_61_md.npyPK!TLX`` jasym_coif10_61_ma_pywtCoeffs.npyPK!C<`` asym_coif10_61_md_pywtCoeffs.npyPK!-``asymw_coif10_61_ma.npyPK!>!}``:asymw_coif10_61_md.npyPK!-``!Ψasymw_coif10_61_ma_pywtCoeffs.npyPK!>!}``!masymw_coif10_61_md_pywtCoeffs.npyPK!qG zpd_coif11_66_ma.npyPK!ֈưzpd_coif11_66_md.npyPK!qGzpd_coif11_66_ma_pywtCoeffs.npyPK!ֈEzpd_coif11_66_md_pywtCoeffs.npyPK!dOp sp0_coif11_66_ma.npyPK!H΋Ļsp0_coif11_66_md.npyPK!dOp~sp0_coif11_66_ma_pywtCoeffs.npyPK!H΋Csp0_coif11_66_md_pywtCoeffs.npyPK!^usym_coif11_66_ma.npyPK!K5sym_coif11_66_md.npyPK!^u|sym_coif11_66_ma_pywtCoeffs.npyPK!K5Asym_coif11_66_md_pywtCoeffs.npyPK!pisymw_coif11_66_ma.npyPK!;5symw_coif11_66_md.npyPK!pi |symw_coif11_66_ma_pywtCoeffs.npyPK!;5 Bsymw_coif11_66_md_pywtCoeffs.npyPK!+`xppd_coif11_66_ma.npyPK!!qppd_coif11_66_md.npyPK!+`x|ppd_coif11_66_ma_pywtCoeffs.npyPK!!qAppd_coif11_66_md_pywtCoeffs.npyPK!#UIsp1_coif11_66_ma.npyPK!J;dsp1_coif11_66_md.npyPK!#UIzsp1_coif11_66_ma_pywtCoeffs.npyPK!J;d?sp1_coif11_66_md_pywtCoeffs.npyPK!4وper_coif11_66_ma.npyPK!Lˈper_coif11_66_md.npyPK!4وxper_coif11_66_ma_pywtCoeffs.npyPK!Lˈ=per_coif11_66_md_pywtCoeffs.npyPK!^Ԉasym_coif11_66_ma.npyPK!FEasym_coif11_66_md.npyPK!^Ԉ xasym_coif11_66_ma_pywtCoeffs.npyPK!FE >asym_coif11_66_md_pywtCoeffs.npyPK!I asymw_coif11_66_ma.npyPK!oA asymw_coif11_66_md.npyPK!I!| asymw_coif11_66_ma_pywtCoeffs.npyPK!oA!C asymw_coif11_66_md_pywtCoeffs.npyPK!F zpd_coif11_67_ma.npyPK!w^j zpd_coif11_67_md.npyPK!F zpd_coif11_67_ma_pywtCoeffs.npyPK!w^j[ zpd_coif11_67_md_pywtCoeffs.npyPK!3( sp0_coif11_67_ma.npyPK!cBs sp0_coif11_67_md.npyPK!3 sp0_coif11_67_ma_pywtCoeffs.npyPK!cBsy sp0_coif11_67_md_pywtCoeffs.npyPK!ZF# sym_coif11_67_ma.npyPK!d9& sym_coif11_67_md.npyPK!Z( sym_coif11_67_ma_pywtCoeffs.npyPK!d9+ sym_coif11_67_md_pywtCoeffs.npyPK!Vd. symw_coif11_67_ma.npyPK!+'1 symw_coif11_67_md.npyPK!V 3 symw_coif11_67_ma_pywtCoeffs.npyPK!+ 6 symw_coif11_67_md_pywtCoeffs.npyPK!59 ppd_coif11_67_ma.npyPK!~ H< ppd_coif11_67_md.npyPK!5 ? ppd_coif11_67_ma_pywtCoeffs.npyPK!~ A ppd_coif11_67_md_pywtCoeffs.npyPK!H<D sp1_coif11_67_ma.npyPK!fG sp1_coif11_67_md.npyPK!H<(J sp1_coif11_67_ma_pywtCoeffs.npyPK!L sp1_coif11_67_md_pywtCoeffs.npyPK!7KO per_coif11_67_ma.npyPK!qQ per_coif11_67_md.npyPK!7KFS per_coif11_67_ma_pywtCoeffs.npyPK!qU per_coif11_67_md_pywtCoeffs.npyPK!C@V asym_coif11_67_ma.npyPK!>Y asym_coif11_67_md.npyPK!C@ f\ asym_coif11_67_ma_pywtCoeffs.npyPK!> 4_ asym_coif11_67_md_pywtCoeffs.npyPK!E>b asymw_coif11_67_ma.npyPK!ӹJd asymw_coif11_67_md.npyPK!E>!g asymw_coif11_67_ma_pywtCoeffs.npyPK!ӹJ!Yj asymw_coif11_67_md_pywtCoeffs.npyPK!#YZ(m zpd_coif12_72_ma.npyPK!Pfp zpd_coif12_72_md.npyPK!#YZr zpd_coif12_72_ma_pywtCoeffs.npyPK!Pfu zpd_coif12_72_md_pywtCoeffs.npyPK!x sp0_coif12_72_ma.npyPK!S&{ sp0_coif12_72_md.npyPK!~ sp0_coif12_72_ma_pywtCoeffs.npyPK!S& sp0_coif12_72_md_pywtCoeffs.npyPK!G6 sym_coif12_72_ma.npyPK!! sym_coif12_72_md.npyPK!G6x sym_coif12_72_ma_pywtCoeffs.npyPK!!m sym_coif12_72_md_pywtCoeffs.npyPK!(b symw_coif12_72_ma.npyPK!D˸M symw_coif12_72_md.npyPK!( 8 symw_coif12_72_ma_pywtCoeffs.npyPK!D˸ . symw_coif12_72_md_pywtCoeffs.npyPK!6M$ ppd_coif12_72_ma.npyPK! 3 ppd_coif12_72_md.npyPK!6M ppd_coif12_72_ma_pywtCoeffs.npyPK! 3 ppd_coif12_72_md_pywtCoeffs.npyPK!N&Z sp1_coif12_72_ma.npyPK!"s̪ sp1_coif12_72_md.npyPK!N&Z sp1_coif12_72_ma_pywtCoeffs.npyPK!"s sp1_coif12_72_md_pywtCoeffs.npyPK! per_coif12_72_ma.npyPK!\JFr per_coif12_72_md.npyPK!D per_coif12_72_ma_pywtCoeffs.npyPK!\JF! per_coif12_72_md_pywtCoeffs.npyPK!Si4 asym_coif12_72_ma.npyPK!W8 asym_coif12_72_md.npyPK!Si4  asym_coif12_72_ma_pywtCoeffs.npyPK!W8  asym_coif12_72_md_pywtCoeffs.npyPK!ԯ+ asymw_coif12_72_ma.npyPK!At asymw_coif12_72_md.npyPK!ԯ+! asymw_coif12_72_ma_pywtCoeffs.npyPK!At! asymw_coif12_72_md_pywtCoeffs.npyPK!Z zpd_coif12_73_ma.npyPK!x zpd_coif12_73_md.npyPK!Zj zpd_coif12_73_ma_pywtCoeffs.npyPK!g zpd_coif12_73_md_pywtCoeffs.npyPK!B&?d sp0_coif12_73_ma.npyPK!zV sp0_coif12_73_md.npyPK!B&?H sp0_coif12_73_ma_pywtCoeffs.npyPK!zE sp0_coif12_73_md_pywtCoeffs.npyPK!4B sym_coif12_73_ma.npyPK!}G4 sym_coif12_73_md.npyPK!4& sym_coif12_73_ma_pywtCoeffs.npyPK!}G# sym_coif12_73_md_pywtCoeffs.npyPK!.gy symw_coif12_73_ma.npyPK!h. symw_coif12_73_md.npyPK!.gy  symw_coif12_73_ma_pywtCoeffs.npyPK!h.  symw_coif12_73_md_pywtCoeffs.npyPK!`Έ!ppd_coif12_73_ma.npyPK!?q!ppd_coif12_73_md.npyPK!`Έ!ppd_coif12_73_ma_pywtCoeffs.npyPK!?q !ppd_coif12_73_md_pywtCoeffs.npyPK!}< !sp1_coif12_73_ma.npyPK!&!sp1_coif12_73_md.npyPK!}<!sp1_coif12_73_ma_pywtCoeffs.npyPK!&!sp1_coif12_73_md_pywtCoeffs.npyPK!Do!per_coif12_73_ma.npyPK!Ѣݨ!per_coif12_73_md.npyPK!Dor!per_coif12_73_ma_pywtCoeffs.npyPK!ѢݨW!per_coif12_73_md_pywtCoeffs.npyPK!v9b~^!symw_coif13_78_ma.npyPK!xNKa!symw_coif13_78_md.npyPK!H> d!symw_coif13_78_ma_pywtCoeffs.npyPK!xNK g!symw_coif13_78_md_pywtCoeffs.npyPK!/ k!ppd_coif13_78_ma.npyPK!{un!ppd_coif13_78_md.npyPK!/ 4q!ppd_coif13_78_ma_pywtCoeffs.npyPK!{uYt!ppd_coif13_78_md_pywtCoeffs.npyPK!~w!sp1_coif13_78_ma.npyPK!sz!sp1_coif13_78_md.npyPK!}!sp1_coif13_78_ma_pywtCoeffs.npyPK!s׀!sp1_coif13_78_md_pywtCoeffs.npyPK!?!per_coif13_78_ma.npyPK!lGj!per_coif13_78_md.npyPK!?Ї!per_coif13_78_ma_pywtCoeffs.npyPK!lGjʼn!per_coif13_78_md_pywtCoeffs.npyPK!H !asym_coif13_78_ma.npyPK!#Վ!asym_coif13_78_md.npyPK!H  !asym_coif13_78_ma_pywtCoeffs.npyPK!# !asym_coif13_78_md_pywtCoeffs.npyPK!o5q!ppd_coif13_79_ma.npyPK!Gy4`!ppd_coif13_79_md.npyPK!jh!ppd_coif13_79_ma_pywtCoeffs.npyPK!Gy4!ppd_coif13_79_md_pywtCoeffs.npyPK!ٓ!sp1_coif13_79_ma.npyPK! \!sp1_coif13_79_md.npyPK!ٓ !sp1_coif13_79_ma_pywtCoeffs.npyPK! \M!sp1_coif13_79_md_pywtCoeffs.npyPK!Nsz!per_coif13_79_ma.npyPK!-p l!per_coif13_79_md.npyPK!Ns^!per_coif13_79_ma_pywtCoeffs.npyPK!-p [!per_coif13_79_md_pywtCoeffs.npyPK!-GX!asym_coif13_79_ma.npyPK!K{!asym_coif13_79_md.npyPK!-G !asym_coif13_79_ma_pywtCoeffs.npyPK!K "asym_coif13_79_md_pywtCoeffs.npyPK!Z"asymw_coif13_79_ma.npyPK!Фt"asymw_coif13_79_md.npyPK!Z!B "asymw_coif13_79_ma_pywtCoeffs.npyPK!Фt!q"asymw_coif13_79_md_pywtCoeffs.npyPK!NJ"zpd_coif14_84_ma.npyPK!"zpd_coif14_84_md.npyPK!NJ4"zpd_coif14_84_ma_pywtCoeffs.npyPK!"zpd_coif14_84_md_pywtCoeffs.npyPK!Ρ6"sp0_coif14_84_ma.npyPK!wy(""sp0_coif14_84_md.npyPK!Ρ6r%"sp0_coif14_84_ma_pywtCoeffs.npyPK!wy("sp0_coif14_84_md_pywtCoeffs.npyPK!߭,"sym_coif14_84_ma.npyPK!>f/"sym_coif14_84_md.npyPK!߭2"sym_coif14_84_ma_pywtCoeffs.npyPK!>6"sym_coif14_84_md_pywtCoeffs.npyPK! Z9"symw_coif14_84_ma.npyPK!9<"symw_coif14_84_md.npyPK!  ?"symw_coif14_84_ma_pywtCoeffs.npyPK!9 FC"symw_coif14_84_md_pywtCoeffs.npyPK!5iF"ppd_coif14_84_ma.npyPK!P I"ppd_coif14_84_md.npyPK!5i0M"ppd_coif14_84_ma_pywtCoeffs.npyPK!P P"ppd_coif14_84_md_pywtCoeffs.npyPK!q-S"sp1_coif14_84_ma.npyPK!ı$W"sp1_coif14_84_md.npyPK!q-nZ"sp1_coif14_84_ma_pywtCoeffs.npyPK!ı]"sp1_coif14_84_md_pywtCoeffs.npyPK!a"per_coif14_84_ma.npyPK!w`c"per_coif14_84_md.npyPK!e"per_coif14_84_ma_pywtCoeffs.npyPK!w`)g"per_coif14_84_md_pywtCoeffs.npyPK!R,6i"asym_coif14_84_ma.npyPK!ջl"asym_coif14_84_md.npyPK!R, o"asym_coif14_84_ma_pywtCoeffs.npyPK!ջ "s"asym_coif14_84_md_pywtCoeffs.npyPK!j]7xv"asymw_coif14_84_ma.npyPK!xڙy"asymw_coif14_84_md.npyPK!j]7!}"asymw_coif14_84_ma_pywtCoeffs.npyPK!xڙ!g"asymw_coif14_84_md_pywtCoeffs.npyPK!~=  "zpd_coif14_85_ma.npyPK!-  "zpd_coif14_85_md.npyPK!~=  b"zpd_coif14_85_ma_pywtCoeffs.npyPK!-  "zpd_coif14_85_md_pywtCoeffs.npyPK!\m  "sp0_coif14_85_ma.npyPK!{|Շ  n"sp0_coif14_85_md.npyPK!\m  "sp0_coif14_85_ma_pywtCoeffs.npyPK!{|Շ  "sp0_coif14_85_md_pywtCoeffs.npyPK!Չ  z"sym_coif14_85_ma.npyPK!+g  ̡"sym_coif14_85_md.npyPK!Չ  "sym_coif14_85_ma_pywtCoeffs.npyPK!+g  {"sym_coif14_85_md_pywtCoeffs.npyPK!q  ث"symw_coif14_85_ma.npyPK!9  +"symw_coif14_85_md.npyPK!q   ~"symw_coif14_85_ma_pywtCoeffs.npyPK!9   ܵ"symw_coif14_85_md_pywtCoeffs.npyPK!;  :"ppd_coif14_85_ma.npyPK!eg  "ppd_coif14_85_md.npyPK!;  ޿"ppd_coif14_85_ma_pywtCoeffs.npyPK!eg  ;"ppd_coif14_85_md_pywtCoeffs.npyPK!;  "sp1_coif14_85_ma.npyPK!L  "sp1_coif14_85_md.npyPK!;  <"sp1_coif14_85_ma_pywtCoeffs.npyPK!L  "sp1_coif14_85_md_pywtCoeffs.npyPK!b_G"per_coif14_85_ma.npyPK!aK"per_coif14_85_md.npyPK!b_G "per_coif14_85_ma_pywtCoeffs.npyPK!aK"per_coif14_85_md_pywtCoeffs.npyPK!8}  4"asym_coif14_85_ma.npyPK!а  "asym_coif14_85_md.npyPK!8}   "asym_coif14_85_ma_pywtCoeffs.npyPK!а   8"asym_coif14_85_md_pywtCoeffs.npyPK!eʾ  "asymw_coif14_85_ma.npyPK!p`  "asymw_coif14_85_md.npyPK!eʾ  !>"asymw_coif14_85_ma_pywtCoeffs.npyPK!p`  !"asymw_coif14_85_md_pywtCoeffs.npyPK!HH"zpd_coif15_90_ma.npyPK!X⭘HHv"zpd_coif15_90_md.npyPK!HH"zpd_coif15_90_ma_pywtCoeffs.npyPK!X⭘HHu#zpd_coif15_90_md_pywtCoeffs.npyPK!`HH#sp0_coif15_90_ma.npyPK!kHHt#sp0_coif15_90_md.npyPK!`HH #sp0_coif15_90_ma_pywtCoeffs.npyPK!kHHs#sp0_coif15_90_md_pywtCoeffs.npyPK!#HH#sym_coif15_90_ma.npyPK!**HHr#sym_coif15_90_md.npyPK!#HH#sym_coif15_90_ma_pywtCoeffs.npyPK!**HHq#sym_coif15_90_md_pywtCoeffs.npyPK!_QHH #symw_coif15_90_ma.npyPK!EHHHq$#symw_coif15_90_md.npyPK!_QHH '#symw_coif15_90_ma_pywtCoeffs.npyPK!EHHH r+#symw_coif15_90_md_pywtCoeffs.npyPK!"2@HH.#ppd_coif15_90_ma.npyPK!ݞYHHr2#ppd_coif15_90_md.npyPK!"2@HH5#ppd_coif15_90_ma_pywtCoeffs.npyPK!ݞYHHq9#ppd_coif15_90_md_pywtCoeffs.npyPK!у[1HH<#sp1_coif15_90_ma.npyPK! HHp@#sp1_coif15_90_md.npyPK!у[1HHC#sp1_coif15_90_ma_pywtCoeffs.npyPK! HHoG#sp1_coif15_90_md_pywtCoeffs.npyPK!B5J#per_coif15_90_ma.npyPK!4z7M#per_coif15_90_md.npyPK!B5(O#per_coif15_90_ma_pywtCoeffs.npyPK!4z7MQ#per_coif15_90_md_pywtCoeffs.npyPK!0T HHrS#asym_coif15_90_ma.npyPK!ŝHHV#asym_coif15_90_md.npyPK!0T HH hZ#asym_coif15_90_ma_pywtCoeffs.npyPK!ŝHH ]#asym_coif15_90_md_pywtCoeffs.npyPK!JHHta#asymw_coif15_90_ma.npyPK!HHd#asymw_coif15_90_md.npyPK!JHH!lh#asymw_coif15_90_ma_pywtCoeffs.npyPK!HH!k#asymw_coif15_90_md_pywtCoeffs.npyPK! 6PPzo#zpd_coif15_91_ma.npyPK!hPPr#zpd_coif15_91_md.npyPK! 6PP~v#zpd_coif15_91_ma_pywtCoeffs.npyPK!hPP z#zpd_coif15_91_md_pywtCoeffs.npyPK!UPP}#sp0_coif15_91_ma.npyPK!-PP#sp0_coif15_91_md.npyPK!UPP#sp0_coif15_91_ma_pywtCoeffs.npyPK!-PP)#sp0_coif15_91_md_pywtCoeffs.npyPK!PP#sym_coif15_91_ma.npyPK!2PP8#sym_coif15_91_md.npyPK!PP#sym_coif15_91_ma_pywtCoeffs.npyPK!2PPG#sym_coif15_91_md_pywtCoeffs.npyPK!8oPPԙ#symw_coif15_91_ma.npyPK!{ PPW#symw_coif15_91_md.npyPK!8oPP ڠ#symw_coif15_91_ma_pywtCoeffs.npyPK!{ PP h#symw_coif15_91_md_pywtCoeffs.npyPK!OExPP#ppd_coif15_91_ma.npyPK!{PPx#ppd_coif15_91_md.npyPK!OExPP#ppd_coif15_91_ma_pywtCoeffs.npyPK!{PP#ppd_coif15_91_md_pywtCoeffs.npyPK!B $sym_coif16_96_md.npyPK!ddxx $sym_coif16_96_ma_pywtCoeffs.npyPK! xx$sym_coif16_96_md_pywtCoeffs.npyPK!âxxR$symw_coif16_96_ma.npyPK!Zrkxx$symw_coif16_96_md.npyPK!âxx $symw_coif16_96_ma_pywtCoeffs.npyPK!Zrkxx ^ $symw_coif16_96_md_pywtCoeffs.npyPK!>xx$$ppd_coif16_96_ma.npyPK!N\xx'$ppd_coif16_96_md.npyPK!>xxh+$ppd_coif16_96_ma_pywtCoeffs.npyPK!N\xx/$ppd_coif16_96_md_pywtCoeffs.npyPK!Cxx2$sp1_coif16_96_ma.npyPK!qxx|6$sp1_coif16_96_md.npyPK!Cxx&:$sp1_coif16_96_ma_pywtCoeffs.npyPK!qxx=$sp1_coif16_96_md_pywtCoeffs.npyPK!A$per_coif16_96_ma.npyPK!,IPC$per_coif16_96_md.npyPK!E$per_coif16_96_ma_pywtCoeffs.npyPK!,IP1H$per_coif16_96_md_pywtCoeffs.npyPK!- xxnJ$asym_coif16_96_ma.npyPK!99VxxN$asym_coif16_96_md.npyPK!- xx Q$asym_coif16_96_ma_pywtCoeffs.npyPK!99Vxx zU$asym_coif16_96_md_pywtCoeffs.npyPK!]xx0Y$asymw_coif16_96_ma.npyPK!0~xx\$asymw_coif16_96_md.npyPK!]xx!`$asymw_coif16_96_ma_pywtCoeffs.npyPK!0~xx!?d$asymw_coif16_96_md_pywtCoeffs.npyPK!&jg$zpd_coif16_97_ma.npyPK!vDk$zpd_coif16_97_md.npyPK!&jZo$zpd_coif16_97_ma_pywtCoeffs.npyPK!vDs$zpd_coif16_97_md_pywtCoeffs.npyPK!Ov$sp0_coif16_97_ma.npyPK!I8z$sp0_coif16_97_md.npyPK!O8~$sp0_coif16_97_ma_pywtCoeffs.npyPK!I8$sp0_coif16_97_md_pywtCoeffs.npyPK!dc׀$sym_coif16_97_ma.npyPK!d$sym_coif16_97_md.npyPK!dc׀$sym_coif16_97_ma_pywtCoeffs.npyPK!Ӑ$sym_coif16_97_md_pywtCoeffs.npyPK!Ob$symw_coif16_97_ma.npyPK!*ORۀC$symw_coif16_97_md.npyPK!Ob $symw_coif16_97_ma_pywtCoeffs.npyPK!*ORۀ $symw_coif16_97_md_pywtCoeffs.npyPK!wTr$ppd_coif16_97_ma.npyPK!Ey$$ppd_coif16_97_md.npyPK!wT֪$ppd_coif16_97_ma_pywtCoeffs.npyPK!Ey$ppd_coif16_97_md_pywtCoeffs.npyPK!j}P$sp1_coif16_97_ma.npyPK!hD$sp1_coif16_97_md.npyPK!j}$sp1_coif16_97_ma_pywtCoeffs.npyPK!hDq$sp1_coif16_97_md_pywtCoeffs.npyPK!g>.$per_coif16_97_ma.npyPK! Fh$per_coif16_97_md.npyPK!g>$per_coif16_97_ma_pywtCoeffs.npyPK! F$per_coif16_97_md_pywtCoeffs.npyPK! ,$asym_coif16_97_ma.npyPK!ua$asym_coif16_97_md.npyPK!  $asym_coif16_97_ma_pywtCoeffs.npyPK!ua P$asym_coif16_97_md_pywtCoeffs.npyPK! &$asymw_coif16_97_ma.npyPK!Qi1$asymw_coif16_97_md.npyPK! &!v$asymw_coif16_97_ma_pywtCoeffs.npyPK!Qi1!5$asymw_coif16_97_md_pywtCoeffs.npyPK!zݨ$zpd_coif17_102_ma.npyPK!.rT$zpd_coif17_102_md.npyPK!zݨ $zpd_coif17_102_ma_pywtCoeffs.npyPK!.rT $zpd_coif17_102_md_pywtCoeffs.npyPK!,gv$sp0_coif17_102_ma.npyPK!PQ$sp0_coif17_102_md.npyPK!,g ,$sp0_coif17_102_ma_pywtCoeffs.npyPK!P %sp0_coif17_102_md_pywtCoeffs.npyPK!%sym_coif17_102_ma.npyPK!E ` %sym_coif17_102_md.npyPK! %sym_coif17_102_ma_pywtCoeffs.npyPK!E ` %sym_coif17_102_md_pywtCoeffs.npyPK!NsWHz%symw_coif17_102_ma.npyPK!ߨV%symw_coif17_102_md.npyPK!NsWH!2%symw_coif17_102_ma_pywtCoeffs.npyPK!ߨ!"%symw_coif17_102_md_pywtCoeffs.npyPK!-&%ppd_coif17_102_ma.npyPK!Cg)%ppd_coif17_102_md.npyPK!- -%ppd_coif17_102_ma_pywtCoeffs.npyPK!Cg 1%ppd_coif17_102_md_pywtCoeffs.npyPK!M5%sp1_coif17_102_ma.npyPK!"R%]9%sp1_coif17_102_md.npyPK!M 8=%sp1_coif17_102_ma_pywtCoeffs.npyPK!"R% A%sp1_coif17_102_md_pywtCoeffs.npyPK!0J7E%per_coif17_102_ma.npyPK!9OG%per_coif17_102_md.npyPK!0J7 I%per_coif17_102_ma_pywtCoeffs.npyPK!9 K%per_coif17_102_md_pywtCoeffs.npyPK!\&FN%asym_coif17_102_ma.npyPK!9F4"R%asym_coif17_102_md.npyPK!\&!U%asym_coif17_102_ma_pywtCoeffs.npyPK!9F4!Y%asym_coif17_102_md_pywtCoeffs.npyPK!0]%asymw_coif17_102_ma.npyPK!ȋva%asymw_coif17_102_md.npyPK!0"e%asymw_coif17_102_ma_pywtCoeffs.npyPK!ȋv"ni%asymw_coif17_102_md_pywtCoeffs.npyPK!a#Vm%zpd_coif17_103_ma.npyPK!U39q%zpd_coif17_103_md.npyPK!a# u%zpd_coif17_103_ma_pywtCoeffs.npyPK!U3  y%zpd_coif17_103_md_pywtCoeffs.npyPK!p|%sp0_coif17_103_ma.npyPK!UҘۀ%sp0_coif17_103_md.npyPK!p %sp0_coif17_103_ma_pywtCoeffs.npyPK!UҘ %sp0_coif17_103_md_pywtCoeffs.npyPK!m%sym_coif17_103_ma.npyPK!onR}%sym_coif17_103_md.npyPK!m `%sym_coif17_103_ma_pywtCoeffs.npyPK!onR N%sym_coif17_103_md_pywtCoeffs.npyPK!0<%symw_coif17_103_ma.npyPK!E %symw_coif17_103_md.npyPK!0!%symw_coif17_103_ma_pywtCoeffs.npyPK!E!%symw_coif17_103_md_pywtCoeffs.npyPK!9%ppd_coif17_103_ma.npyPK!Jů%ppd_coif17_103_md.npyPK!9 %ppd_coif17_103_ma_pywtCoeffs.npyPK!J %ppd_coif17_103_md_pywtCoeffs.npyPK!T)_m%sp1_coif17_103_ma.npyPK!`g%sp1_coif17_103_md.npyPK!T)_m J%sp1_coif17_103_ma_pywtCoeffs.npyPK!` 8%sp1_coif17_103_md_pywtCoeffs.npyPK!/j9  &%per_coif17_103_ma.npyPK!5  y%per_coif17_103_md.npyPK!/j9   %per_coif17_103_ma_pywtCoeffs.npyPK!5   *%per_coif17_103_md_pywtCoeffs.npyPK!wŰ%asym_coif17_103_ma.npyPK!kpl%asym_coif17_103_md.npyPK!wŰ!P%asym_coif17_103_ma_pywtCoeffs.npyPK!kp!?%asym_coif17_103_md_pywtCoeffs.npyPK!I_Ű.%asymw_coif17_103_ma.npyPK!{%asymw_coif17_103_md.npyPK!I_Ű"%asymw_coif17_103_ma_pywtCoeffs.npyPK!{"%asymw_coif17_103_md_pywtCoeffs.npyPK!xd%zpd_bior1.1_2_ma.npyPK!lӈ%zpd_bior1.1_2_md.npyPK!xdL%zpd_bior1.1_2_ma_pywtCoeffs.npyPK!lӈ%zpd_bior1.1_2_md_pywtCoeffs.npyPK!xd%sp0_bior1.1_2_ma.npyPK!lӈ%sp0_bior1.1_2_md.npyPK!xdJ%sp0_bior1.1_2_ma_pywtCoeffs.npyPK!lӈ%sp0_bior1.1_2_md_pywtCoeffs.npyPK!xd%sym_bior1.1_2_ma.npyPK!lӈ%sym_bior1.1_2_md.npyPK!xdH%sym_bior1.1_2_ma_pywtCoeffs.npyPK!lӈ %sym_bior1.1_2_md_pywtCoeffs.npyPK!xd%symw_bior1.1_2_ma.npyPK!lӈ%symw_bior1.1_2_md.npyPK!xd H%symw_bior1.1_2_ma_pywtCoeffs.npyPK!lӈ %symw_bior1.1_2_md_pywtCoeffs.npyPK!xd%ppd_bior1.1_2_ma.npyPK!lӈ&ppd_bior1.1_2_md.npyPK!xdH&ppd_bior1.1_2_ma_pywtCoeffs.npyPK!lӈ &ppd_bior1.1_2_md_pywtCoeffs.npyPK!xd&sp1_bior1.1_2_ma.npyPK!lӈ&sp1_bior1.1_2_md.npyPK!xdF&sp1_bior1.1_2_ma_pywtCoeffs.npyPK!lӈ &sp1_bior1.1_2_md_pywtCoeffs.npyPK!xd&per_bior1.1_2_ma.npyPK!lӈ&per_bior1.1_2_md.npyPK!xdD&per_bior1.1_2_ma_pywtCoeffs.npyPK!lӈ &per_bior1.1_2_md_pywtCoeffs.npyPK!xd&asym_bior1.1_2_ma.npyPK!lӈ &asym_bior1.1_2_md.npyPK!xd D &asym_bior1.1_2_ma_pywtCoeffs.npyPK!lӈ  &asym_bior1.1_2_md_pywtCoeffs.npyPK!xd &asymw_bior1.1_2_ma.npyPK!lӈ &asymw_bior1.1_2_md.npyPK!xd!H &asymw_bior1.1_2_ma_pywtCoeffs.npyPK!lӈ!&asymw_bior1.1_2_md_pywtCoeffs.npyPK!34&zpd_bior1.1_3_ma.npyPK!6gv&zpd_bior1.1_3_md.npyPK!34Z&zpd_bior1.1_3_ma_pywtCoeffs.npyPK!6gv'&zpd_bior1.1_3_md_pywtCoeffs.npyPK!!&sp0_bior1.1_3_ma.npyPK!\&sp0_bior1.1_3_md.npyPK!!x&sp0_bior1.1_3_ma_pywtCoeffs.npyPK!\E&sp0_bior1.1_3_md_pywtCoeffs.npyPK!!&sym_bior1.1_3_ma.npyPK!\&sym_bior1.1_3_md.npyPK!!&sym_bior1.1_3_ma_pywtCoeffs.npyPK!\c&sym_bior1.1_3_md_pywtCoeffs.npyPK!W0&symw_bior1.1_3_ma.npyPK!T)&symw_bior1.1_3_md.npyPK!W &symw_bior1.1_3_ma_pywtCoeffs.npyPK!T) &symw_bior1.1_3_md_pywtCoeffs.npyPK!K4R&ppd_bior1.1_3_ma.npyPK!m&ppd_bior1.1_3_md.npyPK!K4&ppd_bior1.1_3_ma_pywtCoeffs.npyPK!m&ppd_bior1.1_3_md_pywtCoeffs.npyPK!5p&sp1_bior1.1_3_ma.npyPK!;32&sp1_bior1.1_3_md.npyPK!5&sp1_bior1.1_3_ma_pywtCoeffs.npyPK!;3 &sp1_bior1.1_3_md_pywtCoeffs.npyPK!!!&per_bior1.1_3_ma.npyPK!\P"&per_bior1.1_3_md.npyPK!!#&per_bior1.1_3_ma_pywtCoeffs.npyPK!\#&per_bior1.1_3_md_pywtCoeffs.npyPK!Z$&asym_bior1.1_3_ma.npyPK!guo%&asym_bior1.1_3_md.npyPK!Z 2&&asym_bior1.1_3_ma_pywtCoeffs.npyPK!gu '&asym_bior1.1_3_md_pywtCoeffs.npyPK!5'&asymw_bior1.1_3_ma.npyPK!;3(&asymw_bior1.1_3_md.npyPK!5!V)&asymw_bior1.1_3_ma_pywtCoeffs.npyPK!;3!%*&asymw_bior1.1_3_md_pywtCoeffs.npyPK!?"*&zpd_bior1.3_6_ma.npyPK!-U?+&zpd_bior1.3_6_md.npyPK!?",&zpd_bior1.3_6_ma_pywtCoeffs.npyPK!-U?-&zpd_bior1.3_6_md_pywtCoeffs.npyPK!dr.&sp0_bior1.3_6_ma.npyPK!-U?L/&sp0_bior1.3_6_md.npyPK!d&0&sp0_bior1.3_6_ma_pywtCoeffs.npyPK!-U? 1&sp0_bior1.3_6_md_pywtCoeffs.npyPK!ec1&sym_bior1.3_6_ma.npyPK!w 2&sym_bior1.3_6_md.npyPK!ec3&sym_bior1.3_6_ma_pywtCoeffs.npyPK!w 4&sym_bior1.3_6_md_pywtCoeffs.npyPK!(hn5&symw_bior1.3_6_ma.npyPK!BI6&symw_bior1.3_6_md.npyPK!(h $7&symw_bior1.3_6_ma_pywtCoeffs.npyPK!B  8&symw_bior1.3_6_md_pywtCoeffs.npyPK!Ć8&ppd_bior1.3_6_ma.npyPK!\Nq9&ppd_bior1.3_6_md.npyPK!Ć:&ppd_bior1.3_6_ma_pywtCoeffs.npyPK!\Nq;&ppd_bior1.3_6_md_pywtCoeffs.npyPK!}(ۨn<&sp1_bior1.3_6_ma.npyPK!{(;H=&sp1_bior1.3_6_md.npyPK!}(ۨ">&sp1_bior1.3_6_ma_pywtCoeffs.npyPK!{(;?&sp1_bior1.3_6_md_pywtCoeffs.npyPK!HԘ?&per_bior1.3_6_ma.npyPK!F@&per_bior1.3_6_md.npyPK!HԘA&per_bior1.3_6_ma_pywtCoeffs.npyPK!FUB&per_bior1.3_6_md_pywtCoeffs.npyPK!}*C&asym_bior1.3_6_ma.npyPK!W_0D&asym_bior1.3_6_md.npyPK!} D&asym_bior1.3_6_ma_pywtCoeffs.npyPK!W_0 E&asym_bior1.3_6_md_pywtCoeffs.npyPK!F&asymw_bior1.3_6_ma.npyPK!2|w4G&asymw_bior1.3_6_md.npyPK!!dH&asymw_bior1.3_6_ma_pywtCoeffs.npyPK!2|w4!KI&asymw_bior1.3_6_md_pywtCoeffs.npyPK!vܰ2J&zpd_bior1.3_7_ma.npyPK!. K&zpd_bior1.3_7_md.npyPK!vܰK&zpd_bior1.3_7_ma_pywtCoeffs.npyPK!. L&zpd_bior1.3_7_md_pywtCoeffs.npyPK!kkװM&sp0_bior1.3_7_ma.npyPK!fDN&sp0_bior1.3_7_md.npyPK!kkװO&sp0_bior1.3_7_ma_pywtCoeffs.npyPK!fDP&sp0_bior1.3_7_md_pywtCoeffs.npyPK!EBnQ&sym_bior1.3_7_ma.npyPK!WPR&sym_bior1.3_7_md.npyPK!EB2S&sym_bior1.3_7_ma_pywtCoeffs.npyPK!WT&sym_bior1.3_7_md_pywtCoeffs.npyPK!j U&symw_bior1.3_7_ma.npyPK!ئU&symw_bior1.3_7_md.npyPK!j V&symw_bior1.3_7_ma_pywtCoeffs.npyPK!ئ W&symw_bior1.3_7_md_pywtCoeffs.npyPK!}X&ppd_bior1.3_7_ma.npyPK!Y&ppd_bior1.3_7_md.npyPK!}rZ&ppd_bior1.3_7_ma_pywtCoeffs.npyPK!_[&ppd_bior1.3_7_md_pywtCoeffs.npyPK!-L\&sp1_bior1.3_7_ma.npyPK!zWӰ.]&sp1_bior1.3_7_md.npyPK!-^&sp1_bior1.3_7_ma_pywtCoeffs.npyPK!zWӰ^&sp1_bior1.3_7_md_pywtCoeffs.npyPK!Ah_&per_bior1.3_7_ma.npyPK!R`&per_bior1.3_7_md.npyPK!Aha&per_bior1.3_7_ma_pywtCoeffs.npyPK!Rkb&per_bior1.3_7_md_pywtCoeffs.npyPK!Hc&asym_bior1.3_7_ma.npyPK!$+d&asym_bior1.3_7_md.npyPK! e&asym_bior1.3_7_ma_pywtCoeffs.npyPK!$ e&asym_bior1.3_7_md_pywtCoeffs.npyPK!f&asymw_bior1.3_7_ma.npyPK!1g&asymw_bior1.3_7_md.npyPK!!h&asymw_bior1.3_7_ma_pywtCoeffs.npyPK!1!i&asymw_bior1.3_7_md_pywtCoeffs.npyPK!sCj&zpd_bior1.5_10_ma.npyPK!UWk&zpd_bior1.5_10_md.npyPK!tn l&zpd_bior1.5_10_ma_pywtCoeffs.npyPK!UW m&zpd_bior1.5_10_md_pywtCoeffs.npyPK!n&sp0_bior1.5_10_ma.npyPK!UWo&sp0_bior1.5_10_md.npyPK!*I p&sp0_bior1.5_10_ma_pywtCoeffs.npyPK!UW q&sp0_bior1.5_10_md_pywtCoeffs.npyPK!wͤr&sym_bior1.5_10_ma.npyPK!v3s&sym_bior1.5_10_md.npyPK!DɍY t&sym_bior1.5_10_ma_pywtCoeffs.npyPK!v3 u&sym_bior1.5_10_md_pywtCoeffs.npyPK! _v&symw_bior1.5_10_ma.npyPK!w&symw_bior1.5_10_md.npyPK!ٖ!x&symw_bior1.5_10_ma_pywtCoeffs.npyPK!!y&symw_bior1.5_10_md_pywtCoeffs.npyPK![>z&ppd_bior1.5_10_ma.npyPK! {&ppd_bior1.5_10_md.npyPK!үk |&ppd_bior1.5_10_ma_pywtCoeffs.npyPK! }&ppd_bior1.5_10_md_pywtCoeffs.npyPK!ê~&sp1_bior1.5_10_ma.npyPK!8&*&sp1_bior1.5_10_md.npyPK!> &sp1_bior1.5_10_ma_pywtCoeffs.npyPK!8&* &sp1_bior1.5_10_md_pywtCoeffs.npyPK!<5&per_bior1.5_10_ma.npyPK!y:${&per_bior1.5_10_md.npyPK!(S V&per_bior1.5_10_ma_pywtCoeffs.npyPK!y:$ <&per_bior1.5_10_md_pywtCoeffs.npyPK!$"&asym_bior1.5_10_ma.npyPK!L&asym_bior1.5_10_md.npyPK!Q!&asym_bior1.5_10_ma_pywtCoeffs.npyPK!L!!&asym_bior1.5_10_md_pywtCoeffs.npyPK!(&asymw_bior1.5_10_ma.npyPK!a%&asymw_bior1.5_10_md.npyPK!ǞA?""&asymw_bior1.5_10_ma_pywtCoeffs.npyPK!a"*&asymw_bior1.5_10_md_pywtCoeffs.npyPK!nz 2&zpd_bior1.5_11_ma.npyPK!ݗ)5&zpd_bior1.5_11_md.npyPK!%? 8&zpd_bior1.5_11_ma_pywtCoeffs.npyPK!ݗ) F&zpd_bior1.5_11_md_pywtCoeffs.npyPK!'T&sp0_bior1.5_11_ma.npyPK!2W&sp0_bior1.5_11_md.npyPK!2 Z&sp0_bior1.5_11_ma_pywtCoeffs.npyPK!2 h&sp0_bior1.5_11_md_pywtCoeffs.npyPK!v&sym_bior1.5_11_ma.npyPK!Jy&sym_bior1.5_11_md.npyPK!f] |&sym_bior1.5_11_ma_pywtCoeffs.npyPK!J &sym_bior1.5_11_md_pywtCoeffs.npyPK!6&symw_bior1.5_11_ma.npyPK!]n&symw_bior1.5_11_md.npyPK! iR!&symw_bior1.5_11_ma_pywtCoeffs.npyPK!]n!&symw_bior1.5_11_md_pywtCoeffs.npyPK!{&ppd_bior1.5_11_ma.npyPK!k(&ppd_bior1.5_11_md.npyPK!TH Ġ&ppd_bior1.5_11_ma_pywtCoeffs.npyPK!k( ҡ&ppd_bior1.5_11_md_pywtCoeffs.npyPK!&sp1_bior1.5_11_ma.npyPK!&sp1_bior1.5_11_md.npyPK!f &sp1_bior1.5_11_ma_pywtCoeffs.npyPK! &sp1_bior1.5_11_md_pywtCoeffs.npyPK!&per_bior1.5_11_ma.npyPK!&1&per_bior1.5_11_md.npyPK!oְ Ȩ&per_bior1.5_11_ma_pywtCoeffs.npyPK!&1 &per_bior1.5_11_md_pywtCoeffs.npyPK!KA&asym_bior1.5_11_ma.npyPK!ۊ~&asym_bior1.5_11_md.npyPK!!&asym_bior1.5_11_ma_pywtCoeffs.npyPK!ۊ~!&asym_bior1.5_11_md_pywtCoeffs.npyPK!kʮ&asymw_bior1.5_11_ma.npyPK!ϯ&asymw_bior1.5_11_md.npyPK!"԰&asymw_bior1.5_11_ma_pywtCoeffs.npyPK!"&asymw_bior1.5_11_md_pywtCoeffs.npyPK!<.Ũ&zpd_bior2.2_6_ma.npyPK!v幨γ&zpd_bior2.2_6_md.npyPK!=&zpd_bior2.2_6_ma_pywtCoeffs.npyPK!v幨&zpd_bior2.2_6_md_pywtCoeffs.npyPK!ir&sp0_bior2.2_6_ma.npyPK!XGL&sp0_bior2.2_6_md.npyPK!q&&sp0_bior2.2_6_ma_pywtCoeffs.npyPK!XG &sp0_bior2.2_6_md_pywtCoeffs.npyPK!@\&sym_bior2.2_6_ma.npyPK!bgʺ&sym_bior2.2_6_md.npyPK!wb&sym_bior2.2_6_ma_pywtCoeffs.npyPK!bg&sym_bior2.2_6_md_pywtCoeffs.npyPK!n&symw_bior2.2_6_ma.npyPK!5I&symw_bior2.2_6_md.npyPK! $&symw_bior2.2_6_ma_pywtCoeffs.npyPK!5  &symw_bior2.2_6_md_pywtCoeffs.npyPK!nR*&ppd_bior2.2_6_ma.npyPK!*T&ppd_bior2.2_6_md.npyPK!wXj&ppd_bior2.2_6_ma_pywtCoeffs.npyPK!*T&ppd_bior2.2_6_md_pywtCoeffs.npyPK!Γn&sp1_bior2.2_6_ma.npyPK!J{~H&sp1_bior2.2_6_md.npyPK!X"&sp1_bior2.2_6_ma_pywtCoeffs.npyPK!J{~&sp1_bior2.2_6_md_pywtCoeffs.npyPK! <&per_bior2.2_6_ma.npyPK!j\s&per_bior2.2_6_md.npyPK!&per_bior2.2_6_ma_pywtCoeffs.npyPK!j\sU&per_bior2.2_6_md_pywtCoeffs.npyPK!N̨*&asym_bior2.2_6_ma.npyPK!zӨ&asym_bior2.2_6_md.npyPK!~l &asym_bior2.2_6_ma_pywtCoeffs.npyPK!zӨ &asym_bior2.2_6_md_pywtCoeffs.npyPK!'4&asymw_bior2.2_6_ma.npyPK!s&asymw_bior2.2_6_md.npyPK!j!d&asymw_bior2.2_6_ma_pywtCoeffs.npyPK!s!K&asymw_bior2.2_6_md_pywtCoeffs.npyPK!Y$2&zpd_bior2.2_7_ma.npyPK!w2&zpd_bior2.2_7_md.npyPK!uXU &zpd_bior2.2_7_ma_pywtCoeffs.npyPK!w2&zpd_bior2.2_7_md_pywtCoeffs.npyPK!֮߰&sp0_bior2.2_7_ma.npyPK!i&sp0_bior2.2_7_md.npyPK!zƀ&sp0_bior2.2_7_ma_pywtCoeffs.npyPK!i&sp0_bior2.2_7_md_pywtCoeffs.npyPK!Q}Pn&sym_bior2.2_7_ma.npyPK! P&sym_bior2.2_7_md.npyPK!L2&sym_bior2.2_7_ma_pywtCoeffs.npyPK! &sym_bior2.2_7_md_pywtCoeffs.npyPK!@ &symw_bior2.2_7_ma.npyPK!RΎ&symw_bior2.2_7_md.npyPK!v0ð &symw_bior2.2_7_ma_pywtCoeffs.npyPK!RΎ &symw_bior2.2_7_md_pywtCoeffs.npyPK!ǽ&ppd_bior2.2_7_ma.npyPK!$Q&ppd_bior2.2_7_md.npyPK!Iǰr&ppd_bior2.2_7_ma_pywtCoeffs.npyPK!$Q_&ppd_bior2.2_7_md_pywtCoeffs.npyPK!WU L&sp1_bior2.2_7_ma.npyPK!w.&sp1_bior2.2_7_md.npyPK!԰&sp1_bior2.2_7_ma_pywtCoeffs.npyPK!w&sp1_bior2.2_7_md_pywtCoeffs.npyPK!o&per_bior2.2_7_ma.npyPK!O}&per_bior2.2_7_md.npyPK!&per_bior2.2_7_ma_pywtCoeffs.npyPK!O}k&per_bior2.2_7_md_pywtCoeffs.npyPK!b]ȰH&asym_bior2.2_7_ma.npyPK!Haw+&asym_bior2.2_7_md.npyPK!Q &asym_bior2.2_7_ma_pywtCoeffs.npyPK!Haw &asym_bior2.2_7_md_pywtCoeffs.npyPK!&asymw_bior2.2_7_ma.npyPK!QUذ&asymw_bior2.2_7_md.npyPK!n}!&asymw_bior2.2_7_ma_pywtCoeffs.npyPK!QUذ!&asymw_bior2.2_7_md_pywtCoeffs.npyPK!&zpd_bior2.4_10_ma.npyPK!k*%&zpd_bior2.4_10_md.npyPK!= &sp0_bior2.4_10_ma_pywtCoeffs.npyPK!Te &sp0_bior2.4_10_md_pywtCoeffs.npyPK!e)&sym_bior2.4_10_ma.npyPK!؎c&sym_bior2.4_10_md.npyPK!Mj &sym_bior2.4_10_ma_pywtCoeffs.npyPK!؎c &sym_bior2.4_10_md_pywtCoeffs.npyPK!&symw_bior2.4_10_ma.npyPK!؜&symw_bior2.4_10_md.npyPK!:h!'symw_bior2.4_10_ma_pywtCoeffs.npyPK!؜!'symw_bior2.4_10_md_pywtCoeffs.npyPK!Wۿ'ppd_bior2.4_10_ma.npyPK!'ppd_bior2.4_10_md.npyPK!Wۿ 'ppd_bior2.4_10_ma_pywtCoeffs.npyPK! 'ppd_bior2.4_10_md_pywtCoeffs.npyPK!y'sp1_bior2.4_10_ma.npyPK!\=:'sp1_bior2.4_10_md.npyPK! 'sp1_bior2.4_10_ma_pywtCoeffs.npyPK!\=:  'sp1_bior2.4_10_md_pywtCoeffs.npyPK!Ψ 'per_bior2.4_10_ma.npyPK!+{ 'per_bior2.4_10_md.npyPK!Ψ V 'per_bior2.4_10_ma_pywtCoeffs.npyPK!+ < 'per_bior2.4_10_md_pywtCoeffs.npyPK! "'asym_bior2.4_10_ma.npyPK!`'asym_bior2.4_10_md.npyPK!N2!'asym_bior2.4_10_ma_pywtCoeffs.npyPK!`!!'asym_bior2.4_10_md_pywtCoeffs.npyPK!X('asymw_bior2.4_10_ma.npyPK!H%'asymw_bior2.4_10_md.npyPK!J )V""'asymw_bior2.4_10_ma_pywtCoeffs.npyPK!H"*'asymw_bior2.4_10_md_pywtCoeffs.npyPK!qM2'zpd_bior2.4_11_ma.npyPK!`l5'zpd_bior2.4_11_md.npyPK!y 8'zpd_bior2.4_11_ma_pywtCoeffs.npyPK!`l F'zpd_bior2.4_11_md_pywtCoeffs.npyPK!{WT'sp0_bior2.4_11_ma.npyPK!.o 7W'sp0_bior2.4_11_md.npyPK!{W Z'sp0_bior2.4_11_ma_pywtCoeffs.npyPK!.o 7 h'sp0_bior2.4_11_md_pywtCoeffs.npyPK!.v'sym_bior2.4_11_ma.npyPK!zy'sym_bior2.4_11_md.npyPK!Z | 'sym_bior2.4_11_ma_pywtCoeffs.npyPK!z !'sym_bior2.4_11_md_pywtCoeffs.npyPK!SZ "'symw_bior2.4_11_ma.npyPK!bt#'symw_bior2.4_11_md.npyPK!˾!$'symw_bior2.4_11_ma_pywtCoeffs.npyPK!bt!%'symw_bior2.4_11_md_pywtCoeffs.npyPK!mP&'ppd_bior2.4_11_ma.npyPK!amL''ppd_bior2.4_11_md.npyPK!8 ('ppd_bior2.4_11_ma_pywtCoeffs.npyPK!amL )'ppd_bior2.4_11_md_pywtCoeffs.npyPK!$l*'sp1_bior2.4_11_ma.npyPK!+'sp1_bior2.4_11_md.npyPK!NO+ ,'sp1_bior2.4_11_ma_pywtCoeffs.npyPK! -'sp1_bior2.4_11_md_pywtCoeffs.npyPK!P/v/'per_bior2.4_11_ma.npyPK!tX/'per_bior2.4_11_md.npyPK!P/v 0'per_bior2.4_11_ma_pywtCoeffs.npyPK!tX 1'per_bior2.4_11_md_pywtCoeffs.npyPK!S.{2'asym_bior2.4_11_ma.npyPK! 3'asym_bior2.4_11_md.npyPK!>!4'asym_bior2.4_11_ma_pywtCoeffs.npyPK! !5'asym_bior2.4_11_md_pywtCoeffs.npyPK!S6'asymw_bior2.4_11_ma.npyPK!؛W7'asymw_bior2.4_11_md.npyPK!S"8'asymw_bior2.4_11_ma_pywtCoeffs.npyPK!؛W"9'asymw_bior2.4_11_md_pywtCoeffs.npyPK! :'zpd_bior2.6_14_ma.npyPK!C<'zpd_bior2.6_14_md.npyPK!'Q; *='zpd_bior2.6_14_ma_pywtCoeffs.npyPK!C P>'zpd_bior2.6_14_md_pywtCoeffs.npyPK!Vv?'sp0_bior2.6_14_ma.npyPK!xoz@'sp0_bior2.6_14_md.npyPK!m A'sp0_bior2.6_14_ma_pywtCoeffs.npyPK!xoz B'sp0_bior2.6_14_md_pywtCoeffs.npyPK! C'sym_bior2.6_14_ma.npyPK!\VE'sym_bior2.6_14_md.npyPK! .F'sym_bior2.6_14_ma_pywtCoeffs.npyPK!\V TG'sym_bior2.6_14_md_pywtCoeffs.npyPK! zH'symw_bior2.6_14_ma.npyPK!f#I'symw_bior2.6_14_md.npyPK!De!J'symw_bior2.6_14_ma_pywtCoeffs.npyPK!f#!K'symw_bior2.6_14_md_pywtCoeffs.npyPK!ҒM'ppd_bior2.6_14_ma.npyPK!]N'ppd_bior2.6_14_md.npyPK!| 6O'ppd_bior2.6_14_ma_pywtCoeffs.npyPK!] \P'ppd_bior2.6_14_md_pywtCoeffs.npyPK!x |Q'sp1_bior2.6_14_ma.npyPK!FR'sp1_bior2.6_14_md.npyPK!4 S'sp1_bior2.6_14_ma_pywtCoeffs.npyPK!F T'sp1_bior2.6_14_md_pywtCoeffs.npyPK!VCV'per_bior2.6_14_ma.npyPK!U/V'per_bior2.6_14_md.npyPK!F9i W'per_bior2.6_14_ma_pywtCoeffs.npyPK!U/ X'per_bior2.6_14_md_pywtCoeffs.npyPK!kvY'asym_bior2.6_14_ma.npyPK!GpZ'asym_bior2.6_14_md.npyPK!S!['asym_bior2.6_14_ma_pywtCoeffs.npyPK!Gp!%]'asym_bior2.6_14_md_pywtCoeffs.npyPK!-L^'asymw_bior2.6_14_ma.npyPK!R@i_'asymw_bior2.6_14_md.npyPK!(M"`'asymw_bior2.6_14_ma_pywtCoeffs.npyPK!R@"a'asymw_bior2.6_14_md_pywtCoeffs.npyPK!"1b'zpd_bior2.6_15_ma.npyPK!c'zpd_bior2.6_15_md.npyPK!> e'zpd_bior2.6_15_ma_pywtCoeffs.npyPK! Jf'zpd_bior2.6_15_md_pywtCoeffs.npyPK!$xg'sp0_bior2.6_15_ma.npyPK!Lʳh'sp0_bior2.6_15_md.npyPK!Go i'sp0_bior2.6_15_ma_pywtCoeffs.npyPK!Lʳ j'sp0_bior2.6_15_md_pywtCoeffs.npyPK!!}al'sym_bior2.6_15_ma.npyPK!XL=m'sym_bior2.6_15_md.npyPK! `n'sym_bior2.6_15_ma_pywtCoeffs.npyPK!XL o'sym_bior2.6_15_md_pywtCoeffs.npyPK!Aؽp'symw_bior2.6_15_ma.npyPK!׬Wq'symw_bior2.6_15_md.npyPK!ڸ!s'symw_bior2.6_15_ma_pywtCoeffs.npyPK!׬W!3t'symw_bior2.6_15_md_pywtCoeffs.npyPK!Mbu'ppd_bior2.6_15_ma.npyPK!Zv'ppd_bior2.6_15_md.npyPK!Lz'sp1_bior2.6_15_ma.npyPK!Jq'{'sp1_bior2.6_15_md.npyPK!y 6 J|'sp1_bior2.6_15_ma_pywtCoeffs.npyPK!Jq x}'sp1_bior2.6_15_md_pywtCoeffs.npyPK!~'per_bior2.6_15_ma.npyPK!(j'per_bior2.6_15_md.npyPK!"E_ 'per_bior2.6_15_ma_pywtCoeffs.npyPK!(j 'per_bior2.6_15_md_pywtCoeffs.npyPK!産'asym_bior2.6_15_ma.npyPK! 'asym_bior2.6_15_md.npyPK!Ch!Є'asym_bior2.6_15_ma_pywtCoeffs.npyPK! !'asym_bior2.6_15_md_pywtCoeffs.npyPK!}Jz.'asymw_bior2.6_15_ma.npyPK!#S'asymw_bior2.6_15_md.npyPK!s"x'asymw_bior2.6_15_ma_pywtCoeffs.npyPK!#"'asymw_bior2.6_15_md_pywtCoeffs.npyPK!;G؋'zpd_bior2.8_18_ma.npyPK!r% 'zpd_bior2.8_18_md.npyPK!D N'zpd_bior2.8_18_ma_pywtCoeffs.npyPK!r%  'zpd_bior2.8_18_md_pywtCoeffs.npyPK!W4ڐ'sp0_bior2.8_18_ma.npyPK!G_'sp0_bior2.8_18_md.npyPK!| P'sp0_bior2.8_18_ma_pywtCoeffs.npyPK!G_ 'sp0_bior2.8_18_md_pywtCoeffs.npyPK! .ܕ'sym_bior2.8_18_ma.npyPK!|8'sym_bior2.8_18_md.npyPK!:S R'sym_bior2.8_18_ma_pywtCoeffs.npyPK!|8 'sym_bior2.8_18_md_pywtCoeffs.npyPK!Sfޚ'symw_bior2.8_18_ma.npyPK!'symw_bior2.8_18_md.npyPK!rB!V'symw_bior2.8_18_ma_pywtCoeffs.npyPK!!'symw_bior2.8_18_md_pywtCoeffs.npyPK!'ppd_bior2.8_18_ma.npyPK! Ma<'ppd_bior2.8_18_md.npyPK!Vr Z'ppd_bior2.8_18_ma_pywtCoeffs.npyPK! Ma< 'ppd_bior2.8_18_md_pywtCoeffs.npyPK!3>'sp1_bior2.8_18_ma.npyPK!̛!'sp1_bior2.8_18_md.npyPK! X` \'sp1_bior2.8_18_ma_pywtCoeffs.npyPK!̛ 'sp1_bior2.8_18_md_pywtCoeffs.npyPK!ß'per_bior2.8_18_ma.npyPK!\'per_bior2.8_18_md.npyPK!v` ޫ'per_bior2.8_18_ma_pywtCoeffs.npyPK!\ 'per_bior2.8_18_md_pywtCoeffs.npyPK! F'asym_bior2.8_18_ma.npyPK!n8&'asym_bior2.8_18_md.npyPK!8B!b'asym_bior2.8_18_ma_pywtCoeffs.npyPK!n8!'asym_bior2.8_18_md_pywtCoeffs.npyPK!ޫD'asymw_bior2.8_18_ma.npyPK!-'asymw_bior2.8_18_md.npyPK!8Y"j'asymw_bior2.8_18_ma_pywtCoeffs.npyPK!"'asymw_bior2.8_18_md_pywtCoeffs.npyPK! 'zpd_bior2.8_19_ma.npyPK!;u='zpd_bior2.8_19_md.npyPK!~ 'zpd_bior2.8_19_ma_pywtCoeffs.npyPK!;u λ'zpd_bior2.8_19_md_pywtCoeffs.npyPK!+'sp0_bior2.8_19_ma.npyPK! _'sp0_bior2.8_19_md.npyPK!VY 'sp0_bior2.8_19_ma_pywtCoeffs.npyPK!  'sp0_bior2.8_19_md_pywtCoeffs.npyPK!b>'sym_bior2.8_19_ma.npyPK!*:H'sym_bior2.8_19_md.npyPK!8 'sym_bior2.8_19_ma_pywtCoeffs.npyPK!*:H 'sym_bior2.8_19_md_pywtCoeffs.npyPK!5>'asym_bior3.1_4_md_pywtCoeffs.npyPK!_'asymw_bior3.1_4_ma.npyPK!'asymw_bior3.1_4_md.npyPK!_!(asymw_bior3.1_4_ma_pywtCoeffs.npyPK!,r!(asymw_bior3.1_4_md_pywtCoeffs.npyPK!*WK*Z(zpd_bior3.1_5_ma.npyPK!N#,(zpd_bior3.1_5_md.npyPK!rY(zpd_bior3.1_5_ma_pywtCoeffs.npyPK!ii(zpd_bior3.1_5_md_pywtCoeffs.npyPK!rͤe(sp0_bior3.1_5_ma.npyPK!TCU(sp0_bior3.1_5_md.npyPK!Q\(sp0_bior3.1_5_ma_pywtCoeffs.npyPK![EǾ9(sp0_bior3.1_5_md_pywtCoeffs.npyPK!w)n" (sym_bior3.1_5_ma.npyPK!δ (sym_bior3.1_5_md.npyPK!1 (sym_bior3.1_5_ma_pywtCoeffs.npyPK!nΘ (sym_bior3.1_5_md_pywtCoeffs.npyPK!Rt (symw_bior3.1_5_ma.npyPK!WG (symw_bior3.1_5_md.npyPK!m0 (symw_bior3.1_5_ma_pywtCoeffs.npyPK!mrϠ (symw_bior3.1_5_md_pywtCoeffs.npyPK!(ppd_bior3.1_5_ma.npyPK!xSx(ppd_bior3.1_5_md.npyPK!SYӠz(ppd_bior3.1_5_ma_pywtCoeffs.npyPK! W(ppd_bior3.1_5_md_pywtCoeffs.npyPK!qM4(sp1_bior3.1_5_ma.npyPK!4(sp1_bior3.1_5_md.npyPK!E5f(sp1_bior3.1_5_ma_pywtCoeffs.npyPK!`(sp1_bior3.1_5_md_pywtCoeffs.npyPK!g՘(per_bior3.1_5_ma.npyPK!’u\(per_bior3.1_5_md.npyPK!3 &(per_bior3.1_5_ma_pywtCoeffs.npyPK!S(per_bior3.1_5_md_pywtCoeffs.npyPK!Π(asym_bior3.1_5_ma.npyPK!1%rϠ(asym_bior3.1_5_md.npyPK! %c v(asym_bior3.1_5_ma_pywtCoeffs.npyPK!uN\ T(asym_bior3.1_5_md_pywtCoeffs.npyPK!:"2(asymw_bior3.1_5_ma.npyPK!p'~(asymw_bior3.1_5_md.npyPK!S !(asymw_bior3.1_5_ma_pywtCoeffs.npyPK!xD!(asymw_bior3.1_5_md_pywtCoeffs.npyPK!?z (zpd_bior3.3_8_ma.npyPK!W P!(zpd_bior3.3_8_md.npyPK!l"(zpd_bior3.3_8_ma_pywtCoeffs.npyPK!7c̸a#(zpd_bior3.3_8_md_pywtCoeffs.npyPK!ݧ&V$(sp0_bior3.3_8_ma.npyPK!vK@%(sp0_bior3.3_8_md.npyPK!C*&(sp0_bior3.3_8_ma_pywtCoeffs.npyPK!\'(sp0_bior3.3_8_md_pywtCoeffs.npyPK!((sym_bior3.3_8_ma.npyPK!q((sym_bior3.3_8_md.npyPK!N˸)(sym_bior3.3_8_ma_pywtCoeffs.npyPK!ny?*(sym_bior3.3_8_md_pywtCoeffs.npyPK!`f+(symw_bior3.3_8_ma.npyPK!!,(symw_bior3.3_8_md.npyPK!ֺ -(symw_bior3.3_8_ma_pywtCoeffs.npyPK!"x .(symw_bior3.3_8_md_pywtCoeffs.npyPK!.l/(ppd_bior3.3_8_ma.npyPK!GN~0(ppd_bior3.3_8_md.npyPK!&syh1(ppd_bior3.3_8_ma_pywtCoeffs.npyPK!ڸ]2(ppd_bior3.3_8_md_pywtCoeffs.npyPK!R3(sp1_bior3.3_8_ma.npyPK!&za<4(sp1_bior3.3_8_md.npyPK!mb=&5(sp1_bior3.3_8_ma_pywtCoeffs.npyPK!: 6(sp1_bior3.3_8_md_pywtCoeffs.npyPK!Cˠ7(per_bior3.3_8_ma.npyPK!Tܠ7(per_bior3.3_8_md.npyPK!b8(per_bior3.3_8_ma_pywtCoeffs.npyPK! 9(per_bior3.3_8_md_pywtCoeffs.npyPK!}n:(asym_bior3.3_8_ma.npyPK!efY;(asym_bior3.3_8_md.npyPK! D<(asym_bior3.3_8_ma_pywtCoeffs.npyPK!+b :=(asym_bior3.3_8_md_pywtCoeffs.npyPK!θ0>(asymw_bior3.3_8_ma.npyPK!K?(asymw_bior3.3_8_md.npyPK!)!@(asymw_bior3.3_8_ma_pywtCoeffs.npyPK!zn!@(asymw_bior3.3_8_md_pywtCoeffs.npyPK!TZOA(zpd_bior3.3_9_ma.npyPK!zCB(zpd_bior3.3_9_md.npyPK!viC(zpd_bior3.3_9_ma_pywtCoeffs.npyPK!~"D(zpd_bior3.3_9_md_pywtCoeffs.npyPK!-ȂE(sp0_bior3.3_9_ma.npyPK!3F(sp0_bior3.3_9_md.npyPK!X\G(sp0_bior3.3_9_ma_pywtCoeffs.npyPK!۔H(sp0_bior3.3_9_md_pywtCoeffs.npyPK!jqI(sym_bior3.3_9_ma.npyPK!7 J(sym_bior3.3_9_md.npyPK!BцmK(sym_bior3.3_9_ma_pywtCoeffs.npyPK!7L(sym_bior3.3_9_md_pywtCoeffs.npyPK!kvM(symw_bior3.3_9_ma.npyPK!'rN(symw_bior3.3_9_md.npyPK!:A# vO(symw_bior3.3_9_ma_pywtCoeffs.npyPK!0X tP(symw_bior3.3_9_md_pywtCoeffs.npyPK! rQ(ppd_bior3.3_9_ma.npyPK!PdR(ppd_bior3.3_9_md.npyPK!4LVS(ppd_bior3.3_9_ma_pywtCoeffs.npyPK!#ST(ppd_bior3.3_9_md_pywtCoeffs.npyPK!BPU(sp1_bior3.3_9_ma.npyPK!k;HBV(sp1_bior3.3_9_md.npyPK!4W(sp1_bior3.3_9_ma_pywtCoeffs.npyPK!Z1X(sp1_bior3.3_9_md_pywtCoeffs.npyPK!>d.Y(per_bior3.3_9_ma.npyPK!0DZ(per_bior3.3_9_md.npyPK! iZ(per_bior3.3_9_ma_pywtCoeffs.npyPK!AJ+[(per_bior3.3_9_md_pywtCoeffs.npyPK!?"\(asym_bior3.3_9_ma.npyPK! ](asym_bior3.3_9_md.npyPK!A ^(asym_bior3.3_9_ma_pywtCoeffs.npyPK!<M _(asym_bior3.3_9_md_pywtCoeffs.npyPK!/`(asymw_bior3.3_9_ma.npyPK!?a(asymw_bior3.3_9_md.npyPK!IL!vb(asymw_bior3.3_9_ma_pywtCoeffs.npyPK!|za!uc(asymw_bior3.3_9_md_pywtCoeffs.npyPK!ªktd(zpd_bior3.5_12_ma.npyPK!&ce(zpd_bior3.5_12_md.npyPK!Nڽ f(zpd_bior3.5_12_ma_pywtCoeffs.npyPK!4 g(zpd_bior3.5_12_md_pywtCoeffs.npyPK!uh(sp0_bior3.5_12_ma.npyPK!震i(sp0_bior3.5_12_md.npyPK!`~,j j(sp0_bior3.5_12_ma_pywtCoeffs.npyPK!s.[T k(sp0_bior3.5_12_md_pywtCoeffs.npyPK!M l(sym_bior3.5_12_ma.npyPK!m?n(sym_bior3.5_12_md.npyPK!̊ o(sym_bior3.5_12_ma_pywtCoeffs.npyPK!pp $p(sym_bior3.5_12_md_pywtCoeffs.npyPK!oɒ:q(symw_bior3.5_12_ma.npyPK!xFr(symw_bior3.5_12_md.npyPK!'Z!Rs(symw_bior3.5_12_ma_pywtCoeffs.npyPK!ٗ!it(symw_bior3.5_12_md_pywtCoeffs.npyPK!Ըu(ppd_bior3.5_12_ma.npyPK!Cv(ppd_bior3.5_12_md.npyPK!vZ w(ppd_bior3.5_12_ma_pywtCoeffs.npyPK!n x(ppd_bior3.5_12_md_pywtCoeffs.npyPK! х%y(sp1_bior3.5_12_ma.npyPK! e)z(sp1_bior3.5_12_md.npyPK!ĎG {(sp1_bior3.5_12_ma_pywtCoeffs.npyPK!t |(sp1_bior3.5_12_md_pywtCoeffs.npyPK!Wư~(per_bior3.5_12_ma.npyPK!/F~(per_bior3.5_12_md.npyPK!Wư (per_bior3.5_12_ma_pywtCoeffs.npyPK!/ (per_bior3.5_12_md_pywtCoeffs.npyPK!J{(asym_bior3.5_12_ma.npyPK!:|(asym_bior3.5_12_md.npyPK!K6!(asym_bior3.5_12_ma_pywtCoeffs.npyPK!i!Մ(asym_bior3.5_12_md_pywtCoeffs.npyPK!+ (asymw_bior3.5_12_ma.npyPK!ևtg(asymw_bior3.5_12_md.npyPK!rEw"(asymw_bior3.5_12_ma_pywtCoeffs.npyPK!ŵd"(asymw_bior3.5_12_md_pywtCoeffs.npyPK!C6(zpd_bior3.5_13_ma.npyPK! kI(zpd_bior3.5_13_md.npyPK!~ \(zpd_bior3.5_13_ma_pywtCoeffs.npyPK!B= z(zpd_bior3.5_13_md_pywtCoeffs.npyPK!]`hb(sp0_bior3.5_13_ma.npyPK!5a(sp0_bior3.5_13_md.npyPK!Xs (sp0_bior3.5_13_ma_pywtCoeffs.npyPK!x(> ܑ(sp0_bior3.5_13_md_pywtCoeffs.npyPK!/"(sym_bior3.5_13_ma.npyPK!8 (sym_bior3.5_13_md.npyPK!M `!  (sym_bior3.5_13_ma_pywtCoeffs.npyPK! >(sym_bior3.5_13_md_pywtCoeffs.npyPK!N !\(symw_bior3.5_13_ma.npyPK!;p(symw_bior3.5_13_md.npyPK!vN!(symw_bior3.5_13_ma_pywtCoeffs.npyPK!F!(symw_bior3.5_13_md_pywtCoeffs.npyPK!8›(ppd_bior3.5_13_ma.npyPK!Nw՜(ppd_bior3.5_13_md.npyPK!pj (ppd_bior3.5_13_ma_pywtCoeffs.npyPK!-9< (ppd_bior3.5_13_md_pywtCoeffs.npyPK!n$(sp1_bior3.5_13_ma.npyPK!7(sp1_bior3.5_13_md.npyPK!1 J(sp1_bior3.5_13_ma_pywtCoeffs.npyPK!< h(sp1_bior3.5_13_md_pywtCoeffs.npyPK!?Sh(per_bior3.5_13_ma.npyPK!dCq(per_bior3.5_13_md.npyPK!?Sh \(per_bior3.5_13_ma_pywtCoeffs.npyPK!fx R(per_bior3.5_13_md_pywtCoeffs.npyPK!KwH(asym_bior3.5_13_ma.npyPK!LR\(asym_bior3.5_13_md.npyPK!ʼ!p(asym_bior3.5_13_ma_pywtCoeffs.npyPK!FS!(asym_bior3.5_13_md_pywtCoeffs.npyPK!~n(asymw_bior3.5_13_ma.npyPK!r.í(asymw_bior3.5_13_md.npyPK!(*"خ(asymw_bior3.5_13_ma_pywtCoeffs.npyPK!5d"(asymw_bior3.5_13_md_pywtCoeffs.npyPK!2(zpd_bior3.7_16_ma.npyPK!lC(zpd_bior3.7_16_md.npyPK!]j n(zpd_bior3.7_16_ma_pywtCoeffs.npyPK!ɣ (zpd_bior3.7_16_md_pywtCoeffs.npyPK!ڵ(sp0_bior3.7_16_ma.npyPK!(sp0_bior3.7_16_md.npyPK!u 0(sp0_bior3.7_16_ma_pywtCoeffs.npyPK!?U f(sp0_bior3.7_16_md_pywtCoeffs.npyPK!P(sym_bior3.7_16_ma.npyPK!;ǻ(sym_bior3.7_16_md.npyPK!x (sym_bior3.7_16_ma_pywtCoeffs.npyPK!^ ((sym_bior3.7_16_md_pywtCoeffs.npyPK!]^(symw_bior3.7_16_ma.npyPK!q(symw_bior3.7_16_md.npyPK!_ C!(symw_bior3.7_16_ma_pywtCoeffs.npyPK!v!(symw_bior3.7_16_md_pywtCoeffs.npyPK!;l$(ppd_bior3.7_16_ma.npyPK!֘<O(ppd_bior3.7_16_md.npyPK!hZ z(ppd_bior3.7_16_ma_pywtCoeffs.npyPK!K (ppd_bior3.7_16_md_pywtCoeffs.npyPK!4(sp1_bior3.7_16_ma.npyPK!%(sp1_bior3.7_16_md.npyPK!N <(sp1_bior3.7_16_ma_pywtCoeffs.npyPK!s& r(sp1_bior3.7_16_md_pywtCoeffs.npyPK!2,\(per_bior3.7_16_ma.npyPK!9=,(per_bior3.7_16_md.npyPK!.a (per_bior3.7_16_ma_pywtCoeffs.npyPK!< (per_bior3.7_16_md_pywtCoeffs.npyPK!z(asym_bior3.7_16_ma.npyPK!yC=(asym_bior3.7_16_md.npyPK!B&8!(asym_bior3.7_16_ma_pywtCoeffs.npyPK!9!(asym_bior3.7_16_md_pywtCoeffs.npyPK!EP(asymw_bior3.7_16_ma.npyPK!}(asymw_bior3.7_16_md.npyPK!E"(asymw_bior3.7_16_ma_pywtCoeffs.npyPK!n"(asymw_bior3.7_16_md_pywtCoeffs.npyPK!0(zpd_bior3.7_17_ma.npyPK! M(zpd_bior3.7_17_md.npyPK!$bx (zpd_bior3.7_17_ma_pywtCoeffs.npyPK! (zpd_bior3.7_17_md_pywtCoeffs.npyPK!fJ(sp0_bior3.7_17_ma.npyPK!Q/(sp0_bior3.7_17_md.npyPK!fJ b(sp0_bior3.7_17_ma_pywtCoeffs.npyPK!䂣 (sp0_bior3.7_17_md_pywtCoeffs.npyPK!^Xl(sym_bior3.7_17_ma.npyPK!15B(sym_bior3.7_17_md.npyPK!^Xl D(sym_bior3.7_17_ma_pywtCoeffs.npyPK! (sym_bior3.7_17_md_pywtCoeffs.npyPK!'](symw_bior3.7_17_ma.npyPK!(symw_bior3.7_17_md.npyPK!'R!((symw_bior3.7_17_ma_pywtCoeffs.npyPK!}.!g(symw_bior3.7_17_md_pywtCoeffs.npyPK!Ӄ(ppd_bior3.7_17_ma.npyPK!*(ppd_bior3.7_17_md.npyPK!Ӄ  (ppd_bior3.7_17_ma_pywtCoeffs.npyPK!M* J(ppd_bior3.7_17_md_pywtCoeffs.npyPK! (sp1_bior3.7_17_ma.npyPK!h6(sp1_bior3.7_17_md.npyPK!|u (sp1_bior3.7_17_ma_pywtCoeffs.npyPK!#c[ ,(sp1_bior3.7_17_md_pywtCoeffs.npyPK!8j(per_bior3.7_17_ma.npyPK!~e(per_bior3.7_17_md.npyPK!8 `(per_bior3.7_17_ma_pywtCoeffs.npyPK! f(per_bior3.7_17_md_pywtCoeffs.npyPK!k6l(asym_bior3.7_17_ma.npyPK!#N(asym_bior3.7_17_md.npyPK!k6!(asym_bior3.7_17_ma_pywtCoeffs.npyPK!"!)asym_bior3.7_17_md_pywtCoeffs.npyPK!R)asymw_bior3.7_17_ma.npyPK!q)asymw_bior3.7_17_md.npyPK!ݪu")asymw_bior3.7_17_ma_pywtCoeffs.npyPK! ?")asymw_bior3.7_17_md_pywtCoeffs.npyPK!<)zpd_bior3.9_20_ma.npyPK!%IS)zpd_bior3.9_20_md.npyPK!.p{ )zpd_bior3.9_20_ma_pywtCoeffs.npyPK!hF ( )zpd_bior3.9_20_md_pywtCoeffs.npyPK! ~ )sp0_bior3.9_20_ma.npyPK!X$uT )sp0_bior3.9_20_md.npyPK!} )sp0_bior3.9_20_ma_pywtCoeffs.npyPK!yگ j)sp0_bior3.9_20_md_pywtCoeffs.npyPK!U8)sym_bior3.9_20_ma.npyPK! )sym_bior3.9_20_md.npyPK!Ǧ V)sym_bior3.9_20_ma_pywtCoeffs.npyPK!1@ )sym_bior3.9_20_md_pywtCoeffs.npyPK!_:a)symw_bior3.9_20_ma.npyPK!,N)symw_bior3.9_20_md.npyPK! Z!)symw_bior3.9_20_ma_pywtCoeffs.npyPK!8!)symw_bior3.9_20_md_pywtCoeffs.npyPK!J<4.H)ppd_bior3.9_20_ma.npyPK!5av)ppd_bior3.9_20_md.npyPK!\^ )ppd_bior3.9_20_ma_pywtCoeffs.npyPK!̇ 4)ppd_bior3.9_20_md_pywtCoeffs.npyPK!%j\ )sp1_bior3.9_20_ma.npyPK!:!)sp1_bior3.9_20_md.npyPK!/Ԝ  #)sp1_bior3.9_20_ma_pywtCoeffs.npyPK!mk? v$)sp1_bior3.9_20_md_pywtCoeffs.npyPK!|%)per_bior3.9_20_ma.npyPK!a&)per_bior3.9_20_md.npyPK!| ')per_bior3.9_20_ma_pywtCoeffs.npyPK!h ()per_bior3.9_20_md_pywtCoeffs.npyPK! k))asym_bior3.9_20_ma.npyPK!_:+)asym_bior3.9_20_md.npyPK!I!,)asym_bior3.9_20_ma_pywtCoeffs.npyPK!R!-)asym_bior3.9_20_md_pywtCoeffs.npyPK!)4/)asymw_bior3.9_20_ma.npyPK!0)asymw_bior3.9_20_md.npyPK!"1)asymw_bior3.9_20_ma_pywtCoeffs.npyPK!=3"&3)asymw_bior3.9_20_md_pywtCoeffs.npyPK!y^  ~4)zpd_bior3.9_21_ma.npyPK!M  5)zpd_bior3.9_21_md.npyPK!4Q,   $7)zpd_bior3.9_21_ma_pywtCoeffs.npyPK!y5   8)zpd_bior3.9_21_md_pywtCoeffs.npyPK!TE  9)sp0_bior3.9_21_ma.npyPK! v  3;)sp0_bior3.9_21_md.npyPK!TE   <)sp0_bior3.9_21_ma_pywtCoeffs.npyPK!~B   =)sp0_bior3.9_21_md_pywtCoeffs.npyPK!/0  B?)sym_bior3.9_21_ma.npyPK!$%K  @)sym_bior3.9_21_md.npyPK!Sk   A)sym_bior3.9_21_ma_pywtCoeffs.npyPK![&   FC)sym_bior3.9_21_md_pywtCoeffs.npyPK!5)  D)symw_bior3.9_21_ma.npyPK!  E)symw_bior3.9_21_md.npyPK!5)  !LG)symw_bior3.9_21_ma_pywtCoeffs.npyPK!s+Y  !H)symw_bior3.9_21_md_pywtCoeffs.npyPK!)   J)ppd_bior3.9_21_ma.npyPK!h  ]K)ppd_bior3.9_21_md.npyPK!ɩ   L)ppd_bior3.9_21_ma_pywtCoeffs.npyPK!J;CI   N)ppd_bior3.9_21_md_pywtCoeffs.npyPK!z#'  lO)sp1_bior3.9_21_ma.npyPK!9  P)sp1_bior3.9_21_md.npyPK!z#'   R)sp1_bior3.9_21_ma_pywtCoeffs.npyPK!   pS)sp1_bior3.9_21_md_pywtCoeffs.npyPK!KKiT)per_bior3.9_21_ma.npyPK!hU)per_bior3.9_21_md.npyPK!KKi V)per_bior3.9_21_ma_pywtCoeffs.npyPK!ʊ W)per_bior3.9_21_md_pywtCoeffs.npyPK!%5  Y)asym_bior3.9_21_ma.npyPK!v  dZ)asym_bior3.9_21_md.npyPK!٘/  ![)asym_bior3.9_21_ma_pywtCoeffs.npyPK!%  !])asym_bior3.9_21_md_pywtCoeffs.npyPK!  v^)asymw_bior3.9_21_ma.npyPK!]  _)asymw_bior3.9_21_md.npyPK!"  " a)asymw_bior3.9_21_ma_pywtCoeffs.npyPK!K8w  "b)asymw_bior3.9_21_md_pywtCoeffs.npyPK!͘c)zpd_bior4.4_10_ma.npyPK!JPd)zpd_bior4.4_10_md.npyPK!͘ e)zpd_bior4.4_10_ma_pywtCoeffs.npyPK!JP f)zpd_bior4.4_10_md_pywtCoeffs.npyPK!/pg)sp0_bior4.4_10_ma.npyPK! v,h)sp0_bior4.4_10_md.npyPK!/p i)sp0_bior4.4_10_ma_pywtCoeffs.npyPK! v, j)sp0_bior4.4_10_md_pywtCoeffs.npyPK!Nk)sym_bior4.4_10_ma.npyPK!Rtl)sym_bior4.4_10_md.npyPK!N m)sym_bior4.4_10_ma_pywtCoeffs.npyPK!Rt n)sym_bior4.4_10_md_pywtCoeffs.npyPK!o)symw_bior4.4_10_ma.npyPK!69p)symw_bior4.4_10_md.npyPK!!q)symw_bior4.4_10_ma_pywtCoeffs.npyPK!69!r)symw_bior4.4_10_md_pywtCoeffs.npyPK!51Ds)ppd_bior4.4_10_ma.npyPK!_PVt)ppd_bior4.4_10_md.npyPK!51D u)ppd_bior4.4_10_ma_pywtCoeffs.npyPK!_PV v)ppd_bior4.4_10_md_pywtCoeffs.npyPK!' w)sp1_bior4.4_10_ma.npyPK!yx)sp1_bior4.4_10_md.npyPK!' y)sp1_bior4.4_10_ma_pywtCoeffs.npyPK!y z)sp1_bior4.4_10_md_pywtCoeffs.npyPK!Ѩ{)per_bior4.4_10_ma.npyPK!'Ԩ|)per_bior4.4_10_md.npyPK!Ѩ })per_bior4.4_10_ma_pywtCoeffs.npyPK!'Ԩ ~)per_bior4.4_10_md_pywtCoeffs.npyPK![Ar)asym_bior4.4_10_ma.npyPK!Gn)asym_bior4.4_10_md.npyPK![A!j)asym_bior4.4_10_ma_pywtCoeffs.npyPK!G!q)asym_bior4.4_10_md_pywtCoeffs.npyPK!Bݎx)asymw_bior4.4_10_ma.npyPK!ش?u)asymw_bior4.4_10_md.npyPK!Bݎ"r)asymw_bior4.4_10_ma_pywtCoeffs.npyPK!ش?"z)asymw_bior4.4_10_md_pywtCoeffs.npyPK!0*sym_bior6.8_19_md.npyPK!hi 1*sym_bior6.8_19_ma_pywtCoeffs.npyPK!> "3*sym_bior6.8_19_md_pywtCoeffs.npyPK!4tp4*symw_bior6.8_19_ma.npyPK!&L5*symw_bior6.8_19_md.npyPK!4t!6*symw_bior6.8_19_ma_pywtCoeffs.npyPK!&L!G8*symw_bior6.8_19_md_pywtCoeffs.npyPK!o9*ppd_bior6.8_19_ma.npyPK!>:*ppd_bior6.8_19_md.npyPK!o <*ppd_bior6.8_19_ma_pywtCoeffs.npyPK!> j=*ppd_bior6.8_19_md_pywtCoeffs.npyPK!yOL>*sp1_bior6.8_19_ma.npyPK!f'?*sp1_bior6.8_19_md.npyPK!yOL >A*sp1_bior6.8_19_ma_pywtCoeffs.npyPK!f' B*sp1_bior6.8_19_md_pywtCoeffs.npyPK! pBC*per_bior6.8_19_ma.npyPK!D*per_bior6.8_19_md.npyPK! pB E*per_bior6.8_19_ma_pywtCoeffs.npyPK! F*per_bior6.8_19_md_pywtCoeffs.npyPK!2VG*asym_bior6.8_19_ma.npyPK!N@I*asym_bior6.8_19_md.npyPK!2V!J*asym_bior6.8_19_ma_pywtCoeffs.npyPK!N!K*asym_bior6.8_19_md_pywtCoeffs.npyPK!)5"M*asymw_bior6.8_19_ma.npyPK!r7;gN*asymw_bior6.8_19_md.npyPK!)5"O*asymw_bior6.8_19_ma_pywtCoeffs.npyPK!r7;"P*asymw_bior6.8_19_md_pywtCoeffs.npyPK!ʈLR*zpd_rbio1.1_2_ma.npyPK!$ԈS*zpd_rbio1.1_2_md.npyPK!ʈS*zpd_rbio1.1_2_ma_pywtCoeffs.npyPK!$ԈT*zpd_rbio1.1_2_md_pywtCoeffs.npyPK!ʈJU*sp0_rbio1.1_2_ma.npyPK!$ԈV*sp0_rbio1.1_2_md.npyPK!ʈV*sp0_rbio1.1_2_ma_pywtCoeffs.npyPK!$ԈW*sp0_rbio1.1_2_md_pywtCoeffs.npyPK!ʈHX*sym_rbio1.1_2_ma.npyPK!$ԈY*sym_rbio1.1_2_md.npyPK!ʈY*sym_rbio1.1_2_ma_pywtCoeffs.npyPK!$ԈZ*sym_rbio1.1_2_md_pywtCoeffs.npyPK!ʈF[*symw_rbio1.1_2_ma.npyPK!$Ԉ\*symw_rbio1.1_2_md.npyPK!ʈ \*symw_rbio1.1_2_ma_pywtCoeffs.npyPK!$Ԉ ]*symw_rbio1.1_2_md_pywtCoeffs.npyPK!ʈH^*ppd_rbio1.1_2_ma.npyPK!$Ԉ_*ppd_rbio1.1_2_md.npyPK!ʈ_*ppd_rbio1.1_2_ma_pywtCoeffs.npyPK!$Ԉ`*ppd_rbio1.1_2_md_pywtCoeffs.npyPK!ʈFa*sp1_rbio1.1_2_ma.npyPK!$Ԉb*sp1_rbio1.1_2_md.npyPK!ʈb*sp1_rbio1.1_2_ma_pywtCoeffs.npyPK!$Ԉc*sp1_rbio1.1_2_md_pywtCoeffs.npyPK!ʈDd*per_rbio1.1_2_ma.npyPK!$Ԉd*per_rbio1.1_2_md.npyPK!ʈe*per_rbio1.1_2_ma_pywtCoeffs.npyPK!$Ԉ}f*per_rbio1.1_2_md_pywtCoeffs.npyPK!ʈBg*asym_rbio1.1_2_ma.npyPK!$Ԉg*asym_rbio1.1_2_md.npyPK!ʈ h*asym_rbio1.1_2_ma_pywtCoeffs.npyPK!$Ԉ ~i*asym_rbio1.1_2_md_pywtCoeffs.npyPK!ʈDj*asymw_rbio1.1_2_ma.npyPK!$Ԉk*asymw_rbio1.1_2_md.npyPK!ʈ!k*asymw_rbio1.1_2_ma_pywtCoeffs.npyPK!$Ԉ!l*asymw_rbio1.1_2_md_pywtCoeffs.npyPK!XdJm*zpd_rbio1.1_3_ma.npyPK!056k n*zpd_rbio1.1_3_md.npyPK!Xdn*zpd_rbio1.1_3_ma_pywtCoeffs.npyPK!056ko*zpd_rbio1.1_3_md_pywtCoeffs.npyPK!Rېhp*sp0_rbio1.1_3_ma.npyPK!L*@s*q*sp0_rbio1.1_3_md.npyPK!Rېq*sp0_rbio1.1_3_ma_pywtCoeffs.npyPK!L*@sr*sp0_rbio1.1_3_md_pywtCoeffs.npyPK!Rېs*sym_rbio1.1_3_ma.npyPK!L*@sHt*sym_rbio1.1_3_md.npyPK!Rې u*sym_rbio1.1_3_ma_pywtCoeffs.npyPK!L*@su*sym_rbio1.1_3_md_pywtCoeffs.npyPK!ev*symw_rbio1.1_3_ma.npyPK! nrʐgw*symw_rbio1.1_3_md.npyPK!e *x*symw_rbio1.1_3_ma_pywtCoeffs.npyPK! nrʐ x*symw_rbio1.1_3_md_pywtCoeffs.npyPK!}ky*ppd_rbio1.1_3_ma.npyPK!]z*ppd_rbio1.1_3_md.npyPK!}kJ{*ppd_rbio1.1_3_ma_pywtCoeffs.npyPK!]|*ppd_rbio1.1_3_md_pywtCoeffs.npyPK!Pa |*sp1_rbio1.1_3_ma.npyPK!@2}*sp1_rbio1.1_3_md.npyPK!Pa h~*sp1_rbio1.1_3_ma_pywtCoeffs.npyPK!@25*sp1_rbio1.1_3_md_pywtCoeffs.npyPK!Rې*per_rbio1.1_3_ma.npyPK!L*@sĀ*per_rbio1.1_3_md.npyPK!Rې*per_rbio1.1_3_ma_pywtCoeffs.npyPK!L*@sS*per_rbio1.1_3_md_pywtCoeffs.npyPK!${ *asym_rbio1.1_3_ma.npyPK!p*asym_rbio1.1_3_md.npyPK!${ *asym_rbio1.1_3_ma_pywtCoeffs.npyPK!p t*asym_rbio1.1_3_md_pywtCoeffs.npyPK!Pa B*asymw_rbio1.1_3_ma.npyPK!@2*asymw_rbio1.1_3_md.npyPK!Pa !ʇ*asymw_rbio1.1_3_ma_pywtCoeffs.npyPK!@2!*asymw_rbio1.1_3_md_pywtCoeffs.npyPK!8Āh*zpd_rbio1.3_6_ma.npyPK!FJB*zpd_rbio1.3_6_md.npyPK!8Ā*zpd_rbio1.3_6_ma_pywtCoeffs.npyPK!FJ*zpd_rbio1.3_6_md_pywtCoeffs.npyPK!&_*sp0_rbio1.3_6_ma.npyPK!7(*sp0_rbio1.3_6_md.npyPK!&_*sp0_rbio1.3_6_ma_pywtCoeffs.npyPK!7(*sp0_rbio1.3_6_md_pywtCoeffs.npyPK!9-`d*sym_rbio1.3_6_ma.npyPK!R/|A>*sym_rbio1.3_6_md.npyPK!9-`*sym_rbio1.3_6_ma_pywtCoeffs.npyPK!R/|A*sym_rbio1.3_6_md_pywtCoeffs.npyPK!t9*symw_rbio1.3_6_ma.npyPK!ܛ<*symw_rbio1.3_6_md.npyPK!t9 *symw_rbio1.3_6_ma_pywtCoeffs.npyPK!ܛ< ~*symw_rbio1.3_6_md_pywtCoeffs.npyPK!Od*ppd_rbio1.3_6_ma.npyPK!Rr>*ppd_rbio1.3_6_md.npyPK!O*ppd_rbio1.3_6_ma_pywtCoeffs.npyPK!Rr*ppd_rbio1.3_6_md_pywtCoeffs.npyPK!Bw*sp1_rbio1.3_6_ma.npyPK!<*sp1_rbio1.3_6_md.npyPK!Bw*sp1_rbio1.3_6_ma_pywtCoeffs.npyPK!<{*sp1_rbio1.3_6_md_pywtCoeffs.npyPK!n`*per_rbio1.3_6_ma.npyPK!?|)^**per_rbio1.3_6_md.npyPK!n*per_rbio1.3_6_ma_pywtCoeffs.npyPK!?|)^ɠ*per_rbio1.3_6_md_pywtCoeffs.npyPK!vx*asym_rbio1.3_6_ma.npyPK!#-y*asym_rbio1.3_6_md.npyPK!vx T*asym_rbio1.3_6_ma_pywtCoeffs.npyPK!#- :*asym_rbio1.3_6_md_pywtCoeffs.npyPK! ˨ *asymw_rbio1.3_6_ma.npyPK!&*asymw_rbio1.3_6_md.npyPK! ˨!ئ*asymw_rbio1.3_6_ma_pywtCoeffs.npyPK!&!*asymw_rbio1.3_6_md_pywtCoeffs.npyPK!7*zpd_rbio1.3_7_ma.npyPK!]dYe*zpd_rbio1.3_7_md.npyPK!7j*zpd_rbio1.3_7_ma_pywtCoeffs.npyPK!]dYeW*zpd_rbio1.3_7_md_pywtCoeffs.npyPK!vQŰD*sp0_rbio1.3_7_ma.npyPK!@İ&*sp0_rbio1.3_7_md.npyPK!vQŰ*sp0_rbio1.3_7_ma_pywtCoeffs.npyPK!@İ*sp0_rbio1.3_7_md_pywtCoeffs.npyPK!s7*sym_rbio1.3_7_ma.npyPK!3BNİ*sym_rbio1.3_7_md.npyPK!s7*sym_rbio1.3_7_ma_pywtCoeffs.npyPK!3BN*sym_rbio1.3_7_md_pywtCoeffs.npyPK!\*symw_rbio1.3_7_ma.npyPK!c*symw_rbio1.3_7_md.npyPK!\ F*symw_rbio1.3_7_ma_pywtCoeffs.npyPK! 4*symw_rbio1.3_7_md_pywtCoeffs.npyPK!u.\"*ppd_rbio1.3_7_ma.npyPK!AC +*ppd_rbio1.3_7_md.npyPK!u.\*ppd_rbio1.3_7_ma_pywtCoeffs.npyPK!AC +ӹ*ppd_rbio1.3_7_md_pywtCoeffs.npyPK!絢*sp1_rbio1.3_7_ma.npyPK!Uٰ*sp1_rbio1.3_7_md.npyPK!絢*sp1_rbio1.3_7_ma_pywtCoeffs.npyPK!Uٰq*sp1_rbio1.3_7_md_pywtCoeffs.npyPK!s^*per_rbio1.3_7_ma.npyPK!Eb0*per_rbio1.3_7_md.npyPK!s*per_rbio1.3_7_ma_pywtCoeffs.npyPK!Eb*per_rbio1.3_7_md_pywtCoeffs.npyPK!k*asym_rbio1.3_7_ma.npyPK!hM*asym_rbio1.3_7_md.npyPK!k *asym_rbio1.3_7_ma_pywtCoeffs.npyPK!hM p*asym_rbio1.3_7_md_pywtCoeffs.npyPK!EͰ^*asymw_rbio1.3_7_ma.npyPK!ϳ4SB*asymw_rbio1.3_7_md.npyPK!EͰ!&*asymw_rbio1.3_7_ma_pywtCoeffs.npyPK!ϳ4S!*asymw_rbio1.3_7_md_pywtCoeffs.npyPK!{H*zpd_rbio1.5_10_ma.npyPK!Ѣ*zpd_rbio1.5_10_md.npyPK!{H *zpd_rbio1.5_10_ma_pywtCoeffs.npyPK!UU *zpd_rbio1.5_10_md_pywtCoeffs.npyPK!ҜW*sp0_rbio1.5_10_ma.npyPK! *sp0_rbio1.5_10_md.npyPK!ҜW *sp0_rbio1.5_10_ma_pywtCoeffs.npyPK!Ԍ *sp0_rbio1.5_10_md_pywtCoeffs.npyPK!` *sym_rbio1.5_10_ma.npyPK! *sym_rbio1.5_10_md.npyPK!` *sym_rbio1.5_10_ma_pywtCoeffs.npyPK!U *sym_rbio1.5_10_md_pywtCoeffs.npyPK!*U *symw_rbio1.5_10_ma.npyPK!Z*symw_rbio1.5_10_md.npyPK!*U!*symw_rbio1.5_10_ma_pywtCoeffs.npyPK!A! *symw_rbio1.5_10_md_pywtCoeffs.npyPK!eF*ppd_rbio1.5_10_ma.npyPK!̭n *ppd_rbio1.5_10_md.npyPK!eF *ppd_rbio1.5_10_ma_pywtCoeffs.npyPK!  *ppd_rbio1.5_10_md_pywtCoeffs.npyPK!)X*sp1_rbio1.5_10_ma.npyPK!F^ *sp1_rbio1.5_10_md.npyPK!)X *sp1_rbio1.5_10_ma_pywtCoeffs.npyPK!F *sp1_rbio1.5_10_md_pywtCoeffs.npyPK!=a*per_rbio1.5_10_ma.npyPK!a*per_rbio1.5_10_md.npyPK!=a *per_rbio1.5_10_ma_pywtCoeffs.npyPK![L *per_rbio1.5_10_md_pywtCoeffs.npyPK!.p-*asym_rbio1.5_10_ma.npyPK!A**asym_rbio1.5_10_md.npyPK!.p-!*asym_rbio1.5_10_ma_pywtCoeffs.npyPK!;x!*asym_rbio1.5_10_md_pywtCoeffs.npyPK!U2*asymw_rbio1.5_10_ma.npyPK!Z_*asymw_rbio1.5_10_md.npyPK!U2"*asymw_rbio1.5_10_ma_pywtCoeffs.npyPK!m[W"*asymw_rbio1.5_10_md_pywtCoeffs.npyPK!3,{*zpd_rbio1.5_11_ma.npyPK!k*zpd_rbio1.5_11_md.npyPK!3,{ *zpd_rbio1.5_11_ma_pywtCoeffs.npyPK! ; *zpd_rbio1.5_11_md_pywtCoeffs.npyPK!hjh*sp0_rbio1.5_11_ma.npyPK!A*sp0_rbio1.5_11_md.npyPK!hjh *sp0_rbio1.5_11_ma_pywtCoeffs.npyPK!*X *sp0_rbio1.5_11_md_pywtCoeffs.npyPK!OL*sym_rbio1.5_11_ma.npyPK!E6*sym_rbio1.5_11_md.npyPK!OL *sym_rbio1.5_11_ma_pywtCoeffs.npyPK!y *sym_rbio1.5_11_md_pywtCoeffs.npyPK!W *symw_rbio1.5_11_ma.npyPK!*symw_rbio1.5_11_md.npyPK!W!*symw_rbio1.5_11_ma_pywtCoeffs.npyPK!n!#*symw_rbio1.5_11_md_pywtCoeffs.npyPK!2*ppd_rbio1.5_11_ma.npyPK!adt5*ppd_rbio1.5_11_md.npyPK! 8*ppd_rbio1.5_11_ma_pywtCoeffs.npyPK!;O6 F+ppd_rbio1.5_11_md_pywtCoeffs.npyPK!JΝT+sp1_rbio1.5_11_ma.npyPK!JW+sp1_rbio1.5_11_md.npyPK!JΝ Z+sp1_rbio1.5_11_ma_pywtCoeffs.npyPK! h+sp1_rbio1.5_11_md_pywtCoeffs.npyPK!*v+per_rbio1.5_11_ma.npyPK!2%gY+per_rbio1.5_11_md.npyPK!* <+per_rbio1.5_11_ma_pywtCoeffs.npyPK!. *+per_rbio1.5_11_md_pywtCoeffs.npyPK!߂Sb +asym_rbio1.5_11_ma.npyPK!K[> +asym_rbio1.5_11_md.npyPK!߂Sb! +asym_rbio1.5_11_ma_pywtCoeffs.npyPK!!/ +asym_rbio1.5_11_md_pywtCoeffs.npyPK!*K> +asymw_rbio1.5_11_ma.npyPK!C+asymw_rbio1.5_11_md.npyPK!*K"H+asymw_rbio1.5_11_ma_pywtCoeffs.npyPK!vt9"X+asymw_rbio1.5_11_md_pywtCoeffs.npyPK!7y{h+zpd_rbio2.2_6_ma.npyPK!tB+zpd_rbio2.2_6_md.npyPK!7y{+zpd_rbio2.2_6_ma_pywtCoeffs.npyPK!%U+zpd_rbio2.2_6_md_pywtCoeffs.npyPK!em+sp0_rbio2.2_6_ma.npyPK!IYs+sp0_rbio2.2_6_md.npyPK!em+sp0_rbio2.2_6_ma_pywtCoeffs.npyPK!V[+sp0_rbio2.2_6_md_pywtCoeffs.npyPK!ھ!d+sym_rbio2.2_6_ma.npyPK!c>+sym_rbio2.2_6_md.npyPK!ھ!+sym_rbio2.2_6_ma_pywtCoeffs.npyPK!i+sym_rbio2.2_6_md_pywtCoeffs.npyPK!|O.+symw_rbio2.2_6_ma.npyPK!$ +symw_rbio2.2_6_md.npyPK!|O. +symw_rbio2.2_6_ma_pywtCoeffs.npyPK! , ~+symw_rbio2.2_6_md_pywtCoeffs.npyPK! & Td+ppd_rbio2.2_6_ma.npyPK!> +ppd_rbio2.2_6_md.npyPK! & T!+ppd_rbio2.2_6_ma_pywtCoeffs.npyPK!,9!+ppd_rbio2.2_6_md_pywtCoeffs.npyPK!5F*"+sp1_rbio2.2_6_ma.npyPK![W#+sp1_rbio2.2_6_md.npyPK!5F*$+sp1_rbio2.2_6_ma_pywtCoeffs.npyPK!{%+sp1_rbio2.2_6_md_pywtCoeffs.npyPK!{`&+per_rbio2.2_6_ma.npyPK!Lʌ*'+per_rbio2.2_6_md.npyPK!{'+per_rbio2.2_6_ma_pywtCoeffs.npyPK!dt(+per_rbio2.2_6_md_pywtCoeffs.npyPK!\=ڨ)+asym_rbio2.2_6_ma.npyPK!pgy*+asym_rbio2.2_6_md.npyPK!\=ڨ T++asym_rbio2.2_6_ma_pywtCoeffs.npyPK!I :,+asym_rbio2.2_6_md_pywtCoeffs.npyPK!h -+asymw_rbio2.2_6_ma.npyPK!~-+asymw_rbio2.2_6_md.npyPK!h!.+asymw_rbio2.2_6_ma_pywtCoeffs.npyPK!}+*!/+asymw_rbio2.2_6_md_pywtCoeffs.npyPK!I,0+zpd_rbio2.2_7_ma.npyPK!dѰ1+zpd_rbio2.2_7_md.npyPK!I,j2+zpd_rbio2.2_7_ma_pywtCoeffs.npyPK!YaW3+zpd_rbio2.2_7_md_pywtCoeffs.npyPK!}ɰD4+sp0_rbio2.2_7_ma.npyPK!r&5+sp0_rbio2.2_7_md.npyPK!}ɰ6+sp0_rbio2.2_7_ma_pywtCoeffs.npyPK!^6+sp0_rbio2.2_7_md_pywtCoeffs.npyPK!R7Y7+sym_rbio2.2_7_ma.npyPK!E8+sym_rbio2.2_7_md.npyPK!R7Y9+sym_rbio2.2_7_ma_pywtCoeffs.npyPK!vv:+sym_rbio2.2_7_md_pywtCoeffs.npyPK!i;+symw_rbio2.2_7_ma.npyPK!>c<+symw_rbio2.2_7_md.npyPK!i F=+symw_rbio2.2_7_ma_pywtCoeffs.npyPK!ޕJ 4>+symw_rbio2.2_7_md_pywtCoeffs.npyPK!o"?+ppd_rbio2.2_7_ma.npyPK!*Y@+ppd_rbio2.2_7_md.npyPK!o@+ppd_rbio2.2_7_ma_pywtCoeffs.npyPK!iA+ppd_rbio2.2_7_md_pywtCoeffs.npyPK!1B+sp1_rbio2.2_7_ma.npyPK! oC+sp1_rbio2.2_7_md.npyPK!1D+sp1_rbio2.2_7_ma_pywtCoeffs.npyPK!Ɖ3qE+sp1_rbio2.2_7_md_pywtCoeffs.npyPK!)^F+per_rbio2.2_7_ma.npyPK!}%,0G+per_rbio2.2_7_md.npyPK!)H+per_rbio2.2_7_ma_pywtCoeffs.npyPK!,H+per_rbio2.2_7_md_pywtCoeffs.npyPK! *8I+asym_rbio2.2_7_ma.npyPK!gY"J+asym_rbio2.2_7_md.npyPK! *8 K+asym_rbio2.2_7_ma_pywtCoeffs.npyPK!1 pL+asym_rbio2.2_7_md_pywtCoeffs.npyPK!C^M+asymw_rbio2.2_7_ma.npyPK!#BN+asymw_rbio2.2_7_md.npyPK!C!&O+asymw_rbio2.2_7_ma_pywtCoeffs.npyPK!:!P+asymw_rbio2.2_7_md_pywtCoeffs.npyPK!wQ+zpd_rbio2.4_10_ma.npyPK!* Q+zpd_rbio2.4_10_md.npyPK!w R+zpd_rbio2.4_10_ma_pywtCoeffs.npyPK!!I +symw_rbio2.4_11_ma.npyPK!+symw_rbio2.4_11_md.npyPK!>!I!+symw_rbio2.4_11_ma_pywtCoeffs.npyPK!ř!#+symw_rbio2.4_11_md_pywtCoeffs.npyPK!~2+ppd_rbio2.4_11_ma.npyPK!#ZC5+ppd_rbio2.4_11_md.npyPK!~ 8+ppd_rbio2.4_11_ma_pywtCoeffs.npyPK!?f F+ppd_rbio2.4_11_md_pywtCoeffs.npyPK!i)IT+sp1_rbio2.4_11_ma.npyPK!IW+sp1_rbio2.4_11_md.npyPK!i)I Z+sp1_rbio2.4_11_ma_pywtCoeffs.npyPK!$B h+sp1_rbio2.4_11_md_pywtCoeffs.npyPK!8v+per_rbio2.4_11_ma.npyPK!S9Y+per_rbio2.4_11_md.npyPK!8 <+per_rbio2.4_11_ma_pywtCoeffs.npyPK!Z *+per_rbio2.4_11_md_pywtCoeffs.npyPK!1b+asym_rbio2.4_11_ma.npyPK!ԯ+asym_rbio2.4_11_md.npyPK!1b! +asym_rbio2.4_11_ma_pywtCoeffs.npyPK!?zG!/+asym_rbio2.4_11_md_pywtCoeffs.npyPK!JOh>+asymw_rbio2.4_11_ma.npyPK!pC+asymw_rbio2.4_11_md.npyPK!JOh"H+asymw_rbio2.4_11_ma_pywtCoeffs.npyPK!;v?"X+asymw_rbio2.4_11_md_pywtCoeffs.npyPK!'&/h+zpd_rbio2.6_14_ma.npyPK!Ց+zpd_rbio2.6_14_md.npyPK!'&/ +zpd_rbio2.6_14_ma_pywtCoeffs.npyPK!-| Ĝ+zpd_rbio2.6_14_md_pywtCoeffs.npyPK!p+sp0_rbio2.6_14_ma.npyPK!+sp0_rbio2.6_14_md.npyPK!p  +sp0_rbio2.6_14_ma_pywtCoeffs.npyPK!&L F+sp0_rbio2.6_14_md_pywtCoeffs.npyPK!Ol+sym_rbio2.6_14_ma.npyPK!̗+sym_rbio2.6_14_md.npyPK!O +sym_rbio2.6_14_ma_pywtCoeffs.npyPK! h ȥ+sym_rbio2.6_14_md_pywtCoeffs.npyPK!X&?+symw_rbio2.6_14_ma.npyPK!|" +symw_rbio2.6_14_md.npyPK!X&?!&+symw_rbio2.6_14_ma_pywtCoeffs.npyPK!P !M+symw_rbio2.6_14_md_pywtCoeffs.npyPK!t+ppd_rbio2.6_14_ma.npyPK!+ppd_rbio2.6_14_md.npyPK! +ppd_rbio2.6_14_ma_pywtCoeffs.npyPK! Ю+ppd_rbio2.6_14_md_pywtCoeffs.npyPK!C+sp1_rbio2.6_14_ma.npyPK!˼+sp1_rbio2.6_14_md.npyPK!C ,+sp1_rbio2.6_14_ma_pywtCoeffs.npyPK!;ʢ R+sp1_rbio2.6_14_md_pywtCoeffs.npyPK!gÀ x+per_rbio2.6_14_ma.npyPK!Uqc+per_rbio2.6_14_md.npyPK!gÀ N+per_rbio2.6_14_ma_pywtCoeffs.npyPK!Uq D+per_rbio2.6_14_md_pywtCoeffs.npyPK!:+asym_rbio2.6_14_ma.npyPK!B4TV+asym_rbio2.6_14_md.npyPK!!r+asym_rbio2.6_14_ma_pywtCoeffs.npyPK!!+asym_rbio2.6_14_md_pywtCoeffs.npyPK!5+asymw_rbio2.6_14_ma.npyPK!86ݽ+asymw_rbio2.6_14_md.npyPK!5"+asymw_rbio2.6_14_ma_pywtCoeffs.npyPK!V& ""+asymw_rbio2.6_14_md_pywtCoeffs.npyPK!ϩJ+zpd_rbio2.6_15_ma.npyPK!fm+zpd_rbio2.6_15_md.npyPK!ϩ +zpd_rbio2.6_15_ma_pywtCoeffs.npyPK!' +zpd_rbio2.6_15_md_pywtCoeffs.npyPK!'k+sp0_rbio2.6_15_ma.npyPK!6+sp0_rbio2.6_15_md.npyPK!'k 2+sp0_rbio2.6_15_ma_pywtCoeffs.npyPK!> `+sp0_rbio2.6_15_md_pywtCoeffs.npyPK!%69+sym_rbio2.6_15_ma.npyPK!ܘ+sym_rbio2.6_15_md.npyPK!%69 +sym_rbio2.6_15_ma_pywtCoeffs.npyPK!{ +sym_rbio2.6_15_md_pywtCoeffs.npyPK!d_0+symw_rbio2.6_15_ma.npyPK!T+symw_rbio2.6_15_md.npyPK!d_!x+symw_rbio2.6_15_ma_pywtCoeffs.npyPK!o!+symw_rbio2.6_15_md_pywtCoeffs.npyPK!'D\+ppd_rbio2.6_15_ma.npyPK!c+ppd_rbio2.6_15_md.npyPK!'D\ +ppd_rbio2.6_15_ma_pywtCoeffs.npyPK!.  J+ppd_rbio2.6_15_md_pywtCoeffs.npyPK!Rd8x+sp1_rbio2.6_15_ma.npyPK!6+sp1_rbio2.6_15_md.npyPK!Rd8 +sp1_rbio2.6_15_ma_pywtCoeffs.npyPK![5 +sp1_rbio2.6_15_md_pywtCoeffs.npyPK!Qp+per_rbio2.6_15_ma.npyPK!U4lx +per_rbio2.6_15_md.npyPK!Qp +per_rbio2.6_15_ma_pywtCoeffs.npyPK!\ +per_rbio2.6_15_md_pywtCoeffs.npyPK! +asym_rbio2.6_15_ma.npyPK! +asym_rbio2.6_15_md.npyPK! !D+asym_rbio2.6_15_ma_pywtCoeffs.npyPK! ӑ!s+asym_rbio2.6_15_md_pywtCoeffs.npyPK! |+asymw_rbio2.6_15_ma.npyPK!+asymw_rbio2.6_15_md.npyPK! |"+asymw_rbio2.6_15_ma_pywtCoeffs.npyPK!z;"+asymw_rbio2.6_15_md_pywtCoeffs.npyPK!&)sL+zpd_rbio2.8_18_ma.npyPK!"6k+zpd_rbio2.8_18_md.npyPK!&)s +zpd_rbio2.8_18_ma_pywtCoeffs.npyPK!{S +zpd_rbio2.8_18_md_pywtCoeffs.npyPK!_N+sp0_rbio2.8_18_ma.npyPK!=S+sp0_rbio2.8_18_md.npyPK!_ +sp0_rbio2.8_18_ma_pywtCoeffs.npyPK!0Nv  +sp0_rbio2.8_18_md_pywtCoeffs.npyPK!]pP+sym_rbio2.8_18_ma.npyPK!Hs+sym_rbio2.8_18_md.npyPK!]p +sym_rbio2.8_18_ma_pywtCoeffs.npyPK!"  +sym_rbio2.8_18_md_pywtCoeffs.npyPK!kR+symw_rbio2.8_18_ma.npyPK!aI Y+symw_rbio2.8_18_md.npyPK!k!+symw_rbio2.8_18_ma_pywtCoeffs.npyPK!.!+symw_rbio2.8_18_md_pywtCoeffs.npyPK! X+ppd_rbio2.8_18_ma.npyPK!lC+ppd_rbio2.8_18_md.npyPK!  ,ppd_rbio2.8_18_ma_pywtCoeffs.npyPK!N ,ppd_rbio2.8_18_md_pywtCoeffs.npyPK!"YZ,sp1_rbio2.8_18_ma.npyPK![6,sp1_rbio2.8_18_md.npyPK!"Y ,sp1_rbio2.8_18_ma_pywtCoeffs.npyPK!0 ,sp1_rbio2.8_18_md_pywtCoeffs.npyPK!dN^\,per_rbio2.8_18_ma.npyPK!W ,per_rbio2.8_18_md.npyPK!dN^ R ,per_rbio2.8_18_ma_pywtCoeffs.npyPK!>< X ,per_rbio2.8_18_md_pywtCoeffs.npyPK!m^ ,asym_rbio2.8_18_ma.npyPK!!E ,asym_rbio2.8_18_md.npyPK!m!,asym_rbio2.8_18_ma_pywtCoeffs.npyPK!0!,asym_rbio2.8_18_md_pywtCoeffs.npyPK!D-d,asymw_rbio2.8_18_ma.npyPK! =,asymw_rbio2.8_18_md.npyPK!D-",asymw_rbio2.8_18_ma_pywtCoeffs.npyPK!T"&,asymw_rbio2.8_18_md_pywtCoeffs.npyPK!(sn,zpd_rbio2.8_19_ma.npyPK!탽,zpd_rbio2.8_19_md.npyPK!(s ,zpd_rbio2.8_19_ma_pywtCoeffs.npyPK! B,zpd_rbio2.8_19_md_pywtCoeffs.npyPK!tr,sp0_rbio2.8_19_ma.npyPK!m,sp0_rbio2.8_19_md.npyPK!tr ,sp0_rbio2.8_19_ma_pywtCoeffs.npyPK!G:w d,sp0_rbio2.8_19_md_pywtCoeffs.npyPK!# ,sym_rbio2.8_19_ma.npyPK!j!,sym_rbio2.8_19_md.npyPK!# 8#,sym_rbio2.8_19_ma_pywtCoeffs.npyPK!;&" $,sym_rbio2.8_19_md_pywtCoeffs.npyPK![ %,symw_rbio2.8_19_ma.npyPK! 6',symw_rbio2.8_19_md.npyPK![ !\(,symw_rbio2.8_19_ma_pywtCoeffs.npyPK!!),symw_rbio2.8_19_md_pywtCoeffs.npyPK!m9*,ppd_rbio2.8_19_ma.npyPK!=,,ppd_rbio2.8_19_md.npyPK!m9 -,ppd_rbio2.8_19_ma_pywtCoeffs.npyPK!H .,ppd_rbio2.8_19_md_pywtCoeffs.npyPK!V0,sp1_rbio2.8_19_ma.npyPK!_1,sp1_rbio2.8_19_md.npyPK!V 2,sp1_rbio2.8_19_ma_pywtCoeffs.npyPK!o  3,sp1_rbio2.8_19_md_pywtCoeffs.npyPK!j>5,per_rbio2.8_19_ma.npyPK!IA6,per_rbio2.8_19_md.npyPK!j D7,per_rbio2.8_19_ma_pywtCoeffs.npyPK!6 R8,per_rbio2.8_19_md_pywtCoeffs.npyPK!cR`9,asym_rbio2.8_19_ma.npyPK!a:,asym_rbio2.8_19_md.npyPK!cR!;,asym_rbio2.8_19_ma_pywtCoeffs.npyPK!E!7=,asym_rbio2.8_19_md_pywtCoeffs.npyPK!>,asymw_rbio2.8_19_ma.npyPK!&?,asymw_rbio2.8_19_md.npyPK!"A,asymw_rbio2.8_19_ma_pywtCoeffs.npyPK!"`B,asymw_rbio2.8_19_md_pywtCoeffs.npyPK!idC,zpd_rbio3.1_4_ma.npyPK!@zD,zpd_rbio3.1_4_md.npyPK!vDE,zpd_rbio3.1_4_ma_pywtCoeffs.npyPK!%yDF,zpd_rbio3.1_4_md_pywtCoeffs.npyPK!}(#F,sp0_rbio3.1_4_ma.npyPK!G,sp0_rbio3.1_4_md.npyPK!ʹyH,sp0_rbio3.1_4_ma_pywtCoeffs.npyPK!iWI,sp0_rbio3.1_4_md_pywtCoeffs.npyPK! Uژ,J,sym_rbio3.1_4_ma.npyPK!'tlXJ,sym_rbio3.1_4_md.npyPK!?veK,sym_rbio3.1_4_ma_pywtCoeffs.npyPK!xL,sym_rbio3.1_4_md_pywtCoeffs.npyPK!jM,symw_rbio3.1_4_ma.npyPK! x5N,symw_rbio3.1_4_md.npyPK!C O,symw_rbio3.1_4_ma_pywtCoeffs.npyPK! O,symw_rbio3.1_4_md_pywtCoeffs.npyPK!nP,ppd_rbio3.1_4_ma.npyPK!yØvQ,ppd_rbio3.1_4_md.npyPK!V{G@R,ppd_rbio3.1_4_ma_pywtCoeffs.npyPK!}Nj5S,ppd_rbio3.1_4_md_pywtCoeffs.npyPK!S,sp1_rbio3.1_4_ma.npyPK!}T,sp1_rbio3.1_4_md.npyPK!p ~U,sp1_rbio3.1_4_ma_pywtCoeffs.npyPK!7^SV,sp1_rbio3.1_4_md_pywtCoeffs.npyPK!_Dx(W,per_rbio3.1_4_ma.npyPK!aXW,per_rbio3.1_4_md.npyPK!ICCX,per_rbio3.1_4_ma_pywtCoeffs.npyPK!fyY,per_rbio3.1_4_md_pywtCoeffs.npyPK!:FZ,asym_rbio3.1_4_ma.npyPK!Ŭs[,asym_rbio3.1_4_md.npyPK!)# [,asym_rbio3.1_4_ma_pywtCoeffs.npyPK!'JU \,asym_rbio3.1_4_md_pywtCoeffs.npyPK!|q],asymw_rbio3.1_4_ma.npyPK!"vpT^,asymw_rbio3.1_4_md.npyPK!d̘! _,asymw_rbio3.1_4_ma_pywtCoeffs.npyPK!LcӘ!_,asymw_rbio3.1_4_md_pywtCoeffs.npyPK!5n`,zpd_rbio3.1_5_ma.npyPK!ˠa,zpd_rbio3.1_5_md.npyPK!krb,zpd_rbio3.1_5_ma_pywtCoeffs.npyPK!Oc,zpd_rbio3.1_5_md_pywtCoeffs.npyPK!y>,d,sp0_rbio3.1_5_ma.npyPK!͠d,sp0_rbio3.1_5_md.npyPK!~e,sp0_rbio3.1_5_ma_pywtCoeffs.npyPK!ôLf,sp0_rbio3.1_5_md_pywtCoeffs.npyPK!y틠g,sym_rbio3.1_5_ma.npyPK!\h,sym_rbio3.1_5_md.npyPK!y.i,sym_rbio3.1_5_ma_pywtCoeffs.npyPK! j,sym_rbio3.1_5_md_pywtCoeffs.npyPK!@|nj,symw_rbio3.1_5_ma.npyPK!6k,symw_rbio3.1_5_md.npyPK!)x l,symw_rbio3.1_5_ma_pywtCoeffs.npyPK!(E lm,symw_rbio3.1_5_md_pywtCoeffs.npyPK!݌kJn,ppd_rbio3.1_5_ma.npyPK!N(o,ppd_rbio3.1_5_md.npyPK!] o,ppd_rbio3.1_5_ma_pywtCoeffs.npyPK!bݠp,ppd_rbio3.1_5_md_pywtCoeffs.npyPK!4q,sp1_rbio3.1_5_ma.npyPK!Mzr,sp1_rbio3.1_5_md.npyPK!R\Ls,sp1_rbio3.1_5_ma_pywtCoeffs.npyPK!8:F۠)t,sp1_rbio3.1_5_md_pywtCoeffs.npyPK!;u,per_rbio3.1_5_ma.npyPK!cu,per_rbio3.1_5_md.npyPK!v,per_rbio3.1_5_ma_pywtCoeffs.npyPK!ow,per_rbio3.1_5_md_pywtCoeffs.npyPK!{vDx,asym_rbio3.1_5_ma.npyPK!y,asym_rbio3.1_5_md.npyPK!{JBM y,asym_rbio3.1_5_ma_pywtCoeffs.npyPK! z,asym_rbio3.1_5_md_pywtCoeffs.npyPK!HBѠ{,asymw_rbio3.1_5_ma.npyPK!rz|,asymw_rbio3.1_5_md.npyPK!3!N},asymw_rbio3.1_5_ma_pywtCoeffs.npyPK!߾!-~,asymw_rbio3.1_5_md_pywtCoeffs.npyPK!!I ,zpd_rbio3.3_8_ma.npyPK!ų,zpd_rbio3.3_8_md.npyPK!R ',zpd_rbio3.3_8_ma_pywtCoeffs.npyPK!0Ձ,zpd_rbio3.3_8_md_pywtCoeffs.npyPK!.ʂ,sp0_rbio3.3_8_ma.npyPK!#O,sp0_rbio3.3_8_md.npyPK!,sp0_rbio3.3_8_ma_pywtCoeffs.npyPK!,sp0_rbio3.3_8_md_pywtCoeffs.npyPK!B ,sym_rbio3.3_8_ma.npyPK! LYr,sym_rbio3.3_8_md.npyPK!03\,sym_rbio3.3_8_ma_pywtCoeffs.npyPK!aeEQ,sym_rbio3.3_8_md_pywtCoeffs.npyPK!6ԸF,symw_rbio3.3_8_ma.npyPK!ܣ51,symw_rbio3.3_8_md.npyPK!ܸ ,symw_rbio3.3_8_ma_pywtCoeffs.npyPK! ,symw_rbio3.3_8_md_pywtCoeffs.npyPK!G?I,ppd_rbio3.3_8_ma.npyPK!Dh,ppd_rbio3.3_8_md.npyPK!Uϸ܏,ppd_rbio3.3_8_ma_pywtCoeffs.npyPK!Dhѐ,ppd_rbio3.3_8_md_pywtCoeffs.npyPK!Uv+Ƒ,sp1_rbio3.3_8_ma.npyPK!e,sp1_rbio3.3_8_md.npyPK!bK,sp1_rbio3.3_8_ma_pywtCoeffs.npyPK!t,sp1_rbio3.3_8_md_pywtCoeffs.npyPK!8d.,per_rbio3.3_8_ma.npyPK!.V,per_rbio3.3_8_md.npyPK!YD(,per_rbio3.3_8_ma_pywtCoeffs.npyPK!S~,per_rbio3.3_8_md_pywtCoeffs.npyPK!Q7,asym_rbio3.3_8_ma.npyPK!5~͙,asym_rbio3.3_8_md.npyPK![K ,asym_rbio3.3_8_ma_pywtCoeffs.npyPK!eM ,asym_rbio3.3_8_md_pywtCoeffs.npyPK!GŎ,asymw_rbio3.3_8_ma.npyPK!,asymw_rbio3.3_8_md.npyPK!y߸!|,asymw_rbio3.3_8_ma_pywtCoeffs.npyPK!ߙ!s,asymw_rbio3.3_8_md_pywtCoeffs.npyPK!0&j,zpd_rbio3.3_9_ma.npyPK!Ss\,zpd_rbio3.3_9_md.npyPK!dN,zpd_rbio3.3_9_ma_pywtCoeffs.npyPK!;EK,zpd_rbio3.3_9_md_pywtCoeffs.npyPK!ÙH,sp0_rbio3.3_9_ma.npyPK!Ň:,sp0_rbio3.3_9_md.npyPK!W,,sp0_rbio3.3_9_ma_pywtCoeffs.npyPK!6),sp0_rbio3.3_9_md_pywtCoeffs.npyPK!݅&,sym_rbio3.3_9_ma.npyPK!n~,sym_rbio3.3_9_md.npyPK! ,sym_rbio3.3_9_ma_pywtCoeffs.npyPK!4 Z3,sym_rbio3.3_9_md_pywtCoeffs.npyPK!B,symw_rbio3.3_9_ma.npyPK!c.,symw_rbio3.3_9_md.npyPK!1 ,symw_rbio3.3_9_ma_pywtCoeffs.npyPK!Ug] ,symw_rbio3.3_9_md_pywtCoeffs.npyPK!\_,ppd_rbio3.3_9_ma.npyPK!&ذ,ppd_rbio3.3_9_md.npyPK! _ʱ,ppd_rbio3.3_9_ma_pywtCoeffs.npyPK!,6"Dz,ppd_rbio3.3_9_md_pywtCoeffs.npyPK!vssij,sp1_rbio3.3_9_ma.npyPK! 9A,sp1_rbio3.3_9_md.npyPK!<5,sp1_rbio3.3_9_ma_pywtCoeffs.npyPK!\x,sp1_rbio3.3_9_md_pywtCoeffs.npyPK!1v],per_rbio3.3_9_ma.npyPK!,|,per_rbio3.3_9_md.npyPK!ޱuV,per_rbio3.3_9_ma_pywtCoeffs.npyPK!a;,per_rbio3.3_9_md_pywtCoeffs.npyPK! { ,asym_rbio3.3_9_ma.npyPK!jq,asym_rbio3.3_9_md.npyPK!]X ,asym_rbio3.3_9_ma_pywtCoeffs.npyPK!K ,asym_rbio3.3_9_md_pywtCoeffs.npyPK!>%,asymw_rbio3.3_9_ma.npyPK!I&,asymw_rbio3.3_9_md.npyPK!qA!,asymw_rbio3.3_9_ma_pywtCoeffs.npyPK!n^S!,asymw_rbio3.3_9_md_pywtCoeffs.npyPK!b,zpd_rbio3.5_12_ma.npyPK!$,zpd_rbio3.5_12_md.npyPK!Y ,zpd_rbio3.5_12_ma_pywtCoeffs.npyPK! ,zpd_rbio3.5_12_md_pywtCoeffs.npyPK!9*,sp0_rbio3.5_12_ma.npyPK!@15,sp0_rbio3.5_12_md.npyPK!_t @,sp0_rbio3.5_12_ma_pywtCoeffs.npyPK!@1 V,sp0_rbio3.5_12_md_pywtCoeffs.npyPK!۵@l,sym_rbio3.5_12_ma.npyPK!<w,sym_rbio3.5_12_md.npyPK!" ,sym_rbio3.5_12_ma_pywtCoeffs.npyPK![w: ,sym_rbio3.5_12_md_pywtCoeffs.npyPK!a#,symw_rbio3.5_12_ma.npyPK!.,symw_rbio3.5_12_md.npyPK!!,symw_rbio3.5_12_ma_pywtCoeffs.npyPK!.!,symw_rbio3.5_12_md_pywtCoeffs.npyPK!h4,ppd_rbio3.5_12_ma.npyPK!k\,ppd_rbio3.5_12_md.npyPK!p:q  ,ppd_rbio3.5_12_ma_pywtCoeffs.npyPK!k\  ,ppd_rbio3.5_12_md_pywtCoeffs.npyPK!K6,sp1_rbio3.5_12_ma.npyPK!WnA,sp1_rbio3.5_12_md.npyPK!1/ L,sp1_rbio3.5_12_ma_pywtCoeffs.npyPK!;z b,sp1_rbio3.5_12_md_pywtCoeffs.npyPK! f-x,per_rbio3.5_12_ma.npyPK!fΰ[,per_rbio3.5_12_md.npyPK!I >,per_rbio3.5_12_ma_pywtCoeffs.npyPK!fh ,,per_rbio3.5_12_md_pywtCoeffs.npyPK!ь,asym_rbio3.5_12_ma.npyPK!qp&,asym_rbio3.5_12_md.npyPK!8/_!2,asym_rbio3.5_12_ma_pywtCoeffs.npyPK!qp!I,asym_rbio3.5_12_md_pywtCoeffs.npyPK!`,asymw_rbio3.5_12_ma.npyPK!zS0m,asymw_rbio3.5_12_md.npyPK!"z,asymw_rbio3.5_12_ma_pywtCoeffs.npyPK!3C",asymw_rbio3.5_12_md_pywtCoeffs.npyPK!\ B,zpd_rbio3.5_13_ma.npyPK!P,zpd_rbio3.5_13_md.npyPK!D ,zpd_rbio3.5_13_ma_pywtCoeffs.npyPK!ϕ ,zpd_rbio3.5_13_md_pywtCoeffs.npyPK!S ,sp0_rbio3.5_13_ma.npyPK!{,sp0_rbio3.5_13_md.npyPK!Mx 2,sp0_rbio3.5_13_ma_pywtCoeffs.npyPK!sr P,sp0_rbio3.5_13_md_pywtCoeffs.npyPK!Bn,sym_rbio3.5_13_ma.npyPK!L,sym_rbio3.5_13_md.npyPK! ~ ,sym_rbio3.5_13_ma_pywtCoeffs.npyPK!J ,sym_rbio3.5_13_md_pywtCoeffs.npyPK!g9ϲ,symw_rbio3.5_13_ma.npyPK!/,symw_rbio3.5_13_md.npyPK!!,symw_rbio3.5_13_ma_pywtCoeffs.npyPK!҉4I!,symw_rbio3.5_13_md_pywtCoeffs.npyPK!l6,ppd_rbio3.5_13_ma.npyPK!@8PI,ppd_rbio3.5_13_md.npyPK!1h \,ppd_rbio3.5_13_ma_pywtCoeffs.npyPK!pǹ z,ppd_rbio3.5_13_md_pywtCoeffs.npyPK!,z!-asym_rbio3.5_13_ma_pywtCoeffs.npyPK!*! -asym_rbio3.5_13_md_pywtCoeffs.npyPK! k" -asymw_rbio3.5_13_ma.npyPK! 7 -asymw_rbio3.5_13_md.npyPK!/["L -asymw_rbio3.5_13_ma_pywtCoeffs.npyPK!}"l-asymw_rbio3.5_13_md_pywtCoeffs.npyPK!>n-zpd_rbio3.7_16_ma.npyPK!2[-zpd_rbio3.7_16_md.npyPK!t -zpd_rbio3.7_16_ma_pywtCoeffs.npyPK!2[ -zpd_rbio3.7_16_md_pywtCoeffs.npyPK!N-sp0_rbio3.7_16_ma.npyPK!y-sp0_rbio3.7_16_md.npyPK!+ -sp0_rbio3.7_16_ma_pywtCoeffs.npyPK! -sp0_rbio3.7_16_md_pywtCoeffs.npyPK!SA-sym_rbio3.7_16_ma.npyPK!gn(;-sym_rbio3.7_16_md.npyPK!zQ f-sym_rbio3.7_16_ma_pywtCoeffs.npyPK!gn( -sym_rbio3.7_16_md_pywtCoeffs.npyPK!qf-symw_rbio3.7_16_ma.npyPK!T-symw_rbio3.7_16_md.npyPK!n!* -symw_rbio3.7_16_ma_pywtCoeffs.npyPK!aK!a!-symw_rbio3.7_16_md_pywtCoeffs.npyPK!x4"-ppd_rbio3.7_16_ma.npyPK!Y,#-ppd_rbio3.7_16_md.npyPK!p $-ppd_rbio3.7_16_ma_pywtCoeffs.npyPK!Y, $&-ppd_rbio3.7_16_md_pywtCoeffs.npyPK!nYZ'-sp1_rbio3.7_16_ma.npyPK! (-sp1_rbio3.7_16_md.npyPK!J )-sp1_rbio3.7_16_ma_pywtCoeffs.npyPK!g *-sp1_rbio3.7_16_md_pywtCoeffs.npyPK!"c,,-per_rbio3.7_16_ma.npyPK!4--per_rbio3.7_16_md.npyPK!E .-per_rbio3.7_16_ma_pywtCoeffs.npyPK!Rbk /-per_rbio3.7_16_md_pywtCoeffs.npyPK!t//-asym_rbio3.7_16_ma.npyPK!s*1-asym_rbio3.7_16_md.npyPK!t4!V2-asym_rbio3.7_16_ma_pywtCoeffs.npyPK!s!3-asym_rbio3.7_16_md_pywtCoeffs.npyPK!4-asymw_rbio3.7_16_ma.npyPK!k><5-asymw_rbio3.7_16_md.npyPK!+"7-asymw_rbio3.7_16_ma_pywtCoeffs.npyPK!k><"V8-asymw_rbio3.7_16_md_pywtCoeffs.npyPK!E*9-zpd_rbio3.7_17_ma.npyPK!g 1:-zpd_rbio3.7_17_md.npyPK!mE ;-zpd_rbio3.7_17_ma_pywtCoeffs.npyPK! 2=-zpd_rbio3.7_17_md_pywtCoeffs.npyPK!cp>-sp0_rbio3.7_17_ma.npyPK!*?-sp0_rbio3.7_17_md.npyPK!uX  @-sp0_rbio3.7_17_ma_pywtCoeffs.npyPK!) B-sp0_rbio3.7_17_md_pywtCoeffs.npyPK!RC-sym_rbio3.7_17_ma.npyPK!TD-sym_rbio3.7_17_md.npyPK!N K E-sym_rbio3.7_17_ma_pywtCoeffs.npyPK!e F-sym_rbio3.7_17_md_pywtCoeffs.npyPK!#4H-symw_rbio3.7_17_ma.npyPK!B=bhI-symw_rbio3.7_17_md.npyPK!d!J-symw_rbio3.7_17_ma_pywtCoeffs.npyPK!T!K-symw_rbio3.7_17_md_pywtCoeffs.npyPK! &M-ppd_rbio3.7_17_ma.npyPK!MN-ppd_rbio3.7_17_md.npyPK!!] O-ppd_rbio3.7_17_ma_pywtCoeffs.npyPK!! . P-ppd_rbio3.7_17_md_pywtCoeffs.npyPK!Q-sp1_rbio3.7_17_ma.npyPK!]fi/S-sp1_rbio3.7_17_md.npyPK!> bT-sp1_rbio3.7_17_ma_pywtCoeffs.npyPK!*e U-sp1_rbio3.7_17_md_pywtCoeffs.npyPK!)7V-per_rbio3.7_17_ma.npyPK!>EW-per_rbio3.7_17_md.npyPK!K X-per_rbio3.7_17_ma_pywtCoeffs.npyPK!>E Y-per_rbio3.7_17_md_pywtCoeffs.npyPK!AZ-asym_rbio3.7_17_ma.npyPK!~\-asym_rbio3.7_17_md.npyPK!9!H]-asym_rbio3.7_17_ma_pywtCoeffs.npyPK!~!^-asym_rbio3.7_17_md_pywtCoeffs.npyPK!׋_-asymw_rbio3.7_17_ma.npyPK!}`-asymw_rbio3.7_17_md.npyPK!Q"0b-asymw_rbio3.7_17_ma_pywtCoeffs.npyPK! "pc-asymw_rbio3.7_17_md_pywtCoeffs.npyPK!{pd-zpd_rbio3.9_20_ma.npyPK!Xe-zpd_rbio3.9_20_md.npyPK!x Fg-zpd_rbio3.9_20_ma_pywtCoeffs.npyPK!X h-zpd_rbio3.9_20_md_pywtCoeffs.npyPK!<-i-sp0_rbio3.9_20_ma.npyPK!SdR=k-sp0_rbio3.9_20_md.npyPK! l-sp0_rbio3.9_20_ma_pywtCoeffs.npyPK! m-sp0_rbio3.9_20_md_pywtCoeffs.npyPK!|4o-sym_rbio3.9_20_ma.npyPK!IYkp-sym_rbio3.9_20_md.npyPK!Y] q-sym_rbio3.9_20_ma_pywtCoeffs.npyPK!gHj  s-sym_rbio3.9_20_md_pywtCoeffs.npyPK!vt-symw_rbio3.9_20_ma.npyPK!&Gu-symw_rbio3.9_20_md.npyPK!M!w-symw_rbio3.9_20_ma_pywtCoeffs.npyPK!,z!ex-symw_rbio3.9_20_md_pywtCoeffs.npyPK!駠y-ppd_rbio3.9_20_ma.npyPK!{\{-ppd_rbio3.9_20_md.npyPK!\X8J R|-ppd_rbio3.9_20_ma_pywtCoeffs.npyPK!{\ }-ppd_rbio3.9_20_md_pywtCoeffs.npyPK!~-sp1_rbio3.9_20_ma.npyPK!P UI-sp1_rbio3.9_20_md.npyPK!r; -sp1_rbio3.9_20_ma_pywtCoeffs.npyPK!~ -sp1_rbio3.9_20_md_pywtCoeffs.npyPK!C@-per_rbio3.9_20_ma.npyPK!Ym_C-per_rbio3.9_20_md.npyPK!SrQ F-per_rbio3.9_20_ma_pywtCoeffs.npyPK!Ym_ T-per_rbio3.9_20_md_pywtCoeffs.npyPK!{b-asym_rbio3.9_20_ma.npyPK!]-asym_rbio3.9_20_md.npyPK!Vo !-asym_rbio3.9_20_ma_pywtCoeffs.npyPK!]!Q-asym_rbio3.9_20_md_pywtCoeffs.npyPK!WqN-asymw_rbio3.9_20_ma.npyPK!-asymw_rbio3.9_20_md.npyPK!L,,}"B-asymw_rbio3.9_20_ma_pywtCoeffs.npyPK!"-asymw_rbio3.9_20_md_pywtCoeffs.npyPK!iy  -zpd_rbio3.9_21_ma.npyPK!  E-zpd_rbio3.9_21_md.npyPK![%   -zpd_rbio3.9_21_ma_pywtCoeffs.npyPK!L?w   -zpd_rbio3.9_21_md_pywtCoeffs.npyPK!9  T-sp0_rbio3.9_21_ma.npyPK!Mp S  -sp0_rbio3.9_21_md.npyPK!U   -sp0_rbio3.9_21_ma_pywtCoeffs.npyPK!7I   X-sp0_rbio3.9_21_md_pywtCoeffs.npyPK!$s  -sym_rbio3.9_21_ma.npyPK!   -sym_rbio3.9_21_md.npyPK!l1   \-sym_rbio3.9_21_ma_pywtCoeffs.npyPK!YJ*V   -sym_rbio3.9_21_md_pywtCoeffs.npyPK!\2%&  -symw_rbio3.9_21_ma.npyPK!ܪ*  l-symw_rbio3.9_21_md.npyPK!a  !-symw_rbio3.9_21_ma_pywtCoeffs.npyPK!.  !-symw_rbio3.9_21_md_pywtCoeffs.npyPK!BV  ~-ppd_rbio3.9_21_ma.npyPK!  ѩ-ppd_rbio3.9_21_md.npyPK!   $-ppd_rbio3.9_21_ma_pywtCoeffs.npyPK!   -ppd_rbio3.9_21_md_pywtCoeffs.npyPK!4t  -sp1_rbio3.9_21_ma.npyPK!g  3-sp1_rbio3.9_21_md.npyPK!>E   -sp1_rbio3.9_21_ma_pywtCoeffs.npyPK!|   -sp1_rbio3.9_21_md_pywtCoeffs.npyPK!FiB-per_rbio3.9_21_ma.npyPK!UM-per_rbio3.9_21_md.npyPK!Rܛ X-per_rbio3.9_21_ma_pywtCoeffs.npyPK!U n-per_rbio3.9_21_md_pywtCoeffs.npyPK!<  -asym_rbio3.9_21_ma.npyPK!V  ظ-asym_rbio3.9_21_md.npyPK!eK  !,-asym_rbio3.9_21_ma_pywtCoeffs.npyPK!V  !-asym_rbio3.9_21_md_pywtCoeffs.npyPK!i[@  -asymw_rbio3.9_21_ma.npyPK!  ?-asymw_rbio3.9_21_md.npyPK! +  "-asymw_rbio3.9_21_ma_pywtCoeffs.npyPK!$J  "-asymw_rbio3.9_21_md_pywtCoeffs.npyPK!F_T-zpd_rbio4.4_10_ma.npyPK!nO-zpd_rbio4.4_10_md.npyPK!F_ J-zpd_rbio4.4_10_ma_pywtCoeffs.npyPK!n P-zpd_rbio4.4_10_md_pywtCoeffs.npyPK!:YV-sp0_rbio4.4_10_ma.npyPK!|SQ-sp0_rbio4.4_10_md.npyPK!:Y L-sp0_rbio4.4_10_ma_pywtCoeffs.npyPK!|S R-sp0_rbio4.4_10_md_pywtCoeffs.npyPK!ZX-sym_rbio4.4_10_ma.npyPK!=S-sym_rbio4.4_10_md.npyPK!Z N-sym_rbio4.4_10_ma_pywtCoeffs.npyPK!= T-sym_rbio4.4_10_md_pywtCoeffs.npyPK!+7Z-symw_rbio4.4_10_ma.npyPK!3dV-symw_rbio4.4_10_md.npyPK!+7!R-symw_rbio4.4_10_ma_pywtCoeffs.npyPK!3d!Y-symw_rbio4.4_10_md_pywtCoeffs.npyPK!5>`-ppd_rbio4.4_10_ma.npyPK!P>[-ppd_rbio4.4_10_md.npyPK!5> V-ppd_rbio4.4_10_ma_pywtCoeffs.npyPK!P> \-ppd_rbio4.4_10_md_pywtCoeffs.npyPK!Xb-sp1_rbio4.4_10_ma.npyPK!g]-sp1_rbio4.4_10_md.npyPK!X X-sp1_rbio4.4_10_ma_pywtCoeffs.npyPK!g ^-sp1_rbio4.4_10_md_pywtCoeffs.npyPK!Td-per_rbio4.4_10_ma.npyPK!!Ψ?-per_rbio4.4_10_md.npyPK!T -per_rbio4.4_10_ma_pywtCoeffs.npyPK!!Ψ -per_rbio4.4_10_md_pywtCoeffs.npyPK!P>-asym_rbio4.4_10_ma.npyPK!$-asym_rbio4.4_10_md.npyPK!P>!-asym_rbio4.4_10_ma_pywtCoeffs.npyPK!$!-asym_rbio4.4_10_md_pywtCoeffs.npyPK!c-asymw_rbio4.4_10_ma.npyPK![@-asymw_rbio4.4_10_md.npyPK!c"-asymw_rbio4.4_10_ma_pywtCoeffs.npyPK![@"-asymw_rbio4.4_10_md_pywtCoeffs.npyPK!+ -zpd_rbio4.4_11_ma.npyPK!n-zpd_rbio4.4_11_md.npyPK!+ -zpd_rbio4.4_11_ma_pywtCoeffs.npyPK!n  -zpd_rbio4.4_11_md_pywtCoeffs.npyPK!-sp0_rbio4.4_11_ma.npyPK!ˢd-sp0_rbio4.4_11_md.npyPK! -sp0_rbio4.4_11_ma_pywtCoeffs.npyPK!ˢd ,-sp0_rbio4.4_11_md_pywtCoeffs.npyPK!a:'!:-sym_rbio4.4_11_ma.npyPK!=-sym_rbio4.4_11_md.npyPK!a:'! @-sym_rbio4.4_11_ma_pywtCoeffs.npyPK! N-sym_rbio4.4_11_md_pywtCoeffs.npyPK!x\-symw_rbio4.4_11_ma.npyPK!Zg`-symw_rbio4.4_11_md.npyPK!x!d-symw_rbio4.4_11_ma_pywtCoeffs.npyPK!Zg!s-symw_rbio4.4_11_md_pywtCoeffs.npyPK! -ppd_rbio4.4_11_ma.npyPK!-ppd_rbio4.4_11_md.npyPK! -ppd_rbio4.4_11_ma_pywtCoeffs.npyPK! -ppd_rbio4.4_11_md_pywtCoeffs.npyPK!(-sp1_rbio4.4_11_ma.npyPK!!-sp1_rbio4.4_11_md.npyPK!( -sp1_rbio4.4_11_ma_pywtCoeffs.npyPK!! -sp1_rbio4.4_11_md_pywtCoeffs.npyPK!IW!-per_rbio4.4_11_ma.npyPK!/>-per_rbio4.4_11_md.npyPK!IW! .per_rbio4.4_11_ma_pywtCoeffs.npyPK!/> z.per_rbio4.4_11_md_pywtCoeffs.npyPK!bmhh.asym_rbio4.4_11_ma.npyPK!Ex l.asym_rbio4.4_11_md.npyPK!bmh!p.asym_rbio4.4_11_ma_pywtCoeffs.npyPK!Ex !.asym_rbio4.4_11_md_pywtCoeffs.npyPK!<.asymw_rbio4.4_11_ma.npyPK!.asymw_rbio4.4_11_md.npyPK!<".asymw_rbio4.4_11_ma_pywtCoeffs.npyPK!" .asymw_rbio4.4_11_md_pywtCoeffs.npyPK!D .zpd_rbio5.5_12_ma.npyPK!W .zpd_rbio5.5_12_md.npyPK!D  .zpd_rbio5.5_12_ma_pywtCoeffs.npyPK!W  .zpd_rbio5.5_12_md_pywtCoeffs.npyPK!!2).sp0_rbio5.5_12_ma.npyPK!U[.sp0_rbio5.5_12_md.npyPK!!2) .sp0_rbio5.5_12_ma_pywtCoeffs.npyPK!U[ &.sp0_rbio5.5_12_md_pywtCoeffs.npyPK!+9°<.sym_rbio5.5_12_ma.npyPK!ڷG.sym_rbio5.5_12_md.npyPK!+9° R.sym_rbio5.5_12_ma_pywtCoeffs.npyPK!ڷ h.sym_rbio5.5_12_md_pywtCoeffs.npyPK!ͮ~.symw_rbio5.5_12_ma.npyPK!A(.symw_rbio5.5_12_md.npyPK!ͮ!.symw_rbio5.5_12_ma_pywtCoeffs.npyPK!A(!.symw_rbio5.5_12_md_pywtCoeffs.npyPK!¦$2.ppd_rbio5.5_12_ma.npyPK!.ppd_rbio5.5_12_md.npyPK!¦$2 .ppd_rbio5.5_12_ma_pywtCoeffs.npyPK! .ppd_rbio5.5_12_md_pywtCoeffs.npyPK!ݯm .sp1_rbio5.5_12_ma.npyPK!U!.sp1_rbio5.5_12_md.npyPK!ݯm ".sp1_rbio5.5_12_ma_pywtCoeffs.npyPK!U 2#.sp1_rbio5.5_12_md_pywtCoeffs.npyPK!a'zH$.per_rbio5.5_12_ma.npyPK!C5+%.per_rbio5.5_12_md.npyPK!a'z &.per_rbio5.5_12_ma_pywtCoeffs.npyPK!C5 &.per_rbio5.5_12_md_pywtCoeffs.npyPK!u`‹'.asym_rbio5.5_12_ma.npyPK!(.asym_rbio5.5_12_md.npyPK!u`‹!*.asym_rbio5.5_12_ma_pywtCoeffs.npyPK!!+.asym_rbio5.5_12_md_pywtCoeffs.npyPK!u0,.asymw_rbio5.5_12_ma.npyPK!fch=-.asymw_rbio5.5_12_md.npyPK!u"J..asymw_rbio5.5_12_ma_pywtCoeffs.npyPK!fch"b/.asymw_rbio5.5_12_md_pywtCoeffs.npyPK!Dzz0.zpd_rbio5.5_13_ma.npyPK!1.zpd_rbio5.5_13_md.npyPK!Dz 2.zpd_rbio5.5_13_ma_pywtCoeffs.npyPK! 3.zpd_rbio5.5_13_md_pywtCoeffs.npyPK!!4.sp0_rbio5.5_13_ma.npyPK!!˯5.sp0_rbio5.5_13_md.npyPK!! 7.sp0_rbio5.5_13_ma_pywtCoeffs.npyPK!!˯  8.sp0_rbio5.5_13_md_pywtCoeffs.npyPK!sK>9.sym_rbio5.5_13_ma.npyPK!ʺQ:.sym_rbio5.5_13_md.npyPK!sK d;.sym_rbio5.5_13_ma_pywtCoeffs.npyPK!ʺ <.sym_rbio5.5_13_md_pywtCoeffs.npyPK!+=.symw_rbio5.5_13_ma.npyPK!H>.symw_rbio5.5_13_md.npyPK!+!?.symw_rbio5.5_13_ma_pywtCoeffs.npyPK!H!@.symw_rbio5.5_13_md_pywtCoeffs.npyPK!LwB.ppd_rbio5.5_13_ma.npyPK!9FC.ppd_rbio5.5_13_md.npyPK!Lw ,D.ppd_rbio5.5_13_ma_pywtCoeffs.npyPK!9F JE.ppd_rbio5.5_13_md_pywtCoeffs.npyPK!ohF.sp1_rbio5.5_13_ma.npyPK!?{G.sp1_rbio5.5_13_md.npyPK!o H.sp1_rbio5.5_13_ma_pywtCoeffs.npyPK!? I.sp1_rbio5.5_13_md_pywtCoeffs.npyPK!MJ.per_rbio5.5_13_ma.npyPK!ʢڀK.per_rbio5.5_13_md.npyPK!M L.per_rbio5.5_13_ma_pywtCoeffs.npyPK!ʢڀ M.per_rbio5.5_13_md_pywtCoeffs.npyPK!Ī%N.asym_rbio5.5_13_ma.npyPK!;O.asym_rbio5.5_13_md.npyPK!Ī%!P.asym_rbio5.5_13_ma_pywtCoeffs.npyPK!;!Q.asym_rbio5.5_13_md_pywtCoeffs.npyPK!MR.asymw_rbio5.5_13_ma.npyPK!ӕ;T.asymw_rbio5.5_13_md.npyPK!M"U.asymw_rbio5.5_13_ma_pywtCoeffs.npyPK!ӕ;".sym_rbio6.8_19_md.npyPK!h H.sym_rbio6.8_19_ma_pywtCoeffs.npyPK!gk> .sym_rbio6.8_19_md_pywtCoeffs.npyPK!l.symw_rbio6.8_19_ma.npyPK!O8(.symw_rbio6.8_19_md.npyPK!l!l.symw_rbio6.8_19_ma_pywtCoeffs.npyPK!O8!.symw_rbio6.8_19_md_pywtCoeffs.npyPK! .ppd_rbio6.8_19_ma.npyPK!M.ppd_rbio6.8_19_md.npyPK! .ppd_rbio6.8_19_ma_pywtCoeffs.npyPK! ޛ.ppd_rbio6.8_19_md_pywtCoeffs.npyPK!4?czV5?6g'6?~Ы6?j\G7? VAC8?&`Uq 9?9?2nM:?7&;?ȌB?,@?m9@? eԸ\lA?!t|<-B?JQB?mٯtC?D?7E?>F?K &H?ҖvI?b6J?jxL?gP0N?+ P?i"_ Q?;Y=R?iDԝS?63ZT?0ՅV?l4EKX?|GZ?j孄\?fQ _?7D`?5lb?oѡsd?0㒚Nf?&i?z(k?lDo?zq?Ws? Iwv?ɔyy?16 }? i|H?y(/? !]ć?q<9? O?Uq{?4ݭe?X?g=?P ?cwA2?t?ogU&?z3?֒ ?XV?mr?Dž?WFa`?|.@#*@ҥ?mrU??e?ȁ^a?c6?x6ː@@=???*A?S>ڇ?z&?O>̊?U?6 :U?s ??Ycdm? =?aW?Fb ?-(?)O?Txp?c:?]:?y;ѩ?P \}ډ?PZ3T?0⏽?JB?޺ ??#?-j?,R?B7U?ՀAD?xivC)?k٫~,?ѸL?3霒?C!݀?(OL?R9ց?N"z?G?:?V ?DKȔ?fa}0?=:q?-rو?L+@m?90?/m)?sN.?v j?%tu̒? ߨY?GJ?Yn?D:H?Qc̜?Q|X?Ѵgu?pR?*w?-S?u˪?EC ?@?"mTM?0kW?9q =?9m?6K`x? ߃˼?{$+;?ߏ?ܭx?~?\4?mU?J?ک?<\<?y[2?hM?"_ L?!@)IQ @S-/ @^?_̖?4!?*(??$&ϖ?I+@ȫ% @t5P@w@ ⭢@c]›@pq๝?!qq?~r?8?83Ň?u)?pNy?@R[?I dI?}R?7B?WF?@$3? ?v(Y?v )?9N%??tb?AZ?ey?%xf?XojQ?MX?Ti?at ?t.?rz?n>?/?]?L?A?7鋿b?Xf'?\`~?b?HCK? hF?V?3Sy)z??7?"?'xf?8yN?YTn|5?hڬ?Lޡ9?H4?"_?afY???vǖ?n4?&t2?kƐ?3DK?%Nɉ?J杨?P-@S? ϙ?X DS?RBM%ƚ?kV?TZ5F?_Nȗ??Ng1Z ?2;? hw?66tԼ?D ?ԥna?T?bGr%?)6?A?43?C1?~?|?A{? Vz?Iۘn/z? =q_y?JNx?jUx?7w?k6[3w?)v?~uC$v?Ryu?w&u?`at?B^:t?o?s?{V]s?xb]r? ^r?+$,r?Qq?Xrq?\ގQq?n%ےp?psp?`K=$p?ίo?2Jo?%)n?CIn?$9 m?p|Qm?'nl?W!l?V"툫k?h`Ak?QTIj?Ɵ}j?!j?x𔷩i?H!zi?0gg-i?{}h?V2slh?lGMz(z?:N?Ͻ?rI? +^?5n_??,/ ѫ?<]?U%6s?d}?fg&?p-?P.?'eD"?%t?W? BƜq? $f䝥?{ 1?K]?@N6?MFSq?pv?-M?oep1?U?jeDz?lboz?IPG\?4͒r?Ɍ?诅?T|??w?5??`q}?\I}{?nRz?<qx? =v?6lu?l(kt?tPs?5[Nr?Q]#dq??p?EƝo?b^q?n?*m?{dk?$$j?'#i?jP2i?Z~h?xwg?3yZg?G~l.f?Hf?rYGxCf?-f?@^ e?fU6e?ae?z, f?&ΰ=f?f?!`bf?>&hg?mI/h?!rh?>i? 6ňj?kSϪk?X56\l?dkHxn?tp?Fq?UKV2r?k{s?3t?zv?SzUx?:{z?{}?s(E?r_?0??]ʌ?b@b?q0L'? f^?UR?ht?#ݫ? RQE,?2o ??{O2p?+sީ?ݐm???dZ~^? @x?IM?}ش#t@A[)!? ??{c0U?%?}>ή?(~9?Yg?Şʈb?Y7(?*A?6<_2|?d Œ?.CU?m ȑ?=jJ??pa4sl? 7U? W@f.0 @PGm@y@-y0?\ؾNO?Hڏ??Qc?ґF?yg?-%???mzN?G@?We<?qT̾?nEZC?b-?Ot6?q#f?fK?.A$=? zXh?&TC?]ez?Q:}!?L?SW? y?.n?2ku;?€?f' ʊ?y&V5?@|P@?7X7F?B\7D??41q?+[d?y&d?Y{(?fNn?ϣR?0q*@? 'b_?1P??KlY?}V?Ȫ?\&\??+f=?LJmq?qc 1?{^'A?%׵?ܿ@"y?0T7>?%?)?߬#]e?)|[?J$?0,$?u}?Ć?% S?Tk!?"M|?tܨ?TC?"lJa?%l 3?PK! @@ doppler.npyNUMPYv{'descr': 'п3)Z,ѿ ѿzѿʉoпXcz_~Ͽ՝̿]ǿf ÿsQ,oEH8Ҏ&։T?_?(;*?D~ ?co?m&p?^'Y?M?C`?: j?#xos? eщt ?uq01?/s3l?;d?l??7?? ??ӟˑ?lIC20-Z9򴽷,~CϽ>.ſI wɿ]Ϳ(ʆ:{п%ѿ0u̿ҿ# #`ӿ'b ӿ]t҉ӿD*ӿMB lҿ3>_]ѿPWпcX̿ܕWɿ$<ſ,uĜR᷿k,]| e$ 0҂?,)]?åx?B.d!?Qv?ZU{?"I ?DO-?ؙN?@ 3ѓ?aM>;?+!6?*R?b??L?vH?RG!W?M[?Y/[?"gշ?:I̡?S8¡Ev`1sC{9mX)ſ{Sȿ[vzN̿sϿ t"ѿw^ҿkӿī5GԿhvԿmXeտCȦտ݌³տT .տD:4տf۩Կ/FoӿY: ӿw]Oѿп';R[ο_t˿%"Eȿ;T2ſ7Pvʟi,-Իkbz4+$ިES 矛Q?H"?}WE?ogd_N?Mz?o4?XۊDs D%KBju #K; <ĿW`]ǿz<ʿmUͿ[NϿn+(ѿu3Fҿ7yvNӿfI>Կ-|_տտ8x(vֿ͓xחֿFÑm׿JR׿ ׿wؿLؿ)Gp׿4׿⨯-׿ ͯ׿ 2:ֿw+ֿCxZտ_2<Կ94ӿ]޸vҿ ,(ѿz=zпq8HVWϿ#O̿)YʿKPǿex{Rſ/!/¿YF̋ۋ%)[?(⬿yQy2Mㅿg ?9yT?Kv+K?@Q4{?uI!?qp?=^ r?>y4? @@?4@kD?^ FM?=n?~2?dtM?˸? _?#!j?#A1x7?RO? 4#?}Z8?*m?yj6?w,W?H?x6(?T?n?112"v?Lnbk?I O?gF ?< ?Oo?$0?"߾?9=?̭?yD?Wa?mX??7A0?aVo?EL .mBOU o!_1́仿LBeCUy¿Ʋ1kĿ>ƿ,Pɿf6,,˿ [a2Ϳ9V+(Ͽ0p֚п1 YpѿHPҿ\f(ӿڻDEӿ f?cԿjZWqտ]AֿZ@ֿr+FHZ׿ ׿\XWhؿ.ؿ\7z$HٿrkpٿwMoٿ?ڿ==zڿp4ڿF] ڿ^0CڿB톴ڿS}ڿ錝&ڿ /ڿf ڿ&=Go{ڿ5BڿxÆٿnٿ|_Yٿw7pؿʨȊؿUg=ؿ38•׿? ׿Ui|ֿ- տ- `ZAտAٗԿf/IkӿLH.ӿ3̀oҿvDѿ+пA пJAXjοGdy̿KdʿIhV%ɿSSǿpu-(xſ1hH3ÿ%KYt{I4Z搪#@K·Wӳms]whԧƟ"&0ďht<*?/?8T?ZbL肯?pn?>}?-M?Wۂ?A#g? q>? oo2?/^o?ڍ?pP?EY?ne+g?CuY0D?x%Sk?|pU0?QEd?l?VC"\?GB ?/㟲?лmT?<[?(??~sț?`P ?7a?e ?#ְ.x?;O,?QcU!Q?!h? y?JQl?sCkׄ?U?It?z.Sb?I?[HۯW*?8??1?r Pk?`{+?\aX??^x?VDI?dq?33N?3?iy{X?p^?mm?1-Sru?ʁ?C#y?\n?Š/өj??ogw2K?Lw?O?}(%3~?{i?c; $:?Kkd?̠?qCw?$?8L??O,9J?-q?"j?b2?w^{?W?zPY?!3k?Nw;? T?#ֶ?׏?ij?8 ?Eڞ2?# ?t&ۆ?\dK?PI'9s?YO}p 'zKV^Z1( u#"(!lBK1J %ɛ{hot43¿%JĿZ*lſ^ Jǿ~tȿ!9ɿXg$˿Y$u|u̿=9'Ϳׂ/ϿYL@#п.}п)x!\ѿ !Mjѿ[Wpҿs:ӿh\|Pӿ }nm3Կ*L[>Կ`?տ~hտuqsZ>ֿCpKpֿ).׿#׿4D\2ؿd|ؿl߶ؿ)w(WHٿ˦Eٿ$)ڿ^ڿJ=ڿ(ۿQۿM8ۿ/Wۿku!ܿZB_ܿ;јܿ;9pܿ8ݿe-ݿ=Wݿ/}ݿ5Sݿ#[6Uݿ'Tݿuݿ/BIU޿C>޿jfl޿%^~u ޿T$Ȏ#޿58"޿P|޿^޿*ʒ ޿9 ݿ6ݿOViݿr6ݿ<ݿ0yRxݿ7BSݿoF+ݿ=9Uݿ/~ܿܿZjܿ.~T>2ܿu$ۿAۿvۿ%'2ۿ}ڿ&Wڿ=2,Sڿ ̩S;ڿ7㶒ٿ C@[ٿS:Rٿ7֨ؿ'KؿNo׿$\=׿D6&׿5Jֿ. }Wֿտ21տwƒտFԿ;#,U-Կ U˱ӿ{fBBӿGҿhظ[2ժS jۼq[T $O-׳V57 7L,"IQ.:rN\ ӏZv{afYTa?pu&]?-?1Ց&?SR ?-J??g20?d? Ȗ?Ŷ?um/?FK9s?mR4A?&/Od?[?a ?0G?(m?u?G@J?R?S\?p y?*6???/U?8?I>?>9?z?ٟJ?E*;?w<01?Wv?N+?HSit?UL?$wV?~3?LL'??[u?T?qzɵ?]~(?r?MU#?Cť(?2{Ep?FG"?ݠ -?V,?3p?>{!?fȟn?j%???KL?W ?'*{?;pQ ?9q^Z?x>?M(z??E+ԣJ?mC߁?Qh5? آ?,M(?RK?P-$}y?Q K?u01?|3/?9bF?[OwA?>\c?.&?wr§?1`6E?,Ko?dP6?n?D ?T}?Ɔ12?&AnC?2"S?z`?#Âl?dv?#~?ҁ Bi?$$ ?9Hߌ?8?3qx7?i:??ܓ?@x?Xo?ʜkd?<$ۤW?0I?~9?O'?K?A2?,C?cv5 ?m!5?x G?K?eMRP?.;ڛ?ع?d(/?S Bw?s-?-N ?'/L?i&?.s`v?%ߟ̩?*ڳG^?&و5Y?d?#%?6g?̨?=Ot?xw0*?;j?)/T?bӽ?'r"R?,~к?\N?G̷?I?]<Ǵ?aD?6?j$??aɿy?'t?Cb(o?Gk?ao:h?#˜?tǖ?oqŐ?:HF?T#s?R.Sk|'>d2FbDD!5ꞿ(ih:ZP^JP?g7ݥ##us>9k۴J;KN,8h*%zt'>Hw5bLꕔȾxvgD09x<.(¿H9ϓ¿E W)ÿ;m㥤2Ŀ#SĿ0b5 ſ\*&4ƿFƿ)۸pǿ5Ԓ,ȿ ȿYwɿ1<ءʿs|ʿb<`˿pK̿ZږY̿>Ϳ)$/Ϳқa?wοo<Ͽ4YIϿV"п25#mпvWпwY 9ѿXLѿvoѿf8mѿ34&ҿnUmҿ]ͳҿ1"ҿ_˿>ӿ>e7ӿKӿ%M ԿueLԿO+|FԿJf QԿտgMOտ%=տUAsxտ} ֿ6 FֿE$ֿ"=ֿ`Żֿǝ62׿,k׿VUl׿-#׿ *|ؿǘZIؿߙ~ؿ{eКؿf]ޜؿdʜٿfКbMٿo%ٿ{޹'ٿ,uiٿ)Fڿ>ڿuQ`lڿtߙڿ넘Wڿ`( ڿzD$ۿY1Gۿ@pۿF IۿW0ۿ.Tۿ\̵ܿIlS4ܿ`m-Yܿ߅E}ܿC)Aܿr| *ܿwHܿdBݿK&ݿijEݿaqNdݿ/1Ėݿ* N֟ݿd,Tݿn6ݿ ݿ{F ޿&޿[z?޿,ltW޿4<n޿}*޿Iv׳޿ب޿渤'޿ '|޿Zr޿1RQ}޿S ߿jL`߿_,9.߿lX=߿|JVK߿biY߿7I ^f߿אcr߿'A~߿1Qu߿m~߿9&lk߿-b߿cj߿` _߿jv"߿[-߿6;t߿߿h߿ʗr߿NcBv߿W8߿+߿,i߿5^?4߿xU߿;D߿ȱ߿߿N߿P-߿ih߿0Q߿l߿$GJ߿x8߿7)߿ Ј߿/ifa߿2>z߿? >|߿SDq߿=yJe߿[AY߿4| L߿f g?߿Rmw1߿d"߿p߿n2߿N޿b,޿$ q޿PZ޿rjct޿71s޿/"t޿u8r޿'1^޿i= I޿9^3޿T+޿7u޿:u;ݿ矚~ݿAݿh,ׄݿQIݿʺzsݿ!YYݿg>ݿg|#ݿQݿLܿp(ܿܿ ܿ9vܿPLXܿ Yw9ܿ`V2ܿ~ۿJ]ۿx ܅ϹۿWܮ֘ۿp`Pbrwۿ3dUۿp3ۿۿgaڿYmڿ\I>)ڿxڿ)]ڿe_8ڿ1oڿ<I/ ٿXp\eٿ1K5ٿ zٿ6Sٿf,ٿOٿى8=ؿ`Nؿ[ؿD%Hbؿ 8ؿj.ؿy+׿@2(ں׿*<׿Re׿a:׿JnP׿BGֿFz'϶ֿ%Z|ֿ]ֿ; 1ֿֿGտ(!տo {տ/Lտ8xտ@3Կk)Կ! vԿ#bԿ(Z3ԿLԿN ӿ0ӿ(Lsӿ8BӿO'ktӿa*ҿ4xWRҿ~ҿ3`]Mҿ)ʾҿѿ5~ѿvѿ݅ƜSѿ9Rf/!ѿ1пr5͚п>1+пZVп߫$"пgF9ϿnxϿ̗eϿ{#ο1_=BοܴͿ;rͿD Ϳj7o̿9̿i&˿5@SƿiqƿO*0ƿ}ſ1=1ſ%sGĿŞ1m[Ŀ֓_ ÿ%ÿ |Rÿ^<د¿>](D¿b| qfns7n 4,s]2%Rێ:ֽoj۶7*.TA;@Ȑцׇh==ߏQ|0n D;;lRd?؂;Cnw? z?o[dN?VY?3iO??e'՘?K=pM?Mpn/!?ca"?h8]ײ?5s~DB?FХ?dc ]?`U4?@|Yu?A d?6WN?a?ZE\K?9?uF<б?}Dɑ?R?@?c@Ҵ?°kpᑵ?XP?NG-?҉^˷? y臸?VC?Z;?p7k3?>/#ws?y9g,?Ь72?Q?rt+T?"0j ?|V?$:?2:Ԕ?Z.Q? @ H?)_?SH ?VR?r|u?Tg?CX?F?r ?d\?F?e?]"'[?d[?7gާ?,ͼ?"\??,6'?ҨZ ?$ ?h܇j?磨?cEB??E?t:?* ? l?<[d?@Vת?[`a?R;?+b=?&`?D? L9)?d|?tD?z? pv)?C8J?6˾j?˧U ? ^??Yf?f'?| ?*~)?{d H?~f?p)?Uc?b?$%?/견?b?a^ 7?]S?c$wp?{Ռ?]?t~Q?{4s?bD?M%J*?!2? cL?i\g? ?`觛?Ʊs?&? X?up?1L?52?7:LRK?2:{c?Vh{? ?y 0??h?TF!_?M9 ?R,[?Ij2?Mn>H?PG]?2E3s?"#U? [5;?x?0NeU?Ԟ??0@?K?(7ki )?Ae?vrM?}]?h(k?$vz?e=?gb?ӹՙ? kmr?E?{y?U-?w?7? ;?#Nyf@?MCD?H?{F=L?1lw~P?< hT?ƞj W? [?TFR'^?`??9Wb?ᩧj?V1S.W?](?'l?j|y?y?Zd_?:Z?=v݌? >~?p?o|=b?6T?3TF?Q%7?2/Kn)?@?`' ?~_?΍?{?Ey?bD8S?uq)?ށ̍â?`Y?[؃?=$Bt?;k~d?]NT?"/&D?2 5? ,q %?)?}?'`? !m2?T[?{]L?RŦ?ӿj? _?v1?홷o?K^?1mwM?B-R9?E?SM+??/?jggٟ?H?aF|?FPdj?fqsX?ҲrF? 5zb4?GC"?{{?"?ˋ?௤1?5H?|@R?5=Ρ?HX?V&?+;?e&7b?Ȃd9?]mo? p?r?BJ?u l?j$O-C?P?tTꛕ?a~?He? }Lv?y_2M?y$?,??/̨?WU?5֝V?!-?ծ+v?̠e? \W?fML?<D`?@7?7X@?Ç'D? qL?ȕY?%kj?WJ?A?rg?u?@i?I?OPTu? *L?Fmq#?%&?.|?ک?HB?X?K|+0?HÁ?t;?ZҶ?YMt? f?aKNe=?ڔ>e?}j?D?+?Au?M?-0-%?-H?ùp?-ģ?+4?BpW@^?DQ6?Y<?gĕ?H&?Ԙǘ?Vxq?R:J?t #?\h?׆?Gp ?!5?cf2`?p9?#??1%? L?(?x?Q{R?.hC,?eNV ?k$?\3t?m(?6,ܾ?Tf?kܘ&F?@??4p/?Ϛye?X,?yм?oFv?H2䄺?x5U? ?5G(r?(Z"t,?p?yPF࠶?ݧp[? >?Jѵ?(a?q-WH?XWB?k?[3<|?G8?_? W?mo?Tu-?RuMm?Au"?g?'*&?C3 ?qeϤ??;Rd?ִ$?ڲn2?4?4#:e?8_.&?iί?'vQ?qծ?bY?ޭ?[jd?>?[q?BM??˃Ԁ?Flׇ ?9 ?tbX?糊?DY2?fݾ?D;K?T`ا?Wf?r?%$,`?CA?ͥ?`7?ɤ?a]?*?xIF?ؾП?z?PG?V(~ޡ?b .w?H?k.?̧D?S?03_?CW3?Ago?y)?t?s-?+p?P]桴?^?/B?2)^?U Cؖ?"el%?UOu?sh1Ɣ?a.hE?Dn?g5Œ?,?v=y?]5+Ր?"4?+??)?FjJ?r^?"6?S? ?0؅?„?T尃?N筘?KaD?~q?%xi;?*L}?@׈Gg{?䗇aey?yfVžw?ݗiu?-];iDt?ŤIr?p?Aen?Ck?;*Xh?޲$^ f?%}d Wc?Xol6`?Zq\?N5W?T9ɞS?l%"O?٭G?8{]@?96?gF'?&^?PK!v" ramp.npyNUMPYv{'descr': 'q꿤͗7?|Pa??*jb?>/6?D;?MI*?qS?d0=>U??;B쿇 ;OO? {=L5D述 *W?WE/ԿǦ㿽| ?$dEٿ<*{? ~yt~|Xmȿ֑%r?,Ie?ނĔ?u-HRq?]8?/tᅳ;l?ЂX?:ä￱>i?~'7? DjDcU?֥?*pm{Mǜ?cCĿ ~3uE?Zn~׿f^P{ ?#8⿞ ԃֿ~\W(?D翠r[¿ -?yH 뿢tRq?,ą?̒ҒnNi? ? &&d@x?ݿx7 ?XtwS?,eG]i?XE?y ?u5*LH?ʿn#濞 n?B@ڿ$-/q࿎k45Q?'Ejt8Կr!?H!3t:tr?\ ɀVc] ?8?쑊/F?Iw?ȹ=??(?scg}NH?P1?uDGœ)%?eCyyڸJ0y5?܉пͅ~?K$}ݿb ޿;!?2q俗4&п:G?G`pķ*qC?د80T.R??Ō??5 ￐ZB??8sY\d)?WE33?_=9ZZu?<25?v'H?"\hp翿w>?mֿhjqf?Sw$ 2*yWaؿ)Q? 翕N@ ſbQ?qcLA^뿚E?dw?c|Xj?SZ?mx6[8?_\ wͯz?9#`?+Uq;v￈e}Dc?̅T&?J_$3X? ?M6> 뿊XA3\?eǿ^up?: {3ٿ˟yV?d;7jտx [!9?2R2@?Tc8Z?#'DMWܝ[(rA"?Yʗ1ο,#Av] 0P??'՝?T2r;e?Ȫ.!?I,6pZ?5GʇÙӱ3WDg?uh /տYy(?0SXʮ˿ٿqsv?wi! Niuȿxnh? h7"=?@c(?X b` ?l?3￶>6?c?jgJG?a\#?|FidT? -O|?=꿚&Ս?qHK˿AlA? E\ۿ<[Q>?˔Uӿ4ҹ?5VR迌 6|ŷَ@?`s:Fq?+aq?]qP`?L?OJ"?ii3C1c1U?P? x-bF8Y?MY{?F(=!93?:!oޥVR`=? {п~俣^d?"kvvݿDݿq3?g#cjWпB??]2o1v0gX5?8;8?a4o?La?+|sτY?%e;f?b? en?zr?zBŎ`JQ?ޟ|2迖I?/7ӿ%ݘ )y?YWڂۿ\ߴ?n(fHaXf_˿r`py?dM_꿐“Zy?6uW??E?+xN?3ܦ￴?Ϫ1?Iۤ~¬Wp?.?T6݌ܬ?6g?X`ÌS?ho¿M>!?v.ֿwS-]Q⿔Џj?Clb*l1ؿ!g`EL?]&gD"ſNŝ?p^h?ۇy`Tً?}?(ᅣ,?b2?ҢS 6!??i`}?c?İr;Uff?Fc3aȿ8vo濆Bu?N?^ٿPVOO-?#II9տ[,b?cuxS08:m^]?#9r4쿴٧=?."Bi?^ 4S?,kB?. Ij S/?R@V?y !GNL?h~p?h1ݮ?N`([U?yο6#c忪6?ϧfܿfAA߿"?4>i^%3ҿX{?h2G ԬC?=ci?Z?:9ᅱHZ?^?.j.}oE?a? | %"g9^?{\9C?>:CwW?丼?+უ￴Ԋ)G?.z;d?b0ZSmt?oGT?c`뿠_-???\sſy:W翂-P?,JWؿYb;~]C%?;b`Tֿ^=s?<翪nl?/U) ?4J?R"ݡHKh.?5d¬ex?ErN'?p ￿ ^?b'S?6y~p3?|M )ќ dkƍ?.ο@O|w?$1r7ܿJsq߿2\}?EgQҿWs?]aB"dcGt? 6J{k%1P? ҿ􀕲 俬2?H͑߿h6Cܿ,Ƿ?Rکx甥ͿØ*V?DiN24Od͛?#;5m?'*?{;Dᅴ0{?LJV?Hxw PITMg?lƗF (5?A&O%?j3xɲ?kiY1N?}x}?}TU?PK!X] losine.npyNUMPYv{'descr': 'G?n_GMs?G,3̍'t, ,^?/YQ?Spu?jkjuݧϮѦ)wnsŞ?X`?orx?x2pʦ뿾Zyq+?,?Z{?ޚDD52F-O|ȇ8?[ĥw?-J}?ˮC뿬Fkz~?\?af?+Z,Fri 6"Z?u?s}g_?h >e#뿖ŒN񄽑?v?8?VnCXtƎ9M#1 ?Ȩs?!^]?6Bэ%}E# &? $?]-jT;?'2ڕgGWAe?ܪ?|xB?2pN뿢)an) ˅C?0?Z!·?i5s+M%+r֞?u*?$1ӆ?3eS(ضR9 ?"囻:?fK`?&뿶|ϝBa?$:?tO?1~뿲}.;yROg|?׋A?[A9?r+pm{e;W}Ědz?`w?=?G0%x뿑,rR8ᎿbmS0xw?GE?0\w? &v<Vq'D'.r?H4F? ?rp뿚3φ$r^0q[o?*y?!:L?gO5n뿥$l?i#BE? 9`rU?9uk2`R:j?j]JQ?ΐv0?gRh,Q`Mܒg?@?!pX?~>fx; b`?ݮ(d?C?KB/D?z؂cڛK쿄e\I@b?d%9?"rg?u`뿝Iv I ;럖_?N ?%`?-cLA^[K A6ߕEl\?. ?04 2?fc[k bSA@Z?r?֖?09X M )#)W?vn!? ⴴb{?z۟=VZ|] ͗(IT?P?| ?mvQS8|Lar,ocf9R?17?2ǶĘ?UNP뿆L뿀@z)q"%?̾@05;pbgƘ'/?,6?h?0I-:8 2E~yp,??5N9?7@?|N +뿙0:쿮7 Է)?1bϺ;?5)5?K-as[(OU<ğP^-\&?݅&>?w?ē)%]iW\?%>AE$?ґ@?>);١?M+"wxwA쿴>3z!?T;B?N ,?֠z- z)1D20:U@?NeE?k}ga~?rrqyF쿕`懧?G?FТ?}<뿀cI$j!\[fW?N7J?>X۩"?O0#^[jKW3 LY^?$׎L?Fu?T;rxMOlE? ;OO?9ǣ?`~}i8Pq!?pTkQ?v?뿸B;R쿐^CR^?-rS? Ր,'l?2_ 8Uh'L ?f&+5V?%fq?6> 뿬+gW礿@rH?@+X?J?Mg.}ƟY߻9b(?7pZ?|j c?-.dl'X-\A;4']Z?~m^]?};K?ͥiOT^oޥð#?%f _?ܒ?67R`6v0m?m( b?>Y?2r꿭Qc{<Ռ?ud?g ?h7FϤe쿐 3mCզPK?&pf?+Lf?ފl4h'3%*+?.?i?_ P?<##i?njyt?)FA!k?dL?)\N%lpķ&A?UWm?ab4?BQDJ1ī(oUu2VXF]1?tVp?1wG?+I,_DŽqQYpP i?,r?˰?uל꿺Ė&sM¨5q?߇ u?_Gt?AC=;꿕Z:v`rppK?` gw?^ s>>?e+qC♯x쿟^gpr ?;\y?orZ?chFzȎ @?Fa'|??g7oPFF}fw 9t?(6r~?&+4?E3꿇H^ t?K\ ɀ? 2>?|Ai?2@][B??-= ?NÈE|٪?}ftF!K쿽&<^ ?Bu?v ɹ+?<~)k隠KpGT.l>?5ˇ?}? :꿣 W쿗o3܆o?gyo?b2Ы?׮*WIcyP[?s?]Dn"?0iH7꿀[<#~K7P? BŎ?'t?gEf_8 ?ŝ?t?4,Ƭ?k}=,]@oR﬿({t+?~ri?b?KXh+꿥pxW'8BdX?G+3?Ly;Tk?ǤZ>B(pndF?"" ?㋽?'L~>18]n歿%?FTY? ?uF꿥݇: 8Sܷ?ɧ?uia?WqqfWΝ7֥?,?6.?d͛|T쿆.THݮBw0?/yB?b?vZUAŰgJhcwd|/'rY?Qނ?zwX?}hO=#?!3ڥ? bɪ?+꿾쿜Zӯݩ?$?0z?@x=\$ J8 ˌsЦ?θn?@_'?{*d1հ쿯"<>t@?Yy;?/P?4*꿋ܭo:e?N?Cby?C*#{꿢{$쿳[R.A?B'H?ݢ?/?'ԜcQ(lޟFiӟ)f?o?Ͱ˰?c 꿄Բ쿮+ిn? `յ?m1 ?vJ꿩(G F1?7q?B!?ț=+)=쿉C2_ϚΒ?yA`?|)6G?M_*\b쿍܅[fgg?S?ݲ Lp?耎꿠AƽBxքn{>?DIQ?-`?4kDh꿄J }ꭱnf1?18<*? u±?>7꿬1?Kֱ8P?[l?rڈ?Wւ쿞lW o?+?2?r>꿧Gp,%)rq??cM=?Uk BRV8R1Bx'~? -?p{f?e9}꿂L66J{"{?ZOk?hӏ?Uz꿲=$(1\qx? ?P2串?P5qwU]쿱fmͲ"Eu?y?7I? 1Dt꿌u+~s? $?8Y_L ?XqlZ"B ZSU3p?36_?JF H4??ɩn/-}1AHVGy:Mm?d?%]?;fkfyRqej?b?4?A h)Vvj[r}g?$?T;C?,} f꿘:+%MHó&$d?[ H?54Qس?Cf cXD4dE.@쳿 ma?7/?L^?Ɣ6`({Y92M$|^??k*?m+L]꿻m#`*>x2[?C' k U?s]LY?F?lbT7.sj)r(5S?R? δ?$Q꿡W;ՓXP㴿nT$P?,^?]& d?3N.;_/U) d8{6M?iH?^e# ?7lKku 25dGJ?r&?㹺VI?qH;??y;^RuXG?W?r?֐Ey@JpDAgD?\?+Wț?!`wiBBcKZ[|vA?wr?T~ĵ?(&?im-SٵC>?GМ?Hw?~غ4 =@:a%Y;?hܥ?Lf1?~:N,쿹B_+8?zC?6??UH&7꿀|?Z+ eTSa5?Μ@p?#h?S?iN24[ʆj}2?ǜ?'J쑶?tk=1߇-n]/?`\e2?&m?MPH.🎟r϶-e,??8^?dNR+[E Cu2* )? ?,G ?Xܝ[(;$~s1 ȃx!d&?CE ?}H5?f@d%=Ȯ?"%g??? шs ?ՃT>i鿋5!K@*.!L;?wq0VA?e6?%a5aBc]J֦?kC?@0V_?3XPK!ɏ linchirp.npyNUMPYv{'descr': 'X GRn\ S`߷&%ѣQ2쿽Em,UgW|hĪN ؿ4iȿ\3&4*?.?(H$?7-?_ D?$p1?LE5?&%ѣ? x^?X?{?+KT?#?u[]jX?rz¿d}ؿ:^mƘ3E\@ Kqd￯) b=i" %L俙B}ٿ{¿9X_k?yCy?Ǟ?Y2???F"?RX?(?E0?U?Ͽ5O)@kx0߁q*kV'F)dwxaë3ҿ;5?@}?,+.?i+BP?'?d8?A>??14w'?ֳ)@]ܿ=l翸5  ̈́`MWkd|濈.yfؿ\3&Ѽy ?bs ?? ̈́`? A?MQ8X?2}?ô)l߿̀鿴ƅPᅨd8oF́ݿ+V8}?tSM?貭?G졩?|'F)?RS?̐?LfEqڿ(kF; "|9E0׿lZn? ?Q>>??2I2? Z?yHT?JCyٿ\N鿺Fz& %L俣ſO7'?Nr_U?Kqd?'!6K?k%?+MV?󨮦}ؿ _ZYS8kKT7t?xR?)%ѣ? &e2?<0?]5Ϳ7-翕 w }|DǼῈv㼏,?f?ƥK?-U?B#?$#Ϸۿ,&%ѣ2{Vο+Y?X ?hEp?M~?4?]}ؿmIx뿈 "yXi翲?DſM*#ď??ggk06?  %L?]S?* @8E ',M4A &cݿB˽?qXw???ef3?ү޿9̶]pQ>!&VHPo?1k? P$6?VOW?1ӻ?Lm⿗7%q? /wտ}? )?6?l?N~j ̿b7#jȲUΟ↓T )?mAC?_W?gE? aU!T< 濒4湗\3&񼯂,i??((P?XU!Ȑ szZW{v0E)?R:.A?IJUΟ??M~j ̿ee.&6+UFۿ𩮦}?;wZ%?q? ?(?eb?Lm⿤w v"VOW翤BPT?)k?vYl?C;S4?̈́`7BN?+|?%BP8@<3p?Es ^Q׿̈́`?9ڿS8XSwf?$)r~?1'qQ?d8oeWj?\ˁ?DD;FQ}??t?貭?(F)?r3+쿅+[h?xf ˳?*U?ԫᅩ#Ϸ?!&Nu?$ѣX(M?V? X ?; pM~NzA ?"}ؿÑh "y?rn?̶ү?pf3??rXw迵8˽?E&c?M4A'?( @8㿜H]S %L?gk06~?W+#ďݿ@DſXi?b "y5Ix?}ؿ4ο+M~?_Ep￰X ?ʤ+Y׿Vοd2?H%ѣ,,?#Ϸۿ?#Ŀ82U?EǥK>쿗?(_nQ0׿l:? "l;?kNfEq??yS޿$F)?:졩{貭?!SM8}?%D+V?Ӂݿo?Gd8zƅP?~鿎l?)2}ӿT8X?D?̈́`?V}s ?ؿ;ˍB%7yf?|HNWkd?/̈́`￞3 ?;l9]?\)l8w'п? >%d8?'7i+BP?++.`}?އ5詿ë3ҿiwx?"*F)*kV?qB0?.kn5O)?Ͽ@0?L(?RX?VI"?FeY2?՟Cy?.\_k¿ٰB}? %Lb=i"?b) ?KqdB@ ?3E迕[m?9}ؿYSz? ?]jX?ԿLT?W{?X?x^%ѣ?%E5fp1? DK7-?eF$(.? *ɿ5/4i?N ؿX|h??-UUHm?4쿩?C%ѣ.`߷?S Rn?X K8>?ps;M~?}ؿgJ?#CI$) wOD?E:<ӿ;l ?}R %L?BN/\$.ϕ?_dTM4A?bVĭ}%xX?@O?q'}?l?"hV̶?lsqu8?0L0k? 5o]*?:4h信Lm?~!:Q?WR-sۿm}?Bտ"?իMhпDF~j ?BYBǿpͰێ?K)?ANa9XB?BP_#U!?Eb!y?r!Y\3&1PK!J twochirp.npyNUMPYv{'descr': '&͔?1{?CX ?2?.%*?F `?*q\?2^y?bv?*?^Ʃ?Eb?LXz?O`? L?`9?dR?c%?F^?"N?g{?(4?x0K?&? :0P?ҵ G?ׂʰ?(꜁?;f?t}E?~ w?Þ&I?Q%X?9?f Z?oD?1{пtK9|2bP6N45Zv LLXz뿂@y=&hп L%=ÊQʯ39-տ: /;忎lS/jжEMD/_eQ%XHDז|5GϿfJ!q?HG?(?H H? ?d=? ?|G]L?{? g{?Īp?NȗTE.?) wb?x?.ɂ+? :?!k{F? L9y<~"迈reM }0d >d[lqC!ݿ@?񂵿g{$ҿm.iw뀌9lXO>c|A?HG?(R|?:(?,O?lbv+?K[5?ԅz;?긕?l?7*9?zTc?Q?F:amQN/LXztATqп@81ѿK*y0 +vTc1{? V'?xh+?R^?jbv+?? ?i3*?;f?H+r?O>?rtۿEMm=KXlH@' 9Ϳg{軴'2K DsnDUC?reM ?Ň?LXz?(c饒?x_`?e1?x?s^? w?S^҄I!C~4G]LԿ:0Pq^n߅«f#ؿHG?2+>1?f$D?8+|r?^Vε?Ϻ5#?жEM?qJm?0{пUcd$Y`Pag޿ÊQs%)t L9yW?ƭ ?j A?ÊQ?L?J*1a?|h?g|]NY?>u.?;f?:zB?^yfڶ+)bv+`vl88M(@pU1{?H?E~?, he?K*y?;?H} ,;zB6HG?+EC"?8d|]NY?ꦶ?뀌?Cy?у~۹ Q g{*GRM3?c >?Dncj?R?-]ܓ?-;0=0a+L43ĿxX[>3 忑Jo?V|? g{?0Zh?둳j?"gSS$Dd=NğbʰKM#HG?8!?OT{?`2H?Q%X? ISp29`8@*タl|oͺ5#뿬Q%X5Sd_m?$D??2<f?\f#? H2Wvӿ<:0P7eX?#!C~4? g{??7fD? w?Qo0dRͿe1e :=]1?}?TNXz?3N?}U?=ҿKc >Ez3K ZZAZ҄?\9?.i?EV ?Lm>}#˙9ٿH+rHG?K;? ?2R ?C `"R^ԅz;Z'o0{?p[?Hy.v?0 +?F Vj8y L9y?8?a&f?CF#>WEkHy.v7*9,{?-d?ԅz;?\z?oF `U-O8 ÿj \|HG? ?˙9?f:lX?LmT9 ڿr.i鿘j!)҄? ??1K ?nZa??d >θ|U"?@LXz?{0? :? _,dRͿ wbw׿fv%? g{?p}5e?Y뿀 H:0POmj/X H?-?j;f?NL!qٿ$D_տ.R%X$D+?o?(S/j? 3{п7q19-տNc356N4?`L%=?)?2NXze@y -5Zv?ÊQ?Uʞ?z2b/5ۿlOoDȿ9`8?$9?@S1?􈊁?z`g{lt~??뀌? Qk|]NY¿I=+$SHG?ƨᨂ?΀E> ?*q\&dv+࿃>j01?A!1?:l?&͔ɿ~u)7'kF?X&W? )1 ?.Pp@MXzPuk|@y=? )?J2F4ÊQNc3be$Y`?L /;?!{п\߶zrֿ жEM;D+?^Vε?DDז?B$DJ= HG?-?«? z|:0PV}A?G]L?}5e?̰҄pͿUw׿~vGl?x?`_,_`jp{FqQXz?]N%m?qeM θDUC4[?2K ?Ua@g{q!)RH@'??rLmБ?=@cO>?T:f?֓R| ÿ"ֿphv+?P\z?h+<ۿ/{?0C?\Tc?|#>WEH*y7amQ?8?R?KXz{RN/?1?hF4 &D˿TcZp[?l? V'ԅz;6 HUdv+?3R ?'5i3*BHG?P?[r?O>?>}#l뀌JX?)i?"kML g{IYA lqC!?sn?a >^yNpeM ?s3N?(OCi饒¿ :&j_?x?o0—TE.俊S^?g{?+?:G]LԿk7ed=?^?. Hm:zbHG?Љ?|5G?-|rǿQ%X"H?жEM?h>?lyUc?j89-?g1vÊQ#j޿lh?v?RSXz0_) ?K!?86N4Lay2?qjR?h1{п*タe Z\O/m?S%X? .5X~ w!?=f?RL2@Dʰ𿱵8С?:0P?fSS$p;Kʿ^o?g{?6Eh?A^^_[>3 dR?~5-p?L CkȮPXz?*-]ܓ?`Ʃ<2se >?^=_?:D7l*G҄?C?D~]SNm???"֝"g.ԿʼHG?uC?^y迠늘սgF `?`il?./ٿL+{?@R?@J4A¿, heصF?-}46?|<AËѾ L9y:@Ë>9}<-}46XeF?, he?u4A¿(+{?dL?r0ٿfl@ `?ս?ƭ^yuCɿpHG?u.?Z"֝ǣ߿Im?S?ԃ~C,҄?*G?dD79_a >?2s?`ƩC-]ܓLXz?@kȮ?vL4{5-p dR?_[>3 ?p^5Ehg{?vo⿜#KʿfSS$?>:0P?8СAʰJ2@?:f?f! w^ .5X?@T%X?.Y/mѿ Z*?'{пqjRw2?L?5N4K!ݯ ?`)?KXzjtph?Vj?ÊQ%g1v?-9-?{Uclh>?жEM?AHnU%X3|r?c|5G?0(HG?:zb? Hv^\d=?7e?G]LԿSܿg{?S^͗TE.o0?<x?j_ :Y饒?)>![`Y=X3NÿreM ?_yN?g >snvlqC!?dA?g{kML?1i? LX뀌t>}#?ZO>?P?[rHG?e3*?*3R 6gv+?$6 H?Pԅz;- V'?el?p[>Tc&D?HF1ѿN/?z?&UXzLZ`8?7amQfA*yB&>WE?2Tc?0Cƿ.'{?d?h+\zmv+?K"?h ÿR|?<f?g鿖O>翰[?=@c?Jm2 H@'?p!)?6h{CUa?h3K ?2[BCUCறθ?oeM H%m*MXz?k{F?_`],?x?ۆvGlBw׿p?҄5eG]L?}AͿ:0PR ?߅«?-'HG?= ?$D$Dז^Vε?D+ӶEMzr?{пb /;b$Y`?Nc3?tÊQ 2F4?)?ʘ@y=aZWVʓe? ²ÊQ?bPH*1a"/5?({пb6:`8?6?_Vε(܆r? w?ep{ŷHG?7꜁?|H!yy:0P?R5jY j 4?҄K10\^?L٪dyxڽ`9?e࿜vKXz?}si?Vw*?OUC?&S1ȿ=D7?Jمe?g{(is7?tu U?RJm?XlY?b|]NY¿m8?z;f?ᨂԿ^y?AJ 4?fv+6%*?M0M(?&!1u2{?z2G?~Rv(?FH*y?5&W꿴Xz%g-8R>G˾:F>oc*8R>4J\?Ց:F ? (s?ui7R ?ƎA'?CH\0?}˗G5?o:F?p֠\(??@qr?R dt?zmB?`^?>\?8s4?VX;?൸0? Xw? ض?ڍkҷ?xEӸ?.(۹?(?#9bP[?(?m?B?_n?11dQ?`2Y?@33?X 6?hn^?r}?V]=?i ?p.;k?i?oa=+?ҥm?ڴՑ?l%e|?[ mZ?XӚ0?cO~j ?=V?" -p?D;Ҵ?P?=H?a?:M>?)"?7=?X"3?̇iE?+v? 3PU?[?gm_n?Q{?kC#~? zt*#?GM?MPP?^!E_?2_@Q?~D#?UT?![d??G_Y=-?WT?̈\?щZFΦ?~ R??hEHmW??ᕓb? )?{j?/?6I%$>?l*-%?m^Lu?8L?]?rE?1mS?o-?76?HO?*?>F? =?}2h?)?ߗ?b_?lOT?](Y?!9?yG8Y?\@?R?\?|_-#?iL?h;r?̓?٤)?5(?y ? |R\??8?-"?A??BrWU?NHd*?un?j"?9t?\ϗb?;%3?P]?rݿ?⹾ۺ{?f0?J%`ҽ?/?*C!? S6z?1;G?&/:?XBL?ʜ?< +2?u;?eD?3BPL?R?0ɖ?6?̗)#P?:R|?< So^?h?O?y>?seL?[8?Lrؑ?a?T^?"%P?M6?oYy?JSm?k(:;?nh`(7?0KXG?+r?7rb?-=Wy?HdNuUbLkU(4 wilj`,ǿs8x̿A~,)пSӿ/h~#ֿ';ؿU3Pۿ7 ݿhׄ.࿚@h5~v蜇ƔtQ#y&S!V^n4}p꿩LXz^xZwd(1)UUȭ36IV5ڌGFdF,Gj1{→g{%9xކ(Y￾H= ttZW,F"Hb UG˸Cp鿆hE(ϿB}$-\A/;9俼Zʶ (C [޿'gۿ< ׿f\Կz$@п:AAȿb{O)\Ahʴ̊y?=+%?h?YFO?ՐND`?'o`?hgK?#N?ݬ?8“?tbM^?KhD?&a~HLx?h? p ?1˥D?lV@E?Zo ?j? _?~?*A$?.G?!*~?U'?iK?8j@M?k?Z+\?m? ?J8 ?T0$b?S|?I s?Dmc*G?g?,?0?R v?--?0? FU7Es˿,ӿ{O;ؿsN(GݿcN'vu͙ `㿤"#| =翊&9fNrd @K({8ȜH'+xɧ,J~^cC3F↑p@ᅮeᅧg+q"qVYG/追D K871(Λ[,a]xD○]BxjJ+{}GqHٔW+,ő迅-_puރݿmWֿh(x˿ڎ)l6?0ZL?*I?u]??X?I:?QO?| ?j?W擃?;ͼZ?y\?? ?xF?Y-G!?ri?}54-?GK\z?TO?W?68??xԄpl>ĿXEiӿf8uNܿL L$ j}N鿖%Lr`_ᅩo4#ᅲ4  ?n )ch⬻꿨 +ƾE( `߿caCֿMTȿ"U;?.?5`??2_˴?Q͘?[i? ׆?|[l?֦Y?%@"4?Jڵ0?W$x ?+6?P )?Z?Ӗ (?.6O?[ag;!Lʿ Fؿ]n}$o_yt鿇Ƅ??у??ttW?Iպzh? E?AX?.Hә?2Qߖ+GϿg&Y;ݿL0h ϕ ?%n>I,b~{ 쿍> ;.b \-@,׿l$[[U`?jw ~?mG}U?_.?tԏ??xrmL?VzI]?ا6s?ų?؁b.?\M?kSt?8Әfտh9;d^-ʛV m#Tm}F-yG,} Ό ]࿨GIѿ<P74o?KXѬC|ٿb 8 ݲ?C@e#U?0'ޤ?Ѹu?Hj?͠u"?G?ۥ_?~?%Py?K0">6ؿ:/VIN뿾vV2LԥkZ~+ ÍGqͿ ?-{d3?%5?aΑ`Q?0cQV?S ?7N?m?ߣc? ',?1qվƿa4߿X,翼Ok('&^],O꿆x)_,ޛLӿGד@$?+E0?`x?&%|C?f(?v?q?4W|?OY=?y3?:֕c?#ӿ$B;,eGᅴ5 a :P}vFdGV׿*#إq?M 7?B\nt ~?}I?!7Wb?PR/Y? h]?eK??|V?fݸ Dۿ<3oE]N&L│̟p9[迪bݿa{P(V?n,?/=?^+ H݅xg:Rl_`qƿ5K;v?Wڮn(?e?gì?l?Q= ?ze?el6?*ؿp(VҕUv}D;*822؄뿶@㿇:pO˿Vj?| ?wF?oQ?7ȎF ?y?SktN?v$%T߿\9K p&;eʼnNTۿvi:ȕe? pt?=1?HS?Cl?ᭃ?<#P?ڿqy迧|{N #cۿιRQ;??܄4? ܸ?{??p8?Vm? \?ǵǻ08k㾯DʔNParI俫*˿d{u?JX,Nw?-3l?Ж?uu?;R?.Pt?QG6ܿ" 210 F*TGW$οeݚg?qJ?s!*?U?|'?w? Rñ$3 nr쿪mL?ΏNࢰܮCI?E? p=?ѷ?6|?` < U?2gֿ͗~iDvrO>e\忑nɿJcCZ?HڌA?%mQ?Ag?/ g#K?C9՞?ȻQԿ(-ϩWt8tg6_enB Ŀui4?A]?pei?1b2?~e2[K?%?qHWݿ(qG~~(! Yuh뿽ݿY?U!?(',}?Fua?_̅ I?Ѐ:C?;e Ͽ7-+&Z_DMRSfu3!C?!53L?z1FR?G0?>y=?Mǿʓ0qg!;Ȑ9dZΚqJ(ʹm?8?Zh~)n]\Va ?CKN9ؿ}?N.o? )f??-t?l.+l?d?VFg)._쿒Oܲڿ\˵y`?H(c?T?e?tHEwn? p,C6O↑ 쿦z~<ֿA?^%?T518?pl ^?C^նܣiL2l￞inWVk ĿIF?-kX??ES$D?Q#ֿݎEW_Db?=Ź??.*?nqu?6忓@u= _50ǭOÿ p0?җ I_R ^?=O?޳}?gk?0 լ[( ٿ}K_?^??iAˠƿnmպgI X QzL¿*<*j?J^C?r8XL?6޿_7g9ηNǍN?9v??i|?e? oŽ这|cǹAտSZ?G?g{5?dJؿ啩LJ}&JX?;?.oN\?EO? - ?JƏA;EQͿ+}? n졍?@4QĻ?Q[W9y_m݂G)#?g&ס?f(?\ѿ:B/k?2]?!΍`?d]W4 ¬NF 쿍5u!% 1 \?ʵ=? ɦk?nZG1*0ȿ Ϗ?0d-?#m?rjA濄['ѿ6Du@?Ѱ?)?Iu^p ?'5■Θҿ$Vh@&?z'#?? k濰x~<οM|?h?d ?wݓy59p,tǿh`h.?|2{l?rZQh?6fܩ`&ogg{(?LNJ?;E!^x?.p*ſŬiš<= ?Q~y?0?ruyQۿy4P)޿P?%?_S?Kv?$9濺PBi^~y̜!a?&c?IGεKċLΉk H?2S?zQ7?r*7!࿡\LJ;տ\?x?-Q(?8sT!A?*m-?2_Sb?<޿ +￶YտfnAF?ύy?sU>?AZ ,\Cz? ?k`?/Hn俎\7A hUa_?G'?|;jѿLC}A3$X޿*'Sa?U?E0}?S쿴QG2Hig???ee']?W\#'Hd?,B!v?F ?1Έ?z /TjCi8ߴ ſ@3?)=`?տl,-,rPֿ(k?NXz?3ǿ;|Ț޿$f;Lw?*Bx?cX6Îz(p 0ῗa?FR?w{ ]ga-\/\o?۾ ? ǹj)j?P'ОM A띿?<``?J&QOp45:DFь FH?݄?ICsH cb뀯ݿլ>?1 `?.j̿eTŲei5տ2|?oP[?5e_ٿ(ni! Q=]?N"M?$]ϐe??c .j?d7L\ a[8&'?66=bW: krA?%iM?eLۿ ;9LN?_*s?=hܠp142SĿ?L/?%b?sg쿴([A?`e?h`9 #;B6?$s?!JB޿3Ͳn.hBr?Qɠ?W4Ϳ#YËA3?u6?UvXj?; 4CG`9j?CI??yXVyCҿ&?*uܮv T?c,[̹v7HᅢqZL?ce?2+ֿI7W/k^P?6y]?}#Z)ąBv׼Xo?Vn$Z?EQ꿪$\W߿ʖ ?ّdD?`U=:? e$ÿG?Y' JSn|˫fn?s@ ?^%ܿy[w?b@H?l+N[q߿;v?bfu?%}h7Ô&~?euϿW%ꫵOPۻ?|[}K?Z濔⿖$n?&b"q? $AY{A蕿 ?1,ҿP쿣7?*?? 8ۿڳ? Sh?MaᅯU?_d=O?m!a!δ5p ?"08?c md￈v#/I`?[z;ؿck`Y ?ȼ??ga 1)q?˩HҿЙӥaN?&?`YvwN7ſ8?E+ҿ כ뿲4?xm| ?/#aW`GLõ:O?Iٿ=B(鿲î r??&D;ed,+?RSݐ?7JZ:SxB"Щ?nzü?c*Yh)?Rv?.We5ҿy`?d ҿzo꿳Ot?pO>?MM5�fr?4'?Yʨ\ܿw?Z24Ŀ"қ|Qx3?Om?B*`ie?8?7 nؿgl_?*YlaпvBXH꿧8yk?)Y_"O?*u,&ɴ?NQ;y?ݵLTKi6ے?ZM@Ὸ;/?}f¿`B뿥BԷ??o ~yb?kK?~a !˴? Q?Ѥ U2<[׿#0v?-Fo)ڿu$W!5?tIuJN,\?w^?sx? ?oJqd;i ?Bry?HԜ쿻ȣ4~<]?SxѿNY˙?}&⿎>Jm߿?4D׿x'o.՞q? Mǿ0Ɛo㔀?S!h~G0*ͿP\B?1t)c?ʭ?Qs`A묈>?p&xƿb㿎m&X?ʭ!͓?c?7>?b?>/u?Խ\,;kĿk)&?P>~|Iw?nN ?5Btv꿪Cr?,f-/⿆ ƿbݿ @?igvӐ?ʭĿ ~q3͙ٟܿ?"-UJ£ ?sBWwοiUcֿ!Q?0 4E?2ؿB׮ɿl?+Uc'mdJ??pjb.h8?e;w?B~m]L?; *还v?tZ3?UA7/?n/n\Qܰ?$t$)+ÿw3-ؿݮ{=?DU6} [y?hOK&Vx?y%?\܈(??'쿞VX?w:f2w ٿN/n?%Vjᅨo ?ȍ 3$Y?]0 ?NA 濢U?ȖᅡOΠ? pۿ͏J vQ?+ʦgb꿈 xy?w|SD+.w?]ԿKK?ds l￟?nCq'??R;ֿyX?ב5?s Vʋ?z/#h?V7 d*{|t?ޖ ޿gMT? %&5f?t̄ۿ?VCS*Q?ܬ�$<`?d 3{?5$@ٿ*xՏ ?藍85>p3qn?} ؿ!x'Q?5,^ˇ?>kX0?`UDĸ)_?IY@?Kpp:|1ɖ ?4@C n?dmt[bl?U3)*q?}ۤ߿L?CԿAy?Eÿ??z\?|9XfGPI?⪛EοG}X]?&>R׿q#W?Ӯh޿uT?ؾu3v ?τjzP?q_듲o?F9׳|JOd?ޙ[?0s?OAob?"[fo`O?B)I}Y8?]؉0PXz?PK!nd뭀 mishmash.npyNUMPYv{'descr': 'ܿ.!?x/ ?TKniӿ-_'?*泐?診x2F? p?J{ ?.o[?Q.?_e?Pk?$Ljȑ?m߉9?.[pL?w?fPe?S?|a$;4?F?^A?z(?y`z?#5Yh?M?uh?ݷT?4]?nb?_?"U?Fk@XY?_$b?|1@¶b?LIa4?TÜӎ@MBc?Y?{)2@i-?+,?}g@NDo8?H?I?@GH}&_?M|Ê?[qs̿?Չ <[u?Һmٿd?i?' %MB?Ţ?.߉?DNk?xÕ$$I-?0yȿ@FpXj?+Wxc޿[ Wݿ%8?uI!ڰ/7ѿ j]?S꿀V_ )/?e|nF?ŭ)??{!q6t?7 d[?Չm]h?_VuoF?% dٿjQSo?El?U Jj?:{q?0w?GԁnR@7L1?>u! ?x3Y@]qJ?- ?~@.E=?!pBPo?hF@h?~s!?sd?@r?y!?)U?6(jhJ]b?h\F@?$-@t31?c~N2#?Nxp}/^1?#DѿDp3$Gw?}.0Ќg P["LM˿㳬,ݑE%^2)eawxߟ>]/ eM.\UuFjvLNr،\U[C: nuT]XI⿳ۛ9~H}?7%+~61?~#?\s\п`{m?d* ?5مha?J@A0?y8?滤@n?֡?@_U@Ch??'@l?%?{Uk?" ?8S? Њy^?K|CGChӐ?Ҥ?:M_IcV$?ɨL-yM@)RdJοbH ۿ .RΊe=ؿˉO|ݒ tw%S`Y2IRWLh?ie7S οKF?_4o ?l 8?TSͿ0@E?}?y䶰?p$ƥc ?a?1Ub?*k>?+q?>P?ȧvl?HMYٿvOW?X5GZӿG鿟/?H'XnTA$rr?xi4(Q XR&r(ݸ"=XJ41ؚcpٞؿtu4t?𒛋(|^[?s?xme?65?x7"¶F?`?l?()ȿT(T?IĦ@GZ?P!? ^S9@ ?T+? [?Rvx?G :ͿVL~~c"|[)"?<lֿ94*?l{˿j⿖ʞv?<俗;7[b?mj`/΂i%%߿9bm?kSNһ?RTM?3n?0:?UJߥ?r%?1it?Ud? d. 1rR9ٿsc{ͻOve95J(>O &ߣٷ?N6Gʇ@7d@;О?3d?w ɂ?@Nsjs7?*?f֝"?0ʤXu,"I𿥫cǿ\*.b│]@?Z =s?׿M?&%d뿡\|m/?<.&ѿ+%椩K鿼U&‡?4Yx-?8"?e6@0 VsfnԿ}nk]f? ?TW?D|s@|j7?xU'?8? F?>= @ioIU[1?:?%?[&@?1 οBTտx]30Mj >ёN?|VM du%??D*2?\ZP4?Z<? ?xa@V?%x׿[¶?ܮ갃pv?:x"ByпM VeY>?ЀZi28?%wXV? O ?EU@,r+ֿ5agP쿿 } ֿv%yӿ@?ж\h? t^?]ԯ?_*3l0t̿vm WzZ?'̗;?q_m ?%K?F8Bb?^d?Y W|-4t;޿لQB {] 1?OTRKy| ⭒L?FK?ʒ2?xFc?|.1 |Ⱦ5?\˶+޿8eSRῷ6GўF7v5Zտ)\_?0Jw?h?#QB?"QCݿtk?& u+?sRO,'\ƴY1#d/FK?l%-dڿY?oIr?93u?z)`@ABD濒.t@?_N7ۿ|f꿀mIJ1?h}P?qz?@('Ͽ3?@ ?8.?pA.?=u4?rl=Vp L3`u?p]lqlW@T //]V?_mֿb(:?3$psQᱯ?V48v1??nt{oFl? 4nu?z晿&*[ [?)Ө`Eh"?,=q?EћMejj D? / Lt$$?6?%=@X?Hb?b|}?ۚPD(ƿx1a ? R_?f>tlҿ H :p?z@+ӛΐ>Q=M?.ݩ_迬.pr!uЫ!Կۭ;T(?xi7<7?,[ ⿔<ז?Tcm?6 :$俶RQ?YNq ҙ3j?*?F?4e-k?j |'`?D@gxfK 8I]G3?A'fБW?? Ӯ1?t5?ѐ??O?m?wPV*!l?f"5SU?36@.3ݿ?\"?L?~ӿAˍ# 50俄X'")gڿI&P@z?@;Xv.?i$9@\c%{@!,kmf·]F?>WH?Ь۫TDu6@xV0JJ8fHW?Ds:GRN?: #j?!zZv@%#?ҚE]tl>fJ?J2Qs:G'}û?X.h+m˿NyV㿬.Vyzb??px5?AH{ؓ?ϟm̿kC ? P^?o? s?F#:t'Ln뿀U@jV3K ?4VpSh?bfqN?Lͷ?FLJR'USɿtʎ*Yl;?0Z8?mƷ˿jU@&=?R Pޥyp?vԷڏ?ܵ*#ڿ%p?$!E@;lUچ?0i?Gj?Dؚ|?<п@-.ҰU?p??O5? Wm?ڶ|\9'MmOR^ ǰ翶Q;;oȿZB3sP>ǿZOz?}q?֋bmsæ?i3WRGJL`++@?[7dv?S?OHs(\뿄!W?Ҹ?? 4D?P}d;HW?\uaNYx?!?h%'6쿥T?|dx?@ͧf?UG R#g?)?ށ;\B?3a*ֿ]1\#?imb"@t**fC]?^s/l<7Ml?GQъ9mB?`?CZ?NWF?6aFn JS?_F~ Ԟ?E?x;v2?hΉɚ! "Β]AeSy<6?|su56qD@'!r?s4Ŀ&v?FtL8 |8y@o㿆i_?oPw@>G8ѿkt ͎4EHӿվFq;?Aba?x~Z)@֮^pYrR?#w?*> pQ ,W@5o&ZB?@"????UkݿDS=H2@^S(Կ`?eUAT]ѿe%87?6#_?zJ'?p"t?v'BmKF?Kevt|R^%? 4lȿPK!z wernersorrows.npyNUMPYv{'descr': ' 9zz?:B3+Cn>?*%OYPFE=c>ֿ; g?OT?rV?*ۡZ@#A?FUH?Cȍŗ?uKד2{߲4?D?Ҝun!ٿ ե?4gE)3п=֔?1MՈ.a?46i=C?M>7?m'@a_I?^5?Ib4?Dx?;Z?a|ȿ;mJ?Sn-?X`yF?G.eh?]D{sQ?m;Ș?udO2ffWϿb'?w1h_? *?.GY?f?5? vTnɍ<ſ_cK]?YLc6tPXOSR?9 2'4?F$?y~这C2~?[Bom?Ɗ%(\?qĝ?b ?qHE?/6=?Qk?(Us?R ̮M6 ei@ E?P#l=@R?LQЪ O?WwNL&@T*Ŀ )^˗? QK @c[+Uϸ׿Wn ܳ?f>MhE?G?W@C/?3߿^?WYR7b곝1?: J]mJ@8 ?9{*ߊ?}h?<ıa5?Єw?L#!ѿwnck8[憎@B"5s?<D?+$?B?z7 @ol?cDi꿊R~?,xI?Yu@?C @'@ />?Tha@, 0?^GL?V4 @Vl@$/b@{C v@7C@<@CL@QX@hW?IL@gIZw@\I? -@>տi}?83-?nHl`Qڿԡϛ?@F?7o?7?nۑ?~\[I$⻖Q4k?CGeF^@D.|?̬JMtK5?eFq3's+JDnO2?ʞmr??^?T?{ /9?$ctc?e_#Z ?ܮP@وo?=?r?/EJ?O?`mE @~\Ġ?w58?)В?WlJ-j?]?00?W?pp/,` 3~^,뿘7?Bѿns?;-?5Cq(S?!.Dֿ+'( ?^%vg Si#@wׇ?v]rj? ;.6-%A?$ӿ;d9:%/^O/,@>;KC0D𿐭ߛ?GחlmI ?=^,Y @E ?05GZz?tԏ?X}?}pRe@\\;??J4e ?O?Կd¡?T+p1kˇ?P&?N9(v߿` B@ZڿGwܷ@PkNeʞ? 4HmM?iwҰῤ靃Hm@4\ d ||?fZ 6ҿZ1,q4? M?m:WuC=?퓓 1ft}cDZH̠?@![œ+?f׿?>A]ֿˣ5?\/ɏzY%z?LM @6%7R?q#f@V3 |{?­@ {r${Ӭ7,?8x@H\\%/:?aBA@;? @]iu @j..@H @wr?}7d7?W 4َ?rο]-?-?8~0b??x_dzh?t?OaIa? ?W4?ȹy63?(**? QTRLn?}6Wn?qہ!㐩!D?`?Nڎ_k^ߝ? #:<p)/?`e̿ٶGn?s5徑ٿcF]ҧ܌?nD´Hܼ ?agL̿)ne/-03?a)C1`su?ڶaʉl[#꿵&NC?hQ뿈G^PVIPJ?ZyKҒĿ;[VA?`6H.?teW+ֿ#Y/?2!4 A_3俤(??zB+[M뿽p0Q5al*?O]4k^Y?@qla,h4@]t3;Ÿl)?jpp{@Lfm'<e~?K_j7?κNտFK7$? ҫ[; G?ЕRà.?wlq>I1:d?O?vA34Wo?ο8?/@@f8c?t;fH߆ J?/ZmR?,ϻd?U8y ͿZ ?>[X ?ʄ`iUE?J帘׿T(?;]?Q"yDvkF@t_9пlmzs?F?ݍ?unw? @/Iv?vxK@s:#hQ*l @S[5kT4_K$ʧc)?eг~&ʸ ?%ʍɄMA?H4j@HN9-I_??{|?'$@1,s@ښD{@K!`?L'@ZР3] @O`?V\?3ԿOAh?f8?g?lv}l-?p:74̿7ʃg?Ljh٧㿾j{K@Zү䱿1$>㿶y_?#LY[n?,M?#C( 3lt5b M?!?ܿeR@P _?8qV\?GNR;@ @ A%I?k@E59Ixv ׿q?v<@<ay?WsK2ؚ۽?IKfex?Y?/ "?B2Ǹ1p?".y[Y??|?} HvG? e:?f?4s2ӿQ̶?@4̶C O?Pq@E-d}Nr?ajF߫I~I3)5fE?8ζVBo?r%4ɏ(3p9`?圮bԿuJ?Ί&?* ?oVzy~Vܒ?0sSƫ(?]&J`?57N}7?Sꋦl67eW2~?,֛{=n%@>H?7)]ˉj? !6.W- ?gF0%?BI?Wu5D߿Ѧ?Z#ul5g b:?r7U?dw?˿Kh[R?]''we)hϘ뿏 Hb?mW׹ͿK^ ?Y&4@חg(]Ʉ@?C՚#i?aBlR"|?ӘٞFe,KaP?!*?P)/Y?1?!fu`a=\ ^'{FgؿH]%j9?n?BAsڿ5Ӥ@,h?h(-~?u;t.W`?C +#3j۽?D?#xĽY)@{4.?և.]T?`~qw >GB?E( 6۩3 v?ho?nuW?lZؿ[W5?ei?hgU㿞 ?W ?m?P8sX?zK࿽;;鲓괕? ῺZT6p!v?Ax?Wxӑ񿹂d@4?̫Fl72@? 5"d,ȦI@?;?7V *nð[?d տ@I~F2(T?x t9LN~*ݯ'ϿV'2^w-ٿ@$ֿ@~ŧ? ylÿvJPٿ?-?<Ժz#3?;]0R@DZG? 4uGL*H}#w@,;9@;*Y!Æ5?X)@@D} Oе?=p ?-[?GG?]ξX?#xdGɭQ]K?'dP@{6J RnO@Jʿ%8~!L?o^@?RP:L?qÿ!g<Vd?qh?PK!v hypchirps.npyNUMPYv{'descr': 'm ܢR`SZ_.ʃW-|rL[5+d2qaP`Υ -r7RC:]j,{:%3 ω Ǐ6">In$|ٿ]ڿOۿ;\{ܿq;ݿ3H޿zH޿ak M/޿>ݿ)cܿ%ۿfBڿ" UؿŀֿjVӿ/HпpɿjjR¿'Y3 o*ج?w?wu?gU˧&?HrB?Jq`c?{$?cB7?hM?{%F[o;?rgt?wQ?2;"?"??>?@0?{Y= ?i=/?2q??ZW?F?Y?w!s?{j?xBH?Hyu5?ZB?-?qR9?{lg?xӚ?p?sׁ*?+Yǔ?Ǹq?ͺ% #?@?* Oǝ?IVP|?λ?aWT?վ1?s-?!o O??ғX/?].?M*?HӤxX5?I5?q:y?2t?H?4 _E?? L|?ը?ж.P?,j: ?gc;?E(?aVC?ZO?߿k?'u߰?\ w}?n?v?W?,s]ԿoZ~W0M,y_b;ƾ̞pŊRR{7(OUl M<ꀃJBNX6:O};Z󿎷ZU:kDn n׿F0$2/Iv0D|bHdՠmYM= xRPD.,03mYrc hῄؿT:-̿p@qs@d𛿸:  ͿZLٿE7E⿓H+l?ԅL2W?УV7C?.?N.?i?]l#?~* b?}یI?٘cjJ?ڿOA{?g(? #?TC}?! ?Ӑ ѿa:5L̋)l2cg/M PM>7xpC,)Pb^,;ؿ 5o ƿ L "h'4Μ\}]-DʿEۿ3@nKJ VJE>{ C` ͏*F!B"BoͿ~}@F?ap?Aw?'A ?.O?xc?V?c%k>?B?Lӏ?"8f?Cc?IC?0kL?'C ?6`0?*đ?-]?D]`? >y?#A?%A?Y?s ?Ā+T̷:8:LtEs.-ђ..ď)v[,ҿİ&MUnLQ 7_׿CRV濕6k񿓕6}t2΢IKЅ3 翩!(s?H\?'Vj?LyΟ?JXJd ?g?hl'?؈UV?[5c?xS?P ?~?~?&?U3u)? R?+?7`C?1\?L{Z\{96^u , aoIĖt󿝆k `տ4Ngzg>пD6q1LXOPKA;pF]*1Lg*I`q]$@kAb X9AؿYJ jH&2zEk ȿښ*?|F\r?~ -??l4Z3?PKT?wg-ܴ?0?8H~7?tyÞ?gFmyA?-?dG+Bz*H&_B >?տ*RIѿEa3 ) 1}hHMo}??Vm%j.?>ܫ^?B{?>*?zl?:z?`?Hdo?p\\0(yè=ɿFv:}ᅰSȑzHxwԊl=?85?١?(8Du?Sm?9c?׹l?8 j?=?aOloA" yE8.M4ʿ*Um4 Tb=ۿRƴ?Ԏ[#?u?1љ? ?C9W=?f]?fQ?$'B 濺o]7忯K볬. >͔俖_Oei7?2?w?ۭ?y?ܘ]T7?K PYC\?+ֿva 7 {.( ?|q:8?ݧSQ? ib? @Bu?[˱?"f2e`ۿe,H\$B>tH׿0Kf?p ?V?XZ ?Mc?4FM{Ŀ?8?R}?U햇Ŀj꿏n*)OP`_?y?|,K??I6?1C{iԿDo'ӥFVĿfpʼnp?#Y7?T3Y?x`%¿|ۿ/4mп| "aտ6I!?-^3޴?rQy'?ʚC¼㿗W92CoL1?&۶?I`-?': ӿYmҿKwð?Q]?lP?]^:ʿWߙѿA^l?N?偸?cn̿ƿm&e?4?͓븿\dn$˿Ϫf_p?E ]?zdumZǿ WE?L?z <Ⱥİg<{'?.?=+pöo¿%N?xF$ζ?c 3}@2{E?kg}?8=y2U?_x?3l۶?Nj.|W3!dʯ?…Y@}r?-C)- ?A͇}k!>9I?ͯB7~bz?7fO1x?#A X!?R텿GPjB?܃ ‚?Wg,%۳;S,8w?Ch@7k8&j_G}DbP?{M J?s){jd0?*gߜi>PK!X linchirps.npyNUMPYv{'descr': '&п4ӿv0tԿ<6ӿ6Wuwָ̿M^Pg,I?2 z?io ?_L?#?ph?R^?mO"?kqE?a:]|i?)K>:?BW9-3=g(??JJ?QYqw?H?Q(?( +q?{. ??,?ʰ?#ğ?dqhNK8ѿb ٿa+اݿnyr \ݿk:t0ٿ86yfҿߓ yſ럗뜘k#F{$`qyq\Sv=Gſ4,Sҿүٿ(ʙܿe*ܿyֿg\ȿ.h\A?Σ?]>_3.?%r?\\S:?:R{?!K?< ?k3|?4\|n?0([0$2?*ף?E?r7+?n?f-}?,K"2lfϿ[;cݿMV<8Ln7'Vӿ~%qDE󋰿Yu?9,K?'YYf?X7? Aq? oX??[O.?}F׿-ÏQnP*_3cV!HqֿCKǿ1H߉j4v9>?9|w?s ݸB;E˿W$ӿf3ӿЉUȿR7?Y]P%??,A2?9[?:1?/a .?4?)b˿mٿ HݿД&Tٿ~,yпh+B bbH0cQEVm bT/пmvt\ٿ ۿ@ տ-*2,6S'@?YSq?I!Cѝ?kXQ9m?gng>0h?ŏ|?ٛq;a?=qH)οڿOWܿkXֿR!=ȿrޝi,b]p3?|j'87;ʿ5ֿ^˄ۿTNֿD/Si/?:?5b=?>6B?9-?]k?꽌kwQ*9ؿ^vh4l?-4 ؿӕſ%1gZg?8hȿ QOY{ҿпLWŴ%SƔ?m`o;|?}b?~;ȣڶ?nTݦ?%||?}cѿڽL}O .jr8^/ɡؿ%޳ְa8?d0n?&?[Jq뼠gQ: a??o<3?`#s-ѿ?NM?n7կW?;>\?<*d?w?sGb}|?)=/B?N ?=w[`H?lvd4:ܿh&]s῎ 뷿&X?ZC?Ev?h ??+MÞ?]Pſs4 ٿmXs0ٿuhοoD'Ӱ\Bkͷ5fڢ>ѿnfؿ%rԿ&7Œ9w?2B?h>?\jhI?+Pw?v7_nqۿ&<Ӄ`ԫ.g? 2?ޒi? /?(?bp?y6?^"u?4PL6e?9GLJ?i}oӿFeQ濍Х ?@!㿥)P9![Ӆ?A?"I-?%ri?5ɖ?#!L׿>R5$^Rؿ8i¿]7N)?Y=xITgİ#>f8ns2 ?/7Z?,S? ѿ\?]?L| ?h ֝??h?[ Y^?e? h̠?Y4s?cG}3%? sTq_-?X -?4~=?ԿxID)5Կ!8(? F?? ?s횕ӿݟ4۫1T翚F|@?`Sp?>Mv?1D?ơ޿GC5T-ܿ%t_b/?4/6?) Քz0{?"5r?0`Fb?nӿu]ҙaI"࿔p?9O]?1qV?A`_ʩϿS[ix%0~X?"ybe? k1?y) ƕ2ֿ#;_y˿&hm%L?+<#ap!iƿyOQ>?Ky|? Qx?DgU. ;+]?f?' ?l1K?nJ(aMw7ˡ? KF?+ l?:uпfHgQĿF`a%àhϿDGgK}Ԙ?+Y?6[1K翕bex?.O@Wo?fB?o¿n_$ ,PJA>kEοN:[zy?7ǫ>G˿^ek Sϯɿw6f*/?$2?{bѿe%s,^Ckο3(?9WD2?]Cx̿D#i)k׿1@;y\?z<7?=q@2cPr 3_˿=y?xdK9J?@ l%?!NC?mو?qc,Ϳy3߿/ 1[ %!Ճ?_?r9 +޿`wv"뿯PoHv?LMž?J8Bݿ5>؄kO?Q?1lBɿMBAȿá;gj?0 +gayOAE?6$?jMa修ӿࠉпտKY?J2J1i?"[T셿{'d>=uٙտ&?sv^?%q׿UZ?cۢԿ8}ҿ#Q?`?*EV˿g֫~(J?k?@ΰ{I?2?EiUfpٿMUs,2'?!}v?R?Z?5]TU?ע7¿ԓirZؿWw?<N? ?'vV~d]</ֿŷ0>?{ݭ?'H?gۿy{eH8?[׵F?`cv?@o-ۿ{̌;Bs{?i>{YѮ?{?-B ?Ĥ碾g ԿݭbP?CD?"|[!?ă`«]ȿ.?3X(O?hA$n S)࿯;)e?2s37?mʿ/?%%ۿ$J?7܈ه?J ?|EW ?퓕59ĿѵtI?2Wkb?IܶN)ֿM޿yIF?eK?x}`˿'cܭے?K /?|ߍ$l? VMC,Ͻ ?c,P?U]fſ`yMeķoEeYD\?Z]?VQ ʿѕPbڿ mv?Ol? UſyH4$俐ܻ-/?|?UL7Re]iM찿HSi??F?B!ӿAM*$%?-dÿ8a?E?\lkM̡^?[/T?JZOP?lX.v?M`O?>?rXԽ?B-wf?9mf߯0D!?Ĥ]6VK?a~?0v'6o?AXiէ+z?> e9t?$`Gÿ?Z4p&ѿo?Qw6 6ӿV;\?'2ÿۿ~ ,X¿7>|_Yb?,V,\ҿ1Bdſh(jA~r%!㿠W1࿽H^hZ98{[Zvk/Dٿ&{$9?d"H5Ŀlм?q'nrz[UA;?bS!P6ʿ-e ?WпPN?YЗ޴w?Jh #Td?Q1 z?+?&j>?rc?k\+~??&a/,0~MG?͆P5?R5ݪѿCx?W%9*WؿG4q?H#>wAۿ0?. uщٿѧEĸؿ yRп9 +G788?~$i ]'0|?9goVMٿ }?=+ԿBs٥?`~?.Tra 8_??nq4?Qރp5?l?m!ϿֹW?u'?uf뿬%nUiҿY7ȟӿ=[P/῰?t3NAuڌ}? }?X+頿 zUᙿ%/@5w̦?hq"ɦ \~?z+4?s`忀 !?\kw?v)F?Z?]Z? T{V^?d;\߿Qh? $?P_7Zo LƑ?j6!YL3c *?uX?݊?ה]F7i?Ne?/Ob?Ë`?{ p?oIF:?xڰڿJ׍Uʿbv?TT忿:{AYFi[&rq~V|%J򿌠~?p:]?zAԿp1!?> "?w]?<㰮ο$?khg?uHvr31 ]ο4Q~׿a߾G/.,C:?h+(?O%`ֿ&Ȼ ?FN?GR?ZԿO?_γ!? Pf0Q,Y翠})?ƴT_H$cd]? A*9?/?dM=?|&?↎Ǡ?=˿ {'-l"H2]̿~@X TfW'Cq¿'BI5N?ʪdsȺ?T]PKZƿ 3$|?9?? \0pſ?uzf뿮F01#z?N?=ֿrXȢ?BdS6?1p`@?>ĿPӿ,zR?=?qZU=l޿HKy?Tbm?H_ B-Gl"n?|?~m?Ni2z!῀uF&꿥}%-ϒ\ſ|e1lS?N<#?/\kk?\BĿk[l?r6?A+=0XY"u͔WF_?2.?x %c?`-Cc>HǼ?x.\E_?Wor?}|)K+ x96?/VֿGٷ꿸=vuV?RbX:?1Ƨ?vD[?>XV(:>]ĿH-'EݰlX;?)o?0?`qnMD?,aP?;LNj_r?IZοJ?E?ڱ?'(ERF YˏM#0_?zH ?Nj|0?:j?<̌{ӿߩC70GoؿčfO^v?R2'?odÖ?^;=`oѿE0ѿ^ös6/?hY:ƴ?ôvI?@ߒW?|)e)˿.Cr%ԿڗT2_ʿ Ҕ@'?K,?8"T?zj]8?G<*οpQ{zVN⿿-#/&*¿s?a8Q??MdlȦ=򿒭WAV.?eE?X@?h:?l1?M,m}LFpj̿{b?uH}?;?KxbL*Ov"$FP%濖={ ?x6^@l]@(k?o пU^rhSB[?Լ?)aB?[4[?E,?<-yȿ@xQ ǿVJ(RzֿAt쿎~I+u۹ؿHCf?_W2?xRڿo:$fƦY p #?k|?| =p?DٿqVMl_SQA⿸'?h96:? 97?/f?g?lVZ?jV?F0U?>)zQZ,3m$^Rs?;@L 7.?N0QY?Wտ% ڿR]rQ?ݿ@lU{Tq 2ȯ~J?w5 Ҿ?{?,$Qֿcq5VIfgd?}:?J20пSWY׿6?iPJ?$%X?mdA?B~5/Uܿ `,?GS%?ʤ_;?<?Ҧ"?KD??#.oi|gl ocꃸ?kE?CɿtF={Q^ ??l<?+?9b,K#q[翼ʄy?Oӯл?3pkNKy|?ۣe?/?Z0?F3ڿ @6l%"??̿vc ȨT{Gq*?KJh? i?ddz|A?FhuWUd?E.??*;B5R.-D=vq?ֿMc?IPpQ%e&念Z@Կ @a?ySbw7?g??ԕ?ktῒwͿ9W^?H<)EZ?~k!xi ڼg[hv9ſX z?'啙? ٿV:rJx?|Ֆh?, ``??4L$cY.᰿^?+a";} MeA:5lY*}?8? iؿ hp={=*ndb? ??6l?Xj"3AsvG?(?}D;z?ϭӿ=Qb CRNyPؿ%;äKu~쿙ϳW8̛Xc?C?VE8e?UVV,ɿP[z ¿7O]6&vkȊ+9߿p﷧kz94 5x (-E??h@LѬ?pg??9 迚 h@P?qh?+4iS9?S~{޻~v)G'ɿ1Aɿt^q _A0*D߿74} Kά>4=SbD,J?8n H@F€+׿ !tc?9*ŌrտaVӯګxt?@Az1?/ A濠gL?]o?VB^?,*Կ1@?MdA?g?Q#mv`X?\~+g?nɇŇ?¥P?z?U@?눱?"c`n?=l?6.?ˁ#ȿI\?9P+d?>o3?wг ݿq2ԅ?3Xu?|胞?><|i? e)?UF}}yӿ7O?rտ[8+F-6ۿ ϥ?w?RdCoQ}տ&a*T?~xE,|࿠Q?Gs(l֦_ptݿMgWJ,\/@dz:?zS}Pj׿aCEK5$Dċֿ{l)rInW/* ؿG$`'?NPN?n-}l>=V;6)(XF?Ĭ{f}YԿgΘ?컿!,웗m^ӿۻ&a? J?c^:u :?aӿ'D1zϽ? ?4N?FU!60¹+?T!M?|pqۿܽq8 ?\ۿl𩿽8W%?6}#?SE}ޘܿ05? }l?w n$%?wre&?0 ӿlr,b8i5o`?2\T?V_M_п\,?> V}?s |x?7 "{R#L1?(=?OΦgW?h/xo?01?H?C7wui$?-^;?їy?@,JS? ? ,Y ?IN6j .q?d8ƺ?ޜ\?4?Z{Q?&$.?v"դ|[A=>U> ?G.$?yԊ?c?m1?.{al?WA E?v x?pkͨ?"?`K"?a&?1wYf?'LP?? z?1mk?Bt0?YnTw?6\''?^Y?G&p?TThGa?]A>&?PK!voٝ gabor.npyNUMPYv{'descr': 'I4iS7',e+j2jf7%~A7y铠Lx7%4yd7!|Fb 7 f7BǙ7BǙ7`U,: |7MӒ7cGk77V=7F*v7r34aI'7 ^ܷ\#8|,R8nS8,,V#砵#8M3I2M3I287QXI/_7@8*H4'_zI8⛅utrZq^M8׼!세̵OQ5K] SRrŸb!TL^4mD2);;jŸ;jŸ r Ҹ{۸#:۸w޸R ^+^;55L9Up&"9K6q&B=9PE`(%S9o(%S0eh9j=L`{ /@|9'Rg{t-ُ9ShWi9b=Vٻr|[92 ͮꞋ9C 99Wm9g 9R9R91_Q9;֡&U9[^n9Ū:p>|Q9x=:,:8T6^L7%:$[l]N5:.30~*C:ߏH^NLR:a[]^z[]^:qg: N;TYp:7|wp:~vĤP:|7Z 5pjƏی]^º"oL }кAp~ź&lY}ں)lY}ں¾'XoZeZ+x m,n\`@ro*txeMX;BD-9}{,%;>h&:חt>;jsF<Q;<Q~c;Y(zZDM~t;3aԅ]MC;X4F`e ; UoXM;6i{; b;*G!Ϙ;,;Z[{;@!;@!;a N;|n;xX;v !;h6]H;5];8*㸭pɍUAɍUAb X='U)w=@}Nޘ =qA8iQyI+=l_vd=46=1B=?A='eO[.,=`5,H=_za@=jxQ=jxQ=I/U= /c`=*ƹW=Gl=JLS=xAx=)n0F`, F=ʀSJhJ=iվʂ\=64o;d =sɝa[ɝa[=Wc7Y(s+=ދ*-?5C+=R)5˽R=ɻeս3pn:톩Mqt}IB*"(?mӽjhAn!彍xbxbBwS起m\"Β >>)gn+s{Ȉ >(ye31/>1>@93])@>3])@ !K>EQiB:}V>trBta>Pt;NGVbi>Z$H TQ`Wr>]0M>%T4x>DÚd>ӝ@ >eru>P, >P, >.#tͅ>+P>dnJ>uɂU>^.~>X87D>U~BD>^4Z:$>ݗʜh>I崾'`9F>oI_m¾I_m>@;܂7->DԚ־>Yf^;Kap>S*A;g 2"GȾRp jI/75z[fンeZHeZH 8z,jZ^i#|e>m^#?#s9*d=(Ѝ= #?],8=¶/?#=¶/()8?0%0gd]A?u1,9 ͕G?"A "vO?J 9ǁS?w /?_iW?o2eC?'&Z?_VsQ?JF\?F\? tu\?zƹKe?#X?m=m?$ÉYO?6eZcs?Q5-;ٌ_y?jE6XY*n~?hEYmc(?[:z|q0?^ xz x?#gy:?9r{5⓿ؽx?K"It \t? g!tBdYHV@v0vY"`ACFS@*V9sAwmt+޿.fsb֙Zϲx궥?N=zvֺ?p1f?WV*.@WV*.m[@) @Ppa-7%\@cCygJ@( COl@B>O-?(!@7ytU?r"2@b"v?g م@= م@R" ?^j[@^Ur? #@_|?\s@Ʃ=<8@Cd=z@  z kɼ@-W` }.Ju}@W3?;mbRxImUN?6E?a? ~yj?1z0j\G?CTM~n׿zr?q4HͿ2?E`뺿B!T?= ӼeZCTI?ꝥ@?Y9?mi?U-;?>lx?yFS??|U???Cff?18?N; ?3P?=(?D>q-?xU?1aϧ뺓?E4A-偭pʌ?&!ﯿX#?EϯĊ*Ϧ@?'Wxӭyc}Ⳙ?YSq8*?]?ySɲ<uҌ}!H)^`bDdP" X%of6G0H5zh|'vMfka@&F רK?oG,>5Y?Ļ}y$c?e Jviټu?F2>v?jb\/Bd?ь֒'ʀTր?w @HP]\?<x?\q/違F5l?U'&r"?sKFf]@+0?oT$!`}Ѿ#At < $O EI┶HƲ?2'Dzy7?/ڇ =l?U?6[h*-'>cRc'?XID{I?KY4̿ZF{,eh=NƿlSQƿy>Iҿ+qz?PzͿkwc?-ihA?hA?` g>"S?gdؿA7qd?{ њM#TQ>go޿Mo޿7ht~1>Rz}2Q?ÈL\$?&p4>]?D?E u@?яRq+S?1ϲ")>C͛/#P/>{mDJӲK?K؎_?g(T=9?Z=9?W&Խh?Bw+V?7Dw+V䶢.WY?2}MuxZQ_ L?h[Q_ L?5.|t<vO?=L!AL=L!A?,2Bs3p<쌌4쌌4Āzg zЋ`6 ZF(? ZF(Ǫ<*?wj? dH`[YE??[YE??nګ'U<רK?G@~3/@~3/?tw9@{%*WYCYCL~L <@avkJoM>oMJOG>b _^;{~8>M{~8>,,n;S*>& ׾ >($B ؾpa:;p7`_oɾ5`_oɾ@5.k_ʾuƊ>tƊؼ? >} :d>Y :d>e*$ 4;BD>*Ǜ=Ǜ>=s:zkћ$ki;{׿K{׿-LM»'9TvZhbL{>bwZhbL{Yz>؀kjrj>irj>;]~NGVbi> t\+8XtҮQTlqGylqG@jndC5oq4>-3&GԔ&o$>&o$>@9.A;\">ޢ+l`+l>=Y?')6;W(())qЯP=P tAߦ=G*z=*z=m˸ ;ɻe=Ľg=\K½ȷd:r d d$ ::sd 4XH=JYHf='YaV:o=Fn= U, F=)}q)}q=!n|kZu:{ ^[P^[ۅ#lqYXV E=͟V EgpiB=TNdPK!Hk sineoneoverx.npyNUMPYv{'descr': ']B=ػ^uPSxǸCs<{rY!^?A*)Ҕ֮AH)@p|.J)F'ppu|ݗ;'e!!m*Dag? >A?q1?+X4]ۖ?Z+댝?Hb"?X?EO? GJ?-H?1?(I G?ͅ?4?(h6ny?7?C?k*?s:1|?'V5`?b5j?B4g?ˈpK? 1?l9?f?_g&? lcG? [U?뗟?1X@É?kۀt?_`?o&0L?KR8?&K&?Wڵ2! ?v?79h?IbA?gp?M-?CZWa?Ug#? R??.?oyuE?`%?8?B?GLF-?pT'?g+f"?PI?:si?ź?ڵ/?X8Fo?2c{?t$L?H5y?q5?i`zGq?I/#i?xΘi?Čb?8b?tQ?.Z?;]?g)?<g?J?8F9?C蝽!?Rx*_?xk *j?'X4?^~?7V?J+?,?b9?eI L?Pk?x?.?8Mn??k {?fR&?8:?w (0?o8k?3?yvg?S[?XF X?Lz?漝?ޖ&pu???O3y?pg?gޙ?u"?`Z?1?I?bS|?#{ǜ5?{CIk?w~?7?Yp ?%=?⁅Qp?ްn?@?S w?&mU7?Zg?}.?`{ ?c!d?#J!?*N?0z?Є"H?EAh?S\?#?GسK?7r?NtO?¾?IG?- ?k)?4_J?>Ռk?1< ?w??CϏ?ޱ/?ս*`?:0?@=G?t^?1r?C~?V56?! i?3z?r?e?K ?.?ma??Ksv?qA?^g?ebH+?48?k?LuF5??Ko?i7i?6 ?&O?h?\5ҩ? ,ra?'{??lRl?JR?Tɂ7?>w?h?gZ?n,A(H?FR|?++dTc??7?G ?d\? _AWn?p?kj+U8?U~Z^?W'?VmI?u}>?>~?I?L亿f?0N3??u?K ?Y`?LwHj?8> ? VZ?0f.E?m&a?cr?B!?W Nɓ?C?K??@᳡?;7-Χ?ޏO? ?K?P|?5?Ⱦ?TlDu?@{pD?_:?]1 Ͽ/,@YѿFJӿX$N8Կo4Mֿ9?ؿ7 $ٿHUۿfC-^ݿY,߿KZNf]?rq1r j⿉⿸YK&`U%i俻d#s50忷 M忉V,lq@kv1 {{$7x+zЅX꿓5B7 aUDӣ+rk*o UrpiK9!?@Yo:1+;8wy+ 0x₩) uᅧD, ￶> (￞'{Y{{Pv[6kz:}tNc 'Cb"ޕmۋL=_ߖ@@n;8=vRMwިP (<":T儆8s࿫޿Shۿbؿ2]jտD"_ZҿLrͿKǿP,ξ>ܿb#i_ ؅0HH?B'?4 !?"?i!?5,L?x1B?q DH?95Wp?20?{m?o17Kw?DSv"N?oGyԉ?68?Wx*?'c"N?gO?7,?^mt?\ m?cGq ?̚?)? p?P;5T?$↲?Zb?M>? i?!?;?ʝ?n5?BaO|?*5i?- 53?2 R?ܔbX?x3?=bcAe-}8̿6O8Կ^p3"ۿ81࿡1O|ep\$迋z'5~ˬxarp*eIC￧l4V M-4>!m쿙ހ,c့㿶-߿ֿNņmʿ461|^;?Hw?d?J2F? ?!|k?_D?*?Ef'V??VA?!? ?[W9? ? t+@?dlSO_?GZIAk_ԿKϞc`4/yw'15{E)uIK j(9x>h.u俫|׿VL(xձPj?ġOIg?& TXL?bG6t?g+~҂Ls?f׿,:(?٨}?-87?9?*5>?"ct?,00uٌ1wC3Eܿ6??{a?u)s(6?R-R(3↑%\ܿMF?U1F?5`?hƒ5˭ Cٽ[?_J,?khZ#N޿E#P?99ѿعs'?L*쿬?'cH?{N l??LG?A5\2_[AJ|տx?*?_gUvdh8b޿kc 69hT?2ދ?~2f?"~?KտG, &俑듦￞o3k?듦? &?G,?K?"~꿨~2f2ދ69hTƿkc ?8b?vdh?_gU?x?*[AJ|?2_?\?A5??LGڿl{N ?cH翉'?L*?s'■ع?99?E#PZ#N?kh?_J,Cٽ[˭ ?hƒ5?5`U1FᅴMF⿪%\?R(3?R-?u)s(6ѿ{a쿛6ӿ3E?wC?uٌ1?,00?"ct*5>9-87٨},:(¿Ls?f?+~҂? B8>?9^?#@Ő?kd?_ۋ?ci׿g6gs8Igh?uIK j??{E)?w'15?4/y?KϞc?k_?GZIA?dlSO_ t+@ֿ [W9!? 뿠VAEf'V*_D!|k J2FdۿHwѿ^;461|?Nņm??-?c့?,?ހ?4>!m? M-?l4V?C?*eI?p?xar?5~ˬ?z'?\$?O|ep?1?81?^p3"?6O8?8?e-}?=bcA?x3ܔbXȿ2 Rҿ- 53ؿ*5iݿBaO|n5ʝ濩;!鿰 i뿍M>Zb$↲P;5T p)̚cGq ￾\ m^mt7,gO'c"NWx*68oGyԉDSv"No17Kw{m2095Wpq DHݿx1Bٿ5,Lտi!ҿ"̿4 !ſB'0HH_ ؅?b#i?P,ξ>ܿ?K?Lr?D"_Z?2]j?b?Sh??s?T儆8?":?<?(?ިP ?w?RM?8=v?@@n;?=_ߖ?mۋL?b"ޕ?'C?tNc ?z:}?k?{Pv[6?{Y{?'? (?>?D, ? u?)??+ 0x?8wy?1+;?:?Yo?!?@?K9?pi? Ur?+rk*o?Dӣ? aU?5B7?ЅX?x+z?{{$7?v1 ?q@k?V,l? M?d#s50?&`U%i?YK??r j??rq1?KZNf]?Y,?fC-^?HU?7 $?9??o4M?X$N8?FJ?/,@Y?3=>?3ᛑ?ڸg\?Qc?`x?L6??N<|?_)Sʼn?/6 1?X6pZw?]1 ҿȳ}ӿ^uտ LwHjY`K u꿘0N3L亿f뿄I뿯>~u}>VmI쿥W'U~Z^kj+U8p _AWnd\G ?7++dTcFR|n,A(HgZh>wTɂ7ᅳJRlRl'{ ,ra\5ҩh&Oᅯ6 i7i?KoLuF5kᅮ48ebH+ᅣ^gᅦqAKsvma.K r?e3zᅡ! iV56C~1r￷t^￀@=G￑:0ս*`ޱ/CϏw1< >Ռk4_Jk)- IG¾NtO7rGسK#S\EAhЄ"H쿸0z*N쿜#J!c!d`{ 뿤}.Zg&mU7S w뿵@꿎ްn⁅Qp꿈%=Yp 꿳7w~{CIk#{ǜ5鿠bS|近I1`Zu"述gޙpgO3y?ޖ&pu翳漝LzXF XS[yvg3o8kw (08:fR&k {8Mn?保.xPkeI Lb9,J+⿢7V^~'X4xk *jRx*_C蝽!8F9࿔J<gg);]߿.Z߿tQ޿8b޿ČbݿxΘiݿI/#iܿi`zGqܿq5ۿH5yۿt$Lڿ2c{ڿX8Foڿڵ/ٿźٿ:siؿ"->ؿPI<׿g+f"׿pT'ֿGLF-ֿBտ8տ`%ԿoyuEԿ?.ӿ RӿUg#ҿCZWaҿM-ѿgpѿIbAпv?79hпWڵ2! п&K&ϿKR8οo&0LͿ_`̿kۀt˿1X@Éʿ뗟ɿ [Uȿ lcGǿ_g&ƿfſl9ſ 1ĿˈpKÿB4g¿b5j'V5`s:1|k*C7(h6ny4ͅ(I G1-H GJEO䨿XHb"Z+댝+X4]ۖq1 >A*Dag!!m?'e??|ݗ;?ppu?)F'?.J?)@p|?AH?Ҕ֮?*)?^?A?rY!?{?Cs]?b??L S1?A_??y^=o?PK!\ piece_regular.npyNUMPYv{'descr': '1ykG&11z[o 0q0C>w0|%Ȟ0|\0aj_0$O=0R!dg0wfU/9Qž/#N/ .t[7y.8H}K.Y-N Zʌ- '-hI,t{ R,(K+k+~*{\׉t*0^)zTzk)](,"O(1X'L+ ']w&s%2%8S/ $e[ز##a#ɞ$V"&%}!Ŭ%R BEoNJ@ψ2O~zmND(ʚ&=1d<1=\7m<#a!/ (X.bCHl\޿+O?.J?@~?̞?Tr@d0( @Pyw@\Dn@4+@`A@T$@L^D@xzFD @@p.!@8#@J񎾣$@F>&@*'@<f5U)@k*@^u+z,@ݐ.@U/@~ǰ0@Ct1@0 E2@2;3@;3@ 4@z羐5@f:d6@?b97@ 8@L?8@Z9@<`:@R"];@~ V/<@rV=@=@xZc>@А\l?@$AKQ@@nz`j6@@V @@5GA@ij~^A@ӣ B@1rhB@F"B@{!C@!{C@8 0C@*D@2fcD@BD@6u?"E@- SpE@\U ME@N쁒)@,)@䂍Q2*@}Ʌ*@P>k5+@\¢+@k",@<,@L&%I,@Z[-@3-@C.@j8^.@d֧.@.@tH'/@`]/@SX/@|(/@㿾=/@°/@VU0@ȀU 0@ L0@ L0@ȀU 0@VU0@°/@㿾=/@|(/@SX/@`]/@tH'/@.@d֧.@j8^.@􆱶C.@3-@Z[-@P&%I,@@,@k",@\¢+@T>k5+@}Ʌ*@䂍Q2*@*)@N쁒)@T~T(@Da'@R'@ &@g32 &@Ҏkc%@dʶ$@pdH$@bP0bQ#@ߐT"@1rhB@ӣ B@ij~^A@5GA@V @@nz`j6@@$AKQ@@А\l?@xZc>@=@rV=@~ V/<@R"];@<`:@Z9@L?8@ 8@?b97@f:d6@z羐5@ 4@Ȏ;3@2;3@0 E2@Ct1@ǰ0@U/@ݐ.@^u+z,@k*@6f5U)@ '@@>&@>񎾣$@8#@8p.!@pzFD @D^D@H$@TA@+@\Dn@Pyw@d0( @Tr@̞?@~?.J?+O?Hl\޿bCX.(!/ #a\7m<d<1=ʚ&=1ND(~zm2OψJ@BEoNŬ%R &%}!Ş$V"#a#a[ز#4S/ $2%s%]w& L+ '1X'/"O(](zTzk)0^){\׉t*~*k+(K+t{ R,hI, '-N Zʌ-Y-8H}K.t[7y. .#N/9Qž/wfU/R!dg0$O=0aj_0|\0|%Ȟ0C>w0q0z[o 01ykG&1t>1U7U1(1j1Wnv13!1_$1x뿷1K 1H4(U1a1 1^#2=00_=2OFC2/ *2]5 62O@2v%K2o#T2E]2[̫7f2n2.b v2~2*(2K2 5Mđ2^2 }bB.2 !i2ZW2hu27S2 hM2^nF2B$I?2oY829٢02k'F(2Ì2c/R2Fk 2,J):2L@H1Ʊ1g;d1,X1Llq.1ȵ13T$1_o51\ʃ1YHsp1{n\1A3pSG1Tf01<1ckwB0o0ȲU0*=09Zz0`S[0 >30P=*0 /q9uN/H:.<,l.|9-Cwb- )l>,$=(,`Żv+fm*b`F)?(j+_p'e&xq%1hY$ q"`' |wC!q FBzR{ZCD݈i]/n8?K\W@E|=@xpUp@t~-$@@*@4G&1@|1ZEj1ǨnW1HC1a Q.1{DJ13z=1܌˭040ϛ0=00oN0hEB$%a01·A0.#_d 0P/@/֛,f/s+/!vP.O_jj.>oH.7׵-Vn|H-]a,ֿ\*o,b- J+hDf+R+Dz* $Y)ήY)>(fLM0(rK"Rs'bF&b닥&ݤC%u$ #[Ž"@81@@8dA@8dA@81@@ b^>@5w<@I:@\-c58@, +96@= U4@l'?2@0@ĩMR.@H /+@62(@W%@( <"@ʿ/ڵ @g@KI9\@]im@K"p @迦]N@^?C?vܿ]xJ |K ̶kJvugF*w=z)aS\_xZ[q\ (ήY) $Y)Dz*R+hDf+b- J+ֿ\*o,]a,Vn|H-7׵->oH.O_jj.!vP.s+/֛,f/@/P/.#_d 01·A0hEB$%a00oN0=0ϛ040܌˭03z=1{DJ1a Q.1HC1ǨnW1ZEj1{>|1{d1[1k!\1HJ?1~t1C1v1dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@Pm:@e:_PA@B ȷLA@&ZHA@&S8EA@?39"AA@€=A@G8A@~4A@J"0A@+A@|&A@zN"A@$D\)A@WIA@A@p{ف A@JA@3dTA@[@@C@@Bn`@@Ue@@Vk@@,@@@&<@@R,@@s,@@z~wE@@:^@@fԾ@@֑ V@@!TX@@AU7͗@@zZ@@s@@\,|@@)0s@@wci@@$R_@@`T@@UJ@@8f?@@>*`*4@@(@@W@@XF칌@@0"@@aD@?@* ?@J[?@ZRP?@?@Ӣ@b?@u$gC?@peN-$?@w?@Ί>@ 䵲>@pbܞ>@x>{>@PCV>@_zAq0>@$Gւ >@_=@/"+=@{]=@Xb=@Zƙ!j6=@L =@TZ$<@ <@"R`w<@;AD<@<@n~;@6;@$,i;@̋.;@PhJ:@s\:@ֱt:@LL3:@#9@zp^9@nxc9@$X9@"8@DP.{ӂ8@&38@ɰ("7@Vl7@Mc87@NM6@ښ6@`tX'6@.֮5@he5@;4@Pc4@0nE,4@P$.3@-؎M3@w2@0pt6a2@xI^1@n&h1@@Y0@ !`0@Eӯ/@*5.@` }t-@DJ,@B!+@42k)@v90u(@X\O'@Ƣ %@2c<$@B!2#@!!@?GC @ډw@T^S@_S @8^3@4K\@ I @WE@`R/?4?zevF'- X<( Hp nhkF d 9N/"`\%$U%`'fI*JD--0w1dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2dݓE2^2 }bB.2 !i2ZW2PK!W piece_polynomial.npyNUMPYv{'descr': 'ܞ@PV1@1.@! @r4@`v$]@ ,m@@cj}@@@ >$@9A@As@A@@ͮ @@BvcL@0?Є@ H@dBW@ E>@ࢸU@-E@l7p'@2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P2P\?_9@xۇ$:@VF'U:@XY:@,:@0P;@8}|V;@o;@01]R<@hP <@5=@x⒓(\=@DMp=@S0>@Mim>@@^>@ (?@H]?@C?@uÝ&#@@%ZS@@,@@v2@@ĉ@@dۦnA@g`7MA@(HrA@/ A@HBA@0zB@y,QB@N_B@dsRB@̎rB@@*C@|:aC@8C)C@4&C@&}R D@kCD@Ef}D@y;ƷD@8fD@́-E@|wiE@.lwU(E@$)޴E@؇F@dbB\F@$AEF@F@$#vN3{ s3n 3N3qv3*4͆)4H9 M4 Co4v44!xǴ4"48@,4qL8J~ d81;W{8 &Z88ْ8M8Ep8VGt%9$#v9Z(+9|aC@9BT9h9(R|9:lM9"9"d+99Wد9 ~9w ^+:ڰf:$:|5:hmG:`PfW:Fah:\x:uE8 :Fs:hj.:u:b$:>Rce:p:C:q;G6;jmT;ѫ*;H|hB8;.VeE;6PR; 5_;x@k;kӳw; ڃ;|H;ַ];vɨЦ;쓍; c߈;8QQ;|fu;B;Q;O9c;z)l6D;4<$#v<f<=<r[N=^^weN=jT}lN=.3qN=_tN=$مuN=/vN= }X9@51:@881H:@*zz:@$YҬ:@:m<:@*;@4~WD;@(gw;@wa;@sB;@Y[<@P0cC<@<0v<@d&<@9+<@LYD=@,D#G=@~n{=@C°=@*4=@>@8K9fQ>@O>@j$">@2 >@L(P,?@xnc?@b9?@6.ߍ?@rֽ@@-n#@@kY@@@U6]@@JOz@@КK蒘@@f;(3~@@C @@pH$@@uA@kc0A@p?PA@PToA@rB_ԏA@ĉA@&ޮA@ԵA@@B@iz4B@ZqVB@xB@\vB@"dB@ B@ԲC@ )*C@FrNC@UsC@DFC@̶T/C@n,%C@pO D@!3D@(<[D@d$[cD@VwD@'D@/D@t(E@p)eYSE@n~E@*E@%E@,MSF@_/F@(F_x]F@bhF@T~κF@X4F@?9,G@_QJG@x{{G@ٱG@jG@<H@VdFH@M"zH@f^H@7H@-I@oQI@dI_I@T{I@OI@^M93J@NZISmJ@hqJ@J@MK@씒\K@\dK@K@lxL@ Q־WL@[L@|juL@kM@`}^M@$P:{M@#M@{)@,N@ĠUrN@|;N@xO@,C{IO@1 ڒO@TwDO@gP@k:P@lf`P@<\\8P@$?bzP@(k-P@|DeRP@}I=&Q@{OQ@8:vyQ@(bg:lQ@ޙQ@36޼Q@|v\$R@J,y4OR@aS?|R@8U R@BxRR@JS@Y2S@*SoaS@п[S@;S@j::laS@ u'!T@uqRT@h;?T@ T@D9mT@U@N]ZHPU@ !*U@40>`'U@>U@~ F%V@vwb\V@>bV@hNLV@|W@fuEk Eq0E9tBEd;ELdEA!:~EisjE'M/!VEE減AE3,Eg55EE'tEVDvvDJiD 3DaD7|D B,٬B*e}3BOB{0|B6\>0eB?RMB;Z5Bl::JBh~ BzKUAqqA&B A'Ț}ARՊAzrA{:YA>yG@Ad;'A8 ܉9@ p9@۩W9@>f9@vw%M9@]^ 49@DwE9@+^,9@pE8@X+8@@Ꮆ8@$u8@ \8@ǕCk8@{|*R8@bc98@I|J8@0c18@xJ7@\07@D擻7@,z7@a7@̚Hp7@/W7@gh>7@NO$7@5h6 7@|O6@`66@D6@,6@f6@џMu6@4\6@lmC6@ST*6@:m;6@|!T"5@d; 5@L!5@0ׄ5@k5@֤Rz5@芽9a5@qr H5@XY/5@?r@5@&Y'4@h @4@P&4@8 ܉4@ p4@۩W4@>f4@vw%M4@]^ 44@DwE4@+^,4@pE3@X+3@@Ꮆ3@$u3@ \3@ǕCk3@{|*R3@bc93@I|J3@0c13@xJ2@\02@D擻2@,z2@a2@̚Hp2@/W2@gh>2@NO$2@5h6 2@|O1@`61@D1@,1@f1@џMu1@4\1@lmC1@ST*1@:m;1@|!T"0@d; 0@L!0@0ׄ0@k0@֤Rz0@芽9a0@qr H0@XY/0@?r@0@MN/@x/@ME/@pc/@@0/@RS.@!}.@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@vwbR@RJ$@x h$@@5$@WX$@$&#@WO#@%m#@H:#@\]#@)+"@\T"@*"r"@P?"@ ab "@.0!@aY!@/'w!@XD!@ fg!@35 @g_ @4,| @PI @ kl @q)vU??D?0Pm? iL@"s@]Mp@"KT@IcMs@h9;@X3y@Lm@%۾@5p@YX`@P )@VES@ %L@8 D@@U2@4i}@e{@,U@>x%Y@;f@TD@7-@ar_q@j"ߵ@pW@n ;@.@|@@k@ @cI": @B~w @@G @)C @'F) @ c @)f @! @X @W>M> @>nEr @Ґ5g @(o @HUr& @8 @s4g @4!K @\ @tt @:M4A @sai @F2k @8bR @<̶ @,-b @!!@~+KjB@Hb@ L{@-VA@t ػ@dIh@@sx@0~ @:vR"@d8@,/ ;`N@\ϗb@x u@Kqd@ $@U@@וqy@ԟpd@|m@$%ѣ@[@:@qe@~my!@\r@ ̈́`@ܒb@@ܒb@ ̈́`@\r@~my!@qe@:@[@&%ѣ@|m@ԟpd@@וqy@U@ $@Kqd@x u@\ϗb@,/ ;`N@d8@:vR"@0~ @sx@dIh@@t ػ@-VA@ L{@Hb@+KjB@!!@,-b @<̶ @8bR @F2k @sai @:M4A @5>t @tnEr @W>M> @X @! @)f @ c @'F) @)C @@G @B~w @cI": @@Bk@.@|@p ;@pW@j"ߵ@ar_q@7-@TD@;f@>x%Y@,U@e{@4i}@U2@@8 D@ %L@VES@P )@YX`@6p@%۾@Lm@[3y@h9;@HcMs@"KT@]Mp@"s@>L@ۤ?xR?@8]+?[wy?d1n?I?\ ]??m+Ȧ?Cy?ؓc*7?d}?1?E0?'?}L?u?pxB?f\?PT?.?@L?D?xb?7O? _!{?CEO?lO~j ?\%?i)vU?)vU俽?D&PmiL"s]Mp KTFcMsh9;Y3yLm%۾p,X,\(jlꎄy&M"M]es˪QIAPvFƀ2߽o[<,?3OPVTu*s0W5qv` >5@^Q}1$cz#ה#p}1PMO^i ,z&AhȚ37V*9b^xY9D3J.~y`czvhE买F5MP1)afۉ1WrC{%5!p$vD1hս@cOod]$sk9Qxl}?m{)r2y0XK<̺ԥ8}̈́dRʸp82>Ӷ F^~Ā8DzJ{w9fB0nM nM fB0{w98DzJĀ^~F>Ӷ p82ʸR΄dԥ8}<̺XK0r2yn{)l}?9Qx$skod]cOhս@p$vD1%5!sC{1WafۉNP1)F5F买hczv/~y`J9D3^xY*9b7VhȚ3 Az& ,O^iPMq}1#ה#cz1$Q}5@^` >qvW52YTu*s?3OP<,p[ƀ2߽QvF˪QIA]esM"M펄y&jl_(,X,pym_on6< d4לmﱦ YĮ&d9^C~_Mmjw n {qí2L7ct$ d 柶dS vԡ I1 TWS> v掘 "}B 擟>& : sX1'W^~PQdܓl i.>/wv"xOJ]T`3|N`.^6"TSھ>YZV_bEYW-6 ${Gd p6ɅmEuMQEA0RyL۷JVYKPNOHUjl*Jc`ϸ`kD`oI,ᣃ'P>^] X6vPoBs`:[IfwYT\R>L?H?1 .?A5?=4?P暳s?Z?Жf*h?H/? ?2?ЅI?*?Xw$3?$lni?*?HVJ ?|3Ҥ? ?xtTB?dd?,y?S?P ? |?|?]\?.v?|]t?z.*y?(G?$Dt??g?$_Sއ?O@OS?6?FCR6?C?w?ƒ΁?G?a$?uD?Xq?Z^v?^/?@BG3?P?4I/?,JN?+j??Ȅ?L+?LJG?z?tZ?Z*?C?? ?%7-?@%7-? ??C?Z*?tZ?z?LJG?L+??Ȅ?+j?0JN?4I/?R?@BG3?d/?X^v?Xq?uD?a$?G?Ȓ΁?w?[>?V?&‘?WԄ? BB?V|[\?~m'?>AqĤl?e ?͓?zi?k|/?y??#hB*?4i?d{eq?L?^*X?!kTK?~2?,}|?*?"CL?Srj>,J@#E4Ŀ8q6ɿ?mϿ،zؿҿKRdտI\Bؿ qV#ۿ@ZEeu޿Bfĝx࿟E0?'?}L?u?exB?f\?]T?.?;L?D?}b?7O? _!{?CEO?tO~j ?s%?i)vU?5an?9?JsVNV?žDž7?.)?> ?>Β ? yne?0 e?0Vue?gU!?@!?)vU?DPmiL"s]Mp%KTHcMsh9;P3yLm%۾/pYX`P )VES %L; DU24i}e{,U8x%Y;fTD7-[r_qj"ߵpWj ;.@|Bk cI": D~w @G )C |'F)  c )f ! X W>M> t :M4A sai D2k 8bR <̶ (-b !!+KjBHb L{-VAt ػbIh@sx0~ :vR"d8,/ ;`N\ϗbx uKqd $U@וqyҟpd|m&%ѣ[8qe~my!\r ̈́`ܒbܒb ̈́`\r~my!qe:[&%ѣ|mԟpdBוqyU $Kqdx u\ϗb,/ ;`Nd8:vR"0~ sxdIh@x ػ-VA L{Hb+KjB!!,-b @̶ 8bR F2k sai t tM> X ! )f  c 'F) )C DG H~w cI": Fk.@|p ;tWj"ߵ`r_q7-TD;f>x%Y,Ue{4i}U2A D %LVESP )YX`5p%۾LmW3yh9;NcMs,KT]Mp"s>LۤxRD8]+[wy\1nI\ ]?m+ȦCyޓc*7r}1E0'?}LuhxBf\`T.)vU:an⿈9TsVNV߿žDž7ܿ8)ٿH տHΒ ҿ yneϿ@ eɿ@Vue¿gU!!PK!:Ā riemann.npyNUMPYv{'descr': 'S?rl|T?F4~5NU?0Z?7 eR?)C/Q?U2P?$LHR?c8VtXF?)En&??k54? pK?l H?v/+H?eV:?i!)E?b=P?iU#N?%_V?E~d?T?P>FM?gU?!O%T?\U?$$>e[??{EFT?5NQ?|ƫN? mR?'EH?{GP?-˩R0P?T{!R? =ϸF?,ȖG?"o?? -.A=?B1*?( Rt3?؊iK?Mqx>?A p@?}0A?VlW?тL?1I?9L?c⼠3?> YD2?62@?6f4?yJ% h!?2s0a?ʘ/?Nx1?$C?0}F?ne/?-Ԁc6?ͫ-?>d5?6o6?Ƽ6?}UO7?x}':?Ve=A?(!?cw/0?T#-|E?L5G?.4B?I+2?X o!$ +7??T3d8@]Q[ko:O2E"o"@p%$T,KT"?ڵ!پ{[c|;Y|¹t C 5?<^=?^ ??>E?|.Y8?~ ^H#>?#@?}rv@?qA!a%?A9?]1?YQ5? S-9?pQ?J5P?п'@P?Zx͸P?mRJ?FYP?wE?TM?6`EEP?@㍃XR?NO?>N?ixF?kCB?xfO4~R?)\ K? ŤuK?DtK?\\fF?pߜQ?FC?dWC=R?v3XbU?; 5S?~MhN??. PV?w1R?`SW?2לU?dcV?$ &W?'X?BZ?XLZ`?BѴ#b?amfd`?kR` _?V5w]?_{\?>|ZZ?y]X?1^?6bMGW?3XNZ?(af^?#VZ?i||S?h/S?aެZ?.nCY?Zk]?E,&h2Z?pV?XO8[?{2^tT?ʷ!P?P2M?EMR?`XR?ԙ T?DI?33ĔQ?n4LV?ZS? >OW?fka[?Q*[?T=qT?o4VS?%\)UY?2e Z?pGY?D{*Y? hoC[?jR]?dS\_?Ld?kppy_?gg]? [?l1ǡZ?wρjnV?H0a[? (pT?e'jW?7CwY?mz7]Z?Aw[V?lIQ?2O2aN?(R?|S?SFuS?`yPY? >X\?b`TZ?:`BC3 U?]CZ?[YW?|${Z?U5\?Rn*_?ZTZ?jN6V?&T?`$?@8Qj?҉ 2?n;s/?Xe:?*dǨ3?Ȉc]0? ?sF9T6[a=?7#?]܇33?捇58,_\A48"[ ?ʁUF@L ?`9i?8 %qA?BwQ?] R?ޜ1L? /R?MSS?~xN?ƘT?ryET?N?A>>t8S?lLG?EH^b8K?L=?_ _h@?Z5S!?FIH=7?Ўӱ?4@2?R̪D??銘O?qmT#B?C?DH?ޞSMG?rq8E?]E?GWB?rq?>t8S?N?syET?ȘT?~xN?LSS? /R?ޜ1L?] R?BwQ?9 %qA?:B>?0I-9DH?p^bA?037?L}?CC6 ?`9ivS&C?y*D?m[B?yqCpM?5M?E@t_}H?ȧl6?4A?V lC??!LaF?J݌F?NH?&U?2| T?5I\S?5X NQ?T?hoU?/0Q?(IP?PLK?rx6N?аidR?"b%U?gz}5M?`X\?_yPY?SFuS?|S?'R?3O2aN?lIQ?Aw[V?mz7]Z?7CwY?e'jW? (pT?H0a[?vρjnV?l1ǡZ? [?gg]?lppy_?Ld?cS\_?jR]? hoC[?D{*Y?pGY?3e Z?$\)UY?o4VS?T=qT?Q*[?fka[? >OW?ZS?n4LV?33ĔQ?DI?ԙ T?`XR?EMR?P2M?ɷ!P?{2^tT?XO8[?pV?F,&h2Z?Zk]?.nCY?`ެZ?i/S?i||S?#VZ?(af^?3XNZ?7bMGW?1^?y]X?>|ZZ?a{\?U5w]?lR` _?amfd`?BѴ#b?XLZ`?BZ?'X?$ &W?ecV?2לU?`SW?v1R?>. PV?MhN?; 5S?v3XbU??=R?P?|l#G?j3.Q?fYVO?6DXV?adU?JӬ2V?`n U?30T?.RL?y ;L? h5K?ML?QwA?2A?پe 5?cWCCB?`:AL C?H33UN?1mtyLT?sCUQ?ʻꠖZV?1W? SVV?:"GS?b?X?U힤Y?#Fy]?_/\Y?y }xKV?R%rU?dV?"V?cѦԐR?8b#uG?sIzd[R?OR?C߳ K?1T?ƾQ7V?'NsTX?![?)!(!V?7T?LR?\lm]!Q?X<;X?nN?NO??㍃XR?5`EEP?TM?wE?FYP?mRJ?Zx͸P?п'@P?J5P?pQ? S-9?ZQ5?>9?]1?qA!a%?}rv@??#@?@~ ^H#>~.Y8?>E?^ ??<^=?C 5?|¹t ;Y{[c|ڵ!پ,KT"?t%$TD"o"@N[ko:O2<]U3d8 +7??V o!$K+2?.4B?L5G?V#-|E?cw/0?$!?Ve=A?z}':?}UO7?Ƽ6?6o6?@d5?ͫ-?,Ԁc6?ne/?2}F?$C?Nx1? ʘ/?a?2s0* h!?yJ6f4?52@?? YD2?}U>3?6e&J?(G?cV9DG?c⼠W?謮JS?TS?2!8P?KGS?;(V)rVN?P]Hl]I?V_ҖG?sLI?wIM?ӯ|S?r$O?O?2kR?@FkT?ZZT? HU?O|X? a?\X?nU?',9pS?"S?aQw^|U?ZM?n5T?߸ޣO? l5C?bYڎJ?<#e".Q?KrjJR?k,S?H}W?uML?UpI?) M? K?ނ' 9??؊iK?( Rt3?B1*?-.A=?"o??,ȖG? =ϸF?T{!R?-˩R0P?{GP?'EH? mR?|ƫN?4NQ?>{EFT?$$>e[?[U?"O%T?gU?R>FM?F~d?T?$_V?iU#N?b=P?h!)E?eV:?v/+H?l H? pK?k54?&En&??c8VtXF?~$LHR?U2P?)C/Q?6 eR?0Z?E4~5NU?rl|T?9?>S?'lT?f"Q?x|XD?I$_J?{'K?_D?VM?LJuO?=M+R?+pY?`yU?IV?R?ԇ3sL?;+L?~J?cR?{U?rAV?CIV? [0RM?[elN?M:!TQ?M?JV.S?qV. V?DU?lgQ?-S?KX?;V?xQ?02T?itX?`[[R?Q-U?jbW?%gR?)lbeY?HhS?NlY?TU?40U?38Y?aܑrZ?$(Y?x-72cY?G 1d for ndim in [2, 3]: data = np.ones((8, )*ndim) assert_raises(ValueError, pywt.downcoef, 'a', data, 'haar') assert_raises(ValueError, pywt.upcoef, 'a', data, 'haar') def test_wavelet_repr(): from pywt._extensions import _pywt wavelet = _pywt.Wavelet('sym8') repr_wavelet = eval(wavelet.__repr__()) assert_(wavelet.__repr__() == repr_wavelet.__repr__()) def test_dwt_max_level(): assert_(pywt.dwt_max_level(16, 2) == 4) assert_(pywt.dwt_max_level(16, 8) == 1) assert_(pywt.dwt_max_level(16, 9) == 1) assert_(pywt.dwt_max_level(16, 10) == 0) assert_(pywt.dwt_max_level(16, np.int8(10)) == 0) assert_(pywt.dwt_max_level(16, 10.) == 0) assert_(pywt.dwt_max_level(16, 18) == 0) # accepts discrete Wavelet object or string as well assert_(pywt.dwt_max_level(32, pywt.Wavelet('sym5')) == 1) assert_(pywt.dwt_max_level(32, 'sym5') == 1) # string input that is not a discrete wavelet assert_raises(ValueError, pywt.dwt_max_level, 16, 'mexh') # filter_len must be an integer >= 2 assert_raises(ValueError, pywt.dwt_max_level, 16, 1) assert_raises(ValueError, pywt.dwt_max_level, 16, -1) assert_raises(ValueError, pywt.dwt_max_level, 16, 3.3) def test_ContinuousWavelet_errs(): assert_raises(ValueError, pywt.ContinuousWavelet, 'qwertz') def test_ContinuousWavelet_repr(): from pywt._extensions import _pywt wavelet = _pywt.ContinuousWavelet('gaus2') repr_wavelet = eval(wavelet.__repr__()) assert_(wavelet.__repr__() == repr_wavelet.__repr__()) def test_wavelist(): for name in pywt.wavelist(family='coif'): assert_(name.startswith('coif')) assert_('cgau7' in pywt.wavelist(kind='continuous')) assert_('sym20' in pywt.wavelist(kind='discrete')) assert_(len(pywt.wavelist(kind='continuous')) + len(pywt.wavelist(kind='discrete')) == len(pywt.wavelist(kind='all'))) assert_raises(ValueError, pywt.wavelist, kind='foobar') def test_wavelet_errormsgs(): try: pywt.Wavelet('gaus1') except ValueError as e: assert_(e.args[0].startswith('The `Wavelet` class')) try: pywt.Wavelet('cmord') except ValueError as e: assert_(e.args[0] == "Invalid wavelet name 'cmord'.") PyWavelets-1.1.1/pywt/tests/test_concurrent.py0000644000175000017500000000762313552333332022227 0ustar lee8rxlee8rx00000000000000""" Tests used to verify running PyWavelets transforms in parallel via concurrent.futures.ThreadPoolExecutor does not raise errors. """ from __future__ import division, print_function, absolute_import import warnings import numpy as np from functools import partial from numpy.testing import assert_array_equal, assert_allclose from pywt._pytest import uses_futures, futures, max_workers import pywt def _assert_all_coeffs_equal(coefs1, coefs2): # return True only if all coefficients of SWT or DWT match over all levels if len(coefs1) != len(coefs2): return False for (c1, c2) in zip(coefs1, coefs2): if isinstance(c1, tuple): # for swt, swt2, dwt, dwt2, wavedec, wavedec2 for a1, a2 in zip(c1, c2): assert_array_equal(a1, a2) elif isinstance(c1, dict): # for swtn, dwtn, wavedecn for k, v in c1.items(): assert_array_equal(v, c2[k]) else: return False return True @uses_futures def test_concurrent_swt(): # tests error-free concurrent operation (see gh-288) # swt on 1D data calls the Cython swt # other cases call swt_axes with warnings.catch_warnings(): # can remove catch_warnings once the swt2 FutureWarning is removed warnings.simplefilter('ignore', FutureWarning) for swt_func, x in zip([pywt.swt, pywt.swt2, pywt.swtn], [np.ones(8), np.eye(16), np.eye(16)]): transform = partial(swt_func, wavelet='haar', level=3) for _ in range(10): arrs = [x.copy() for _ in range(100)] with futures.ThreadPoolExecutor(max_workers=max_workers) as ex: results = list(ex.map(transform, arrs)) # validate result from one of the concurrent runs expected_result = transform(x) _assert_all_coeffs_equal(expected_result, results[-1]) @uses_futures def test_concurrent_wavedec(): # wavedec on 1D data calls the Cython dwt_single # other cases call dwt_axis for wavedec_func, x in zip([pywt.wavedec, pywt.wavedec2, pywt.wavedecn], [np.ones(8), np.eye(16), np.eye(16)]): transform = partial(wavedec_func, wavelet='haar', level=1) for _ in range(10): arrs = [x.copy() for _ in range(100)] with futures.ThreadPoolExecutor(max_workers=max_workers) as ex: results = list(ex.map(transform, arrs)) # validate result from one of the concurrent runs expected_result = transform(x) _assert_all_coeffs_equal(expected_result, results[-1]) @uses_futures def test_concurrent_dwt(): # dwt on 1D data calls the Cython dwt_single # other cases call dwt_axis for dwt_func, x in zip([pywt.dwt, pywt.dwt2, pywt.dwtn], [np.ones(8), np.eye(16), np.eye(16)]): transform = partial(dwt_func, wavelet='haar') for _ in range(10): arrs = [x.copy() for _ in range(100)] with futures.ThreadPoolExecutor(max_workers=max_workers) as ex: results = list(ex.map(transform, arrs)) # validate result from one of the concurrent runs expected_result = transform(x) _assert_all_coeffs_equal([expected_result, ], [results[-1], ]) @uses_futures def test_concurrent_cwt(): atol = rtol = 1e-14 time, sst = pywt.data.nino() dt = time[1]-time[0] transform = partial(pywt.cwt, scales=np.arange(1, 4), wavelet='cmor1.5-1', sampling_period=dt) for _ in range(10): arrs = [sst.copy() for _ in range(50)] with futures.ThreadPoolExecutor(max_workers=max_workers) as ex: results = list(ex.map(transform, arrs)) # validate result from one of the concurrent runs expected_result = transform(sst) for a1, a2 in zip(expected_result, results[-1]): assert_allclose(a1, a2, atol=atol, rtol=rtol) PyWavelets-1.1.1/pywt/tests/test_cwt_wavelets.py0000644000175000017500000003071113552333332022546 0ustar lee8rxlee8rx00000000000000#!/usr/bin/env python from __future__ import division, print_function, absolute_import from itertools import product from numpy.testing import (assert_allclose, assert_warns, assert_almost_equal, assert_raises, assert_equal) import pytest import numpy as np import pywt def ref_gaus(LB, UB, N, num): X = np.linspace(LB, UB, N) F0 = (2./np.pi)**(1./4.)*np.exp(-(X**2)) if (num == 1): psi = -2.*X*F0 elif (num == 2): psi = -2/(3**(1/2))*(-1 + 2*X**2)*F0 elif (num == 3): psi = -4/(15**(1/2))*X*(3 - 2*X**2)*F0 elif (num == 4): psi = 4/(105**(1/2))*(3 - 12*X**2 + 4*X**4)*F0 elif (num == 5): psi = 8/(3*(105**(1/2)))*X*(-15 + 20*X**2 - 4*X**4)*F0 elif (num == 6): psi = -8/(3*(1155**(1/2)))*(-15 + 90*X**2 - 60*X**4 + 8*X**6)*F0 elif (num == 7): psi = -16/(3*(15015**(1/2)))*X*(105 - 210*X**2 + 84*X**4 - 8*X**6)*F0 elif (num == 8): psi = 16/(45*(1001**(1/2)))*(105 - 840*X**2 + 840*X**4 - 224*X**6 + 16*X**8)*F0 return (psi, X) def ref_cgau(LB, UB, N, num): X = np.linspace(LB, UB, N) F0 = np.exp(-X**2) F1 = np.exp(-1j*X) F2 = (F1*F0)/(np.exp(-1/2)*2**(1/2)*np.pi**(1/2))**(1/2) if (num == 1): psi = F2*(-1j - 2*X)*2**(1/2) elif (num == 2): psi = 1/3*F2*(-3 + 4j*X + 4*X**2)*6**(1/2) elif (num == 3): psi = 1/15*F2*(7j + 18*X - 12j*X**2 - 8*X**3)*30**(1/2) elif (num == 4): psi = 1/105*F2*(25 - 56j*X - 72*X**2 + 32j*X**3 + 16*X**4)*210**(1/2) elif (num == 5): psi = 1/315*F2*(-81j - 250*X + 280j*X**2 + 240*X**3 - 80j*X**4 - 32*X**5)*210**(1/2) elif (num == 6): psi = 1/3465*F2*(-331 + 972j*X + 1500*X**2 - 1120j*X**3 - 720*X**4 + 192j*X**5 + 64*X**6)*2310**(1/2) elif (num == 7): psi = 1/45045*F2*( 1303j + 4634*X - 6804j*X**2 - 7000*X**3 + 3920j*X**4 + 2016*X**5 - 448j*X**6 - 128*X**7)*30030**(1/2) elif (num == 8): psi = 1/45045*F2*( 5937 - 20848j*X - 37072*X**2 + 36288j*X**3 + 28000*X**4 - 12544j*X**5 - 5376*X**6 + 1024j*X**7 + 256*X**8)*2002**(1/2) psi = psi/np.real(np.sqrt(np.real(np.sum(psi*np.conj(psi)))*(X[1] - X[0]))) return (psi, X) def sinc2(x): y = np.ones_like(x) k = np.where(x)[0] y[k] = np.sin(np.pi*x[k])/(np.pi*x[k]) return y def ref_shan(LB, UB, N, Fb, Fc): x = np.linspace(LB, UB, N) psi = np.sqrt(Fb)*(sinc2(Fb*x)*np.exp(2j*np.pi*Fc*x)) return (psi, x) def ref_fbsp(LB, UB, N, m, Fb, Fc): x = np.linspace(LB, UB, N) psi = np.sqrt(Fb)*((sinc2(Fb*x/m)**m)*np.exp(2j*np.pi*Fc*x)) return (psi, x) def ref_cmor(LB, UB, N, Fb, Fc): x = np.linspace(LB, UB, N) psi = ((np.pi*Fb)**(-0.5))*np.exp(2j*np.pi*Fc*x)*np.exp(-(x**2)/Fb) return (psi, x) def ref_morl(LB, UB, N): x = np.linspace(LB, UB, N) psi = np.exp(-(x**2)/2)*np.cos(5*x) return (psi, x) def ref_mexh(LB, UB, N): x = np.linspace(LB, UB, N) psi = (2/(np.sqrt(3)*np.pi**0.25))*np.exp(-(x**2)/2)*(1 - (x**2)) return (psi, x) def test_gaus(): LB = -5 UB = 5 N = 1000 for num in np.arange(1, 9): [psi, x] = ref_gaus(LB, UB, N, num) w = pywt.ContinuousWavelet("gaus" + str(num)) PSI, X = w.wavefun(length=N) assert_allclose(np.real(PSI), np.real(psi)) assert_allclose(np.imag(PSI), np.imag(psi)) assert_allclose(X, x) def test_cgau(): LB = -5 UB = 5 N = 1000 for num in np.arange(1, 9): [psi, x] = ref_cgau(LB, UB, N, num) w = pywt.ContinuousWavelet("cgau" + str(num)) PSI, X = w.wavefun(length=N) assert_allclose(np.real(PSI), np.real(psi)) assert_allclose(np.imag(PSI), np.imag(psi)) assert_allclose(X, x) def test_shan(): LB = -20 UB = 20 N = 1000 Fb = 1 Fc = 1.5 [psi, x] = ref_shan(LB, UB, N, Fb, Fc) w = pywt.ContinuousWavelet("shan{}-{}".format(Fb, Fc)) assert_almost_equal(w.center_frequency, Fc) assert_almost_equal(w.bandwidth_frequency, Fb) w.upper_bound = UB w.lower_bound = LB PSI, X = w.wavefun(length=N) assert_allclose(np.real(PSI), np.real(psi), atol=1e-15) assert_allclose(np.imag(PSI), np.imag(psi), atol=1e-15) assert_allclose(X, x, atol=1e-15) LB = -20 UB = 20 N = 1000 Fb = 1.5 Fc = 1 [psi, x] = ref_shan(LB, UB, N, Fb, Fc) w = pywt.ContinuousWavelet("shan{}-{}".format(Fb, Fc)) assert_almost_equal(w.center_frequency, Fc) assert_almost_equal(w.bandwidth_frequency, Fb) w.upper_bound = UB w.lower_bound = LB PSI, X = w.wavefun(length=N) assert_allclose(np.real(PSI), np.real(psi), atol=1e-15) assert_allclose(np.imag(PSI), np.imag(psi), atol=1e-15) assert_allclose(X, x, atol=1e-15) def test_cmor(): LB = -20 UB = 20 N = 1000 Fb = 1 Fc = 1.5 [psi, x] = ref_cmor(LB, UB, N, Fb, Fc) w = pywt.ContinuousWavelet("cmor{}-{}".format(Fb, Fc)) assert_almost_equal(w.center_frequency, Fc) assert_almost_equal(w.bandwidth_frequency, Fb) w.upper_bound = UB w.lower_bound = LB PSI, X = w.wavefun(length=N) assert_allclose(np.real(PSI), np.real(psi), atol=1e-15) assert_allclose(np.imag(PSI), np.imag(psi), atol=1e-15) assert_allclose(X, x, atol=1e-15) LB = -20 UB = 20 N = 1000 Fb = 1.5 Fc = 1 [psi, x] = ref_cmor(LB, UB, N, Fb, Fc) w = pywt.ContinuousWavelet("cmor{}-{}".format(Fb, Fc)) assert_almost_equal(w.center_frequency, Fc) assert_almost_equal(w.bandwidth_frequency, Fb) w.upper_bound = UB w.lower_bound = LB PSI, X = w.wavefun(length=N) assert_allclose(np.real(PSI), np.real(psi), atol=1e-15) assert_allclose(np.imag(PSI), np.imag(psi), atol=1e-15) assert_allclose(X, x, atol=1e-15) def test_fbsp(): LB = -20 UB = 20 N = 1000 M = 2 Fb = 1 Fc = 1.5 [psi, x] = ref_fbsp(LB, UB, N, M, Fb, Fc) w = pywt.ContinuousWavelet("fbsp{}-{}-{}".format(M, Fb, Fc)) assert_almost_equal(w.center_frequency, Fc) assert_almost_equal(w.bandwidth_frequency, Fb) w.fbsp_order = M w.upper_bound = UB w.lower_bound = LB PSI, X = w.wavefun(length=N) assert_allclose(np.real(PSI), np.real(psi), atol=1e-15) assert_allclose(np.imag(PSI), np.imag(psi), atol=1e-15) assert_allclose(X, x, atol=1e-15) LB = -20 UB = 20 N = 1000 M = 2 Fb = 1.5 Fc = 1 [psi, x] = ref_fbsp(LB, UB, N, M, Fb, Fc) w = pywt.ContinuousWavelet("fbsp{}-{}-{}".format(M, Fb, Fc)) assert_almost_equal(w.center_frequency, Fc) assert_almost_equal(w.bandwidth_frequency, Fb) w.fbsp_order = M w.upper_bound = UB w.lower_bound = LB PSI, X = w.wavefun(length=N) assert_allclose(np.real(PSI), np.real(psi), atol=1e-15) assert_allclose(np.imag(PSI), np.imag(psi), atol=1e-15) assert_allclose(X, x, atol=1e-15) LB = -20 UB = 20 N = 1000 M = 3 Fb = 1.5 Fc = 1.2 [psi, x] = ref_fbsp(LB, UB, N, M, Fb, Fc) w = pywt.ContinuousWavelet("fbsp{}-{}-{}".format(M, Fb, Fc)) assert_almost_equal(w.center_frequency, Fc) assert_almost_equal(w.bandwidth_frequency, Fb) w.fbsp_order = M w.upper_bound = UB w.lower_bound = LB PSI, X = w.wavefun(length=N) # TODO: investigate why atol = 1e-5 is necessary assert_allclose(np.real(PSI), np.real(psi), atol=1e-5) assert_allclose(np.imag(PSI), np.imag(psi), atol=1e-5) assert_allclose(X, x, atol=1e-15) def test_morl(): LB = -5 UB = 5 N = 1000 [psi, x] = ref_morl(LB, UB, N) w = pywt.ContinuousWavelet("morl") w.upper_bound = UB w.lower_bound = LB PSI, X = w.wavefun(length=N) assert_allclose(np.real(PSI), np.real(psi)) assert_allclose(np.imag(PSI), np.imag(psi)) assert_allclose(X, x) def test_mexh(): LB = -5 UB = 5 N = 1000 [psi, x] = ref_mexh(LB, UB, N) w = pywt.ContinuousWavelet("mexh") w.upper_bound = UB w.lower_bound = LB PSI, X = w.wavefun(length=N) assert_allclose(np.real(PSI), np.real(psi)) assert_allclose(np.imag(PSI), np.imag(psi)) assert_allclose(X, x) LB = -5 UB = 5 N = 1001 [psi, x] = ref_mexh(LB, UB, N) w = pywt.ContinuousWavelet("mexh") w.upper_bound = UB w.lower_bound = LB PSI, X = w.wavefun(length=N) assert_allclose(np.real(PSI), np.real(psi)) assert_allclose(np.imag(PSI), np.imag(psi)) assert_allclose(X, x) def test_cwt_parameters_in_names(): for func in [pywt.ContinuousWavelet, pywt.DiscreteContinuousWavelet]: for name in ['fbsp', 'cmor', 'shan']: # additional parameters should be specified within the name assert_warns(FutureWarning, func, name) for name in ['cmor', 'shan']: # valid names func(name + '1.5-1.0') func(name + '1-4') # invalid names assert_raises(ValueError, func, name + '1.0') assert_raises(ValueError, func, name + 'B-C') assert_raises(ValueError, func, name + '1.0-1.0-1.0') # valid names func('fbsp1-1.5-1.0') func('fbsp1.0-1.5-1') func('fbsp2-5-1') # invalid name (non-integer order) assert_raises(ValueError, func, 'fbsp1.5-1-1') assert_raises(ValueError, func, 'fbspM-B-C') # invalid name (too few or too many params) assert_raises(ValueError, func, 'fbsp1.0') assert_raises(ValueError, func, 'fbsp1.0-0.4') assert_raises(ValueError, func, 'fbsp1-1-1-1') @pytest.mark.parametrize('dtype, tol, method', [(np.float32, 1e-5, 'conv'), (np.float32, 1e-5, 'fft'), (np.float64, 1e-13, 'conv'), (np.float64, 1e-13, 'fft')]) def test_cwt_complex(dtype, tol, method): time, sst = pywt.data.nino() sst = np.asarray(sst, dtype=dtype) dt = time[1] - time[0] wavelet = 'cmor1.5-1.0' scales = np.arange(1, 32) # real-valued tranfsorm as a reference [cfs, f] = pywt.cwt(sst, scales, wavelet, dt, method=method) # verify same precision assert_equal(cfs.real.dtype, sst.dtype) # complex-valued transform equals sum of the transforms of the real # and imaginary components sst_complex = sst + 1j*sst [cfs_complex, f] = pywt.cwt(sst_complex, scales, wavelet, dt, method=method) assert_allclose(cfs + 1j*cfs, cfs_complex, atol=tol, rtol=tol) # verify dtype is preserved assert_equal(cfs_complex.dtype, sst_complex.dtype) @pytest.mark.parametrize('axis, method', product([0, 1], ['conv', 'fft'])) def test_cwt_batch(axis, method): dtype = np.float64 time, sst = pywt.data.nino() n_batch = 8 batch_axis = 1 - axis sst1 = np.asarray(sst, dtype=dtype) sst = np.stack((sst1, ) * n_batch, axis=batch_axis) dt = time[1] - time[0] wavelet = 'cmor1.5-1.0' scales = np.arange(1, 32) # non-batch transform as reference [cfs1, f] = pywt.cwt(sst1, scales, wavelet, dt, method=method, axis=axis) shape_in = sst.shape [cfs, f] = pywt.cwt(sst, scales, wavelet, dt, method=method, axis=axis) # shape of input is not modified assert_equal(shape_in, sst.shape) # verify same precision assert_equal(cfs.real.dtype, sst.dtype) # verify expected shape assert_equal(cfs.shape[0], len(scales)) assert_equal(cfs.shape[1 + batch_axis], n_batch) assert_equal(cfs.shape[1 + axis], sst.shape[axis]) # batch result on stacked input is the same as stacked 1d result assert_equal(cfs, np.stack((cfs1,) * n_batch, axis=batch_axis + 1)) def test_cwt_small_scales(): data = np.zeros(32) # A scale of 0.1 was chosen specifically to give a filter of length 2 for # mexh. This corner case should not raise an error. cfs, f = pywt.cwt(data, scales=0.1, wavelet='mexh') assert_allclose(cfs, np.zeros_like(cfs)) # extremely short scale factors raise a ValueError assert_raises(ValueError, pywt.cwt, data, scales=0.01, wavelet='mexh') def test_cwt_method_fft(): rstate = np.random.RandomState(1) data = rstate.randn(50) data[15] = 1. scales = np.arange(1, 64) wavelet = 'cmor1.5-1.0' # build a reference cwt with the legacy np.conv() method cfs_conv, _ = pywt.cwt(data, scales, wavelet, method='conv') # compare with the fft based convolution cfs_fft, _ = pywt.cwt(data, scales, wavelet, method='fft') assert_allclose(cfs_conv, cfs_fft, rtol=0, atol=1e-13) PyWavelets-1.1.1/pywt/tests/test_data.py0000644000175000017500000000433213552333332020750 0ustar lee8rxlee8rx00000000000000import os import numpy as np from numpy.testing import assert_allclose, assert_raises, assert_ import pywt.data data_dir = os.path.join(os.path.dirname(__file__), 'data') wavelab_data_file = os.path.join(data_dir, 'wavelab_test_signals.npz') wavelab_result_dict = np.load(wavelab_data_file) def test_data_aero(): aero = pywt.data.aero() ref = np.array([[178, 178, 179], [170, 173, 171], [185, 174, 171]]) assert_allclose(aero[:3, :3], ref) def test_data_ascent(): ascent = pywt.data.ascent() ref = np.array([[83, 83, 83], [82, 82, 83], [80, 81, 83]]) assert_allclose(ascent[:3, :3], ref) def test_data_camera(): ascent = pywt.data.camera() ref = np.array([[156, 157, 160], [156, 157, 159], [158, 157, 156]]) assert_allclose(ascent[:3, :3], ref) def test_data_ecg(): ecg = pywt.data.ecg() ref = np.array([-86, -87, -87]) assert_allclose(ecg[:3], ref) def test_wavelab_signals(): """Comparison with results generated using WaveLab""" rtol = atol = 1e-12 # get a list of the available signals available_signals = pywt.data.demo_signal('list') assert_('Doppler' in available_signals) for signal in available_signals: # reference dictionary has lowercase names for the keys key = signal.replace('-', '_').lower() val = wavelab_result_dict[key] if key in ['gabor', 'sineoneoverx']: # these functions do not allow a size to be provided assert_allclose(val, pywt.data.demo_signal(signal), rtol=rtol, atol=atol) assert_raises(ValueError, pywt.data.demo_signal, key, val.size) else: assert_allclose(val, pywt.data.demo_signal(signal, val.size), rtol=rtol, atol=atol) # these functions require a size to be provided assert_raises(ValueError, pywt.data.demo_signal, key) # ValueError on unrecognized signal type assert_raises(ValueError, pywt.data.demo_signal, 'unknown_signal', 512) # ValueError on invalid length assert_raises(ValueError, pywt.data.demo_signal, 'Doppler', 0) PyWavelets-1.1.1/pywt/tests/test_deprecations.py0000644000175000017500000000425413552333332022522 0ustar lee8rxlee8rx00000000000000import warnings import numpy as np from numpy.testing import assert_warns, assert_array_equal import pywt def test_intwave_deprecation(): wavelet = pywt.Wavelet('db3') assert_warns(DeprecationWarning, pywt.intwave, wavelet) def test_centrfrq_deprecation(): wavelet = pywt.Wavelet('db3') assert_warns(DeprecationWarning, pywt.centrfrq, wavelet) def test_scal2frq_deprecation(): wavelet = pywt.Wavelet('db3') assert_warns(DeprecationWarning, pywt.scal2frq, wavelet, 1) def test_orthfilt_deprecation(): assert_warns(DeprecationWarning, pywt.orthfilt, range(6)) def test_integrate_wave_tuple(): sig = [0, 1, 2, 3] xgrid = [0, 1, 2, 3] assert_warns(DeprecationWarning, pywt.integrate_wavelet, (sig, xgrid)) old_modes = ['zpd', 'cpd', 'sym', 'ppd', 'sp1', 'per', ] def test_MODES_from_object_deprecation(): for mode in old_modes: assert_warns(DeprecationWarning, pywt.Modes.from_object, mode) def test_MODES_attributes_deprecation(): def get_mode(Modes, name): return getattr(Modes, name) for mode in old_modes: assert_warns(DeprecationWarning, get_mode, pywt.Modes, mode) def test_MODES_deprecation_new(): def use_MODES_new(): return pywt.MODES.symmetric assert_warns(DeprecationWarning, use_MODES_new) def test_MODES_deprecation_old(): def use_MODES_old(): return pywt.MODES.sym assert_warns(DeprecationWarning, use_MODES_old) def test_MODES_deprecation_getattr(): def use_MODES_new(): return getattr(pywt.MODES, 'symmetric') assert_warns(DeprecationWarning, use_MODES_new) def test_mode_equivalence(): old_new = [('zpd', 'zero'), ('cpd', 'constant'), ('sym', 'symmetric'), ('ppd', 'periodic'), ('sp1', 'smooth'), ('per', 'periodization')] x = np.arange(8.) with warnings.catch_warnings(): warnings.simplefilter('ignore', DeprecationWarning) for old, new in old_new: assert_array_equal(pywt.dwt(x, 'db2', mode=old), pywt.dwt(x, 'db2', mode=new)) PyWavelets-1.1.1/pywt/tests/test_doc.py0000644000175000017500000000115613552333332020605 0ustar lee8rxlee8rx00000000000000from __future__ import division, print_function, absolute_import import doctest import glob import os import unittest try: import numpy as np np.set_printoptions(legacy='1.13') except TypeError: pass pdir = os.path.pardir docs_base = os.path.abspath(os.path.join(os.path.dirname(__file__), pdir, pdir, "doc", "source")) files = glob.glob(os.path.join(docs_base, "*.rst")) + \ glob.glob(os.path.join(docs_base, "*", "*.rst")) suite = doctest.DocFileSuite(*files, module_relative=False, encoding="utf-8") if __name__ == "__main__": unittest.TextTestRunner().run(suite) PyWavelets-1.1.1/pywt/tests/test_dwt_idwt.py0000644000175000017500000002350413552333332021666 0ustar lee8rxlee8rx00000000000000#!/usr/bin/env python from __future__ import division, print_function, absolute_import import numpy as np from numpy.testing import (assert_allclose, assert_, assert_raises, assert_array_equal) import pywt # Check that float32, float64, complex64, complex128 are preserved. # Other real types get converted to float64. # complex256 gets converted to complex128 dtypes_in = [np.int8, np.float16, np.float32, np.float64, np.complex64, np.complex128] dtypes_out = [np.float64, np.float32, np.float32, np.float64, np.complex64, np.complex128] # test complex256 as well if it is available try: dtypes_in += [np.complex256, ] dtypes_out += [np.complex128, ] except AttributeError: pass def test_dwt_idwt_basic(): x = [3, 7, 1, 1, -2, 5, 4, 6] cA, cD = pywt.dwt(x, 'db2') cA_expect = [5.65685425, 7.39923721, 0.22414387, 3.33677403, 7.77817459] cD_expect = [-2.44948974, -1.60368225, -4.44140056, -0.41361256, 1.22474487] assert_allclose(cA, cA_expect) assert_allclose(cD, cD_expect) x_roundtrip = pywt.idwt(cA, cD, 'db2') assert_allclose(x_roundtrip, x, rtol=1e-10) # mismatched dtypes OK x_roundtrip2 = pywt.idwt(cA.astype(np.float64), cD.astype(np.float32), 'db2') assert_allclose(x_roundtrip2, x, rtol=1e-7, atol=1e-7) assert_(x_roundtrip2.dtype == np.float64) def test_idwt_mixed_complex_dtype(): x = np.arange(8).astype(float) x = x + 1j*x[::-1] cA, cD = pywt.dwt(x, 'db2') x_roundtrip = pywt.idwt(cA, cD, 'db2') assert_allclose(x_roundtrip, x, rtol=1e-10) # mismatched dtypes OK x_roundtrip2 = pywt.idwt(cA.astype(np.complex128), cD.astype(np.complex64), 'db2') assert_allclose(x_roundtrip2, x, rtol=1e-7, atol=1e-7) assert_(x_roundtrip2.dtype == np.complex128) def test_dwt_idwt_dtypes(): wavelet = pywt.Wavelet('haar') for dt_in, dt_out in zip(dtypes_in, dtypes_out): x = np.ones(4, dtype=dt_in) errmsg = "wrong dtype returned for {0} input".format(dt_in) cA, cD = pywt.dwt(x, wavelet) assert_(cA.dtype == cD.dtype == dt_out, "dwt: " + errmsg) x_roundtrip = pywt.idwt(cA, cD, wavelet) assert_(x_roundtrip.dtype == dt_out, "idwt: " + errmsg) def test_dwt_idwt_basic_complex(): x = np.asarray([3, 7, 1, 1, -2, 5, 4, 6]) x = x + 0.5j*x cA, cD = pywt.dwt(x, 'db2') cA_expect = np.asarray([5.65685425, 7.39923721, 0.22414387, 3.33677403, 7.77817459]) cA_expect = cA_expect + 0.5j*cA_expect cD_expect = np.asarray([-2.44948974, -1.60368225, -4.44140056, -0.41361256, 1.22474487]) cD_expect = cD_expect + 0.5j*cD_expect assert_allclose(cA, cA_expect) assert_allclose(cD, cD_expect) x_roundtrip = pywt.idwt(cA, cD, 'db2') assert_allclose(x_roundtrip, x, rtol=1e-10) def test_dwt_idwt_partial_complex(): x = np.asarray([3, 7, 1, 1, -2, 5, 4, 6]) x = x + 0.5j*x cA, cD = pywt.dwt(x, 'haar') cA_rec_expect = np.array([5.0+2.5j, 5.0+2.5j, 1.0+0.5j, 1.0+0.5j, 1.5+0.75j, 1.5+0.75j, 5.0+2.5j, 5.0+2.5j]) cA_rec = pywt.idwt(cA, None, 'haar') assert_allclose(cA_rec, cA_rec_expect) cD_rec_expect = np.array([-2.0-1.0j, 2.0+1.0j, 0.0+0.0j, 0.0+0.0j, -3.5-1.75j, 3.5+1.75j, -1.0-0.5j, 1.0+0.5j]) cD_rec = pywt.idwt(None, cD, 'haar') assert_allclose(cD_rec, cD_rec_expect) assert_allclose(cA_rec + cD_rec, x) def test_dwt_wavelet_kwd(): x = np.array([3, 7, 1, 1, -2, 5, 4, 6]) w = pywt.Wavelet('sym3') cA, cD = pywt.dwt(x, wavelet=w, mode='constant') cA_expect = [4.38354585, 3.80302657, 7.31813271, -0.58565539, 4.09727044, 7.81994027] cD_expect = [-1.33068221, -2.78795192, -3.16825651, -0.67715519, -0.09722957, -0.07045258] assert_allclose(cA, cA_expect) assert_allclose(cD, cD_expect) def test_dwt_coeff_len(): x = np.array([3, 7, 1, 1, -2, 5, 4, 6]) w = pywt.Wavelet('sym3') ln_modes = [pywt.dwt_coeff_len(len(x), w.dec_len, mode) for mode in pywt.Modes.modes] expected_result = [6, ] * len(pywt.Modes.modes) expected_result[pywt.Modes.modes.index('periodization')] = 4 assert_allclose(ln_modes, expected_result) ln_modes = [pywt.dwt_coeff_len(len(x), w, mode) for mode in pywt.Modes.modes] assert_allclose(ln_modes, expected_result) def test_idwt_none_input(): # None input equals arrays of zeros of the right length res1 = pywt.idwt([1, 2, 0, 1], None, 'db2', 'symmetric') res2 = pywt.idwt([1, 2, 0, 1], [0, 0, 0, 0], 'db2', 'symmetric') assert_allclose(res1, res2, rtol=1e-15, atol=1e-15) res1 = pywt.idwt(None, [1, 2, 0, 1], 'db2', 'symmetric') res2 = pywt.idwt([0, 0, 0, 0], [1, 2, 0, 1], 'db2', 'symmetric') assert_allclose(res1, res2, rtol=1e-15, atol=1e-15) # Only one argument at a time can be None assert_raises(ValueError, pywt.idwt, None, None, 'db2', 'symmetric') def test_idwt_invalid_input(): # Too short, min length is 4 for 'db4': assert_raises(ValueError, pywt.idwt, [1, 2, 4], [4, 1, 3], 'db4', 'symmetric') def test_dwt_single_axis(): x = [[3, 7, 1, 1], [-2, 5, 4, 6]] cA, cD = pywt.dwt(x, 'db2', axis=-1) cA0, cD0 = pywt.dwt(x[0], 'db2') cA1, cD1 = pywt.dwt(x[1], 'db2') assert_allclose(cA[0], cA0) assert_allclose(cA[1], cA1) assert_allclose(cD[0], cD0) assert_allclose(cD[1], cD1) def test_idwt_single_axis(): x = [[3, 7, 1, 1], [-2, 5, 4, 6]] x = np.asarray(x) x = x + 1j*x # test with complex data cA, cD = pywt.dwt(x, 'db2', axis=-1) x0 = pywt.idwt(cA[0], cD[0], 'db2', axis=-1) x1 = pywt.idwt(cA[1], cD[1], 'db2', axis=-1) assert_allclose(x[0], x0) assert_allclose(x[1], x1) def test_dwt_axis_arg(): x = [[3, 7, 1, 1], [-2, 5, 4, 6]] cA_, cD_ = pywt.dwt(x, 'db2', axis=-1) cA, cD = pywt.dwt(x, 'db2', axis=1) assert_allclose(cA_, cA) assert_allclose(cD_, cD) def test_idwt_axis_arg(): x = [[3, 7, 1, 1], [-2, 5, 4, 6]] cA, cD = pywt.dwt(x, 'db2', axis=1) x_ = pywt.idwt(cA, cD, 'db2', axis=-1) x = pywt.idwt(cA, cD, 'db2', axis=1) assert_allclose(x_, x) def test_dwt_idwt_axis_excess(): x = [[3, 7, 1, 1], [-2, 5, 4, 6]] # can't transform over axes that aren't there assert_raises(ValueError, pywt.dwt, x, 'db2', 'symmetric', axis=2) assert_raises(ValueError, pywt.idwt, [1, 2, 4], [4, 1, 3], 'db2', 'symmetric', axis=1) def test_error_on_continuous_wavelet(): # A ValueError is raised if a Continuous wavelet is selected data = np.ones((32, )) for cwave in ['morl', pywt.DiscreteContinuousWavelet('morl')]: assert_raises(ValueError, pywt.dwt, data, cwave) cA, cD = pywt.dwt(data, 'db1') assert_raises(ValueError, pywt.idwt, cA, cD, cwave) def test_dwt_zero_size_axes(): # raise on empty input array assert_raises(ValueError, pywt.dwt, [], 'db2') # >1D case uses a different code path so check there as well x = np.ones((1, 4))[0:0, :] # 2D with a size zero axis assert_raises(ValueError, pywt.dwt, x, 'db2', axis=0) def test_pad_1d(): x = [1, 2, 3] assert_array_equal(pywt.pad(x, (4, 6), 'periodization'), [1, 2, 3, 3, 1, 2, 3, 3, 1, 2, 3, 3, 1, 2]) assert_array_equal(pywt.pad(x, (4, 6), 'periodic'), [3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]) assert_array_equal(pywt.pad(x, (4, 6), 'constant'), [1, 1, 1, 1, 1, 2, 3, 3, 3, 3, 3, 3, 3]) assert_array_equal(pywt.pad(x, (4, 6), 'zero'), [0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0]) assert_array_equal(pywt.pad(x, (4, 6), 'smooth'), [-3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) assert_array_equal(pywt.pad(x, (4, 6), 'symmetric'), [3, 3, 2, 1, 1, 2, 3, 3, 2, 1, 1, 2, 3]) assert_array_equal(pywt.pad(x, (4, 6), 'antisymmetric'), [3, -3, -2, -1, 1, 2, 3, -3, -2, -1, 1, 2, 3]) assert_array_equal(pywt.pad(x, (4, 6), 'reflect'), [1, 2, 3, 2, 1, 2, 3, 2, 1, 2, 3, 2, 1]) assert_array_equal(pywt.pad(x, (4, 6), 'antireflect'), [-3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) # equivalence of various pad_width formats assert_array_equal(pywt.pad(x, 4, 'periodic'), pywt.pad(x, (4, 4), 'periodic')) assert_array_equal(pywt.pad(x, (4, ), 'periodic'), pywt.pad(x, (4, 4), 'periodic')) assert_array_equal(pywt.pad(x, [(4, 4)], 'periodic'), pywt.pad(x, (4, 4), 'periodic')) def test_pad_errors(): # negative pad width x = [1, 2, 3] assert_raises(ValueError, pywt.pad, x, -2, 'periodic') # wrong length pad width assert_raises(ValueError, pywt.pad, x, (1, 1, 1), 'periodic') # invalid mode name assert_raises(ValueError, pywt.pad, x, 2, 'bad_mode') def test_pad_nd(): for ndim in [2, 3]: x = np.arange(4**ndim).reshape((4, ) * ndim) if ndim == 2: pad_widths = [(2, 1), (2, 3)] else: pad_widths = [(2, 1), ] * ndim for mode in pywt.Modes.modes: xp = pywt.pad(x, pad_widths, mode) # expected result is the same as applying along axes separably xp_expected = x.copy() for ax in range(ndim): xp_expected = np.apply_along_axis(pywt.pad, ax, xp_expected, pad_widths=[pad_widths[ax]], mode=mode) assert_array_equal(xp, xp_expected) PyWavelets-1.1.1/pywt/tests/test_functions.py0000644000175000017500000000221313552333332022043 0ustar lee8rxlee8rx00000000000000#!/usr/bin/env python from __future__ import division, print_function, absolute_import from numpy.testing import assert_almost_equal, assert_allclose import pywt def test_centrfreq(): # db1 is Haar function, frequency=1 w = pywt.Wavelet('db1') expected = 1 result = pywt.central_frequency(w, precision=12) assert_almost_equal(result, expected, decimal=3) # db2, frequency=2/3 w = pywt.Wavelet('db2') expected = 2/3. result = pywt.central_frequency(w, precision=12) assert_almost_equal(result, expected) def test_scal2frq_scale(): scale = 2 w = pywt.Wavelet('db1') expected = 1. / scale result = pywt.scale2frequency(w, scale, precision=12) assert_almost_equal(result, expected, decimal=3) def test_intwave_orthogonal(): w = pywt.Wavelet('db1') int_psi, x = pywt.integrate_wavelet(w, precision=12) ix = x < 0.5 # For x < 0.5, the integral is equal to x assert_allclose(int_psi[ix], x[ix]) # For x > 0.5, the integral is equal to (1 - x) # Ignore last point here, there x > 1 and something goes wrong assert_allclose(int_psi[~ix][:-1], 1 - x[~ix][:-1], atol=1e-10) PyWavelets-1.1.1/pywt/tests/test_matlab_compatibility.py0000644000175000017500000001337513552333332024237 0ustar lee8rxlee8rx00000000000000""" Test used to verify PyWavelets Discrete Wavelet Transform computation accuracy against MathWorks Wavelet Toolbox. """ from __future__ import division, print_function, absolute_import import numpy as np import pytest from numpy.testing import assert_ import pywt from pywt._pytest import (uses_pymatbridge, uses_precomputed, size_set) from pywt._pytest import matlab_result_dict_dwt as matlab_result_dict # list of mode names in pywt and matlab modes = [('zero', 'zpd'), ('constant', 'sp0'), ('symmetric', 'sym'), ('reflect', 'symw'), ('periodic', 'ppd'), ('smooth', 'sp1'), ('periodization', 'per'), # TODO: Now have implemented asymmetric modes too. # Would be nice to update the Matlab data to test these as well. ('antisymmetric', 'asym'), ('antireflect', 'asymw'), ] families = ('db', 'sym', 'coif', 'bior', 'rbio') wavelets = sum([pywt.wavelist(name) for name in families], []) def _get_data_sizes(w): """ Return the sizes to test for wavelet w. """ if size_set == 'full': data_sizes = list(range(w.dec_len, 40)) + \ [100, 200, 500, 1000, 50000] else: data_sizes = (w.dec_len, w.dec_len + 1) return data_sizes @uses_pymatbridge @pytest.mark.slow def test_accuracy_pymatbridge(): Matlab = pytest.importorskip("pymatbridge.Matlab") mlab = Matlab() rstate = np.random.RandomState(1234) # max RMSE (was 1.0e-10, is reduced to 5.0e-5 due to different coefficents) epsilon = 5.0e-5 epsilon_pywt_coeffs = 1.0e-10 mlab.start() try: for wavelet in wavelets: w = pywt.Wavelet(wavelet) mlab.set_variable('wavelet', wavelet) for N in _get_data_sizes(w): data = rstate.randn(N) mlab.set_variable('data', data) for pmode, mmode in modes: ma, md = _compute_matlab_result(data, wavelet, mmode, mlab) _check_accuracy(data, w, pmode, ma, md, wavelet, epsilon) ma, md = _load_matlab_result_pywt_coeffs(data, wavelet, mmode) _check_accuracy(data, w, pmode, ma, md, wavelet, epsilon_pywt_coeffs) finally: mlab.stop() @uses_precomputed @pytest.mark.slow def test_accuracy_precomputed(): # Keep this specific random seed to match the precomputed Matlab result. rstate = np.random.RandomState(1234) # max RMSE (was 1.0e-10, is reduced to 5.0e-5 due to different coefficents) epsilon = 5.0e-5 epsilon_pywt_coeffs = 1.0e-10 for wavelet in wavelets: w = pywt.Wavelet(wavelet) for N in _get_data_sizes(w): data = rstate.randn(N) for pmode, mmode in modes: ma, md = _load_matlab_result(data, wavelet, mmode) _check_accuracy(data, w, pmode, ma, md, wavelet, epsilon) ma, md = _load_matlab_result_pywt_coeffs(data, wavelet, mmode) _check_accuracy(data, w, pmode, ma, md, wavelet, epsilon_pywt_coeffs) def _compute_matlab_result(data, wavelet, mmode, mlab): """ Compute the result using MATLAB. This function assumes that the Matlab variables `wavelet` and `data` have already been set externally. """ if np.any((wavelet == np.array(['coif6', 'coif7', 'coif8', 'coif9', 'coif10', 'coif11', 'coif12', 'coif13', 'coif14', 'coif15', 'coif16', 'coif17'])),axis=0): w = pywt.Wavelet(wavelet) mlab.set_variable('Lo_D', w.dec_lo) mlab.set_variable('Hi_D', w.dec_hi) mlab_code = ("[ma, md] = dwt(data, Lo_D, Hi_D, 'mode', '%s');" % mmode) else: mlab_code = "[ma, md] = dwt(data, wavelet, 'mode', '%s');" % mmode res = mlab.run_code(mlab_code) if not res['success']: raise RuntimeError("Matlab failed to execute the provided code. " "Check that the wavelet toolbox is installed.") # need np.asarray because sometimes the output is a single float64 ma = np.asarray(mlab.get_variable('ma')) md = np.asarray(mlab.get_variable('md')) return ma, md def _load_matlab_result(data, wavelet, mmode): """ Load the precomputed result. """ N = len(data) ma_key = '_'.join([mmode, wavelet, str(N), 'ma']) md_key = '_'.join([mmode, wavelet, str(N), 'md']) if (ma_key not in matlab_result_dict) or \ (md_key not in matlab_result_dict): raise KeyError( "Precompted Matlab result not found for wavelet: " "{0}, mode: {1}, size: {2}".format(wavelet, mmode, N)) ma = matlab_result_dict[ma_key] md = matlab_result_dict[md_key] return ma, md def _load_matlab_result_pywt_coeffs(data, wavelet, mmode): """ Load the precomputed result. """ N = len(data) ma_key = '_'.join([mmode, wavelet, str(N), 'ma_pywtCoeffs']) md_key = '_'.join([mmode, wavelet, str(N), 'md_pywtCoeffs']) if (ma_key not in matlab_result_dict) or \ (md_key not in matlab_result_dict): raise KeyError( "Precompted Matlab result not found for wavelet: " "{0}, mode: {1}, size: {2}".format(wavelet, mmode, N)) ma = matlab_result_dict[ma_key] md = matlab_result_dict[md_key] return ma, md def _check_accuracy(data, w, pmode, ma, md, wavelet, epsilon): # PyWavelets result pa, pd = pywt.dwt(data, w, pmode) # calculate error measures rms_a = np.sqrt(np.mean((pa - ma) ** 2)) rms_d = np.sqrt(np.mean((pd - md) ** 2)) msg = ('[RMS_A > EPSILON] for Mode: %s, Wavelet: %s, ' 'Length: %d, rms=%.3g' % (pmode, wavelet, len(data), rms_a)) assert_(rms_a < epsilon, msg=msg) msg = ('[RMS_D > EPSILON] for Mode: %s, Wavelet: %s, ' 'Length: %d, rms=%.3g' % (pmode, wavelet, len(data), rms_d)) assert_(rms_d < epsilon, msg=msg) PyWavelets-1.1.1/pywt/tests/test_matlab_compatibility_cwt.py0000644000175000017500000001421313552333332025104 0ustar lee8rxlee8rx00000000000000""" Test used to verify PyWavelets Continuous Wavelet Transform computation accuracy against MathWorks Wavelet Toolbox. """ from __future__ import division, print_function, absolute_import import warnings import numpy as np import pytest from numpy.testing import assert_ import pywt from pywt._pytest import (uses_pymatbridge, uses_precomputed, size_set, matlab_result_dict_cwt) families = ('gaus', 'mexh', 'morl', 'cgau', 'shan', 'fbsp', 'cmor') wavelets = sum([pywt.wavelist(name) for name in families], []) def _get_data_sizes(w): """ Return the sizes to test for wavelet w. """ if size_set == 'full': data_sizes = list(range(100, 101)) + \ [100, 200, 500, 1000, 50000] else: data_sizes = (1000, 1000 + 1) return data_sizes def _get_scales(w): """ Return the scales to test for wavelet w. """ if size_set == 'full': scales = (1, np.arange(1, 3), np.arange(1, 4), np.arange(1, 5)) else: scales = (1, np.arange(1, 3)) return scales @uses_pymatbridge # skip this case if precomputed results are used instead @pytest.mark.slow def test_accuracy_pymatbridge_cwt(): Matlab = pytest.importorskip("pymatbridge.Matlab") mlab = Matlab() rstate = np.random.RandomState(1234) # max RMSE (was 1.0e-10, is reduced to 5.0e-5 due to different coefficents) epsilon = 1e-15 epsilon_psi = 1e-15 mlab.start() try: for wavelet in wavelets: with warnings.catch_warnings(): warnings.simplefilter('ignore', FutureWarning) w = pywt.ContinuousWavelet(wavelet) if np.any((wavelet == np.array(['shan', 'cmor'])),axis=0): mlab.set_variable('wavelet', wavelet+str(w.bandwidth_frequency)+'-'+str(w.center_frequency)) elif wavelet == 'fbsp': mlab.set_variable('wavelet', wavelet+str(w.fbsp_order)+'-'+str(w.bandwidth_frequency)+'-'+str(w.center_frequency)) else: mlab.set_variable('wavelet', wavelet) mlab_code = ("psi = wavefun(wavelet,10)") res = mlab.run_code(mlab_code) psi = np.asarray(mlab.get_variable('psi')) _check_accuracy_psi(w, psi, wavelet, epsilon_psi) for N in _get_data_sizes(w): data = rstate.randn(N) mlab.set_variable('data', data) for scales in _get_scales(w): coefs = _compute_matlab_result(data, wavelet, scales, mlab) _check_accuracy(data, w, scales, coefs, wavelet, epsilon) finally: mlab.stop() @uses_precomputed # skip this case if pymatbridge + Matlab are being used @pytest.mark.slow def test_accuracy_precomputed_cwt(): # Keep this specific random seed to match the precomputed Matlab result. rstate = np.random.RandomState(1234) # has to be improved epsilon = 2e-15 epsilon32 = 1e-5 epsilon_psi = 1e-15 for wavelet in wavelets: with warnings.catch_warnings(): warnings.simplefilter('ignore', FutureWarning) w = pywt.ContinuousWavelet(wavelet) w32 = pywt.ContinuousWavelet(wavelet,dtype=np.float32) psi = _load_matlab_result_psi(wavelet) _check_accuracy_psi(w, psi, wavelet, epsilon_psi) for N in _get_data_sizes(w): data = rstate.randn(N) data32 = data.astype(np.float32) scales_count = 0 for scales in _get_scales(w): scales_count += 1 coefs = _load_matlab_result(data, wavelet, scales_count) _check_accuracy(data, w, scales, coefs, wavelet, epsilon) _check_accuracy(data32, w32, scales, coefs, wavelet, epsilon32) def _compute_matlab_result(data, wavelet, scales, mlab): """ Compute the result using MATLAB. This function assumes that the Matlab variables `wavelet` and `data` have already been set externally. """ mlab.set_variable('scales', scales) mlab_code = ("coefs = cwt(data, scales, wavelet)") res = mlab.run_code(mlab_code) if not res['success']: raise RuntimeError("Matlab failed to execute the provided code. " "Check that the wavelet toolbox is installed.") # need np.asarray because sometimes the output is a single float64 coefs = np.asarray(mlab.get_variable('coefs')) return coefs def _load_matlab_result(data, wavelet, scales): """ Load the precomputed result. """ N = len(data) coefs_key = '_'.join([str(scales), wavelet, str(N), 'coefs']) if (coefs_key not in matlab_result_dict_cwt): raise KeyError( "Precompted Matlab result not found for wavelet: " "{0}, mode: {1}, size: {2}".format(wavelet, scales, N)) coefs = matlab_result_dict_cwt[coefs_key] return coefs def _load_matlab_result_psi(wavelet): """ Load the precomputed result. """ psi_key = '_'.join([wavelet, 'psi']) if (psi_key not in matlab_result_dict_cwt): raise KeyError( "Precompted Matlab psi result not found for wavelet: " "{0}}".format(wavelet)) psi = matlab_result_dict_cwt[psi_key] return psi def _check_accuracy(data, w, scales, coefs, wavelet, epsilon): # PyWavelets result coefs_pywt, freq = pywt.cwt(data, scales, w) # coefs from Matlab are from R2012a which is missing the complex conjugate # as shown in Eq. 2 of Torrence and Compo. We take the complex conjugate of # the precomputed Matlab result to account for this. coefs = np.conj(coefs) # calculate error measures err = coefs_pywt - coefs rms = np.real(np.sqrt(np.mean(np.conj(err) * err))) msg = ('[RMS > EPSILON] for Scale: %s, Wavelet: %s, ' 'Length: %d, rms=%.3g' % (scales, wavelet, len(data), rms)) assert_(rms < epsilon, msg=msg) def _check_accuracy_psi(w, psi, wavelet, epsilon): # PyWavelets result psi_pywt, x = w.wavefun(length=1024) # calculate error measures err = psi_pywt.flatten() - psi.flatten() rms = np.real(np.sqrt(np.mean(np.conj(err) * err))) msg = ('[RMS > EPSILON] for Wavelet: %s, ' 'rms=%.3g' % (wavelet, rms)) assert_(rms < epsilon, msg=msg) PyWavelets-1.1.1/pywt/tests/test_modes.py0000644000175000017500000001136013552333332021145 0ustar lee8rxlee8rx00000000000000#!/usr/bin/env python from __future__ import division, print_function, absolute_import import numpy as np from numpy.testing import assert_raises, assert_equal, assert_allclose import pywt def test_available_modes(): modes = ['zero', 'constant', 'symmetric', 'periodic', 'smooth', 'periodization', 'reflect', 'antisymmetric', 'antireflect'] assert_equal(pywt.Modes.modes, modes) assert_equal(pywt.Modes.from_object('constant'), 2) def test_invalid_modes(): x = np.arange(4) assert_raises(ValueError, pywt.dwt, x, 'db2', 'unknown') assert_raises(ValueError, pywt.dwt, x, 'db2', -1) assert_raises(ValueError, pywt.dwt, x, 'db2', 9) assert_raises(TypeError, pywt.dwt, x, 'db2', None) assert_raises(ValueError, pywt.Modes.from_object, 'unknown') assert_raises(ValueError, pywt.Modes.from_object, -1) assert_raises(ValueError, pywt.Modes.from_object, 9) assert_raises(TypeError, pywt.Modes.from_object, None) def test_dwt_idwt_allmodes(): # Test that :func:`dwt` and :func:`idwt` can be performed using every mode x = [1, 2, 1, 5, -1, 8, 4, 6] dwt_results = { 'zero': ([-0.03467518, 1.73309178, 3.40612438, 6.32928585, 6.95094948], [-0.12940952, -2.15599552, -5.95034847, -1.21545369, -1.8625013]), 'constant': ([1.28480404, 1.73309178, 3.40612438, 6.32928585, 7.51935555], [-0.48296291, -2.15599552, -5.95034847, -1.21545369, 0.25881905]), 'symmetric': ([1.76776695, 1.73309178, 3.40612438, 6.32928585, 7.77817459], [-0.61237244, -2.15599552, -5.95034847, -1.21545369, 1.22474487]), 'reflect': ([2.12132034, 1.73309178, 3.40612438, 6.32928585, 6.81224877], [-0.70710678, -2.15599552, -5.95034847, -1.21545369, -2.38013939]), 'periodic': ([6.9162743, 1.73309178, 3.40612438, 6.32928585, 6.9162743], [-1.99191082, -2.15599552, -5.95034847, -1.21545369, -1.99191082]), 'smooth': ([-0.51763809, 1.73309178, 3.40612438, 6.32928585, 7.45000519], [0, -2.15599552, -5.95034847, -1.21545369, 0]), 'periodization': ([4.053172, 3.05257099, 2.85381112, 8.42522221], [0.18946869, 4.18258152, 4.33737503, 2.60428326]), 'antisymmetric': ([-1.83711731, 1.73309178, 3.40612438, 6.32928585, 6.12372436], [0.353553391, -2.15599552, -5.95034847, -1.21545369, -4.94974747]), 'antireflect': ([0.44828774, 1.73309178, 3.40612438, 6.32928585, 8.22646233], [-0.25881905, -2.15599552, -5.95034847, -1.21545369, 2.89777748]) } for mode in pywt.Modes.modes: cA, cD = pywt.dwt(x, 'db2', mode) assert_allclose(cA, dwt_results[mode][0], rtol=1e-7, atol=1e-8) assert_allclose(cD, dwt_results[mode][1], rtol=1e-7, atol=1e-8) assert_allclose(pywt.idwt(cA, cD, 'db2', mode), x, rtol=1e-10) def test_dwt_short_input_allmodes(): # some test cases where the input is shorter than the DWT filter x = [1, 3, 2] wavelet = 'db2' # manually pad each end by the filter size (4 for 'db2' used here) padded_x = {'zero': [0, 0, 0, 0, 1, 3, 2, 0, 0, 0, 0], 'constant': [1, 1, 1, 1, 1, 3, 2, 2, 2, 2, 2], 'symmetric': [2, 2, 3, 1, 1, 3, 2, 2, 3, 1, 1], 'reflect': [1, 3, 2, 3, 1, 3, 2, 3, 1, 3, 2], 'periodic': [2, 1, 3, 2, 1, 3, 2, 1, 3, 2, 1], 'smooth': [-7, -5, -3, -1, 1, 3, 2, 1, 0, -1, -2], 'antisymmetric': [2, -2, -3, -1, 1, 3, 2, -2, -3, -1, 1], 'antireflect': [1, -1, 0, -1, 1, 3, 2, 1, 3, 5, 4], } for mode, xpad in padded_x.items(): # DWT of the manually padded array. will discard edges later so # symmetric mode used here doesn't matter. cApad, cDpad = pywt.dwt(xpad, wavelet, mode='symmetric') # central region of the padded output (unaffected by mode ) expected_result = (cApad[2:-2], cDpad[2:-2]) cA, cD = pywt.dwt(x, wavelet, mode) assert_allclose(cA, expected_result[0], rtol=1e-7, atol=1e-8) assert_allclose(cD, expected_result[1], rtol=1e-7, atol=1e-8) def test_default_mode(): # The default mode should be 'symmetric' x = [1, 2, 1, 5, -1, 8, 4, 6] cA, cD = pywt.dwt(x, 'db2') cA2, cD2 = pywt.dwt(x, 'db2', mode='symmetric') assert_allclose(cA, cA2) assert_allclose(cD, cD2) assert_allclose(pywt.idwt(cA, cD, 'db2'), x) PyWavelets-1.1.1/pywt/tests/test_multidim.py0000644000175000017500000003512513552333332021667 0ustar lee8rxlee8rx00000000000000#!/usr/bin/env python from __future__ import division, print_function, absolute_import import numpy as np from itertools import combinations from numpy.testing import assert_allclose, assert_, assert_raises, assert_equal import pywt # Check that float32, float64, complex64, complex128 are preserved. # Other real types get converted to float64. # complex256 gets converted to complex128 dtypes_in = [np.int8, np.float16, np.float32, np.float64, np.complex64, np.complex128] dtypes_out = [np.float64, np.float32, np.float32, np.float64, np.complex64, np.complex128] # test complex256 as well if it is available try: dtypes_in += [np.complex256, ] dtypes_out += [np.complex128, ] except AttributeError: pass def test_dwtn_input(): # Array-like must be accepted pywt.dwtn([1, 2, 3, 4], 'haar') # Others must not data = dict() assert_raises(TypeError, pywt.dwtn, data, 'haar') # Must be at least 1D assert_raises(ValueError, pywt.dwtn, 2, 'haar') def test_3D_reconstruct(): data = np.array([ [[0, 4, 1, 5, 1, 4], [0, 5, 26, 3, 2, 1], [5, 8, 2, 33, 4, 9], [2, 5, 19, 4, 19, 1]], [[1, 5, 1, 2, 3, 4], [7, 12, 6, 52, 7, 8], [2, 12, 3, 52, 6, 8], [5, 2, 6, 78, 12, 2]]]) wavelet = pywt.Wavelet('haar') for mode in pywt.Modes.modes: d = pywt.dwtn(data, wavelet, mode=mode) assert_allclose(data, pywt.idwtn(d, wavelet, mode=mode), rtol=1e-13, atol=1e-13) def test_dwdtn_idwtn_allwavelets(): rstate = np.random.RandomState(1234) r = rstate.randn(16, 16) # test 2D case only for all wavelet types wavelist = pywt.wavelist() if 'dmey' in wavelist: wavelist.remove('dmey') for wavelet in wavelist: if wavelet in ['cmor', 'shan', 'fbsp']: # skip these CWT families to avoid warnings continue if isinstance(pywt.DiscreteContinuousWavelet(wavelet), pywt.Wavelet): for mode in pywt.Modes.modes: coeffs = pywt.dwtn(r, wavelet, mode=mode) assert_allclose(pywt.idwtn(coeffs, wavelet, mode=mode), r, rtol=1e-7, atol=1e-7) def test_stride(): wavelet = pywt.Wavelet('haar') for dtype in ('float32', 'float64'): data = np.array([[0, 4, 1, 5, 1, 4], [0, 5, 6, 3, 2, 1], [2, 5, 19, 4, 19, 1]], dtype=dtype) for mode in pywt.Modes.modes: expected = pywt.dwtn(data, wavelet) strided = np.ones((3, 12), dtype=data.dtype) strided[::-1, ::2] = data strided_dwtn = pywt.dwtn(strided[::-1, ::2], wavelet) for key in expected.keys(): assert_allclose(strided_dwtn[key], expected[key]) def test_byte_offset(): wavelet = pywt.Wavelet('haar') for dtype in ('float32', 'float64'): data = np.array([[0, 4, 1, 5, 1, 4], [0, 5, 6, 3, 2, 1], [2, 5, 19, 4, 19, 1]], dtype=dtype) for mode in pywt.Modes.modes: expected = pywt.dwtn(data, wavelet) padded = np.ones((3, 6), dtype=np.dtype({'data': (data.dtype, 0), 'pad': ('byte', data.dtype.itemsize)}, align=True)) padded[:] = data padded_dwtn = pywt.dwtn(padded['data'], wavelet) for key in expected.keys(): assert_allclose(padded_dwtn[key], expected[key]) def test_3D_reconstruct_complex(): # All dimensions even length so `take` does not need to be specified data = np.array([ [[0, 4, 1, 5, 1, 4], [0, 5, 26, 3, 2, 1], [5, 8, 2, 33, 4, 9], [2, 5, 19, 4, 19, 1]], [[1, 5, 1, 2, 3, 4], [7, 12, 6, 52, 7, 8], [2, 12, 3, 52, 6, 8], [5, 2, 6, 78, 12, 2]]]) data = data + 1j wavelet = pywt.Wavelet('haar') d = pywt.dwtn(data, wavelet) # idwtn creates even-length shapes (2x dwtn size) original_shape = tuple([slice(None, s) for s in data.shape]) assert_allclose(data, pywt.idwtn(d, wavelet)[original_shape], rtol=1e-13, atol=1e-13) def test_idwtn_idwt2(): data = np.array([ [0, 4, 1, 5, 1, 4], [0, 5, 6, 3, 2, 1], [2, 5, 19, 4, 19, 1]]) wavelet = pywt.Wavelet('haar') LL, (HL, LH, HH) = pywt.dwt2(data, wavelet) d = {'aa': LL, 'da': HL, 'ad': LH, 'dd': HH} for mode in pywt.Modes.modes: assert_allclose(pywt.idwt2((LL, (HL, LH, HH)), wavelet, mode=mode), pywt.idwtn(d, wavelet, mode=mode), rtol=1e-14, atol=1e-14) def test_idwtn_idwt2_complex(): data = np.array([ [0, 4, 1, 5, 1, 4], [0, 5, 6, 3, 2, 1], [2, 5, 19, 4, 19, 1]]) data = data + 1j wavelet = pywt.Wavelet('haar') LL, (HL, LH, HH) = pywt.dwt2(data, wavelet) d = {'aa': LL, 'da': HL, 'ad': LH, 'dd': HH} for mode in pywt.Modes.modes: assert_allclose(pywt.idwt2((LL, (HL, LH, HH)), wavelet, mode=mode), pywt.idwtn(d, wavelet, mode=mode), rtol=1e-14, atol=1e-14) def test_idwtn_missing(): # Test to confirm missing data behave as zeroes data = np.array([ [0, 4, 1, 5, 1, 4], [0, 5, 6, 3, 2, 1], [2, 5, 19, 4, 19, 1]]) wavelet = pywt.Wavelet('haar') coefs = pywt.dwtn(data, wavelet) # No point removing zero, or all for num_missing in range(1, len(coefs)): for missing in combinations(coefs.keys(), num_missing): missing_coefs = coefs.copy() for key in missing: del missing_coefs[key] LL = missing_coefs.get('aa', None) HL = missing_coefs.get('da', None) LH = missing_coefs.get('ad', None) HH = missing_coefs.get('dd', None) assert_allclose(pywt.idwt2((LL, (HL, LH, HH)), wavelet), pywt.idwtn(missing_coefs, 'haar'), atol=1e-15) def test_idwtn_all_coeffs_None(): coefs = dict(aa=None, da=None, ad=None, dd=None) assert_raises(ValueError, pywt.idwtn, coefs, 'haar') def test_error_on_invalid_keys(): data = np.array([ [0, 4, 1, 5, 1, 4], [0, 5, 6, 3, 2, 1], [2, 5, 19, 4, 19, 1]]) wavelet = pywt.Wavelet('haar') LL, (HL, LH, HH) = pywt.dwt2(data, wavelet) # unexpected key d = {'aa': LL, 'da': HL, 'ad': LH, 'dd': HH, 'ff': LH} assert_raises(ValueError, pywt.idwtn, d, wavelet) # mismatched key lengths d = {'a': LL, 'da': HL, 'ad': LH, 'dd': HH} assert_raises(ValueError, pywt.idwtn, d, wavelet) def test_error_mismatched_size(): data = np.array([ [0, 4, 1, 5, 1, 4], [0, 5, 6, 3, 2, 1], [2, 5, 19, 4, 19, 1]]) wavelet = pywt.Wavelet('haar') LL, (HL, LH, HH) = pywt.dwt2(data, wavelet) # Pass/fail depends on first element being shorter than remaining ones so # set 3/4 to an incorrect size to maximize chances. Order of dict items # is random so may not trigger on every test run. Dict is constructed # inside idwtn function so no use using an OrderedDict here. LL = LL[:, :-1] LH = LH[:, :-1] HH = HH[:, :-1] d = {'aa': LL, 'da': HL, 'ad': LH, 'dd': HH} assert_raises(ValueError, pywt.idwtn, d, wavelet) def test_dwt2_idwt2_dtypes(): wavelet = pywt.Wavelet('haar') for dt_in, dt_out in zip(dtypes_in, dtypes_out): x = np.ones((4, 4), dtype=dt_in) errmsg = "wrong dtype returned for {0} input".format(dt_in) cA, (cH, cV, cD) = pywt.dwt2(x, wavelet) assert_(cA.dtype == cH.dtype == cV.dtype == cD.dtype, "dwt2: " + errmsg) x_roundtrip = pywt.idwt2((cA, (cH, cV, cD)), wavelet) assert_(x_roundtrip.dtype == dt_out, "idwt2: " + errmsg) def test_dwtn_axes(): data = np.array([[0, 1, 2, 3], [1, 1, 1, 1], [1, 4, 2, 8]]) data = data + 1j*data # test with complex data coefs = pywt.dwtn(data, 'haar', axes=(1,)) expected_a = list(map(lambda x: pywt.dwt(x, 'haar')[0], data)) assert_equal(coefs['a'], expected_a) expected_d = list(map(lambda x: pywt.dwt(x, 'haar')[1], data)) assert_equal(coefs['d'], expected_d) coefs = pywt.dwtn(data, 'haar', axes=(1, 1)) expected_aa = list(map(lambda x: pywt.dwt(x, 'haar')[0], expected_a)) assert_equal(coefs['aa'], expected_aa) expected_ad = list(map(lambda x: pywt.dwt(x, 'haar')[1], expected_a)) assert_equal(coefs['ad'], expected_ad) def test_idwtn_axes(): data = np.array([[0, 1, 2, 3], [1, 1, 1, 1], [1, 4, 2, 8]]) data = data + 1j*data # test with complex data coefs = pywt.dwtn(data, 'haar', axes=(1, 1)) assert_allclose(pywt.idwtn(coefs, 'haar', axes=(1, 1)), data, atol=1e-14) def test_idwt2_none_coeffs(): data = np.array([[0, 1, 2, 3], [1, 1, 1, 1], [1, 4, 2, 8]]) data = data + 1j*data # test with complex data cA, (cH, cV, cD) = pywt.dwt2(data, 'haar', axes=(1, 1)) # verify setting coefficients to None is the same as zeroing them cD = np.zeros_like(cD) result_zeros = pywt.idwt2((cA, (cH, cV, cD)), 'haar', axes=(1, 1)) cD = None result_none = pywt.idwt2((cA, (cH, cV, cD)), 'haar', axes=(1, 1)) assert_equal(result_zeros, result_none) def test_idwtn_none_coeffs(): data = np.array([[0, 1, 2, 3], [1, 1, 1, 1], [1, 4, 2, 8]]) data = data + 1j*data # test with complex data coefs = pywt.dwtn(data, 'haar', axes=(1, 1)) # verify setting coefficients to None is the same as zeroing them coefs['dd'] = np.zeros_like(coefs['dd']) result_zeros = pywt.idwtn(coefs, 'haar', axes=(1, 1)) coefs['dd'] = None result_none = pywt.idwtn(coefs, 'haar', axes=(1, 1)) assert_equal(result_zeros, result_none) def test_idwt2_axes(): data = np.array([[0, 1, 2, 3], [1, 1, 1, 1], [1, 4, 2, 8]]) coefs = pywt.dwt2(data, 'haar', axes=(1, 1)) assert_allclose(pywt.idwt2(coefs, 'haar', axes=(1, 1)), data, atol=1e-14) # too many axes assert_raises(ValueError, pywt.idwt2, coefs, 'haar', axes=(0, 1, 1)) def test_idwt2_axes_subsets(): data = np.array(np.random.standard_normal((4, 4, 4))) # test all combinations of 2 out of 3 axes transformed for axes in combinations((0, 1, 2), 2): coefs = pywt.dwt2(data, 'haar', axes=axes) assert_allclose(pywt.idwt2(coefs, 'haar', axes=axes), data, atol=1e-14) def test_idwtn_axes_subsets(): data = np.array(np.random.standard_normal((4, 4, 4, 4))) # test all combinations of 3 out of 4 axes transformed for axes in combinations((0, 1, 2, 3), 3): coefs = pywt.dwtn(data, 'haar', axes=axes) assert_allclose(pywt.idwtn(coefs, 'haar', axes=axes), data, atol=1e-14) def test_negative_axes(): data = np.array([[0, 1, 2, 3], [1, 1, 1, 1], [1, 4, 2, 8]]) coefs1 = pywt.dwtn(data, 'haar', axes=(1, 1)) coefs2 = pywt.dwtn(data, 'haar', axes=(-1, -1)) assert_equal(coefs1, coefs2) rec1 = pywt.idwtn(coefs1, 'haar', axes=(1, 1)) rec2 = pywt.idwtn(coefs1, 'haar', axes=(-1, -1)) assert_equal(rec1, rec2) def test_dwtn_idwtn_dtypes(): wavelet = pywt.Wavelet('haar') for dt_in, dt_out in zip(dtypes_in, dtypes_out): x = np.ones((4, 4), dtype=dt_in) errmsg = "wrong dtype returned for {0} input".format(dt_in) coeffs = pywt.dwtn(x, wavelet) for k, v in coeffs.items(): assert_(v.dtype == dt_out, "dwtn: " + errmsg) x_roundtrip = pywt.idwtn(coeffs, wavelet) assert_(x_roundtrip.dtype == dt_out, "idwtn: " + errmsg) def test_idwtn_mixed_complex_dtype(): rstate = np.random.RandomState(0) x = rstate.randn(8, 8, 8) x = x + 1j*x coeffs = pywt.dwtn(x, 'db2') x_roundtrip = pywt.idwtn(coeffs, 'db2') assert_allclose(x_roundtrip, x, rtol=1e-10) # mismatched dtypes OK coeffs['a' * x.ndim] = coeffs['a' * x.ndim].astype(np.complex64) x_roundtrip2 = pywt.idwtn(coeffs, 'db2') assert_allclose(x_roundtrip2, x, rtol=1e-7, atol=1e-7) assert_(x_roundtrip2.dtype == np.complex128) def test_idwt2_size_mismatch_error(): LL = np.zeros((6, 6)) LH = HL = HH = np.zeros((5, 5)) assert_raises(ValueError, pywt.idwt2, (LL, (LH, HL, HH)), wavelet='haar') def test_dwt2_dimension_error(): data = np.ones(16) wavelet = pywt.Wavelet('haar') # wrong number of input dimensions assert_raises(ValueError, pywt.dwt2, data, wavelet) # too many axes data2 = np.ones((8, 8)) assert_raises(ValueError, pywt.dwt2, data2, wavelet, axes=(0, 1, 1)) def test_per_axis_wavelets_and_modes(): # tests seperate wavelet and edge mode for each axis. rstate = np.random.RandomState(1234) data = rstate.randn(16, 16, 16) # wavelet can be a string or wavelet object wavelets = (pywt.Wavelet('haar'), 'sym2', 'db4') # mode can be a string or a Modes enum modes = ('symmetric', 'periodization', pywt._extensions._pywt.Modes.reflect) coefs = pywt.dwtn(data, wavelets, modes) assert_allclose(pywt.idwtn(coefs, wavelets, modes), data, atol=1e-14) coefs = pywt.dwtn(data, wavelets[:1], modes) assert_allclose(pywt.idwtn(coefs, wavelets[:1], modes), data, atol=1e-14) coefs = pywt.dwtn(data, wavelets, modes[:1]) assert_allclose(pywt.idwtn(coefs, wavelets, modes[:1]), data, atol=1e-14) # length of wavelets or modes doesn't match the length of axes assert_raises(ValueError, pywt.dwtn, data, wavelets[:2]) assert_raises(ValueError, pywt.dwtn, data, wavelets, mode=modes[:2]) assert_raises(ValueError, pywt.idwtn, coefs, wavelets[:2]) assert_raises(ValueError, pywt.idwtn, coefs, wavelets, mode=modes[:2]) # dwt2/idwt2 also support per-axis wavelets/modes data2 = data[..., 0] coefs2 = pywt.dwt2(data2, wavelets[:2], modes[:2]) assert_allclose(pywt.idwt2(coefs2, wavelets[:2], modes[:2]), data2, atol=1e-14) def test_error_on_continuous_wavelet(): # A ValueError is raised if a Continuous wavelet is selected data = np.ones((16, 16)) for dec_fun, rec_fun in zip([pywt.dwt2, pywt.dwtn], [pywt.idwt2, pywt.idwtn]): for cwave in ['morl', pywt.DiscreteContinuousWavelet('morl')]: assert_raises(ValueError, dec_fun, data, wavelet=cwave) c = dec_fun(data, 'db1') assert_raises(ValueError, rec_fun, c, wavelet=cwave) PyWavelets-1.1.1/pywt/tests/test_multilevel.py0000644000175000017500000011416113552333332022223 0ustar lee8rxlee8rx00000000000000#!/usr/bin/env python from __future__ import division, print_function, absolute_import import warnings from itertools import combinations import numpy as np import pytest from numpy.testing import (assert_almost_equal, assert_allclose, assert_, assert_equal, assert_raises, assert_raises_regex, assert_array_equal, assert_warns) import pywt # Check that float32, float64, complex64, complex128 are preserved. # Other real types get converted to float64. # complex256 gets converted to complex128 dtypes_in = [np.int8, np.float16, np.float32, np.float64, np.complex64, np.complex128] dtypes_out = [np.float64, np.float32, np.float32, np.float64, np.complex64, np.complex128] # tolerances used in accuracy comparisons tol_single = 1e-6 tol_double = 1e-13 dtypes_and_tolerances = [(np.float16, tol_single), (np.float32, tol_single), (np.float64, tol_double), (np.int8, tol_double), (np.complex64, tol_single), (np.complex128, tol_double)] # test complex256 as well if it is available try: dtypes_in += [np.complex256, ] dtypes_out += [np.complex128, ] dtypes_and_tolerances += [(np.complex256, tol_double), ] except AttributeError: pass # determine which wavelets to test wavelist = pywt.wavelist() if 'dmey' in wavelist: # accuracy is very low for dmey, so omit it wavelist.remove('dmey') # removing wavelets with dwt_possible == False del_list = [] for wavelet in wavelist: with warnings.catch_warnings(): warnings.simplefilter('ignore', FutureWarning) if not isinstance(pywt.DiscreteContinuousWavelet(wavelet), pywt.Wavelet): del_list.append(wavelet) for del_ind in del_list: wavelist.remove(del_ind) #### # 1d multilevel dwt tests #### def test_wavedec(): x = [3, 7, 1, 1, -2, 5, 4, 6] db1 = pywt.Wavelet('db1') cA3, cD3, cD2, cD1 = pywt.wavedec(x, db1) assert_almost_equal(cA3, [8.83883476]) assert_almost_equal(cD3, [-0.35355339]) assert_allclose(cD2, [4., -3.5]) assert_allclose(cD1, [-2.82842712, 0, -4.94974747, -1.41421356]) assert_(pywt.dwt_max_level(len(x), db1) == 3) def test_waverec_invalid_inputs(): # input must be list or tuple assert_raises(ValueError, pywt.waverec, np.ones(8), 'haar') # input list cannot be empty assert_raises(ValueError, pywt.waverec, [], 'haar') # 'array_to_coeffs must specify 'output_format' to perform waverec x = [3, 7, 1, 1, -2, 5, 4, 6] coeffs = pywt.wavedec(x, 'db1') arr, coeff_slices = pywt.coeffs_to_array(coeffs) coeffs_from_arr = pywt.array_to_coeffs(arr, coeff_slices) message = "Unexpected detail coefficient type" assert_raises_regex(ValueError, message, pywt.waverec, coeffs_from_arr, 'haar') def test_waverec_accuracies(): rstate = np.random.RandomState(1234) x0 = rstate.randn(8) for dt, tol in dtypes_and_tolerances: x = x0.astype(dt) if np.iscomplexobj(x): x += 1j*rstate.randn(8).astype(x.real.dtype) coeffs = pywt.wavedec(x, 'db1') assert_allclose(pywt.waverec(coeffs, 'db1'), x, atol=tol, rtol=tol) def test_waverec_none(): x = [3, 7, 1, 1, -2, 5, 4, 6] coeffs = pywt.wavedec(x, 'db1') # set some coefficients to None coeffs[2] = None coeffs[0] = None assert_(pywt.waverec(coeffs, 'db1').size, len(x)) def test_waverec_odd_length(): x = [3, 7, 1, 1, -2, 5] coeffs = pywt.wavedec(x, 'db1') assert_allclose(pywt.waverec(coeffs, 'db1'), x, rtol=1e-12) def test_waverec_complex(): x = np.array([3, 7, 1, 1, -2, 5, 4, 6]) x = x + 1j coeffs = pywt.wavedec(x, 'db1') assert_allclose(pywt.waverec(coeffs, 'db1'), x, rtol=1e-12) def test_multilevel_dtypes_1d(): # only checks that the result is of the expected type wavelet = pywt.Wavelet('haar') for dt_in, dt_out in zip(dtypes_in, dtypes_out): # wavedec, waverec x = np.ones(8, dtype=dt_in) errmsg = "wrong dtype returned for {0} input".format(dt_in) coeffs = pywt.wavedec(x, wavelet, level=2) for c in coeffs: assert_(c.dtype == dt_out, "wavedec: " + errmsg) x_roundtrip = pywt.waverec(coeffs, wavelet) assert_(x_roundtrip.dtype == dt_out, "waverec: " + errmsg) def test_waverec_all_wavelets_modes(): # test 2D case using all wavelets and modes rstate = np.random.RandomState(1234) r = rstate.randn(80) for wavelet in wavelist: for mode in pywt.Modes.modes: coeffs = pywt.wavedec(r, wavelet, mode=mode) assert_allclose(pywt.waverec(coeffs, wavelet, mode=mode), r, rtol=tol_single, atol=tol_single) #### # 2d multilevel dwt function tests #### def test_waverec2_accuracies(): rstate = np.random.RandomState(1234) x0 = rstate.randn(4, 4) for dt, tol in dtypes_and_tolerances: x = x0.astype(dt) if np.iscomplexobj(x): x += 1j*rstate.randn(4, 4).astype(x.real.dtype) coeffs = pywt.wavedec2(x, 'db1') assert_(len(coeffs) == 3) assert_allclose(pywt.waverec2(coeffs, 'db1'), x, atol=tol, rtol=tol) def test_multilevel_dtypes_2d(): wavelet = pywt.Wavelet('haar') for dt_in, dt_out in zip(dtypes_in, dtypes_out): # wavedec2, waverec2 x = np.ones((8, 8), dtype=dt_in) errmsg = "wrong dtype returned for {0} input".format(dt_in) cA, coeffsD2, coeffsD1 = pywt.wavedec2(x, wavelet, level=2) assert_(cA.dtype == dt_out, "wavedec2: " + errmsg) for c in coeffsD1: assert_(c.dtype == dt_out, "wavedec2: " + errmsg) for c in coeffsD2: assert_(c.dtype == dt_out, "wavedec2: " + errmsg) x_roundtrip = pywt.waverec2([cA, coeffsD2, coeffsD1], wavelet) assert_(x_roundtrip.dtype == dt_out, "waverec2: " + errmsg) @pytest.mark.slow def test_waverec2_all_wavelets_modes(): # test 2D case using all wavelets and modes rstate = np.random.RandomState(1234) r = rstate.randn(80, 96) for wavelet in wavelist: for mode in pywt.Modes.modes: coeffs = pywt.wavedec2(r, wavelet, mode=mode) assert_allclose(pywt.waverec2(coeffs, wavelet, mode=mode), r, rtol=tol_single, atol=tol_single) def test_wavedec2_complex(): data = np.ones((4, 4)) + 1j coeffs = pywt.wavedec2(data, 'db1') assert_(len(coeffs) == 3) assert_allclose(pywt.waverec2(coeffs, 'db1'), data, rtol=1e-12) def test_wavedec2_invalid_inputs(): # input array has too few dimensions data = np.ones(4) assert_raises(ValueError, pywt.wavedec2, data, 'haar') def test_waverec2_invalid_inputs(): # input must be list or tuple assert_raises(ValueError, pywt.waverec2, np.ones((8, 8)), 'haar') # input list cannot be empty assert_raises(ValueError, pywt.waverec2, [], 'haar') # coefficients from a difference decomposition used as input for dec_func in [pywt.wavedec, pywt.wavedecn]: coeffs = dec_func(np.ones((8, 8)), 'haar') message = "Unexpected detail coefficient type" assert_raises_regex(ValueError, message, pywt.waverec2, coeffs, 'haar') def test_waverec2_coeff_shape_mismatch(): x = np.ones((8, 8)) coeffs = pywt.wavedec2(x, 'db1') # introduce a shape mismatch in the coefficients coeffs = list(coeffs) coeffs[1] = list(coeffs[1]) coeffs[1][1] = np.zeros((16, 1)) assert_raises(ValueError, pywt.waverec2, coeffs, 'db1') def test_waverec2_odd_length(): x = np.ones((10, 6)) coeffs = pywt.wavedec2(x, 'db1') assert_allclose(pywt.waverec2(coeffs, 'db1'), x, rtol=1e-12) def test_waverec2_none_coeffs(): x = np.arange(24).reshape(6, 4) coeffs = pywt.wavedec2(x, 'db1') coeffs[1] = (None, None, None) assert_(x.shape == pywt.waverec2(coeffs, 'db1').shape) #### # nd multilevel dwt function tests #### def test_waverecn(): rstate = np.random.RandomState(1234) # test 1D through 4D cases for nd in range(1, 5): x = rstate.randn(*(4, )*nd) coeffs = pywt.wavedecn(x, 'db1') assert_(len(coeffs) == 3) assert_allclose(pywt.waverecn(coeffs, 'db1'), x, rtol=tol_double) def test_waverecn_empty_coeff(): coeffs = [np.ones((2, 2, 2)), {}, {}] assert_equal(pywt.waverecn(coeffs, 'db1').shape, (8, 8, 8)) assert_equal(pywt.waverecn(coeffs, 'db1').shape, (8, 8, 8)) coeffs = [np.ones((2, 2, 2)), {}, {'daa': np.ones((4, 4, 4))}] coeffs = [np.ones((2, 2, 2)), {}, {}, {'daa': np.ones((8, 8, 8))}] assert_equal(pywt.waverecn(coeffs, 'db1').shape, (16, 16, 16)) def test_waverecn_invalid_coeffs(): # approximation coeffs as None and no valid detail oeffs coeffs = [None, {}] assert_raises(ValueError, pywt.waverecn, coeffs, 'db1') # use of None for a coefficient value coeffs = [np.ones((2, 2, 2)), {}, {'daa': None}, ] assert_raises(ValueError, pywt.waverecn, coeffs, 'db1') # invalid key names in coefficient list coeffs = [np.ones((4, 4, 4)), {'daa': np.ones((4, 4, 4)), 'foo': np.ones((4, 4, 4))}] assert_raises(ValueError, pywt.waverecn, coeffs, 'db1') # mismatched key name lengths coeffs = [np.ones((4, 4, 4)), {'daa': np.ones((4, 4, 4)), 'da': np.ones((4, 4, 4))}] assert_raises(ValueError, pywt.waverecn, coeffs, 'db1') # key name lengths don't match the array dimensions coeffs = [[[[1.0]]], {'ad': [[[0.0]]], 'da': [[[0.0]]], 'dd': [[[0.0]]]}] assert_raises(ValueError, pywt.waverecn, coeffs, 'db1') # input list cannot be empty assert_raises(ValueError, pywt.waverecn, [], 'haar') def test_waverecn_invalid_inputs(): # coefficients from a difference decomposition used as input for dec_func in [pywt.wavedec, pywt.wavedec2]: coeffs = dec_func(np.ones((8, 8)), 'haar') message = "Unexpected detail coefficient type" assert_raises_regex(ValueError, message, pywt.waverecn, coeffs, 'haar') def test_waverecn_lists(): # support coefficient arrays specified as lists instead of arrays coeffs = [[[1.0]], {'ad': [[0.0]], 'da': [[0.0]], 'dd': [[0.0]]}] assert_equal(pywt.waverecn(coeffs, 'db1').shape, (2, 2)) def test_waverecn_invalid_coeffs2(): # shape mismatch should raise an error coeffs = [np.ones((4, 4, 4)), {'ada': np.ones((4, 4))}] assert_raises(ValueError, pywt.waverecn, coeffs, 'db1') def test_wavedecn_invalid_inputs(): # input array has too few dimensions data = np.array(0) assert_raises(ValueError, pywt.wavedecn, data, 'haar') # invalid number of levels data = np.ones(16) assert_raises(ValueError, pywt.wavedecn, data, 'haar', level=-1) def test_wavedecn_many_levels(): # perfect reconstruction even when level > pywt.dwt_max_level data = np.arange(64).reshape(8, 8) tol = 1e-12 dec_funcs = [pywt.wavedec, pywt.wavedec2, pywt.wavedecn] rec_funcs = [pywt.waverec, pywt.waverec2, pywt.waverecn] with warnings.catch_warnings(): warnings.simplefilter('ignore', UserWarning) for dec_func, rec_func in zip(dec_funcs, rec_funcs): for mode in ['periodization', 'symmetric']: coeffs = dec_func(data, 'haar', mode=mode, level=20) r = rec_func(coeffs, 'haar', mode=mode) assert_allclose(data, r, atol=tol, rtol=tol) def test_waverecn_accuracies(): # testing 3D only here rstate = np.random.RandomState(1234) x0 = rstate.randn(4, 4, 4) for dt, tol in dtypes_and_tolerances: x = x0.astype(dt) if np.iscomplexobj(x): x += 1j*rstate.randn(4, 4, 4).astype(x.real.dtype) coeffs = pywt.wavedecn(x.astype(dt), 'db1') assert_allclose(pywt.waverecn(coeffs, 'db1'), x, atol=tol, rtol=tol) def test_multilevel_dtypes_nd(): wavelet = pywt.Wavelet('haar') for dt_in, dt_out in zip(dtypes_in, dtypes_out): # wavedecn, waverecn x = np.ones((8, 8), dtype=dt_in) errmsg = "wrong dtype returned for {0} input".format(dt_in) cA, coeffsD2, coeffsD1 = pywt.wavedecn(x, wavelet, level=2) assert_(cA.dtype == dt_out, "wavedecn: " + errmsg) for key, c in coeffsD1.items(): assert_(c.dtype == dt_out, "wavedecn: " + errmsg) for key, c in coeffsD2.items(): assert_(c.dtype == dt_out, "wavedecn: " + errmsg) x_roundtrip = pywt.waverecn([cA, coeffsD2, coeffsD1], wavelet) assert_(x_roundtrip.dtype == dt_out, "waverecn: " + errmsg) def test_wavedecn_complex(): data = np.ones((4, 4, 4)) + 1j coeffs = pywt.wavedecn(data, 'db1') assert_allclose(pywt.waverecn(coeffs, 'db1'), data, rtol=1e-12) def test_waverecn_dtypes(): x = np.ones((4, 4, 4)) for dt, tol in dtypes_and_tolerances: coeffs = pywt.wavedecn(x.astype(dt), 'db1') assert_allclose(pywt.waverecn(coeffs, 'db1'), x, atol=tol, rtol=tol) @pytest.mark.slow def test_waverecn_all_wavelets_modes(): # test 2D case using all wavelets and modes rstate = np.random.RandomState(1234) r = rstate.randn(80, 96) for wavelet in wavelist: for mode in pywt.Modes.modes: coeffs = pywt.wavedecn(r, wavelet, mode=mode) assert_allclose(pywt.waverecn(coeffs, wavelet, mode=mode), r, rtol=tol_single, atol=tol_single) def test_coeffs_to_array(): # single element list returns the first element a_coeffs = [np.arange(8).reshape(2, 4), ] arr, arr_slices = pywt.coeffs_to_array(a_coeffs) assert_allclose(arr, a_coeffs[0]) assert_allclose(arr, arr[arr_slices[0]]) assert_raises(ValueError, pywt.coeffs_to_array, []) # invalid second element: array as in wavedec, but not 1D assert_raises(ValueError, pywt.coeffs_to_array, [a_coeffs[0], ] * 2) # invalid second element: tuple as in wavedec2, but not a 3-tuple assert_raises(ValueError, pywt.coeffs_to_array, [a_coeffs[0], (a_coeffs[0], )]) # coefficients as None is not supported assert_raises(ValueError, pywt.coeffs_to_array, [None, ]) assert_raises(ValueError, pywt.coeffs_to_array, [a_coeffs, (None, None, None)]) # invalid type for second coefficient list element assert_raises(ValueError, pywt.coeffs_to_array, [a_coeffs, None]) # use an invalid key name in the coef dictionary coeffs = [np.array([0]), dict(d=np.array([0]), c=np.array([0]))] assert_raises(ValueError, pywt.coeffs_to_array, coeffs) def test_wavedecn_coeff_reshape_even(): # verify round trip is correct: # wavedecn - >coeffs_to_array-> array_to_coeffs -> waverecn # This is done for wavedec{1, 2, n} rng = np.random.RandomState(1234) params = {'wavedec': {'d': 1, 'dec': pywt.wavedec, 'rec': pywt.waverec}, 'wavedec2': {'d': 2, 'dec': pywt.wavedec2, 'rec': pywt.waverec2}, 'wavedecn': {'d': 3, 'dec': pywt.wavedecn, 'rec': pywt.waverecn}} N = 28 for f in params: x1 = rng.randn(*([N] * params[f]['d'])) for mode in pywt.Modes.modes: for wave in wavelist: w = pywt.Wavelet(wave) maxlevel = pywt.dwt_max_level(np.min(x1.shape), w.dec_len) if maxlevel == 0: continue coeffs = params[f]['dec'](x1, w, mode=mode) coeff_arr, coeff_slices = pywt.coeffs_to_array(coeffs) coeffs2 = pywt.array_to_coeffs(coeff_arr, coeff_slices, output_format=f) x1r = params[f]['rec'](coeffs2, w, mode=mode) assert_allclose(x1, x1r, rtol=1e-4, atol=1e-4) def test_wavedecn_coeff_reshape_axes_subset(): # verify round trip is correct when only a subset of axes are transformed: # wavedecn - >coeffs_to_array-> array_to_coeffs -> waverecn # This is done for wavedec{1, 2, n} rng = np.random.RandomState(1234) mode = 'symmetric' w = pywt.Wavelet('db2') N = 16 ndim = 3 for axes in [(-1, ), (0, ), (1, ), (0, 1), (1, 2), (0, 2), None]: x1 = rng.randn(*([N] * ndim)) coeffs = pywt.wavedecn(x1, w, mode=mode, axes=axes) coeff_arr, coeff_slices = pywt.coeffs_to_array(coeffs, axes=axes) if axes is not None: # if axes is not None, it must be provided to coeffs_to_array assert_raises(ValueError, pywt.coeffs_to_array, coeffs) # mismatched axes size assert_raises(ValueError, pywt.coeffs_to_array, coeffs, axes=(0, 1, 2, 3)) assert_raises(ValueError, pywt.coeffs_to_array, coeffs, axes=()) coeffs2 = pywt.array_to_coeffs(coeff_arr, coeff_slices) x1r = pywt.waverecn(coeffs2, w, mode=mode, axes=axes) assert_allclose(x1, x1r, rtol=1e-4, atol=1e-4) def test_coeffs_to_array_padding(): rng = np.random.RandomState(1234) x1 = rng.randn(32, 32) mode = 'symmetric' coeffs = pywt.wavedecn(x1, 'db2', mode=mode) # padding=None raises a ValueError when tight packing is not possible assert_raises(ValueError, pywt.coeffs_to_array, coeffs, padding=None) # set padded values to nan coeff_arr, coeff_slices = pywt.coeffs_to_array(coeffs, padding=np.nan) npad = np.sum(np.isnan(coeff_arr)) assert_(npad > 0) # pad with zeros coeff_arr, coeff_slices = pywt.coeffs_to_array(coeffs, padding=0) assert_(np.sum(np.isnan(coeff_arr)) == 0) assert_(np.sum(coeff_arr == 0) == npad) # Haar case with N as a power of 2 can be tightly packed coeffs_haar = pywt.wavedecn(x1, 'haar', mode=mode) coeff_arr, coeff_slices = pywt.coeffs_to_array(coeffs_haar, padding=None) # shape of coeff_arr will match in this case, but not in general assert_equal(coeff_arr.shape, x1.shape) def test_waverecn_coeff_reshape_odd(): # verify round trip is correct: # wavedecn - >coeffs_to_array-> array_to_coeffs -> waverecn rng = np.random.RandomState(1234) x1 = rng.randn(35, 33) for mode in pywt.Modes.modes: for wave in ['haar', ]: w = pywt.Wavelet(wave) maxlevel = pywt.dwt_max_level(np.min(x1.shape), w.dec_len) if maxlevel == 0: continue coeffs = pywt.wavedecn(x1, w, mode=mode) coeff_arr, coeff_slices = pywt.coeffs_to_array(coeffs) coeffs2 = pywt.array_to_coeffs(coeff_arr, coeff_slices) x1r = pywt.waverecn(coeffs2, w, mode=mode) # truncate reconstructed values to original shape x1r = x1r[tuple([slice(s) for s in x1.shape])] assert_allclose(x1, x1r, rtol=1e-4, atol=1e-4) def test_array_to_coeffs_invalid_inputs(): coeffs = pywt.wavedecn(np.ones(2), 'haar') arr, arr_slices = pywt.coeffs_to_array(coeffs) # empty list of array slices assert_raises(ValueError, pywt.array_to_coeffs, arr, []) # invalid format name assert_raises(ValueError, pywt.array_to_coeffs, arr, arr_slices, 'foo') def test_wavedecn_coeff_ravel(): # verify round trip is correct: # wavedecn - >ravel_coeffs-> unravel_coeffs -> waverecn # This is done for wavedec{1, 2, n} rng = np.random.RandomState(1234) params = {'wavedec': {'d': 1, 'dec': pywt.wavedec, 'rec': pywt.waverec}, 'wavedec2': {'d': 2, 'dec': pywt.wavedec2, 'rec': pywt.waverec2}, 'wavedecn': {'d': 3, 'dec': pywt.wavedecn, 'rec': pywt.waverecn}} N = 12 for f in params: x1 = rng.randn(*([N] * params[f]['d'])) for mode in pywt.Modes.modes: for wave in wavelist: w = pywt.Wavelet(wave) maxlevel = pywt.dwt_max_level(np.min(x1.shape), w.dec_len) if maxlevel == 0: continue coeffs = params[f]['dec'](x1, w, mode=mode) coeff_arr, slices, shapes = pywt.ravel_coeffs(coeffs) coeffs2 = pywt.unravel_coeffs(coeff_arr, slices, shapes, output_format=f) x1r = params[f]['rec'](coeffs2, w, mode=mode) assert_allclose(x1, x1r, rtol=1e-4, atol=1e-4) def test_wavedecn_coeff_ravel_zero_level(): # verify round trip is correct: # wavedecn - >ravel_coeffs-> unravel_coeffs -> waverecn # This is done for wavedec{1, 2, n} rng = np.random.RandomState(1234) params = {'wavedec': {'d': 1, 'dec': pywt.wavedec, 'rec': pywt.waverec}, 'wavedec2': {'d': 2, 'dec': pywt.wavedec2, 'rec': pywt.waverec2}, 'wavedecn': {'d': 3, 'dec': pywt.wavedecn, 'rec': pywt.waverecn}} N = 16 for f in params: x1 = rng.randn(*([N] * params[f]['d'])) for mode in pywt.Modes.modes: w = pywt.Wavelet('db2') coeffs = params[f]['dec'](x1, w, mode=mode, level=0) coeff_arr, slices, shapes = pywt.ravel_coeffs(coeffs) coeffs2 = pywt.unravel_coeffs(coeff_arr, slices, shapes, output_format=f) x1r = params[f]['rec'](coeffs2, w, mode=mode) assert_allclose(x1, x1r, rtol=1e-4, atol=1e-4) def test_waverecn_coeff_ravel_odd(): # verify round trip is correct: # wavedecn - >ravel_coeffs-> unravel_coeffs -> waverecn rng = np.random.RandomState(1234) x1 = rng.randn(35, 33) for mode in pywt.Modes.modes: for wave in ['haar', ]: w = pywt.Wavelet(wave) maxlevel = pywt.dwt_max_level(np.min(x1.shape), w.dec_len) if maxlevel == 0: continue coeffs = pywt.wavedecn(x1, w, mode=mode) coeff_arr, slices, shapes = pywt.ravel_coeffs(coeffs) coeffs2 = pywt.unravel_coeffs(coeff_arr, slices, shapes) x1r = pywt.waverecn(coeffs2, w, mode=mode) # truncate reconstructed values to original shape x1r = x1r[tuple([slice(s) for s in x1.shape])] assert_allclose(x1, x1r, rtol=1e-4, atol=1e-4) def test_ravel_wavedec2_with_lists(): x1 = np.ones((8, 8)) wav = pywt.Wavelet('haar') coeffs = pywt.wavedec2(x1, wav) # list [cHn, cVn, cDn] instead of tuple is okay coeffs[1:] = [list(c) for c in coeffs[1:]] coeff_arr, slices, shapes = pywt.ravel_coeffs(coeffs) coeffs2 = pywt.unravel_coeffs(coeff_arr, slices, shapes, output_format='wavedec2') x1r = pywt.waverec2(coeffs2, wav) assert_allclose(x1, x1r, rtol=1e-4, atol=1e-4) # wrong length list will cause a ValueError coeffs[1:] = [list(c[:-1]) for c in coeffs[1:]] # truncate diag coeffs assert_raises(ValueError, pywt.ravel_coeffs, coeffs) def test_ravel_invalid_input(): # wavedec ravel does not support any coefficient arrays being set to None coeffs = pywt.wavedec(np.ones(8), 'haar') coeffs[1] = None assert_raises(ValueError, pywt.ravel_coeffs, coeffs) # wavedec2 ravel cannot have None or a tuple/list of None coeffs = pywt.wavedec2(np.ones((8, 8)), 'haar') coeffs[1] = (None, None, None) assert_raises(ValueError, pywt.ravel_coeffs, coeffs) coeffs[1] = [None, None, None] assert_raises(ValueError, pywt.ravel_coeffs, coeffs) coeffs[1] = None assert_raises(ValueError, pywt.ravel_coeffs, coeffs) # wavedecn ravel cannot have any dictionary elements as None coeffs = pywt.wavedecn(np.ones((8, 8, 8)), 'haar') coeffs[1]['ddd'] = None assert_raises(ValueError, pywt.ravel_coeffs, coeffs) def test_unravel_invalid_inputs(): coeffs = pywt.wavedecn(np.ones(2), 'haar') arr, slices, shapes = pywt.ravel_coeffs(coeffs) # empty list for slices or shapes assert_raises(ValueError, pywt.unravel_coeffs, arr, slices, []) assert_raises(ValueError, pywt.unravel_coeffs, arr, [], shapes) # unequal length for slices/shapes assert_raises(ValueError, pywt.unravel_coeffs, arr, slices[:-1], shapes) # invalid format name assert_raises(ValueError, pywt.unravel_coeffs, arr, slices, shapes, 'foo') def test_wavedecn_shapes_and_size(): wav = pywt.Wavelet('db2') for data_shape in [(33, ), (64, 32), (1, 15, 30)]: for axes in [None, 0, -1]: for mode in pywt.Modes.modes: coeffs = pywt.wavedecn(np.ones(data_shape), wav, mode=mode, axes=axes) # verify that the shapes match the coefficient shapes shapes = pywt.wavedecn_shapes(data_shape, wav, mode=mode, axes=axes) assert_equal(coeffs[0].shape, shapes[0]) expected_size = coeffs[0].size for level in range(1, len(coeffs)): for k, v in coeffs[level].items(): expected_size += v.size assert_equal(shapes[level][k], v.shape) # size can be determined from either the shapes or coeffs size = pywt.wavedecn_size(shapes) assert_equal(size, expected_size) size = pywt.wavedecn_size(coeffs) assert_equal(size, expected_size) def test_dwtn_max_level(): # predicted and empirical dwtn_max_level match for wav in [pywt.Wavelet('db2'), 'sym8']: for data_shape in [(33, ), (64, 32), (1, 15, 30)]: for axes in [None, 0, -1]: for mode in pywt.Modes.modes: coeffs = pywt.wavedecn(np.ones(data_shape), wav, mode=mode, axes=axes) max_lev = pywt.dwtn_max_level(data_shape, wav, axes) assert_equal(len(coeffs[1:]), max_lev) def test_waverec_axes_subsets(): rstate = np.random.RandomState(0) data = rstate.standard_normal((8, 8, 8)) # test all combinations of 1 out of 3 axes transformed for axis in [0, 1, 2]: coefs = pywt.wavedec(data, 'haar', axis=axis) rec = pywt.waverec(coefs, 'haar', axis=axis) assert_allclose(rec, data, atol=1e-14) def test_waverec_axis_db2(): # test for fix to issue gh-293 rstate = np.random.RandomState(0) data = rstate.standard_normal((16, 16)) for axis in [0, 1]: coefs = pywt.wavedec(data, 'db2', axis=axis) rec = pywt.waverec(coefs, 'db2', axis=axis) assert_allclose(rec, data, atol=1e-14) def test_waverec2_axes_subsets(): rstate = np.random.RandomState(0) data = rstate.standard_normal((8, 8, 8)) # test all combinations of 2 out of 3 axes transformed for axes in combinations((0, 1, 2), 2): coefs = pywt.wavedec2(data, 'haar', axes=axes) rec = pywt.waverec2(coefs, 'haar', axes=axes) assert_allclose(rec, data, atol=1e-14) def test_waverecn_axes_subsets(): rstate = np.random.RandomState(0) data = rstate.standard_normal((8, 8, 8, 8)) # test all combinations of 3 out of 4 axes transformed for axes in combinations((0, 1, 2, 3), 3): coefs = pywt.wavedecn(data, 'haar', axes=axes) rec = pywt.waverecn(coefs, 'haar', axes=axes) assert_allclose(rec, data, atol=1e-14) def test_waverecn_int_axis(): # waverecn should also work for axes as an integer rstate = np.random.RandomState(0) data = rstate.standard_normal((8, 8)) for axis in [0, 1]: coefs = pywt.wavedecn(data, 'haar', axes=axis) rec = pywt.waverecn(coefs, 'haar', axes=axis) assert_allclose(rec, data, atol=1e-14) def test_wavedec_axis_error(): data = np.ones(4) # out of range axis not allowed assert_raises(ValueError, pywt.wavedec, data, 'haar', axis=1) def test_waverec_axis_error(): c = pywt.wavedec(np.ones(4), 'haar') # out of range axis not allowed assert_raises(ValueError, pywt.waverec, c, 'haar', axis=1) def test_waverec_shape_mismatch_error(): c = pywt.wavedec(np.ones(16), 'haar') # truncate a detail coefficient to an incorrect shape c[3] = c[3][:-1] assert_raises(ValueError, pywt.waverec, c, 'haar', axis=1) def test_wavedec2_axes_errors(): data = np.ones((4, 4)) # integer axes not allowed assert_raises(TypeError, pywt.wavedec2, data, 'haar', axes=1) # non-unique axes not allowed assert_raises(ValueError, pywt.wavedec2, data, 'haar', axes=(0, 0)) # out of range axis not allowed assert_raises(ValueError, pywt.wavedec2, data, 'haar', axes=(0, 2)) def test_waverec2_axes_errors(): data = np.ones((4, 4)) c = pywt.wavedec2(data, 'haar') # integer axes not allowed assert_raises(TypeError, pywt.waverec2, c, 'haar', axes=1) # non-unique axes not allowed assert_raises(ValueError, pywt.waverec2, c, 'haar', axes=(0, 0)) # out of range axis not allowed assert_raises(ValueError, pywt.waverec2, c, 'haar', axes=(0, 2)) def test_wavedecn_axes_errors(): data = np.ones((8, 8, 8)) # repeated axes not allowed assert_raises(ValueError, pywt.wavedecn, data, 'haar', axes=(1, 1)) # out of range axis not allowed assert_raises(ValueError, pywt.wavedecn, data, 'haar', axes=(0, 1, 3)) def test_waverecn_axes_errors(): data = np.ones((8, 8, 8)) c = pywt.wavedecn(data, 'haar') # repeated axes not allowed assert_raises(ValueError, pywt.waverecn, c, 'haar', axes=(1, 1)) # out of range axis not allowed assert_raises(ValueError, pywt.waverecn, c, 'haar', axes=(0, 1, 3)) def test_per_axis_wavelets_and_modes(): # tests seperate wavelet and edge mode for each axis. rstate = np.random.RandomState(1234) data = rstate.randn(24, 24, 16) # wavelet can be a string or wavelet object wavelets = (pywt.Wavelet('haar'), 'sym2', 'db2') # The default number of levels should be the minimum over this list max_levels = [pywt._dwt.dwt_max_level(nd, nf) for nd, nf in zip(data.shape, wavelets)] # mode can be a string or a Modes enum modes = ('symmetric', 'periodization', pywt._extensions._pywt.Modes.reflect) coefs = pywt.wavedecn(data, wavelets, modes) assert_allclose(pywt.waverecn(coefs, wavelets, modes), data, atol=1e-14) assert_equal(min(max_levels), len(coefs[1:])) coefs = pywt.wavedecn(data, wavelets[:1], modes) assert_allclose(pywt.waverecn(coefs, wavelets[:1], modes), data, atol=1e-14) coefs = pywt.wavedecn(data, wavelets, modes[:1]) assert_allclose(pywt.waverecn(coefs, wavelets, modes[:1]), data, atol=1e-14) # length of wavelets or modes doesn't match the length of axes assert_raises(ValueError, pywt.wavedecn, data, wavelets[:2]) assert_raises(ValueError, pywt.wavedecn, data, wavelets, mode=modes[:2]) assert_raises(ValueError, pywt.waverecn, coefs, wavelets[:2]) assert_raises(ValueError, pywt.waverecn, coefs, wavelets, mode=modes[:2]) # dwt2/idwt2 also support per-axis wavelets/modes data2 = data[..., 0] coefs2 = pywt.wavedec2(data2, wavelets[:2], modes[:2]) assert_allclose(pywt.waverec2(coefs2, wavelets[:2], modes[:2]), data2, atol=1e-14) assert_equal(min(max_levels[:2]), len(coefs2[1:])) # Tests for fully separable multi-level transforms def test_fswavedecn_fswaverecn_roundtrip(): # verify proper round trip result for 1D through 4D data # same DWT as wavedecn/waverecn so don't need to test all modes/wavelets rstate = np.random.RandomState(0) for ndim in range(1, 5): for dt_in, dt_out in zip(dtypes_in, dtypes_out): for levels in (1, None): data = rstate.standard_normal((8, )*ndim) data = data.astype(dt_in) T = pywt.fswavedecn(data, 'haar', levels=levels) rec = pywt.fswaverecn(T) if data.real.dtype in [np.float32, np.float16]: assert_allclose(rec, data, rtol=1e-6, atol=1e-6) else: assert_allclose(rec, data, rtol=1e-14, atol=1e-14) assert_(T.coeffs.dtype == dt_out) assert_(rec.dtype == dt_out) def test_fswavedecn_fswaverecn_zero_levels(): # zero level transform gives coefs matching the original data rstate = np.random.RandomState(0) ndim = 2 data = rstate.standard_normal((8, )*ndim) T = pywt.fswavedecn(data, 'haar', levels=0) assert_array_equal(T.coeffs, data) rec = pywt.fswaverecn(T) assert_array_equal(T.coeffs, rec) def test_fswavedecn_fswaverecn_variable_levels(): # test with differing number of transform levels per axis rstate = np.random.RandomState(0) ndim = 3 data = rstate.standard_normal((16, )*ndim) T = pywt.fswavedecn(data, 'haar', levels=(1, 2, 3)) rec = pywt.fswaverecn(T) assert_allclose(rec, data, atol=1e-14) # levels doesn't match number of axes assert_raises(ValueError, pywt.fswavedecn, data, 'haar', levels=(1, 1)) assert_raises(ValueError, pywt.fswavedecn, data, 'haar', levels=(1, 1, 1, 1)) # levels too large for array size assert_warns(UserWarning, pywt.fswavedecn, data, 'haar', levels=int(np.log2(np.min(data.shape)))+1) def test_fswavedecn_fswaverecn_variable_wavelets_and_modes(): # test with differing number of transform levels per axis rstate = np.random.RandomState(0) ndim = 3 data = rstate.standard_normal((16, )*ndim) wavelets = ('haar', 'db2', 'sym3') modes = ('periodic', 'symmetric', 'periodization') T = pywt.fswavedecn(data, wavelet=wavelets, mode=modes) for ax in range(ndim): # expect approx + dwt_max_level detail coeffs along each axis assert_equal(len(T.coeff_slices[ax]), pywt.dwt_max_level(data.shape[ax], wavelets[ax])+1) rec = pywt.fswaverecn(T) assert_allclose(rec, data, atol=1e-14) # number of wavelets doesn't match number of axes assert_raises(ValueError, pywt.fswavedecn, data, wavelets[:2]) # number of modes doesn't match number of axes assert_raises(ValueError, pywt.fswavedecn, data, wavelets[0], mode=modes[:2]) def test_fswavedecn_fswaverecn_axes_subsets(): """Fully separable DWT over only a subset of axes""" rstate = np.random.RandomState(0) # use anisotropic data to result in unique number of levels per axis data = rstate.standard_normal((4, 8, 16, 32)) # test all combinations of 3 out of 4 axes transformed for axes in combinations((0, 1, 2, 3), 3): T = pywt.fswavedecn(data, 'haar', axes=axes) rec = pywt.fswaverecn(T) assert_allclose(rec, data, atol=1e-14) # some axes exceed data dimensions assert_raises(ValueError, pywt.fswavedecn, data, 'haar', axes=(1, 5)) def test_fswavedecnresult(): data = np.ones((32, 32)) levels = (1, 2) result = pywt.fswavedecn(data, 'sym2', levels=levels) # can access the lowpass band via .approx or via __getitem__ approx_key = (0, ) * data.ndim assert_array_equal(result[approx_key], result.approx) dkeys = result.detail_keys() # the approximation key shouldn't be present in the detail_keys assert_(approx_key not in dkeys) # can access all detail coefficients and they have matching ndim for k in dkeys: d = result[k] assert_equal(d.ndim, data.ndim) # can assign modified coefficients result[k] = np.zeros_like(d) # assigning a differently sized array raises a ValueError assert_raises(ValueError, result.__setitem__, k, np.zeros(tuple([s + 1 for s in d.shape]))) # warns on assigning with a non-matching dtype assert_warns(UserWarning, result.__setitem__, k, np.zeros_like(d).astype(np.float32)) # all coefficients are stacked into result.coeffs (same ndim) assert_equal(result.coeffs.ndim, data.ndim) def test_error_on_continuous_wavelet(): # A ValueError is raised if a Continuous wavelet is selected data = np.ones((16, 16)) for dec_fun, rec_fun in zip([pywt.wavedec, pywt.wavedec2, pywt.wavedecn], [pywt.waverec, pywt.waverec2, pywt.waverecn]): for cwave in ['morl', pywt.DiscreteContinuousWavelet('morl')]: assert_raises(ValueError, dec_fun, data, wavelet=cwave) c = dec_fun(data, 'db1') assert_raises(ValueError, rec_fun, c, wavelet=cwave) def test_default_level(): # default level is the maximum permissible for the transformed axes data = np.ones((128, 32, 4)) wavelet = ('db8', 'db1') for dec_func in [pywt.wavedec2, pywt.wavedecn]: for axes in [(0, 1), (2, 1), (0, 2)]: c = dec_func(data, wavelet, axes=axes) max_lev = np.min([pywt.dwt_max_level(data.shape[ax], wav) for ax, wav in zip(axes, wavelet)]) assert_equal(len(c[1:]), max_lev) for ax in [0, 1]: c = pywt.wavedecn(data, wavelet[ax], axes=(ax, )) assert_equal(len(c[1:]), pywt.dwt_max_level(data.shape[ax], wavelet[ax])) def test_waverec_mixed_precision(): rstate = np.random.RandomState(0) for func, ifunc, shape in [(pywt.wavedec, pywt.waverec, (8, )), (pywt.wavedec2, pywt.waverec2, (8, 8)), (pywt.wavedecn, pywt.waverecn, (8, 8, 8))]: x = rstate.randn(*shape) coeffs_real = func(x, 'db1') # real: single precision approx, double precision details coeffs_real[0] = coeffs_real[0].astype(np.float32) r = ifunc(coeffs_real, 'db1') assert_allclose(r, x, rtol=1e-7, atol=1e-7) assert_equal(r.dtype, np.float64) x = x + 1j*x coeffs = func(x, 'db1') # complex: single precision approx, double precision details coeffs[0] = coeffs[0].astype(np.complex64) r = ifunc(coeffs, 'db1') assert_allclose(r, x, rtol=1e-7, atol=1e-7) assert_equal(r.dtype, np.complex128) # complex: double precision approx, single precision details if x.ndim == 1: coeffs[0] = coeffs[0].astype(np.complex128) coeffs[1] = coeffs[1].astype(np.complex64) if x.ndim == 2: coeffs[0] = coeffs[0].astype(np.complex128) coeffs[1] = tuple([v.astype(np.complex64) for v in coeffs[1]]) if x.ndim == 3: coeffs[0] = coeffs[0].astype(np.complex128) coeffs[1] = {k: v.astype(np.complex64) for k, v in coeffs[1].items()} r = ifunc(coeffs, 'db1') assert_allclose(r, x, rtol=1e-7, atol=1e-7) assert_equal(r.dtype, np.complex128) PyWavelets-1.1.1/pywt/tests/test_perfect_reconstruction.py0000644000175000017500000000340313552333332024626 0ustar lee8rxlee8rx00000000000000#!/usr/bin/env python """ Verify DWT perfect reconstruction. """ from __future__ import division, print_function, absolute_import import numpy as np from numpy.testing import assert_ import pywt def test_perfect_reconstruction(): families = ('db', 'sym', 'coif', 'bior', 'rbio') wavelets = sum([pywt.wavelist(name) for name in families], []) # list of mode names in pywt and matlab modes = [('zero', 'zpd'), ('constant', 'sp0'), ('symmetric', 'sym'), ('periodic', 'ppd'), ('smooth', 'sp1'), ('periodization', 'per')] dtypes = (np.float32, np.float64) for wavelet in wavelets: for pmode, mmode in modes: for dt in dtypes: check_reconstruction(pmode, mmode, wavelet, dt) def check_reconstruction(pmode, mmode, wavelet, dtype): data_size = list(range(2, 40)) + [100, 200, 500, 1000, 2000, 10000, 50000, 100000] np.random.seed(12345) # TODO: smoke testing - more failures for different seeds if dtype == np.float32: # was 3e-7 has to be lowered as db21, db29, db33, db35, coif14, coif16 were failing epsilon = 6e-7 else: epsilon = 5e-11 for N in data_size: data = np.asarray(np.random.random(N), dtype) # compute dwt coefficients pa, pd = pywt.dwt(data, wavelet, pmode) # compute reconstruction rec = pywt.idwt(pa, pd, wavelet, pmode) if len(data) % 2: rec = rec[:len(data)] rms_rec = np.sqrt(np.mean((data-rec)**2)) msg = ('[RMS_REC > EPSILON] for Mode: %s, Wavelet: %s, ' 'Length: %d, rms=%.3g' % (pmode, wavelet, len(data), rms_rec)) assert_(rms_rec < epsilon, msg=msg) PyWavelets-1.1.1/pywt/tests/test_swt.py0000644000175000017500000006035413552334024020661 0ustar lee8rxlee8rx00000000000000#!/usr/bin/env python from __future__ import division, print_function, absolute_import import warnings from copy import deepcopy from itertools import combinations, permutations import numpy as np import pytest from numpy.testing import (assert_allclose, assert_, assert_equal, assert_raises, assert_array_equal, assert_warns) import pywt from pywt._extensions._swt import swt_axis # Check that float32 and complex64 are preserved. Other real types get # converted to float64. dtypes_in = [np.int8, np.float16, np.float32, np.float64, np.complex64, np.complex128] dtypes_out = [np.float64, np.float32, np.float32, np.float64, np.complex64, np.complex128] # tolerances used in accuracy comparisons tol_single = 1e-6 tol_double = 1e-13 #### # 1d multilevel swt tests #### def test_swt_decomposition(): x = [3, 7, 1, 3, -2, 6, 4, 6] db1 = pywt.Wavelet('db1') atol = tol_double (cA3, cD3), (cA2, cD2), (cA1, cD1) = pywt.swt(x, db1, level=3) expected_cA1 = [7.07106781, 5.65685425, 2.82842712, 0.70710678, 2.82842712, 7.07106781, 7.07106781, 6.36396103] assert_allclose(cA1, expected_cA1, rtol=1e-8, atol=atol) expected_cD1 = [-2.82842712, 4.24264069, -1.41421356, 3.53553391, -5.65685425, 1.41421356, -1.41421356, 2.12132034] assert_allclose(cD1, expected_cD1, rtol=1e-8, atol=atol) expected_cA2 = [7, 4.5, 4, 5.5, 7, 9.5, 10, 8.5] assert_allclose(cA2, expected_cA2, rtol=tol_double, atol=atol) expected_cD2 = [3, 3.5, 0, -4.5, -3, 0.5, 0, 0.5] assert_allclose(cD2, expected_cD2, rtol=tol_double, atol=atol) expected_cA3 = [9.89949494, ] * 8 assert_allclose(cA3, expected_cA3, rtol=1e-8, atol=atol) expected_cD3 = [0.00000000, -3.53553391, -4.24264069, -2.12132034, 0.00000000, 3.53553391, 4.24264069, 2.12132034] assert_allclose(cD3, expected_cD3, rtol=1e-8, atol=atol) # level=1, start_level=1 decomposition should match level=2 res = pywt.swt(cA1, db1, level=1, start_level=1) cA2, cD2 = res[0] assert_allclose(cA2, expected_cA2, rtol=tol_double, atol=atol) assert_allclose(cD2, expected_cD2, rtol=tol_double, atol=atol) coeffs = pywt.swt(x, db1) assert_(len(coeffs) == 3) assert_(pywt.swt_max_level(len(x)), 3) def test_swt_max_level(): # odd sized signal will warn about no levels of decomposition possible assert_warns(UserWarning, pywt.swt_max_level, 11) with warnings.catch_warnings(): warnings.simplefilter('ignore', UserWarning) assert_equal(pywt.swt_max_level(11), 0) # no warnings when >= 1 level of decomposition possible assert_equal(pywt.swt_max_level(2), 1) # divisible by 2**1 assert_equal(pywt.swt_max_level(4*3), 2) # divisible by 2**2 assert_equal(pywt.swt_max_level(16), 4) # divisible by 2**4 assert_equal(pywt.swt_max_level(16*3), 4) # divisible by 2**4 def test_swt_axis(): x = [3, 7, 1, 3, -2, 6, 4, 6] db1 = pywt.Wavelet('db1') (cA2, cD2), (cA1, cD1) = pywt.swt(x, db1, level=2) # test cases use 2D arrays based on tiling x along an axis and then # calling swt along the other axis. for order in ['C', 'F']: # test SWT of 2D data along default axis (-1) x_2d = np.asarray(x).reshape((1, -1)) x_2d = np.concatenate((x_2d, )*5, axis=0) if order == 'C': x_2d = np.ascontiguousarray(x_2d) elif order == 'F': x_2d = np.asfortranarray(x_2d) (cA2_2d, cD2_2d), (cA1_2d, cD1_2d) = pywt.swt(x_2d, db1, level=2) for c in [cA2_2d, cD2_2d, cA1_2d, cD1_2d]: assert_(c.shape == x_2d.shape) # each row should match the 1D result for row in cA1_2d: assert_array_equal(row, cA1) for row in cA2_2d: assert_array_equal(row, cA2) for row in cD1_2d: assert_array_equal(row, cD1) for row in cD2_2d: assert_array_equal(row, cD2) # test SWT of 2D data along other axis (0) x_2d = np.asarray(x).reshape((-1, 1)) x_2d = np.concatenate((x_2d, )*5, axis=1) if order == 'C': x_2d = np.ascontiguousarray(x_2d) elif order == 'F': x_2d = np.asfortranarray(x_2d) (cA2_2d, cD2_2d), (cA1_2d, cD1_2d) = pywt.swt(x_2d, db1, level=2, axis=0) for c in [cA2_2d, cD2_2d, cA1_2d, cD1_2d]: assert_(c.shape == x_2d.shape) # each column should match the 1D result for row in cA1_2d.transpose((1, 0)): assert_array_equal(row, cA1) for row in cA2_2d.transpose((1, 0)): assert_array_equal(row, cA2) for row in cD1_2d.transpose((1, 0)): assert_array_equal(row, cD1) for row in cD2_2d.transpose((1, 0)): assert_array_equal(row, cD2) # axis too large assert_raises(ValueError, pywt.swt, x, db1, level=2, axis=5) def test_swt_iswt_integration(): # This function performs a round-trip swt/iswt transform test on # all available types of wavelets in PyWavelets - except the # 'dmey' wavelet. The latter has been excluded because it does not # produce very precise results. This is likely due to the fact # that the 'dmey' wavelet is a discrete approximation of a # continuous wavelet. All wavelets are tested up to 3 levels. The # test validates neither swt or iswt as such, but it does ensure # that they are each other's inverse. max_level = 3 wavelets = pywt.wavelist(kind='discrete') if 'dmey' in wavelets: # The 'dmey' wavelet seems to be a bit special - disregard it for now wavelets.remove('dmey') for current_wavelet_str in wavelets: current_wavelet = pywt.Wavelet(current_wavelet_str) input_length_power = int(np.ceil(np.log2(max( current_wavelet.dec_len, current_wavelet.rec_len)))) input_length = 2**(input_length_power + max_level - 1) X = np.arange(input_length) for norm in [True, False]: if norm and not current_wavelet.orthogonal: # non-orthogonal wavelets to avoid warnings when norm=True continue for trim_approx in [True, False]: coeffs = pywt.swt(X, current_wavelet, max_level, trim_approx=trim_approx, norm=norm) Y = pywt.iswt(coeffs, current_wavelet, norm=norm) assert_allclose(Y, X, rtol=1e-5, atol=1e-7) def test_swt_dtypes(): wavelet = pywt.Wavelet('haar') for dt_in, dt_out in zip(dtypes_in, dtypes_out): errmsg = "wrong dtype returned for {0} input".format(dt_in) # swt x = np.ones(8, dtype=dt_in) (cA2, cD2), (cA1, cD1) = pywt.swt(x, wavelet, level=2) assert_(cA2.dtype == cD2.dtype == cA1.dtype == cD1.dtype == dt_out, "swt: " + errmsg) # swt2 x = np.ones((8, 8), dtype=dt_in) cA, (cH, cV, cD) = pywt.swt2(x, wavelet, level=1)[0] assert_(cA.dtype == cH.dtype == cV.dtype == cD.dtype == dt_out, "swt2: " + errmsg) def test_swt_roundtrip_dtypes(): # verify perfect reconstruction for all dtypes rstate = np.random.RandomState(5) wavelet = pywt.Wavelet('haar') for dt_in, dt_out in zip(dtypes_in, dtypes_out): # swt, iswt x = rstate.standard_normal((8, )).astype(dt_in) c = pywt.swt(x, wavelet, level=2) xr = pywt.iswt(c, wavelet) assert_allclose(x, xr, rtol=1e-6, atol=1e-7) # swt2, iswt2 x = rstate.standard_normal((8, 8)).astype(dt_in) c = pywt.swt2(x, wavelet, level=2) xr = pywt.iswt2(c, wavelet) assert_allclose(x, xr, rtol=1e-6, atol=1e-7) def test_swt_default_level_by_axis(): # make sure default number of levels matches the max level along the axis wav = 'db2' x = np.ones((2**3, 2**4, 2**5)) for axis in (0, 1, 2): sdec = pywt.swt(x, wav, level=None, start_level=0, axis=axis) assert_equal(len(sdec), pywt.swt_max_level(x.shape[axis])) def test_swt2_ndim_error(): x = np.ones(8) with warnings.catch_warnings(): warnings.simplefilter('ignore', FutureWarning) assert_raises(ValueError, pywt.swt2, x, 'haar', level=1) @pytest.mark.slow def test_swt2_iswt2_integration(wavelets=None): # This function performs a round-trip swt2/iswt2 transform test on # all available types of wavelets in PyWavelets - except the # 'dmey' wavelet. The latter has been excluded because it does not # produce very precise results. This is likely due to the fact # that the 'dmey' wavelet is a discrete approximation of a # continuous wavelet. All wavelets are tested up to 3 levels. The # test validates neither swt2 or iswt2 as such, but it does ensure # that they are each other's inverse. max_level = 3 if wavelets is None: wavelets = pywt.wavelist(kind='discrete') if 'dmey' in wavelets: # The 'dmey' wavelet is a special case - disregard it for now wavelets.remove('dmey') for current_wavelet_str in wavelets: current_wavelet = pywt.Wavelet(current_wavelet_str) input_length_power = int(np.ceil(np.log2(max( current_wavelet.dec_len, current_wavelet.rec_len)))) input_length = 2**(input_length_power + max_level - 1) X = np.arange(input_length**2).reshape(input_length, input_length) for norm in [True, False]: if norm and not current_wavelet.orthogonal: # non-orthogonal wavelets to avoid warnings when norm=True continue for trim_approx in [True, False]: coeffs = pywt.swt2(X, current_wavelet, max_level, trim_approx=trim_approx, norm=norm) Y = pywt.iswt2(coeffs, current_wavelet, norm=norm) assert_allclose(Y, X, rtol=1e-5, atol=1e-5) def test_swt2_iswt2_quick(): test_swt2_iswt2_integration(wavelets=['db1', ]) def test_swt2_iswt2_non_square(wavelets=None): for nrows in [8, 16, 48]: X = np.arange(nrows*32).reshape(nrows, 32) current_wavelet = 'db1' with warnings.catch_warnings(): warnings.simplefilter('ignore', FutureWarning) coeffs = pywt.swt2(X, current_wavelet, level=2) Y = pywt.iswt2(coeffs, current_wavelet) assert_allclose(Y, X, rtol=tol_single, atol=tol_single) def test_swt2_axes(): atol = 1e-14 current_wavelet = pywt.Wavelet('db2') input_length_power = int(np.ceil(np.log2(max( current_wavelet.dec_len, current_wavelet.rec_len)))) input_length = 2**(input_length_power) X = np.arange(input_length**2).reshape(input_length, input_length) (cA1, (cH1, cV1, cD1)) = pywt.swt2(X, current_wavelet, level=1)[0] # opposite order (cA2, (cH2, cV2, cD2)) = pywt.swt2(X, current_wavelet, level=1, axes=(1, 0))[0] assert_allclose(cA1, cA2, atol=atol) assert_allclose(cH1, cV2, atol=atol) assert_allclose(cV1, cH2, atol=atol) assert_allclose(cD1, cD2, atol=atol) # duplicate axes not allowed assert_raises(ValueError, pywt.swt2, X, current_wavelet, 1, axes=(0, 0)) # too few axes assert_raises(ValueError, pywt.swt2, X, current_wavelet, 1, axes=(0, )) def test_iswt2_2d_only(): # iswt2 is not currently compatible with data that is not 2D x_3d = np.ones((4, 4, 4)) c = pywt.swt2(x_3d, 'haar', level=1) assert_raises(ValueError, pywt.iswt2, c, 'haar') def test_swtn_axes(): atol = 1e-14 current_wavelet = pywt.Wavelet('db2') input_length_power = int(np.ceil(np.log2(max( current_wavelet.dec_len, current_wavelet.rec_len)))) input_length = 2**(input_length_power) X = np.arange(input_length**2).reshape(input_length, input_length) coeffs = pywt.swtn(X, current_wavelet, level=1, axes=None)[0] # opposite order coeffs2 = pywt.swtn(X, current_wavelet, level=1, axes=(1, 0))[0] assert_allclose(coeffs['aa'], coeffs2['aa'], atol=atol) assert_allclose(coeffs['ad'], coeffs2['da'], atol=atol) assert_allclose(coeffs['da'], coeffs2['ad'], atol=atol) assert_allclose(coeffs['dd'], coeffs2['dd'], atol=atol) # 0-level transform empty = pywt.swtn(X, current_wavelet, level=0) assert_equal(empty, []) # duplicate axes not allowed assert_raises(ValueError, pywt.swtn, X, current_wavelet, 1, axes=(0, 0)) # data.ndim = 0 assert_raises(ValueError, pywt.swtn, np.asarray([]), current_wavelet, 1) # start_level too large assert_raises(ValueError, pywt.swtn, X, current_wavelet, level=1, start_level=2) # level < 1 in swt_axis call assert_raises(ValueError, swt_axis, X, current_wavelet, level=0, start_level=0) # odd-sized data not allowed assert_raises(ValueError, swt_axis, X[:-1, :], current_wavelet, level=0, start_level=0, axis=0) @pytest.mark.slow def test_swtn_iswtn_integration(wavelets=None): # This function performs a round-trip swtn/iswtn transform for various # possible combinations of: # 1.) 1 out of 2 axes of a 2D array # 2.) 2 out of 3 axes of a 3D array # # To keep test time down, only wavelets of length <= 8 are run. # # This test does not validate swtn or iswtn individually, but only # confirms that iswtn yields an (almost) perfect reconstruction of swtn. max_level = 3 if wavelets is None: wavelets = pywt.wavelist(kind='discrete') if 'dmey' in wavelets: # The 'dmey' wavelet is a special case - disregard it for now wavelets.remove('dmey') for ndim_transform in range(1, 3): ndim = ndim_transform + 1 for axes in combinations(range(ndim), ndim_transform): for current_wavelet_str in wavelets: wav = pywt.Wavelet(current_wavelet_str) if wav.dec_len > 8: continue # avoid excessive test duration input_length_power = int(np.ceil(np.log2(max( wav.dec_len, wav.rec_len)))) N = 2**(input_length_power + max_level - 1) X = np.arange(N**ndim).reshape((N, )*ndim) for norm in [True, False]: if norm and not wav.orthogonal: # non-orthogonal wavelets to avoid warnings continue for trim_approx in [True, False]: coeffs = pywt.swtn(X, wav, max_level, axes=axes, trim_approx=trim_approx, norm=norm) coeffs_copy = deepcopy(coeffs) Y = pywt.iswtn(coeffs, wav, axes=axes, norm=norm) assert_allclose(Y, X, rtol=1e-5, atol=1e-5) # verify the inverse transform didn't modify any coeffs for c, c2 in zip(coeffs, coeffs_copy): for k, v in c.items(): assert_array_equal(c2[k], v) def test_swtn_iswtn_quick(): test_swtn_iswtn_integration(wavelets=['db1', ]) def test_iswtn_errors(): x = np.arange(8**3).reshape(8, 8, 8) max_level = 2 axes = (0, 1) w = pywt.Wavelet('db1') coeffs = pywt.swtn(x, w, max_level, axes=axes) # more axes than dimensions transformed assert_raises(ValueError, pywt.iswtn, coeffs, w, axes=(0, 1, 2)) # duplicate axes not allowed assert_raises(ValueError, pywt.iswtn, coeffs, w, axes=(0, 0)) # mismatched coefficient size coeffs[0]['da'] = coeffs[0]['da'][:-1, :] assert_raises(RuntimeError, pywt.iswtn, coeffs, w, axes=axes) def test_swtn_iswtn_unique_shape_per_axis(): # test case for gh-460 _shape = (1, 48, 32) # unique shape per axis wav = 'sym2' max_level = 3 rstate = np.random.RandomState(0) for shape in permutations(_shape): # transform only along the non-singleton axes axes = [ax for ax, s in enumerate(shape) if s != 1] x = rstate.standard_normal(shape) c = pywt.swtn(x, wav, max_level, axes=axes) r = pywt.iswtn(c, wav, axes=axes) assert_allclose(x, r, rtol=1e-10, atol=1e-10) def test_per_axis_wavelets(): # tests seperate wavelet for each axis. rstate = np.random.RandomState(1234) data = rstate.randn(16, 16, 16) level = 3 # wavelet can be a string or wavelet object wavelets = (pywt.Wavelet('haar'), 'sym2', 'db4') coefs = pywt.swtn(data, wavelets, level=level) assert_allclose(pywt.iswtn(coefs, wavelets), data, atol=1e-14) # 1-tuple also okay coefs = pywt.swtn(data, wavelets[:1], level=level) assert_allclose(pywt.iswtn(coefs, wavelets[:1]), data, atol=1e-14) # length of wavelets doesn't match the length of axes assert_raises(ValueError, pywt.swtn, data, wavelets[:2], level) assert_raises(ValueError, pywt.iswtn, coefs, wavelets[:2]) with warnings.catch_warnings(): warnings.simplefilter('ignore', FutureWarning) # swt2/iswt2 also support per-axis wavelets/modes data2 = data[..., 0] coefs2 = pywt.swt2(data2, wavelets[:2], level) assert_allclose(pywt.iswt2(coefs2, wavelets[:2]), data2, atol=1e-14) def test_error_on_continuous_wavelet(): # A ValueError is raised if a Continuous wavelet is selected data = np.ones((16, 16)) for dec_func, rec_func in zip([pywt.swt, pywt.swt2, pywt.swtn], [pywt.iswt, pywt.iswt2, pywt.iswtn]): for cwave in ['morl', pywt.DiscreteContinuousWavelet('morl')]: assert_raises(ValueError, dec_func, data, wavelet=cwave, level=3) c = dec_func(data, 'db1', level=3) assert_raises(ValueError, rec_func, c, wavelet=cwave) def test_iswt_mixed_dtypes(): # Mixed precision inputs give double precision output x_real = np.arange(16).astype(np.float64) x_complex = x_real + 1j*x_real wav = 'sym2' for dtype1, dtype2 in [(np.float64, np.float32), (np.float32, np.float64), (np.float16, np.float64), (np.complex128, np.complex64), (np.complex64, np.complex128)]: if dtype1 in [np.complex64, np.complex128]: x = x_complex output_dtype = np.complex128 else: x = x_real output_dtype = np.float64 coeffs = pywt.swt(x, wav, 2) # different precision for the approximation coefficients coeffs[0] = [coeffs[0][0].astype(dtype1), coeffs[0][1].astype(dtype2)] y = pywt.iswt(coeffs, wav) assert_equal(output_dtype, y.dtype) assert_allclose(y, x, rtol=1e-3, atol=1e-3) def test_iswt2_mixed_dtypes(): # Mixed precision inputs give double precision output rstate = np.random.RandomState(0) x_real = rstate.randn(8, 8) x_complex = x_real + 1j*x_real wav = 'sym2' for dtype1, dtype2 in [(np.float64, np.float32), (np.float32, np.float64), (np.float16, np.float64), (np.complex128, np.complex64), (np.complex64, np.complex128)]: if dtype1 in [np.complex64, np.complex128]: x = x_complex output_dtype = np.complex128 else: x = x_real output_dtype = np.float64 coeffs = pywt.swt2(x, wav, 2) # different precision for the approximation coefficients coeffs[0] = [coeffs[0][0].astype(dtype1), tuple([c.astype(dtype2) for c in coeffs[0][1]])] y = pywt.iswt2(coeffs, wav) assert_equal(output_dtype, y.dtype) assert_allclose(y, x, rtol=1e-3, atol=1e-3) def test_iswtn_mixed_dtypes(): # Mixed precision inputs give double precision output rstate = np.random.RandomState(0) x_real = rstate.randn(8, 8, 8) x_complex = x_real + 1j*x_real wav = 'sym2' for dtype1, dtype2 in [(np.float64, np.float32), (np.float32, np.float64), (np.float16, np.float64), (np.complex128, np.complex64), (np.complex64, np.complex128)]: if dtype1 in [np.complex64, np.complex128]: x = x_complex output_dtype = np.complex128 else: x = x_real output_dtype = np.float64 coeffs = pywt.swtn(x, wav, 2) # different precision for the approximation coefficients a = coeffs[0].pop('a' * x.ndim) a = a.astype(dtype1) coeffs[0] = {k: c.astype(dtype2) for k, c in coeffs[0].items()} coeffs[0]['a' * x.ndim] = a y = pywt.iswtn(coeffs, wav) assert_equal(output_dtype, y.dtype) assert_allclose(y, x, rtol=1e-3, atol=1e-3) def test_swt_zero_size_axes(): # raise on empty input array assert_raises(ValueError, pywt.swt, [], 'db2') # >1D case uses a different code path so check there as well x = np.ones((1, 4))[0:0, :] # 2D with a size zero axis assert_raises(ValueError, pywt.swtn, x, 'db2', level=1, axes=(0,)) def test_swt_variance_and_energy_preservation(): """Verify that the 1D SWT partitions variance among the coefficients.""" # When norm is True and the wavelet is orthogonal, the sum of the # variances of the coefficients should equal the variance of the signal. wav = 'db2' rstate = np.random.RandomState(5) x = rstate.randn(256) coeffs = pywt.swt(x, wav, trim_approx=True, norm=True) variances = [np.var(c) for c in coeffs] assert_allclose(np.sum(variances), np.var(x)) # also verify L2-norm energy preservation property assert_allclose(np.linalg.norm(x), np.linalg.norm(np.concatenate(coeffs))) # non-orthogonal wavelet with norm=True raises a warning assert_warns(UserWarning, pywt.swt, x, 'bior2.2', norm=True) def test_swt2_variance_and_energy_preservation(): """Verify that the 2D SWT partitions variance among the coefficients.""" # When norm is True and the wavelet is orthogonal, the sum of the # variances of the coefficients should equal the variance of the signal. wav = 'db2' rstate = np.random.RandomState(5) x = rstate.randn(64, 64) coeffs = pywt.swt2(x, wav, level=4, trim_approx=True, norm=True) coeff_list = [coeffs[0].ravel()] for d in coeffs[1:]: for v in d: coeff_list.append(v.ravel()) variances = [np.var(v) for v in coeff_list] assert_allclose(np.sum(variances), np.var(x)) # also verify L2-norm energy preservation property assert_allclose(np.linalg.norm(x), np.linalg.norm(np.concatenate(coeff_list))) # non-orthogonal wavelet with norm=True raises a warning assert_warns(UserWarning, pywt.swt2, x, 'bior2.2', level=4, norm=True) def test_swtn_variance_and_energy_preservation(): """Verify that the nD SWT partitions variance among the coefficients.""" # When norm is True and the wavelet is orthogonal, the sum of the # variances of the coefficients should equal the variance of the signal. wav = 'db2' rstate = np.random.RandomState(5) x = rstate.randn(64, 64) coeffs = pywt.swtn(x, wav, level=4, trim_approx=True, norm=True) coeff_list = [coeffs[0].ravel()] for d in coeffs[1:]: for k, v in d.items(): coeff_list.append(v.ravel()) variances = [np.var(v) for v in coeff_list] assert_allclose(np.sum(variances), np.var(x)) # also verify L2-norm energy preservation property assert_allclose(np.linalg.norm(x), np.linalg.norm(np.concatenate(coeff_list))) # non-orthogonal wavelet with norm=True raises a warning assert_warns(UserWarning, pywt.swtn, x, 'bior2.2', level=4, norm=True) def test_swt_ravel_and_unravel(): # When trim_approx=True, all swt functions can user pywt.ravel_coeffs for ndim, _swt, _iswt, ravel_type in [ (1, pywt.swt, pywt.iswt, 'swt'), (2, pywt.swt2, pywt.iswt2, 'swt2'), (3, pywt.swtn, pywt.iswtn, 'swtn')]: x = np.ones((16, ) * ndim) c = _swt(x, 'sym2', level=3, trim_approx=True) arr, slices, shapes = pywt.ravel_coeffs(c) c = pywt.unravel_coeffs(arr, slices, shapes, output_format=ravel_type) r = _iswt(c, 'sym2') assert_allclose(x, r) PyWavelets-1.1.1/pywt/tests/test_thresholding.py0000644000175000017500000001460513552333332022535 0ustar lee8rxlee8rx00000000000000from __future__ import division, print_function, absolute_import import numpy as np from numpy.testing import assert_allclose, assert_raises, assert_, assert_equal import pywt float_dtypes = [np.float32, np.float64, np.complex64, np.complex128] real_dtypes = [np.float32, np.float64] def _sign(x): # Matlab-like sign function (numpy uses a different convention). return x / np.abs(x) def _soft(x, thresh): """soft thresholding supporting complex values. Notes ----- This version is not robust to zeros in x. """ return _sign(x) * np.maximum(np.abs(x) - thresh, 0) def test_threshold(): data = np.linspace(1, 4, 7) # soft soft_result = [0., 0., 0., 0.5, 1., 1.5, 2.] assert_allclose(pywt.threshold(data, 2, 'soft'), np.array(soft_result), rtol=1e-12) assert_allclose(pywt.threshold(-data, 2, 'soft'), -np.array(soft_result), rtol=1e-12) assert_allclose(pywt.threshold([[1, 2]] * 2, 1, 'soft'), [[0, 1]] * 2, rtol=1e-12) assert_allclose(pywt.threshold([[1, 2]] * 2, 2, 'soft'), [[0, 0]] * 2, rtol=1e-12) # soft thresholding complex values assert_allclose(pywt.threshold([[1j, 2j]] * 2, 1, 'soft'), [[0j, 1j]] * 2, rtol=1e-12) assert_allclose(pywt.threshold([[1+1j, 2+2j]] * 2, 6, 'soft'), [[0, 0]] * 2, rtol=1e-12) complex_data = [[1+2j, 2+2j]]*2 for thresh in [1, 2]: assert_allclose(pywt.threshold(complex_data, thresh, 'soft'), _soft(complex_data, thresh), rtol=1e-12) # test soft thresholding with non-default substitute argument s = 5 assert_allclose(pywt.threshold([[1j, 2]] * 2, 1.5, 'soft', substitute=s), [[s, 0.5]] * 2, rtol=1e-12) # soft: no divide by zero warnings when input contains zeros assert_allclose(pywt.threshold(np.zeros(16), 2, 'soft'), np.zeros(16), rtol=1e-12) # hard hard_result = [0., 0., 2., 2.5, 3., 3.5, 4.] assert_allclose(pywt.threshold(data, 2, 'hard'), np.array(hard_result), rtol=1e-12) assert_allclose(pywt.threshold(-data, 2, 'hard'), -np.array(hard_result), rtol=1e-12) assert_allclose(pywt.threshold([[1, 2]] * 2, 1, 'hard'), [[1, 2]] * 2, rtol=1e-12) assert_allclose(pywt.threshold([[1, 2]] * 2, 2, 'hard'), [[0, 2]] * 2, rtol=1e-12) assert_allclose(pywt.threshold([[1, 2]] * 2, 2, 'hard', substitute=s), [[s, 2]] * 2, rtol=1e-12) assert_allclose(pywt.threshold([[1+1j, 2+2j]] * 2, 2, 'hard'), [[0, 2+2j]] * 2, rtol=1e-12) # greater greater_result = [0., 0., 2., 2.5, 3., 3.5, 4.] assert_allclose(pywt.threshold(data, 2, 'greater'), np.array(greater_result), rtol=1e-12) assert_allclose(pywt.threshold([[1, 2]] * 2, 1, 'greater'), [[1, 2]] * 2, rtol=1e-12) assert_allclose(pywt.threshold([[1, 2]] * 2, 2, 'greater'), [[0, 2]] * 2, rtol=1e-12) assert_allclose(pywt.threshold([[1, 2]] * 2, 2, 'greater', substitute=s), [[s, 2]] * 2, rtol=1e-12) # greater doesn't allow complex-valued inputs assert_raises(ValueError, pywt.threshold, [1j, 2j], 2, 'greater') # less assert_allclose(pywt.threshold(data, 2, 'less'), np.array([1., 1.5, 2., 0., 0., 0., 0.]), rtol=1e-12) assert_allclose(pywt.threshold([[1, 2]] * 2, 1, 'less'), [[1, 0]] * 2, rtol=1e-12) assert_allclose(pywt.threshold([[1, 2]] * 2, 1, 'less', substitute=s), [[1, s]] * 2, rtol=1e-12) assert_allclose(pywt.threshold([[1, 2]] * 2, 2, 'less'), [[1, 2]] * 2, rtol=1e-12) # less doesn't allow complex-valued inputs assert_raises(ValueError, pywt.threshold, [1j, 2j], 2, 'less') # invalid assert_raises(ValueError, pywt.threshold, data, 2, 'foo') def test_nonnegative_garotte(): thresh = 0.3 data_real = np.linspace(-1, 1, 100) for dtype in float_dtypes: if dtype in real_dtypes: data = np.asarray(data_real, dtype=dtype) else: data = np.asarray(data_real + 0.1j, dtype=dtype) d_hard = pywt.threshold(data, thresh, 'hard') d_soft = pywt.threshold(data, thresh, 'soft') d_garotte = pywt.threshold(data, thresh, 'garotte') # check dtypes assert_equal(d_hard.dtype, data.dtype) assert_equal(d_soft.dtype, data.dtype) assert_equal(d_garotte.dtype, data.dtype) # values < threshold are zero lt = np.where(np.abs(data) < thresh) assert_(np.all(d_garotte[lt] == 0)) # values > than the threshold are intermediate between soft and hard gt = np.where(np.abs(data) > thresh) gt_abs_garotte = np.abs(d_garotte[gt]) assert_(np.all(gt_abs_garotte < np.abs(d_hard[gt]))) assert_(np.all(gt_abs_garotte > np.abs(d_soft[gt]))) def test_threshold_firm(): thresh = 0.2 thresh2 = 3 * thresh data_real = np.linspace(-1, 1, 100) for dtype in float_dtypes: if dtype in real_dtypes: data = np.asarray(data_real, dtype=dtype) else: data = np.asarray(data_real + 0.1j, dtype=dtype) if data.real.dtype == np.float32: rtol = atol = 1e-6 else: rtol = atol = 1e-14 d_hard = pywt.threshold(data, thresh, 'hard') d_soft = pywt.threshold(data, thresh, 'soft') d_firm = pywt.threshold_firm(data, thresh, thresh2) # check dtypes assert_equal(d_hard.dtype, data.dtype) assert_equal(d_soft.dtype, data.dtype) assert_equal(d_firm.dtype, data.dtype) # values < threshold are zero lt = np.where(np.abs(data) < thresh) assert_(np.all(d_firm[lt] == 0)) # values > than the threshold are equal to hard-thresholding gt = np.where(np.abs(data) >= thresh2) assert_allclose(np.abs(d_hard[gt]), np.abs(d_firm[gt]), rtol=rtol, atol=atol) # other values are intermediate between soft and hard thresholding mt = np.where(np.logical_and(np.abs(data) > thresh, np.abs(data) < thresh2)) mt_abs_firm = np.abs(d_firm[mt]) assert_(np.all(mt_abs_firm < np.abs(d_hard[mt]))) assert_(np.all(mt_abs_firm > np.abs(d_soft[mt]))) PyWavelets-1.1.1/pywt/tests/test_wavelet.py0000644000175000017500000002565613552333332021522 0ustar lee8rxlee8rx00000000000000#!/usr/bin/env python from __future__ import division, print_function, absolute_import import numpy as np from numpy.testing import assert_allclose, assert_ import pywt def test_wavelet_properties(): w = pywt.Wavelet('db3') # Name assert_(w.name == 'db3') assert_(w.short_family_name == 'db') assert_(w.family_name, 'Daubechies') # String representation fields = ('Family name', 'Short name', 'Filters length', 'Orthogonal', 'Biorthogonal', 'Symmetry') for field in fields: assert_(field in str(w)) # Filter coefficients dec_lo = [0.03522629188210, -0.08544127388224, -0.13501102001039, 0.45987750211933, 0.80689150931334, 0.33267055295096] dec_hi = [-0.33267055295096, 0.80689150931334, -0.45987750211933, -0.13501102001039, 0.08544127388224, 0.03522629188210] rec_lo = [0.33267055295096, 0.80689150931334, 0.45987750211933, -0.13501102001039, -0.08544127388224, 0.03522629188210] rec_hi = [0.03522629188210, 0.08544127388224, -0.13501102001039, -0.45987750211933, 0.80689150931334, -0.33267055295096] assert_allclose(w.dec_lo, dec_lo) assert_allclose(w.dec_hi, dec_hi) assert_allclose(w.rec_lo, rec_lo) assert_allclose(w.rec_hi, rec_hi) assert_(len(w.filter_bank) == 4) # Orthogonality assert_(w.orthogonal) assert_(w.biorthogonal) # Symmetry assert_(w.symmetry) # Vanishing moments assert_(w.vanishing_moments_phi == 0) assert_(w.vanishing_moments_psi == 3) def test_wavelet_coefficients(): families = ('db', 'sym', 'coif', 'bior', 'rbio') wavelets = sum([pywt.wavelist(name) for name in families], []) for wavelet in wavelets: if (pywt.Wavelet(wavelet).orthogonal): check_coefficients_orthogonal(wavelet) elif(pywt.Wavelet(wavelet).biorthogonal): check_coefficients_biorthogonal(wavelet) else: check_coefficients(wavelet) def check_coefficients_orthogonal(wavelet): epsilon = 5e-11 level = 5 w = pywt.Wavelet(wavelet) phi, psi, x = w.wavefun(level=level) # Lowpass filter coefficients sum to sqrt2 res = np.sum(w.dec_lo)-np.sqrt(2) msg = ('[RMS_REC > EPSILON] for Wavelet: %s, rms=%.3g' % (wavelet, res)) assert_(res < epsilon, msg=msg) # sum even coef = sum odd coef = 1 / sqrt(2) res = np.sum(w.dec_lo[::2])-1./np.sqrt(2) msg = ('[RMS_REC > EPSILON] for Wavelet: %s, rms=%.3g' % (wavelet, res)) assert_(res < epsilon, msg=msg) res = np.sum(w.dec_lo[1::2])-1./np.sqrt(2) msg = ('[RMS_REC > EPSILON] for Wavelet: %s, rms=%.3g' % (wavelet, res)) assert_(res < epsilon, msg=msg) # Highpass filter coefficients sum to zero res = np.sum(w.dec_hi) msg = ('[RMS_REC > EPSILON] for Wavelet: %s, rms=%.3g' % (wavelet, res)) assert_(res < epsilon, msg=msg) # Scaling function integrates to unity res = np.sum(phi) - 2**level msg = ('[RMS_REC > EPSILON] for Wavelet: %s, rms=%.3g' % (wavelet, res)) assert_(res < epsilon, msg=msg) # Wavelet function is orthogonal to the scaling function at the same scale res = np.sum(phi*psi) msg = ('[RMS_REC > EPSILON] for Wavelet: %s, rms=%.3g' % (wavelet, res)) assert_(res < epsilon, msg=msg) # The lowpass and highpass filter coefficients are orthogonal res = np.sum(np.array(w.dec_lo)*np.array(w.dec_hi)) msg = ('[RMS_REC > EPSILON] for Wavelet: %s, rms=%.3g' % (wavelet, res)) assert_(res < epsilon, msg=msg) def check_coefficients_biorthogonal(wavelet): epsilon = 5e-11 level = 5 w = pywt.Wavelet(wavelet) phi_d, psi_d, phi_r, psi_r, x = w.wavefun(level=level) # Lowpass filter coefficients sum to sqrt2 res = np.sum(w.dec_lo)-np.sqrt(2) msg = ('[RMS_REC > EPSILON] for Wavelet: %s, rms=%.3g' % (wavelet, res)) assert_(res < epsilon, msg=msg) # sum even coef = sum odd coef = 1 / sqrt(2) res = np.sum(w.dec_lo[::2])-1./np.sqrt(2) msg = ('[RMS_REC > EPSILON] for Wavelet: %s, rms=%.3g' % (wavelet, res)) assert_(res < epsilon, msg=msg) res = np.sum(w.dec_lo[1::2])-1./np.sqrt(2) msg = ('[RMS_REC > EPSILON] for Wavelet: %s, rms=%.3g' % (wavelet, res)) assert_(res < epsilon, msg=msg) # Highpass filter coefficients sum to zero res = np.sum(w.dec_hi) msg = ('[RMS_REC > EPSILON] for Wavelet: %s, rms=%.3g' % (wavelet, res)) assert_(res < epsilon, msg=msg) # Scaling function integrates to unity res = np.sum(phi_d) - 2**level msg = ('[RMS_REC > EPSILON] for Wavelet: %s, rms=%.3g' % (wavelet, res)) assert_(res < epsilon, msg=msg) res = np.sum(phi_r) - 2**level msg = ('[RMS_REC > EPSILON] for Wavelet: %s, rms=%.3g' % (wavelet, res)) assert_(res < epsilon, msg=msg) def check_coefficients(wavelet): epsilon = 5e-11 level = 10 w = pywt.Wavelet(wavelet) # Lowpass filter coefficients sum to sqrt2 res = np.sum(w.dec_lo)-np.sqrt(2) msg = ('[RMS_REC > EPSILON] for Wavelet: %s, rms=%.3g' % (wavelet, res)) assert_(res < epsilon, msg=msg) # sum even coef = sum odd coef = 1 / sqrt(2) res = np.sum(w.dec_lo[::2])-1./np.sqrt(2) msg = ('[RMS_REC > EPSILON] for Wavelet: %s, rms=%.3g' % (wavelet, res)) assert_(res < epsilon, msg=msg) res = np.sum(w.dec_lo[1::2])-1./np.sqrt(2) msg = ('[RMS_REC > EPSILON] for Wavelet: %s, rms=%.3g' % (wavelet, res)) assert_(res < epsilon, msg=msg) # Highpass filter coefficients sum to zero res = np.sum(w.dec_hi) msg = ('[RMS_REC > EPSILON] for Wavelet: %s, rms=%.3g' % (wavelet, res)) assert_(res < epsilon, msg=msg) class _CustomHaarFilterBank(object): @property def filter_bank(self): val = np.sqrt(2) / 2 return ([val]*2, [-val, val], [val]*2, [val, -val]) def test_custom_wavelet(): haar_custom1 = pywt.Wavelet('Custom Haar Wavelet', filter_bank=_CustomHaarFilterBank()) haar_custom1.orthogonal = True haar_custom1.biorthogonal = True val = np.sqrt(2) / 2 filter_bank = ([val]*2, [-val, val], [val]*2, [val, -val]) haar_custom2 = pywt.Wavelet('Custom Haar Wavelet', filter_bank=filter_bank) # check expected default wavelet properties assert_(~haar_custom2.orthogonal) assert_(~haar_custom2.biorthogonal) assert_(haar_custom2.symmetry == 'unknown') assert_(haar_custom2.family_name == '') assert_(haar_custom2.short_family_name == '') assert_(haar_custom2.vanishing_moments_phi == 0) assert_(haar_custom2.vanishing_moments_psi == 0) # Some properties can be set by the user haar_custom2.orthogonal = True haar_custom2.biorthogonal = True def test_wavefun_sym3(): w = pywt.Wavelet('sym3') # sym3 is an orthogonal wavelet, so 3 outputs from wavefun phi, psi, x = w.wavefun(level=3) assert_(phi.size == 41) assert_(psi.size == 41) assert_(x.size == 41) assert_allclose(x, np.linspace(0, 5, num=x.size)) phi_expect = np.array([0.00000000e+00, 1.04132926e-01, 2.52574126e-01, 3.96525521e-01, 5.70356539e-01, 7.18934305e-01, 8.70293448e-01, 1.05363620e+00, 1.24921722e+00, 1.15296888e+00, 9.41669683e-01, 7.55875887e-01, 4.96118565e-01, 3.28293151e-01, 1.67624969e-01, -7.33690312e-02, -3.35452855e-01, -3.31221131e-01, -2.32061503e-01, -1.66854239e-01, -4.34091324e-02, -2.86152390e-02, -3.63563035e-02, 2.06034491e-02, 8.30280254e-02, 7.17779073e-02, 3.85914311e-02, 1.47527100e-02, -2.31896077e-02, -1.86122172e-02, -1.56211329e-03, -8.70615088e-04, 3.20760857e-03, 2.34142153e-03, -7.73737194e-04, -2.99879354e-04, 1.23636238e-04, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00]) psi_expect = np.array([0.00000000e+00, 1.10265752e-02, 2.67449277e-02, 4.19878574e-02, 6.03947231e-02, 7.61275365e-02, 9.21548684e-02, 1.11568926e-01, 1.32278887e-01, 6.45829680e-02, -3.97635130e-02, -1.38929884e-01, -2.62428322e-01, -3.62246804e-01, -4.62843343e-01, -5.89607507e-01, -7.25363076e-01, -3.36865858e-01, 2.67715108e-01, 8.40176767e-01, 1.55574430e+00, 1.18688954e+00, 4.20276324e-01, -1.51697311e-01, -9.42076108e-01, -7.93172332e-01, -3.26343710e-01, -1.24552779e-01, 2.12909254e-01, 1.75770320e-01, 1.47523075e-02, 8.22192707e-03, -3.02920592e-02, -2.21119497e-02, 7.30703025e-03, 2.83200488e-03, -1.16759765e-03, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00]) assert_allclose(phi, phi_expect) assert_allclose(psi, psi_expect) def test_wavefun_bior13(): w = pywt.Wavelet('bior1.3') # bior1.3 is not an orthogonal wavelet, so 5 outputs from wavefun phi_d, psi_d, phi_r, psi_r, x = w.wavefun(level=3) for arr in [phi_d, psi_d, phi_r, psi_r]: assert_(arr.size == 40) phi_d_expect = np.array([0., -0.00195313, 0.00195313, 0.01757813, 0.01367188, 0.00390625, -0.03515625, -0.12890625, -0.15234375, -0.125, -0.09375, -0.0625, 0.03125, 0.15234375, 0.37890625, 0.78515625, 0.99609375, 1.08203125, 1.13671875, 1.13671875, 1.08203125, 0.99609375, 0.78515625, 0.37890625, 0.15234375, 0.03125, -0.0625, -0.09375, -0.125, -0.15234375, -0.12890625, -0.03515625, 0.00390625, 0.01367188, 0.01757813, 0.00195313, -0.00195313, 0., 0., 0.]) phi_r_expect = np.zeros(x.size, dtype=np.float) phi_r_expect[15:23] = 1 psi_d_expect = np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0.015625, -0.015625, -0.140625, -0.109375, -0.03125, 0.28125, 1.03125, 1.21875, 1.125, 0.625, -0.625, -1.125, -1.21875, -1.03125, -0.28125, 0.03125, 0.109375, 0.140625, 0.015625, -0.015625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) psi_r_expect = np.zeros(x.size, dtype=np.float) psi_r_expect[7:15] = -0.125 psi_r_expect[15:19] = 1 psi_r_expect[19:23] = -1 psi_r_expect[23:31] = 0.125 assert_allclose(x, np.linspace(0, 5, x.size, endpoint=False)) assert_allclose(phi_d, phi_d_expect, rtol=1e-5, atol=1e-9) assert_allclose(phi_r, phi_r_expect, rtol=1e-10, atol=1e-12) assert_allclose(psi_d, psi_d_expect, rtol=1e-10, atol=1e-12) assert_allclose(psi_r, psi_r_expect, rtol=1e-10, atol=1e-12) PyWavelets-1.1.1/pywt/tests/test_wp.py0000644000175000017500000001450313552333332020466 0ustar lee8rxlee8rx00000000000000#!/usr/bin/env python from __future__ import division, print_function, absolute_import import numpy as np from numpy.testing import (assert_allclose, assert_, assert_raises, assert_equal) import pywt def test_wavelet_packet_structure(): x = [1, 2, 3, 4, 5, 6, 7, 8] wp = pywt.WaveletPacket(data=x, wavelet='db1', mode='symmetric') assert_(wp.data == [1, 2, 3, 4, 5, 6, 7, 8]) assert_(wp.path == '') assert_(wp.level == 0) assert_(wp['ad'].maxlevel == 3) def test_traversing_wp_tree(): x = [1, 2, 3, 4, 5, 6, 7, 8] wp = pywt.WaveletPacket(data=x, wavelet='db1', mode='symmetric') assert_(wp.maxlevel == 3) # First level assert_allclose(wp['a'].data, np.array([2.12132034356, 4.949747468306, 7.778174593052, 10.606601717798]), rtol=1e-12) # Second level assert_allclose(wp['aa'].data, np.array([5., 13.]), rtol=1e-12) # Third level assert_allclose(wp['aaa'].data, np.array([12.727922061358]), rtol=1e-12) def test_acess_path(): x = [1, 2, 3, 4, 5, 6, 7, 8] wp = pywt.WaveletPacket(data=x, wavelet='db1', mode='symmetric') assert_(wp['a'].path == 'a') assert_(wp['aa'].path == 'aa') assert_(wp['aaa'].path == 'aaa') # Maximum level reached: assert_raises(IndexError, lambda: wp['aaaa'].path) # Wrong path assert_raises(ValueError, lambda: wp['ac'].path) def test_access_node_atributes(): x = [1, 2, 3, 4, 5, 6, 7, 8] wp = pywt.WaveletPacket(data=x, wavelet='db1', mode='symmetric') assert_allclose(wp['ad'].data, np.array([-2., -2.]), rtol=1e-12) assert_(wp['ad'].path == 'ad') assert_(wp['ad'].node_name == 'd') assert_(wp['ad'].parent.path == 'a') assert_(wp['ad'].level == 2) assert_(wp['ad'].maxlevel == 3) assert_(wp['ad'].mode == 'symmetric') def test_collecting_nodes(): x = [1, 2, 3, 4, 5, 6, 7, 8] wp = pywt.WaveletPacket(data=x, wavelet='db1', mode='symmetric') # All nodes in natural order assert_([node.path for node in wp.get_level(3, 'natural')] == ['aaa', 'aad', 'ada', 'add', 'daa', 'dad', 'dda', 'ddd']) # and in frequency order. assert_([node.path for node in wp.get_level(3, 'freq')] == ['aaa', 'aad', 'add', 'ada', 'dda', 'ddd', 'dad', 'daa']) def test_reconstructing_data(): x = [1, 2, 3, 4, 5, 6, 7, 8] wp = pywt.WaveletPacket(data=x, wavelet='db1', mode='symmetric') # Create another Wavelet Packet and feed it with some data. new_wp = pywt.WaveletPacket(data=None, wavelet='db1', mode='symmetric') new_wp['aa'] = wp['aa'].data new_wp['ad'] = [-2., -2.] # For convenience, :attr:`Node.data` gets automatically extracted # from the :class:`Node` object: new_wp['d'] = wp['d'] # Reconstruct data from aa, ad, and d packets. assert_allclose(new_wp.reconstruct(update=False), x, rtol=1e-12) # The node's :attr:`~Node.data` will not be updated assert_(new_wp.data is None) # When `update` is True: assert_allclose(new_wp.reconstruct(update=True), x, rtol=1e-12) assert_allclose(new_wp.data, np.arange(1, 9), rtol=1e-12) assert_([n.path for n in new_wp.get_leaf_nodes(False)] == ['aa', 'ad', 'd']) assert_([n.path for n in new_wp.get_leaf_nodes(True)] == ['aaa', 'aad', 'ada', 'add', 'daa', 'dad', 'dda', 'ddd']) def test_removing_nodes(): x = [1, 2, 3, 4, 5, 6, 7, 8] wp = pywt.WaveletPacket(data=x, wavelet='db1', mode='symmetric') wp.get_level(2) dataleafs = [n.data for n in wp.get_leaf_nodes(False)] expected = np.array([[5., 13.], [-2, -2], [-1, -1], [0, 0]]) for i in range(4): assert_allclose(dataleafs[i], expected[i, :], atol=1e-12) node = wp['ad'] del(wp['ad']) dataleafs = [n.data for n in wp.get_leaf_nodes(False)] expected = np.array([[5., 13.], [-1, -1], [0, 0]]) for i in range(3): assert_allclose(dataleafs[i], expected[i, :], atol=1e-12) wp.reconstruct() # The reconstruction is: assert_allclose(wp.reconstruct(), np.array([2., 3., 2., 3., 6., 7., 6., 7.]), rtol=1e-12) # Restore the data wp['ad'].data = node.data dataleafs = [n.data for n in wp.get_leaf_nodes(False)] expected = np.array([[5., 13.], [-2, -2], [-1, -1], [0, 0]]) for i in range(4): assert_allclose(dataleafs[i], expected[i, :], atol=1e-12) assert_allclose(wp.reconstruct(), np.arange(1, 9), rtol=1e-12) def test_wavelet_packet_dtypes(): N = 32 for dtype in [np.float32, np.float64, np.complex64, np.complex128]: x = np.random.randn(N).astype(dtype) if np.iscomplexobj(x): x = x + 1j*np.random.randn(N).astype(x.real.dtype) wp = pywt.WaveletPacket(data=x, wavelet='db1', mode='symmetric') # no unnecessary copy made assert_(wp.data is x) # assiging to a node should not change supported dtypes wp['d'] = wp['d'].data assert_equal(wp['d'].data.dtype, x.dtype) # full decomposition wp.get_level(wp.maxlevel) # reconstruction from coefficients should preserve dtype r = wp.reconstruct(False) assert_equal(r.dtype, x.dtype) assert_allclose(r, x, atol=1e-5, rtol=1e-5) # first element of the tuple is the input dtype # second element of the tuple is the transform dtype dtype_pairs = [(np.uint8, np.float64), (np.intp, np.float64), ] if hasattr(np, "complex256"): dtype_pairs += [(np.complex256, np.complex128), ] if hasattr(np, "half"): dtype_pairs += [(np.half, np.float32), ] for (dtype, transform_dtype) in dtype_pairs: x = np.arange(N, dtype=dtype) wp = pywt.WaveletPacket(x, wavelet='db1', mode='symmetric') # no unnecessary copy made of top-level data assert_(wp.data is x) # full decomposition wp.get_level(wp.maxlevel) # reconstructed data will have modified dtype r = wp.reconstruct(False) assert_equal(r.dtype, transform_dtype) assert_allclose(r, x.astype(transform_dtype), atol=1e-5, rtol=1e-5) def test_db3_roundtrip(): original = np.arange(512) wp = pywt.WaveletPacket(data=original, wavelet='db3', mode='smooth', maxlevel=3) r = wp.reconstruct() assert_allclose(original, r, atol=1e-12, rtol=1e-12) PyWavelets-1.1.1/pywt/tests/test_wp2d.py0000644000175000017500000001520713552333332020716 0ustar lee8rxlee8rx00000000000000#!/usr/bin/env python from __future__ import division, print_function, absolute_import import numpy as np from numpy.testing import (assert_allclose, assert_, assert_raises, assert_equal) import pywt def test_traversing_tree_2d(): x = np.array([[1, 2, 3, 4, 5, 6, 7, 8]] * 8, dtype=np.float64) wp = pywt.WaveletPacket2D(data=x, wavelet='db1', mode='symmetric') assert_(np.all(wp.data == x)) assert_(wp.path == '') assert_(wp.level == 0) assert_(wp.maxlevel == 3) assert_allclose(wp['a'].data, np.array([[3., 7., 11., 15.]] * 4), rtol=1e-12) assert_allclose(wp['h'].data, np.zeros((4, 4)), rtol=1e-12, atol=1e-14) assert_allclose(wp['v'].data, -np.ones((4, 4)), rtol=1e-12, atol=1e-14) assert_allclose(wp['d'].data, np.zeros((4, 4)), rtol=1e-12, atol=1e-14) assert_allclose(wp['aa'].data, np.array([[10., 26.]] * 2), rtol=1e-12) assert_(wp['a']['a'].data is wp['aa'].data) assert_allclose(wp['aaa'].data, np.array([[36.]]), rtol=1e-12) assert_raises(IndexError, lambda: wp['aaaa']) assert_raises(ValueError, lambda: wp['f']) def test_accessing_node_atributes_2d(): x = np.array([[1, 2, 3, 4, 5, 6, 7, 8]] * 8, dtype=np.float64) wp = pywt.WaveletPacket2D(data=x, wavelet='db1', mode='symmetric') assert_allclose(wp['av'].data, np.zeros((2, 2)) - 4, rtol=1e-12) assert_(wp['av'].path == 'av') assert_(wp['av'].node_name == 'v') assert_(wp['av'].parent.path == 'a') assert_allclose(wp['av'].parent.data, np.array([[3., 7., 11., 15.]] * 4), rtol=1e-12) assert_(wp['av'].level == 2) assert_(wp['av'].maxlevel == 3) assert_(wp['av'].mode == 'symmetric') def test_collecting_nodes_2d(): x = np.array([[1, 2, 3, 4, 5, 6, 7, 8]] * 8, dtype=np.float64) wp = pywt.WaveletPacket2D(data=x, wavelet='db1', mode='symmetric') assert_(len(wp.get_level(0)) == 1) assert_(wp.get_level(0)[0].path == '') # First level assert_(len(wp.get_level(1)) == 4) assert_([node.path for node in wp.get_level(1)] == ['a', 'h', 'v', 'd']) # Second level assert_(len(wp.get_level(2)) == 16) paths = [node.path for node in wp.get_level(2)] expected_paths = ['aa', 'ah', 'av', 'ad', 'ha', 'hh', 'hv', 'hd', 'va', 'vh', 'vv', 'vd', 'da', 'dh', 'dv', 'dd'] assert_(paths == expected_paths) # Third level. assert_(len(wp.get_level(3)) == 64) paths = [node.path for node in wp.get_level(3)] expected_paths = ['aaa', 'aah', 'aav', 'aad', 'aha', 'ahh', 'ahv', 'ahd', 'ava', 'avh', 'avv', 'avd', 'ada', 'adh', 'adv', 'add', 'haa', 'hah', 'hav', 'had', 'hha', 'hhh', 'hhv', 'hhd', 'hva', 'hvh', 'hvv', 'hvd', 'hda', 'hdh', 'hdv', 'hdd', 'vaa', 'vah', 'vav', 'vad', 'vha', 'vhh', 'vhv', 'vhd', 'vva', 'vvh', 'vvv', 'vvd', 'vda', 'vdh', 'vdv', 'vdd', 'daa', 'dah', 'dav', 'dad', 'dha', 'dhh', 'dhv', 'dhd', 'dva', 'dvh', 'dvv', 'dvd', 'dda', 'ddh', 'ddv', 'ddd'] assert_(paths == expected_paths) def test_data_reconstruction_2d(): x = np.array([[1, 2, 3, 4, 5, 6, 7, 8]] * 8, dtype=np.float64) wp = pywt.WaveletPacket2D(data=x, wavelet='db1', mode='symmetric') new_wp = pywt.WaveletPacket2D(data=None, wavelet='db1', mode='symmetric') new_wp['vh'] = wp['vh'].data new_wp['vv'] = wp['vh'].data new_wp['vd'] = np.zeros((2, 2), dtype=np.float64) new_wp['a'] = [[3.0, 7.0, 11.0, 15.0]] * 4 new_wp['d'] = np.zeros((4, 4), dtype=np.float64) new_wp['h'] = wp['h'] # all zeros assert_allclose(new_wp.reconstruct(update=False), np.array([[1.5, 1.5, 3.5, 3.5, 5.5, 5.5, 7.5, 7.5]] * 8), rtol=1e-12) assert_allclose(wp['va'].data, np.zeros((2, 2)) - 2, rtol=1e-12) new_wp['va'] = wp['va'].data assert_allclose(new_wp.reconstruct(update=False), x, rtol=1e-12) def test_data_reconstruction_delete_nodes_2d(): x = np.array([[1, 2, 3, 4, 5, 6, 7, 8]] * 8, dtype=np.float64) wp = pywt.WaveletPacket2D(data=x, wavelet='db1', mode='symmetric') new_wp = pywt.WaveletPacket2D(data=None, wavelet='db1', mode='symmetric') new_wp['vh'] = wp['vh'].data new_wp['vv'] = wp['vh'].data new_wp['vd'] = np.zeros((2, 2), dtype=np.float64) new_wp['a'] = [[3.0, 7.0, 11.0, 15.0]] * 4 new_wp['d'] = np.zeros((4, 4), dtype=np.float64) new_wp['h'] = wp['h'] # all zeros assert_allclose(new_wp.reconstruct(update=False), np.array([[1.5, 1.5, 3.5, 3.5, 5.5, 5.5, 7.5, 7.5]] * 8), rtol=1e-12) new_wp['va'] = wp['va'].data assert_allclose(new_wp.reconstruct(update=False), x, rtol=1e-12) del(new_wp['va']) new_wp['va'] = wp['va'].data assert_(new_wp.data is None) assert_allclose(new_wp.reconstruct(update=True), x, rtol=1e-12) assert_allclose(new_wp.data, x, rtol=1e-12) # TODO: decompose=True def test_lazy_evaluation_2D(): # Note: internal implementation detail not to be relied on. Testing for # now for backwards compatibility, but this test may be broken in needed. x = np.array([[1, 2, 3, 4, 5, 6, 7, 8]] * 8) wp = pywt.WaveletPacket2D(data=x, wavelet='db1', mode='symmetric') assert_(wp.a is None) assert_allclose(wp['a'].data, np.array([[3., 7., 11., 15.]] * 4), rtol=1e-12) assert_allclose(wp.a.data, np.array([[3., 7., 11., 15.]] * 4), rtol=1e-12) assert_allclose(wp.d.data, np.zeros((4, 4)), rtol=1e-12, atol=1e-12) def test_wavelet_packet_dtypes(): shape = (16, 16) for dtype in [np.float32, np.float64, np.complex64, np.complex128]: x = np.random.randn(*shape).astype(dtype) if np.iscomplexobj(x): x = x + 1j*np.random.randn(*shape).astype(x.real.dtype) wp = pywt.WaveletPacket2D(data=x, wavelet='db1', mode='symmetric') # no unnecessary copy made assert_(wp.data is x) # assiging to a node should not change supported dtypes wp['d'] = wp['d'].data assert_equal(wp['d'].data.dtype, x.dtype) # full decomposition wp.get_level(wp.maxlevel) # reconstruction from coefficients should preserve dtype r = wp.reconstruct(False) assert_equal(r.dtype, x.dtype) assert_allclose(r, x, atol=1e-5, rtol=1e-5) def test_2d_roundtrip(): # test case corresponding to PyWavelets issue 447 original = pywt.data.camera() wp = pywt.WaveletPacket2D(data=original, wavelet='db3', mode='smooth', maxlevel=3) r = wp.reconstruct() assert_allclose(original, r, atol=1e-12, rtol=1e-12) PyWavelets-1.1.1/pywt/version.py0000644000175000017500000000035113552543065017326 0ustar lee8rxlee8rx00000000000000 # THIS FILE IS GENERATED FROM PYWAVELETS SETUP.PY short_version = '1.1.1' version = '1.1.1' full_version = '1.1.1' git_revision = '7b2f66b0ef9196fa91bba550a81d1870f5933a36' release = True if not release: version = full_version PyWavelets-1.1.1/setup.cfg0000644000175000017500000000004613552543071016103 0ustar lee8rxlee8rx00000000000000[egg_info] tag_build = tag_date = 0 PyWavelets-1.1.1/setup.py0000755000175000017500000004340613552543046016010 0ustar lee8rxlee8rx00000000000000#!/usr/bin/env python #-*- coding: utf-8 -*- import os import sys import subprocess import textwrap import warnings from functools import partial from distutils.sysconfig import get_python_inc import setuptools from setuptools import setup, Extension from setuptools.command.test import test as TestCommand MAJOR = 1 MINOR = 1 MICRO = 1 ISRELEASED = True VERSION = '%d.%d.%d' % (MAJOR, MINOR, MICRO) # fail quicker on unsupported Python (prior to Cythonizing) if sys.version_info[:2] < (3, 5): raise RuntimeError("Python version >= 3.5 required.") # Return the git revision as a string def git_version(): def _minimal_ext_cmd(cmd): # construct minimal environment env = {} for k in ['SYSTEMROOT', 'PATH']: v = os.environ.get(k) if v is not None: env[k] = v # LANGUAGE is used on win32 env['LANGUAGE'] = 'C' env['LANG'] = 'C' env['LC_ALL'] = 'C' out = subprocess.Popen(cmd, stdout=subprocess.PIPE, env=env).communicate()[0] return out try: out = _minimal_ext_cmd(['git', 'rev-parse', 'HEAD']) GIT_REVISION = out.strip().decode('ascii') except OSError: GIT_REVISION = "Unknown" return GIT_REVISION def get_version_info(): # Adding the git rev number needs to be done inside # write_version_py(), otherwise the import of pywt.version messes # up the build under Python 3. FULLVERSION = VERSION if os.path.exists('.git'): GIT_REVISION = git_version() elif os.path.exists('pywt/version.py'): # must be a source distribution, use existing version file # load it as a separate module to not load pywt/__init__.py import imp version = imp.load_source('pywt.version', 'pywt/version.py') GIT_REVISION = version.git_revision else: GIT_REVISION = "Unknown" if not ISRELEASED: FULLVERSION += '.dev0+' + GIT_REVISION[:7] return FULLVERSION, GIT_REVISION def write_version_py(filename='pywt/version.py'): cnt = """ # THIS FILE IS GENERATED FROM PYWAVELETS SETUP.PY short_version = '%(version)s' version = '%(version)s' full_version = '%(full_version)s' git_revision = '%(git_revision)s' release = %(isrelease)s if not release: version = full_version """ FULLVERSION, GIT_REVISION = get_version_info() with open(filename, 'w') as a: a.write(cnt % {'version': VERSION, 'full_version': FULLVERSION, 'git_revision': GIT_REVISION, 'isrelease': str(ISRELEASED)}) # BEFORE importing distutils, remove MANIFEST. distutils doesn't properly # update it when the contents of directories change. if os.path.exists('MANIFEST'): os.remove('MANIFEST') if sys.platform == "darwin": # Don't create resource files on OS X tar. os.environ["COPY_EXTENDED_ATTRIBUTES_DISABLE"] = "true" os.environ["COPYFILE_DISABLE"] = "true" make_ext_path = partial(os.path.join, "pywt", "_extensions") sources = ["c/common.c", "c/convolution.c", "c/wt.c", "c/wavelets.c", "c/cwt.c"] sources = list(map(make_ext_path, sources)) source_templates = ["c/convolution.template.c", "c/wt.template.c", "c/cwt.template.c"] source_templates = list(map(make_ext_path, source_templates)) headers = ["c/templating.h", "c/wavelets_coeffs.h", "c/common.h", "c/convolution.h", "c/wt.h", "c/wavelets.h", "c/cwt.h"] headers = list(map(make_ext_path, headers)) header_templates = ["c/convolution.template.h", "c/wt.template.h", "c/wavelets_coeffs.template.h", "c/cwt.template.h"] header_templates = list(map(make_ext_path, header_templates)) def get_cython_sources(use_cython): cython_modules = ['_pywt', '_dwt', '_swt', '_cwt'] cython_sources = [('{0}.pyx' if use_cython else '{0}.c').format(module) for module in cython_modules] return cython_modules, cython_sources c_macros = [("PY_EXTENSION", None), ] cython_macros = [] #c99_test_c = """#include #int main(int argc, char** argv) { float complex a; return(0); }""" if 'USE_C99_COMPLEX' in os.environ: use_c99 = bool(int(os.environ['USE_C99_COMPLEX'])) else: # default to False on non-posix platforms # (MSVC doesn't support C99 complex) if os.name == 'posix': use_c99 = True else: use_c99 = False if use_c99: c_macros += [("HAVE_C99_COMPLEX", None), ] # avoid compiler warnings: tell Cython to use C99 complex types cython_macros += [('CYTHON_CCOMPLEX', 1), ] pxi_defines = dict(HAVE_C99_CPLX=1) py_defines = dict(_have_c99_complex=1) else: pxi_defines = dict(HAVE_C99_CPLX=0) py_defines = dict(_have_c99_complex=0) # write a file config.pxi that can be included by other .pyx files to determine # whether or not C99 complex is supported at compile-time defines_pxi = os.path.join( os.path.dirname(__file__), 'pywt', '_extensions', 'config.pxi') with open(defines_pxi, 'w') as fd: fd.write("# Autogenerated file containing Cython compile-time defines\n\n") for k, v in pxi_defines.items(): fd.write('DEF %s = %d\n' % (k.upper(), int(v))) defines_py = os.path.join( os.path.dirname(__file__), 'pywt', '_c99_config.py') with open(defines_py, 'w') as fd: fd.write("# Autogenerated file containing compile-time definitions\n\n") for k, v in py_defines.items(): fd.write('%s = %d\n' % (k, int(v))) cythonize_opts = {'language_level': '3'} if os.environ.get("CYTHON_TRACE"): cythonize_opts['linetrace'] = True cython_macros.append(("CYTHON_TRACE_NOGIL", 1)) # By default C object files are rebuilt for every extension # C files must be built once only for coverage to work c_lib = ('c_wt', {'sources': sources, 'depends': source_templates + header_templates + headers, 'include_dirs': [make_ext_path("c"), get_python_inc()], 'macros': c_macros, }) def get_ext_modules(use_cython): from numpy import get_include as get_numpy_include cython_modules, cython_sources = get_cython_sources(use_cython) ext_modules = [ Extension('pywt._extensions.{0}'.format(module), sources=[make_ext_path(source)], # Doesn't automatically rebuild if library changes depends=c_lib[1]['sources'] + c_lib[1]['depends'], include_dirs=[make_ext_path("c"), get_numpy_include()], define_macros=c_macros + cython_macros, libraries=[c_lib[0]],) for module, source, in zip(cython_modules, cython_sources) ] return ext_modules from setuptools.command.develop import develop class develop_build_clib(develop): """Ugly monkeypatching to get clib to build for development installs See coverage comment above for why we don't just let libraries be built via extensions. All this is a copy of the relevant part of `install_for_development` for current master (Sep 2016) of setuptools. Note: if you want to build in-place with ``python setup.py build_ext``, that will only work if you first do ``python setup.py build_clib``. """ def install_for_development(self): self.run_command('egg_info') # Build extensions in-place (the next 7 lines are the monkeypatch) import glob hitlist = glob.glob(os.path.join('build', '*', 'libc_wt.*')) if hitlist: # Remove existing clib - running build_clib twice in a row fails os.remove(hitlist[0]) self.reinitialize_command('build_clib', inplace=1) self.run_command('build_clib') self.reinitialize_command('build_ext', inplace=1) self.run_command('build_ext') self.install_site_py() # ensure that target dir is site-safe if setuptools.bootstrap_install_from: self.easy_install(setuptools.bootstrap_install_from) setuptools.bootstrap_install_from = None # create an .egg-link in the installation dir, pointing to our egg from distutils import log log.info("Creating %s (link to %s)", self.egg_link, self.egg_base) if not self.dry_run: with open(self.egg_link, "w") as f: f.write(self.egg_path + "\n" + self.setup_path) # postprocess the installed distro, fixing up .pth, installing scripts, # and handling requirements self.process_distribution(None, self.dist, not self.no_deps) def parse_setuppy_commands(): """Check the commands and respond appropriately. Disable broken commands. Return a boolean value for whether or not to run the build or not (avoid import NumPy or parsing Cython and template files if False). """ args = sys.argv[1:] if not args: # User forgot to give an argument probably, let setuptools handle that. return True info_commands = ['--help-commands', '--name', '--version', '-V', '--fullname', '--author', '--author-email', '--maintainer', '--maintainer-email', '--contact', '--contact-email', '--url', '--license', '--description', '--long-description', '--platforms', '--classifiers', '--keywords', '--provides', '--requires', '--obsoletes'] for command in info_commands: if command in args: return False # Note that 'alias', 'saveopts' and 'setopt' commands also seem to work # fine as they are, but are usually used together with one of the commands # below and not standalone. Hence they're not added to good_commands. good_commands = ('develop', 'sdist', 'build', 'build_ext', 'build_py', 'build_clib', 'build_scripts', 'bdist_wheel', 'bdist_rpm', 'bdist_wininst', 'bdist_msi', 'bdist_mpkg', 'build_sphinx') for command in good_commands: if command in args: return True # The following commands are supported, but we need to show more # useful messages to the user if 'install' in args: print(textwrap.dedent(""" Note: if you need reliable uninstall behavior, then install with pip instead of using `setup.py install`: - `pip install .` (from a git repo or downloaded source release) - `pip install PyWavelets` (last PyWavelets release on PyPI) """)) return True if '--help' in args or '-h' in sys.argv[1]: print(textwrap.dedent(""" PyWavelets-specific help ------------------------ To install PyWavelets from here with reliable uninstall, we recommend that you use `pip install .`. To install the latest PyWavelets release from PyPI, use `pip install PyWavelets`. For help with build/installation issues, please ask on the PyWavelets mailing list. If you are sure that you have run into a bug, please report it at https://github.com/PyWavelets/pywt/issues. Setuptools commands help ------------------------ """)) return False # The following commands aren't supported. They can only be executed when # the user explicitly adds a --force command-line argument. bad_commands = dict( test=""" `setup.py test` is not supported. Use one of the following instead: - `>>> pywt.test()` (run tests for installed PyWavelets from within an interpreter) """, upload=""" `setup.py upload` is not supported, because it's insecure. Instead, build what you want to upload and upload those files with `twine upload -s ` instead. """, upload_docs="`setup.py upload_docs` is not supported", easy_install="`setup.py easy_install` is not supported", clean=""" `setup.py clean` is not supported, use one of the following instead: - `git clean -xdf` (cleans all files) - `git clean -Xdf` (cleans all versioned files, doesn't touch files that aren't checked into the git repo) """, check="`setup.py check` is not supported", register="`setup.py register` is not supported", bdist_dumb="`setup.py bdist_dumb` is not supported", bdist="`setup.py bdist` is not supported", flake8="`setup.py flake8` is not supported, use flake8 standalone", ) bad_commands['nosetests'] = bad_commands['test'] for command in ('upload_docs', 'easy_install', 'bdist', 'bdist_dumb', 'register', 'check', 'install_data', 'install_headers', 'install_lib', 'install_scripts', ): bad_commands[command] = "`setup.py %s` is not supported" % command for command in bad_commands.keys(): if command in args: print(textwrap.dedent(bad_commands[command]) + "\nAdd `--force` to your command to use it anyway if you " "must (unsupported).\n") sys.exit(1) # Commands that do more than print info, but also don't need Cython and # template parsing. other_commands = ['egg_info', 'install_egg_info', 'rotate'] for command in other_commands: if command in args: return False # If we got here, we didn't detect what setup.py command was given warnings.warn("Unrecognized setuptools command, proceeding with " "generating Cython sources and expanding templates") return True class PyTest(TestCommand): user_options = [('pytest-args=', 'a', "Arguments to pass to py.test")] def initialize_options(self): TestCommand.initialize_options(self) self.pytest_args = [] def finalize_options(self): TestCommand.finalize_options(self) self.test_args = [] self.test_suite = True def run_tests(self): #import here, cause outside the eggs aren't loaded import pytest errno = pytest.main(self.pytest_args) sys.exit(errno) def setup_package(): # Rewrite the version file everytime write_version_py() metadata = dict( name="PyWavelets", maintainer="The PyWavelets Developers", maintainer_email="pywavelets@googlegroups.com", url="https://github.com/PyWavelets/pywt", download_url="https://github.com/PyWavelets/pywt/releases", license="MIT", description="PyWavelets, wavelet transform module", long_description="""\ PyWavelets is a Python wavelet transforms module that includes: * nD Forward and Inverse Discrete Wavelet Transform (DWT and IDWT) * 1D and 2D Forward and Inverse Stationary Wavelet Transform (Undecimated Wavelet Transform) * 1D and 2D Wavelet Packet decomposition and reconstruction * 1D Continuous Wavelet Tranfsorm * Computing Approximations of wavelet and scaling functions * Over 100 built-in wavelet filters and support for custom wavelets * Single and double precision calculations * Real and complex calculations * Results compatible with Matlab Wavelet Toolbox (TM) """, keywords=["wavelets", "wavelet transform", "DWT", "SWT", "CWT", "scientific"], classifiers=[ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: C", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Software Development :: Libraries :: Python Modules" ], platforms=["Windows", "Linux", "Solaris", "Mac OS-X", "Unix"], version=get_version_info()[0], packages=['pywt', 'pywt._extensions', 'pywt.data'], package_data={'pywt.data': ['*.npy', '*.npz'], 'pywt': ['tests/*.py', 'tests/data/*.npz', 'tests/data/*.py']}, libraries=[c_lib], cmdclass={'develop': develop_build_clib, 'test': PyTest}, tests_require=['pytest'], install_requires=["numpy>=1.13.3"], setup_requires=["numpy>=1.13.3"], python_requires=">=3.5", ) if "--force" in sys.argv: run_build = True sys.argv.remove('--force') else: # Raise errors for unsupported commands, improve help output, etc. run_build = parse_setuppy_commands() if run_build: # This imports numpy and Cython, so only do that if we're actually # building and not for, e.g., pip grabbing metadata. # See gh-397 for details. try: from Cython.Build import cythonize USE_CYTHON = True except ImportError: USE_CYTHON = False if not os.path.exists(os.path.join('pywt', '_extensions', '_pywt.c')): msg = ("Cython must be installed when working with a development " "version of PyWavelets") raise RuntimeError(msg) ext_modules = get_ext_modules(USE_CYTHON) if USE_CYTHON: ext_modules = cythonize(ext_modules, compiler_directives=cythonize_opts) metadata['ext_modules'] = ext_modules setup(**metadata) if __name__ == '__main__': setup_package() PyWavelets-1.1.1/tox.ini0000644000175000017500000000240013552333332015566 0ustar lee8rxlee8rx00000000000000# Tox (http://tox.testrun.org/) is a tool for running tests # in multiple virtualenvs. This configuration file will run the # test suite on all supported python versions. To use it, "pip install tox" # and then run "tox" from this directory. # Running the command 'tox' while in the root of the pywt source # directory will: # - Create a pywt source distribution (setup.py sdist) # - Then for every supported version of Python: # - Create a virtualenv in {homedir}/.tox/pywt/py$VERSION and # install dependencies. (These virtualenvs are cached across # runs unless you use --recreate.) # - Use pip to install the pywt sdist into the virtualenv # - Run the pywt tests # To run against a specific subset of Python versions, use: # tox -e py36,py37 # Tox assumes that you have appropriate Python interpreters already # installed and that they can be run as 'python3.6', 'python3.7', etc. [tox] toxworkdir = {homedir}/.tox/pywt/ envlist = py35, py36, py37 [testenv] deps = flake8 pytest coverage cython numpy matplotlib changedir = {envdir} commands = pytest {toxinidir}/pywt/tests -v # flake8 --exit-zero pywt [pep8] max_line_length = 79 statistics = True ignore = E121,E122,E123,E125,E126,E127,E128,E226,E231,E501,E712 PyWavelets-1.1.1/util/0000755000175000017500000000000013552543071015237 5ustar lee8rxlee8rx00000000000000PyWavelets-1.1.1/util/__init__.py0000664000175000017500000000000013270003221017321 0ustar lee8rxlee8rx00000000000000PyWavelets-1.1.1/util/appveyor/0000755000175000017500000000000013552543071017104 5ustar lee8rxlee8rx00000000000000PyWavelets-1.1.1/util/appveyor/build.cmd0000664000175000017500000000145013270003221020653 0ustar lee8rxlee8rx00000000000000@echo off :: To build extensions for 64 bit Python 3, we need to configure environment :: variables to use the MSVC 2010 C++ compilers from GRMSDKX_EN_DVD.iso of: :: MS Windows SDK for Windows 7 and .NET Framework 4 :: :: More details at: :: https://packaging.python.org/appveyor/ IF "%DISTUTILS_USE_SDK%"=="1" ( ECHO Configuring environment to build with MSVC on a 64bit architecture ECHO Using Windows SDK 7.1 "C:\Program Files\Microsoft SDKs\Windows\v7.1\Setup\WindowsSdkVer.exe" -q -version:v7.1 CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 /release SET MSSdk=1 REM Need the following to allow tox to see the SDK compiler SET TOX_TESTENV_PASSENV=DISTUTILS_USE_SDK MSSdk INCLUDE LIB ) ELSE ( ECHO Using default MSVC build environment ) CALL %* PyWavelets-1.1.1/util/authors.py0000755000175000017500000001402313552333332017276 0ustar lee8rxlee8rx00000000000000#!/usr/bin/env python # -*- encoding:utf-8 -*- """ git-authors [OPTIONS] REV1..REV2 List the authors who contributed within a given revision interval. """ # Author: Pauli Virtanen . This script is in the public domain. from __future__ import division, print_function, absolute_import import optparse import re import sys import os import subprocess from scipy._lib.six import u, PY3 if PY3: stdout_b = sys.stdout.buffer else: stdout_b = sys.stdout NAME_MAP = { u('Gregory Lee'): u('Gregory R. Lee'), u('Daniel M Pelt'): u('Daniel M. Pelt'), u('Helder'): u('Helder Oliveira'), u('Kai'): u('Kai Wohlfahrt'), u('asnt'): u('Alexandre Saint'), u('pavleb'): u('Pavle Boškoski'), } def main(): p = optparse.OptionParser(__doc__.strip()) p.add_option("-d", "--debug", action="store_true", help="print debug output") options, args = p.parse_args() if len(args) != 1: p.error("invalid number of arguments") try: rev1, rev2 = args[0].split('..') except ValueError: p.error("argument is not a revision range") # Analyze log data all_authors = set() authors = set() def analyze_line(line, names, disp=False): line = line.strip().decode('utf-8') # Check the commit author name m = re.match(u('^@@@([^@]*)@@@'), line) if m: name = m.group(1) line = line[m.end():] name = NAME_MAP.get(name, name) if disp: if name not in names: stdout_b.write((" - Author: %s\n" % name).encode('utf-8')) names.add(name) # Look for "thanks to" messages in the commit log m = re.search(u(r'([Tt]hanks to|[Cc]ourtesy of) ([A-Z][A-Za-z]*? [A-Z][A-Za-z]*? [A-Z][A-Za-z]*|[A-Z][A-Za-z]*? [A-Z]\. [A-Z][A-Za-z]*|[A-Z][A-Za-z ]*? [A-Z][A-Za-z]*|[a-z0-9]+)($|\.| )'), line) if m: name = m.group(2) if name not in (u('this'),): if disp: stdout_b.write(" - Log : %s\n" % line.strip().encode('utf-8')) name = NAME_MAP.get(name, name) names.add(name) line = line[m.end():].strip() line = re.sub(u(r'^(and|, and|, ) '), u('Thanks to '), line) analyze_line(line.encode('utf-8'), names) # Find all authors before the named range for line in git.pipe('log', '--pretty=@@@%an@@@%n@@@%cn@@@%n%b', '%s' % (rev1,)): analyze_line(line, all_authors) # Find authors in the named range for line in git.pipe('log', '--pretty=@@@%an@@@%n@@@%cn@@@%n%b', '%s..%s' % (rev1, rev2)): analyze_line(line, authors, disp=options.debug) # Sort def name_key(fullname): m = re.search(u(' [a-z ]*[A-Za-z-\']+$'), fullname) if m: forename = fullname[:m.start()].strip() surname = fullname[m.start():].strip() else: forename = "" surname = fullname.strip() surname = surname.replace('\'', '') if surname.startswith(u('van der ')): surname = surname[8:] if surname.startswith(u('de ')): surname = surname[3:] if surname.startswith(u('von ')): surname = surname[4:] return (surname.lower(), forename.lower()) authors = list(authors) authors.sort(key=name_key) # Print stdout_b.write(b""" Authors ======= """) for author in authors: if author in all_authors: stdout_b.write(("* %s\n" % author).encode('utf-8')) else: stdout_b.write(("* %s +\n" % author).encode('utf-8')) stdout_b.write((""" A total of %(count)d people contributed to this release. People with a "+" by their names contributed a patch for the first time. This list of names is automatically generated, and may not be fully complete. """ % dict(count=len(authors))).encode('utf-8')) stdout_b.write(("\nNOTE: Check this list manually! It is automatically generated " "and some names\n may be missing.\n").encode('utf-8')) #------------------------------------------------------------------------------ # Communicating with Git #------------------------------------------------------------------------------ class Cmd(object): executable = None def __init__(self, executable): self.executable = executable def _call(self, command, args, kw, repository=None, call=False): cmd = [self.executable, command] + list(args) cwd = None if repository is not None: cwd = os.getcwd() os.chdir(repository) try: if call: return subprocess.call(cmd, **kw) else: return subprocess.Popen(cmd, **kw) finally: if cwd is not None: os.chdir(cwd) def __call__(self, command, *a, **kw): ret = self._call(command, a, {}, call=True, **kw) if ret != 0: raise RuntimeError("%s failed" % self.executable) def pipe(self, command, *a, **kw): stdin = kw.pop('stdin', None) p = self._call(command, a, dict(stdin=stdin, stdout=subprocess.PIPE), call=False, **kw) return p.stdout def read(self, command, *a, **kw): p = self._call(command, a, dict(stdout=subprocess.PIPE), call=False, **kw) out, err = p.communicate() if p.returncode != 0: raise RuntimeError("%s failed" % self.executable) return out def readlines(self, command, *a, **kw): out = self.read(command, *a, **kw) return out.rstrip("\n").split("\n") def test(self, command, *a, **kw): ret = self._call(command, a, dict(stdout=subprocess.PIPE, stderr=subprocess.PIPE), call=True, **kw) return (ret == 0) git = Cmd("git") #------------------------------------------------------------------------------ if __name__ == "__main__": main() PyWavelets-1.1.1/util/gh_lists.py0000775000175000017500000001014313270003221017412 0ustar lee8rxlee8rx00000000000000#!/usr/bin/env python # -*- encoding:utf-8 -*- """ gh_lists.py MILESTONE Functions for Github API requests. """ from __future__ import print_function, division, absolute_import import os import re import sys import json import collections import argparse from urllib2 import urlopen Issue = collections.namedtuple('Issue', ('id', 'title', 'url')) def main(): p = argparse.ArgumentParser(usage=__doc__.lstrip()) p.add_argument('--project', default='PyWavelets/pywt') p.add_argument('milestone') args = p.parse_args() getter = CachedGet('gh_cache.json') try: milestones = get_milestones(getter, args.project) if args.milestone not in milestones: msg = "Milestone {0} not available. Available milestones: {1}" msg = msg.format(args.milestone, u", ".join(sorted(milestones))) p.error(msg) issues = get_issues(getter, args.project, args.milestone) issues.sort() finally: getter.save() prs = [x for x in issues if u'/pull/' in x.url] issues = [x for x in issues if x not in prs] def print_list(title, items): print() print(title) print("-"*len(title)) print() for issue in items: msg = u"- `#{0} <{1}>`__: {2}" title = re.sub(u"\s+", u" ", issue.title.strip()) if len(title) > 60: remainder = re.sub(u"\s.*$", u"...", title[60:]) if len(remainder) > 20: remainder = title[:80] + u"..." else: title = title[:60] + remainder msg = msg.format(issue.id, issue.url, title) print(msg) print() msg = u"Issues closed for {0}".format(args.milestone) print_list(msg, issues) msg = u"Pull requests for {0}".format(args.milestone) print_list(msg, prs) return 0 def get_milestones(getter, project): url = "https://api.github.com/repos/{project}/milestones".format(project=project) raw_data, info = getter.get(url) data = json.loads(raw_data) milestones = {} for ms in data: milestones[ms[u'title']] = ms[u'number'] return milestones def get_issues(getter, project, milestone): milestones = get_milestones(getter, project) mid = milestones[milestone] url = "https://api.github.com/repos/{project}/issues?milestone={mid}&state=closed&sort=created&direction=asc" url = url.format(project=project, mid=mid) raw_datas = [] while True: raw_data, info = getter.get(url) raw_datas.append(raw_data) if 'link' not in info: break m = re.search('<(.*?)>; rel="next"', info['link']) if m: url = m.group(1) continue break issues = [] for raw_data in raw_datas: data = json.loads(raw_data) for issue_data in data: issues.append(Issue(issue_data[u'number'], issue_data[u'title'], issue_data[u'html_url'])) return issues class CachedGet(object): def __init__(self, filename): self.filename = filename if os.path.isfile(filename): print("[gh_lists] using {0} as cache (remove it if you want fresh data)".format(filename), file=sys.stderr) with open(filename, 'rb') as f: self.cache = json.load(f) else: self.cache = {} def get(self, url): url = unicode(url) if url not in self.cache: print("[gh_lists] get:", url, file=sys.stderr) req = urlopen(url) if req.getcode() != 200: raise RuntimeError() data = req.read() info = dict(req.info()) self.cache[url] = (data, info) req.close() else: print("[gh_lists] get (cached):", url, file=sys.stderr) return self.cache[url] def save(self): tmp = self.filename + ".new" with open(tmp, 'wb') as f: json.dump(self.cache, f) os.rename(tmp, self.filename) if __name__ == "__main__": sys.exit(main()) PyWavelets-1.1.1/util/readthedocs/0000755000175000017500000000000013552543071017524 5ustar lee8rxlee8rx00000000000000PyWavelets-1.1.1/util/readthedocs/requirements.txt0000644000175000017500000000005613552333332023006 0ustar lee8rxlee8rx00000000000000numpy cython pytest wheel numpydoc matplotlib PyWavelets-1.1.1/util/refguide_check.py0000775000175000017500000006507013334573651020562 0ustar lee8rxlee8rx00000000000000#!/usr/bin/env python """ refguide_check.py [OPTIONS] [-- ARGS] Check for a PyWavelets submodule whether the objects in its __all__ dict correspond to the objects included in the reference guide. Example of usage:: $ python refguide_check.py optimize Note that this is a helper script to be able to check if things are missing; the output of this script does need to be checked manually. In some cases objects are left out of the refguide for a good reason (it's an alias of another function, or deprecated, or ...) Another use of this helper script is to check validity of code samples in docstrings. This is different from doctesting [we do not aim to have scipy docstrings doctestable!], this is just to make sure that code in docstrings is valid python:: $ python refguide_check.py --check_docs optimize """ from __future__ import print_function import sys import os import re import copy import inspect import warnings import doctest import tempfile import io import docutils.core from docutils.parsers.rst import directives import shutil import glob from doctest import NORMALIZE_WHITESPACE, ELLIPSIS, IGNORE_EXCEPTION_DETAIL from argparse import ArgumentParser import numpy as np # FIXME: doctests need the str/repr formatting used in Numpy < 1.14. try: np.set_printoptions(legacy='1.13') except TypeError: pass # sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', 'doc', # 'sphinxext')) from numpydoc.docscrape_sphinx import get_doc_object # Remove sphinx directives that don't run without Sphinx environment directives._directives.pop('versionadded', None) directives._directives.pop('versionchanged', None) directives._directives.pop('moduleauthor', None) directives._directives.pop('sectionauthor', None) directives._directives.pop('codeauthor', None) directives._directives.pop('toctree', None) BASE_MODULE = "pywt" PUBLIC_SUBMODULES = [] # Docs for these modules are included in the parent module OTHER_MODULE_DOCS = {} # these names are known to fail doctesting and we like to keep it that way # e.g. sometimes pseudocode is acceptable etc DOCTEST_SKIPLIST = set([]) # these names are not required to be present in ALL despite being in # autosummary:: listing REFGUIDE_ALL_SKIPLIST = [] HAVE_MATPLOTLIB = False def short_path(path, cwd=None): """ Return relative or absolute path name, whichever is shortest. """ if not isinstance(path, str): return path if cwd is None: cwd = os.getcwd() abspath = os.path.abspath(path) relpath = os.path.relpath(path, cwd) if len(abspath) <= len(relpath): return abspath return relpath def find_names(module, names_dict): # Refguide entries: # # - 3 spaces followed by function name, and maybe some spaces, some # dashes, and an explanation; only function names listed in # refguide are formatted like this (mostly, there may be some false # positives) # # - special directives, such as data and function # # - (scipy.constants only): quoted list # patterns = [ r"^\s\s\s([a-z_0-9A-Z]+)(\s+-+.*)?$", r"^\.\. (?:data|function)::\s*([a-z_0-9A-Z]+)\s*$" ] if module.__name__ == 'scipy.constants': patterns += ["^``([a-z_0-9A-Z]+)``"] patterns = [re.compile(pattern) for pattern in patterns] module_name = module.__name__ for line in module.__doc__.splitlines(): res = re.search(r"^\s*\.\. (?:currentmodule|module):: ([a-z0-9A-Z_.]+)\s*$", line) if res: module_name = res.group(1) continue for pattern in patterns: res = re.match(pattern, line) if res is not None: name = res.group(1) entry = '.'.join([module_name, name]) names_dict.setdefault(module_name, set()).add(name) break def get_all_dict(module): """Return a copy of the __all__ dict with irrelevant items removed.""" if hasattr(module, "__all__"): all_dict = copy.deepcopy(module.__all__) else: all_dict = copy.deepcopy(dir(module)) all_dict = [name for name in all_dict if not name.startswith("_")] for name in ['absolute_import', 'division', 'print_function']: try: all_dict.remove(name) except ValueError: pass # Modules are almost always private; real submodules need a separate # run of refguide_check. all_dict = [name for name in all_dict if not inspect.ismodule(getattr(module, name, None))] deprecated = [] not_deprecated = [] for name in all_dict: f = getattr(module, name, None) if callable(f) and is_deprecated(f): deprecated.append(name) else: not_deprecated.append(name) others = set(dir(module)).difference(set(deprecated)).difference(set(not_deprecated)) return not_deprecated, deprecated, others def compare(all_dict, others, names, module_name): """Return sets of objects only in __all__, refguide, or completely missing.""" only_all = set() for name in all_dict: if name not in names: only_all.add(name) only_ref = set() missing = set() for name in names: if name not in all_dict: for pat in REFGUIDE_ALL_SKIPLIST: if re.match(pat, module_name + '.' + name): if name not in others: missing.add(name) break else: only_ref.add(name) return only_all, only_ref, missing def is_deprecated(f): with warnings.catch_warnings(record=True) as w: warnings.simplefilter("error") try: f(**{"not a kwarg": None}) except DeprecationWarning: return True except: pass return False def check_items(all_dict, names, deprecated, others, module_name, dots=True): num_all = len(all_dict) num_ref = len(names) output = "" output += "Non-deprecated objects in __all__: %i\n" % num_all output += "Objects in refguide: %i\n\n" % num_ref only_all, only_ref, missing = compare(all_dict, others, names, module_name) dep_in_ref = set(only_ref).intersection(deprecated) only_ref = set(only_ref).difference(deprecated) if len(dep_in_ref) > 0: output += "Deprecated objects in refguide::\n\n" for name in sorted(deprecated): output += " " + name + "\n" if len(only_all) == len(only_ref) == len(missing) == 0: if dots: output_dot('.') return [(None, True, output)] else: if len(only_all) > 0: output += "ERROR: objects in %s.__all__ but not in refguide::\n\n" % module_name for name in sorted(only_all): output += " " + name + "\n" if len(only_ref) > 0: output += "ERROR: objects in refguide but not in %s.__all__::\n\n" % module_name for name in sorted(only_ref): output += " " + name + "\n" if len(missing) > 0: output += "ERROR: missing objects::\n\n" for name in sorted(missing): output += " " + name + "\n" if dots: output_dot('F') return [(None, False, output)] def validate_rst_syntax(text, name, dots=True): if text is None: if dots: output_dot('E') return False, "ERROR: %s: no documentation" % (name,) ok_unknown_items = set([ 'mod', 'currentmodule', 'autosummary', 'data', 'obj', 'versionadded', 'versionchanged', 'module', 'class', 'ref', 'func', 'toctree', 'moduleauthor', 'sectionauthor', 'codeauthor', 'eq', ]) # Run through docutils error_stream = io.StringIO() def resolve(name, is_label=False): return ("http://foo", name) token = '' docutils.core.publish_doctree( text, token, settings_overrides = dict(halt_level=5, traceback=True, default_reference_context='title-reference', default_role='emphasis', link_base='', resolve_name=resolve, stylesheet_path='', raw_enabled=0, file_insertion_enabled=0, warning_stream=error_stream)) # Print errors, disregarding unimportant ones error_msg = error_stream.getvalue() errors = error_msg.split(token) success = True output = "" for error in errors: lines = error.splitlines() if not lines: continue m = re.match(r'.*Unknown (?:interpreted text role|directive type) "(.*)".*$', lines[0]) if m: if m.group(1) in ok_unknown_items: continue m = re.match(r'.*Error in "math" directive:.*unknown option: "label"', " ".join(lines), re.S) if m: continue output += name + lines[0] + "::\n " + "\n ".join(lines[1:]).rstrip() + "\n" success = False if not success: output += " " + "-"*72 + "\n" for lineno, line in enumerate(text.splitlines()): output += " %-4d %s\n" % (lineno+1, line) output += " " + "-"*72 + "\n\n" if dots: output_dot('.' if success else 'F') return success, output def output_dot(msg='.', stream=sys.stderr): stream.write(msg) stream.flush() def check_rest(module, names, dots=True): """ Check reStructuredText formatting of docstrings Returns: [(name, success_flag, output), ...] """ try: skip_types = (dict, str, unicode, float, int) except NameError: # python 3 skip_types = (dict, str, float, int) results = [] if module.__name__[6:] not in OTHER_MODULE_DOCS: results += [(module.__name__,) + validate_rst_syntax(inspect.getdoc(module), module.__name__, dots=dots)] for name in names: full_name = module.__name__ + '.' + name obj = getattr(module, name, None) if obj is None: results.append((full_name, False, "%s has no docstring" % (full_name,))) continue elif isinstance(obj, skip_types): continue if inspect.ismodule(obj): text = inspect.getdoc(obj) else: try: text = str(get_doc_object(obj)) except: import traceback results.append((full_name, False, "Error in docstring format!\n" + traceback.format_exc())) continue m = re.search("([\x00-\x09\x0b-\x1f])", text) if m: msg = ("Docstring contains a non-printable character %r! " "Maybe forgot r\"\"\"?" % (m.group(1),)) results.append((full_name, False, msg)) continue try: src_file = short_path(inspect.getsourcefile(obj)) except TypeError: src_file = None if src_file: file_full_name = src_file + ':' + full_name else: file_full_name = full_name results.append((full_name,) + validate_rst_syntax(text, file_full_name, dots=dots)) return results ### Doctest helpers #### # the namespace to run examples in DEFAULT_NAMESPACE = {'np': np} # the namespace to do checks in CHECK_NAMESPACE = { 'np': np, 'assert_allclose': np.testing.assert_allclose, 'assert_equal': np.testing.assert_equal, # recognize numpy repr's 'array': np.array, 'matrix': np.matrix, 'int64': np.int64, 'uint64': np.uint64, 'int8': np.int8, 'int32': np.int32, 'float64': np.float64, 'dtype': np.dtype, 'nan': np.nan, 'NaN': np.nan, 'inf': np.inf, 'Inf': np.inf, } class DTRunner(doctest.DocTestRunner): DIVIDER = "\n" def __init__(self, item_name, checker=None, verbose=None, optionflags=0): self._item_name = item_name doctest.DocTestRunner.__init__(self, checker=checker, verbose=verbose, optionflags=optionflags) def _report_item_name(self, out, new_line=False): if self._item_name is not None: if new_line: out("\n") self._item_name = None def report_start(self, out, test, example): self._checker._source = example.source return doctest.DocTestRunner.report_start(self, out, test, example) def report_success(self, out, test, example, got): if self._verbose: self._report_item_name(out, new_line=True) return doctest.DocTestRunner.report_success( self, out, test, example, got) def report_unexpected_exception(self, out, test, example, exc_info): self._report_item_name(out) return doctest.DocTestRunner.report_unexpected_exception( self, out, test, example, exc_info) def report_failure(self, out, test, example, got): self._report_item_name(out) return doctest.DocTestRunner.report_failure(self, out, test, example, got) class Checker(doctest.OutputChecker): obj_pattern = re.compile('at 0x[0-9a-fA-F]+>') vanilla = doctest.OutputChecker() rndm_markers = {'# random', '# Random', '#random', '#Random', "# may vary"} stopwords = {'plt.', '.hist', '.show', '.ylim', '.subplot(', 'set_title', 'imshow', 'plt.show', 'ax.axis', 'plt.plot(', '.bar(', '.title', '.ylabel', '.xlabel', 'set_ylim', 'set_xlim', '# reformatted'} def __init__(self, parse_namedtuples=True, ns=None, atol=1e-8, rtol=1e-2): self.parse_namedtuples = parse_namedtuples self.atol, self.rtol = atol, rtol if ns is None: self.ns = dict(CHECK_NAMESPACE) else: self.ns = ns def check_output(self, want, got, optionflags): # cut it short if they are equal if want == got: return True # skip stopwords in source if any(word in self._source for word in self.stopwords): return True # skip random stuff if any(word in want for word in self.rndm_markers): return True # skip function/object addresses if self.obj_pattern.search(got): return True # ignore comments (e.g. signal.freqresp) if want.lstrip().startswith("#"): return True # try the standard doctest try: if self.vanilla.check_output(want, got, optionflags): return True except Exception: pass # OK then, convert strings to objects try: a_want = eval(want, dict(self.ns)) a_got = eval(got, dict(self.ns)) except: if not self.parse_namedtuples: return False # suppose that "want" is a tuple, and "got" is smth like # MoodResult(statistic=10, pvalue=0.1). # Then convert the latter to the tuple (10, 0.1), # and then compare the tuples. try: num = len(a_want) regex = ('[\w\d_]+\(' + ', '.join(['[\w\d_]+=(.+)']*num) + '\)') grp = re.findall(regex, got.replace('\n', ' ')) if len(grp) > 1: # no more than one for now return False # fold it back to a tuple got_again = '(' + ', '.join(grp[0]) + ')' return self.check_output(want, got_again, optionflags) except Exception: return False # ... and defer to numpy try: return self._do_check(a_want, a_got) except Exception: # heterog tuple, eg (1, np.array([1., 2.])) try: return all(self._do_check(w, g) for w, g in zip(a_want, a_got)) except (TypeError, ValueError): return False def _do_check(self, want, got): # This should be done exactly as written to correctly handle all of # numpy-comparable objects, strings, and heterogenous tuples try: if want == got: return True except Exception: pass return np.allclose(want, got, atol=self.atol, rtol=self.rtol) def _run_doctests(tests, full_name, verbose, doctest_warnings): """Run modified doctests for the set of `tests`. Returns: list of [(success_flag, output), ...] """ flags = NORMALIZE_WHITESPACE | ELLIPSIS | IGNORE_EXCEPTION_DETAIL runner = DTRunner(full_name, checker=Checker(), optionflags=flags, verbose=verbose) output = [] success = True def out(msg): output.append(msg) class MyStderr(object): """Redirect stderr to the current stdout""" def write(self, msg): if doctest_warnings: sys.stdout.write(msg) else: out(msg) # Run tests, trying to restore global state afterward old_printoptions = np.get_printoptions() old_errstate = np.seterr() old_stderr = sys.stderr cwd = os.getcwd() tmpdir = tempfile.mkdtemp() sys.stderr = MyStderr() try: os.chdir(tmpdir) # try to ensure random seed is NOT reproducible np.random.seed(None) for t in tests: t.filename = short_path(t.filename, cwd) fails, successes = runner.run(t, out=out) if fails > 0: success = False finally: sys.stderr = old_stderr os.chdir(cwd) shutil.rmtree(tmpdir) np.set_printoptions(**old_printoptions) np.seterr(**old_errstate) return success, output def check_doctests(module, verbose, ns=None, dots=True, doctest_warnings=False): """Check code in docstrings of the module's public symbols. Returns: list of [(item_name, success_flag, output), ...] """ if ns is None: ns = dict(DEFAULT_NAMESPACE) # Loop over non-deprecated items results = [] for name in get_all_dict(module)[0]: full_name = module.__name__ + '.' + name if full_name in DOCTEST_SKIPLIST: continue try: obj = getattr(module, name) except AttributeError: import traceback results.append((full_name, False, "Missing item!\n" + traceback.format_exc())) continue finder = doctest.DocTestFinder() try: tests = finder.find(obj, name, globs=dict(ns)) except: import traceback results.append((full_name, False, "Failed to get doctests!\n" + traceback.format_exc())) continue success, output = _run_doctests(tests, full_name, verbose, doctest_warnings) if dots: output_dot('.' if success else 'F') results.append((full_name, success, "".join(output))) if HAVE_MATPLOTLIB: import matplotlib.pyplot as plt plt.close('all') return results def check_doctests_testfile(fname, verbose, ns=None, dots=True, doctest_warnings=False): """Check code in a text file. Mimic `check_doctests` above, differing mostly in test discovery. (which is borrowed from stdlib's doctest.testfile here, https://github.com/python-git/python/blob/master/Lib/doctest.py) Returns: list of [(item_name, success_flag, output), ...] Notes ----- We also try to weed out pseudocode: * We maintain a list of exceptions which signal pseudocode, * We split the text file into "blocks" of code separated by empty lines and/or intervening text. * If a block contains a marker, the whole block is then assumed to be pseudocode. It is then not being doctested. The rationale is that typically, the text looks like this: blah >>> from numpy import some_module # pseudocode! >>> func = some_module.some_function >>> func(42) # still pseudocode 146 blah >>> 2 + 3 # real code, doctest it 5 """ results = [] if ns is None: ns = dict(DEFAULT_NAMESPACE) _, short_name = os.path.split(fname) if short_name in DOCTEST_SKIPLIST: return results full_name = fname text = open(fname).read() PSEUDOCODE = set(['some_function', 'some_module', 'import example', 'ctypes.CDLL', # likely need compiling, skip it 'integrate.nquad(func,' # ctypes integrate tutotial ]) # split the text into "blocks" and try to detect and omit pseudocode blocks. parser = doctest.DocTestParser() good_parts = [] for part in text.split('\n\n'): tests = parser.get_doctest(part, ns, fname, fname, 0) if any(word in ex.source for word in PSEUDOCODE for ex in tests.examples): # omit it pass else: # `part` looks like a good code, let's doctest it good_parts += [part] # Reassemble the good bits and doctest them: good_text = '\n\n'.join(good_parts) tests = parser.get_doctest(good_text, ns, fname, fname, 0) success, output = _run_doctests([tests], full_name, verbose, doctest_warnings) if dots: output_dot('.' if success else 'F') results.append((full_name, success, "".join(output))) if HAVE_MATPLOTLIB: import matplotlib.pyplot as plt plt.close('all') return results def init_matplotlib(): global HAVE_MATPLOTLIB try: import matplotlib matplotlib.use('Agg') HAVE_MATPLOTLIB = True except ImportError: HAVE_MATPLOTLIB = False def main(argv): parser = ArgumentParser(usage=__doc__.lstrip()) parser.add_argument("module_names", metavar="SUBMODULES", default=[], nargs='*', help="Submodules to check (default: all public)") parser.add_argument("--doctests", action="store_true", help="Run also doctests") parser.add_argument("-v", "--verbose", action="count", default=0) parser.add_argument("--doctest-warnings", action="store_true", help="Enforce warning checking for doctests") parser.add_argument("--skip-examples", action="store_true", help="Skip running doctests in the examples.") args = parser.parse_args(argv) modules = [] names_dict = {} if args.module_names: args.skip_examples = True else: args.module_names = list(PUBLIC_SUBMODULES) os.environ['SCIPY_PIL_IMAGE_VIEWER'] = 'true' module_names = list(args.module_names) for name in list(module_names): if name in OTHER_MODULE_DOCS: name = OTHER_MODULE_DOCS[name] if name not in module_names: module_names.append(name) for submodule_name in module_names: module_name = BASE_MODULE + '.' + submodule_name __import__(module_name) module = sys.modules[module_name] if submodule_name not in OTHER_MODULE_DOCS: find_names(module, names_dict) if submodule_name in args.module_names: modules.append(module) dots = True success = True results = [] print("Running checks for %d modules:" % (len(modules),)) if args.doctests or not args.skip_examples: init_matplotlib() for module in modules: if dots: if module is not modules[0]: sys.stderr.write(' ') sys.stderr.write(module.__name__ + ' ') sys.stderr.flush() all_dict, deprecated, others = get_all_dict(module) names = names_dict.get(module.__name__, set()) mod_results = [] mod_results += check_items(all_dict, names, deprecated, others, module.__name__) mod_results += check_rest(module, set(names).difference(deprecated), dots=dots) if args.doctests: mod_results += check_doctests(module, (args.verbose >= 2), dots=dots, doctest_warnings=args.doctest_warnings) for v in mod_results: assert isinstance(v, tuple), v results.append((module, mod_results)) if dots: sys.stderr.write("\n") sys.stderr.flush() if not args.skip_examples: examples_path = os.path.join( os.getcwd(), 'doc', 'source', 'regression', '*.rst') print('\nChecking examples files at %s:' % examples_path) for filename in sorted(glob.glob(examples_path)): if dots: sys.stderr.write('\n') sys.stderr.write(os.path.split(filename)[1] + ' ') sys.stderr.flush() examples_results = check_doctests_testfile( filename, (args.verbose >= 2), dots=dots, doctest_warnings=args.doctest_warnings) def scratch(): pass # stub out a "module", see below scratch.__name__ = filename results.append((scratch, examples_results)) if dots: sys.stderr.write("\n") sys.stderr.flush() # Report results all_success = True for module, mod_results in results: success = all(x[1] for x in mod_results) all_success = all_success and success if success and args.verbose == 0: continue print("") print("=" * len(module.__name__)) print(module.__name__) print("=" * len(module.__name__)) print("") for name, success, output in mod_results: if name is None: if not success or args.verbose >= 1: print(output.strip()) print("") elif not success or (args.verbose >= 2 and output.strip()): print(name) print("-"*len(name)) print("") print(output.strip()) print("") if all_success: print("\nOK: refguide and doctests checks passed!") sys.exit(0) else: print("\nERROR: refguide or doctests have errors") sys.exit(1) if __name__ == '__main__': main(argv=sys.argv[1:]) PyWavelets-1.1.1/util/setenv_build32.bat0000664000175000017500000000041213270003221020537 0ustar lee8rxlee8rx00000000000000rem Configure the environment for 32-bit builds. rem Use "vcvars32.bat" for a 32-bit build. "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat" setenv /x86 /release rem Convince setup.py to use the SDK tools. set MSSdk=1 set DISTUTILS_USE_SDK=1 PyWavelets-1.1.1/util/setenv_build64.bat0000664000175000017500000000041213270003221020544 0ustar lee8rxlee8rx00000000000000rem Configure the environment for 64-bit builds. rem Use "vcvars32.bat" for a 32-bit build. "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars64.bat" setenv /x64 /release rem Convince setup.py to use the SDK tools. set MSSdk=1 set DISTUTILS_USE_SDK=1 PyWavelets-1.1.1/util/travis_osx_install.sh0000775000175000017500000000042113317422762021526 0ustar lee8rxlee8rx00000000000000#!/bin/bash brew update brew install ccache git clone https://github.com/MacPython/terryfy.git ~/terryfy source ~/terryfy/travis_tools.sh get_python_environment macpython $TRAVIS_PYTHON_VERSION ~/macpython_venv source ~/macpython_venv/bin/activate pip install virtualenv